
# parsetab.py
# This file is automatically generated. Do not edit.
# pylint: disable=W,C,R
_tabversion = '3.10'

_lr_method = 'LALR'

_lr_signature = 'A0 A2 A_MINUS A_PLUS B0_MINUS B0_PLUS BETA_MINUS BETA_PLUS B_MINUS_MINUS B_MINUS_PLUS B_PLUS_MINUS B_PLUS_PLUS COMMA CONS C_MINUS C_PLUS LEAF LPAREN NIL RPARENs : A0 LPAREN as RPARENs : B0_PLUS LPAREN b_plus COMMA LPAREN cs_plus RPAREN RPARENs : B0_MINUS LPAREN b_minus COMMA LPAREN cs_minus RPAREN RPARENas : NILas : CONS LPAREN a COMMA as RPARENa : A_PLUS LPAREN b_plus RPARENa : A_MINUS LPAREN b_minus RPARENa : A2 LPAREN cs_plus COMMA cs_minus RPARENb_plus : LEAFb_plus : B_PLUS_PLUS LPAREN b_plus COMMA b_plus RPARENb_plus : B_PLUS_MINUS LPAREN b_plus COMMA b_minus RPARENb_plus : BETA_PLUS LPAREN cs_plus RPARENb_minus : LEAFb_minus : B_MINUS_MINUS LPAREN b_minus COMMA b_minus RPARENb_minus : B_MINUS_PLUS LPAREN b_minus COMMA b_plus RPARENb_minus : BETA_MINUS LPAREN cs_minus RPARENc_plus : C_PLUS LPAREN b_plus COMMA cs_minus RPARENc_minus : C_MINUS LPAREN b_minus COMMA cs_plus RPARENcs_plus : NILcs_plus : CONS LPAREN c_plus COMMA cs_plus RPARENcs_minus : NILcs_minus : CONS LPAREN c_minus COMMA cs_minus RPAREN'
    
_lr_action_items = {'A0':([0,],[2,]),'B0_PLUS':([0,],[3,]),'B0_MINUS':([0,],[4,]),'$end':([1,21,79,84,],[0,-1,-2,-3,]),'LPAREN':([2,3,4,10,13,14,15,18,19,20,23,27,32,33,34,40,46,69,74,],[5,6,7,22,24,25,26,28,29,30,35,41,48,49,50,55,60,83,88,]),'NIL':([5,26,30,35,41,47,50,78,82,87,96,98,],[9,39,45,39,45,9,39,45,39,45,45,39,]),'CONS':([5,26,30,35,41,47,50,78,82,87,96,98,],[10,40,46,40,46,10,40,46,40,46,46,40,]),'LEAF':([6,7,24,25,28,29,48,49,52,53,57,58,83,88,],[12,17,12,12,17,17,12,17,12,17,17,12,12,17,]),'B_PLUS_PLUS':([6,24,25,48,52,58,83,],[13,13,13,13,13,13,13,]),'B_PLUS_MINUS':([6,24,25,48,52,58,83,],[14,14,14,14,14,14,14,]),'BETA_PLUS':([6,24,25,48,52,58,83,],[15,15,15,15,15,15,15,]),'B_MINUS_MINUS':([7,28,29,49,53,57,88,],[18,18,18,18,18,18,18,]),'B_MINUS_PLUS':([7,28,29,49,53,57,88,],[19,19,19,19,19,19,19,]),'BETA_MINUS':([7,28,29,49,53,57,88,],[20,20,20,20,20,20,20,]),'RPAREN':([8,9,12,17,38,39,44,45,51,54,56,59,61,62,63,65,66,67,70,71,72,75,80,81,85,86,89,90,92,95,97,99,100,],[21,-4,-9,-13,54,-19,59,-21,65,-12,70,-16,75,76,77,79,80,81,84,85,86,-5,-10,-11,-14,-15,94,95,97,-20,-22,101,102,]),'COMMA':([11,12,16,17,31,36,37,39,42,43,54,59,64,68,73,76,77,80,81,85,86,91,93,94,95,101,102,],[23,-9,27,-13,47,52,53,-19,57,58,-12,-16,78,82,87,-6,-7,-10,-11,-14,-15,96,98,-8,-20,-17,-18,]),'A_PLUS':([22,],[32,]),'A_MINUS':([22,],[33,]),'A2':([22,],[34,]),'C_PLUS':([55,],[69,]),'C_MINUS':([60,],[74,]),}

