[back]
0    start -> expr
1    expr -> expr assign-op (^!)15 expr (>!)14
2    expr -> expr or-op (^!)13 expr (>!)12
3    expr -> expr and-op (^!)11 expr (>!)10
4    expr -> expr eq-op (^!)9 expr (>!)8
5    expr -> expr rel-op (^!)7 expr (>!)6
6    expr -> expr shift-op (^!)5 expr (>!)4
7    expr -> expr add-op (^!)3 expr >>!!
8    expr -> expr mul-op ^! expr
9    expr -> unary-op expr
10   expr -> IDENT
11   expr -> NUMBER
12   expr -> LPAREN expr RPAREN
13   assign-op -> ASSIGN
14   or-op -> OR
15   and-op -> AND
16   eq-op -> EQ
17   eq-op -> NE
18   rel-op -> LT
19   rel-op -> GT
20   rel-op -> LE
21   rel-op -> GE
22   shift-op -> LSHIFT
23   shift-op -> RSHIFT
24   add-op -> PLUS
25   add-op -> MINUS
26   mul-op -> TIMES
27   mul-op -> DIVIDE
28   unary-op -> PLUS
29   unary-op -> MINUS

0
-----
start ->.expr

IDENT - SHIFT 1
NUMBER - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 6
unary-op - GOTO 7

1
-----
expr -> IDENT. (10)

* - REDUCE 10 expr

2
-----
expr -> NUMBER. (11)

* - REDUCE 11 expr

3
-----
expr -> LPAREN.expr RPAREN

IDENT - SHIFT 1
NUMBER - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 8
unary-op - GOTO 7

4
-----
unary-op -> PLUS. (28)

* - REDUCE 28 unary-op

5
-----
unary-op -> MINUS. (29)

* - REDUCE 29 unary-op

6
-----
start -> expr. (0)
expr -> expr.assign-op (^!)15 expr (>!)14
expr -> expr.or-op (^!)13 expr (>!)12
expr -> expr.and-op (^!)11 expr (>!)10
expr -> expr.eq-op (^!)9 expr (>!)8
expr -> expr.rel-op (^!)7 expr (>!)6
expr -> expr.shift-op (^!)5 expr (>!)4
expr -> expr.add-op (^!)3 expr >>!!
expr -> expr.mul-op ^! expr

EOT - DONE 0
ASSIGN - SHIFT 9
OR - SHIFT 10
AND - SHIFT 11
EQ - SHIFT 12
NE - SHIFT 13
LT - SHIFT 14
GT - SHIFT 15
LE - SHIFT 16
GE - SHIFT 17
LSHIFT - SHIFT 18
RSHIFT - SHIFT 19
PLUS - SHIFT 20
MINUS - SHIFT 21
TIMES - SHIFT 22
DIVIDE - SHIFT 23

assign-op - GOTO 24
or-op - GOTO 25
and-op - GOTO 26
eq-op - GOTO 27
rel-op - GOTO 28
shift-op - GOTO 29
add-op - GOTO 30
mul-op - GOTO 31

7
-----
expr -> unary-op.expr

IDENT - SHIFT 1
NUMBER - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 32
unary-op - GOTO 7

8
-----
expr -> LPAREN expr.RPAREN
expr -> expr.assign-op (^!)15 expr (>!)14
expr -> expr.or-op (^!)13 expr (>!)12
expr -> expr.and-op (^!)11 expr (>!)10
expr -> expr.eq-op (^!)9 expr (>!)8
expr -> expr.rel-op (^!)7 expr (>!)6
expr -> expr.shift-op (^!)5 expr (>!)4
expr -> expr.add-op (^!)3 expr >>!!
expr -> expr.mul-op ^! expr

RPAREN - SHIFT 33
ASSIGN - SHIFT 9
OR - SHIFT 10
AND - SHIFT 11
EQ - SHIFT 12
NE - SHIFT 13
LT - SHIFT 14
GT - SHIFT 15
LE - SHIFT 16
GE - SHIFT 17
LSHIFT - SHIFT 18
RSHIFT - SHIFT 19
PLUS - SHIFT 20
MINUS - SHIFT 21
TIMES - SHIFT 22
DIVIDE - SHIFT 23

