aboutsummaryrefslogtreecommitdiff
path: root/pseudocode-lib/_exp_string.cps
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-20 11:57:16 +0000
committer_ov4 <ov4@ov4.org>2026-10-20 11:57:16 +0000
commit62b605c6c0ea13e9763c0a0115464007b13a8831 (patch)
tree53c27965f5a365682e0d79fd96e25b228ecb9dca /pseudocode-lib/_exp_string.cps
parentbfe2e75d7e3b372e55369677028429990c49bc54 (diff)
refactor(strings): replace compiler builtins with the STRING library
Construct literals as STRING values and route string operations through ordinary library functions and operators. Preserve value ownership in records, arrays, constants and file I/O. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'pseudocode-lib/_exp_string.cps')
-rw-r--r--pseudocode-lib/_exp_string.cps123
1 files changed, 0 insertions, 123 deletions
diff --git a/pseudocode-lib/_exp_string.cps b/pseudocode-lib/_exp_string.cps
deleted file mode 100644
index 975a583..0000000
--- a/pseudocode-lib/_exp_string.cps
+++ /dev/null
@@ -1,123 +0,0 @@
-#LIB
-INCLUDE_OBJ "_exp_string.o"
-TYPE _EXP_STRING_HANDLE = C_TYPE("void*")
-TYPE _EXP_STRING_C_INTEGER = C_TYPE("long long")
-EXTERN "C" EXTERN_FUNCTION _exp_string_impl_new() RETURNS _EXP_STRING_HANDLE
-EXTERN "C" EXTERN_FUNCTION _exp_string_impl_copy(_EXP_STRING_HANDLE) RETURNS _EXP_STRING_HANDLE
-EXTERN "C" EXTERN_FUNCTION _exp_string_impl_from_cstr(C_STRING) RETURNS _EXP_STRING_HANDLE
-EXTERN "C" EXTERN_FUNCTION _exp_string_impl_from_count_char(_EXP_STRING_C_INTEGER, C_CHAR) RETURNS _EXP_STRING_HANDLE
-EXTERN "C" EXTERN_PROCEDURE _exp_string_impl_delete(_EXP_STRING_HANDLE)
-EXTERN "C" EXTERN_PROCEDURE _exp_string_impl_assign(_EXP_STRING_HANDLE, _EXP_STRING_HANDLE)
-EXTERN "C" EXTERN_PROCEDURE _exp_string_impl_assign_cstr(_EXP_STRING_HANDLE, C_STRING)
-EXTERN "C" EXTERN_PROCEDURE _exp_string_impl_concat(_EXP_STRING_HANDLE, _EXP_STRING_HANDLE, _EXP_STRING_HANDLE)
-EXTERN "C" EXTERN_PROCEDURE _exp_string_impl_from_int(_EXP_STRING_HANDLE, _EXP_STRING_C_INTEGER)
-EXTERN "C" EXTERN_PROCEDURE _exp_string_impl_from_real(_EXP_STRING_HANDLE, C_DOUBLE)
-EXTERN "C" EXTERN_FUNCTION _exp_string_impl_to_real(_EXP_STRING_HANDLE) RETURNS C_DOUBLE
-EXTERN "C" EXTERN_FUNCTION _exp_string_impl_length(_EXP_STRING_HANDLE) RETURNS _EXP_STRING_C_INTEGER
-EXTERN "C" EXTERN_PROCEDURE _exp_string_impl_left(_EXP_STRING_HANDLE, _EXP_STRING_HANDLE, _EXP_STRING_C_INTEGER)
-EXTERN "C" EXTERN_PROCEDURE _exp_string_impl_right(_EXP_STRING_HANDLE, _EXP_STRING_HANDLE, _EXP_STRING_C_INTEGER)
-EXTERN "C" EXTERN_PROCEDURE _exp_string_impl_mid(_EXP_STRING_HANDLE, _EXP_STRING_HANDLE, _EXP_STRING_C_INTEGER, _EXP_STRING_C_INTEGER)
-EXTERN "C" EXTERN_PROCEDURE _exp_string_impl_lcase(_EXP_STRING_HANDLE, _EXP_STRING_HANDLE)
-EXTERN "C" EXTERN_FUNCTION _exp_string_impl_lcase_char(C_CHAR) RETURNS C_CHAR
-EXTERN "C" EXTERN_PROCEDURE _exp_string_impl_ucase(_EXP_STRING_HANDLE, _EXP_STRING_HANDLE)
-EXTERN "C" EXTERN_FUNCTION _exp_string_impl_ucase_char(C_CHAR) RETURNS C_CHAR
-EXTERN "C" EXTERN_FUNCTION _exp_string_impl_asc(_EXP_STRING_HANDLE) RETURNS _EXP_STRING_C_INTEGER
-EXTERN "C" EXTERN_FUNCTION _exp_string_impl_asc_char(C_CHAR) RETURNS _EXP_STRING_C_INTEGER
-EXTERN "C" EXTERN_PROCEDURE _exp_string_impl_chr(_EXP_STRING_HANDLE, _EXP_STRING_C_INTEGER)
-EXTERN "C" EXTERN_FUNCTION _exp_string_impl_is_num(_EXP_STRING_HANDLE) RETURNS C_INT
-EXTERN "C" EXTERN_PROCEDURE _exp_string_impl_output(_EXP_STRING_HANDLE)
-
-CLASS _EXP_STRING
- PUBLIC _HANDLE : _EXP_STRING_HANDLE
- OVERLOAD PROCEDURE NEW()
- _HANDLE <- _exp_string_impl_new()
- ENDPROCEDURE
- OVERLOAD PROCEDURE NEW(BYREF Other : _EXP_STRING)
- _HANDLE <- _exp_string_impl_copy(Other._HANDLE)
- ENDPROCEDURE
- OVERLOAD PROCEDURE NEW(Text : C_STRING)
- _HANDLE <- _exp_string_impl_from_cstr(Text)
- ENDPROCEDURE
- OVERLOAD PROCEDURE NEW(Count : INTEGER, Ch : C_CHAR)
- _HANDLE <- _exp_string_impl_from_count_char((_EXP_STRING_C_INTEGER)Count, Ch)
- ENDPROCEDURE
- PROCEDURE DELETE()
- CALL _exp_string_impl_delete(_HANDLE)
- ENDPROCEDURE
- OVERLOAD PROCEDURE OPERATOR<-(BYREF Other : _EXP_STRING)
- CALL _exp_string_impl_assign(_HANDLE, Other._HANDLE)
- ENDPROCEDURE
- OVERLOAD PROCEDURE OPERATOR<-(Text : C_STRING)
- CALL _exp_string_impl_assign_cstr(_HANDLE, Text)
- ENDPROCEDURE
-ENDCLASS
-
-OVERLOAD FUNCTION OPERATOR&(A : _EXP_STRING, B : _EXP_STRING) RETURNS _EXP_STRING
- DECLARE Result : _EXP_STRING
- CALL _exp_string_impl_concat(Result._HANDLE, A._HANDLE, B._HANDLE)
- RETURN Result
-ENDFUNCTION
-OVERLOAD FUNCTION _EXP_STRING_NUM_TO_STR(Number : INTEGER) RETURNS _EXP_STRING
- DECLARE Result : _EXP_STRING
- CALL _exp_string_impl_from_int(Result._HANDLE, (_EXP_STRING_C_INTEGER)Number)
- RETURN Result
-ENDFUNCTION
-OVERLOAD FUNCTION _EXP_STRING_NUM_TO_STR(Number : REAL) RETURNS _EXP_STRING
- DECLARE Result : _EXP_STRING
- CALL _exp_string_impl_from_real(Result._HANDLE, (C_DOUBLE)Number)
- RETURN Result
-ENDFUNCTION
-FUNCTION _EXP_STRING_STR_TO_NUM(S : _EXP_STRING) RETURNS REAL
- RETURN (REAL)_exp_string_impl_to_real(S._HANDLE)
-ENDFUNCTION
-FUNCTION _EXP_STRING_LENGTH(S : _EXP_STRING) RETURNS INTEGER
- RETURN (INTEGER)_exp_string_impl_length(S._HANDLE)
-ENDFUNCTION
-PROCEDURE _EXP_STRING_OUTPUT(S : _EXP_STRING)
- CALL _exp_string_impl_output(S._HANDLE)
-ENDPROCEDURE
-FUNCTION _EXP_STRING_LEFT(S : _EXP_STRING, Count : INTEGER) RETURNS _EXP_STRING
- DECLARE Result : _EXP_STRING
- CALL _exp_string_impl_left(Result._HANDLE, S._HANDLE, (_EXP_STRING_C_INTEGER)Count)
- RETURN Result
-ENDFUNCTION
-FUNCTION _EXP_STRING_RIGHT(S : _EXP_STRING, Count : INTEGER) RETURNS _EXP_STRING
- DECLARE Result : _EXP_STRING
- CALL _exp_string_impl_right(Result._HANDLE, S._HANDLE, (_EXP_STRING_C_INTEGER)Count)
- RETURN Result
-ENDFUNCTION
-FUNCTION _EXP_STRING_MID(S : _EXP_STRING, Start : INTEGER, Count : INTEGER) RETURNS _EXP_STRING
- DECLARE Result : _EXP_STRING
- CALL _exp_string_impl_mid(Result._HANDLE, S._HANDLE, (_EXP_STRING_C_INTEGER)Start, (_EXP_STRING_C_INTEGER)Count)
- RETURN Result
-ENDFUNCTION
-OVERLOAD FUNCTION _EXP_STRING_LCASE(S : _EXP_STRING) RETURNS _EXP_STRING
- DECLARE Result : _EXP_STRING
- CALL _exp_string_impl_lcase(Result._HANDLE, S._HANDLE)
- RETURN Result
-ENDFUNCTION
-OVERLOAD FUNCTION _EXP_STRING_LCASE(Ch : CHAR) RETURNS CHAR
- RETURN (CHAR)_exp_string_impl_lcase_char((C_CHAR)Ch)
-ENDFUNCTION
-OVERLOAD FUNCTION _EXP_STRING_UCASE(S : _EXP_STRING) RETURNS _EXP_STRING
- DECLARE Result : _EXP_STRING
- CALL _exp_string_impl_ucase(Result._HANDLE, S._HANDLE)
- RETURN Result
-ENDFUNCTION
-OVERLOAD FUNCTION _EXP_STRING_UCASE(Ch : CHAR) RETURNS CHAR
- RETURN (CHAR)_exp_string_impl_ucase_char((C_CHAR)Ch)
-ENDFUNCTION
-OVERLOAD FUNCTION _EXP_STRING_ASC(S : _EXP_STRING) RETURNS INTEGER
- RETURN (INTEGER)_exp_string_impl_asc(S._HANDLE)
-ENDFUNCTION
-OVERLOAD FUNCTION _EXP_STRING_ASC(Ch : CHAR) RETURNS INTEGER
- RETURN (INTEGER)_exp_string_impl_asc_char((C_CHAR)Ch)
-ENDFUNCTION
-FUNCTION _EXP_STRING_CHR(Code : INTEGER) RETURNS _EXP_STRING
- DECLARE Result : _EXP_STRING
- CALL _exp_string_impl_chr(Result._HANDLE, (_EXP_STRING_C_INTEGER)Code)
- RETURN Result
-ENDFUNCTION
-FUNCTION _EXP_STRING_IS_NUM(S : _EXP_STRING) RETURNS BOOLEAN
- RETURN (BOOLEAN)_exp_string_impl_is_num(S._HANDLE)
-ENDFUNCTION