
# parsetab.py
# This file is automatically generated. Do not edit.
# pylint: disable=W,C,R
_tabversion = '3.10'

_lr_method = 'LALR'

_lr_signature = 'ASTERISK BOOLEAN COMMA EQUALS FLOAT FORMAT ID INTEGER LPARENS NONE RPARENS STRING expr : func_call\n                 | format_listfunc_call : ID LPARENS arguments RPARENSfunc_call : ID LPARENS RPARENSarguments : args COMMA kwargsarguments : argsarguments : kwargsargs : args COMMA valueargs : valuekwargs : kwargs COMMA kwargskwargs : ID EQUALS valuevalue : STRING\n                 | BOOLEAN\n                 | NONE\n                 | INTEGER\n                 | FLOATformat_list : format_list COMMA named_formatformat_list : named_formatnamed_format : ID EQUALS FORMATnamed_format : ASTERISK EQUALS FORMAT'
    
_lr_action_items = {'ID':([0,7,8,28,29,],[4,12,13,13,13,]),'ASTERISK':([0,7,],[6,6,]),'$end':([1,2,3,5,11,15,24,25,27,],[0,-1,-2,-18,-17,-4,-19,-20,-3,]),'COMMA':([3,5,11,16,17,18,19,20,21,22,23,24,25,30,31,32,33,],[7,-18,-17,28,29,-9,-12,-13,-14,-15,-16,-19,-20,-11,29,-8,29,]),'LPARENS':([4,],[8,]),'EQUALS':([4,6,12,13,],[9,10,9,26,]),'RPARENS':([8,14,16,17,18,19,20,21,22,23,30,31,32,33,],[15,27,-6,-7,-9,-12,-13,-14,-15,-16,-11,-5,-8,-10,]),'STRING':([8,26,28,],[19,19,19,]),'BOOLEAN':([8,26,28,],[20,20,20,]),'NONE':([8,26,28,],[21,21,21,]),'INTEGER':([8,26,28,],[22,22,22,]),'FLOAT':([8,26,28,],[23,23,23,]),'FORMAT':([9,10,],[24,25,]),}

_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,],[1,]),'func_call':([0,],[2,]),'format_list':([0,],[3,]),'named_format':([0,7,],[5,11,]),'arguments':([8,],[14,]),'args':([8,],[16,]),'kwargs':([8,28,29,],[17,31,33,]),'value':([8,26,28,],[18,30,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' -> expr","S'",1,None,None,None),
  ('expr -> func_call','expr',1,'p_expr','annot_lex.py',68),
  ('expr -> format_list','expr',1,'p_expr','annot_lex.py',69),
  ('func_call -> ID LPARENS arguments RPARENS','func_call',4,'p_func_call_arguments','annot_lex.py',73),
  ('func_call -> ID LPARENS RPARENS','func_call',3,'p_func_call_empty','annot_lex.py',77),
  ('arguments -> args COMMA kwargs','arguments',3,'p_arguments_args_kwargs','annot_lex.py',81),
  ('arguments -> args','arguments',1,'p_arguments_args','annot_lex.py',85),
  ('arguments -> kwargs','arguments',1,'p_arguments_kwargs','annot_lex.py',89),
  ('args -> args COMMA value','args',3,'p_args_args','annot_lex.py',93),
  ('args -> value','args',1,'p_args_value','annot_lex.py',97),
  ('kwargs -> kwargs COMMA kwargs','kwargs',3,'p_kwargs_kwargs','annot_lex.py',101),
  ('kwargs -> ID EQUALS value','kwargs',3,'p_kwargs','annot_lex.py',106),
  ('value -> STRING','value',1,'p_value','annot_lex.py',110),
  ('value -> BOOLEAN','value',1,'p_value','annot_lex.py',111),
  ('value -> NONE','value',1,'p_value','annot_lex.py',112),
  ('value -> INTEGER','value',1,'p_value','annot_lex.py',113),
  ('value -> FLOAT','value',1,'p_value','annot_lex.py',114),
  ('format_list -> format_list COMMA named_format','format_list',3,'p_format_list_add','annot_lex.py',118),
  ('format_list -> named_format','format_list',1,'p_format_list','annot_lex.py',123),
  ('named_format -> ID EQUALS FORMAT','named_format',3,'p_named_format','annot_lex.py',127),
  ('named_format -> ASTERISK EQUALS FORMAT','named_format',3,'p_all_format','annot_lex.py',131),
]
