aboutsummaryrefslogtreecommitdiff
path: root/source/main.elna
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2026-07-21 21:27:03 +0200
committerEugen Wissner <belka@caraus.de>2026-07-21 21:27:03 +0200
commit5cc2947143f2a6ebd4ef1ae4d25ab956b87de808 (patch)
tree0d4489b298da3be04ed4bce117f616468146a0f8 /source/main.elna
parent44d6e8a27294e5ca7300ab11900011b73d9336d4 (diff)
downloadelna-5cc2947143f2a6ebd4ef1ae4d25ab956b87de808.tar.gz
Redefine strings as slice of constant charactersHEADcpp
Diffstat (limited to 'source/main.elna')
-rw-r--r--source/main.elna18
1 files changed, 6 insertions, 12 deletions
diff --git a/source/main.elna b/source/main.elna
index 4a23898..c127ba4 100644
--- a/source/main.elna
+++ b/source/main.elna
@@ -40,19 +40,13 @@ var
proc reallocarray(ptr: Pointer; n: Word; size: Word): Pointer
return realloc(ptr, n * size)
-proc substring(string: String; start: Word; count: Word): String
-return String(string.ptr + start, count)
-
-proc open_substring(string: String; start: Word): String
-return substring(string, start, string.length - start)
-
-proc string_dup(origin: String): String
+proc string_dup(origin: []const Char): []const Char
var
copy: ^Char
begin
copy := malloc(origin.length);
strncpy(copy, origin.ptr, origin.length)
-return String(copy, origin.length)
+return copy[1 to origin.length]
proc string_buffer_new(): StringBuffer
var
@@ -78,11 +72,11 @@ begin
buffer^.size := buffer^.size - count
return
-proc string_buffer_clear(buffer: ^StringBuffer): String
+proc string_buffer_clear(buffer: ^StringBuffer): []const Char
var
- result: String
+ result: []const Char
begin
- result := String(cast(buffer^.data: ^Char), buffer^.size);
+ result := cast(buffer^.data: ^Char)[1 to buffer^.size];
buffer^.size := 0u
return result
@@ -300,7 +294,7 @@ begin
return
(* Categorize an identifier. *)
-proc lexer_categorize(token_content: String): ^ElnaLexerToken
+proc lexer_categorize(token_content: []const Char): ^ElnaLexerToken
var
current_token: ^ElnaLexerToken
begin