[back]
0 start -> expr
1 expr -> assign-expr
2 assign-expr -> or-expr assign-op assign-expr
3 assign-expr -> or-expr
4 or-expr -> or-expr or-op and-expr
5 or-expr -> and-expr
6 and-expr -> and-expr and-op eq-expr
7 and-expr -> eq-expr
8 eq-expr -> eq-expr eq-op rel-expr
9 eq-expr -> rel-expr
10 rel-expr -> rel-expr rel-op shift-expr
11 rel-expr -> shift-expr
12 shift-expr -> shift-expr shift-op add-expr
13 shift-expr -> add-expr
14 add-expr -> add-expr add-op mul-expr
15 add-expr -> mul-expr
16 mul-expr -> mul-expr mul-op unary-expr
17 mul-expr -> unary-expr
18 unary-expr -> unary-op unary-expr
19 unary-expr -> primary-expr
20 primary-expr -> NUMBER
21 primary-expr -> IDENT
22 primary-expr -> LPAREN expr RPAREN
23 assign-op -> ASSIGN
24 or-op -> OR
25 and-op -> AND
26 eq-op -> EQ
27 eq-op -> NE
28 rel-op -> LT
29 rel-op -> GT
30 rel-op -> LE
31 rel-op -> GE
32 shift-op -> LSHIFT
33 shift-op -> RSHIFT
34 add-op -> PLUS
35 add-op -> MINUS
36 mul-op -> TIMES
37 mul-op -> DIVIDE
38 unary-op -> PLUS
39 unary-op -> MINUS
0
-----
start ->.expr
NUMBER - SHIFT 1
IDENT - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5
expr - GOTO 6
assign-expr - GOTO 7
or-expr - GOTO 8
and-expr - GOTO 9
eq-expr - GOTO 10
rel-expr - GOTO 11
shift-expr - GOTO 12
add-expr - GOTO 13
mul-expr - GOTO 14
unary-expr - GOTO 15
unary-op - GOTO 16
primary-expr - GOTO 17
1
-----
primary-expr -> NUMBER. (20)
* - REDUCE 20 primary-expr
2
-----
primary-expr -> IDENT. (21)
* - REDUCE 21 primary-expr
3
-----
primary-expr -> LPAREN.expr RPAREN
NUMBER - SHIFT 1
IDENT - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5
expr - GOTO 18
assign-expr - GOTO 7
or-expr - GOTO 8
and-expr - GOTO 9
eq-expr - GOTO 10
rel-expr - GOTO 11
shift-expr - GOTO 12
add-expr - GOTO 13
mul-expr - GOTO 14
unary-expr - GOTO 15
unary-op - GOTO 16
primary-expr - GOTO 17
4
-----
unary-op -> PLUS. (38)
* - REDUCE 38 unary-op
5
-----
unary-op -> MINUS. (39)
* - REDUCE 39 unary-op
6
-----
start -> expr. (0)
EOT - DONE 0
7
-----
expr -> assign-expr. (1)
* - REDUCE 1 expr
8
-----
assign-expr -> or-expr.assign-op assign-expr
assign-expr -> or-expr. (3)
or-expr -> or-expr.or-op and-expr
ASSIGN - SHIFT 19
OR - SHIFT 20
* - REDUCE 3 assign-expr
assign-op - GOTO 21
or-op - GOTO 22
9
-----
or-expr -> and-expr. (5)
and-expr -> and-expr.and-op eq-expr
AND - SHIFT 23
* - REDUCE 5 or-expr
and-op - GOTO 24
10
-----
and-expr -> eq-expr. (7)
eq-expr -> eq-expr.eq-op rel-expr
EQ - SHIFT 25
NE - SHIFT 26
* - REDUCE 7 and-expr
eq-op - GOTO 27
11
-----
eq-expr -> rel-expr. (9)
rel-expr -> rel-expr.rel-op shift-expr
LT - SHIFT 28
GT - SHIFT 29
LE - SHIFT 30
GE - SHIFT 31
* - REDUCE 9 eq-expr
rel-op - GOTO 32
12
-----
rel-expr -> shift-expr. (11)
shift-expr -> shift-expr.shift-op add-expr
LSHIFT - SHIFT 33
RSHIFT - SHIFT 34
* - REDUCE 11 rel-expr
shift-op - GOTO 35
13
-----
shift-expr -> add-expr. (13)
add-expr -> add-expr.add-op mul-expr
PLUS - SHIFT 36
MINUS - SHIFT 37
* - REDUCE 13 shift-expr
add-op - GOTO 38
14
-----
add-expr -> mul-expr. (15)
mul-expr -> mul-expr.mul-op unary-expr
TIMES - SHIFT 39
DIVIDE - SHIFT 40
* - REDUCE 15 add-expr
mul-op - GOTO 41
15
-----
mul-expr -> unary-expr. (17)
* - REDUCE 17 mul-expr
16
-----
unary-expr -> unary-op.unary-expr
NUMBER - SHIFT 1
IDENT - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5
unary-expr - GOTO 42
unary-op - GOTO 16
primary-expr - GOTO 17
17
-----
unary-expr -> primary-expr. (19)
* - REDUCE 19 unary-expr
18
-----
primary-expr -> LPAREN expr.RPAREN
RPAREN - SHIFT 43
19
-----
assign-op -> ASSIGN. (23)
* - REDUCE 23 assign-op
20
-----
or-op -> OR. (24)
* - REDUCE 24 or-op
21
-----
assign-expr -> or-expr assign-op.assign-expr
NUMBER - SHIFT 1
IDENT - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5
assign-expr - GOTO 44
or-expr - GOTO 8
and-expr - GOTO 9
eq-expr - GOTO 10
rel-expr - GOTO 11
shift-expr - GOTO 12
add-expr - GOTO 13
mul-expr - GOTO 14
unary-expr - GOTO 15
unary-op - GOTO 16
primary-expr - GOTO 17
22
-----
or-expr -> or-expr or-op.and-expr
NUMBER - SHIFT 1
IDENT - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5
and-expr - GOTO 45
eq-expr - GOTO 10
rel-expr - GOTO 11
shift-expr - GOTO 12
add-expr - GOTO 13
mul-expr - GOTO 14
unary-expr - GOTO 15
unary-op - GOTO 16
primary-expr - GOTO 17
23
-----
and-op -> AND. (25)
* - REDUCE 25 and-op
24
-----
and-expr -> and-expr and-op.eq-expr
NUMBER - SHIFT 1
IDENT - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5
eq-expr - GOTO 46
rel-expr - GOTO 11
shift-expr - GOTO 12
add-expr - GOTO 13
mul-expr - GOTO 14
unary-expr - GOTO 15
unary-op - GOTO 16
primary-expr - GOTO 17
25
-----
eq-op -> EQ. (26)
* - REDUCE 26 eq-op
26
-----
eq-op -> NE. (27)
* - REDUCE 27 eq-op
27
-----
eq-expr -> eq-expr eq-op.rel-expr
NUMBER - SHIFT 1
IDENT - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5
rel-expr - GOTO 47
shift-expr - GOTO 12
add-expr - GOTO 13
mul-expr - GOTO 14
unary-expr - GOTO 15
unary-op - GOTO 16
primary-expr - GOTO 17
28
-----
rel-op -> LT. (28)
* - REDUCE 28 rel-op
29
-----
rel-op -> GT. (29)
* - REDUCE 29 rel-op
30
-----
rel-op -> LE. (30)
* - REDUCE 30 rel-op
31
-----
rel-op -> GE. (31)
* - REDUCE 31 rel-op
32
-----
rel-expr -> rel-expr rel-op.shift-expr
NUMBER - SHIFT 1
IDENT - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5
shift-expr - GOTO 48
add-expr - GOTO 13
mul-expr - GOTO 14
unary-expr - GOTO 15
unary-op - GOTO 16
primary-expr - GOTO 17
33
-----
shift-op -> LSHIFT. (32)
* - REDUCE 32 shift-op
34
-----
shift-op -> RSHIFT. (33)
* - REDUCE 33 shift-op
35
-----
shift-expr -> shift-expr shift-op.add-expr
NUMBER - SHIFT 1
IDENT - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5
add-expr - GOTO 49
mul-expr - GOTO 14
unary-expr - GOTO 15
unary-op - GOTO 16
primary-expr - GOTO 17
36
-----
add-op -> PLUS. (34)
* - REDUCE 34 add-op
37
-----
add-op -> MINUS. (35)
* - REDUCE 35 add-op
38
-----
add-expr -> add-expr add-op.mul-expr
NUMBER - SHIFT 1
IDENT - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5
mul-expr - GOTO 50
unary-expr - GOTO 15
unary-op - GOTO 16
primary-expr - GOTO 17
39
-----
mul-op -> TIMES. (36)
* - REDUCE 36 mul-op
40
-----
mul-op -> DIVIDE. (37)
* - REDUCE 37 mul-op
41
-----
mul-expr -> mul-expr mul-op.unary-expr
NUMBER - SHIFT 1
IDENT - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5
unary-expr - GOTO 51
unary-op - GOTO 16
primary-expr - GOTO 17
42
-----
unary-expr -> unary-op unary-expr. (18)
* - REDUCE 18 unary-expr
43
-----
primary-expr -> LPAREN expr RPAREN. (22)
* - REDUCE 22 primary-expr
44
-----
assign-expr -> or-expr assign-op assign-expr. (2)
* - REDUCE 2 assign-expr
45
-----
or-expr -> or-expr or-op and-expr. (4)
and-expr -> and-expr.and-op eq-expr
AND - SHIFT 23
* - REDUCE 4 or-expr
and-op - GOTO 24
46
-----
and-expr -> and-expr and-op eq-expr. (6)
eq-expr -> eq-expr.eq-op rel-expr
EQ - SHIFT 25
NE - SHIFT 26
* - REDUCE 6 and-expr
eq-op - GOTO 27
47
-----
eq-expr -> eq-expr eq-op rel-expr. (8)
rel-expr -> rel-expr.rel-op shift-expr
LT - SHIFT 28
GT - SHIFT 29
LE - SHIFT 30
GE - SHIFT 31
* - REDUCE 8 eq-expr
rel-op - GOTO 32
48
-----
rel-expr -> rel-expr rel-op shift-expr. (10)
shift-expr -> shift-expr.shift-op add-expr
LSHIFT - SHIFT 33
RSHIFT - SHIFT 34
* - REDUCE 10 rel-expr
shift-op - GOTO 35
49
-----
shift-expr -> shift-expr shift-op add-expr. (12)
add-expr -> add-expr.add-op mul-expr
PLUS - SHIFT 36
MINUS - SHIFT 37
* - REDUCE 12 shift-expr
add-op - GOTO 38
50
-----
add-expr -> add-expr add-op mul-expr. (14)
mul-expr -> mul-expr.mul-op unary-expr
TIMES - SHIFT 39
DIVIDE - SHIFT 40
* - REDUCE 14 add-expr
mul-op - GOTO 41
51
-----
mul-expr -> mul-expr mul-op unary-expr. (16)
* - REDUCE 16 mul-expr
[back]