-
Notifications
You must be signed in to change notification settings - Fork 1
/
parsetab.py
65 lines (58 loc) · 12.7 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
# parsetab.py
# This file is automatically generated. Do not edit.
_tabversion = '3.2'
_lr_method = 'LALR'
_lr_signature = '\x9f\xc7\xf1\xab\xe3/\xe1x\xe6\x07\x1d\x80L\xf2\xf5\xc6'
_lr_action_items = {'THEN':([1,2,3,5,6,7,8,11,12,15,24,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,47,-16,-32,-18,-7,-15,-9,-13,-4,-11,-12,-3,-10,-14,-2,-1,-8,-17,-31,]),'NUMBER':([0,1,3,4,5,6,7,8,9,10,11,13,14,17,18,19,20,21,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,43,44,47,48,62,63,65,68,69,70,],[8,-26,-25,8,-29,-27,-24,-28,8,8,-30,8,8,-34,8,-21,8,-20,8,8,8,8,8,8,8,8,8,8,8,8,8,8,-33,8,8,8,8,-22,-23,8,8,8,8,]),'FUN':([0,9,10,14,27,28,29,30,31,32,33,34,35,36,37,38,39,43,47,48,68,69,70,],[4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,]),'FI':([1,2,3,5,6,7,8,11,12,15,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,72,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,-16,-32,-18,-7,-15,-9,-13,-4,-11,-12,-3,-10,-14,-2,-1,-8,74,-17,-31,]),'TRUE':([0,1,3,4,5,6,7,8,9,10,11,13,14,17,18,19,20,21,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,43,44,47,48,62,63,65,68,69,70,],[5,-26,-25,5,-29,-27,-24,-28,5,5,-30,5,5,-34,5,-21,5,-20,5,5,5,5,5,5,5,5,5,5,5,5,5,5,-33,5,5,5,5,-22,-23,5,5,5,5,]),'MINUS':([1,2,3,5,6,7,8,11,12,15,16,23,24,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,64,66,67,71,72,73,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,38,38,38,-16,-32,-18,-7,-15,38,38,-4,38,38,-3,38,38,-2,-1,-8,38,38,38,38,38,38,-17,-31,]),'LE':([1,2,3,5,6,7,8,11,12,15,16,23,24,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,64,66,67,71,72,73,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,36,36,36,-16,-32,-18,-7,-15,None,None,-4,None,None,-3,None,None,-2,-1,-8,36,36,36,36,36,36,-17,-31,]),'TEL':([1,2,3,5,6,7,8,11,12,15,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,73,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,-16,-32,-18,-7,-15,-9,-13,-4,-11,-12,-3,-10,-14,-2,-1,-8,75,-17,-31,]),'NE':([1,2,3,5,6,7,8,11,12,15,16,23,24,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,64,66,67,71,72,73,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,33,33,33,-16,-32,-18,-7,-15,None,None,-4,None,None,-3,None,None,-2,-1,-8,33,33,33,33,33,33,-17,-31,]),'PIPE':([1,2,3,5,6,7,8,11,12,15,22,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,64,71,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,44,-16,-32,-18,-7,-15,-9,-13,-4,-11,-12,-3,-10,-14,-2,-1,-8,-35,-36,-17,-31,]),'FLECHA':([1,3,5,6,7,8,11,17,19,20,21,42,62,63,65,],[-26,-25,-29,-27,-24,-28,-30,-34,-21,43,-20,-33,-22,-23,68,]),'DOSPUNTOS':([1,2,3,5,6,7,8,11,12,15,16,17,19,21,23,24,25,26,41,42,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,66,67,71,72,73,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,28,40,-21,-20,28,28,40,28,40,40,-32,-18,28,28,28,28,28,28,28,28,28,28,28,28,28,40,-23,28,28,28,28,28,28,-17,-31,]),'PLUS':([1,2,3,5,6,7,8,11,12,15,16,23,24,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,64,66,67,71,72,73,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,37,37,37,-16,-32,-18,-7,-15,37,37,-4,37,37,-3,37,37,-2,-1,-8,37,37,37,37,37,37,-17,-31,]),'NUF':([1,2,3,5,6,7,8,11,12,15,22,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,64,71,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,45,-16,-32,-18,-7,-15,-9,-13,-4,-11,-12,-3,-10,-14,-2,-1,-8,-35,-36,-17,-31,]),'$end':([1,2,3,5,6,7,8,11,12,15,16,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,0,-16,-32,-18,-7,-15,-9,-13,-4,-11,-12,-3,-10,-14,-2,-1,-8,-17,-31,]),'GT':([1,2,3,5,6,7,8,11,12,15,16,23,24,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,64,66,67,71,72,73,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,29,29,29,-16,-32,-18,-7,-15,None,None,-4,None,None,-3,None,None,-2,-1,-8,29,29,29,29,29,29,-17,-31,]),'DIVIDE':([1,2,3,5,6,7,8,11,12,15,16,23,24,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,64,66,67,71,72,73,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,31,31,31,-16,-32,-18,-7,-15,31,31,-4,31,31,-3,31,31,31,31,-8,31,31,31,31,31,31,-17,-31,]),'APAREN':([0,1,3,4,5,6,7,8,9,10,11,13,14,17,18,19,20,21,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,43,44,47,48,62,63,65,68,69,70,],[9,-26,-25,18,-29,-27,-24,-28,9,9,-30,18,9,-34,18,-21,18,-20,9,9,9,9,9,9,9,9,9,9,9,9,9,18,-33,9,18,9,9,-22,-23,18,9,9,9,]),'ELSE':([1,2,3,5,6,7,8,11,12,15,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,66,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,-16,-32,-18,-7,-15,-9,-13,-4,-11,-12,-3,-10,-14,-2,-1,-8,69,-17,-31,]),'GE':([1,2,3,5,6,7,8,11,12,15,16,23,24,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,64,66,67,71,72,73,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,30,30,30,-16,-32,-18,-7,-15,None,None,-4,None,None,-3,None,None,-2,-1,-8,30,30,30,30,30,30,-17,-31,]),'IN':([1,2,3,5,6,7,8,11,12,15,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,67,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,-16,-32,-18,-7,-15,-9,-13,-4,-11,-12,-3,-10,-14,-2,-1,-8,70,-17,-31,]),'TIMES':([1,2,3,5,6,7,8,11,12,15,16,23,24,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,64,66,67,71,72,73,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,34,34,34,-16,-32,-18,-7,-15,34,34,-4,34,34,-3,34,34,34,34,-8,34,34,34,34,34,34,-17,-31,]),'EQ':([1,2,3,5,6,7,8,11,12,15,16,19,21,23,24,25,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,66,67,71,72,73,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,32,-21,-20,32,32,48,-16,-32,-18,-7,-15,None,None,-4,None,None,-3,None,None,-2,-1,-8,-22,-23,32,32,32,32,32,32,-17,-31,]),'ID':([0,1,3,4,5,6,7,8,9,10,11,13,14,17,18,19,20,21,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,43,44,47,48,62,63,65,68,69,70,],[7,-26,-25,7,-29,-27,-24,-28,7,7,-30,7,7,-34,7,-21,7,-20,7,7,7,7,7,7,7,7,7,7,7,7,7,7,-33,7,7,7,7,-22,-23,7,7,7,7,]),'IF':([0,9,10,14,27,28,29,30,31,32,33,34,35,36,37,38,39,43,47,48,68,69,70,],[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,]),'AND':([1,2,3,5,6,7,8,11,12,15,16,23,24,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,64,66,67,71,72,73,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,27,27,27,-16,-32,-18,-7,-15,27,27,27,27,27,27,27,27,27,27,-8,27,27,27,27,27,27,-17,-31,]),'FALSE':([0,1,3,4,5,6,7,8,9,10,11,13,14,17,18,19,20,21,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,43,44,47,48,62,63,65,68,69,70,],[11,-26,-25,11,-29,-27,-24,-28,11,11,-30,11,11,-34,11,-21,11,-20,11,11,11,11,11,11,11,11,11,11,11,11,11,11,-33,11,11,11,11,-22,-23,11,11,11,11,]),'CPAREN':([1,2,3,5,6,7,8,11,12,15,19,21,23,26,41,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,-21,-20,46,-16,63,-32,-18,-7,-15,-9,-13,-4,-11,-12,-3,-10,-14,-2,-1,-8,-22,-23,-17,-31,]),'LT':([1,2,3,5,6,7,8,11,12,15,16,23,24,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,64,66,67,71,72,73,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,35,35,35,-16,-32,-18,-7,-15,None,None,-4,None,None,-3,None,None,-2,-1,-8,35,35,35,35,35,35,-17,-31,]),'LET':([0,9,10,14,27,28,29,30,31,32,33,34,35,36,37,38,39,43,47,48,68,69,70,],[13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,]),'NOT':([0,9,10,14,27,28,29,30,31,32,33,34,35,36,37,38,39,43,47,48,68,69,70,],[14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,]),'LISTA':([0,9,10,14,27,28,29,30,31,32,33,34,35,36,37,38,39,43,47,48,68,69,70,],[12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,]),'OR':([1,2,3,5,6,7,8,11,12,15,16,23,24,26,45,46,49,50,51,52,53,54,55,56,57,58,59,60,61,64,66,67,71,72,73,74,75,],[-26,-6,-25,-29,-27,-24,-28,-30,-19,-5,39,39,39,-16,-32,-18,-7,-15,39,39,39,39,39,39,39,39,39,39,-8,39,39,39,39,39,39,-17,-31,]),}
_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 = {'false':([0,4,9,10,13,14,18,20,27,28,29,30,31,32,33,34,35,36,37,38,39,40,43,44,47,48,65,68,69,70,],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,]),'patron':([4,13,18,20,40,44,65,],[17,25,41,42,62,17,42,]),'expression':([0,9,10,14,27,28,29,30,31,32,33,34,35,36,37,38,39,43,47,48,68,69,70,],[16,23,24,26,49,50,51,52,53,54,55,56,57,58,59,60,61,64,66,67,71,72,73,]),'variables':([0,4,9,10,13,14,18,20,27,28,29,30,31,32,33,34,35,36,37,38,39,40,43,44,47,48,65,68,69,70,],[2,19,2,2,19,2,19,19,2,2,2,2,2,2,2,2,2,2,2,2,2,19,2,19,2,2,19,2,2,2,]),'listapat':([4,44,],[20,65,]),'number':([0,4,9,10,13,14,18,20,27,28,29,30,31,32,33,34,35,36,37,38,39,40,43,44,47,48,65,68,69,70,],[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,]),'constantes':([0,4,9,10,13,14,18,20,27,28,29,30,31,32,33,34,35,36,37,38,39,40,43,44,47,48,65,68,69,70,],[15,21,15,15,21,15,21,21,15,15,15,15,15,15,15,15,15,15,15,15,15,21,15,21,15,15,21,15,15,15,]),'true':([0,4,9,10,13,14,18,20,27,28,29,30,31,32,33,34,35,36,37,38,39,40,43,44,47,48,65,68,69,70,],[6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,]),'gen':([4,],[22,]),}
_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' -> expression","S'",1,None,None,None),
('expression -> expression MINUS expression','expression',3,'p_arit','/home/jose/traductores/2doproy/parser.py',16),
('expression -> expression PLUS expression','expression',3,'p_arit','/home/jose/traductores/2doproy/parser.py',17),
('expression -> expression TIMES expression','expression',3,'p_arit','/home/jose/traductores/2doproy/parser.py',18),
('expression -> expression DIVIDE expression','expression',3,'p_arit','/home/jose/traductores/2doproy/parser.py',19),
('expression -> constantes','expression',1,'p_arit','/home/jose/traductores/2doproy/parser.py',20),
('expression -> variables','expression',1,'p_arit','/home/jose/traductores/2doproy/parser.py',21),
('expression -> expression AND expression','expression',3,'p_bool','/home/jose/traductores/2doproy/parser.py',35),
('expression -> expression OR expression','expression',3,'p_bool','/home/jose/traductores/2doproy/parser.py',36),
('expression -> expression GT expression','expression',3,'p_bool','/home/jose/traductores/2doproy/parser.py',37),
('expression -> expression LT expression','expression',3,'p_bool','/home/jose/traductores/2doproy/parser.py',38),
('expression -> expression EQ expression','expression',3,'p_bool','/home/jose/traductores/2doproy/parser.py',39),
('expression -> expression NE expression','expression',3,'p_bool','/home/jose/traductores/2doproy/parser.py',40),
('expression -> expression GE expression','expression',3,'p_bool','/home/jose/traductores/2doproy/parser.py',41),
('expression -> expression LE expression','expression',3,'p_bool','/home/jose/traductores/2doproy/parser.py',42),
('expression -> expression DOSPUNTOS expression','expression',3,'p_bool','/home/jose/traductores/2doproy/parser.py',43),
('expression -> NOT expression','expression',2,'p_bool','/home/jose/traductores/2doproy/parser.py',44),
('expression -> IF expression THEN expression ELSE expression FI','expression',7,'p_if','/home/jose/traductores/2doproy/parser.py',79),
('expression -> APAREN expression CPAREN','expression',3,'p_par_exp','/home/jose/traductores/2doproy/parser.py',83),
('expression -> LISTA','expression',1,'p_listav','/home/jose/traductores/2doproy/parser.py',88),
('patron -> constantes','patron',1,'p_patron','/home/jose/traductores/2doproy/parser.py',93),
('patron -> variables','patron',1,'p_patron','/home/jose/traductores/2doproy/parser.py',94),
('patron -> patron DOSPUNTOS patron','patron',3,'p_patron','/home/jose/traductores/2doproy/parser.py',95),
('patron -> APAREN patron CPAREN','patron',3,'p_patron','/home/jose/traductores/2doproy/parser.py',96),
('variables -> ID','variables',1,'p_var','/home/jose/traductores/2doproy/parser.py',111),
('constantes -> number','constantes',1,'p_cons','/home/jose/traductores/2doproy/parser.py',116),
('constantes -> false','constantes',1,'p_cons','/home/jose/traductores/2doproy/parser.py',117),
('constantes -> true','constantes',1,'p_cons','/home/jose/traductores/2doproy/parser.py',118),
('number -> NUMBER','number',1,'p_number','/home/jose/traductores/2doproy/parser.py',123),
('true -> TRUE','true',1,'p_true','/home/jose/traductores/2doproy/parser.py',128),
('false -> FALSE','false',1,'p_false','/home/jose/traductores/2doproy/parser.py',133),
('expression -> LET patron EQ expression IN expression TEL','expression',7,'p_let','/home/jose/traductores/2doproy/parser.py',138),
('expression -> FUN gen NUF','expression',3,'p_fun','/home/jose/traductores/2doproy/parser.py',146),
('listapat -> listapat patron','listapat',2,'p_listapat','/home/jose/traductores/2doproy/parser.py',151),
('listapat -> patron','listapat',1,'p_listapat','/home/jose/traductores/2doproy/parser.py',152),
('gen -> listapat FLECHA expression','gen',3,'p_nproduc','/home/jose/traductores/2doproy/parser.py',162),
('gen -> gen PIPE listapat FLECHA expression','gen',5,'p_nproduc','/home/jose/traductores/2doproy/parser.py',163),
]