-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparsetab.py
More file actions
45 lines (38 loc) · 3.72 KB
/
parsetab.py
File metadata and controls
45 lines (38 loc) · 3.72 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
# parsetab.py
# This file is automatically generated. Do not edit.
# pylint: disable=W,C,R
_tabversion = '3.10'
_lr_method = 'LALR'
_lr_signature = 'COLON COMMA DECORATOR DEF DIVIDE IDENTIFIER LPAREN MINUS NEWLINE NUMBER PLUS RPAREN TIMESdecorator : DECORATOR IDENTIFIER NEWLINE function_declarationfunction_declaration : DEF IDENTIFIER LPAREN argument_list RPAREN COLON\n | DEF IDENTIFIER LPAREN RPAREN COLONargument_list : IDENTIFIER\n | expressionargument_list : argument_list COMMA IDENTIFIER\n | argument_list COMMA expressionexpression : expression PLUS termexpression : expression MINUS termexpression : termterm : term TIMES factorterm : term DIVIDE factorterm : factorfactor : NUMBERfactor : LPAREN expression RPAREN'
_lr_action_items = {'DECORATOR':([0,],[2,]),'$end':([1,5,20,26,],[0,-1,-3,-2,]),'IDENTIFIER':([2,6,8,19,],[3,7,9,27,]),'NEWLINE':([3,],[4,]),'DEF':([4,],[6,]),'LPAREN':([7,8,10,19,21,22,23,24,],[8,10,10,10,10,10,10,10,]),'RPAREN':([8,9,11,13,14,15,16,17,25,27,28,29,30,31,32,],[12,-4,18,-5,-10,-13,-14,25,-15,-6,-7,-8,-9,-11,-12,]),'NUMBER':([8,10,19,21,22,23,24,],[16,16,16,16,16,16,16,]),'COMMA':([9,11,13,14,15,16,25,27,28,29,30,31,32,],[-4,19,-5,-10,-13,-14,-15,-6,-7,-8,-9,-11,-12,]),'COLON':([12,18,],[20,26,]),'PLUS':([13,14,15,16,17,25,28,29,30,31,32,],[21,-10,-13,-14,21,-15,21,-8,-9,-11,-12,]),'MINUS':([13,14,15,16,17,25,28,29,30,31,32,],[22,-10,-13,-14,22,-15,22,-8,-9,-11,-12,]),'TIMES':([14,15,16,25,29,30,31,32,],[23,-13,-14,-15,23,23,-11,-12,]),'DIVIDE':([14,15,16,25,29,30,31,32,],[24,-13,-14,-15,24,24,-11,-12,]),}
_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 = {'decorator':([0,],[1,]),'function_declaration':([4,],[5,]),'argument_list':([8,],[11,]),'expression':([8,10,19,],[13,17,28,]),'term':([8,10,19,21,22,],[14,14,14,29,30,]),'factor':([8,10,19,21,22,23,24,],[15,15,15,15,15,31,32,]),}
_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' -> decorator","S'",1,None,None,None),
('decorator -> DECORATOR IDENTIFIER NEWLINE function_declaration','decorator',4,'p_decorator','decorators.py',58),
('function_declaration -> DEF IDENTIFIER LPAREN argument_list RPAREN COLON','function_declaration',6,'p_function_declaration','decorators.py',63),
('function_declaration -> DEF IDENTIFIER LPAREN RPAREN COLON','function_declaration',5,'p_function_declaration','decorators.py',64),
('argument_list -> IDENTIFIER','argument_list',1,'p_argument_list_single','decorators.py',67),
('argument_list -> expression','argument_list',1,'p_argument_list_single','decorators.py',68),
('argument_list -> argument_list COMMA IDENTIFIER','argument_list',3,'p_argument_list_multiple','decorators.py',72),
('argument_list -> argument_list COMMA expression','argument_list',3,'p_argument_list_multiple','decorators.py',73),
('expression -> expression PLUS term','expression',3,'p_expression_plus','decorators.py',77),
('expression -> expression MINUS term','expression',3,'p_expression_minus','decorators.py',81),
('expression -> term','expression',1,'p_expression_term','decorators.py',85),
('term -> term TIMES factor','term',3,'p_term_times','decorators.py',89),
('term -> term DIVIDE factor','term',3,'p_term_div','decorators.py',93),
('term -> factor','term',1,'p_term_factor','decorators.py',97),
('factor -> NUMBER','factor',1,'p_factor_num','decorators.py',101),
('factor -> LPAREN expression RPAREN','factor',3,'p_factor_expr','decorators.py',105),
]