From b575036fe804f14b78da74897a74b010cc94f730 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Wed, 16 Sep 2026 11:49:35 +0200 Subject: Implement named blocks --- boot/parser.yy | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'boot/parser.yy') diff --git a/boot/parser.yy b/boot/parser.yy index ab386fe..eaf1a7c 100644 --- a/boot/parser.yy +++ b/boot/parser.yy @@ -112,6 +112,8 @@ along with GCC; see the file COPYING3. If not see BEGIN_BLOCK "begin" END_BLOCK "end" DEFER "defer" + BLOCK "block" + BREAK "break" CASE "case" OF "of" TO "to" @@ -582,6 +584,10 @@ statement: | call_expression { $$ = $1.release(); } | "defer" statements "end" { $$ = new boot::defer_statement(boot::make_position(@$), $2); } + | "block" identifier statements "end" + { $$ = new boot::block_statement(boot::make_position(@$), std::move(*$2), $3); } + | "break" identifier + { $$ = new boot::break_statement(boot::make_position(@$), std::move(*$2)); } | "case" expression "of" switch_cases else_statements "end" { $$ = new boot::case_statement(boot::make_position(@$), $2, $4, $5); } | %empty { $$ = new boot::empty_statement(boot::make_position(@$)); } -- cgit v1.2.3