aboutsummaryrefslogtreecommitdiff
path: root/boot
diff options
context:
space:
mode:
Diffstat (limited to 'boot')
-rw-r--r--boot/stage24/cl.elna19
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