aboutsummaryrefslogtreecommitdiff
path: root/source/lexer.elna
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2026-08-18 13:31:47 +0200
committerEugen Wissner <belka@caraus.de>2026-08-18 13:31:47 +0200
commit4f77ad5d019618893c59a0f8d5bfa6b98e50a3be (patch)
treed9e01460ecf94a491be476fbca76b6608276d967 /source/lexer.elna
parent4b7c87a9b53f5317e9f7982bd779d53a66960bdc (diff)
downloadelna-4f77ad5d019618893c59a0f8d5bfa6b98e50a3be.tar.gz
Make Int and Word aliases to fixed-size types
Diffstat (limited to 'source/lexer.elna')
-rw-r--r--source/lexer.elna42
1 files changed, 21 insertions, 21 deletions
diff --git a/source/lexer.elna b/source/lexer.elna
index fa79917..83e89df 100644
--- a/source/lexer.elna
+++ b/source/lexer.elna
@@ -28,17 +28,17 @@ type
)
ElnaLexerToken* = record
kind: ElnaLexerKind;
- start: []const Char; (* DEPRECATED *)
+ start: []const Word8; (* DEPRECATED *)
position: ElnaPosition
end
ElnaLexerBooleanToken* = record(ElnaLexerToken)
value: Bool
end
ElnaLexerCharacterToken* = record(ElnaLexerToken)
- value: Char
+ value: Word8
end
ElnaLexerStringToken* = record(ElnaLexerToken)
- value: []const Char
+ value: []const Word8
end
ElnaLexerIntegerToken* = record(ElnaLexerToken)
value: Int
@@ -55,19 +55,19 @@ type
ElnaLexerCursor = record
state: ElnaLexerState;
- start: ^Char;
- finish: ^Char;
+ start: ^Word8;
+ finish: ^Word8;
token: ^ElnaLexerToken;
position: ElnaPosition
end
BufferPosition* = record
- iterator: ^Char;
+ iterator: ^Word8;
location: ElnaLocation
end
Lexer* = record
input: ^FILE;
- buffer: ^Char;
+ buffer: ^Word8;
size: Word;
length: Word;
start: BufferPosition;
@@ -513,7 +513,7 @@ begin
cursor^.position.end_location.column := cursor^.position.end_location.column + 1u
return
-proc elna_lexer_classify_space(start_position: ^Char; location: ^ElnaLocation)
+proc elna_lexer_classify_space(start_position: ^Word8; location: ^ElnaLocation)
begin
if start_position^ = '\n' then
location^.line := location^.line + 1u;
@@ -532,7 +532,7 @@ begin
result^.position := position^
return result
-proc elna_lexer_classify_keyword(position_start, position_end: ^Char; position: ^ElnaPosition): ^ElnaLexerToken
+proc elna_lexer_classify_keyword(position_start, position_end: ^Word8; position: ^ElnaPosition): ^ElnaLexerToken
var
result: ^ElnaLexerToken
result_length: Word
@@ -587,9 +587,9 @@ begin
end
return result
-proc elna_lexer_classify_delimited(start_position, end_position: ^Char; position: ^ElnaPosition): ^ElnaLexerToken
+proc elna_lexer_classify_delimited(start_position, end_position: ^Word8; position: ^ElnaPosition): ^ElnaLexerToken
var
- delimiter: Char
+ delimiter: Word8
result: ^ElnaLexerToken
begin
delimiter := start_position^;
@@ -604,7 +604,7 @@ begin
result^.start := start_position[1 to cast(end_position - start_position: Word)]
return result
-proc elna_lexer_classify_integer(start_position, end_position: ^Char; position: ^ElnaPosition): ^ElnaLexerToken
+proc elna_lexer_classify_integer(start_position, end_position: ^Word8; position: ^ElnaPosition): ^ElnaLexerToken
var
result: ^ElnaLexerToken
begin
@@ -612,9 +612,9 @@ begin
result^.start := start_position[1 to cast(end_position - start_position: Word)]
return result
-proc elna_lexer_classify_finalize(start_position: ^Char; position: ^ElnaPosition): ^ElnaLexerToken
+proc elna_lexer_classify_finalize(start_position: ^Word8; position: ^ElnaPosition): ^ElnaLexerToken
var
- character: Char
+ character: Word8
result: ^ElnaLexerToken
begin
character := start_position^;
@@ -634,9 +634,9 @@ begin
end
return result
-proc elna_lexer_classify_single(start_position: ^Char; position: ^ElnaPosition): ^ElnaLexerToken
+proc elna_lexer_classify_single(start_position: ^Word8; position: ^ElnaPosition): ^ElnaLexerToken
var
- character: Char
+ character: Word8
result: ^ElnaLexerToken
begin
result := malloc(#size(ElnaLexerToken));
@@ -675,10 +675,10 @@ begin
end
return result
-proc elna_lexer_classify_composite(start_position, one_before_last: ^Char; position: ^ElnaPosition): ^ElnaLexerToken
+proc elna_lexer_classify_composite(start_position, one_before_last: ^Word8; position: ^ElnaPosition): ^ElnaLexerToken
var
- first_character: Char
- last_character: Char
+ first_character: Word8
+ last_character: Word8
result: ^ElnaLexerToken
begin
first_character := start_position^;
@@ -739,7 +739,7 @@ return token
proc elna_lexer_execute_transition(cursor: ^ElnaLexerCursor): ^ElnaLexerToken
var
next_transition: ^ElnaLexerTransition
- current_character: Char
+ current_character: Word8
begin
current_character := cursor^.finish^;
next_transition := elna_lexer_get_transition(cursor^.state,
@@ -750,7 +750,7 @@ return elna_lexer_execute_action(cursor, next_transition^.action)
(**
* One time lexer initialization.
*)
-proc elna_lexer_initialize(cursor: ^ElnaLexerCursor; code_pointer: ^Char)
+proc elna_lexer_initialize(cursor: ^ElnaLexerCursor; code_pointer: ^Word8)
begin
elna_lexer_classifications();
elna_lexer_transitions();