-
Notifications
You must be signed in to change notification settings - Fork 0
/
parsetab.py
112 lines (105 loc) · 19.8 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
# parsetab.py
# This file is automatically generated. Do not edit.
# pylint: disable=W,C,R
_tabversion = '3.10'
_lr_method = 'LALR'
_lr_signature = 'PROGRAMAleftPLUSMINUSAND BIGGER_THAN CLOSING_BRACES CLOSING_BRACKET CLOSING_PARENTH COMA COMMENT CONSTANT DIVISION DO DOUBLE ELSE EQUAL EQUAL_EQUAL FOR FUNCTION ID IF INT LOWER_THAN MAIN MINUS MINUSMINUS MULTIPLY NOT NOT_EQUAL OPEN_BRACES OPEN_BRACKET OPEN_PARENTH OR PLUS PLUSPLUS PRINT READ SEMICOLON STRING WHILE\n\tPROGRAMA : VAR FUNC M\n\t\n\tVAR : TIPO DECLARE SEMICOLON\n\t\t| TIPO MAT SEMICOLON\n\t\t| VAR TIPO DECLARE SEMICOLON\n\t\t| VAR TIPO MAT SEMICOLON\n\t\t|\n\t\n\tDECLARE : ID\n\t\t\t| DECLARE COMA ID\n\t\t\t| ASSIGN\n\t\t\t| DECLARE COMA ASSIGN\n\t\n\tASSIGN : ID EQUAL EA\n\t\t\t| MAT EQUAL EA\n\t\n\tFUNC : FUNCTION AUX_FUNC SET_ID OPEN_PARENTH CLOSING_PARENTH DECLARE_FUNC OPEN_BRACES S CLOSING_BRACES RETURN IF_AUX3\n\t\t| FUNC AUX_FUNC FUNCTION SET_ID OPEN_PARENTH CLOSING_PARENTH OPEN_BRACES DECLARE_FUNC S CLOSING_BRACES RETURN IF_AUX3\n\t\t| empty\n\t\n\tSET_ID : ID\n\t\n\tDECLARE_FUNC : empty\n\t\n\tRETURN : empty\n\t\n\tAUX_FUNC : empty\n\t\n\tM : MAIN OPEN_PARENTH CLOSING_PARENTH OPEN_BRACES S CLOSING_BRACES\n\t\n\tTIPO : INT\n\t\t| DOUBLE\n\t\n\tS : STATEMENTS\n\t| S STATEMENTS\n\t|\n\t\n\tSTATEMENTS : VAR \n\t\t\t| IDSTAT\n\t\t\t| PRINTSTAT\n\t\t\t| READSTAT\n\t\t\t| IFSTAT\n\t\t\t| WHILESTAT\n\t\t\t| DOSTAT\n\t\t\t| FORSTAT\n\t\t\t| FUNCSTAT\n\t\t\t| INC_STAT\n\t\t\t| \n\t\n\tIDSTAT : ASSIGN SEMICOLON\n\t\t\n\t\n\tPRINTSTAT : PRINT OPEN_PARENTH EA CLOSING_PARENTH SEMICOLON\n\t\t\t| PRINT OPEN_PARENTH STRING CLOSING_PARENTH SEMICOLON\n\t\n\tREADSTAT : READ OPEN_PARENTH EA CLOSING_PARENTH SEMICOLON\n\t\n\tIFSTAT : IF OPEN_PARENTH EL CLOSING_PARENTH IF_AUX1 IN_S IF_AUX3\n\t\t| IF OPEN_PARENTH EL CLOSING_PARENTH IF_AUX1 IN_S ELSE IF_AUX2 IN_S IF_AUX3\n\t\n\tIF_AUX1 : empty\n\t\n\tIF_AUX2 : empty\n\t\n\tIF_AUX3 : empty\n\tempty :\n\tWHILESTAT : WHILE WHILE_AUX_1 OPEN_PARENTH EL CLOSING_PARENTH WHILE_AUX_2 IN_S\n\t\n\tWHILE_AUX_1 : empty\n\t\n\tWHILE_AUX_2 : empty\n\t\n\tDOSTAT : DO WHILE_AUX_1 IN_S WHILE OPEN_PARENTH EL CLOSING_PARENTH SEMICOLON\n\t\n\tFORSTAT : FOR OPEN_PARENTH ASSIGN SEMICOLON WHILE_AUX_1 EL SEMICOLON WHILE_AUX_2 ASSIGN FOR_INCREMENT CLOSING_PARENTH IN_S\n\t\n\tFOR_INCREMENT : empty\n\t\n\tFUNCSTAT : ID OPEN_PARENTH CLOSING_PARENTH SEMICOLON\n\t\n\tINC_STAT : ID PLUSPLUS SEMICOLON\n\t\t\t| ID MINUSMINUS SEMICOLON\n\t\n\tIN_S : OPEN_BRACES S CLOSING_BRACES\n\t\n\tEA : TA\n\t| EA PLUS TA\n\t| EA MINUS TA\n\t\n\tFA : CONSTANT\n\t\t| ID\n\t\t| MAT\n\t\t| OPEN_PARENTH EA CLOSING_PARENTH\n\t\n\tTA : FA\n\t| TA MULTIPLY FA\n\t| TA DIVISION FA\n\t\n\tEL : TL\n\t| EL OR TL\n\t\n\tTL : FL\n\t| TL AND FL\n\t\n\tFL : NL OPERATORS NL\n\t| EA OPERATORS EA\n\t| NL\n\t| OPEN_PARENTH EL CLOSING_PARENTH\n\t\n\tNL : NOT EL\n\t\n\tOPERATORS : NOT_EQUAL\n\t\t\t| LOWER_THAN\n\t\t\t| BIGGER_THAN\n\t\t\t| EQUAL_EQUAL\n\t\n\tMAT : ID MAT_BRACKET\n\t\n\tMAT_BRACKET : OPEN_BRACKET EA CLOSING_BRACKET\n\t\t\t\t| MAT_BRACKET OPEN_BRACKET EA CLOSING_BRACKET\n\t'
_lr_action_items = {'DO':([17,20,41,42,64,68,69,70,72,73,74,76,77,78,82,84,86,88,89,95,99,103,104,107,110,112,123,124,126,129,148,150,152,153,168,169,174,176,178,182,185,187,],[-3,-2,-5,-4,71,-31,-33,-30,-35,-34,-28,-27,71,-23,-29,-32,-26,-17,-46,-24,-37,71,71,71,-55,-54,71,71,71,-53,-56,-40,-38,-39,-46,-45,-47,-41,-50,-46,-42,-51,]),'CLOSING_BRACKET':([14,29,30,31,32,35,36,47,53,57,58,59,60,61,62,],[-80,-60,-61,-57,-62,-64,53,57,-81,-82,-65,-66,-63,-58,-59,]),'OR':([14,29,30,31,32,35,53,57,58,59,60,61,62,116,118,119,122,130,138,142,154,155,158,159,160,164,165,],[-80,-60,-61,-57,-62,-64,-81,-82,-65,-66,-63,-58,-59,-73,141,-69,-67,141,141,141,-71,-74,-68,-72,-70,141,141,]),'FUNCTION':([0,5,11,13,17,20,23,24,41,42,145,146,161,162,163,169,170,171,],[-6,12,-46,-15,-3,-2,-19,43,-5,-4,-46,-46,-46,-18,-46,-45,-13,-14,]),'CLOSING_BRACES':([17,20,41,42,64,68,69,70,72,73,74,76,77,78,82,84,86,88,89,95,99,103,104,107,110,112,123,124,126,129,148,150,152,153,168,169,174,176,178,182,185,187,],[-3,-2,-5,-4,-6,-31,-33,-30,-35,-34,-28,-27,94,-23,-29,-32,-26,-17,-46,-24,-37,-6,-6,-6,-55,-54,145,146,148,-53,-56,-40,-38,-39,-46,-45,-47,-41,-50,-46,-42,-51,]),'PLUS':([14,29,30,31,32,34,35,36,37,47,50,53,57,58,59,60,61,62,109,114,121,139,159,],[-80,-60,-61,-57,-62,51,-64,51,51,51,51,-81,-82,-65,-66,-63,-58,-59,51,51,51,51,51,]),'WHILE':([17,20,41,42,64,68,69,70,72,73,74,76,77,78,82,84,86,88,89,95,99,103,104,107,108,110,112,123,124,126,129,148,150,152,153,168,169,174,176,178,182,185,187,],[-3,-2,-5,-4,81,-31,-33,-30,-35,-34,-28,-27,81,-23,-29,-32,-26,-17,-46,-24,-37,81,81,81,127,-55,-54,81,81,81,-53,-56,-40,-38,-39,-46,-45,-47,-41,-50,-46,-42,-51,]),'BIGGER_THAN':([14,29,30,31,32,35,53,57,58,59,60,61,62,116,119,121,122,139,142,154,155,158,159,160,],[-80,-60,-61,-57,-62,-64,-81,-82,-65,-66,-63,-58,-59,137,-69,137,-67,137,-75,-71,-74,-68,-72,-70,]),'CONSTANT':([15,16,18,28,33,48,49,51,52,92,93,101,102,113,117,120,125,133,134,136,137,141,143,144,147,149,],[29,29,29,29,29,29,29,29,29,-48,29,29,29,29,29,29,-46,-76,-79,-77,-78,29,29,29,29,29,]),'PLUSPLUS':([79,],[98,]),'ELSE':([148,168,],[-56,175,]),'MULTIPLY':([14,29,30,31,32,35,53,57,58,59,60,61,62,],[-80,-60,-61,48,-62,-64,-81,-82,-65,-66,-63,48,48,]),'MAIN':([0,5,11,13,17,20,41,42,145,146,161,162,163,169,170,171,],[-6,-46,26,-15,-3,-2,-5,-4,-46,-46,-46,-18,-46,-45,-13,-14,]),'MINUSMINUS':([79,],[96,]),'CLOSING_PARENTH':([14,29,30,31,32,34,35,37,44,50,53,56,57,58,59,60,61,62,63,97,109,114,115,116,118,119,122,130,138,139,142,154,155,158,159,160,165,181,183,184,],[-80,-60,-61,-57,-62,-11,-64,-12,55,60,-81,65,-82,-65,-66,-63,-58,-59,66,111,128,131,132,-73,140,-69,-67,151,155,60,-75,-71,-74,-68,-72,-70,173,-46,186,-52,]),'DOUBLE':([0,5,17,20,41,42,64,68,69,70,72,73,74,76,77,78,82,84,86,88,89,95,99,103,104,107,110,112,123,124,126,129,148,150,152,153,168,169,174,176,178,182,185,187,],[3,3,-3,-2,-5,-4,3,-31,-33,-30,-35,-34,-28,-27,3,-23,-29,-32,3,-17,-46,-24,-37,3,3,3,-55,-54,3,3,3,-53,-56,-40,-38,-39,-46,-45,-47,-41,-50,-46,-42,-51,]),'OPEN_PARENTH':([15,16,18,26,28,33,45,46,48,49,51,52,54,67,75,79,81,83,85,92,93,100,101,102,113,117,120,125,127,133,134,136,137,141,143,144,147,149,],[33,33,33,44,33,33,-16,56,33,33,33,33,63,90,93,97,-46,101,102,-48,33,113,33,117,117,117,117,-46,149,-76,-79,-77,-78,117,33,117,117,117,]),'$end':([4,25,94,],[0,-1,-20,]),'OPEN_BRACES':([55,65,66,71,87,88,91,92,140,151,156,157,166,167,175,179,180,186,],[64,-46,89,-46,103,-17,107,-48,-46,-46,107,-43,107,-49,-46,-44,107,107,]),'INT':([0,5,17,20,41,42,64,68,69,70,72,73,74,76,77,78,82,84,86,88,89,95,99,103,104,107,110,112,123,124,126,129,148,150,152,153,168,169,174,176,178,182,185,187,],[1,1,-3,-2,-5,-4,1,-31,-33,-30,-35,-34,-28,-27,1,-23,-29,-32,1,-17,-46,-24,-37,1,1,1,-55,-54,1,1,1,-53,-56,-40,-38,-39,-46,-45,-47,-41,-50,-46,-42,-51,]),'COMA':([6,7,9,14,22,29,30,31,32,34,35,37,38,39,53,57,58,59,60,61,62,],[-7,-9,19,-80,19,-60,-61,-57,-62,-11,-64,-12,-8,-10,-81,-82,-65,-66,-63,-58,-59,]),'DIVISION':([14,29,30,31,32,35,53,57,58,59,60,61,62,],[-80,-60,-61,49,-62,-64,-81,-82,-65,-66,-63,49,49,]),'FOR':([17,20,41,42,64,68,69,70,72,73,74,76,77,78,82,84,86,88,89,95,99,103,104,107,110,112,123,124,126,129,148,150,152,153,168,169,174,176,178,182,185,187,],[-3,-2,-5,-4,67,-31,-33,-30,-35,-34,-28,-27,67,-23,-29,-32,-26,-17,-46,-24,-37,67,67,67,-55,-54,67,67,67,-53,-56,-40,-38,-39,-46,-45,-47,-41,-50,-46,-42,-51,]),'SEMICOLON':([6,7,8,9,14,21,22,29,30,31,32,34,35,37,38,39,53,57,58,59,60,61,62,80,96,98,106,111,116,119,122,128,131,132,142,154,155,158,159,160,164,173,],[-7,-9,17,20,-80,41,42,-60,-61,-57,-62,-11,-64,-12,-8,-10,-81,-82,-65,-66,-63,-58,-59,99,110,112,125,129,-73,-69,-67,150,152,153,-75,-71,-74,-68,-72,-70,172,178,]),'EQUAL':([6,8,14,21,38,40,53,57,79,105,],[15,18,-80,18,15,18,-81,-82,15,15,]),'MINUS':([14,29,30,31,32,34,35,36,37,47,50,53,57,58,59,60,61,62,109,114,121,139,159,],[-80,-60,-61,-57,-62,52,-64,52,52,52,52,-81,-82,-65,-66,-63,-58,-59,52,52,52,52,52,]),'PRINT':([17,20,41,42,64,68,69,70,72,73,74,76,77,78,82,84,86,88,89,95,99,103,104,107,110,112,123,124,126,129,148,150,152,153,168,169,174,176,178,182,185,187,],[-3,-2,-5,-4,83,-31,-33,-30,-35,-34,-28,-27,83,-23,-29,-32,-26,-17,-46,-24,-37,83,83,83,-55,-54,83,83,83,-53,-56,-40,-38,-39,-46,-45,-47,-41,-50,-46,-42,-51,]),'ID':([1,2,3,10,12,15,16,17,18,19,20,23,27,28,33,41,42,43,48,49,51,52,64,68,69,70,72,73,74,76,77,78,82,84,86,88,89,90,92,93,95,99,101,102,103,104,107,110,112,113,117,120,123,124,125,126,129,133,134,136,137,141,143,144,147,148,149,150,152,153,167,168,169,172,174,176,177,178,182,185,187,],[-21,6,-22,6,-46,30,30,-3,30,38,-2,-19,45,30,30,-5,-4,45,30,30,30,30,79,-31,-33,-30,-35,-34,-28,-27,79,-23,-29,-32,-26,-17,-46,105,-48,30,-24,-37,30,30,79,79,79,-55,-54,30,30,30,79,79,-46,79,-53,-76,-79,-77,-78,30,30,30,30,-56,30,-40,-38,-39,-49,-46,-45,-46,-47,-41,105,-50,-46,-42,-51,]),'NOT_EQUAL':([14,29,30,31,32,35,53,57,58,59,60,61,62,116,119,121,122,139,142,154,155,158,159,160,],[-80,-60,-61,-57,-62,-64,-81,-82,-65,-66,-63,-58,-59,133,-69,133,-67,133,-75,-71,-74,-68,-72,-70,]),'AND':([14,29,30,31,32,35,53,57,58,59,60,61,62,116,119,122,142,154,155,158,159,160,],[-80,-60,-61,-57,-62,-64,-81,-82,-65,-66,-63,-58,-59,-73,-69,144,-75,-71,-74,144,-72,-70,]),'READ':([17,20,41,42,64,68,69,70,72,73,74,76,77,78,82,84,86,88,89,95,99,103,104,107,110,112,123,124,126,129,148,150,152,153,168,169,174,176,178,182,185,187,],[-3,-2,-5,-4,75,-31,-33,-30,-35,-34,-28,-27,75,-23,-29,-32,-26,-17,-46,-24,-37,75,75,75,-55,-54,75,75,75,-53,-56,-40,-38,-39,-46,-45,-47,-41,-50,-46,-42,-51,]),'IF':([17,20,41,42,64,68,69,70,72,73,74,76,77,78,82,84,86,88,89,95,99,103,104,107,110,112,123,124,126,129,148,150,152,153,168,169,174,176,178,182,185,187,],[-3,-2,-5,-4,85,-31,-33,-30,-35,-34,-28,-27,85,-23,-29,-32,-26,-17,-46,-24,-37,85,85,85,-55,-54,85,85,85,-53,-56,-40,-38,-39,-46,-45,-47,-41,-50,-46,-42,-51,]),'NOT':([92,102,113,117,120,125,133,134,135,136,137,141,144,147,149,],[-48,120,120,120,120,-46,-76,-79,120,-77,-78,120,120,120,120,]),'STRING':([101,],[115,]),'EQUAL_EQUAL':([14,29,30,31,32,35,53,57,58,59,60,61,62,116,119,121,122,139,142,154,155,158,159,160,],[-80,-60,-61,-57,-62,-64,-81,-82,-65,-66,-63,-58,-59,134,-69,134,-67,134,-75,-71,-74,-68,-72,-70,]),'LOWER_THAN':([14,29,30,31,32,35,53,57,58,59,60,61,62,116,119,121,122,139,142,154,155,158,159,160,],[-80,-60,-61,-57,-62,-64,-81,-82,-65,-66,-63,-58,-59,136,-69,136,-67,136,-75,-71,-74,-68,-72,-70,]),'OPEN_BRACKET':([6,14,30,38,53,57,79,105,],[16,28,16,16,-81,-82,16,16,]),}
_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 = {'IFSTAT':([64,77,103,104,107,123,124,126,],[70,70,70,70,70,70,70,70,]),'RETURN':([145,146,],[161,163,]),'INC_STAT':([64,77,103,104,107,123,124,126,],[72,72,72,72,72,72,72,72,]),'FUNCSTAT':([64,77,103,104,107,123,124,126,],[73,73,73,73,73,73,73,73,]),'IF_AUX2':([175,],[180,]),'TA':([15,16,18,28,33,51,52,93,101,102,113,117,120,141,143,144,147,149,],[31,31,31,31,31,61,62,31,31,31,31,31,31,31,31,31,31,31,]),'S':([64,103,104,107,],[77,123,124,126,]),'OPERATORS':([116,121,139,],[135,143,143,]),'MAT':([2,10,15,16,18,19,28,33,48,49,51,52,64,77,90,93,101,102,103,104,107,113,117,120,123,124,126,141,143,144,147,149,177,],[8,21,32,32,32,40,32,32,32,32,32,32,40,40,40,32,32,32,40,40,40,32,32,32,40,40,40,32,32,32,32,32,40,]),'empty':([5,11,12,65,71,81,89,125,140,145,146,151,161,163,168,172,175,181,182,],[13,23,23,88,92,92,88,92,157,162,162,167,169,169,169,167,179,184,169,]),'IN_S':([91,156,166,180,186,],[108,168,174,182,187,]),'M':([11,],[25,]),'STATEMENTS':([64,77,103,104,107,123,124,126,],[78,95,78,78,78,95,95,95,]),'IF_AUX1':([140,],[156,]),'ASSIGN':([2,10,19,64,77,90,103,104,107,123,124,126,177,],[7,7,39,80,80,106,80,80,80,80,80,80,181,]),'FOR_INCREMENT':([181,],[183,]),'MAT_BRACKET':([6,30,38,79,105,],[14,14,14,14,14,]),'NL':([102,113,117,120,135,141,144,147,149,],[116,116,116,116,154,116,116,116,116,]),'DECLARE':([2,10,],[9,22,]),'SET_ID':([27,43,],[46,54,]),'DOSTAT':([64,77,103,104,107,123,124,126,],[84,84,84,84,84,84,84,84,]),'FUNC':([5,],[11,]),'TIPO':([0,5,64,77,86,103,104,107,123,124,126,],[2,10,2,2,10,2,2,2,2,2,2,]),'EL':([102,113,117,120,147,149,],[118,130,138,142,164,165,]),'DECLARE_FUNC':([65,89,],[87,104,]),'READSTAT':([64,77,103,104,107,123,124,126,],[82,82,82,82,82,82,82,82,]),'WHILE_AUX_2':([151,172,],[166,177,]),'IDSTAT':([64,77,103,104,107,123,124,126,],[76,76,76,76,76,76,76,76,]),'PROGRAMA':([0,],[4,]),'AUX_FUNC':([11,12,],[24,27,]),'IF_AUX3':([161,163,168,182,],[170,171,176,185,]),'WHILESTAT':([64,77,103,104,107,123,124,126,],[68,68,68,68,68,68,68,68,]),'EA':([15,16,18,28,33,93,101,102,113,117,120,141,143,144,147,149,],[34,36,37,47,50,109,114,121,121,139,121,121,159,121,121,121,]),'TL':([102,113,117,120,141,147,149,],[122,122,122,122,158,122,122,]),'PRINTSTAT':([64,77,103,104,107,123,124,126,],[74,74,74,74,74,74,74,74,]),'WHILE_AUX_1':([71,81,125,],[91,100,147,]),'FL':([102,113,117,120,141,144,147,149,],[119,119,119,119,119,160,119,119,]),'FA':([15,16,18,28,33,48,49,51,52,93,101,102,113,117,120,141,143,144,147,149,],[35,35,35,35,35,58,59,35,35,35,35,35,35,35,35,35,35,35,35,35,]),'FORSTAT':([64,77,103,104,107,123,124,126,],[69,69,69,69,69,69,69,69,]),'VAR':([0,64,77,103,104,107,123,124,126,],[5,86,86,86,86,86,86,86,86,]),}
_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' -> PROGRAMA","S'",1,None,None,None),
('PROGRAMA -> VAR FUNC M','PROGRAMA',3,'p_PROGRAMA','compile_run.py',334),
('VAR -> TIPO DECLARE SEMICOLON','VAR',3,'p_VAR','compile_run.py',347),
('VAR -> TIPO MAT SEMICOLON','VAR',3,'p_VAR','compile_run.py',348),
('VAR -> VAR TIPO DECLARE SEMICOLON','VAR',4,'p_VAR','compile_run.py',349),
('VAR -> VAR TIPO MAT SEMICOLON','VAR',4,'p_VAR','compile_run.py',350),
('VAR -> <empty>','VAR',0,'p_VAR','compile_run.py',351),
('DECLARE -> ID','DECLARE',1,'p_DECLARE','compile_run.py',404),
('DECLARE -> DECLARE COMA ID','DECLARE',3,'p_DECLARE','compile_run.py',405),
('DECLARE -> ASSIGN','DECLARE',1,'p_DECLARE','compile_run.py',406),
('DECLARE -> DECLARE COMA ASSIGN','DECLARE',3,'p_DECLARE','compile_run.py',407),
('ASSIGN -> ID EQUAL EA','ASSIGN',3,'p_ASSIGN','compile_run.py',424),
('ASSIGN -> MAT EQUAL EA','ASSIGN',3,'p_ASSIGN','compile_run.py',425),
('FUNC -> FUNCTION AUX_FUNC SET_ID OPEN_PARENTH CLOSING_PARENTH DECLARE_FUNC OPEN_BRACES S CLOSING_BRACES RETURN IF_AUX3','FUNC',11,'p_FUNC','compile_run.py',461),
('FUNC -> FUNC AUX_FUNC FUNCTION SET_ID OPEN_PARENTH CLOSING_PARENTH OPEN_BRACES DECLARE_FUNC S CLOSING_BRACES RETURN IF_AUX3','FUNC',12,'p_FUNC','compile_run.py',462),
('FUNC -> empty','FUNC',1,'p_FUNC','compile_run.py',463),
('SET_ID -> ID','SET_ID',1,'p_SET_ID','compile_run.py',469),
('DECLARE_FUNC -> empty','DECLARE_FUNC',1,'p_DECLARE_FUNC','compile_run.py',477),
('RETURN -> empty','RETURN',1,'p_RETURN','compile_run.py',488),
('AUX_FUNC -> empty','AUX_FUNC',1,'p_AUX_FUNC','compile_run.py',500),
('M -> MAIN OPEN_PARENTH CLOSING_PARENTH OPEN_BRACES S CLOSING_BRACES','M',6,'p_M','compile_run.py',523),
('TIPO -> INT','TIPO',1,'p_TIPO','compile_run.py',527),
('TIPO -> DOUBLE','TIPO',1,'p_TIPO','compile_run.py',528),
('S -> STATEMENTS','S',1,'p_S','compile_run.py',540),
('S -> S STATEMENTS','S',2,'p_S','compile_run.py',541),
('S -> <empty>','S',0,'p_S','compile_run.py',542),
('STATEMENTS -> VAR','STATEMENTS',1,'p_STATEMENTS','compile_run.py',546),
('STATEMENTS -> IDSTAT','STATEMENTS',1,'p_STATEMENTS','compile_run.py',547),
('STATEMENTS -> PRINTSTAT','STATEMENTS',1,'p_STATEMENTS','compile_run.py',548),
('STATEMENTS -> READSTAT','STATEMENTS',1,'p_STATEMENTS','compile_run.py',549),
('STATEMENTS -> IFSTAT','STATEMENTS',1,'p_STATEMENTS','compile_run.py',550),
('STATEMENTS -> WHILESTAT','STATEMENTS',1,'p_STATEMENTS','compile_run.py',551),
('STATEMENTS -> DOSTAT','STATEMENTS',1,'p_STATEMENTS','compile_run.py',552),
('STATEMENTS -> FORSTAT','STATEMENTS',1,'p_STATEMENTS','compile_run.py',553),
('STATEMENTS -> FUNCSTAT','STATEMENTS',1,'p_STATEMENTS','compile_run.py',554),
('STATEMENTS -> INC_STAT','STATEMENTS',1,'p_STATEMENTS','compile_run.py',555),
('STATEMENTS -> <empty>','STATEMENTS',0,'p_STATEMENTS','compile_run.py',556),
('IDSTAT -> ASSIGN SEMICOLON','IDSTAT',2,'p_IDSTAT','compile_run.py',561),
('PRINTSTAT -> PRINT OPEN_PARENTH EA CLOSING_PARENTH SEMICOLON','PRINTSTAT',5,'p_PRINTSTAT','compile_run.py',567),
('PRINTSTAT -> PRINT OPEN_PARENTH STRING CLOSING_PARENTH SEMICOLON','PRINTSTAT',5,'p_PRINTSTAT','compile_run.py',568),
('READSTAT -> READ OPEN_PARENTH EA CLOSING_PARENTH SEMICOLON','READSTAT',5,'p_READSTAT','compile_run.py',582),
('IFSTAT -> IF OPEN_PARENTH EL CLOSING_PARENTH IF_AUX1 IN_S IF_AUX3','IFSTAT',7,'p_IFSTAT','compile_run.py',592),
('IFSTAT -> IF OPEN_PARENTH EL CLOSING_PARENTH IF_AUX1 IN_S ELSE IF_AUX2 IN_S IF_AUX3','IFSTAT',10,'p_IFSTAT','compile_run.py',593),
('IF_AUX1 -> empty','IF_AUX1',1,'p_IF_AUX1','compile_run.py',599),
('IF_AUX2 -> empty','IF_AUX2',1,'p_IF_AUX2','compile_run.py',620),
('IF_AUX3 -> empty','IF_AUX3',1,'p_IF_AUX3','compile_run.py',634),
('empty -> <empty>','empty',0,'p_empty','compile_run.py',645),
('WHILESTAT -> WHILE WHILE_AUX_1 OPEN_PARENTH EL CLOSING_PARENTH WHILE_AUX_2 IN_S','WHILESTAT',7,'p_WHILESTAT','compile_run.py',650),
('WHILE_AUX_1 -> empty','WHILE_AUX_1',1,'p_WHILE_AUX_1','compile_run.py',668),
('WHILE_AUX_2 -> empty','WHILE_AUX_2',1,'p_WHILE_AUX_2','compile_run.py',678),
('DOSTAT -> DO WHILE_AUX_1 IN_S WHILE OPEN_PARENTH EL CLOSING_PARENTH SEMICOLON','DOSTAT',8,'p_DOSTAT','compile_run.py',696),
('FORSTAT -> FOR OPEN_PARENTH ASSIGN SEMICOLON WHILE_AUX_1 EL SEMICOLON WHILE_AUX_2 ASSIGN FOR_INCREMENT CLOSING_PARENTH IN_S','FORSTAT',12,'p_FORSTAT','compile_run.py',716),
('FOR_INCREMENT -> empty','FOR_INCREMENT',1,'p_FOR_INCREMENT','compile_run.py',739),
('FUNCSTAT -> ID OPEN_PARENTH CLOSING_PARENTH SEMICOLON','FUNCSTAT',4,'p_FUNCSTAT','compile_run.py',749),
('INC_STAT -> ID PLUSPLUS SEMICOLON','INC_STAT',3,'p_INC_STAT','compile_run.py',770),
('INC_STAT -> ID MINUSMINUS SEMICOLON','INC_STAT',3,'p_INC_STAT','compile_run.py',771),
('IN_S -> OPEN_BRACES S CLOSING_BRACES','IN_S',3,'p_IN_S','compile_run.py',776),
('EA -> TA','EA',1,'p_EA','compile_run.py',783),
('EA -> EA PLUS TA','EA',3,'p_EA','compile_run.py',784),
('EA -> EA MINUS TA','EA',3,'p_EA','compile_run.py',785),
('FA -> CONSTANT','FA',1,'p_FA','compile_run.py',824),
('FA -> ID','FA',1,'p_FA','compile_run.py',825),
('FA -> MAT','FA',1,'p_FA','compile_run.py',826),
('FA -> OPEN_PARENTH EA CLOSING_PARENTH','FA',3,'p_FA','compile_run.py',827),
('TA -> FA','TA',1,'p_TA','compile_run.py',864),
('TA -> TA MULTIPLY FA','TA',3,'p_TA','compile_run.py',865),
('TA -> TA DIVISION FA','TA',3,'p_TA','compile_run.py',866),
('EL -> TL','EL',1,'p_EL','compile_run.py',902),
('EL -> EL OR TL','EL',3,'p_EL','compile_run.py',903),
('TL -> FL','TL',1,'p_TL','compile_run.py',932),
('TL -> TL AND FL','TL',3,'p_TL','compile_run.py',933),
('FL -> NL OPERATORS NL','FL',3,'p_FL','compile_run.py',958),
('FL -> EA OPERATORS EA','FL',3,'p_FL','compile_run.py',959),
('FL -> NL','FL',1,'p_FL','compile_run.py',960),
('FL -> OPEN_PARENTH EL CLOSING_PARENTH','FL',3,'p_FL','compile_run.py',961),
('NL -> NOT EL','NL',2,'p_NL','compile_run.py',1012),
('OPERATORS -> NOT_EQUAL','OPERATORS',1,'p_OPERATORS','compile_run.py',1035),
('OPERATORS -> LOWER_THAN','OPERATORS',1,'p_OPERATORS','compile_run.py',1036),
('OPERATORS -> BIGGER_THAN','OPERATORS',1,'p_OPERATORS','compile_run.py',1037),
('OPERATORS -> EQUAL_EQUAL','OPERATORS',1,'p_OPERATORS','compile_run.py',1038),
('MAT -> ID MAT_BRACKET','MAT',2,'p_MAT','compile_run.py',1044),
('MAT_BRACKET -> OPEN_BRACKET EA CLOSING_BRACKET','MAT_BRACKET',3,'p_MAT_BRACKET','compile_run.py',1059),
('MAT_BRACKET -> MAT_BRACKET OPEN_BRACKET EA CLOSING_BRACKET','MAT_BRACKET',4,'p_MAT_BRACKET','compile_run.py',1060),
]