blob: 804e072e792fe30c2341400a6b219ddd8363a57c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
-terminal PLUS MINUS TIMES MORE LESS EQUA
LPAREN RPAREN QMARK COLON NUM;
-nonterminal EP E.
-left LPAREN;
-left 5;
-left TIMES;
-left MINUS PLUS;
-left MORE LESS EQUA;
-left COLON 7;
-left QMARK.
EP: E { v = A(0); };
E: E PLUS E { v = A(0) + A(2); }
| E MINUS E { v = A(0) - A(2); }
| E TIMES E { v = A(0) * A(2); }
| LPAREN E RPAREN { v = A(1); }
| MINUS E { v = - A(1); }
| E QMARK E COLON E { v = A(0) ? A(2) : A(4); }
| E QMARK E { v = A(0) ? A(2) : 0; }
| E MORE E { v = A(0) > A(2); }
| E LESS E { v = A(0) < A(2); }
| E EQUA E { v = A(0) == A(2); }
| NUM { v = A(0); }.
|