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

_lr_method = 'LALR'

_lr_signature = 'sqlALTER CREATE DELETE DROP FROM_TABLE GROUP_BY INSERT JOIN LIMIT OFFSET ON_CONFLICT ORDER_BY RAW RETURNING RRULE SCHEMA SELECT START_ALTER START_CREATE START_DELETE START_DROP START_INSERT START_RAW START_SELECT START_UPDATE TABLE UPDATE WHEREalter_stmt : SCHEMAcreate_stmt : SCHEMAdelete_stmt : TABLEdrop_stmt : SCHEMAinsert_stmt : TABLEraw_stmt : RAWselect_stmt : WHEREupdate_stmt : TABLEalter_stmt : ALTERcreate_stmt : CREATEdelete_stmt : DELETEdrop_stmt : DROPinsert_stmt : INSERTraw_stmt : RRULEselect_stmt : ORDER_BYupdate_stmt : UPDATEalter_stmts : alter_stmt alter_stmts\n                          | alter_stmtcreate_stmt : WHEREdelete_stmt : WHEREdrop_stmts : drop_stmt drop_stmts\n                         | drop_stmtinsert_stmt : RETURNINGraw_stmts : raw_stmt\n                        | raw_stmt raw_stmtsselect_stmt : GROUP_BYupdate_stmt : FROM_TABLEsql : START_SELECT select_stmts\n                  | START_UPDATE update_stmts\n                  | START_INSERT insert_stmts\n                  | START_DELETE delete_stmts\n                  | START_CREATE create_stmts\n                  | START_DROP drop_stmts\n                  | START_ALTER alter_stmts\n                  | START_RAW raw_stmtscreate_stmts : create_stmt create_stmts\n                           | create_stmtdelete_stmt : RETURNINGinsert_stmt : ON_CONFLICTselect_stmt : JOINupdate_stmt : JOINdelete_stmts : delete_stmt delete_stmts\n                           | delete_stmtinsert_stmts : insert_stmt insert_stmts\n                           | insert_stmtselect_stmt : LIMITupdate_stmt : WHEREselect_stmt : OFFSETupdate_stmt : RRULEselect_stmt : SELECTupdate_stmt : RETURNINGselect_stmt : TABLEupdate_stmts : update_stmt update_stmts\n                           | update_stmtselect_stmt : RRULEselect_stmts : select_stmt\n                           | select_stmt select_stmts'
    
_lr_action_items = {'START_SELECT':([0,],[2,]),'START_UPDATE':([0,],[3,]),'START_INSERT':([0,],[4,]),'START_DELETE':([0,],[5,]),'START_CREATE':([0,],[6,]),'START_DROP':([0,],[7,]),'START_ALTER':([0,],[8,]),'START_RAW':([0,],[9,]),'$end':([1,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,],[0,-28,-56,-7,-15,-26,-40,-46,-48,-50,-52,-55,-29,-54,-8,-16,-27,-41,-47,-49,-51,-30,-45,-5,-13,-23,-39,-31,-43,-3,-11,-20,-38,-32,-37,-2,-10,-19,-33,-22,-4,-12,-34,-18,-1,-9,-35,-24,-6,-14,-57,-53,-44,-42,-36,-21,-17,-25,]),'WHERE':([2,3,5,6,11,12,13,14,15,16,17,18,19,20,22,23,24,25,26,27,28,29,37,38,39,40,41,43,44,45,46,],[12,27,40,46,12,-7,-15,-26,-40,-46,-48,-50,-52,-55,27,-8,-16,-27,-41,-47,-49,-51,40,-3,-11,-20,-38,46,-2,-10,-19,]),'ORDER_BY':([2,11,12,13,14,15,16,17,18,19,20,],[13,13,-7,-15,-26,-40,-46,-48,-50,-52,-55,]),'GROUP_BY':([2,11,12,13,14,15,16,17,18,19,20,],[14,14,-7,-15,-26,-40,-46,-48,-50,-52,-55,]),'JOIN':([2,3,11,12,13,14,15,16,17,18,19,20,22,23,24,25,26,27,28,29,],[15,26,15,-7,-15,-26,-40,-46,-48,-50,-52,-55,26,-8,-16,-27,-41,-47,-49,-51,]),'LIMIT':([2,11,12,13,14,15,16,17,18,19,20,],[16,16,-7,-15,-26,-40,-46,-48,-50,-52,-55,]),'OFFSET':([2,11,12,13,14,15,16,17,18,19,20,],[17,17,-7,-15,-26,-40,-46,-48,-50,-52,-55,]),'SELECT':([2,11,12,13,14,15,16,17,18,19,20,],[18,18,-7,-15,-26,-40,-46,-48,-50,-52,-55,]),'TABLE':([2,3,4,5,11,12,13,14,15,16,17,18,19,20,22,23,24,25,26,27,28,29,31,32,33,34,35,37,38,39,40,41,],[19,23,32,38,19,-7,-15,-26,-40,-46,-48,-50,-52,-55,23,-8,-16,-27,-41,-47,-49,-51,32,-5,-13,-23,-39,38,-3,-11,-20,-38,]),'RRULE':([2,3,9,11,12,13,14,15,16,17,18,19,20,22,23,24,25,26,27,28,29,56,57,58,],[20,28,58,20,-7,-15,-26,-40,-46,-48,-50,-52,-55,28,-8,-16,-27,-41,-47,-49,-51,58,-6,-14,]),'UPDATE':([3,22,23,24,25,26,27,28,29,],[24,24,-8,-16,-27,-41,-47,-49,-51,]),'FROM_TABLE':([3,22,23,24,25,26,27,28,29,],[25,25,-8,-16,-27,-41,-47,-49,-51,]),'RETURNING':([3,4,5,22,23,24,25,26,27,28,29,31,32,33,34,35,37,38,39,40,41,],[29,34,41,29,-8,-16,-27,-41,-47,-49,-51,34,-5,-13,-23,-39,41,-3,-11,-20,-38,]),'INSERT':([4,31,32,33,34,35,],[33,33,-5,-13,-23,-39,]),'ON_CONFLICT':([4,31,32,33,34,35,],[35,35,-5,-13,-23,-39,]),'DELETE':([5,37,38,39,40,41,],[39,39,-3,-11,-20,-38,]),'SCHEMA':([6,7,8,43,44,45,46,48,49,50,52,53,54,],[44,49,53,44,-2,-10,-19,49,-4,-12,53,-1,-9,]),'CREATE':([6,43,44,45,46,],[45,45,-2,-10,-19,]),'DROP':([7,48,49,50,],[50,50,-4,-12,]),'ALTER':([8,52,53,54,],[54,54,-1,-9,]),'RAW':([9,56,57,58,],[57,57,-6,-14,]),}

