From 56cd967554e39dd9053b2b28c1f603ae63808527 Mon Sep 17 00:00:00 2001 From: Flavian Kaufmann Date: Tue, 20 May 2025 14:18:59 +0200 Subject: optionally omit parenthesis with sequential composition --- src/parser.y | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/parser.y') diff --git a/src/parser.y b/src/parser.y index cb3544e..c1e1d0e 100644 --- a/src/parser.y +++ b/src/parser.y @@ -27,7 +27,7 @@ void yyerror(const char *s) { %token TOKEN_NUMERAL %token TOKEN_ASSIGN %token TOKEN_LEFT_PARENTHESIS TOKEN_RIGHT_PARENTHESIS -%token TOKEN_SEMICOLON +%left TOKEN_SEMICOLON %token TOKEN_SKIP %token TOKEN_IF TOKEN_THEN TOKEN_ELSE TOKEN_END TOKEN_WHILE TOKEN_DO TOKEN_VAR TOKEN_IN %token TOKEN_PLUS TOKEN_MINUS TOKEN_MULTIPLY @@ -50,6 +50,8 @@ statement : TOKEN_SKIP { $$ = ast_assign($1, $3); } | TOKEN_LEFT_PARENTHESIS statement TOKEN_SEMICOLON statement TOKEN_RIGHT_PARENTHESIS { $$ = ast_seq($2, $4); } + | statement TOKEN_SEMICOLON statement + { $$ = ast_seq($1, $3); } | TOKEN_IF boolean_expression TOKEN_THEN statement TOKEN_ELSE statement TOKEN_END { $$ = ast_if($2, $4, $6); } | TOKEN_WHILE boolean_expression TOKEN_DO statement TOKEN_END -- cgit v1.2.3