Skip to content
Snippets Groups Projects
Commit f6391370 authored by Peter Matta's avatar Peter Matta
Browse files

Updated grammar

parent 800cd9b9
No related branches found
No related tags found
No related merge requests found
......@@ -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 // '!'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment