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

_lr_method = 'LALR'

_lr_signature = 'AND COALITION_DEMONIC EVENTUALLY FALSE GLOBALLY IMPLIES LPAREN NEXT NOT OR PROP RELEASE RPAREN TRUE UNTIL WEAKexpression : expression AND expression\n                  | expression OR expression\n                  | expression IMPLIES expressionexpression : COALITION_DEMONIC expression UNTIL expression\n                  | COALITION_DEMONIC expression WEAK expression\n                  | COALITION_DEMONIC expression RELEASE expressionexpression : COALITION_DEMONIC GLOBALLY expression\n                  | COALITION_DEMONIC NEXT expression\n                  | COALITION_DEMONIC EVENTUALLY expressionexpression : NOT expressionexpression : LPAREN expression RPARENexpression : FALSE \n                  | TRUEexpression : PROP'
    
_lr_action_items = {'COALITION_DEMONIC':([0,2,3,4,8,9,10,12,13,14,20,21,22,],[2,2,2,2,2,2,2,2,2,2,2,2,2,]),'NOT':([0,2,3,4,8,9,10,12,13,14,20,21,22,],[3,3,3,3,3,3,3,3,3,3,3,3,3,]),'LPAREN':([0,2,3,4,8,9,10,12,13,14,20,21,22,],[4,4,4,4,4,4,4,4,4,4,4,4,4,]),'FALSE':([0,2,3,4,8,9,10,12,13,14,20,21,22,],[5,5,5,5,5,5,5,5,5,5,5,5,5,]),'TRUE':([0,2,3,4,8,9,10,12,13,14,20,21,22,],[6,6,6,6,6,6,6,6,6,6,6,6,6,]),'PROP':([0,2,3,4,8,9,10,12,13,14,20,21,22,],[7,7,7,7,7,7,7,7,7,7,7,7,7,]),'$end':([1,5,6,7,15,17,18,19,23,24,25,26,27,28,29,],[0,-12,-13,-14,-10,-1,-2,-3,-7,-8,-9,-11,-4,-5,-6,]),'AND':([1,5,6,7,11,15,16,17,18,19,23,24,25,26,27,28,29,],[8,-12,-13,-14,8,8,8,8,8,8,8,8,8,-11,8,8,8,]),'OR':([1,5,6,7,11,15,16,17,18,19,23,24,25,26,27,28,29,],[9,-12,-13,-14,9,9,9,9,9,9,9,9,9,-11,9,9,9,]),'IMPLIES':([1,5,6,7,11,15,16,17,18,19,23,24,25,26,27,28,29,],[10,-12,-13,-14,10,10,10,10,10,10,10,10,10,-11,10,10,10,]),'GLOBALLY':([2,],[12,]),'NEXT':([2,],[13,]),'EVENTUALLY':([2,],[14,]),'UNTIL':([5,6,7,11,15,17,18,19,23,24,25,26,27,28,29,],[-12,-13,-14,20,-10,-1,-2,-3,-7,-8,-9,-11,-4,-5,-6,]),'WEAK':([5,6,7,11,15,17,18,19,23,24,25,26,27,28,29,],[-12,-13,-14,21,-10,-1,-2,-3,-7,-8,-9,-11,-4,-5,-6,]),'RELEASE':([5,6,7,11,15,17,18,19,23,24,25,26,27,28,29,],[-12,-13,-14,22,-10,-1,-2,-3,-7,-8,-9,-11,-4,-5,-6,]),'RPAREN':([5,6,7,15,16,17,18,19,23,24,25,26,27,28,29,],[-12,-13,-14,-10,26,-1,-2,-3,-7,-8,-9,-11,-4,-5,-6,]),}

_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 = {'expression':([0,2,3,4,8,9,10,12,13,14,20,21,22,],[1,11,15,16,17,18,19,23,24,25,27,28,29,]),}

_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","S'",1,None,None,None),
  ('expression -> expression AND expression','expression',3,'p_expression_binary','parser.py',55),
  ('expression -> expression OR expression','expression',3,'p_expression_binary','parser.py',56),
  ('expression -> expression IMPLIES expression','expression',3,'p_expression_binary','parser.py',57),
  ('expression -> COALITION_DEMONIC expression UNTIL expression','expression',4,'p_expression_ternary','parser.py',66),
  ('expression -> COALITION_DEMONIC expression WEAK expression','expression',4,'p_expression_ternary','parser.py',67),
  ('expression -> COALITION_DEMONIC expression RELEASE expression','expression',4,'p_expression_ternary','parser.py',68),
  ('expression -> COALITION_DEMONIC GLOBALLY expression','expression',3,'p_expression_unary','parser.py',73),
  ('expression -> COALITION_DEMONIC NEXT expression','expression',3,'p_expression_unary','parser.py',74),
  ('expression -> COALITION_DEMONIC EVENTUALLY expression','expression',3,'p_expression_unary','parser.py',75),
  ('expression -> NOT expression','expression',2,'p_expression_not','parser.py',80),
  ('expression -> LPAREN expression RPAREN','expression',3,'p_expression_group','parser.py',85),
  ('expression -> FALSE','expression',1,'p_expression_boolean','parser.py',89),
  ('expression -> TRUE','expression',1,'p_expression_boolean','parser.py',90),
  ('expression -> PROP','expression',1,'p_expression_prop','parser.py',94),
]
