-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparsetab.py
More file actions
47 lines (40 loc) · 4.37 KB
/
parsetab.py
File metadata and controls
47 lines (40 loc) · 4.37 KB
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
# parsetab.py
# This file is automatically generated. Do not edit.
_tabversion = '3.2'
_lr_method = 'LALR'
_lr_signature = '~\x9e](\x10\xa8S\x9a\x8b?\x9c\xb8t\xdb\xa0\xe7'
_lr_action_items = {'AND':([1,3,4,22,23,24,25,26,27,28,29,30,31,32,33,],[8,-16,-17,-18,-4,-7,-11,-15,-9,-14,-6,-10,-12,-8,-13,]),'THEN':([1,3,4,21,22,23,24,25,26,27,28,29,30,31,32,33,],[-5,-16,-17,35,-18,-4,-7,-11,-15,-9,-14,-6,-10,-12,-8,-13,]),'GT':([1,2,3,4,6,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,],[-5,9,-16,-17,-18,9,-17,-18,-4,9,9,-15,9,-14,9,9,-12,9,-13,9,]),'DIVIDE':([1,2,3,4,6,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,],[-5,11,-16,-17,-18,11,-17,-18,-4,11,11,-15,11,-14,11,11,-12,11,-13,11,]),'$end':([1,2,3,4,5,6,22,23,24,25,26,27,28,29,30,31,32,33,34,38,],[-5,-3,-16,-17,0,-18,-18,-4,-7,-11,-15,-9,-14,-6,-10,-12,-8,-13,-1,-2,]),'LT':([1,2,3,4,6,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,],[-5,14,-16,-17,-18,14,-17,-18,-4,14,14,-15,14,-14,14,14,-12,14,-13,14,]),'NUMBER':([0,7,8,9,10,11,12,13,14,15,16,17,18,19,35,37,],[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,]),'ELSE':([1,2,3,4,6,22,23,24,25,26,27,28,29,30,31,32,33,34,36,38,],[-5,-3,-16,-17,-18,-18,-4,-7,-11,-15,-9,-14,-6,-10,-12,-8,-13,-1,37,-2,]),'NE':([1,2,3,4,6,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,],[-5,12,-16,-17,-18,12,-17,-18,-4,12,12,-15,12,-14,12,12,-12,12,-13,12,]),'GE':([1,2,3,4,6,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,],[-5,10,-16,-17,-18,10,-17,-18,-4,10,10,-15,10,-14,10,10,-12,10,-13,10,]),'LE':([1,2,3,4,6,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,],[-5,15,-16,-17,-18,15,-17,-18,-4,15,15,-15,15,-14,15,15,-12,15,-13,15,]),'PLUS':([1,2,3,4,6,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,],[-5,16,-16,-17,-18,16,-17,-18,-4,16,16,-15,16,-14,16,16,-12,16,-13,16,]),'MINUS':([1,2,3,4,6,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,],[-5,18,-16,-17,-18,18,-17,-18,-4,18,18,-15,18,-14,18,18,-12,18,-13,18,]),'TIMES':([1,2,3,4,6,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,],[-5,13,-16,-17,-18,13,-17,-18,-4,13,13,-15,13,-14,13,13,-12,13,-13,13,]),'EQ':([1,2,3,4,6,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,],[-5,17,-16,-17,19,17,-17,-18,-4,17,17,-15,17,-14,17,17,-12,17,-13,17,]),'ID':([0,7,8,9,10,11,12,13,14,15,16,17,18,19,35,37,],[6,22,22,22,22,22,22,22,22,22,22,22,22,22,6,6,]),'IF':([0,35,37,],[7,7,7,]),}
_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 = {'expr':([0,7,8,9,10,11,12,13,14,15,16,17,18,19,35,37,],[2,20,20,24,25,26,27,28,29,30,31,32,33,34,2,2,]),'relexpr':([0,7,8,9,10,11,12,13,14,15,16,17,18,19,35,37,],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,]),'boolexpr':([0,7,8,9,10,11,12,13,14,15,16,17,18,19,35,37,],[4,21,23,4,4,4,4,4,4,4,4,4,4,4,4,4,]),'statement':([0,35,37,],[5,36,38,]),}
_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' -> statement","S'",1,None,None,None),
('statement -> ID EQ expr','statement',3,'p_statement_assign','simplelex.py',57),
('statement -> IF boolexpr THEN statement ELSE statement','statement',6,'p_statement_if','simplelex.py',61),
('statement -> expr','statement',1,'p_statement_expr','simplelex.py',66),
('boolexpr -> relexpr AND boolexpr','boolexpr',3,'p_boolexpr','simplelex.py',71),
('boolexpr -> relexpr','boolexpr',1,'p_boolexpr','simplelex.py',72),
('relexpr -> expr LT expr','relexpr',3,'p_relexpr_lt','simplelex.py',79),
('relexpr -> expr GT expr','relexpr',3,'p_relexpr_gt','simplelex.py',85),
('relexpr -> expr EQ expr','relexpr',3,'p_relexpr_eq','simplelex.py',91),
('relexpr -> expr NE expr','relexpr',3,'p_relexpr_neq','simplelex.py',97),
('relexpr -> expr LE expr','relexpr',3,'p_relexpr_le','simplelex.py',103),
('relexpr -> expr GE expr','relexpr',3,'p_relexpr_ge','simplelex.py',109),
('expr -> expr PLUS expr','expr',3,'p_expr_add','simplelex.py',115),
('expr -> expr MINUS expr','expr',3,'p_expr_minus','simplelex.py',119),
('expr -> expr TIMES expr','expr',3,'p_expr_times','simplelex.py',123),
('expr -> expr DIVIDE expr','expr',3,'p_expr_divide','simplelex.py',127),
('expr -> NUMBER','expr',1,'p_expr_number','simplelex.py',131),
('expr -> boolexpr','expr',1,'p_expr_bool','simplelex.py',135),
('expr -> ID','expr',1,'p_expr_id','simplelex.py',139),
]