assign-op - GOTO 24
or-op - GOTO 25
and-op - GOTO 26
eq-op - GOTO 27
rel-op - GOTO 28
shift-op - GOTO 29
add-op - GOTO 30
mul-op - GOTO 31

9
-----
assign-op -> ASSIGN. (13)

* - REDUCE 13 assign-op

10
-----
or-op -> OR. (14)

* - REDUCE 14 or-op

11
-----
and-op -> AND. (15)

* - REDUCE 15 and-op

12
-----
eq-op -> EQ. (16)

* - REDUCE 16 eq-op

13
-----
eq-op -> NE. (17)

* - REDUCE 17 eq-op

14
-----
rel-op -> LT. (18)

* - REDUCE 18 rel-op

15
-----
rel-op -> GT. (19)

* - REDUCE 19 rel-op

16
-----
rel-op -> LE. (20)

* - REDUCE 20 rel-op

17
-----
rel-op -> GE. (21)

* - REDUCE 21 rel-op

18
-----
shift-op -> LSHIFT. (22)

* - REDUCE 22 shift-op

19
-----
shift-op -> RSHIFT. (23)

* - REDUCE 23 shift-op

20
-----
add-op -> PLUS. (24)

* - REDUCE 24 add-op

21
-----
add-op -> MINUS. (25)

* - REDUCE 25 add-op

22
-----
mul-op -> TIMES. (26)

* - REDUCE 26 mul-op

23
-----
mul-op -> DIVIDE. (27)

* - REDUCE 27 mul-op

24
-----
expr -> expr assign-op (^!)15.expr (>!)14

IDENT - SHIFT 1
NUMBER - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 34
unary-op - GOTO 7

25
-----
expr -> expr or-op (^!)13.expr (>!)12

IDENT - SHIFT 1
NUMBER - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 35
unary-op - GOTO 7

26
-----
expr -> expr and-op (^!)11.expr (>!)10

IDENT - SHIFT 1
NUMBER - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 36
unary-op - GOTO 7

27
-----
expr -> expr eq-op (^!)9.expr (>!)8

IDENT - SHIFT 1
NUMBER - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 37
unary-op - GOTO 7

28
-----
expr -> expr rel-op (^!)7.expr (>!)6

IDENT - SHIFT 1
NUMBER - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 38
unary-op - GOTO 7

29
-----
expr -> expr shift-op (^!)5.expr (>!)4

IDENT - SHIFT 1
NUMBER - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 39
unary-op - GOTO 7

30
-----
expr -> expr add-op (^!)3.expr >>!!

IDENT - SHIFT 1
NUMBER - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 40
unary-op - GOTO 7

31
-----
expr -> expr mul-op ^!.expr

IDENT - SHIFT 1
NUMBER - SHIFT 2
LPAREN - SHIFT 3
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 41
unary-op - GOTO 7

32
-----
expr -> unary-op expr. (9)
expr -> expr.assign-op (^!)15 expr (>!)14
expr -> expr.or-op (^!)13 expr (>!)12
expr -> expr.and-op (^!)11 expr (>!)10
expr -> expr.eq-op (^!)9 expr (>!)8
expr -> expr.rel-op (^!)7 expr (>!)6
expr -> expr.shift-op (^!)5 expr (>!)4
expr -> expr.add-op (^!)3 expr >>!!
expr -> expr.mul-op ^! expr

* - REDUCE 9 expr

assign-op - GOTO 24
or-op - GOTO 25
and-op - GOTO 26
eq-op - GOTO 27
rel-op - GOTO 28
shift-op - GOTO 29
add-op - GOTO 30
mul-op - GOTO 31

33
-----
expr -> LPAREN expr RPAREN. (12)

* - REDUCE 12 expr

34
-----
expr -> expr assign-op (^!)15 expr (>!)14. (1)
expr -> expr.assign-op (^!)15 expr (>!)14
expr -> expr.or-op (^!)13 expr (>!)12
expr -> expr.and-op (^!)11 expr (>!)10
expr -> expr.eq-op (^!)9 expr (>!)8
expr -> expr.rel-op (^!)7 expr (>!)6
expr -> expr.shift-op (^!)5 expr (>!)4
expr -> expr.add-op (^!)3 expr >>!!
expr -> expr.mul-op ^! expr

