
# /Users/nikolas/Projects/QNET/qnet/misc/parser__CircuitExpressionParser_parsetab.py
# This file is automatically generated. Do not edit.
_tabversion = '3.2'

_lr_method = 'LALR'

_lr_signature = '<[\x16I\xb8C\xbd\x89v\x08e\x98\x8d0n9'
    
_lr_action_items = {'ICONST':([17,21,25,41,44,45,49,50,],[26,31,31,31,31,31,31,31,]),'RPAREN':([5,6,7,9,10,12,13,15,20,26,28,29,30,31,32,33,34,35,36,37,38,40,42,43,47,51,52,53,54,],[-6,-8,-5,-10,-7,-9,-4,-11,29,38,40,-12,42,-25,-16,-15,-18,-17,-24,43,-13,-20,-14,-22,-23,53,54,-21,-19,]),'CID':([0,1,3,5,6,7,8,9,10,12,13,14,15,19,22,23,24,29,32,33,34,35,38,40,42,43,53,54,],[2,-2,2,-6,-8,-5,2,-10,-7,-9,-4,2,-11,2,2,2,-1,-12,-16,-15,-18,-17,-13,-20,-14,-22,-21,-19,]),'PSIGMA':([0,1,3,5,6,7,8,9,10,12,13,14,15,19,22,23,24,29,32,33,34,35,38,40,42,43,53,54,],[16,-2,16,-6,-8,-5,16,-10,-7,-9,-4,16,-11,16,16,16,-1,-12,-16,-15,-18,-17,-13,-20,-14,-22,-21,-19,]),'LBRACKET':([0,1,3,5,6,7,8,9,10,12,13,14,15,19,22,23,24,29,32,33,34,35,38,40,42,43,53,54,],[3,-2,3,-6,-8,-5,3,-10,-7,-9,-4,3,-11,3,3,3,-1,-12,-16,-15,-18,-17,-13,-20,-14,-22,-21,-19,]),'FB':([0,1,3,5,6,7,8,9,10,12,13,14,15,19,22,23,24,29,32,33,34,35,38,40,42,43,53,54,],[4,-2,4,-6,-8,-5,4,-10,-7,-9,-4,4,-11,4,4,4,-1,-12,-16,-15,-18,-17,-13,-20,-14,-22,-21,-19,]),'COMMA':([5,6,7,9,10,12,13,15,28,29,31,32,33,34,35,36,37,38,40,42,43,46,47,53,54,],[-6,-8,-5,-10,-7,-9,-4,-11,41,-12,-25,-16,-15,-18,-17,-24,44,-13,-20,-14,-22,49,-23,-21,-19,]),'LPAREN':([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,19,22,23,24,29,32,33,34,35,38,39,40,42,43,53,54,],[8,-2,17,8,19,-6,-8,-5,8,-10,-7,21,-9,-4,8,-11,25,8,8,8,-1,-12,-16,-15,-18,-17,-13,45,-20,-14,-22,-21,-19,]),'UNDER':([27,],[39,]),'PLUS':([6,9,10,12,13,15,29,33,38,40,42,43,53,54,],[-8,-10,-7,-9,22,-11,-12,22,-13,-20,-14,-22,-21,-19,]),'RBRACKET':([5,6,7,9,10,12,13,15,18,29,32,33,34,35,38,40,42,43,53,54,],[-6,-8,-5,-10,-7,-9,-4,-11,27,-12,-16,-15,-18,-17,-13,-20,-14,-22,-21,-19,]),'RARROW':([31,48,],[-25,50,]),'LSERIES':([6,9,10,12,13,15,29,35,38,40,42,43,53,54,],[-8,-10,-7,-9,23,-11,-12,23,-13,-20,-14,-22,-21,-19,]),'ID':([0,1,3,5,6,7,8,9,10,12,13,14,15,19,22,23,24,29,32,33,34,35,38,40,42,43,53,54,],[11,-2,11,-6,-8,-5,11,-10,-7,-9,-4,11,-11,11,11,11,-1,-12,-16,-15,-18,-17,-13,-20,-14,-22,-21,-19,]),'$end':([0,1,5,6,7,9,10,12,13,14,15,24,29,32,33,34,35,38,40,42,43,53,54,],[-3,-2,-6,-8,-5,-10,-7,-9,-4,0,-11,-1,-12,-16,-15,-18,-17,-13,-20,-14,-22,-21,-19,]),}

