aboutsummaryrefslogtreecommitdiff
path: root/tests/library/exp-string/program.cps
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-20 11:00:16 +0000
committer_ov4 <ov4@ov4.org>2026-10-20 11:00:16 +0000
commit0c4db4fea1960571318444bd39593533b04b3716 (patch)
treec0370d23f10225a6ee3dfe73590f38ca05877606 /tests/library/exp-string/program.cps
parentcf9af14fe749c52473fdf5a327c3e935e45bf0e7 (diff)
feat(library): add experimental string RIGHT function
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'tests/library/exp-string/program.cps')
-rw-r--r--tests/library/exp-string/program.cps29
1 files changed, 24 insertions, 5 deletions
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