aboutsummaryrefslogtreecommitdiff
path: root/boot/parser.yy
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2026-07-09 09:21:57 +0200
committerEugen Wissner <belka@caraus.de>2026-07-09 09:21:57 +0200
commit8d8e771af944796eba10cfa9568d284daaab93a1 (patch)
tree96aab1466fa210a574dd4dd406a5270d88c229c3 /boot/parser.yy
parentcd3574320bf57b2eaad93ef6f58dee6c9d41cb19 (diff)
downloadelna-8d8e771af944796eba10cfa9568d284daaab93a1.tar.gz
Implement record extensions
Diffstat (limited to 'boot/parser.yy')
-rw-r--r--boot/parser.yy6
1 files changed, 5 insertions, 1 deletions
diff --git a/boot/parser.yy b/boot/parser.yy
index b05b544..7797dd1 100644
--- a/boot/parser.yy
+++ b/boot/parser.yy
@@ -460,7 +460,11 @@ type_expression:
}
| "record" optional_fields "end"
{
- $$ = new boot::record_type_expression(boot::make_position(@1), std::move($2));
+ $$ = new boot::record_type_expression(boot::make_position(@1), std::move($2), std::nullopt);
+ }
+ | "record" "(" IDENTIFIER ")" optional_fields "end"
+ {
+ $$ = new boot::record_type_expression(boot::make_position(@1), std::move($5), std::move($3));
}
| "union" required_fields "end"
{