From 0cf54b4f77ccf8376341950b02ceb7c1d1268ed7 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Fri, 30 Oct 2026 14:31:07 +0000 Subject: refactor(strings): construct string values implicitly from raw literals Keep double-quoted literals and text constants as C_STRING values. Use marked STRING constructors for text and CHAR conversion, preserving string operations and I/O through the existing class machinery. Co-Authored-By: Claude Opus 5.5 --- pseudocode-lib/string.cps | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'pseudocode-lib/string.cps') diff --git a/pseudocode-lib/string.cps b/pseudocode-lib/string.cps index 96de023..5bff821 100644 --- a/pseudocode-lib/string.cps +++ b/pseudocode-lib/string.cps @@ -37,9 +37,12 @@ CLASS STRING OVERLOAD PROCEDURE NEW(BYREF Other : STRING) _HANDLE <- _string_impl_copy(Other._HANDLE) ENDPROCEDURE - OVERLOAD PROCEDURE NEW(Text : C_STRING) + OVERLOAD IMPLICIT PROCEDURE NEW(Text : C_STRING) _HANDLE <- _string_impl_from_cstr(Text) ENDPROCEDURE + OVERLOAD IMPLICIT PROCEDURE NEW(Ch : CHAR) + _HANDLE <- _string_impl_from_count_char((_STRING_C_INTEGER)1, (C_CHAR)Ch) + ENDPROCEDURE OVERLOAD PROCEDURE NEW(Count : INTEGER, Ch : C_CHAR) _HANDLE <- _string_impl_from_count_char((_STRING_C_INTEGER)Count, Ch) ENDPROCEDURE -- cgit v1.3.1-4-g156e