[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
or-expr - GOTO 7
and-expr - GOTO 8
eq-expr - GOTO 9
rel-expr - GOTO 10
shift-expr - GOTO 11
add-expr - GOTO 12
mul-expr - GOTO 13
unary-op - GOTO 14

1
-----
primary-expr -> NUMBER. (20)

EOT - REDUCE 20 expr
ASSIGN - REDUCE 20 or-expr
OR - REDUCE 20 or-expr
AND - REDUCE 20 and-expr
EQ - REDUCE 20 eq-expr
NE - REDUCE 20 eq-expr
LSHIFT - REDUCE 20 shift-expr
RSHIFT - REDUCE 20 shift-expr
PLUS - REDUCE 20 add-expr
MINUS - REDUCE 20 add-expr
TIMES - REDUCE 20 mul-expr
DIVIDE - REDUCE 20 mul-expr
* - REDUCE 20 rel-expr

2
-----
primary-expr -> IDENT. (21)

EOT - REDUCE 21 expr
ASSIGN - REDUCE 21 or-expr
OR - REDUCE 21 or-expr
AND - REDUCE 21 and-expr
EQ - REDUCE 21 eq-expr
NE - REDUCE 21 eq-expr
LSHIFT - REDUCE 21 shift-expr
RSHIFT - REDUCE 21 shift-expr
PLUS - REDUCE 21 add-expr
MINUS - REDUCE 21 add-expr
TIMES - REDUCE 21 mul-expr
DIVIDE - REDUCE 21 mul-expr
* - REDUCE 21 rel-expr

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

NUMBER - SHIFT 15
IDENT - SHIFT 16
LPAREN - SHIFT 17
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 18
or-expr - GOTO 19
and-expr - GOTO 20
eq-expr - GOTO 21
rel-expr - GOTO 22
shift-expr - GOTO 23
add-expr - GOTO 24
mul-expr - GOTO 25
unary-op - GOTO 26

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
-----
assign-expr -> or-expr.assign-op assign-expr
or-expr -> or-expr.or-op and-expr

ASSIGN - SHIFT 27
OR - SHIFT 28

assign-op - GOTO 29
or-op - GOTO 30

8
-----
and-expr -> and-expr.and-op eq-expr

AND - SHIFT 31

and-op - GOTO 32

9
-----
eq-expr -> eq-expr.eq-op rel-expr

EQ - SHIFT 33
NE - SHIFT 34

eq-op - GOTO 35

10
-----
rel-expr -> rel-expr.rel-op shift-expr

LT - SHIFT 36
GT - SHIFT 37
LE - SHIFT 38
GE - SHIFT 39

rel-op - GOTO 40

11
-----
shift-expr -> shift-expr.shift-op add-expr

LSHIFT - SHIFT 41
RSHIFT - SHIFT 42

shift-op - GOTO 43

12
-----
add-expr -> add-expr.add-op mul-expr

PLUS - SHIFT 44
MINUS - SHIFT 45

add-op - GOTO 46

13
-----
mul-expr -> mul-expr.mul-op unary-expr

TIMES - SHIFT 47
DIVIDE - SHIFT 48

mul-op - GOTO 49

14
-----
unary-expr -> unary-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 53
unary-op - GOTO 54

15
-----
primary-expr -> NUMBER. (20)

RPAREN - REDUCE 20 expr
ASSIGN - REDUCE 20 or-expr
OR - REDUCE 20 or-expr
AND - REDUCE 20 and-expr
EQ - REDUCE 20 eq-expr
NE - REDUCE 20 eq-expr
LSHIFT - REDUCE 20 shift-expr
RSHIFT - REDUCE 20 shift-expr
PLUS - REDUCE 20 add-expr
MINUS - REDUCE 20 add-expr
TIMES - REDUCE 20 mul-expr
DIVIDE - REDUCE 20 mul-expr
* - REDUCE 20 rel-expr

16
-----
primary-expr -> IDENT. (21)

RPAREN - REDUCE 21 expr
ASSIGN - REDUCE 21 or-expr
OR - REDUCE 21 or-expr
AND - REDUCE 21 and-expr
EQ - REDUCE 21 eq-expr
NE - REDUCE 21 eq-expr
LSHIFT - REDUCE 21 shift-expr
RSHIFT - REDUCE 21 shift-expr
PLUS - REDUCE 21 add-expr
MINUS - REDUCE 21 add-expr
TIMES - REDUCE 21 mul-expr
DIVIDE - REDUCE 21 mul-expr
* - REDUCE 21 rel-expr

17
-----
primary-expr -> LPAREN.expr RPAREN

NUMBER - SHIFT 15
IDENT - SHIFT 16
LPAREN - SHIFT 17
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 55
or-expr - GOTO 19
and-expr - GOTO 20
eq-expr - GOTO 21
rel-expr - GOTO 22
shift-expr - GOTO 23
add-expr - GOTO 24
mul-expr - GOTO 25
unary-op - GOTO 26

18
-----
primary-expr -> LPAREN expr.RPAREN

RPAREN - SHIFT 56

19
-----
assign-expr -> or-expr.assign-op assign-expr
or-expr -> or-expr.or-op and-expr

ASSIGN - SHIFT 27
OR - SHIFT 28

assign-op - GOTO 57
or-op - GOTO 58

20
-----
and-expr -> and-expr.and-op eq-expr

AND - SHIFT 31

and-op - GOTO 59

21
-----
eq-expr -> eq-expr.eq-op rel-expr

EQ - SHIFT 33
NE - SHIFT 34

eq-op - GOTO 60

22
-----
rel-expr -> rel-expr.rel-op shift-expr

LT - SHIFT 36
GT - SHIFT 37
LE - SHIFT 38
GE - SHIFT 39

rel-op - GOTO 61

23
-----
shift-expr -> shift-expr.shift-op add-expr

LSHIFT - SHIFT 41
RSHIFT - SHIFT 42

shift-op - GOTO 62

24
-----
add-expr -> add-expr.add-op mul-expr

PLUS - SHIFT 44
MINUS - SHIFT 45

add-op - GOTO 63

25
-----
mul-expr -> mul-expr.mul-op unary-expr

TIMES - SHIFT 47
DIVIDE - SHIFT 48

mul-op - GOTO 64

26
-----
unary-expr -> unary-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 65
unary-op - GOTO 54

27
-----
assign-op -> ASSIGN. (23)

* - REDUCE 23 assign-op

28
-----
or-op -> OR. (24)

* - REDUCE 24 or-op

29
-----
assign-expr -> or-expr assign-op.assign-expr

NUMBER - SHIFT 66
IDENT - SHIFT 67
LPAREN - SHIFT 68
PLUS - SHIFT 4
MINUS - SHIFT 5

assign-expr - GOTO 69
or-expr - GOTO 70
and-expr - GOTO 71
eq-expr - GOTO 72
rel-expr - GOTO 73
shift-expr - GOTO 74
add-expr - GOTO 75
mul-expr - GOTO 76
unary-op - GOTO 77

30
-----
or-expr -> or-expr or-op.and-expr

NUMBER - SHIFT 78
IDENT - SHIFT 79
LPAREN - SHIFT 80
PLUS - SHIFT 4
MINUS - SHIFT 5

and-expr - GOTO 81
eq-expr - GOTO 82
rel-expr - GOTO 83
shift-expr - GOTO 84
add-expr - GOTO 85
mul-expr - GOTO 86
unary-op - GOTO 87

31
-----
and-op -> AND. (25)

* - REDUCE 25 and-op

32
-----
and-expr -> and-expr and-op.eq-expr

NUMBER - SHIFT 88
IDENT - SHIFT 89
LPAREN - SHIFT 90
PLUS - SHIFT 4
MINUS - SHIFT 5

eq-expr - GOTO 91
rel-expr - GOTO 92
shift-expr - GOTO 93
add-expr - GOTO 94
mul-expr - GOTO 95
unary-op - GOTO 96

33
-----
eq-op -> EQ. (26)

* - REDUCE 26 eq-op

34
-----
eq-op -> NE. (27)

* - REDUCE 27 eq-op

35
-----
eq-expr -> eq-expr eq-op.rel-expr

NUMBER - SHIFT 97
IDENT - SHIFT 98
LPAREN - SHIFT 99
PLUS - SHIFT 4
MINUS - SHIFT 5

rel-expr - GOTO 100
shift-expr - GOTO 101
add-expr - GOTO 102
mul-expr - GOTO 103
unary-op - GOTO 104

36
-----
rel-op -> LT. (28)

* - REDUCE 28 rel-op

37
-----
rel-op -> GT. (29)

* - REDUCE 29 rel-op

38
-----
rel-op -> LE. (30)

* - REDUCE 30 rel-op

39
-----
rel-op -> GE. (31)

* - REDUCE 31 rel-op

40
-----
rel-expr -> rel-expr rel-op.shift-expr

NUMBER - SHIFT 105
IDENT - SHIFT 106
LPAREN - SHIFT 107
PLUS - SHIFT 4
MINUS - SHIFT 5

shift-expr - GOTO 108
add-expr - GOTO 109
mul-expr - GOTO 110
unary-op - GOTO 111

41
-----
shift-op -> LSHIFT. (32)

* - REDUCE 32 shift-op

42
-----
shift-op -> RSHIFT. (33)

* - REDUCE 33 shift-op

43
-----
shift-expr -> shift-expr shift-op.add-expr

NUMBER - SHIFT 112
IDENT - SHIFT 113
LPAREN - SHIFT 114
PLUS - SHIFT 4
MINUS - SHIFT 5

add-expr - GOTO 115
mul-expr - GOTO 116
unary-op - GOTO 117

44
-----
add-op -> PLUS. (34)

* - REDUCE 34 add-op

45
-----
add-op -> MINUS. (35)

* - REDUCE 35 add-op

46
-----
add-expr -> add-expr add-op.mul-expr

NUMBER - SHIFT 118
IDENT - SHIFT 119
LPAREN - SHIFT 120
PLUS - SHIFT 4
MINUS - SHIFT 5

mul-expr - GOTO 121
unary-op - GOTO 122

47
-----
mul-op -> TIMES. (36)

* - REDUCE 36 mul-op

48
-----
mul-op -> DIVIDE. (37)

* - REDUCE 37 mul-op

49
-----
mul-expr -> mul-expr mul-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 123
unary-op - GOTO 54

50
-----
primary-expr -> NUMBER. (20)

* - REDUCE 20 unary-expr

51
-----
primary-expr -> IDENT. (21)

* - REDUCE 21 unary-expr

52
-----
primary-expr -> LPAREN.expr RPAREN

NUMBER - SHIFT 15
IDENT - SHIFT 16
LPAREN - SHIFT 17
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 124
or-expr - GOTO 19
and-expr - GOTO 20
eq-expr - GOTO 21
rel-expr - GOTO 22
shift-expr - GOTO 23
add-expr - GOTO 24
mul-expr - GOTO 25
unary-op - GOTO 26

53
-----
unary-expr -> unary-op unary-expr. (18)

EOT - REDUCE 18 expr
ASSIGN - REDUCE 18 or-expr
OR - REDUCE 18 or-expr
AND - REDUCE 18 and-expr
EQ - REDUCE 18 eq-expr
NE - REDUCE 18 eq-expr
LSHIFT - REDUCE 18 shift-expr
RSHIFT - REDUCE 18 shift-expr
PLUS - REDUCE 18 add-expr
MINUS - REDUCE 18 add-expr
TIMES - REDUCE 18 mul-expr
DIVIDE - REDUCE 18 mul-expr
* - REDUCE 18 rel-expr

54
-----
unary-expr -> unary-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 125
unary-op - GOTO 54

55
-----
primary-expr -> LPAREN expr.RPAREN

RPAREN - SHIFT 126

56
-----
primary-expr -> LPAREN expr RPAREN. (22)

EOT - REDUCE 22 expr
ASSIGN - REDUCE 22 or-expr
OR - REDUCE 22 or-expr
AND - REDUCE 22 and-expr
EQ - REDUCE 22 eq-expr
NE - REDUCE 22 eq-expr
LSHIFT - REDUCE 22 shift-expr
RSHIFT - REDUCE 22 shift-expr
PLUS - REDUCE 22 add-expr
MINUS - REDUCE 22 add-expr
TIMES - REDUCE 22 mul-expr
DIVIDE - REDUCE 22 mul-expr
* - REDUCE 22 rel-expr

57
-----
assign-expr -> or-expr assign-op.assign-expr

NUMBER - SHIFT 127
IDENT - SHIFT 128
LPAREN - SHIFT 129
PLUS - SHIFT 4
MINUS - SHIFT 5

assign-expr - GOTO 69
or-expr - GOTO 130
and-expr - GOTO 131
eq-expr - GOTO 132
rel-expr - GOTO 133
shift-expr - GOTO 134
add-expr - GOTO 135
mul-expr - GOTO 136
unary-op - GOTO 137

58
-----
or-expr -> or-expr or-op.and-expr

NUMBER - SHIFT 78
IDENT - SHIFT 79
LPAREN - SHIFT 80
PLUS - SHIFT 4
MINUS - SHIFT 5

and-expr - GOTO 138
eq-expr - GOTO 82
rel-expr - GOTO 83
shift-expr - GOTO 84
add-expr - GOTO 85
mul-expr - GOTO 86
unary-op - GOTO 87

59
-----
and-expr -> and-expr and-op.eq-expr

NUMBER - SHIFT 88
IDENT - SHIFT 89
LPAREN - SHIFT 90
PLUS - SHIFT 4
MINUS - SHIFT 5

eq-expr - GOTO 139
rel-expr - GOTO 92
shift-expr - GOTO 93
add-expr - GOTO 94
mul-expr - GOTO 95
unary-op - GOTO 96

60
-----
eq-expr -> eq-expr eq-op.rel-expr

NUMBER - SHIFT 97
IDENT - SHIFT 98
LPAREN - SHIFT 99
PLUS - SHIFT 4
MINUS - SHIFT 5

rel-expr - GOTO 140
shift-expr - GOTO 101
add-expr - GOTO 102
mul-expr - GOTO 103
unary-op - GOTO 104

61
-----
rel-expr -> rel-expr rel-op.shift-expr

NUMBER - SHIFT 105
IDENT - SHIFT 106
LPAREN - SHIFT 107
PLUS - SHIFT 4
MINUS - SHIFT 5

shift-expr - GOTO 141
add-expr - GOTO 109
mul-expr - GOTO 110
unary-op - GOTO 111

62
-----
shift-expr -> shift-expr shift-op.add-expr

NUMBER - SHIFT 112
IDENT - SHIFT 113
LPAREN - SHIFT 114
PLUS - SHIFT 4
MINUS - SHIFT 5

add-expr - GOTO 142
mul-expr - GOTO 116
unary-op - GOTO 117

63
-----
add-expr -> add-expr add-op.mul-expr

NUMBER - SHIFT 118
IDENT - SHIFT 119
LPAREN - SHIFT 120
PLUS - SHIFT 4
MINUS - SHIFT 5

mul-expr - GOTO 143
unary-op - GOTO 122

64
-----
mul-expr -> mul-expr mul-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 144
unary-op - GOTO 54

65
-----
unary-expr -> unary-op unary-expr. (18)

RPAREN - REDUCE 18 expr
ASSIGN - REDUCE 18 or-expr
OR - REDUCE 18 or-expr
AND - REDUCE 18 and-expr
EQ - REDUCE 18 eq-expr
NE - REDUCE 18 eq-expr
LSHIFT - REDUCE 18 shift-expr
RSHIFT - REDUCE 18 shift-expr
PLUS - REDUCE 18 add-expr
MINUS - REDUCE 18 add-expr
TIMES - REDUCE 18 mul-expr
DIVIDE - REDUCE 18 mul-expr
* - REDUCE 18 rel-expr

66
-----
primary-expr -> NUMBER. (20)

EOT - REDUCE 20 assign-expr
ASSIGN - REDUCE 20 or-expr
OR - REDUCE 20 or-expr
AND - REDUCE 20 and-expr
EQ - REDUCE 20 eq-expr
NE - REDUCE 20 eq-expr
LSHIFT - REDUCE 20 shift-expr
RSHIFT - REDUCE 20 shift-expr
PLUS - REDUCE 20 add-expr
MINUS - REDUCE 20 add-expr
TIMES - REDUCE 20 mul-expr
DIVIDE - REDUCE 20 mul-expr
* - REDUCE 20 rel-expr

67
-----
primary-expr -> IDENT. (21)

EOT - REDUCE 21 assign-expr
ASSIGN - REDUCE 21 or-expr
OR - REDUCE 21 or-expr
AND - REDUCE 21 and-expr
EQ - REDUCE 21 eq-expr
NE - REDUCE 21 eq-expr
LSHIFT - REDUCE 21 shift-expr
RSHIFT - REDUCE 21 shift-expr
PLUS - REDUCE 21 add-expr
MINUS - REDUCE 21 add-expr
TIMES - REDUCE 21 mul-expr
DIVIDE - REDUCE 21 mul-expr
* - REDUCE 21 rel-expr

68
-----
primary-expr -> LPAREN.expr RPAREN

NUMBER - SHIFT 15
IDENT - SHIFT 16
LPAREN - SHIFT 17
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 145
or-expr - GOTO 19
and-expr - GOTO 20
eq-expr - GOTO 21
rel-expr - GOTO 22
shift-expr - GOTO 23
add-expr - GOTO 24
mul-expr - GOTO 25
unary-op - GOTO 26

69
-----
assign-expr -> or-expr assign-op assign-expr. (2)

* - REDUCE 2 expr

70
-----
assign-expr -> or-expr.assign-op assign-expr
or-expr -> or-expr.or-op and-expr

ASSIGN - SHIFT 27
OR - SHIFT 28

assign-op - GOTO 146
or-op - GOTO 147

71
-----
and-expr -> and-expr.and-op eq-expr

AND - SHIFT 31

and-op - GOTO 148

72
-----
eq-expr -> eq-expr.eq-op rel-expr

EQ - SHIFT 33
NE - SHIFT 34

eq-op - GOTO 149

73
-----
rel-expr -> rel-expr.rel-op shift-expr

LT - SHIFT 36
GT - SHIFT 37
LE - SHIFT 38
GE - SHIFT 39

rel-op - GOTO 150

74
-----
shift-expr -> shift-expr.shift-op add-expr

LSHIFT - SHIFT 41
RSHIFT - SHIFT 42

shift-op - GOTO 151

75
-----
add-expr -> add-expr.add-op mul-expr

PLUS - SHIFT 44
MINUS - SHIFT 45

add-op - GOTO 152

76
-----
mul-expr -> mul-expr.mul-op unary-expr

TIMES - SHIFT 47
DIVIDE - SHIFT 48

mul-op - GOTO 153

77
-----
unary-expr -> unary-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 154
unary-op - GOTO 54

78
-----
primary-expr -> NUMBER. (20)

EQ - REDUCE 20 eq-expr
NE - REDUCE 20 eq-expr
LT - REDUCE 20 rel-expr
GT - REDUCE 20 rel-expr
LE - REDUCE 20 rel-expr
GE - REDUCE 20 rel-expr
LSHIFT - REDUCE 20 shift-expr
RSHIFT - REDUCE 20 shift-expr
PLUS - REDUCE 20 add-expr
MINUS - REDUCE 20 add-expr
TIMES - REDUCE 20 mul-expr
DIVIDE - REDUCE 20 mul-expr
* - REDUCE 20 and-expr

79
-----
primary-expr -> IDENT. (21)

EQ - REDUCE 21 eq-expr
NE - REDUCE 21 eq-expr
LT - REDUCE 21 rel-expr
GT - REDUCE 21 rel-expr
LE - REDUCE 21 rel-expr
GE - REDUCE 21 rel-expr
LSHIFT - REDUCE 21 shift-expr
RSHIFT - REDUCE 21 shift-expr
PLUS - REDUCE 21 add-expr
MINUS - REDUCE 21 add-expr
TIMES - REDUCE 21 mul-expr
DIVIDE - REDUCE 21 mul-expr
* - REDUCE 21 and-expr

80
-----
primary-expr -> LPAREN.expr RPAREN

NUMBER - SHIFT 15
IDENT - SHIFT 16
LPAREN - SHIFT 17
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 155
or-expr - GOTO 19
and-expr - GOTO 20
eq-expr - GOTO 21
rel-expr - GOTO 22
shift-expr - GOTO 23
add-expr - GOTO 24
mul-expr - GOTO 25
unary-op - GOTO 26

81
-----
or-expr -> or-expr or-op and-expr. (4)
and-expr -> and-expr.and-op eq-expr

EOT - REDUCE 4 expr
AND - SHIFT 31
* - REDUCE 4 or-expr

and-op - GOTO 156

82
-----
eq-expr -> eq-expr.eq-op rel-expr

EQ - SHIFT 33
NE - SHIFT 34

eq-op - GOTO 157

83
-----
rel-expr -> rel-expr.rel-op shift-expr

LT - SHIFT 36
GT - SHIFT 37
LE - SHIFT 38
GE - SHIFT 39

rel-op - GOTO 158

84
-----
shift-expr -> shift-expr.shift-op add-expr

LSHIFT - SHIFT 41
RSHIFT - SHIFT 42

shift-op - GOTO 159

85
-----
add-expr -> add-expr.add-op mul-expr

PLUS - SHIFT 44
MINUS - SHIFT 45

add-op - GOTO 160

86
-----
mul-expr -> mul-expr.mul-op unary-expr

TIMES - SHIFT 47
DIVIDE - SHIFT 48

mul-op - GOTO 161

87
-----
unary-expr -> unary-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 162
unary-op - GOTO 54

88
-----
primary-expr -> NUMBER. (20)

LT - REDUCE 20 rel-expr
GT - REDUCE 20 rel-expr
LE - REDUCE 20 rel-expr
GE - REDUCE 20 rel-expr
LSHIFT - REDUCE 20 shift-expr
RSHIFT - REDUCE 20 shift-expr
PLUS - REDUCE 20 add-expr
MINUS - REDUCE 20 add-expr
TIMES - REDUCE 20 mul-expr
DIVIDE - REDUCE 20 mul-expr
* - REDUCE 20 eq-expr

89
-----
primary-expr -> IDENT. (21)

LT - REDUCE 21 rel-expr
GT - REDUCE 21 rel-expr
LE - REDUCE 21 rel-expr
GE - REDUCE 21 rel-expr
LSHIFT - REDUCE 21 shift-expr
RSHIFT - REDUCE 21 shift-expr
PLUS - REDUCE 21 add-expr
MINUS - REDUCE 21 add-expr
TIMES - REDUCE 21 mul-expr
DIVIDE - REDUCE 21 mul-expr
* - REDUCE 21 eq-expr

90
-----
primary-expr -> LPAREN.expr RPAREN

NUMBER - SHIFT 15
IDENT - SHIFT 16
LPAREN - SHIFT 17
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 163
or-expr - GOTO 19
and-expr - GOTO 20
eq-expr - GOTO 21
rel-expr - GOTO 22
shift-expr - GOTO 23
add-expr - GOTO 24
mul-expr - GOTO 25
unary-op - GOTO 26

91
-----
and-expr -> and-expr and-op eq-expr. (6)
eq-expr -> eq-expr.eq-op rel-expr

EOT - REDUCE 6 expr
AND - REDUCE 6 and-expr
EQ - SHIFT 33
NE - SHIFT 34
* - REDUCE 6 or-expr

eq-op - GOTO 164

92
-----
rel-expr -> rel-expr.rel-op shift-expr

LT - SHIFT 36
GT - SHIFT 37
LE - SHIFT 38
GE - SHIFT 39

rel-op - GOTO 165

93
-----
shift-expr -> shift-expr.shift-op add-expr

LSHIFT - SHIFT 41
RSHIFT - SHIFT 42

shift-op - GOTO 166

94
-----
add-expr -> add-expr.add-op mul-expr

PLUS - SHIFT 44
MINUS - SHIFT 45

add-op - GOTO 167

95
-----
mul-expr -> mul-expr.mul-op unary-expr

TIMES - SHIFT 47
DIVIDE - SHIFT 48

mul-op - GOTO 168

96
-----
unary-expr -> unary-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 169
unary-op - GOTO 54

97
-----
primary-expr -> NUMBER. (20)

LSHIFT - REDUCE 20 shift-expr
RSHIFT - REDUCE 20 shift-expr
PLUS - REDUCE 20 add-expr
MINUS - REDUCE 20 add-expr
TIMES - REDUCE 20 mul-expr
DIVIDE - REDUCE 20 mul-expr
* - REDUCE 20 rel-expr

98
-----
primary-expr -> IDENT. (21)

LSHIFT - REDUCE 21 shift-expr
RSHIFT - REDUCE 21 shift-expr
PLUS - REDUCE 21 add-expr
MINUS - REDUCE 21 add-expr
TIMES - REDUCE 21 mul-expr
DIVIDE - REDUCE 21 mul-expr
* - REDUCE 21 rel-expr

99
-----
primary-expr -> LPAREN.expr RPAREN

NUMBER - SHIFT 15
IDENT - SHIFT 16
LPAREN - SHIFT 17
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 170
or-expr - GOTO 19
and-expr - GOTO 20
eq-expr - GOTO 21
rel-expr - GOTO 22
shift-expr - GOTO 23
add-expr - GOTO 24
mul-expr - GOTO 25
unary-op - GOTO 26

100
-----
eq-expr -> eq-expr eq-op rel-expr. (8)
rel-expr -> rel-expr.rel-op shift-expr

EOT - REDUCE 8 expr
AND - REDUCE 8 and-expr
EQ - REDUCE 8 eq-expr
NE - REDUCE 8 eq-expr
LT - SHIFT 36
GT - SHIFT 37
LE - SHIFT 38
GE - SHIFT 39
* - REDUCE 8 or-expr

rel-op - GOTO 171

101
-----
shift-expr -> shift-expr.shift-op add-expr

LSHIFT - SHIFT 41
RSHIFT - SHIFT 42

shift-op - GOTO 172

102
-----
add-expr -> add-expr.add-op mul-expr

PLUS - SHIFT 44
MINUS - SHIFT 45

add-op - GOTO 173

103
-----
mul-expr -> mul-expr.mul-op unary-expr

TIMES - SHIFT 47
DIVIDE - SHIFT 48

mul-op - GOTO 174

104
-----
unary-expr -> unary-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 175
unary-op - GOTO 54

105
-----
primary-expr -> NUMBER. (20)

PLUS - REDUCE 20 add-expr
MINUS - REDUCE 20 add-expr
TIMES - REDUCE 20 mul-expr
DIVIDE - REDUCE 20 mul-expr
* - REDUCE 20 shift-expr

106
-----
primary-expr -> IDENT. (21)

PLUS - REDUCE 21 add-expr
MINUS - REDUCE 21 add-expr
TIMES - REDUCE 21 mul-expr
DIVIDE - REDUCE 21 mul-expr
* - REDUCE 21 shift-expr

107
-----
primary-expr -> LPAREN.expr RPAREN

NUMBER - SHIFT 15
IDENT - SHIFT 16
LPAREN - SHIFT 17
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 176
or-expr - GOTO 19
and-expr - GOTO 20
eq-expr - GOTO 21
rel-expr - GOTO 22
shift-expr - GOTO 23
add-expr - GOTO 24
mul-expr - GOTO 25
unary-op - GOTO 26

108
-----
rel-expr -> rel-expr rel-op shift-expr. (10)
shift-expr -> shift-expr.shift-op add-expr

EOT - REDUCE 10 expr
ASSIGN - REDUCE 10 or-expr
OR - REDUCE 10 or-expr
AND - REDUCE 10 and-expr
EQ - REDUCE 10 eq-expr
NE - REDUCE 10 eq-expr
LSHIFT - SHIFT 41
RSHIFT - SHIFT 42
* - REDUCE 10 rel-expr

shift-op - GOTO 177

109
-----
add-expr -> add-expr.add-op mul-expr

PLUS - SHIFT 44
MINUS - SHIFT 45

add-op - GOTO 178

110
-----
mul-expr -> mul-expr.mul-op unary-expr

TIMES - SHIFT 47
DIVIDE - SHIFT 48

mul-op - GOTO 179

111
-----
unary-expr -> unary-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 180
unary-op - GOTO 54

112
-----
primary-expr -> NUMBER. (20)

TIMES - REDUCE 20 mul-expr
DIVIDE - REDUCE 20 mul-expr
* - REDUCE 20 add-expr

113
-----
primary-expr -> IDENT. (21)

TIMES - REDUCE 21 mul-expr
DIVIDE - REDUCE 21 mul-expr
* - REDUCE 21 add-expr

114
-----
primary-expr -> LPAREN.expr RPAREN

NUMBER - SHIFT 15
IDENT - SHIFT 16
LPAREN - SHIFT 17
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 181
or-expr - GOTO 19
and-expr - GOTO 20
eq-expr - GOTO 21
rel-expr - GOTO 22
shift-expr - GOTO 23
add-expr - GOTO 24
mul-expr - GOTO 25
unary-op - GOTO 26

115
-----
shift-expr -> shift-expr shift-op add-expr. (12)
add-expr -> add-expr.add-op mul-expr

EOT - REDUCE 12 expr
ASSIGN - REDUCE 12 or-expr
OR - REDUCE 12 or-expr
AND - REDUCE 12 and-expr
EQ - REDUCE 12 eq-expr
NE - REDUCE 12 eq-expr
LSHIFT - REDUCE 12 shift-expr
RSHIFT - REDUCE 12 shift-expr
PLUS - SHIFT 44
MINUS - SHIFT 45
* - REDUCE 12 rel-expr

add-op - GOTO 182

116
-----
mul-expr -> mul-expr.mul-op unary-expr

TIMES - SHIFT 47
DIVIDE - SHIFT 48

mul-op - GOTO 183

117
-----
unary-expr -> unary-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 184
unary-op - GOTO 54

118
-----
primary-expr -> NUMBER. (20)

* - REDUCE 20 mul-expr

119
-----
primary-expr -> IDENT. (21)

* - REDUCE 21 mul-expr

120
-----
primary-expr -> LPAREN.expr RPAREN

NUMBER - SHIFT 15
IDENT - SHIFT 16
LPAREN - SHIFT 17
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 185
or-expr - GOTO 19
and-expr - GOTO 20
eq-expr - GOTO 21
rel-expr - GOTO 22
shift-expr - GOTO 23
add-expr - GOTO 24
mul-expr - GOTO 25
unary-op - GOTO 26

121
-----
add-expr -> add-expr add-op mul-expr. (14)
mul-expr -> mul-expr.mul-op unary-expr

EOT - REDUCE 14 expr
ASSIGN - REDUCE 14 or-expr
OR - REDUCE 14 or-expr
AND - REDUCE 14 and-expr
EQ - REDUCE 14 eq-expr
NE - REDUCE 14 eq-expr
LSHIFT - REDUCE 14 shift-expr
RSHIFT - REDUCE 14 shift-expr
PLUS - REDUCE 14 add-expr
MINUS - REDUCE 14 add-expr
TIMES - SHIFT 47
DIVIDE - SHIFT 48
* - REDUCE 14 rel-expr

mul-op - GOTO 186

122
-----
unary-expr -> unary-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 187
unary-op - GOTO 54

123
-----
mul-expr -> mul-expr mul-op unary-expr. (16)

EOT - REDUCE 16 expr
ASSIGN - REDUCE 16 or-expr
OR - REDUCE 16 or-expr
AND - REDUCE 16 and-expr
EQ - REDUCE 16 eq-expr
NE - REDUCE 16 eq-expr
LSHIFT - REDUCE 16 shift-expr
RSHIFT - REDUCE 16 shift-expr
PLUS - REDUCE 16 add-expr
MINUS - REDUCE 16 add-expr
TIMES - REDUCE 16 mul-expr
DIVIDE - REDUCE 16 mul-expr
* - REDUCE 16 rel-expr

124
-----
primary-expr -> LPAREN expr.RPAREN

RPAREN - SHIFT 188

125
-----
unary-expr -> unary-op unary-expr. (18)

* - REDUCE 18 unary-expr

126
-----
primary-expr -> LPAREN expr RPAREN. (22)

RPAREN - REDUCE 22 expr
ASSIGN - REDUCE 22 or-expr
OR - REDUCE 22 or-expr
AND - REDUCE 22 and-expr
EQ - REDUCE 22 eq-expr
NE - REDUCE 22 eq-expr
LSHIFT - REDUCE 22 shift-expr
RSHIFT - REDUCE 22 shift-expr
PLUS - REDUCE 22 add-expr
MINUS - REDUCE 22 add-expr
TIMES - REDUCE 22 mul-expr
DIVIDE - REDUCE 22 mul-expr
* - REDUCE 22 rel-expr

127
-----
primary-expr -> NUMBER. (20)

RPAREN - REDUCE 20 assign-expr
ASSIGN - REDUCE 20 or-expr
OR - REDUCE 20 or-expr
AND - REDUCE 20 and-expr
EQ - REDUCE 20 eq-expr
NE - REDUCE 20 eq-expr
LSHIFT - REDUCE 20 shift-expr
RSHIFT - REDUCE 20 shift-expr
PLUS - REDUCE 20 add-expr
MINUS - REDUCE 20 add-expr
TIMES - REDUCE 20 mul-expr
DIVIDE - REDUCE 20 mul-expr
* - REDUCE 20 rel-expr

128
-----
primary-expr -> IDENT. (21)

RPAREN - REDUCE 21 assign-expr
ASSIGN - REDUCE 21 or-expr
OR - REDUCE 21 or-expr
AND - REDUCE 21 and-expr
EQ - REDUCE 21 eq-expr
NE - REDUCE 21 eq-expr
LSHIFT - REDUCE 21 shift-expr
RSHIFT - REDUCE 21 shift-expr
PLUS - REDUCE 21 add-expr
MINUS - REDUCE 21 add-expr
TIMES - REDUCE 21 mul-expr
DIVIDE - REDUCE 21 mul-expr
* - REDUCE 21 rel-expr

129
-----
primary-expr -> LPAREN.expr RPAREN

NUMBER - SHIFT 15
IDENT - SHIFT 16
LPAREN - SHIFT 17
PLUS - SHIFT 4
MINUS - SHIFT 5

expr - GOTO 189
or-expr - GOTO 19
and-expr - GOTO 20
eq-expr - GOTO 21
rel-expr - GOTO 22
shift-expr - GOTO 23
add-expr - GOTO 24
mul-expr - GOTO 25
unary-op - GOTO 26

130
-----
assign-expr -> or-expr.assign-op assign-expr
or-expr -> or-expr.or-op and-expr

ASSIGN - SHIFT 27
OR - SHIFT 28

assign-op - GOTO 190
or-op - GOTO 191

131
-----
and-expr -> and-expr.and-op eq-expr

AND - SHIFT 31

and-op - GOTO 192

132
-----
eq-expr -> eq-expr.eq-op rel-expr

EQ - SHIFT 33
NE - SHIFT 34

eq-op - GOTO 193

133
-----
rel-expr -> rel-expr.rel-op shift-expr

LT - SHIFT 36
GT - SHIFT 37
LE - SHIFT 38
GE - SHIFT 39

rel-op - GOTO 194

134
-----
shift-expr -> shift-expr.shift-op add-expr

LSHIFT - SHIFT 41
RSHIFT - SHIFT 42

shift-op - GOTO 195

135
-----
add-expr -> add-expr.add-op mul-expr

PLUS - SHIFT 44
MINUS - SHIFT 45

add-op - GOTO 196

136
-----
mul-expr -> mul-expr.mul-op unary-expr

TIMES - SHIFT 47
DIVIDE - SHIFT 48

mul-op - GOTO 197

137
-----
unary-expr -> unary-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 198
unary-op - GOTO 54

138
-----
or-expr -> or-expr or-op and-expr. (4)
and-expr -> and-expr.and-op eq-expr

RPAREN - REDUCE 4 expr
AND - SHIFT 31
* - REDUCE 4 or-expr

and-op - GOTO 156

139
-----
and-expr -> and-expr and-op eq-expr. (6)
eq-expr -> eq-expr.eq-op rel-expr

RPAREN - REDUCE 6 expr
AND - REDUCE 6 and-expr
EQ - SHIFT 33
NE - SHIFT 34
* - REDUCE 6 or-expr

eq-op - GOTO 164

140
-----
eq-expr -> eq-expr eq-op rel-expr. (8)
rel-expr -> rel-expr.rel-op shift-expr

RPAREN - REDUCE 8 expr
AND - REDUCE 8 and-expr
EQ - REDUCE 8 eq-expr
NE - REDUCE 8 eq-expr
LT - SHIFT 36
GT - SHIFT 37
LE - SHIFT 38
GE - SHIFT 39
* - REDUCE 8 or-expr

rel-op - GOTO 171

141
-----
rel-expr -> rel-expr rel-op shift-expr. (10)
shift-expr -> shift-expr.shift-op add-expr

RPAREN - REDUCE 10 expr
ASSIGN - REDUCE 10 or-expr
OR - REDUCE 10 or-expr
AND - REDUCE 10 and-expr
EQ - REDUCE 10 eq-expr
NE - REDUCE 10 eq-expr
LSHIFT - SHIFT 41
RSHIFT - SHIFT 42
* - REDUCE 10 rel-expr

shift-op - GOTO 177

142
-----
shift-expr -> shift-expr shift-op add-expr. (12)
add-expr -> add-expr.add-op mul-expr

RPAREN - REDUCE 12 expr
ASSIGN - REDUCE 12 or-expr
OR - REDUCE 12 or-expr
AND - REDUCE 12 and-expr
EQ - REDUCE 12 eq-expr
NE - REDUCE 12 eq-expr
LSHIFT - REDUCE 12 shift-expr
RSHIFT - REDUCE 12 shift-expr
PLUS - SHIFT 44
MINUS - SHIFT 45
* - REDUCE 12 rel-expr

add-op - GOTO 182

143
-----
add-expr -> add-expr add-op mul-expr. (14)
mul-expr -> mul-expr.mul-op unary-expr

RPAREN - REDUCE 14 expr
ASSIGN - REDUCE 14 or-expr
OR - REDUCE 14 or-expr
AND - REDUCE 14 and-expr
EQ - REDUCE 14 eq-expr
NE - REDUCE 14 eq-expr
LSHIFT - REDUCE 14 shift-expr
RSHIFT - REDUCE 14 shift-expr
PLUS - REDUCE 14 add-expr
MINUS - REDUCE 14 add-expr
TIMES - SHIFT 47
DIVIDE - SHIFT 48
* - REDUCE 14 rel-expr

mul-op - GOTO 186

144
-----
mul-expr -> mul-expr mul-op unary-expr. (16)

RPAREN - REDUCE 16 expr
ASSIGN - REDUCE 16 or-expr
OR - REDUCE 16 or-expr
AND - REDUCE 16 and-expr
EQ - REDUCE 16 eq-expr
NE - REDUCE 16 eq-expr
LSHIFT - REDUCE 16 shift-expr
RSHIFT - REDUCE 16 shift-expr
PLUS - REDUCE 16 add-expr
MINUS - REDUCE 16 add-expr
TIMES - REDUCE 16 mul-expr
DIVIDE - REDUCE 16 mul-expr
* - REDUCE 16 rel-expr

145
-----
primary-expr -> LPAREN expr.RPAREN

RPAREN - SHIFT 199

146
-----
assign-expr -> or-expr assign-op.assign-expr

NUMBER - SHIFT 66
IDENT - SHIFT 67
LPAREN - SHIFT 68
PLUS - SHIFT 4
MINUS - SHIFT 5

assign-expr - GOTO 200
or-expr - GOTO 70
and-expr - GOTO 71
eq-expr - GOTO 72
rel-expr - GOTO 73
shift-expr - GOTO 74
add-expr - GOTO 75
mul-expr - GOTO 76
unary-op - GOTO 77

147
-----
or-expr -> or-expr or-op.and-expr

NUMBER - SHIFT 78
IDENT - SHIFT 79
LPAREN - SHIFT 80
PLUS - SHIFT 4
MINUS - SHIFT 5

and-expr - GOTO 201
eq-expr - GOTO 82
rel-expr - GOTO 83
shift-expr - GOTO 84
add-expr - GOTO 85
mul-expr - GOTO 86
unary-op - GOTO 87

148
-----
and-expr -> and-expr and-op.eq-expr

NUMBER - SHIFT 88
IDENT - SHIFT 89
LPAREN - SHIFT 90
PLUS - SHIFT 4
MINUS - SHIFT 5

eq-expr - GOTO 202
rel-expr - GOTO 92
shift-expr - GOTO 93
add-expr - GOTO 94
mul-expr - GOTO 95
unary-op - GOTO 96

149
-----
eq-expr -> eq-expr eq-op.rel-expr

NUMBER - SHIFT 97
IDENT - SHIFT 98
LPAREN - SHIFT 99
PLUS - SHIFT 4
MINUS - SHIFT 5

rel-expr - GOTO 203
shift-expr - GOTO 101
add-expr - GOTO 102
mul-expr - GOTO 103
unary-op - GOTO 104

150
-----
rel-expr -> rel-expr rel-op.shift-expr

NUMBER - SHIFT 105
IDENT - SHIFT 106
LPAREN - SHIFT 107
PLUS - SHIFT 4
MINUS - SHIFT 5

shift-expr - GOTO 204
add-expr - GOTO 109
mul-expr - GOTO 110
unary-op - GOTO 111

151
-----
shift-expr -> shift-expr shift-op.add-expr

NUMBER - SHIFT 112
IDENT - SHIFT 113
LPAREN - SHIFT 114
PLUS - SHIFT 4
MINUS - SHIFT 5

add-expr - GOTO 205
mul-expr - GOTO 116
unary-op - GOTO 117

152
-----
add-expr -> add-expr add-op.mul-expr

NUMBER - SHIFT 118
IDENT - SHIFT 119
LPAREN - SHIFT 120
PLUS - SHIFT 4
MINUS - SHIFT 5

mul-expr - GOTO 206
unary-op - GOTO 122

153
-----
mul-expr -> mul-expr mul-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 207
unary-op - GOTO 54

154
-----
unary-expr -> unary-op unary-expr. (18)

EOT - REDUCE 18 assign-expr
ASSIGN - REDUCE 18 or-expr
OR - REDUCE 18 or-expr
AND - REDUCE 18 and-expr
EQ - REDUCE 18 eq-expr
NE - REDUCE 18 eq-expr
LSHIFT - REDUCE 18 shift-expr
RSHIFT - REDUCE 18 shift-expr
PLUS - REDUCE 18 add-expr
MINUS - REDUCE 18 add-expr
TIMES - REDUCE 18 mul-expr
DIVIDE - REDUCE 18 mul-expr
* - REDUCE 18 rel-expr

155
-----
primary-expr -> LPAREN expr.RPAREN

RPAREN - SHIFT 208

156
-----
and-expr -> and-expr and-op.eq-expr

NUMBER - SHIFT 88
IDENT - SHIFT 89
LPAREN - SHIFT 90
PLUS - SHIFT 4
MINUS - SHIFT 5

eq-expr - GOTO 209
rel-expr - GOTO 92
shift-expr - GOTO 93
add-expr - GOTO 94
mul-expr - GOTO 95
unary-op - GOTO 96

157
-----
eq-expr -> eq-expr eq-op.rel-expr

NUMBER - SHIFT 97
IDENT - SHIFT 98
LPAREN - SHIFT 99
PLUS - SHIFT 4
MINUS - SHIFT 5

rel-expr - GOTO 210
shift-expr - GOTO 101
add-expr - GOTO 102
mul-expr - GOTO 103
unary-op - GOTO 104

158
-----
rel-expr -> rel-expr rel-op.shift-expr

NUMBER - SHIFT 105
IDENT - SHIFT 106
LPAREN - SHIFT 107
PLUS - SHIFT 4
MINUS - SHIFT 5

shift-expr - GOTO 211
add-expr - GOTO 109
mul-expr - GOTO 110
unary-op - GOTO 111

159
-----
shift-expr -> shift-expr shift-op.add-expr

NUMBER - SHIFT 112
IDENT - SHIFT 113
LPAREN - SHIFT 114
PLUS - SHIFT 4
MINUS - SHIFT 5

add-expr - GOTO 212
mul-expr - GOTO 116
unary-op - GOTO 117

160
-----
add-expr -> add-expr add-op.mul-expr

NUMBER - SHIFT 118
IDENT - SHIFT 119
LPAREN - SHIFT 120
PLUS - SHIFT 4
MINUS - SHIFT 5

mul-expr - GOTO 213
unary-op - GOTO 122

161
-----
mul-expr -> mul-expr mul-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 214
unary-op - GOTO 54

162
-----
unary-expr -> unary-op unary-expr. (18)

EQ - REDUCE 18 eq-expr
NE - REDUCE 18 eq-expr
LT - REDUCE 18 rel-expr
GT - REDUCE 18 rel-expr
LE - REDUCE 18 rel-expr
GE - REDUCE 18 rel-expr
LSHIFT - REDUCE 18 shift-expr
RSHIFT - REDUCE 18 shift-expr
PLUS - REDUCE 18 add-expr
MINUS - REDUCE 18 add-expr
TIMES - REDUCE 18 mul-expr
DIVIDE - REDUCE 18 mul-expr
* - REDUCE 18 and-expr

163
-----
primary-expr -> LPAREN expr.RPAREN

RPAREN - SHIFT 215

164
-----
eq-expr -> eq-expr eq-op.rel-expr

NUMBER - SHIFT 97
IDENT - SHIFT 98
LPAREN - SHIFT 99
PLUS - SHIFT 4
MINUS - SHIFT 5

rel-expr - GOTO 216
shift-expr - GOTO 101
add-expr - GOTO 102
mul-expr - GOTO 103
unary-op - GOTO 104

165
-----
rel-expr -> rel-expr rel-op.shift-expr

NUMBER - SHIFT 105
IDENT - SHIFT 106
LPAREN - SHIFT 107
PLUS - SHIFT 4
MINUS - SHIFT 5

shift-expr - GOTO 217
add-expr - GOTO 109
mul-expr - GOTO 110
unary-op - GOTO 111

166
-----
shift-expr -> shift-expr shift-op.add-expr

NUMBER - SHIFT 112
IDENT - SHIFT 113
LPAREN - SHIFT 114
PLUS - SHIFT 4
MINUS - SHIFT 5

add-expr - GOTO 218
mul-expr - GOTO 116
unary-op - GOTO 117

167
-----
add-expr -> add-expr add-op.mul-expr

NUMBER - SHIFT 118
IDENT - SHIFT 119
LPAREN - SHIFT 120
PLUS - SHIFT 4
MINUS - SHIFT 5

mul-expr - GOTO 219
unary-op - GOTO 122

168
-----
mul-expr -> mul-expr mul-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 220
unary-op - GOTO 54

169
-----
unary-expr -> unary-op unary-expr. (18)

LT - REDUCE 18 rel-expr
GT - REDUCE 18 rel-expr
LE - REDUCE 18 rel-expr
GE - REDUCE 18 rel-expr
LSHIFT - REDUCE 18 shift-expr
RSHIFT - REDUCE 18 shift-expr
PLUS - REDUCE 18 add-expr
MINUS - REDUCE 18 add-expr
TIMES - REDUCE 18 mul-expr
DIVIDE - REDUCE 18 mul-expr
* - REDUCE 18 eq-expr

170
-----
primary-expr -> LPAREN expr.RPAREN

RPAREN - SHIFT 221

171
-----
rel-expr -> rel-expr rel-op.shift-expr

NUMBER - SHIFT 105
IDENT - SHIFT 106
LPAREN - SHIFT 107
PLUS - SHIFT 4
MINUS - SHIFT 5

shift-expr - GOTO 222
add-expr - GOTO 109
mul-expr - GOTO 110
unary-op - GOTO 111

172
-----
shift-expr -> shift-expr shift-op.add-expr

NUMBER - SHIFT 112
IDENT - SHIFT 113
LPAREN - SHIFT 114
PLUS - SHIFT 4
MINUS - SHIFT 5

add-expr - GOTO 223
mul-expr - GOTO 116
unary-op - GOTO 117

173
-----
add-expr -> add-expr add-op.mul-expr

NUMBER - SHIFT 118
IDENT - SHIFT 119
LPAREN - SHIFT 120
PLUS - SHIFT 4
MINUS - SHIFT 5

mul-expr - GOTO 224
unary-op - GOTO 122

174
-----
mul-expr -> mul-expr mul-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 225
unary-op - GOTO 54

175
-----
unary-expr -> unary-op unary-expr. (18)

LSHIFT - REDUCE 18 shift-expr
RSHIFT - REDUCE 18 shift-expr
PLUS - REDUCE 18 add-expr
MINUS - REDUCE 18 add-expr
TIMES - REDUCE 18 mul-expr
DIVIDE - REDUCE 18 mul-expr
* - REDUCE 18 rel-expr

176
-----
primary-expr -> LPAREN expr.RPAREN

RPAREN - SHIFT 226

177
-----
shift-expr -> shift-expr shift-op.add-expr

NUMBER - SHIFT 112
IDENT - SHIFT 113
LPAREN - SHIFT 114
PLUS - SHIFT 4
MINUS - SHIFT 5

add-expr - GOTO 227
mul-expr - GOTO 116
unary-op - GOTO 117

178
-----
add-expr -> add-expr add-op.mul-expr

NUMBER - SHIFT 118
IDENT - SHIFT 119
LPAREN - SHIFT 120
PLUS - SHIFT 4
MINUS - SHIFT 5

mul-expr - GOTO 228
unary-op - GOTO 122

179
-----
mul-expr -> mul-expr mul-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 229
unary-op - GOTO 54

180
-----
unary-expr -> unary-op unary-expr. (18)

PLUS - REDUCE 18 add-expr
MINUS - REDUCE 18 add-expr
TIMES - REDUCE 18 mul-expr
DIVIDE - REDUCE 18 mul-expr
* - REDUCE 18 shift-expr

181
-----
primary-expr -> LPAREN expr.RPAREN

RPAREN - SHIFT 230

182
-----
add-expr -> add-expr add-op.mul-expr

NUMBER - SHIFT 118
IDENT - SHIFT 119
LPAREN - SHIFT 120
PLUS - SHIFT 4
MINUS - SHIFT 5

mul-expr - GOTO 231
unary-op - GOTO 122

183
-----
mul-expr -> mul-expr mul-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 232
unary-op - GOTO 54

184
-----
unary-expr -> unary-op unary-expr. (18)

TIMES - REDUCE 18 mul-expr
DIVIDE - REDUCE 18 mul-expr
* - REDUCE 18 add-expr

185
-----
primary-expr -> LPAREN expr.RPAREN

RPAREN - SHIFT 233

186
-----
mul-expr -> mul-expr mul-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 234
unary-op - GOTO 54

187
-----
unary-expr -> unary-op unary-expr. (18)

* - REDUCE 18 mul-expr

188
-----
primary-expr -> LPAREN expr RPAREN. (22)

* - REDUCE 22 unary-expr

189
-----
primary-expr -> LPAREN expr.RPAREN

RPAREN - SHIFT 235

190
-----
assign-expr -> or-expr assign-op.assign-expr

NUMBER - SHIFT 127
IDENT - SHIFT 128
LPAREN - SHIFT 129
PLUS - SHIFT 4
MINUS - SHIFT 5

assign-expr - GOTO 200
or-expr - GOTO 130
and-expr - GOTO 131
eq-expr - GOTO 132
rel-expr - GOTO 133
shift-expr - GOTO 134
add-expr - GOTO 135
mul-expr - GOTO 136
unary-op - GOTO 137

191
-----
or-expr -> or-expr or-op.and-expr

NUMBER - SHIFT 78
IDENT - SHIFT 79
LPAREN - SHIFT 80
PLUS - SHIFT 4
MINUS - SHIFT 5

and-expr - GOTO 236
eq-expr - GOTO 82
rel-expr - GOTO 83
shift-expr - GOTO 84
add-expr - GOTO 85
mul-expr - GOTO 86
unary-op - GOTO 87

192
-----
and-expr -> and-expr and-op.eq-expr

NUMBER - SHIFT 88
IDENT - SHIFT 89
LPAREN - SHIFT 90
PLUS - SHIFT 4
MINUS - SHIFT 5

eq-expr - GOTO 237
rel-expr - GOTO 92
shift-expr - GOTO 93
add-expr - GOTO 94
mul-expr - GOTO 95
unary-op - GOTO 96

193
-----
eq-expr -> eq-expr eq-op.rel-expr

NUMBER - SHIFT 97
IDENT - SHIFT 98
LPAREN - SHIFT 99
PLUS - SHIFT 4
MINUS - SHIFT 5

rel-expr - GOTO 238
shift-expr - GOTO 101
add-expr - GOTO 102
mul-expr - GOTO 103
unary-op - GOTO 104

194
-----
rel-expr -> rel-expr rel-op.shift-expr

NUMBER - SHIFT 105
IDENT - SHIFT 106
LPAREN - SHIFT 107
PLUS - SHIFT 4
MINUS - SHIFT 5

shift-expr - GOTO 239
add-expr - GOTO 109
mul-expr - GOTO 110
unary-op - GOTO 111

195
-----
shift-expr -> shift-expr shift-op.add-expr

NUMBER - SHIFT 112
IDENT - SHIFT 113
LPAREN - SHIFT 114
PLUS - SHIFT 4
MINUS - SHIFT 5

add-expr - GOTO 240
mul-expr - GOTO 116
unary-op - GOTO 117

196
-----
add-expr -> add-expr add-op.mul-expr

NUMBER - SHIFT 118
IDENT - SHIFT 119
LPAREN - SHIFT 120
PLUS - SHIFT 4
MINUS - SHIFT 5

mul-expr - GOTO 241
unary-op - GOTO 122

197
-----
mul-expr -> mul-expr mul-op.unary-expr

NUMBER - SHIFT 50
IDENT - SHIFT 51
LPAREN - SHIFT 52
PLUS - SHIFT 4
MINUS - SHIFT 5

unary-expr - GOTO 242
unary-op - GOTO 54

198
-----
unary-expr -> unary-op unary-expr. (18)

RPAREN - REDUCE 18 assign-expr
ASSIGN - REDUCE 18 or-expr
OR - REDUCE 18 or-expr
AND - REDUCE 18 and-expr
EQ - REDUCE 18 eq-expr
NE - REDUCE 18 eq-expr
LSHIFT - REDUCE 18 shift-expr
RSHIFT - REDUCE 18 shift-expr
PLUS - REDUCE 18 add-expr
MINUS - REDUCE 18 add-expr
TIMES - REDUCE 18 mul-expr
DIVIDE - REDUCE 18 mul-expr
* - REDUCE 18 rel-expr

199
-----
primary-expr -> LPAREN expr RPAREN. (22)

EOT - REDUCE 22 assign-expr
ASSIGN - REDUCE 22 or-expr
OR - REDUCE 22 or-expr
AND - REDUCE 22 and-expr
EQ - REDUCE 22 eq-expr
NE - REDUCE 22 eq-expr
LSHIFT - REDUCE 22 shift-expr
RSHIFT - REDUCE 22 shift-expr
PLUS - REDUCE 22 add-expr
MINUS - REDUCE 22 add-expr
TIMES - REDUCE 22 mul-expr
DIVIDE - REDUCE 22 mul-expr
* - REDUCE 22 rel-expr

200
-----
assign-expr -> or-expr assign-op assign-expr. (2)

* - REDUCE 2 assign-expr

201
-----
or-expr -> or-expr or-op and-expr. (4)
and-expr -> and-expr.and-op eq-expr

EOT - REDUCE 4 assign-expr
AND - SHIFT 31
* - REDUCE 4 or-expr

and-op - GOTO 156

202
-----
and-expr -> and-expr and-op eq-expr. (6)
eq-expr -> eq-expr.eq-op rel-expr

EOT - REDUCE 6 assign-expr
AND - REDUCE 6 and-expr
EQ - SHIFT 33
NE - SHIFT 34
* - REDUCE 6 or-expr

eq-op - GOTO 164

203
-----
eq-expr -> eq-expr eq-op rel-expr. (8)
rel-expr -> rel-expr.rel-op shift-expr

EOT - REDUCE 8 assign-expr
AND - REDUCE 8 and-expr
EQ - REDUCE 8 eq-expr
NE - REDUCE 8 eq-expr
LT - SHIFT 36
GT - SHIFT 37
LE - SHIFT 38
GE - SHIFT 39
* - REDUCE 8 or-expr

rel-op - GOTO 171

204
-----
rel-expr -> rel-expr rel-op shift-expr. (10)
shift-expr -> shift-expr.shift-op add-expr

EOT - REDUCE 10 assign-expr
ASSIGN - REDUCE 10 or-expr
OR - REDUCE 10 or-expr
AND - REDUCE 10 and-expr
EQ - REDUCE 10 eq-expr
NE - REDUCE 10 eq-expr
LSHIFT - SHIFT 41
RSHIFT - SHIFT 42
* - REDUCE 10 rel-expr

shift-op - GOTO 177

205
-----
shift-expr -> shift-expr shift-op add-expr. (12)
add-expr -> add-expr.add-op mul-expr

EOT - REDUCE 12 assign-expr
ASSIGN - REDUCE 12 or-expr
OR - REDUCE 12 or-expr
AND - REDUCE 12 and-expr
EQ - REDUCE 12 eq-expr
NE - REDUCE 12 eq-expr
LSHIFT - REDUCE 12 shift-expr
RSHIFT - REDUCE 12 shift-expr
PLUS - SHIFT 44
MINUS - SHIFT 45
* - REDUCE 12 rel-expr

add-op - GOTO 182

206
-----
add-expr -> add-expr add-op mul-expr. (14)
mul-expr -> mul-expr.mul-op unary-expr

EOT - REDUCE 14 assign-expr
ASSIGN - REDUCE 14 or-expr
OR - REDUCE 14 or-expr
AND - REDUCE 14 and-expr
EQ - REDUCE 14 eq-expr
NE - REDUCE 14 eq-expr
LSHIFT - REDUCE 14 shift-expr
RSHIFT - REDUCE 14 shift-expr
PLUS - REDUCE 14 add-expr
MINUS - REDUCE 14 add-expr
TIMES - SHIFT 47
DIVIDE - SHIFT 48
* - REDUCE 14 rel-expr

mul-op - GOTO 186

207
-----
mul-expr -> mul-expr mul-op unary-expr. (16)

EOT - REDUCE 16 assign-expr
ASSIGN - REDUCE 16 or-expr
OR - REDUCE 16 or-expr
AND - REDUCE 16 and-expr
EQ - REDUCE 16 eq-expr
NE - REDUCE 16 eq-expr
LSHIFT - REDUCE 16 shift-expr
RSHIFT - REDUCE 16 shift-expr
PLUS - REDUCE 16 add-expr
MINUS - REDUCE 16 add-expr
TIMES - REDUCE 16 mul-expr
DIVIDE - REDUCE 16 mul-expr
* - REDUCE 16 rel-expr

208
-----
primary-expr -> LPAREN expr RPAREN. (22)

EQ - REDUCE 22 eq-expr
NE - REDUCE 22 eq-expr
LT - REDUCE 22 rel-expr
GT - REDUCE 22 rel-expr
LE - REDUCE 22 rel-expr
GE - REDUCE 22 rel-expr
LSHIFT - REDUCE 22 shift-expr
RSHIFT - REDUCE 22 shift-expr
PLUS - REDUCE 22 add-expr
MINUS - REDUCE 22 add-expr
TIMES - REDUCE 22 mul-expr
DIVIDE - REDUCE 22 mul-expr
* - REDUCE 22 and-expr

209
-----
and-expr -> and-expr and-op eq-expr. (6)
eq-expr -> eq-expr.eq-op rel-expr

EQ - SHIFT 33
NE - SHIFT 34
* - REDUCE 6 and-expr

eq-op - GOTO 164

210
-----
eq-expr -> eq-expr eq-op rel-expr. (8)
rel-expr -> rel-expr.rel-op shift-expr

EQ - REDUCE 8 eq-expr
NE - REDUCE 8 eq-expr
LT - SHIFT 36
GT - SHIFT 37
LE - SHIFT 38
GE - SHIFT 39
* - REDUCE 8 and-expr

rel-op - GOTO 171

211
-----
rel-expr -> rel-expr rel-op shift-expr. (10)
shift-expr -> shift-expr.shift-op add-expr

EQ - REDUCE 10 eq-expr
NE - REDUCE 10 eq-expr
LT - REDUCE 10 rel-expr
GT - REDUCE 10 rel-expr
LE - REDUCE 10 rel-expr
GE - REDUCE 10 rel-expr
LSHIFT - SHIFT 41
RSHIFT - SHIFT 42
* - REDUCE 10 and-expr

shift-op - GOTO 177

212
-----
shift-expr -> shift-expr shift-op add-expr. (12)
add-expr -> add-expr.add-op mul-expr

EQ - REDUCE 12 eq-expr
NE - REDUCE 12 eq-expr
LT - REDUCE 12 rel-expr
GT - REDUCE 12 rel-expr
LE - REDUCE 12 rel-expr
GE - REDUCE 12 rel-expr
LSHIFT - REDUCE 12 shift-expr
RSHIFT - REDUCE 12 shift-expr
PLUS - SHIFT 44
MINUS - SHIFT 45
* - REDUCE 12 and-expr

add-op - GOTO 182

213
-----
add-expr -> add-expr add-op mul-expr. (14)
mul-expr -> mul-expr.mul-op unary-expr

EQ - REDUCE 14 eq-expr
NE - REDUCE 14 eq-expr
LT - REDUCE 14 rel-expr
GT - REDUCE 14 rel-expr
LE - REDUCE 14 rel-expr
GE - REDUCE 14 rel-expr
LSHIFT - REDUCE 14 shift-expr
RSHIFT - REDUCE 14 shift-expr
PLUS - REDUCE 14 add-expr
MINUS - REDUCE 14 add-expr
TIMES - SHIFT 47
DIVIDE - SHIFT 48
* - REDUCE 14 and-expr

mul-op - GOTO 186

214
-----
mul-expr -> mul-expr mul-op unary-expr. (16)

EQ - REDUCE 16 eq-expr
NE - REDUCE 16 eq-expr
LT - REDUCE 16 rel-expr
GT - REDUCE 16 rel-expr
LE - REDUCE 16 rel-expr
GE - REDUCE 16 rel-expr
LSHIFT - REDUCE 16 shift-expr
RSHIFT - REDUCE 16 shift-expr
PLUS - REDUCE 16 add-expr
MINUS - REDUCE 16 add-expr
TIMES - REDUCE 16 mul-expr
DIVIDE - REDUCE 16 mul-expr
* - REDUCE 16 and-expr

215
-----
primary-expr -> LPAREN expr RPAREN. (22)

LT - REDUCE 22 rel-expr
GT - REDUCE 22 rel-expr
LE - REDUCE 22 rel-expr
GE - REDUCE 22 rel-expr
LSHIFT - REDUCE 22 shift-expr
RSHIFT - REDUCE 22 shift-expr
PLUS - REDUCE 22 add-expr
MINUS - REDUCE 22 add-expr
TIMES - REDUCE 22 mul-expr
DIVIDE - REDUCE 22 mul-expr
* - REDUCE 22 eq-expr

216
-----
eq-expr -> eq-expr eq-op rel-expr. (8)
rel-expr -> rel-expr.rel-op shift-expr

LT - SHIFT 36
GT - SHIFT 37
LE - SHIFT 38
GE - SHIFT 39
* - REDUCE 8 eq-expr

rel-op - GOTO 171

217
-----
rel-expr -> rel-expr rel-op shift-expr. (10)
shift-expr -> shift-expr.shift-op add-expr

LT - REDUCE 10 rel-expr
GT - REDUCE 10 rel-expr
LE - REDUCE 10 rel-expr
GE - REDUCE 10 rel-expr
LSHIFT - SHIFT 41
RSHIFT - SHIFT 42
* - REDUCE 10 eq-expr

shift-op - GOTO 177

218
-----
shift-expr -> shift-expr shift-op add-expr. (12)
add-expr -> add-expr.add-op mul-expr

LT - REDUCE 12 rel-expr
GT - REDUCE 12 rel-expr
LE - REDUCE 12 rel-expr
GE - REDUCE 12 rel-expr
LSHIFT - REDUCE 12 shift-expr
RSHIFT - REDUCE 12 shift-expr
PLUS - SHIFT 44
MINUS - SHIFT 45
* - REDUCE 12 eq-expr

add-op - GOTO 182

219
-----
add-expr -> add-expr add-op mul-expr. (14)
mul-expr -> mul-expr.mul-op unary-expr

LT - REDUCE 14 rel-expr
GT - REDUCE 14 rel-expr
LE - REDUCE 14 rel-expr
GE - REDUCE 14 rel-expr
LSHIFT - REDUCE 14 shift-expr
RSHIFT - REDUCE 14 shift-expr
PLUS - REDUCE 14 add-expr
MINUS - REDUCE 14 add-expr
TIMES - SHIFT 47
DIVIDE - SHIFT 48
* - REDUCE 14 eq-expr

mul-op - GOTO 186

220
-----
mul-expr -> mul-expr mul-op unary-expr. (16)

LT - REDUCE 16 rel-expr
GT - REDUCE 16 rel-expr
LE - REDUCE 16 rel-expr
GE - REDUCE 16 rel-expr
LSHIFT - REDUCE 16 shift-expr
RSHIFT - REDUCE 16 shift-expr
PLUS - REDUCE 16 add-expr
MINUS - REDUCE 16 add-expr
TIMES - REDUCE 16 mul-expr
DIVIDE - REDUCE 16 mul-expr
* - REDUCE 16 eq-expr

221
-----
primary-expr -> LPAREN expr RPAREN. (22)

LSHIFT - REDUCE 22 shift-expr
RSHIFT - REDUCE 22 shift-expr
PLUS - REDUCE 22 add-expr
MINUS - REDUCE 22 add-expr
TIMES - REDUCE 22 mul-expr
DIVIDE - REDUCE 22 mul-expr
* - REDUCE 22 rel-expr

222
-----
rel-expr -> rel-expr rel-op shift-expr. (10)
shift-expr -> shift-expr.shift-op add-expr

LSHIFT - SHIFT 41
RSHIFT - SHIFT 42
* - REDUCE 10 rel-expr

shift-op - GOTO 177

223
-----
shift-expr -> shift-expr shift-op add-expr. (12)
add-expr -> add-expr.add-op mul-expr

LSHIFT - REDUCE 12 shift-expr
RSHIFT - REDUCE 12 shift-expr
PLUS - SHIFT 44
MINUS - SHIFT 45
* - REDUCE 12 rel-expr

add-op - GOTO 182

224
-----
add-expr -> add-expr add-op mul-expr. (14)
mul-expr -> mul-expr.mul-op unary-expr

LSHIFT - REDUCE 14 shift-expr
RSHIFT - REDUCE 14 shift-expr
PLUS - REDUCE 14 add-expr
MINUS - REDUCE 14 add-expr
TIMES - SHIFT 47
DIVIDE - SHIFT 48
* - REDUCE 14 rel-expr

mul-op - GOTO 186

225
-----
mul-expr -> mul-expr mul-op unary-expr. (16)

LSHIFT - REDUCE 16 shift-expr
RSHIFT - REDUCE 16 shift-expr
PLUS - REDUCE 16 add-expr
MINUS - REDUCE 16 add-expr
TIMES - REDUCE 16 mul-expr
DIVIDE - REDUCE 16 mul-expr
* - REDUCE 16 rel-expr

226
-----
primary-expr -> LPAREN expr RPAREN. (22)

PLUS - REDUCE 22 add-expr
MINUS - REDUCE 22 add-expr
TIMES - REDUCE 22 mul-expr
DIVIDE - REDUCE 22 mul-expr
* - REDUCE 22 shift-expr

227
-----
shift-expr -> shift-expr shift-op add-expr. (12)
add-expr -> add-expr.add-op mul-expr

PLUS - SHIFT 44
MINUS - SHIFT 45
* - REDUCE 12 shift-expr

add-op - GOTO 182

228
-----
add-expr -> add-expr add-op mul-expr. (14)
mul-expr -> mul-expr.mul-op unary-expr

PLUS - REDUCE 14 add-expr
MINUS - REDUCE 14 add-expr
TIMES - SHIFT 47
DIVIDE - SHIFT 48
* - REDUCE 14 shift-expr

mul-op - GOTO 186

229
-----
mul-expr -> mul-expr mul-op unary-expr. (16)

PLUS - REDUCE 16 add-expr
MINUS - REDUCE 16 add-expr
TIMES - REDUCE 16 mul-expr
DIVIDE - REDUCE 16 mul-expr
* - REDUCE 16 shift-expr

230
-----
primary-expr -> LPAREN expr RPAREN. (22)

TIMES - REDUCE 22 mul-expr
DIVIDE - REDUCE 22 mul-expr
* - REDUCE 22 add-expr

231
-----
add-expr -> add-expr add-op mul-expr. (14)
mul-expr -> mul-expr.mul-op unary-expr

TIMES - SHIFT 47
DIVIDE - SHIFT 48
* - REDUCE 14 add-expr

mul-op - GOTO 186

232
-----
mul-expr -> mul-expr mul-op unary-expr. (16)

TIMES - REDUCE 16 mul-expr
DIVIDE - REDUCE 16 mul-expr
* - REDUCE 16 add-expr

233
-----
primary-expr -> LPAREN expr RPAREN. (22)

* - REDUCE 22 mul-expr

234
-----
mul-expr -> mul-expr mul-op unary-expr. (16)

* - REDUCE 16 mul-expr

235
-----
primary-expr -> LPAREN expr RPAREN. (22)

RPAREN - REDUCE 22 assign-expr
ASSIGN - REDUCE 22 or-expr
OR - REDUCE 22 or-expr
AND - REDUCE 22 and-expr
EQ - REDUCE 22 eq-expr
NE - REDUCE 22 eq-expr
LSHIFT - REDUCE 22 shift-expr
RSHIFT - REDUCE 22 shift-expr
PLUS - REDUCE 22 add-expr
MINUS - REDUCE 22 add-expr
TIMES - REDUCE 22 mul-expr
DIVIDE - REDUCE 22 mul-expr
* - REDUCE 22 rel-expr

236
-----
or-expr -> or-expr or-op and-expr. (4)
and-expr -> and-expr.and-op eq-expr

RPAREN - REDUCE 4 assign-expr
AND - SHIFT 31
* - REDUCE 4 or-expr

and-op - GOTO 156

237
-----
and-expr -> and-expr and-op eq-expr. (6)
eq-expr -> eq-expr.eq-op rel-expr

RPAREN - REDUCE 6 assign-expr
AND - REDUCE 6 and-expr
EQ - SHIFT 33
NE - SHIFT 34
* - REDUCE 6 or-expr

eq-op - GOTO 164

238
-----
eq-expr -> eq-expr eq-op rel-expr. (8)
rel-expr -> rel-expr.rel-op shift-expr

RPAREN - REDUCE 8 assign-expr
AND - REDUCE 8 and-expr
EQ - REDUCE 8 eq-expr
NE - REDUCE 8 eq-expr
LT - SHIFT 36
GT - SHIFT 37
LE - SHIFT 38
GE - SHIFT 39
* - REDUCE 8 or-expr

rel-op - GOTO 171

239
-----
rel-expr -> rel-expr rel-op shift-expr. (10)
shift-expr -> shift-expr.shift-op add-expr

RPAREN - REDUCE 10 assign-expr
ASSIGN - REDUCE 10 or-expr
OR - REDUCE 10 or-expr
AND - REDUCE 10 and-expr
EQ - REDUCE 10 eq-expr
NE - REDUCE 10 eq-expr
LSHIFT - SHIFT 41
RSHIFT - SHIFT 42
* - REDUCE 10 rel-expr

shift-op - GOTO 177

240
-----
shift-expr -> shift-expr shift-op add-expr. (12)
add-expr -> add-expr.add-op mul-expr

RPAREN - REDUCE 12 assign-expr
ASSIGN - REDUCE 12 or-expr
OR - REDUCE 12 or-expr
AND - REDUCE 12 and-expr
EQ - REDUCE 12 eq-expr
NE - REDUCE 12 eq-expr
LSHIFT - REDUCE 12 shift-expr
RSHIFT - REDUCE 12 shift-expr
PLUS - SHIFT 44
MINUS - SHIFT 45
* - REDUCE 12 rel-expr

add-op - GOTO 182

241
-----
add-expr -> add-expr add-op mul-expr. (14)
mul-expr -> mul-expr.mul-op unary-expr

RPAREN - REDUCE 14 assign-expr
ASSIGN - REDUCE 14 or-expr
OR - REDUCE 14 or-expr
AND - REDUCE 14 and-expr
EQ - REDUCE 14 eq-expr
NE - REDUCE 14 eq-expr
LSHIFT - REDUCE 14 shift-expr
RSHIFT - REDUCE 14 shift-expr
PLUS - REDUCE 14 add-expr
MINUS - REDUCE 14 add-expr
TIMES - SHIFT 47
DIVIDE - SHIFT 48
* - REDUCE 14 rel-expr

mul-op - GOTO 186

242
-----
mul-expr -> mul-expr mul-op unary-expr. (16)

RPAREN - REDUCE 16 assign-expr
ASSIGN - REDUCE 16 or-expr
OR - REDUCE 16 or-expr
AND - REDUCE 16 and-expr
EQ - REDUCE 16 eq-expr
NE - REDUCE 16 eq-expr
LSHIFT - REDUCE 16 shift-expr
RSHIFT - REDUCE 16 shift-expr
PLUS - REDUCE 16 add-expr
MINUS - REDUCE 16 add-expr
TIMES - REDUCE 16 mul-expr
DIVIDE - REDUCE 16 mul-expr
* - REDUCE 16 rel-expr

[back]