_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 = {'circuit_expression':([0,3,8,14,19,],[1,18,20,24,28,]),'closed_expression':([0,3,8,14,19,22,23,],[13,13,13,13,13,33,35,]),'circuit_concatenation':([0,3,8,14,19,22,],[7,7,7,7,7,32,]),'int':([21,25,41,44,45,49,50,],[30,36,46,47,48,51,52,]),'expression_list':([0,],[14,]),'circuit_permutation':([0,3,8,14,19,22,23,],[15,15,15,15,15,15,15,]),'circuit_series':([0,3,8,14,19,23,],[5,5,5,5,5,34,]),'circuit_feedback':([0,3,8,14,19,22,23,],[9,9,9,9,9,9,9,]),'circuit_identity':([0,3,8,14,19,22,23,],[6,6,6,6,6,6,6,]),'bracketed_circuit_expression':([0,3,8,14,19,22,23,],[10,10,10,10,10,10,10,]),'int_list':([25,],[37,]),'circuit_symbol':([0,3,8,14,19,22,23,],[12,12,12,12,12,12,12,]),}

_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' -> expression_list","S'",1,None,None,None),
  ('expression_list -> expression_list circuit_expression','expression_list',2,'p_expression_list','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',154),
  ('expression_list -> circuit_expression','expression_list',1,'p_expression_list','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',155),
  ('expression_list -> <empty>','expression_list',0,'p_expression_list','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',156),
  ('circuit_expression -> closed_expression','circuit_expression',1,'p_circuit_expression','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',168),
  ('circuit_expression -> circuit_concatenation','circuit_expression',1,'p_circuit_expression','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',169),
  ('circuit_expression -> circuit_series','circuit_expression',1,'p_circuit_expression','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',170),
  ('closed_expression -> bracketed_circuit_expression','closed_expression',1,'p_closed_expression','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',176),
  ('closed_expression -> circuit_identity','closed_expression',1,'p_closed_expression','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',177),
  ('closed_expression -> circuit_symbol','closed_expression',1,'p_closed_expression','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',178),
  ('closed_expression -> circuit_feedback','closed_expression',1,'p_closed_expression','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',179),
  ('closed_expression -> circuit_permutation','closed_expression',1,'p_closed_expression','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',180),
  ('bracketed_circuit_expression -> LPAREN circuit_expression RPAREN','bracketed_circuit_expression',3,'p_bracketed_circuit_expression','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',186),
  ('circuit_identity -> CID LPAREN ICONST RPAREN','circuit_identity',4,'p_circuit_identity','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',192),
  ('circuit_symbol -> ID LPAREN int RPAREN','circuit_symbol',4,'p_circuit_symbol','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',198),
  ('circuit_concatenation -> closed_expression PLUS closed_expression','circuit_concatenation',3,'p_circuit_concatenation_1','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',204),
  ('circuit_concatenation -> closed_expression PLUS circuit_concatenation','circuit_concatenation',3,'p_circuit_concatenation_2','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',210),
  ('circuit_series -> closed_expression LSERIES closed_expression','circuit_series',3,'p_circuit_series_1','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',217),
  ('circuit_series -> closed_expression LSERIES circuit_series','circuit_series',3,'p_circuit_series_2','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',223),
  ('circuit_feedback -> LBRACKET circuit_expression RBRACKET UNDER LPAREN int RARROW int RPAREN','circuit_feedback',9,'p_circuit_feedback_1','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',230),
  ('circuit_feedback -> FB LPAREN circuit_expression RPAREN','circuit_feedback',4,'p_circuit_feedback_2','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',237),
  ('circuit_feedback -> FB LPAREN circuit_expression COMMA int COMMA int RPAREN','circuit_feedback',8,'p_circuit_feedback_2','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',238),
  ('circuit_permutation -> PSIGMA LPAREN int_list RPAREN','circuit_permutation',4,'p_circuit_permutation','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',247),
  ('int_list -> int_list COMMA int','int_list',3,'p_int_list','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',254),
  ('int_list -> int','int_list',1,'p_int_list','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',255),
  ('int -> ICONST','int',1,'p_int','/Users/nikolas/Projects/QNET/qnet/misc/parse_circuit_strings.py',264),
]
