-
Notifications
You must be signed in to change notification settings - Fork 0
/
parsetab.py
59 lines (52 loc) · 5.19 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
# /Users/dfurman/Desktop/Damian/Facultad/TLEN/TP2/tltp2/parsetab.py
# This file is automatically generated. Do not edit.
_tabversion = '3.5'
_lr_method = 'LALR'
_lr_signature = '7E8A968C8A24A1D245209A6FB2330039'
_lr_action_items = {'CONST':([2,9,33,34,42,],[6,-2,6,6,-4,]),'NUMBER':([10,16,18,20,32,35,71,],[17,22,23,30,42,45,75,]),'DIV':([22,],[32,]),'VOICE':([2,7,9,15,33,34,38,42,43,44,],[-7,14,-2,14,-7,-7,-10,-4,-5,-6,]),'DOT':([61,],[67,]),'LCURL':([12,29,40,41,53,54,],[19,39,-11,-12,59,60,]),'RPAREN':([30,31,45,46,61,62,67,79,80,],[40,41,53,54,-28,68,-29,81,82,]),'SEMICOLON':([23,24,68,81,82,],[33,34,74,83,84,]),'TEMPO':([1,],[5,]),'RCURL':([19,26,27,28,36,37,39,47,48,49,52,55,56,59,60,65,66,72,73,74,83,84,],[-13,-13,-13,38,-15,-14,-19,-19,56,-21,-22,-20,-16,-13,-13,72,73,-17,-18,-30,-23,-24,]),'COMMA':([63,64,69,70,75,76,],[-26,71,-25,-27,77,78,]),'$end':([2,4,7,9,13,15,21,33,34,38,42,43,44,],[-7,0,-9,-2,-1,-9,-8,-7,-7,-10,-4,-5,-6,]),'REPEAT':([19,26,27,56,59,60,72,73,],[25,25,25,-16,25,25,-17,-18,]),'HASH':([0,3,17,],[1,8,-3,]),'FIGURE':([5,57,77,78,],[10,61,61,61,]),'NOTAID':([58,],[63,]),'EQUAL':([11,],[18,]),'LPAREN':([14,25,50,51,],[20,35,57,58,]),'CONSTID':([6,18,20,35,71,],[11,24,31,46,76,]),'COMPAS':([8,19,26,27,56,59,60,72,73,],[16,29,29,29,-16,29,29,-17,-18,]),'NOTA':([39,47,49,52,74,83,84,],[51,51,-21,-22,-30,-23,-24,]),'SILENCIO':([39,47,49,52,74,83,84,],[50,50,-21,-22,-30,-23,-24,]),'ALTURA':([63,],[70,]),}
_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 = {'figura':([39,47,],[47,47,]),'notas':([39,47,],[48,55,]),'bucle':([19,26,27,59,60,],[26,26,26,26,26,]),'decla_instrumento':([7,15,],[12,12,]),'encabezado':([0,],[2,]),'notaProd':([39,47,],[49,49,]),'compas':([19,26,27,59,60,],[27,27,27,27,27,]),'tempo':([0,],[3,]),'voces':([7,15,],[13,21,]),'simbolo_altura':([63,],[69,]),'start':([0,],[4,]),'musica':([19,26,27,59,60,],[28,36,37,65,66,]),'silencio':([39,47,],[52,52,]),'duracion':([57,77,78,],[62,79,80,]),'constantes':([2,33,34,],[7,43,44,]),'altura':([58,],[64,]),'voz':([7,15,],[15,15,]),'compasDef':([3,],[9,]),}
_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' -> start","S'",1,None,None,None),
('start -> encabezado constantes voces','start',3,'p_start','parser_rules.py',51),
('encabezado -> tempo compasDef','encabezado',2,'p_encabezado','parser_rules.py',63),
('tempo -> HASH TEMPO FIGURE NUMBER','tempo',4,'p_tempo','parser_rules.py',68),
('compasDef -> HASH COMPAS NUMBER DIV NUMBER','compasDef',5,'p_compas_def','parser_rules.py',75),
('constantes -> CONST CONSTID EQUAL NUMBER SEMICOLON constantes','constantes',6,'p_constantes','parser_rules.py',80),
('constantes -> CONST CONSTID EQUAL CONSTID SEMICOLON constantes','constantes',6,'p_constantes_constid','parser_rules.py',97),
('constantes -> <empty>','constantes',0,'p_constantes_lambda','parser_rules.py',116),
('voces -> voz voces','voces',2,'p_voces','parser_rules.py',119),
('voces -> <empty>','voces',0,'p_voces_lambda','parser_rules.py',123),
('voz -> decla_instrumento LCURL musica RCURL','voz',4,'p_voz','parser_rules.py',127),
('decla_instrumento -> VOICE LPAREN NUMBER RPAREN','decla_instrumento',4,'p_decla_instrumento','parser_rules.py',135),
('decla_instrumento -> VOICE LPAREN CONSTID RPAREN','decla_instrumento',4,'p_decla_instrumento_const','parser_rules.py',149),
('musica -> <empty>','musica',0,'p_musica_lambda','parser_rules.py',159),
('musica -> compas musica','musica',2,'p_musica_compas','parser_rules.py',163),
('musica -> bucle musica','musica',2,'p_musica_bucle','parser_rules.py',167),
('compas -> COMPAS LCURL notas RCURL','compas',4,'p_compas','parser_rules.py',171),
('bucle -> REPEAT LPAREN NUMBER RPAREN LCURL musica RCURL','bucle',7,'p_bucle','parser_rules.py',183),
('bucle -> REPEAT LPAREN CONSTID RPAREN LCURL musica RCURL','bucle',7,'p_bucle_constid','parser_rules.py',187),
('notas -> <empty>','notas',0,'p_notas_lambda','parser_rules.py',197),
('notas -> figura notas','notas',2,'p_notas','parser_rules.py',201),
('figura -> notaProd','figura',1,'p_figura_nota','parser_rules.py',205),
('figura -> silencio','figura',1,'p_figura_silencio','parser_rules.py',209),
('notaProd -> NOTA LPAREN altura COMMA NUMBER COMMA duracion RPAREN SEMICOLON','notaProd',9,'p_nota_prod','parser_rules.py',213),
('notaProd -> NOTA LPAREN altura COMMA CONSTID COMMA duracion RPAREN SEMICOLON','notaProd',9,'p_nota_prod_constid','parser_rules.py',226),
('altura -> NOTAID simbolo_altura','altura',2,'p_altura','parser_rules.py',243),
('simbolo_altura -> <empty>','simbolo_altura',0,'p_simbolo_altura_lambda','parser_rules.py',247),
('simbolo_altura -> ALTURA','simbolo_altura',1,'p_simbolo_altura','parser_rules.py',251),
('duracion -> FIGURE','duracion',1,'p_duracion','parser_rules.py',255),
('duracion -> FIGURE DOT','duracion',2,'p_duracion_punto','parser_rules.py',259),
('silencio -> SILENCIO LPAREN duracion RPAREN SEMICOLON','silencio',5,'p_silencio','parser_rules.py',263),
]