aboutsummaryrefslogtreecommitdiff
path: root/source/main.elna
diff options
context:
space:
mode:
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