From 65599524f5b41ffb6d8d55664611612c0b57ad47 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Tue, 20 Oct 2026 11:01:01 +0000 Subject: feat(library): add experimental string MID function Co-Authored-By: Claude Opus 5.5 --- tests/library/exp-string/program.cps | 13 +++++++++++++ 1 file changed, 13 insertions(+) (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 f8c037f..0b6c977 100644 --- a/tests/library/exp-string/program.cps +++ b/tests/library/exp-string/program.cps @@ -41,6 +41,7 @@ CALL _EXP_STRING_OUTPUT(Heap) DELETE Heap CALL CheckLeft() CALL CheckRight() +CALL CheckMid() PROCEDURE CheckLeft() DECLARE Letters : _EXP_STRING((C_STRING)"ABCDEFGH") @@ -63,3 +64,15 @@ PROCEDURE CheckRight() CALL _EXP_STRING_OUTPUT(_EXP_STRING_RIGHT(Letters, 20)) OUTPUT _EXP_STRING_LENGTH(_EXP_STRING_RIGHT(A & Nuls, 4)) ENDPROCEDURE + +PROCEDURE CheckMid() + DECLARE Letters : _EXP_STRING((C_STRING)"ABCDEFGH") + DECLARE Empty : _EXP_STRING + DECLARE Nuls : _EXP_STRING(3, (C_CHAR)'\0') + CALL _EXP_STRING_OUTPUT(_EXP_STRING_MID(Letters, 2, 3)) + CALL _EXP_STRING_OUTPUT(_EXP_STRING_MID(Letters, -9223372036854775808, 2)) + CALL _EXP_STRING_OUTPUT(_EXP_STRING_MID(Letters, 7, 9223372036854775807)) + OUTPUT _EXP_STRING_LENGTH(_EXP_STRING_MID(Empty, 1, 2)), ":", _EXP_STRING_LENGTH(_EXP_STRING_MID(Letters, 9223372036854775807, 2)) + OUTPUT _EXP_STRING_LENGTH(_EXP_STRING_MID(Letters, 2, 0)), ":", _EXP_STRING_LENGTH(_EXP_STRING_MID(Letters, 2, -1)) + OUTPUT _EXP_STRING_LENGTH(_EXP_STRING_MID(Nuls & Letters, 2, 4)) +ENDPROCEDURE -- cgit v1.3.1-4-g156e