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

_lr_method = 'LALR'

_lr_signature = 'rightNOTleftANDleftORAND COLON COMPARATOR COMP_OP FIELD LPAREN NOT OR QUOTED_STRING RPAREN TERM URL_FIELD WILDCARD\n        query : expression\n        \n        expression : expression AND expression\n                    | expression OR expression\n        \n        expression : NOT expression\n        \n        expression : LPAREN expression RPAREN\n        \n        expression : URL_FIELD\n        \n        expression : FIELD COLON COMP_OP value\n                    | FIELD COLON value\n        \n        value : TERM\n              | WILDCARD\n              | QUOTED_STRING\n        \n        expression : value\n        \n        expression : FIELD COMPARATOR value\n        '
    
_lr_action_items = {'NOT':([0,3,4,11,12,],[3,3,3,3,3,]),'LPAREN':([0,3,4,11,12,],[4,4,4,4,4,]),'URL_FIELD':([0,3,4,11,12,],[5,5,5,5,5,]),'FIELD':([0,3,4,11,12,],[6,6,6,6,6,]),'TERM':([0,3,4,11,12,15,16,20,],[8,8,8,8,8,8,8,8,]),'WILDCARD':([0,3,4,11,12,15,16,20,],[9,9,9,9,9,9,9,9,]),'QUOTED_STRING':([0,3,4,11,12,15,16,20,],[10,10,10,10,10,10,10,10,]),'$end':([1,2,5,7,8,9,10,13,17,18,19,21,22,23,],[0,-1,-6,-12,-9,-10,-11,-4,-2,-3,-5,-8,-13,-7,]),'AND':([2,5,7,8,9,10,13,14,17,18,19,21,22,23,],[11,-6,-12,-9,-10,-11,11,11,-2,-3,-5,-8,-13,-7,]),'OR':([2,5,7,8,9,10,13,14,17,18,19,21,22,23,],[12,-6,-12,-9,-10,-11,12,12,12,-3,-5,-8,-13,-7,]),'RPAREN':([5,7,8,9,10,13,14,17,18,19,21,22,23,],[-6,-12,-9,-10,-11,-4,19,-2,-3,-5,-8,-13,-7,]),'COLON':([6,],[15,]),'COMPARATOR':([6,],[16,]),'COMP_OP':([15,],[20,]),}

_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 = {'query':([0,],[1,]),'expression':([0,3,4,11,12,],[2,13,14,17,18,]),'value':([0,3,4,11,12,15,16,20,],[7,7,7,7,7,21,22,23,]),}

_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' -> query","S'",1,None,None,None),
  ('query -> expression','query',1,'p_query','search.py',160),
  ('expression -> expression AND expression','expression',3,'p_expression_binary','search.py',166),
  ('expression -> expression OR expression','expression',3,'p_expression_binary','search.py',167),
  ('expression -> NOT expression','expression',2,'p_expression_not','search.py',192),
  ('expression -> LPAREN expression RPAREN','expression',3,'p_expression_group','search.py',207),
  ('expression -> URL_FIELD','expression',1,'p_expression_url_field','search.py',213),
  ('expression -> FIELD COLON COMP_OP value','expression',4,'p_expression_field_spaced_comparison','search.py',233),
  ('expression -> FIELD COLON value','expression',3,'p_expression_field_spaced_comparison','search.py',234),
  ('value -> TERM','value',1,'p_value','search.py',271),
  ('value -> WILDCARD','value',1,'p_value','search.py',272),
  ('value -> QUOTED_STRING','value',1,'p_value','search.py',273),
  ('expression -> value','expression',1,'p_expression_term','search.py',287),
  ('expression -> FIELD COMPARATOR value','expression',3,'p_expression_field_comparison','search.py',300),
]