OR - SHIFT 10
AND - SHIFT 11
EQ - SHIFT 12
NE - SHIFT 13
LT - SHIFT 14
GT - SHIFT 15
LE - SHIFT 16
GE - SHIFT 17
LSHIFT - SHIFT 18
RSHIFT - SHIFT 19
PLUS - SHIFT 20
MINUS - SHIFT 21
TIMES - SHIFT 22
DIVIDE - SHIFT 23
* - REDUCE 1 expr

assign-op - GOTO 24
or-op - GOTO 25
and-op - GOTO 26
eq-op - GOTO 27
rel-op - GOTO 28
shift-op - GOTO 29
add-op - GOTO 30
mul-op - GOTO 31

35
-----
expr -> expr or-op (^!)13 expr (>!)12. (2)
expr -> expr.assign-op (^!)15 expr (>!)14
expr -> expr.or-op (^!)13 expr (>!)12
expr -> expr.and-op (^!)11 expr (>!)10
expr -> expr.eq-op (^!)9 expr (>!)8
expr -> expr.rel-op (^!)7 expr (>!)6
expr -> expr.shift-op (^!)5 expr (>!)4
expr -> expr.add-op (^!)3 expr >>!!
expr -> expr.mul-op ^! expr

AND - SHIFT 11
EQ - SHIFT 12
NE - SHIFT 13
LT - SHIFT 14
GT - SHIFT 15
LE - SHIFT 16
GE - SHIFT 17
LSHIFT - SHIFT 18
RSHIFT - SHIFT 19
PLUS - SHIFT 20
MINUS - SHIFT 21
TIMES - SHIFT 22
DIVIDE - SHIFT 23
* - REDUCE 2 expr

assign-op - GOTO 24
or-op - GOTO 25
and-op - GOTO 26
eq-op - GOTO 27
rel-op - GOTO 28
shift-op - GOTO 29
add-op - GOTO 30
mul-op - GOTO 31

36
-----
expr -> expr and-op (^!)11 expr (>!)10. (3)
expr -> expr.assign-op (^!)15 expr (>!)14
expr -> expr.or-op (^!)13 expr (>!)12
expr -> expr.and-op (^!)11 expr (>!)10
expr -> expr.eq-op (^!)9 expr (>!)8
expr -> expr.rel-op (^!)7 expr (>!)6
expr -> expr.shift-op (^!)5 expr (>!)4
expr -> expr.add-op (^!)3 expr >>!!
expr -> expr.mul-op ^! expr

EQ - SHIFT 12
NE - SHIFT 13
LT - SHIFT 14
GT - SHIFT 15
LE - SHIFT 16
GE - SHIFT 17
LSHIFT - SHIFT 18
RSHIFT - SHIFT 19
PLUS - SHIFT 20
MINUS - SHIFT 21
TIMES - SHIFT 22
DIVIDE - SHIFT 23
* - REDUCE 3 expr

assign-op - GOTO 24
or-op - GOTO 25
and-op - GOTO 26
eq-op - GOTO 27
rel-op - GOTO 28
shift-op - GOTO 29
add-op - GOTO 30
mul-op - GOTO 31

37
-----
expr -> expr eq-op (^!)9 expr (>!)8. (4)
expr -> expr.assign-op (^!)15 expr (>!)14
expr -> expr.or-op (^!)13 expr (>!)12
expr -> expr.and-op (^!)11 expr (>!)10
expr -> expr.eq-op (^!)9 expr (>!)8
expr -> expr.rel-op (^!)7 expr (>!)6
expr -> expr.shift-op (^!)5 expr (>!)4
expr -> expr.add-op (^!)3 expr >>!!
expr -> expr.mul-op ^! expr

