From 0c4db4fea1960571318444bd39593533b04b3716 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Tue, 20 Oct 2026 11:00:16 +0000 Subject: feat(library): add experimental string RIGHT function Co-Authored-By: Claude Opus 5.5 --- tests/library/exp-string/program.cps | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) (limited to 'tests/library/exp-string/program.cps') diff --git a/tests/library/exp-string/program.cps b/tests/library/exp-string/program.cps index c9dad8a..f8c037f 100644 --- a/tests/library/exp-string/program.cps +++ b/tests/library/exp-string/program.cps @@ -39,8 +39,27 @@ DECLARE Heap : _EXP_STRING Heap <- NEW _EXP_STRING((C_STRING)"heap") CALL _EXP_STRING_OUTPUT(Heap) DELETE Heap -DECLARE Letters : _EXP_STRING((C_STRING)"ABCDEFGH") -CALL _EXP_STRING_OUTPUT(_EXP_STRING_LEFT(Letters, 3)) -OUTPUT _EXP_STRING_LENGTH(_EXP_STRING_LEFT(Empty, 2)), ":", _EXP_STRING_LENGTH(_EXP_STRING_LEFT(Letters, 0)), ":", _EXP_STRING_LENGTH(_EXP_STRING_LEFT(Letters, -1)) -CALL _EXP_STRING_OUTPUT(_EXP_STRING_LEFT(Letters, 20)) -OUTPUT _EXP_STRING_LENGTH(_EXP_STRING_LEFT(Nuls & A, 4)) +CALL CheckLeft() +CALL CheckRight() + +PROCEDURE CheckLeft() + DECLARE Letters : _EXP_STRING((C_STRING)"ABCDEFGH") + DECLARE Empty : _EXP_STRING + DECLARE Nuls : _EXP_STRING(3, (C_CHAR)'\0') + DECLARE A : _EXP_STRING((C_STRING)"hello") + CALL _EXP_STRING_OUTPUT(_EXP_STRING_LEFT(Letters, 3)) + OUTPUT _EXP_STRING_LENGTH(_EXP_STRING_LEFT(Empty, 2)), ":", _EXP_STRING_LENGTH(_EXP_STRING_LEFT(Letters, 0)), ":", _EXP_STRING_LENGTH(_EXP_STRING_LEFT(Letters, -1)) + CALL _EXP_STRING_OUTPUT(_EXP_STRING_LEFT(Letters, 20)) + OUTPUT _EXP_STRING_LENGTH(_EXP_STRING_LEFT(Nuls & A, 4)) +ENDPROCEDURE + +PROCEDURE CheckRight() + DECLARE Letters : _EXP_STRING((C_STRING)"ABCDEFGH") + DECLARE Empty : _EXP_STRING + DECLARE Nuls : _EXP_STRING(3, (C_CHAR)'\0') + DECLARE A : _EXP_STRING((C_STRING)"hello") + CALL _EXP_STRING_OUTPUT(_EXP_STRING_RIGHT(Letters, 3)) + OUTPUT _EXP_STRING_LENGTH(_EXP_STRING_RIGHT(Empty, 2)), ":", _EXP_STRING_LENGTH(_EXP_STRING_RIGHT(Letters, 0)), ":", _EXP_STRING_LENGTH(_EXP_STRING_RIGHT(Letters, -1)) + CALL _EXP_STRING_OUTPUT(_EXP_STRING_RIGHT(Letters, 20)) + OUTPUT _EXP_STRING_LENGTH(_EXP_STRING_RIGHT(A & Nuls, 4)) +ENDPROCEDURE -- cgit v1.3.1-4-g156e