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

_lr_method = 'LALR'

_lr_signature = 'nonassocARROWnonassocCOMMAleftASSIGNleftRBRACKETLBRACKETleftKEYWORDNAMELITERALrightMODIF_QMARKMODIF_STARMODIF_PLUSARROW ASSIGN COMMA KEYWORD LBRACKET LITERAL MODIF_PLUS MODIF_QMARK MODIF_STAR NAME RBRACKET\n        DOCUMENT : MACRO_CHAIN\n                 | VARIABLE\n        \n        DOCUMENT : DOCUMENT MACRO_CHAIN\n                 | DOCUMENT VARIABLE\n         MACRO_CHAIN : MACRO ARROW MACRO \n        MACRO : MACRO MODIF_PLUS\n              | MACRO MODIF_STAR\n              | MACRO MODIF_QMARK\n         MACRO : KEYWORD  MACRO : KEYWORD LBRACKET ARGS RBRACKET  VARIABLE_NAME : NAME  VARIABLE : NAME ASSIGN ARG  ARGS : ARGS COMMA ARG  ARGS : ARG  ARG : LITERAL  ARG : MACRO  ARG : VARIABLE_NAME '
    
_lr_action_items = {'NAME':([0,1,2,3,6,7,8,10,11,12,13,14,15,16,17,18,19,20,23,24,],[5,5,-1,-2,-9,-3,-4,-6,-7,-8,16,16,-5,-11,-12,-15,-16,-17,-10,16,]),'KEYWORD':([0,1,2,3,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,23,24,],[6,6,-1,-2,-9,-3,-4,6,-6,-7,-8,6,6,-5,-11,-12,-15,-16,-17,-10,6,]),'$end':([1,2,3,6,7,8,10,11,12,15,16,17,18,19,20,23,],[0,-1,-2,-9,-3,-4,-6,-7,-8,-5,-11,-12,-15,-16,-17,-10,]),'ARROW':([4,6,10,11,12,23,],[9,-9,-6,-7,-8,-10,]),'MODIF_PLUS':([4,6,10,11,12,15,19,23,],[10,-9,-6,-7,-8,10,10,-10,]),'MODIF_STAR':([4,6,10,11,12,15,19,23,],[11,-9,-6,-7,-8,11,11,-10,]),'MODIF_QMARK':([4,6,10,11,12,15,19,23,],[12,-9,-6,-7,-8,12,12,-10,]),'ASSIGN':([5,],[13,]),'RBRACKET':([6,10,11,12,16,18,19,20,21,22,23,25,],[-9,-6,-7,-8,-11,-15,-16,-17,23,-14,-10,-13,]),'COMMA':([6,10,11,12,16,18,19,20,21,22,23,25,],[-9,-6,-7,-8,-11,-15,-16,-17,24,-14,-10,-13,]),'LBRACKET':([6,],[14,]),'LITERAL':([13,14,24,],[18,18,18,]),}

_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 = {'DOCUMENT':([0,],[1,]),'MACRO_CHAIN':([0,1,],[2,7,]),'VARIABLE':([0,1,],[3,8,]),'MACRO':([0,1,9,13,14,24,],[4,4,15,19,19,19,]),'ARG':([13,14,24,],[17,22,25,]),'VARIABLE_NAME':([13,14,24,],[20,20,20,]),'ARGS':([14,],[21,]),}

_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' -> DOCUMENT","S'",1,None,None,None),
  ('DOCUMENT -> MACRO_CHAIN','DOCUMENT',1,'p_document','parser.py',38),
  ('DOCUMENT -> VARIABLE','DOCUMENT',1,'p_document','parser.py',39),
  ('DOCUMENT -> DOCUMENT MACRO_CHAIN','DOCUMENT',2,'p_document_list','parser.py',46),
  ('DOCUMENT -> DOCUMENT VARIABLE','DOCUMENT',2,'p_document_list','parser.py',47),
  ('MACRO_CHAIN -> MACRO ARROW MACRO','MACRO_CHAIN',3,'p_macro_chain','parser.py',53),
  ('MACRO -> MACRO MODIF_PLUS','MACRO',2,'p_macro_w_modif','parser.py',59),
  ('MACRO -> MACRO MODIF_STAR','MACRO',2,'p_macro_w_modif','parser.py',60),
  ('MACRO -> MACRO MODIF_QMARK','MACRO',2,'p_macro_w_modif','parser.py',61),
  ('MACRO -> KEYWORD','MACRO',1,'p_macro_wo_args','parser.py',68),
  ('MACRO -> KEYWORD LBRACKET ARGS RBRACKET','MACRO',4,'p_macro_w_args','parser.py',74),
  ('VARIABLE_NAME -> NAME','VARIABLE_NAME',1,'p_variable','parser.py',80),
  ('VARIABLE -> NAME ASSIGN ARG','VARIABLE',3,'p_variable_from_arg','parser.py',84),
  ('ARGS -> ARGS COMMA ARG','ARGS',3,'p_arg_list','parser.py',88),
  ('ARGS -> ARG','ARGS',1,'p_args','parser.py',92),
  ('ARG -> LITERAL','ARG',1,'p_arg','parser.py',96),
  ('ARG -> MACRO','ARG',1,'p_arg_from_macro','parser.py',100),
  ('ARG -> VARIABLE_NAME','ARG',1,'p_arg_from_var','parser.py',104),
]
