-
Notifications
You must be signed in to change notification settings - Fork 0
/
parsetab.py
145 lines (138 loc) · 32.3 KB
/
parsetab.py
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# parsetab.py
# This file is automatically generated. Do not edit.
_tabversion = '3.8'
_lr_method = 'LALR'
_lr_signature = '51FECD6511AB6B9E02E5F4DF05AA23C9'
_lr_action_items = {'DIVIDE':([63,67,72,75,76,77,78,80,82,92,95,99,103,104,109,110,111,112,113,114,120,125,129,131,134,137,139,152,153,154,155,157,162,163,164,166,167,169,170,171,172,173,174,175,176,177,178,179,180,181,184,188,189,191,194,195,198,],[-110,-109,-60,-77,-61,-59,-62,-63,-65,-64,-66,-67,-84,-82,-71,-76,-79,143,-83,-70,-104,143,-103,-101,-102,-98,-97,-99,143,-78,143,143,-68,143,143,-110,-107,143,143,143,-88,143,143,143,143,-87,143,143,143,-80,-81,-105,-106,143,-69,143,-108,]),'RETURN':([52,60,66,68,79,88,93,101,121,123,127,128,133,138,165,182,187,192,197,200,202,203,204,],[-26,-43,-45,69,-57,-46,-56,-55,-52,-41,-53,-54,-58,-51,-42,69,69,-49,-48,69,-47,69,-50,]),'VOID':([7,11,12,14,15,16,17,18,20,22,25,27,28,32,52,61,64,123,165,],[-23,-22,-13,-23,-10,-25,30,-11,-12,-21,-9,-20,-24,-14,-26,-18,-15,-41,-42,]),'LBRACKET':([29,31,33,44,59,63,70,72,75,76,77,78,80,82,83,85,90,92,95,97,99,104,109,110,111,114,120,134,135,136,154,162,166,167,181,184,189,194,198,],[-27,-29,-28,54,54,54,116,-60,-77,-61,-59,-62,-63,-65,-71,-76,-79,-64,-66,-70,-67,116,-71,-76,-79,-70,-70,-70,168,-30,-78,-68,190,-107,-80,-81,-106,-69,-108,]),'WHILE':([52,60,66,68,79,88,93,101,121,123,127,128,133,138,165,182,187,192,197,200,202,203,204,],[-26,-43,-45,71,-57,-46,-56,-55,-52,-41,-53,-54,-58,-51,-42,71,71,-49,-48,71,-47,71,-50,]),'STATIC':([7,11,12,14,15,16,18,20,22,25,32,52,61,64,123,165,],[-23,-22,-13,-23,-10,28,-11,-12,-21,-9,-14,-26,-18,-15,-41,-42,]),'FLOAT_CONST':([52,60,66,68,69,74,79,88,89,93,101,102,106,108,115,116,118,121,122,123,124,126,127,128,130,133,138,140,141,142,143,144,145,146,147,148,149,150,151,156,165,168,182,185,186,187,190,192,197,199,200,202,203,204,],[-26,-43,-45,72,72,72,-57,-46,72,-56,-55,72,72,72,72,72,72,-52,72,-41,72,72,-53,-54,72,-58,-51,72,72,72,72,72,72,72,72,72,72,72,72,72,-42,72,72,72,72,72,72,-49,-48,72,72,-47,72,-50,]),'MULTIPLY':([63,67,72,75,76,77,78,80,82,92,95,99,103,104,109,110,111,112,113,114,120,125,129,131,134,137,139,152,153,154,155,157,162,163,164,166,167,169,170,171,172,173,174,175,176,177,178,179,180,181,184,188,189,191,194,195,198,],[-110,-109,-60,-77,-61,-59,-62,-63,-65,-64,-66,-67,-84,-82,-71,-76,-79,148,-83,-70,-104,148,-103,-101,-102,-98,-97,-99,148,-78,148,148,-68,148,148,-110,-107,148,148,148,-88,148,148,148,148,-87,148,148,148,-80,-81,-105,-106,148,-69,148,-108,]),'NEW':([52,60,66,68,69,74,79,88,89,93,101,102,106,108,115,116,118,121,122,123,124,126,127,128,130,133,138,140,141,142,143,144,145,146,147,148,149,150,151,156,165,168,182,185,186,187,190,192,197,199,200,202,203,204,],[-26,-43,-45,73,105,73,-57,-46,105,-56,-55,73,105,105,105,105,105,-52,105,-41,73,105,-53,-54,105,-58,-51,105,105,105,105,105,105,105,105,105,105,105,105,105,-42,105,73,105,105,73,105,-49,-48,73,73,-47,73,-50,]),'DEC':([52,60,66,68,69,75,79,85,88,89,90,93,97,101,106,108,110,111,114,115,116,118,121,122,123,124,126,127,128,130,133,138,140,141,142,143,144,145,146,147,148,149,150,151,154,156,165,168,181,182,185,186,187,190,192,197,199,200,202,203,204,],[-26,-43,-45,74,74,-77,-57,-76,-46,74,-79,-56,129,-55,74,74,-76,-79,129,74,74,74,-52,74,-41,74,74,-53,-54,74,-58,-51,74,74,74,74,74,74,74,74,74,74,74,74,-78,74,-42,74,-80,74,74,74,74,74,-49,-48,74,74,-47,74,-50,]),'TRUE':([52,60,66,68,69,74,79,88,89,93,101,102,106,108,115,116,118,121,122,123,124,126,127,128,130,133,138,140,141,142,143,144,145,146,147,148,149,150,151,156,165,168,182,185,186,187,190,192,197,199,200,202,203,204,],[-26,-43,-45,80,80,80,-57,-46,80,-56,-55,80,80,80,80,80,80,-52,80,-41,80,80,-53,-54,80,-58,-51,80,80,80,80,80,80,80,80,80,80,80,80,80,-42,80,80,80,80,80,80,-49,-48,80,80,-47,80,-50,]),'MINUS':([63,67,69,72,75,76,77,78,80,82,89,92,95,99,103,104,106,108,109,110,111,112,113,114,115,116,118,120,122,125,126,129,130,131,134,137,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,162,163,164,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,184,185,186,188,189,190,191,194,195,198,],[-110,-109,106,-60,-77,-61,-59,-62,-63,-65,106,-64,-66,-67,-84,-82,106,106,-71,-76,-79,150,-83,-70,106,106,106,-104,106,150,106,-103,106,-101,-102,-98,-97,106,106,106,106,106,106,106,106,106,106,106,106,-99,150,-78,150,106,150,-68,150,150,-110,-107,106,150,150,150,-88,150,150,150,-85,-87,150,-86,150,-80,-81,106,106,-105,-106,106,150,-69,150,-108,]),'DOT':([70,72,75,76,77,78,80,82,83,85,90,92,95,97,99,104,109,110,111,114,120,134,154,162,181,184,194,],[117,-60,-77,-61,-59,-62,-63,-65,-71,-76,-79,-64,-66,-70,-67,117,-71,-76,-79,-70,-70,-70,-78,-68,-80,-81,-69,]),'STRING_CONST':([52,60,66,68,69,74,79,88,89,93,101,102,106,108,115,116,118,121,122,123,124,126,127,128,130,133,138,140,141,142,143,144,145,146,147,148,149,150,151,156,165,168,182,185,186,187,190,192,197,199,200,202,203,204,],[-26,-43,-45,76,76,76,-57,-46,76,-56,-55,76,76,76,76,76,76,-52,76,-41,76,76,-53,-54,76,-58,-51,76,76,76,76,76,76,76,76,76,76,76,76,76,-42,76,76,76,76,76,76,-49,-48,76,76,-47,76,-50,]),'INT_CONST':([52,60,66,68,69,74,79,88,89,93,101,102,106,108,115,116,118,121,122,123,124,126,127,128,130,133,138,140,141,142,143,144,145,146,147,148,149,150,151,156,165,168,182,185,186,187,190,192,197,199,200,202,203,204,],[-26,-43,-45,77,77,77,-57,-46,77,-56,-55,77,77,77,77,77,77,-52,77,-41,77,77,-53,-54,77,-58,-51,77,77,77,77,77,77,77,77,77,77,77,77,77,-42,77,77,77,77,77,77,-49,-48,77,77,-47,77,-50,]),'NULL':([52,60,66,68,69,74,79,88,89,93,101,102,106,108,115,116,118,121,122,123,124,126,127,128,130,133,138,140,141,142,143,144,145,146,147,148,149,150,151,156,165,168,182,185,186,187,190,192,197,199,200,202,203,204,],[-26,-43,-45,78,78,78,-57,-46,78,-56,-55,78,78,78,78,78,78,-52,78,-41,78,78,-53,-54,78,-58,-51,78,78,78,78,78,78,78,78,78,78,78,78,78,-42,78,78,78,78,78,78,-49,-48,78,78,-47,78,-50,]),'RPAREN':([24,36,39,40,45,46,48,53,56,58,59,63,65,67,72,75,76,77,78,80,82,83,92,95,99,100,103,104,109,110,111,113,114,120,122,125,129,131,134,137,139,152,154,155,156,157,158,159,160,162,163,164,166,167,169,170,171,172,173,174,175,176,177,178,179,180,181,183,184,188,189,194,195,198,199,201,],[-40,-40,-35,50,55,-37,-40,-33,-34,-38,-110,-110,-36,-109,-60,-77,-61,-59,-62,-63,-65,-112,-64,-66,-67,-111,-84,-82,-71,-76,-79,-83,-70,-104,-73,162,-103,-101,-102,-98,-97,-99,-78,182,-73,-75,184,-72,-113,-68,187,-100,-110,-107,-95,-94,-93,-88,-96,-92,-91,-85,-87,-89,-86,-90,-80,194,-81,-105,-106,-69,-74,-108,-114,203,]),'SEMICOLON':([42,43,44,52,53,59,60,62,63,66,67,68,69,72,75,76,77,78,79,80,81,82,83,88,92,93,94,95,96,98,99,100,101,103,104,107,109,110,111,112,113,114,120,121,123,124,127,128,129,131,133,134,137,138,139,152,154,160,161,162,164,165,166,167,169,170,171,172,173,174,175,176,177,178,179,180,181,182,184,186,187,188,189,192,193,194,196,197,198,200,202,203,204,],[-32,52,-110,-26,-33,-110,-43,-31,-110,-45,-109,79,-116,-60,-77,-61,-59,-62,-57,-63,121,-65,-112,-46,-64,-56,127,-66,128,133,-67,-111,-55,-84,-82,138,-71,-76,-79,-115,-83,-70,-104,-52,-41,-114,-53,-54,-103,-101,-58,-102,-98,-51,-97,-99,-78,-113,186,-68,-100,-42,-110,-107,-95,-94,-93,-88,-96,-92,-91,-85,-87,-89,-86,-90,-80,79,-81,-116,79,-105,-106,-49,133,-69,199,-48,-108,79,-47,79,-50,]),'LEQ':([63,67,72,75,76,77,78,80,82,92,95,99,103,104,109,110,111,112,113,114,120,125,129,131,134,137,139,152,153,154,155,157,162,163,164,166,167,169,170,171,172,173,174,175,176,177,178,179,180,181,184,188,189,191,194,195,198,],[-110,-109,-60,-77,-61,-59,-62,-63,-65,-64,-66,-67,-84,-82,-71,-76,-79,145,-83,-70,-104,145,-103,-101,-102,-98,-97,-99,145,-78,145,145,-68,145,145,-110,-107,145,None,None,-88,145,None,None,-85,-87,145,-86,145,-80,-81,-105,-106,145,-69,145,-108,]),'PRIVATE':([7,12,14,15,18,20,25,32,52,61,64,123,165,],[11,-13,11,-10,-11,-12,-9,-14,-26,-18,-15,-41,-42,]),'LT':([63,67,72,75,76,77,78,80,82,92,95,99,103,104,109,110,111,112,113,114,120,125,129,131,134,137,139,152,153,154,155,157,162,163,164,166,167,169,170,171,172,173,174,175,176,177,178,179,180,181,184,188,189,191,194,195,198,],[-110,-109,-60,-77,-61,-59,-62,-63,-65,-64,-66,-67,-84,-82,-71,-76,-79,146,-83,-70,-104,146,-103,-101,-102,-98,-97,-99,146,-78,146,146,-68,146,146,-110,-107,146,None,None,-88,146,None,None,-85,-87,146,-86,146,-80,-81,-105,-106,146,-69,146,-108,]),'CONTINUE':([52,60,66,68,79,88,93,101,121,123,127,128,133,138,165,182,187,192,197,200,202,203,204,],[-26,-43,-45,96,-57,-46,-56,-55,-52,-41,-53,-54,-58,-51,-42,96,96,-49,-48,96,-47,96,-50,]),'COMMA':([42,43,44,46,48,53,58,59,62,63,65,67,72,75,76,77,78,80,82,92,95,99,103,104,109,110,111,113,114,120,129,131,134,137,139,152,154,157,159,162,164,166,167,169,170,171,172,173,174,175,176,177,178,179,180,181,184,188,189,194,195,198,],[-32,51,-110,-37,57,-33,-38,-110,-31,-110,-36,-109,-60,-77,-61,-59,-62,-63,-65,-64,-66,-67,-84,-82,-71,-76,-79,-83,-70,-104,-103,-101,-102,-98,-97,-99,-78,-75,185,-68,-100,-110,-107,-95,-94,-93,-88,-96,-92,-91,-85,-87,-89,-86,-90,-80,-81,-105,-106,-69,-74,-108,]),'PLUS':([63,67,69,72,75,76,77,78,80,82,89,92,95,99,103,104,106,108,109,110,111,112,113,114,115,116,118,120,122,125,126,129,130,131,134,137,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,162,163,164,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,184,185,186,188,189,190,191,194,195,198,],[-110,-109,108,-60,-77,-61,-59,-62,-63,-65,108,-64,-66,-67,-84,-82,108,108,-71,-76,-79,147,-83,-70,108,108,108,-104,108,147,108,-103,108,-101,-102,-98,-97,108,108,108,108,108,108,108,108,108,108,108,108,-99,147,-78,147,108,147,-68,147,147,-110,-107,108,147,147,147,-88,147,147,147,-85,-87,147,-86,147,-80,-81,108,108,-105,-106,108,147,-69,147,-108,]),'NEQ':([63,67,72,75,76,77,78,80,82,92,95,99,103,104,109,110,111,112,113,114,120,125,129,131,134,137,139,152,153,154,155,157,162,163,164,166,167,169,170,171,172,173,174,175,176,177,178,179,180,181,184,188,189,191,194,195,198,],[-110,-109,-60,-77,-61,-59,-62,-63,-65,-64,-66,-67,-84,-82,-71,-76,-79,151,-83,-70,-104,151,-103,-101,-102,-98,-97,-99,151,-78,151,151,-68,151,151,-110,-107,151,-94,-93,-88,151,-92,-91,-85,-87,None,-86,None,-80,-81,-105,-106,151,-69,151,-108,]),'CLASS':([0,4,26,37,],[1,1,-4,-5,]),'$end':([0,2,4,5,8,26,37,],[-3,0,-3,-1,-2,-4,-5,]),'GT':([63,67,72,75,76,77,78,80,82,92,95,99,103,104,109,110,111,112,113,114,120,125,129,131,134,137,139,152,153,154,155,157,162,163,164,166,167,169,170,171,172,173,174,175,176,177,178,179,180,181,184,188,189,191,194,195,198,],[-110,-109,-60,-77,-61,-59,-62,-63,-65,-64,-66,-67,-84,-82,-71,-76,-79,142,-83,-70,-104,142,-103,-101,-102,-98,-97,-99,142,-78,142,142,-68,142,142,-110,-107,142,None,None,-88,142,None,None,-85,-87,142,-86,142,-80,-81,-105,-106,142,-69,142,-108,]),'RBRACE':([12,14,15,18,20,21,25,32,52,60,61,64,66,68,79,86,88,93,98,101,121,123,127,128,132,133,138,165,192,197,202,204,],[-13,26,-10,-11,-12,37,-9,-14,-26,-43,-18,-15,-45,-44,-57,123,-46,-56,-44,-55,-52,-41,-53,-54,165,-58,-51,-42,-49,-48,-47,-50,]),'FOR':([52,60,66,68,79,88,93,101,121,123,127,128,133,138,165,182,187,192,197,200,202,203,204,],[-26,-43,-45,87,-57,-46,-56,-55,-52,-41,-53,-54,-58,-51,-42,87,87,-49,-48,87,-47,87,-50,]),'ASSIGN':([75,85,90,97,110,111,114,154,181,],[-77,-76,-79,130,-76,-79,130,-78,-80,]),'GEQ':([63,67,72,75,76,77,78,80,82,92,95,99,103,104,109,110,111,112,113,114,120,125,129,131,134,137,139,152,153,154,155,157,162,163,164,166,167,169,170,171,172,173,174,175,176,177,178,179,180,181,184,188,189,191,194,195,198,],[-110,-109,-60,-77,-61,-59,-62,-63,-65,-64,-66,-67,-84,-82,-71,-76,-79,141,-83,-70,-104,141,-103,-101,-102,-98,-97,-99,141,-78,141,141,-68,141,141,-110,-107,141,None,None,-88,141,None,None,-85,-87,141,-86,141,-80,-81,-105,-106,141,-69,141,-108,]),'ELSE':([52,79,93,101,121,123,127,128,133,138,165,192,197,202,204,],[-26,-57,-56,-55,-52,-41,-53,-54,-58,-51,-42,-49,200,-47,-50,]),'EXTENDS':([6,],[9,]),'LPAREN':([13,19,35,41,44,52,60,66,68,69,71,74,79,85,87,88,89,90,91,93,101,102,106,108,110,111,115,116,118,119,121,122,123,124,126,127,128,130,133,136,138,140,141,142,143,144,145,146,147,148,149,150,151,154,156,165,168,182,185,186,187,190,192,197,199,200,202,203,204,],[24,36,-19,-16,-17,-26,-43,-45,89,89,118,89,-57,122,124,-46,89,-79,126,-56,-55,89,89,89,122,-79,89,89,89,156,-52,89,-41,89,89,-53,-54,89,-58,156,-51,89,89,89,89,89,89,89,89,89,89,89,89,-78,89,-42,89,89,89,89,89,89,-49,-48,89,89,-47,89,-50,]),'EQ':([63,67,72,75,76,77,78,80,82,92,95,99,103,104,109,110,111,112,113,114,120,125,129,131,134,137,139,152,153,154,155,157,162,163,164,166,167,169,170,171,172,173,174,175,176,177,178,179,180,181,184,188,189,191,194,195,198,],[-110,-109,-60,-77,-61,-59,-62,-63,-65,-64,-66,-67,-84,-82,-71,-76,-79,149,-83,-70,-104,149,-103,-101,-102,-98,-97,-99,149,-78,149,149,-68,149,149,-110,-107,149,-94,-93,-88,149,-92,-91,-85,-87,None,-86,None,-80,-81,-105,-106,149,-69,149,-108,]),'ID':([1,7,9,11,12,14,15,16,17,18,20,22,24,25,27,28,29,30,31,32,33,34,35,36,38,47,49,51,52,57,60,61,64,66,68,69,73,74,79,84,88,89,90,93,101,102,105,106,108,115,116,117,118,121,122,123,124,126,127,128,130,133,138,140,141,142,143,144,145,146,147,148,149,150,151,156,165,168,182,185,186,187,190,192,197,199,200,202,203,204,],[6,-23,23,-22,-13,-23,-10,-25,35,-11,-12,-21,-39,-9,-20,-24,-27,41,-29,-14,-28,44,-30,-39,47,-30,59,59,-26,47,-43,-18,-15,-45,90,111,119,111,-57,59,-46,111,-30,-56,-55,111,136,111,111,111,111,154,111,-52,111,-41,111,111,-53,-54,111,-58,-51,111,111,111,111,111,111,111,111,111,111,111,111,111,-42,111,90,111,111,90,111,-49,-48,111,90,-47,90,-50,]),'IF':([52,60,66,68,79,88,93,101,121,123,127,128,133,138,165,182,187,192,197,200,202,203,204,],[-26,-43,-45,91,-57,-46,-56,-55,-52,-41,-53,-54,-58,-51,-42,91,91,-49,-48,91,-47,91,-50,]),'AND':([63,67,72,75,76,77,78,80,82,92,95,99,103,104,109,110,111,112,113,114,120,125,129,131,134,137,139,152,153,154,155,157,162,163,164,166,167,169,170,171,172,173,174,175,176,177,178,179,180,181,184,188,189,191,194,195,198,],[-110,-109,-60,-77,-61,-59,-62,-63,-65,-64,-66,-67,-84,-82,-71,-76,-79,140,-83,-70,-104,140,-103,-101,-102,-98,-97,-99,140,-78,140,140,-68,140,140,-110,-107,-95,-94,-93,-88,140,-92,-91,-85,-87,-89,-86,-90,-80,-81,-105,-106,140,-69,140,-108,]),'LBRACE':([3,6,10,23,50,52,55,60,66,68,79,88,93,101,121,123,127,128,133,138,165,182,187,192,197,200,202,203,204,],[7,-8,-6,-7,60,-26,60,-43,-45,60,-57,-46,-56,-55,-52,-41,-53,-54,-58,-51,-42,60,60,-49,-48,60,-47,60,-50,]),'FALSE':([52,60,66,68,69,74,79,88,89,93,101,102,106,108,115,116,118,121,122,123,124,126,127,128,130,133,138,140,141,142,143,144,145,146,147,148,149,150,151,156,165,168,182,185,186,187,190,192,197,199,200,202,203,204,],[-26,-43,-45,92,92,92,-57,-46,92,-56,-55,92,92,92,92,92,92,-52,92,-41,92,92,-53,-54,92,-58,-51,92,92,92,92,92,92,92,92,92,92,92,92,92,-42,92,92,92,92,92,92,-49,-48,92,92,-47,92,-50,]),'INT':([7,11,12,14,15,16,17,18,20,22,24,25,27,28,32,36,38,52,57,60,61,64,66,68,79,88,93,101,105,121,123,127,128,133,138,165,182,187,192,197,200,202,203,204,],[-23,-22,-13,-23,-10,-25,29,-11,-12,-21,-39,-9,-20,-24,-14,-39,29,-26,29,-43,-18,-15,-45,29,-57,-46,-56,-55,29,-52,-41,-53,-54,-58,-51,-42,29,29,-49,-48,29,-47,29,-50,]),'FLOAT':([7,11,12,14,15,16,17,18,20,22,24,25,27,28,32,36,38,52,57,60,61,64,66,68,79,88,93,101,105,121,123,127,128,133,138,165,182,187,192,197,200,202,203,204,],[-23,-22,-13,-23,-10,-25,31,-11,-12,-21,-39,-9,-20,-24,-14,-39,31,-26,31,-43,-18,-15,-45,31,-57,-46,-56,-55,31,-52,-41,-53,-54,-58,-51,-42,31,31,-49,-48,31,-47,31,-50,]),'OR':([63,67,72,75,76,77,78,80,82,92,95,99,103,104,109,110,111,112,113,114,120,125,129,131,134,137,139,152,153,154,155,157,162,163,164,166,167,169,170,171,172,173,174,175,176,177,178,179,180,181,184,188,189,191,194,195,198,],[-110,-109,-60,-77,-61,-59,-62,-63,-65,-64,-66,-67,-84,-82,-71,-76,-79,144,-83,-70,-104,144,-103,-101,-102,-98,-97,-99,144,-78,144,144,-68,144,144,-110,-107,-95,-94,-93,-88,-96,-92,-91,-85,-87,-89,-86,-90,-80,-81,-105,-106,144,-69,144,-108,]),'BREAK':([52,60,66,68,79,88,93,101,121,123,127,128,133,138,165,182,187,192,197,200,202,203,204,],[-26,-43,-45,94,-57,-46,-56,-55,-52,-41,-53,-54,-58,-51,-42,94,94,-49,-48,94,-47,94,-50,]),'THIS':([52,60,66,68,69,74,79,88,89,93,101,102,106,108,115,116,118,121,122,123,124,126,127,128,130,133,138,140,141,142,143,144,145,146,147,148,149,150,151,156,165,168,182,185,186,187,190,192,197,199,200,202,203,204,],[-26,-43,-45,95,95,95,-57,-46,95,-56,-55,95,95,95,95,95,95,-52,95,-41,95,95,-53,-54,95,-58,-51,95,95,95,95,95,95,95,95,95,95,95,95,95,-42,95,95,95,95,95,95,-49,-48,95,95,-47,95,-50,]),'BOOLEAN':([7,11,12,14,15,16,17,18,20,22,24,25,27,28,32,36,38,52,57,60,61,64,66,68,79,88,93,101,105,121,123,127,128,133,138,165,182,187,192,197,200,202,203,204,],[-23,-22,-13,-23,-10,-25,33,-11,-12,-21,-39,-9,-20,-24,-14,-39,33,-26,33,-43,-18,-15,-45,33,-57,-46,-56,-55,33,-52,-41,-53,-54,-58,-51,-42,33,33,-49,-48,33,-47,33,-50,]),'error':([7,52,60,66,68,79,88,93,101,121,123,127,128,133,138,165,182,187,192,197,200,202,203,204,],[21,-26,-43,-45,98,-57,-46,-56,-55,-52,-41,-53,-54,-58,-51,-42,193,193,-49,-48,193,-47,193,-50,]),'NOT':([69,89,106,108,115,116,118,122,126,130,140,141,142,143,144,145,146,147,148,149,150,151,156,168,185,186,190,],[115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,]),'RBRACKET':([54,63,67,72,75,76,77,78,80,82,92,95,99,103,104,109,110,111,113,114,120,129,131,134,137,139,152,153,154,162,164,166,167,169,170,171,172,173,174,175,176,177,178,179,180,181,184,188,189,190,191,194,198,],[63,-110,-109,-60,-77,-61,-59,-62,-63,-65,-64,-66,-67,-84,-82,-71,-76,-79,-83,-70,-104,-103,-101,-102,-98,-97,-99,181,-78,-68,-100,-110,-107,-95,-94,-93,-88,-96,-92,-91,-85,-87,-89,-86,-90,-80,-81,-105,-106,63,198,-69,-108,]),'SUPER':([52,60,66,68,69,74,79,88,89,93,101,102,106,108,115,116,118,121,122,123,124,126,127,128,130,133,138,140,141,142,143,144,145,146,147,148,149,150,151,156,165,168,182,185,186,187,190,192,197,199,200,202,203,204,],[-26,-43,-45,99,99,99,-57,-46,99,-56,-55,99,99,99,99,99,99,-52,99,-41,99,99,-53,-54,99,-58,-51,99,99,99,99,99,99,99,99,99,99,99,99,99,-42,99,99,99,99,99,99,-49,-48,99,99,-47,99,-50,]),'PUBLIC':([7,12,14,15,18,20,25,32,52,61,64,123,165,],[22,-13,22,-10,-11,-12,-9,-14,-26,-18,-15,-41,-42,]),'INC':([52,60,66,68,69,75,79,85,88,89,90,93,97,101,106,108,110,111,114,115,116,118,121,122,123,124,126,127,128,130,133,138,140,141,142,143,144,145,146,147,148,149,150,151,154,156,165,168,181,182,185,186,187,190,192,197,199,200,202,203,204,],[-26,-43,-45,102,102,-77,-57,-76,-46,102,-79,-56,131,-55,102,102,-76,-79,131,102,102,102,-52,102,-41,102,102,-53,-54,102,-58,-51,102,102,102,102,102,102,102,102,102,102,102,102,-78,102,-42,102,-80,102,102,102,102,102,-49,-48,102,102,-47,102,-50,]),}
_lr_action = {}
for _k, _v in _lr_action_items.items():
for _x,_y in zip(_v[0],_v[1]):
if not _x in _lr_action: _lr_action[_x] = {}
_lr_action[_x][_k] = _y
del _lr_action_items
_lr_goto_items = {'new_array':([69,89,106,108,115,116,118,122,126,130,140,141,142,143,144,145,146,147,148,149,150,151,156,168,185,186,190,],[103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,]),'dim_star':([44,59,63,166,],[53,53,67,188,]),'param_list':([38,],[48,]),'constructor_decl':([7,14,],[12,12,]),'primary':([68,69,74,89,102,106,108,115,116,118,122,124,126,130,140,141,142,143,144,145,146,147,148,149,150,151,156,168,182,185,186,187,190,199,200,203,],[70,104,70,104,70,104,104,104,104,104,104,70,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,70,104,104,70,104,70,70,70,]),'block_begin':([60,],[66,]),'class_decl_head':([0,4,],[3,3,]),'constructor_header':([7,14,],[13,13,]),'var_list':([34,84,],[43,43,]),'array_access':([68,69,74,89,102,106,108,115,116,118,122,124,126,130,140,141,142,143,144,145,146,147,148,149,150,151,156,168,182,185,186,187,190,199,200,203,],[75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,]),'class_body_decl_list':([7,],[14,]),'args_opt':([122,156,],[158,183,]),'class_body_decl':([7,14,],[15,25,]),'dim_expr':([135,166,],[167,189,]),'param_list_opt':([24,36,],[40,45,]),'stmt_expr':([68,124,182,187,199,200,203,],[81,160,81,81,160,81,81,]),'literal':([68,69,74,89,102,106,108,115,116,118,122,124,126,130,140,141,142,143,144,145,146,147,148,149,150,151,156,168,182,185,186,187,190,199,200,203,],[82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,]),'expr_opt':([69,186,],[107,196,]),'extends':([6,],[10,]),'class_decl':([0,4,],[4,4,]),'var':([34,49,51,84,],[42,58,62,42,]),'method_invocation':([68,69,74,89,102,106,108,115,116,118,122,124,126,130,140,141,142,143,144,145,146,147,148,149,150,151,156,168,182,185,186,187,190,199,200,203,],[83,109,109,109,109,109,109,109,109,109,109,83,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,83,109,109,83,109,83,83,83,]),'type':([17,38,57,68,105,182,187,200,203,],[34,49,49,84,135,84,84,84,84,]),'field_access':([68,69,74,89,102,106,108,115,116,118,122,124,126,130,140,141,142,143,144,145,146,147,148,149,150,151,156,168,182,185,186,187,190,199,200,203,],[85,110,110,110,110,110,110,110,110,110,110,85,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,85,110,110,85,110,85,85,85,]),'dim_expr_plus':([135,],[166,]),'pgm':([0,],[2,]),'block_end':([68,98,],[86,132,]),'params_begin':([24,36,],[38,38,]),'stmt':([68,182,187,200,203,],[88,192,197,202,204,]),'params_end':([24,36,48,],[39,39,56,]),'visibility_mod':([7,14,],[16,16,]),'param':([38,57,],[46,65,]),'mod':([7,14,],[17,17,]),'stmt_list':([66,],[68,]),'field_decl':([7,14,],[18,18,]),'method_header':([7,14,],[19,19,]),'method_decl':([7,14,],[20,20,]),'var_decl':([17,68,182,187,200,203,],[32,93,93,93,93,93,]),'storage_mod':([16,],[27,]),'stmt_expr_opt':([124,199,],[161,201,]),'lhs':([68,69,74,89,102,106,108,115,116,118,122,124,126,130,140,141,142,143,144,145,146,147,148,149,150,151,156,168,182,185,186,187,190,199,200,203,],[97,114,120,114,134,114,114,114,114,114,114,97,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,97,114,114,97,114,97,97,97,]),'expr':([69,89,106,108,115,116,118,122,126,130,140,141,142,143,144,145,146,147,148,149,150,151,156,168,185,186,190,],[112,125,137,139,152,153,155,157,163,164,169,170,171,172,173,174,175,176,177,178,179,180,157,191,195,112,191,]),'class_decl_list':([0,4,],[5,8,]),'arg_plus':([122,156,],[159,159,]),'assign':([68,69,89,106,108,115,116,118,122,124,126,130,140,141,142,143,144,145,146,147,148,149,150,151,156,168,182,185,186,187,190,199,200,203,],[100,113,113,113,113,113,113,113,113,100,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,100,113,113,100,113,100,100,100,]),'block':([50,55,68,182,187,200,203,],[61,64,101,101,101,101,101,]),}
_lr_goto = {}
for _k, _v in _lr_goto_items.items():
for _x, _y in zip(_v[0], _v[1]):
if not _x in _lr_goto: _lr_goto[_x] = {}
_lr_goto[_x][_k] = _y
del _lr_goto_items
_lr_productions = [
("S' -> pgm","S'",1,None,None,None),
('pgm -> class_decl_list','pgm',1,'p_pgm','decafparser.py',52),
('class_decl_list -> class_decl class_decl_list','class_decl_list',2,'p_class_decl_list_nonempty','decafparser.py',56),
('class_decl_list -> <empty>','class_decl_list',0,'p_class_decl_list_empty','decafparser.py',58),
('class_decl -> class_decl_head LBRACE class_body_decl_list RBRACE','class_decl',4,'p_class_decl','decafparser.py',62),
('class_decl -> class_decl_head LBRACE error RBRACE','class_decl',4,'p_class_decl_error','decafparser.py',65),
('class_decl_head -> CLASS ID extends','class_decl_head',3,'p_class_decl_head','decafparser.py',69),
('extends -> EXTENDS ID','extends',2,'p_extends_id','decafparser.py',84),
('extends -> <empty>','extends',0,'p_extends_empty','decafparser.py',91),
('class_body_decl_list -> class_body_decl_list class_body_decl','class_body_decl_list',2,'p_class_body_decl_list_plus','decafparser.py',96),
('class_body_decl_list -> class_body_decl','class_body_decl_list',1,'p_class_body_decl_list_single','decafparser.py',99),
('class_body_decl -> field_decl','class_body_decl',1,'p_class_body_decl_field','decafparser.py',103),
('class_body_decl -> method_decl','class_body_decl',1,'p_class_body_decl_method','decafparser.py',106),
('class_body_decl -> constructor_decl','class_body_decl',1,'p_class_body_decl_constructor','decafparser.py',109),
('field_decl -> mod var_decl','field_decl',2,'p_field_decl','decafparser.py',115),
('method_decl -> method_header LPAREN param_list_opt RPAREN block','method_decl',5,'p_method_decl','decafparser.py',119),
('method_header -> mod VOID ID','method_header',3,'p_method_decl_header_void','decafparser.py',124),
('method_header -> mod type ID','method_header',3,'p_method_decl_header_nonvoid','decafparser.py',135),
('constructor_decl -> constructor_header LPAREN param_list_opt RPAREN block','constructor_decl',5,'p_constructor_decl','decafparser.py',146),
('constructor_header -> mod ID','constructor_header',2,'p_constructor_header','decafparser.py',151),
('mod -> visibility_mod storage_mod','mod',2,'p_mod','decafparser.py',163),
('visibility_mod -> PUBLIC','visibility_mod',1,'p_visibility_mod_pub','decafparser.py',168),
('visibility_mod -> PRIVATE','visibility_mod',1,'p_visibility_mod_priv','decafparser.py',172),
('visibility_mod -> <empty>','visibility_mod',0,'p_visibility_mod_empty','decafparser.py',176),
('storage_mod -> STATIC','storage_mod',1,'p_storage_mod_static','decafparser.py',180),
('storage_mod -> <empty>','storage_mod',0,'p_storage_mod_empty','decafparser.py',184),
('var_decl -> type var_list SEMICOLON','var_decl',3,'p_var_decl','decafparser.py',189),
('type -> INT','type',1,'p_type_int','decafparser.py',194),
('type -> BOOLEAN','type',1,'p_type_bool','decafparser.py',198),
('type -> FLOAT','type',1,'p_type_float','decafparser.py',202),
('type -> ID','type',1,'p_type_id','decafparser.py',206),
('var_list -> var_list COMMA var','var_list',3,'p_var_list_plus','decafparser.py',214),
('var_list -> var','var_list',1,'p_var_list_single','decafparser.py',217),
('var -> ID dim_star','var',2,'p_var_id','decafparser.py',221),
('param_list_opt -> params_begin param_list params_end','param_list_opt',3,'p_param_list_opt','decafparser.py',244),
('param_list_opt -> params_end','param_list_opt',1,'p_param_list_empty','decafparser.py',247),
('param_list -> param_list COMMA param','param_list',3,'p_param_list','decafparser.py',251),
('param_list -> param','param_list',1,'p_param_list_single','decafparser.py',254),
('param -> type var','param',2,'p_param','decafparser.py',258),
('params_begin -> <empty>','params_begin',0,'p_params_begin','decafparser.py',262),
('params_end -> <empty>','params_end',0,'p_params_end','decafparser.py',267),
('block -> LBRACE block_begin stmt_list block_end RBRACE','block',5,'p_block','decafparser.py',274),
('block -> LBRACE block_begin stmt_list error block_end RBRACE','block',6,'p_block_error','decafparser.py',277),
('block_begin -> <empty>','block_begin',0,'p_block_begin','decafparser.py',282),
('block_end -> <empty>','block_end',0,'p_block_end','decafparser.py',287),
('stmt_list -> <empty>','stmt_list',0,'p_stmt_list_empty','decafparser.py',292),
('stmt_list -> stmt_list stmt','stmt_list',2,'p_stmt_list','decafparser.py',295),
('stmt -> IF LPAREN expr RPAREN stmt ELSE stmt','stmt',7,'p_stmt_if_else','decafparser.py',299),
('stmt -> IF LPAREN expr RPAREN stmt','stmt',5,'p_stmt_if_noelse','decafparser.py',302),
('stmt -> WHILE LPAREN expr RPAREN stmt','stmt',5,'p_stmt_while','decafparser.py',305),
('stmt -> FOR LPAREN stmt_expr_opt SEMICOLON expr_opt SEMICOLON stmt_expr_opt RPAREN stmt','stmt',9,'p_stmt_for','decafparser.py',308),
('stmt -> RETURN expr_opt SEMICOLON','stmt',3,'p_stmt_return','decafparser.py',311),
('stmt -> stmt_expr SEMICOLON','stmt',2,'p_stmt_stmt_expr','decafparser.py',314),
('stmt -> BREAK SEMICOLON','stmt',2,'p_stmt_break','decafparser.py',317),
('stmt -> CONTINUE SEMICOLON','stmt',2,'p_stmt_continue','decafparser.py',320),
('stmt -> block','stmt',1,'p_stmt_block','decafparser.py',323),
('stmt -> var_decl','stmt',1,'p_stmt_var_decl','decafparser.py',326),
('stmt -> SEMICOLON','stmt',1,'p_stmt_empty','decafparser.py',329),
('stmt -> error SEMICOLON','stmt',2,'p_stmt_error','decafparser.py',332),
('literal -> INT_CONST','literal',1,'p_literal_int_const','decafparser.py',339),
('literal -> FLOAT_CONST','literal',1,'p_literal_float_const','decafparser.py',342),
('literal -> STRING_CONST','literal',1,'p_literal_string_const','decafparser.py',345),
('literal -> NULL','literal',1,'p_literal_null','decafparser.py',348),
('literal -> TRUE','literal',1,'p_literal_true','decafparser.py',351),
('literal -> FALSE','literal',1,'p_literal_false','decafparser.py',354),
('primary -> literal','primary',1,'p_primary_literal','decafparser.py',358),
('primary -> THIS','primary',1,'p_primary_this','decafparser.py',361),
('primary -> SUPER','primary',1,'p_primary_super','decafparser.py',368),
('primary -> LPAREN expr RPAREN','primary',3,'p_primary_paren','decafparser.py',375),
('primary -> NEW ID LPAREN args_opt RPAREN','primary',5,'p_primary_newobj','decafparser.py',378),
('primary -> lhs','primary',1,'p_primary_lhs','decafparser.py',387),
('primary -> method_invocation','primary',1,'p_primary_method_invocation','decafparser.py',390),
('args_opt -> arg_plus','args_opt',1,'p_args_opt_nonempty','decafparser.py',394),
('args_opt -> <empty>','args_opt',0,'p_args_opt_empty','decafparser.py',397),
('arg_plus -> arg_plus COMMA expr','arg_plus',3,'p_args_plus','decafparser.py',401),
('arg_plus -> expr','arg_plus',1,'p_args_single','decafparser.py',404),
('lhs -> field_access','lhs',1,'p_lhs','decafparser.py',408),
('lhs -> array_access','lhs',1,'p_lhs','decafparser.py',409),
('field_access -> primary DOT ID','field_access',3,'p_field_access_dot','decafparser.py',413),
('field_access -> ID','field_access',1,'p_field_access_id','decafparser.py',416),
('array_access -> primary LBRACKET expr RBRACKET','array_access',4,'p_array_access','decafparser.py',432),
('method_invocation -> field_access LPAREN args_opt RPAREN','method_invocation',4,'p_method_invocation','decafparser.py',436),
('expr -> primary','expr',1,'p_expr_basic','decafparser.py',448),
('expr -> assign','expr',1,'p_expr_basic','decafparser.py',449),
('expr -> new_array','expr',1,'p_expr_basic','decafparser.py',450),
('expr -> expr PLUS expr','expr',3,'p_expr_binop','decafparser.py',453),
('expr -> expr MINUS expr','expr',3,'p_expr_binop','decafparser.py',454),
('expr -> expr MULTIPLY expr','expr',3,'p_expr_binop','decafparser.py',455),
('expr -> expr DIVIDE expr','expr',3,'p_expr_binop','decafparser.py',456),
('expr -> expr EQ expr','expr',3,'p_expr_binop','decafparser.py',457),
('expr -> expr NEQ expr','expr',3,'p_expr_binop','decafparser.py',458),
('expr -> expr LT expr','expr',3,'p_expr_binop','decafparser.py',459),
('expr -> expr LEQ expr','expr',3,'p_expr_binop','decafparser.py',460),
('expr -> expr GT expr','expr',3,'p_expr_binop','decafparser.py',461),
('expr -> expr GEQ expr','expr',3,'p_expr_binop','decafparser.py',462),
('expr -> expr AND expr','expr',3,'p_expr_binop','decafparser.py',463),
('expr -> expr OR expr','expr',3,'p_expr_binop','decafparser.py',464),
('expr -> PLUS expr','expr',2,'p_expr_unop_plus','decafparser.py',468),
('expr -> MINUS expr','expr',2,'p_expr_unop_minus','decafparser.py',471),
('expr -> NOT expr','expr',2,'p_expr_unop_not','decafparser.py',474),
('assign -> lhs ASSIGN expr','assign',3,'p_assign_equals','decafparser.py',478),
('assign -> lhs INC','assign',2,'p_assign_post_inc','decafparser.py',481),
('assign -> INC lhs','assign',2,'p_assign_pre_inc','decafparser.py',484),
('assign -> lhs DEC','assign',2,'p_assign_post_dec','decafparser.py',487),
('assign -> DEC lhs','assign',2,'p_assign_pre_dec','decafparser.py',490),
('new_array -> NEW type dim_expr_plus dim_star','new_array',4,'p_new_array','decafparser.py',494),
('dim_expr_plus -> dim_expr_plus dim_expr','dim_expr_plus',2,'p_dim_expr_plus','decafparser.py',502),
('dim_expr_plus -> dim_expr','dim_expr_plus',1,'p_dim_expr_single','decafparser.py',505),
('dim_expr -> LBRACKET expr RBRACKET','dim_expr',3,'p_dim_expr','decafparser.py',509),
('dim_star -> LBRACKET RBRACKET dim_star','dim_star',3,'p_dim_star','decafparser.py',513),
('dim_star -> <empty>','dim_star',0,'p_dim_star_empty','decafparser.py',516),
('stmt_expr -> assign','stmt_expr',1,'p_stmt_expr','decafparser.py',520),
('stmt_expr -> method_invocation','stmt_expr',1,'p_stmt_expr','decafparser.py',521),
('stmt_expr_opt -> stmt_expr','stmt_expr_opt',1,'p_stmt_expr_opt','decafparser.py',525),
('stmt_expr_opt -> <empty>','stmt_expr_opt',0,'p_stmt_expr_empty','decafparser.py',528),
('expr_opt -> expr','expr_opt',1,'p_expr_opt','decafparser.py',532),
('expr_opt -> <empty>','expr_opt',0,'p_expr_empty','decafparser.py',535),
]