From f6391370c8d4c288605a39506f20fb584009eccf Mon Sep 17 00:00:00 2001 From: Peter Matta <mattapet@fit.cvut.cz> Date: Wed, 18 Apr 2018 14:55:02 +0200 Subject: [PATCH] Updated grammar --- grammar.txt | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/grammar.txt b/grammar.txt index f54287c..9be88bb 100644 --- a/grammar.txt +++ b/grammar.txt @@ -39,6 +39,19 @@ Stmt -> If // 'if' FuncCall -> epsilon // _ | Operator, ')', '{', ';' FuncCall -> '(' Args ')' // '(' +ExprPattern -> '(' ExprPattern_ ')' // '(' +ExprPattern_ -> epsilon // _ | ')' +ExprPattern_ -> Expr ExprPattern__ // identifier, number_literal, '(' +ExprPattern__ -> epsilon // ')' +ExprPattern__ -> ',' Expr ExprPattern__ // ',' + +VarPattern -> '(' VarPattern_ ')' // '(' +VarPattern_ -> epsilon // ')' +VarPattern_ -> identifier VarPattern__ // identifier +VarPattern__ -> epsilon // ')' +VarPattern__ -> ',' identifier // ',' + VarPattern__ + For -> 'for' identifier 'in' Range Block // 'for' While -> 'while' Expr Block // 'while' @@ -56,3 +69,30 @@ Range_ -> '..' Expr // '..' Range_ -> '...' Expr // '...' + + + + + +Expr -> LogExpr // + +LogExpr -> ArithAddExpr LogExpr_ // '(', identifier, number_literal, '-' +LogExpr_ -> epsilon // _ +LogExpr_ -> LogOp ArithAddExpr // '==', '!=', '<', '>', '<=', '>=' + +ArithAddExpr -> ArithMulExpr ArithAddExpr_ // '(', identifier, number_literal, '-' +ArithAddExpr -> epsilon // _ | +ArithAddExpr -> AddOp ArithMulExpr // '+', '-' + +ArithMulExpr -> PrimaryExpr ArithMulExpr_ // '(', identifier, number_literal, '-' +ArithMulExpr_ -> epsilon // _ | +ArithMulExpr_ -> MulOp PrimaryExpr // '*', '/' + +PrimaryExpr -> '(' Expr ')' // '(' +PrimaryExpr -> identifier // identifier +PrimaryExpr -> number_literal // number_literal +PrimaryExpr -> '-' PrimaryExpr // '-' +PrimaryExpr -> '-' PrimaryExpr // '!' + + + -- GitLab