diff options
Diffstat (limited to 'boot/parser.yy')
| -rw-r--r-- | boot/parser.yy | 6 |
1 files changed, 6 insertions, 0 deletions
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(@$)); } |
