ASSOCIATIVITY, DO WE EVER PARSE IT??????!!!!111!one!111eleven
[cc1516.git] / src / grammar.txt
1 <Expr> ::= <BinOrExpr> [':' <Expr>]
2 <BinOrExpr> ::= <BinAndExpr> ['||' <BinOrExpr>]
3 <BinAndExpr> ::= <CompareExpr> ['&&' <BinAndExpr>]
4 <CompareExpr> ::= <PlusMinExpr> [('==' | '<' | '>' | '<=' | '>=' | '!=') <CompareExpr>]
5 <PlusMinExpr> ::= <TimesDivExpr> (('+' | '-') <TimesDivExpr>)*
6 <TimesDivExpr> ::= <BasicExpr> ('*' | '/' | '%'] <BasicExpr>)*
7 <BasicExpr> ::= <id> ['hd'|'tl'|'fst'|'snd]
8 | <Op1> <Expr>
9 | <int>
10 | <char>
11 | 'False'
12 | 'True'
13 | '(' <Expr> ')'
14 | <id> '(' [<ActArgs>] ')'
15 | '[]' <Expr>
16 | '(' <Expr> ',' <Expr> ')'
17
18 <ActArgs> ::= <Expr> [',' ActArgs]
19
20 <VarDecl> ::= (<Type> | 'var') <id> '=' <Expr> ';'
21
22 <Type> ::= 'Int'
23 | 'Bool'
24 | 'Char'
25 | '(' Type ',' Type ')'
26 | '[' Type ']'
27 | <id>