aboutsummaryrefslogtreecommitdiff
path: root/source/lexer.elna
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2026-07-06 10:44:15 +0200
committerEugen Wissner <belka@caraus.de>2026-07-07 00:47:59 +0200
commit470bfba45661d19558c0bf43b7819696a925ecb4 (patch)
tree44eef131a3edca1cc5489fa45851a5d5685ec530 /source/lexer.elna
parent8ea930783d15c04bbe9a027eaf19ca10e2cd87c0 (diff)
downloadelna-470bfba45661d19558c0bf43b7819696a925ecb4.tar.gz
Fix compiler crashing on syntax errors
after error reporting.
Diffstat (limited to 'source/lexer.elna')
-rw-r--r--source/lexer.elna24
1 files changed, 12 insertions, 12 deletions
diff --git a/source/lexer.elna b/source/lexer.elna
index e6fc38c..b3250d0 100644
--- a/source/lexer.elna
+++ b/source/lexer.elna
@@ -298,7 +298,7 @@ begin
end
end
-proc compare_keyword(keyword: String, token_start: BufferPosition, token_end: ^Char) -> Bool
+proc compare_keyword(keyword: String; token_start: BufferPosition; token_end: ^Char) -> Bool
var
result: Bool
index: Word
@@ -321,7 +321,7 @@ begin
end
(* Reached the end of file. *)
-proc transition_action_eof(lexer: ^Lexer, token: ^LexerToken)
+proc transition_action_eof(lexer: ^Lexer; token: ^LexerToken)
begin
token^.kind := LexerKind.unknown
end
@@ -332,14 +332,14 @@ begin
end
(* Add the character to the token currently read and advance to the next character. *)
-proc transition_action_accumulate(lexer: ^Lexer, token: ^LexerToken)
+proc transition_action_accumulate(lexer: ^Lexer; token: ^LexerToken)
begin
increment(@lexer^.current)
end
(* The current character is not a part of the token. Finish the token already
* read. Don't advance to the next character. *)
-proc transition_action_finalize(lexer: ^Lexer, token: ^LexerToken)
+proc transition_action_finalize(lexer: ^Lexer; token: ^LexerToken)
begin
if lexer^.start.iterator^ = ':' then
token^.kind := LexerKind.colon
@@ -362,7 +362,7 @@ begin
end
(* An action for tokens containing multiple characters. *)
-proc transition_action_composite(lexer: ^Lexer, token: ^LexerToken)
+proc transition_action_composite(lexer: ^Lexer; token: ^LexerToken)
begin
if lexer^.start.iterator^ = '<' then
if lexer^.current.iterator^ = '>' then
@@ -385,7 +385,7 @@ begin
end
(* Skip a space. *)
-proc transition_action_skip(lexer: ^Lexer, token: ^LexerToken)
+proc transition_action_skip(lexer: ^Lexer; token: ^LexerToken)
begin
increment(@lexer^.start);
@@ -397,7 +397,7 @@ begin
end
(* Delimited string action. *)
-proc transition_action_delimited(lexer: ^Lexer, token: ^LexerToken)
+proc transition_action_delimited(lexer: ^Lexer; token: ^LexerToken)
var
text_length: Word
begin
@@ -424,7 +424,7 @@ begin
end
(* Finalize keyword or identifier. *)
-proc transition_action_key_id(lexer: ^Lexer, token: ^LexerToken)
+proc transition_action_key_id(lexer: ^Lexer; token: ^LexerToken)
begin
token^.kind := LexerKind.identifier;
@@ -518,7 +518,7 @@ end
(* Action for tokens containing only one character. The character cannot be
* followed by other characters forming a composite token. *)
-proc transition_action_single(lexer: ^Lexer, token: ^LexerToken)
+proc transition_action_single(lexer: ^Lexer; token: ^LexerToken)
begin
if lexer^.current.iterator^ = '&' then
token^.kind := LexerKind.and
@@ -569,7 +569,7 @@ begin
end
(* Handle an integer literal. *)
-proc transition_action_integer(lexer: ^Lexer, token: ^LexerToken)
+proc transition_action_integer(lexer: ^Lexer; token: ^LexerToken)
var
buffer: String
integer_length: Word
@@ -585,7 +585,7 @@ begin
token^.value.integerKind := atoi(@token^.value.identifierKind[2])
end
-proc set_default_transition(current_state: TransitionState, default_action: TransitionAction, next_state: TransitionState) -> Int
+proc set_default_transition(current_state: TransitionState; default_action: TransitionAction; next_state: TransitionState) -> Int
var
default_transition: Transition
state_index: Int
@@ -878,7 +878,7 @@ begin
transitions[state_index][cast(TransitionClass.x: Int) + 1].next_state := TransitionState.finish
end
-proc lexer_make*(lexer: ^Lexer, input: ^FILE)
+proc lexer_make*(lexer: ^Lexer; input: ^FILE)
begin
lexer^.input := input;
lexer^.length := 0u;