summaryrefslogtreecommitdiff
path: root/boot/stage21
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2026-05-27 14:05:17 +0200
committerEugen Wissner <belka@caraus.de>2026-05-27 14:05:17 +0200
commitb09ddfcbbedce37910daa6a1488a6e16a1be7c69 (patch)
tree3ce000aa5b4190318047c4a9d3927adb8e3b223b /boot/stage21
parente814ebae835aedf6b11155c8ac88fab210e103ea (diff)
downloadelna-b09ddfcbbedce37910daa6a1488a6e16a1be7c69.tar.gz
Remove need for trailing semicolons
Diffstat (limited to 'boot/stage21')
-rw-r--r--boot/stage21/cl.elna28
1 files changed, 20 insertions, 8 deletions
diff --git a/boot/stage21/cl.elna b/boot/stage21/cl.elna
index d00c3b6..bd54ecd 100644
--- a/boot/stage21/cl.elna
+++ b/boot/stage21/cl.elna
@@ -3991,10 +3991,16 @@ begin
result^.parameters := parameter_head;
(* Skip semicolon or arrow. *)
- token := elna_lexer_read(cursor);
+ token := elna_lexer_peek(cursor);
if token^.kind = ElnaLexerKind.arrow then
+ elna_lexer_read(cursor);
result^.return_type := elna_parser_type_expression(cursor);
+ token := elna_lexer_peek(cursor);
+ if token^.kind = ElnaLexerKind.semicolon then
+ elna_lexer_read(cursor)
+ end
+ elsif token^.kind = ElnaLexerKind.semicolon then
elna_lexer_read(cursor)
else
result^.return_type := nil
@@ -4270,8 +4276,10 @@ begin
current_declaration := parser_node;
(* Skip semicolon. *)
- elna_lexer_read(cursor);
-
+ token := elna_lexer_peek(cursor);
+ if token^.kind = ElnaLexerKind.semicolon then
+ elna_lexer_read(cursor)
+ end;
goto elna_parser_procedures_loop
end;
return result
@@ -4393,8 +4401,10 @@ begin
elna_lexer_read(cursor);
result^.type_expression := elna_parser_type_expression(cursor);
- elna_lexer_read(cursor);
-
+ token := elna_lexer_peek(cursor);
+ if token^.kind = ElnaLexerKind.semicolon then
+ elna_lexer_read(cursor);
+ end;
return result
end;
@@ -4512,8 +4522,10 @@ begin
variable_node := elna_parser_variable_declaration(cursor);
(* Skip semicolon. *)
- elna_lexer_read(cursor);
-
+ token := elna_lexer_peek(cursor);
+ if token^.kind = ElnaLexerKind.semicolon then
+ elna_lexer_read(cursor)
+ end;
if result = nil then
result := variable_node
else
@@ -6032,4 +6044,4 @@ begin
else
exit(4)
end
-end;
+end.