From fd9e8a36b56a90770c9beb269ca849a67d2a106b Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Wed, 19 Nov 2025 10:25:41 +0100 Subject: Add jump_if_not_zero and bnez instructions --- boot/stage15/cl.elna | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'boot/stage15') diff --git a/boot/stage15/cl.elna b/boot/stage15/cl.elna index 031cec2..f2d2cab 100644 --- a/boot/stage15/cl.elna +++ b/boot/stage15/cl.elna @@ -4317,12 +4317,21 @@ var parser_node: Word; declaration_size: Word; result: Word; + token_kind: Word; begin declaration_size := _module_declaration_size(); result := _allocate(declaration_size); _node_set_kind(result, NodeKind.module_declaration); + _skip_empty_lines(); + _elna_lexer_read_token(@token_kind); + if token_kind = ElnaLexerKind._program then + _elna_lexer_skip_token(); + _elna_lexer_read_token(@token_kind); + _elna_lexer_skip_token() + end; + parser_node := _elna_parser_type_part(); _module_declaration_set_types(result, parser_node); @@ -5161,8 +5170,14 @@ begin result := ElnaLexerKind._record elsif _string_compare(position_start, token_length, "or", 2) then result := ElnaLexerKind._or - elsif _string_compare(position_start, token_length, "xor", 2) then + elsif _string_compare(position_start, token_length, "xor", 3) then result := ElnaLexerKind._xor + elsif _string_compare(position_start, token_length, "program", 7) then + result := ElnaLexerKind._program + elsif _string_compare(position_start, token_length, "module", 6) then + result := ElnaLexerKind._module + elsif _string_compare(position_start, token_length, "nil", 3) then + result := ElnaLexerKind.null end; return result end; -- cgit v1.2.3