From e572d278a44d286c8713d0ee4af9c72a3d1ca73c Mon Sep 17 00:00:00 2001 From: _ov4 Date: Sat, 17 Oct 2026 10:34:37 +0000 Subject: feat(classes): overload methods and NEW constructors Co-Authored-By: Claude Opus 5.5 --- tests/i/class-overload-methods/program.cps | 46 ++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 tests/i/class-overload-methods/program.cps (limited to 'tests/i/class-overload-methods/program.cps') diff --git a/tests/i/class-overload-methods/program.cps b/tests/i/class-overload-methods/program.cps new file mode 100644 index 0000000..e68d416 --- /dev/null +++ b/tests/i/class-overload-methods/program.cps @@ -0,0 +1,46 @@ +CLASS Box +Value : INTEGER +PUBLIC OVERLOAD PROCEDURE NEW() +Value <- 1 +ENDPROCEDURE +PUBLIC OVERLOAD PROCEDURE NEW(x : INTEGER) +Value <- x +ENDPROCEDURE +PUBLIC OVERLOAD PROCEDURE NEW(x : STRING) +Value <- LENGTH(x) +ENDPROCEDURE +OVERLOAD FUNCTION Get() RETURNS INTEGER +RETURN Value +ENDFUNCTION +OVERLOAD FUNCTION Get(x : INTEGER) RETURNS INTEGER +RETURN Value + x +ENDFUNCTION +OVERLOAD FUNCTION Get(x : STRING) RETURNS STRING +RETURN x & "!" +ENDFUNCTION +OVERLOAD PROCEDURE Set(x : INTEGER) +Value <- x +ENDPROCEDURE +OVERLOAD PROCEDURE Set(x : STRING) +Value <- LENGTH(x) +ENDPROCEDURE +ENDCLASS +TYPE Holder +DECLARE Item : Box +ENDTYPE +DECLARE a : Box +DECLARE b : Box(7) +DECLARE c : Box("four") +DECLARE h : Holder +DECLARE items : ARRAY[1:2] OF Box +OUTPUT a.Get(), b.Get(), c.Get() +OUTPUT h.Item.Get(), items[2].Get() +OUTPUT b.Get(2) +OUTPUT b.Get("ok") +CALL a.Set("abc") +OUTPUT a.Get() +a <- NEW Box(8) +OUTPUT a.Get() +CALL a.NEW() +OUTPUT a.Get() +DELETE a -- cgit v1.3.1-4-g156e