_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 = {'s':([0,],[1,]),'as':([5,47,],[8,61,]),'b_plus':([6,24,25,48,52,58,83,],[11,36,37,62,66,72,91,]),'b_minus':([7,28,29,49,53,57,88,],[16,42,43,63,67,71,93,]),'a':([22,],[31,]),'cs_plus':([26,35,50,82,98,],[38,51,64,90,100,]),'cs_minus':([30,41,78,87,96,],[44,56,89,92,99,]),'c_plus':([55,],[68,]),'c_minus':([60,],[73,]),}

_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' -> s","S'",1,None,None,None),
  ('s -> A0 LPAREN as RPAREN','s',4,'p_expr_a0','yacc.py',9),
  ('s -> B0_PLUS LPAREN b_plus COMMA LPAREN cs_plus RPAREN RPAREN','s',8,'p_expr_b0_plus','yacc.py',13),
  ('s -> B0_MINUS LPAREN b_minus COMMA LPAREN cs_minus RPAREN RPAREN','s',8,'p_expr_b0_minus','yacc.py',17),
  ('as -> NIL','as',1,'p_expr_as_nil','yacc.py',21),
  ('as -> CONS LPAREN a COMMA as RPAREN','as',6,'p_expr_as_cons','yacc.py',25),
  ('a -> A_PLUS LPAREN b_plus RPAREN','a',4,'p_expr_a_plus','yacc.py',29),
  ('a -> A_MINUS LPAREN b_minus RPAREN','a',4,'p_expr_a_minus','yacc.py',33),
  ('a -> A2 LPAREN cs_plus COMMA cs_minus RPAREN','a',6,'p_expr_a2','yacc.py',37),
  ('b_plus -> LEAF','b_plus',1,'p_expr_b_plus_leaf','yacc.py',41),
  ('b_plus -> B_PLUS_PLUS LPAREN b_plus COMMA b_plus RPAREN','b_plus',6,'p_expr_b_plus_plus','yacc.py',45),
  ('b_plus -> B_PLUS_MINUS LPAREN b_plus COMMA b_minus RPAREN','b_plus',6,'p_expr_b_plus_minus','yacc.py',49),
  ('b_plus -> BETA_PLUS LPAREN cs_plus RPAREN','b_plus',4,'p_expr_be_plus','yacc.py',53),
  ('b_minus -> LEAF','b_minus',1,'p_expr_b_minus_leaf','yacc.py',57),
  ('b_minus -> B_MINUS_MINUS LPAREN b_minus COMMA b_minus RPAREN','b_minus',6,'p_expr_b_minus_minus','yacc.py',61),
  ('b_minus -> B_MINUS_PLUS LPAREN b_minus COMMA b_plus RPAREN','b_minus',6,'p_expr_b_minus_plus','yacc.py',65),
  ('b_minus -> BETA_MINUS LPAREN cs_minus RPAREN','b_minus',4,'p_expr_be_minus','yacc.py',69),
  ('c_plus -> C_PLUS LPAREN b_plus COMMA cs_minus RPAREN','c_plus',6,'p_expr_c_plus','yacc.py',73),
  ('c_minus -> C_MINUS LPAREN b_minus COMMA cs_plus RPAREN','c_minus',6,'p_expr_c_minus','yacc.py',77),
  ('cs_plus -> NIL','cs_plus',1,'p_expr_cs_plus_nil','yacc.py',81),
  ('cs_plus -> CONS LPAREN c_plus COMMA cs_plus RPAREN','cs_plus',6,'p_expr_cs_plus_cons','yacc.py',85),
  ('cs_minus -> NIL','cs_minus',1,'p_expr_cs_minus_nil','yacc.py',89),
  ('cs_minus -> CONS LPAREN c_minus COMMA cs_minus RPAREN','cs_minus',6,'p_expr_cs_minus_cons','yacc.py',93),
]