_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 = {'sql':([0,],[1,]),'select_stmts':([2,11,],[10,59,]),'select_stmt':([2,11,],[11,11,]),'update_stmts':([3,22,],[21,60,]),'update_stmt':([3,22,],[22,22,]),'insert_stmts':([4,31,],[30,61,]),'insert_stmt':([4,31,],[31,31,]),'delete_stmts':([5,37,],[36,62,]),'delete_stmt':([5,37,],[37,37,]),'create_stmts':([6,43,],[42,63,]),'create_stmt':([6,43,],[43,43,]),'drop_stmts':([7,48,],[47,64,]),'drop_stmt':([7,48,],[48,48,]),'alter_stmts':([8,52,],[51,65,]),'alter_stmt':([8,52,],[52,52,]),'raw_stmts':([9,56,],[55,66,]),'raw_stmt':([9,56,],[56,56,]),}

_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' -> sql","S'",1,None,None,None),
  ('alter_stmt -> SCHEMA','alter_stmt',1,'p_alter_schema','alter_stmt.py',6),
  ('create_stmt -> SCHEMA','create_stmt',1,'p_create_schema','create_stmt.py',6),
  ('delete_stmt -> TABLE','delete_stmt',1,'p_delete_table','delete_stmt.py',6),
  ('drop_stmt -> SCHEMA','drop_stmt',1,'p_drop_schema','drop_stmt.py',6),
  ('insert_stmt -> TABLE','insert_stmt',1,'p_insert_table','insert_stmt.py',6),
  ('raw_stmt -> RAW','raw_stmt',1,'p_raw_raw','raw_stmt.py',6),
  ('select_stmt -> WHERE','select_stmt',1,'p_select_where','select_stmt.py',6),
  ('update_stmt -> TABLE','update_stmt',1,'p_update_table','update_stmt.py',6),
  ('alter_stmt -> ALTER','alter_stmt',1,'p_alter_alter','alter_stmt.py',10),
  ('create_stmt -> CREATE','create_stmt',1,'p_create_create','create_stmt.py',10),
  ('delete_stmt -> DELETE','delete_stmt',1,'p_delete_delete','delete_stmt.py',10),
  ('drop_stmt -> DROP','drop_stmt',1,'p_drop_drop','drop_stmt.py',10),
  ('insert_stmt -> INSERT','insert_stmt',1,'p_insert_insert','insert_stmt.py',10),
  ('raw_stmt -> RRULE','raw_stmt',1,'p_raw_rrule','raw_stmt.py',10),
  ('select_stmt -> ORDER_BY','select_stmt',1,'p_select_order_by','select_stmt.py',10),
  ('update_stmt -> UPDATE','update_stmt',1,'p_update_update','update_stmt.py',10),
  ('alter_stmts -> alter_stmt alter_stmts','alter_stmts',2,'p_alter_stmts','alter_stmt.py',14),
  ('alter_stmts -> alter_stmt','alter_stmts',1,'p_alter_stmts','alter_stmt.py',15),
  ('create_stmt -> WHERE','create_stmt',1,'p_create_where','create_stmt.py',14),
  ('delete_stmt -> WHERE','delete_stmt',1,'p_delete_where','delete_stmt.py',14),
  ('drop_stmts -> drop_stmt drop_stmts','drop_stmts',2,'p_drop_stmts','drop_stmt.py',14),
  ('drop_stmts -> drop_stmt','drop_stmts',1,'p_drop_stmts','drop_stmt.py',15),
  ('insert_stmt -> RETURNING','insert_stmt',1,'p_insert_returning','insert_stmt.py',14),
  ('raw_stmts -> raw_stmt','raw_stmts',1,'p_raw_stmts','raw_stmt.py',14),
  ('raw_stmts -> raw_stmt raw_stmts','raw_stmts',2,'p_raw_stmts','raw_stmt.py',15),
  ('select_stmt -> GROUP_BY','select_stmt',1,'p_select_group_by','select_stmt.py',14),
  ('update_stmt -> FROM_TABLE','update_stmt',1,'p_update_from','update_stmt.py',14),
  ('sql -> START_SELECT select_stmts','sql',2,'p_sql','_base.py',15),
  ('sql -> START_UPDATE update_stmts','sql',2,'p_sql','_base.py',16),
  ('sql -> START_INSERT insert_stmts','sql',2,'p_sql','_base.py',17),
  ('sql -> START_DELETE delete_stmts','sql',2,'p_sql','_base.py',18),
  ('sql -> START_CREATE create_stmts','sql',2,'p_sql','_base.py',19),
  ('sql -> START_DROP drop_stmts','sql',2,'p_sql','_base.py',20),
  ('sql -> START_ALTER alter_stmts','sql',2,'p_sql','_base.py',21),
  ('sql -> START_RAW raw_stmts','sql',2,'p_sql','_base.py',22),
  ('create_stmts -> create_stmt create_stmts','create_stmts',2,'p_create_stmts','create_stmt.py',18),
  ('create_stmts -> create_stmt','create_stmts',1,'p_create_stmts','create_stmt.py',19),
  ('delete_stmt -> RETURNING','delete_stmt',1,'p_delete_returning','delete_stmt.py',18),
  ('insert_stmt -> ON_CONFLICT','insert_stmt',1,'p_insert_on_conflict','insert_stmt.py',18),
  ('select_stmt -> JOIN','select_stmt',1,'p_select_join','select_stmt.py',18),
  ('update_stmt -> JOIN','update_stmt',1,'p_update_join','update_stmt.py',18),
  ('delete_stmts -> delete_stmt delete_stmts','delete_stmts',2,'p_delete_stmts','delete_stmt.py',22),
  ('delete_stmts -> delete_stmt','delete_stmts',1,'p_delete_stmts','delete_stmt.py',23),
  ('insert_stmts -> insert_stmt insert_stmts','insert_stmts',2,'p_insert_stmts','insert_stmt.py',22),
  ('insert_stmts -> insert_stmt','insert_stmts',1,'p_insert_stmts','insert_stmt.py',23),
  ('select_stmt -> LIMIT','select_stmt',1,'p_select_limit','select_stmt.py',22),
  ('update_stmt -> WHERE','update_stmt',1,'p_update_where','update_stmt.py',22),
  ('select_stmt -> OFFSET','select_stmt',1,'p_select_offset','select_stmt.py',26),
  ('update_stmt -> RRULE','update_stmt',1,'p_update_rrule','update_stmt.py',26),
  ('select_stmt -> SELECT','select_stmt',1,'p_select_select','select_stmt.py',30),
  ('update_stmt -> RETURNING','update_stmt',1,'p_update_returning','update_stmt.py',30),
  ('select_stmt -> TABLE','select_stmt',1,'p_select_table','select_stmt.py',34),
  ('update_stmts -> update_stmt update_stmts','update_stmts',2,'p_update_stmts','update_stmt.py',34),
  ('update_stmts -> update_stmt','update_stmts',1,'p_update_stmts','update_stmt.py',35),
  ('select_stmt -> RRULE','select_stmt',1,'p_select_rrule','select_stmt.py',38),
  ('select_stmts -> select_stmt','select_stmts',1,'p_select_stmts','select_stmt.py',42),
  ('select_stmts -> select_stmt select_stmts','select_stmts',2,'p_select_stmts','select_stmt.py',43),
]