LT - SHIFT 14
GT - SHIFT 15
LE - SHIFT 16
GE - SHIFT 17
LSHIFT - SHIFT 18
RSHIFT - SHIFT 19
PLUS - SHIFT 20
MINUS - SHIFT 21
TIMES - SHIFT 22
DIVIDE - SHIFT 23
* - REDUCE 4 expr

assign-op - GOTO 24
or-op - GOTO 25
and-op - GOTO 26
eq-op - GOTO 27
rel-op - GOTO 28
shift-op - GOTO 29
add-op - GOTO 30
mul-op - GOTO 31

38
-----
expr -> expr rel-op (^!)7 expr (>!)6. (5)
expr -> expr.assign-op (^!)15 expr (>!)14
expr -> expr.or-op (^!)13 expr (>!)12
expr -> expr.and-op (^!)11 expr (>!)10
expr -> expr.eq-op (^!)9 expr (>!)8
expr -> expr.rel-op (^!)7 expr (>!)6
expr -> expr.shift-op (^!)5 expr (>!)4
expr -> expr.add-op (^!)3 expr >>!!
expr -> expr.mul-op ^! expr

LSHIFT - SHIFT 18
RSHIFT - SHIFT 19
PLUS - SHIFT 20
MINUS - SHIFT 21
TIMES - SHIFT 22
DIVIDE - SHIFT 23
* - REDUCE 5 expr

assign-op - GOTO 24
or-op - GOTO 25
and-op - GOTO 26
eq-op - GOTO 27
rel-op - GOTO 28
shift-op - GOTO 29
add-op - GOTO 30
mul-op - GOTO 31

39
-----
expr -> expr shift-op (^!)5 expr (>!)4. (6)
expr -> expr.assign-op (^!)15 expr (>!)14
expr -> expr.or-op (^!)13 expr (>!)12
expr -> expr.and-op (^!)11 expr (>!)10
expr -> expr.eq-op (^!)9 expr (>!)8
expr -> expr.rel-op (^!)7 expr (>!)6
expr -> expr.shift-op (^!)5 expr (>!)4
expr -> expr.add-op (^!)3 expr >>!!
expr -> expr.mul-op ^! expr

PLUS - SHIFT 20
MINUS - SHIFT 21
TIMES - SHIFT 22
DIVIDE - SHIFT 23
* - REDUCE 6 expr

assign-op - GOTO 24
or-op - GOTO 25
and-op - GOTO 26
eq-op - GOTO 27
rel-op - GOTO 28
shift-op - GOTO 29
add-op - GOTO 30
mul-op - GOTO 31

40
-----
expr -> expr add-op (^!)3 expr >>!!. (7)
expr -> expr.assign-op (^!)15 expr (>!)14
expr -> expr.or-op (^!)13 expr (>!)12
expr -> expr.and-op (^!)11 expr (>!)10
expr -> expr.eq-op (^!)9 expr (>!)8
expr -> expr.rel-op (^!)7 expr (>!)6
expr -> expr.shift-op (^!)5 expr (>!)4
expr -> expr.add-op (^!)3 expr >>!!
expr -> expr.mul-op ^! expr

TIMES - SHIFT 22
DIVIDE - SHIFT 23
* - REDUCE 7 expr

assign-op - GOTO 24
or-op - GOTO 25
and-op - GOTO 26
eq-op - GOTO 27
rel-op - GOTO 28
shift-op - GOTO 29
add-op - GOTO 30
mul-op - GOTO 31

41
-----
expr -> expr mul-op ^! expr. (8)
expr -> expr.assign-op (^!)15 expr (>!)14
expr -> expr.or-op (^!)13 expr (>!)12
expr -> expr.and-op (^!)11 expr (>!)10
expr -> expr.eq-op (^!)9 expr (>!)8
expr -> expr.rel-op (^!)7 expr (>!)6
expr -> expr.shift-op (^!)5 expr (>!)4
expr -> expr.add-op (^!)3 expr >>!!
expr -> expr.mul-op ^! expr

* - REDUCE 8 expr

assign-op - GOTO 24
or-op - GOTO 25
and-op - GOTO 26
eq-op - GOTO 27
rel-op - GOTO 28
shift-op - GOTO 29
add-op - GOTO 30
mul-op - GOTO 31

[back]