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