Files
2024-04-03 02:57:20 +00:00

44 lines
3.7 KiB
Python

# parsetab.py
# This file is automatically generated. Do not edit.
# pylint: disable=W,C,R
_tabversion = '3.10'
_lr_method = 'LALR'
_lr_signature = 'leftPLUSMINUSleftTIMESFDIVIDEMODDIVIDEleftEXPrightUMINUSDIVIDE EQUALS EXP FDIVIDE LPAREN MINUS MOD NAME NUMBER PLUS RPAREN TIMESstatement : NAME EQUALS expressionstatement : expression\n expression : expression PLUS expression\n | expression MINUS expression\n | expression TIMES expression\n | expression DIVIDE expression\n | expression MOD expression\n | expression FDIVIDE expression\n | expression EXP expression\n expression : MINUS expression %prec UMINUSexpression : LPAREN expression RPARENexpression : NUMBERexpression : NAME'
_lr_action_items = {'NAME':([0,4,5,7,8,9,10,11,12,13,14,],[2,16,16,16,16,16,16,16,16,16,16,]),'MINUS':([0,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,],[4,-13,9,4,4,-12,4,4,4,4,4,4,4,4,-10,-13,9,9,-3,-4,-5,-6,-7,-8,-9,-11,]),'LPAREN':([0,4,5,7,8,9,10,11,12,13,14,],[5,5,5,5,5,5,5,5,5,5,5,]),'NUMBER':([0,4,5,7,8,9,10,11,12,13,14,],[6,6,6,6,6,6,6,6,6,6,6,]),'$end':([1,2,3,6,15,16,18,19,20,21,22,23,24,25,26,],[0,-13,-2,-12,-10,-13,-1,-3,-4,-5,-6,-7,-8,-9,-11,]),'EQUALS':([2,],[7,]),'PLUS':([2,3,6,15,16,17,18,19,20,21,22,23,24,25,26,],[-13,8,-12,-10,-13,8,8,-3,-4,-5,-6,-7,-8,-9,-11,]),'TIMES':([2,3,6,15,16,17,18,19,20,21,22,23,24,25,26,],[-13,10,-12,-10,-13,10,10,10,10,-5,-6,-7,-8,-9,-11,]),'DIVIDE':([2,3,6,15,16,17,18,19,20,21,22,23,24,25,26,],[-13,11,-12,-10,-13,11,11,11,11,-5,-6,-7,-8,-9,-11,]),'MOD':([2,3,6,15,16,17,18,19,20,21,22,23,24,25,26,],[-13,12,-12,-10,-13,12,12,12,12,-5,-6,-7,-8,-9,-11,]),'FDIVIDE':([2,3,6,15,16,17,18,19,20,21,22,23,24,25,26,],[-13,13,-12,-10,-13,13,13,13,13,-5,-6,-7,-8,-9,-11,]),'EXP':([2,3,6,15,16,17,18,19,20,21,22,23,24,25,26,],[-13,14,-12,-10,-13,14,14,14,14,14,14,14,14,-9,-11,]),'RPAREN':([6,15,16,17,19,20,21,22,23,24,25,26,],[-12,-10,-13,26,-3,-4,-5,-6,-7,-8,-9,-11,]),}
_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 = {'statement':([0,],[1,]),'expression':([0,4,5,7,8,9,10,11,12,13,14,],[3,15,17,18,19,20,21,22,23,24,25,]),}
_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 -> NAME EQUALS expression','statement',3,'p_statement_assign','calc.py',99),
('statement -> expression','statement',1,'p_statement_expr','calc.py',103),
('expression -> expression PLUS expression','expression',3,'p_expression_binop','calc.py',109),
('expression -> expression MINUS expression','expression',3,'p_expression_binop','calc.py',110),
('expression -> expression TIMES expression','expression',3,'p_expression_binop','calc.py',111),
('expression -> expression DIVIDE expression','expression',3,'p_expression_binop','calc.py',112),
('expression -> expression MOD expression','expression',3,'p_expression_binop','calc.py',113),
('expression -> expression FDIVIDE expression','expression',3,'p_expression_binop','calc.py',114),
('expression -> expression EXP expression','expression',3,'p_expression_binop','calc.py',115),
('expression -> MINUS expression','expression',2,'p_expression_uminus','calc.py',135),
('expression -> LPAREN expression RPAREN','expression',3,'p_expression_group','calc.py',140),
('expression -> NUMBER','expression',1,'p_expression_number','calc.py',144),
('expression -> NAME','expression',1,'p_expression_name','calc.py',149),
]