diff options
| author | _ov4 <ov4@ov4.org> | 2026-10-17 08:31:27 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-10-17 08:31:27 +0000 |
| commit | e847e4c53cf21fcb96f7ed7765e305a7ec8e6c19 (patch) | |
| tree | d065b2a3f0243df19e7013f433304d8032f83c7b /tests | |
| parent | c372c08dc940db58f1da9cadeb64b4cb3c837704 (diff) | |
feat(classes): parse DELETE destructor methods and DELETE statement
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'tests')
8 files changed, 49 insertions, 0 deletions
diff --git a/tests/iii/class-destructor-duplicate-error/case.json b/tests/iii/class-destructor-duplicate-error/case.json new file mode 100644 index 0000000..3ffc750 --- /dev/null +++ b/tests/iii/class-destructor-duplicate-error/case.json @@ -0,0 +1,8 @@ +{ + "errors": [ + { + "reason": "Duplicate member delete in class Box", + "line": 4 + } + ] +} diff --git a/tests/iii/class-destructor-duplicate-error/program.cps b/tests/iii/class-destructor-duplicate-error/program.cps new file mode 100644 index 0000000..661a9c2 --- /dev/null +++ b/tests/iii/class-destructor-duplicate-error/program.cps @@ -0,0 +1,6 @@ +CLASS Box +PROCEDURE DELETE() +ENDPROCEDURE +PROCEDURE delete() +ENDPROCEDURE +ENDCLASS diff --git a/tests/iii/class-destructor-function-error/case.json b/tests/iii/class-destructor-function-error/case.json new file mode 100644 index 0000000..5482f9d --- /dev/null +++ b/tests/iii/class-destructor-function-error/case.json @@ -0,0 +1,8 @@ +{ + "errors": [ + { + "reason": "destructor DELETE must be a PROCEDURE", + "line": 2 + } + ] +} diff --git a/tests/iii/class-destructor-function-error/program.cps b/tests/iii/class-destructor-function-error/program.cps new file mode 100644 index 0000000..89a2b5a --- /dev/null +++ b/tests/iii/class-destructor-function-error/program.cps @@ -0,0 +1,5 @@ +CLASS Box +FUNCTION DELETE() RETURNS INTEGER +RETURN 0 +ENDFUNCTION +ENDCLASS diff --git a/tests/iii/class-destructor-global-error/case.json b/tests/iii/class-destructor-global-error/case.json new file mode 100644 index 0000000..9df30b7 --- /dev/null +++ b/tests/iii/class-destructor-global-error/case.json @@ -0,0 +1,8 @@ +{ + "errors": [ + { + "reason": "destructor DELETE is only allowed in a CLASS", + "line": 1 + } + ] +} diff --git a/tests/iii/class-destructor-global-error/program.cps b/tests/iii/class-destructor-global-error/program.cps new file mode 100644 index 0000000..3bf448c --- /dev/null +++ b/tests/iii/class-destructor-global-error/program.cps @@ -0,0 +1,2 @@ +PROCEDURE DELETE() +ENDPROCEDURE diff --git a/tests/iii/class-destructor-parameters-error/case.json b/tests/iii/class-destructor-parameters-error/case.json new file mode 100644 index 0000000..6b2f839 --- /dev/null +++ b/tests/iii/class-destructor-parameters-error/case.json @@ -0,0 +1,8 @@ +{ + "errors": [ + { + "reason": "destructor DELETE must have no parameters", + "line": 2 + } + ] +} diff --git a/tests/iii/class-destructor-parameters-error/program.cps b/tests/iii/class-destructor-parameters-error/program.cps new file mode 100644 index 0000000..a3d9fd7 --- /dev/null +++ b/tests/iii/class-destructor-parameters-error/program.cps @@ -0,0 +1,4 @@ +CLASS Box +PROCEDURE DELETE(x : INTEGER) +ENDPROCEDURE +ENDCLASS |
