diff options
| author | Eugen Wissner <belka@caraus.de> | 2026-07-01 23:06:50 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2026-07-01 23:06:50 +0200 |
| commit | 146f164b219cb1d592b48eff1078c3861087ace6 (patch) | |
| tree | d10d8f810761e2d4b26d449b58371c207e4fd3ef /boot/stage24 | |
| parent | 44143ee21da8725df24ddf59ed91d7b47b7092c2 (diff) | |
| download | elna-146f164b219cb1d592b48eff1078c3861087ace6.tar.gz | |
Diffstat (limited to 'boot/stage24')
| -rw-r--r-- | boot/stage24/cl.elna | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/boot/stage24/cl.elna b/boot/stage24/cl.elna index 3bc9d7d..3e17e07 100644 --- a/boot/stage24/cl.elna +++ b/boot/stage24/cl.elna @@ -274,7 +274,8 @@ type kind: ElnaTreeKind; position: ElnaPosition; members: ^ElnaTreeField; - length: Word + length: Word; + parent: String end ElnaTreeNamedTypeExpression = record kind: ElnaTreeKind; @@ -3941,6 +3942,22 @@ begin result^.length := 0; result^.position := token^.position; + token := elna_lexer_peek(cursor); + if token^.kind = ElnaLexerKind.left_paren then + elna_lexer_read(cursor); + + token := elna_parser_expect(cursor, ElnaLexerKind.identifier, error_list); + if token = nil then + result := free_and_nil(result); + goto elna_parser_record_type_expression_end + end; + result^.parent := token^.start; + if elna_parser_expect(cursor, ElnaLexerKind.right_paren, error_list) = nil then + result := free_and_nil(result); + goto elna_parser_record_type_expression_end + end + end; + .elna_parser_record_type_expression_loop; token := elna_lexer_read(cursor); if token^.kind = ElnaLexerKind._end then |
