From 98c60aef16b89df142abf58ea6674ddc4c809d8a Mon Sep 17 00:00:00 2001 From: servostar Date: Sun, 5 May 2024 21:51:51 +0200 Subject: [PATCH] added rule for branches --- src/yacc/parser.y | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/yacc/parser.y b/src/yacc/parser.y index e4cc3fa..014dce0 100644 --- a/src/yacc/parser.y +++ b/src/yacc/parser.y @@ -56,7 +56,7 @@ %token FunExtsupport %% -program: statement; +program: statementlist; expr: ValFloat @@ -65,9 +65,23 @@ expr: ValFloat | ValStr | Ident; +statementlist: statementlist statement + | ; + statement: assign | decl - | definition; + | definition + | branch; + +branchif: KeyIf expr '{' statementlist '}' { DEBUG("if"); }; +branchelse: KeyElse '{' statementlist '}' { DEBUG("if-else"); }; +branchelseif: KeyElse KeyIf expr '{' statementlist '}' { DEBUG("else-if"); }; + +branchelseifs: branchelseifs branchelseif + | ; + +branch: branchif branchelseifs + | branchif branchelseifs branchelse; identlist: Ident ',' identlist | Ident