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

_lr_method = 'LALR'

_lr_signature = 'leftSEPARATORCARET CLOSED COLON COMMA COMMENT EXTRA IMPORTSTRING LSQUAREBRACKET NEWLINE NODEKIND NODENAME NUMBER PERIOD PLUS QUESTIONMARK RSQUAREBRACKET SEPARATOR SPACE STAR STRING TYPESTRING\n       statements : SPACE\n             | NEWLINE\n             | statement\n             | statement statements\n             | prefixes statement statements\n             | imports prefixes statement statements\n       statement : shapeconstraint\n             | shapeconstraint SEPARATOR comment\n             | nodeproperty propertyvalue \n             | nodeproperty propertyvalue SEPARATOR comment\n             | nodeproperty delimseparatedlist\n             | nodeproperty delimseparatedlist SEPARATOR comment\n             | nodeproperty propertyvalue SEPARATOR cardinality\n             | nodeproperty propertyvalue SEPARATOR cardinality SEPARATOR comment\n             | nodeproperty LSQUAREBRACKET value RSQUAREBRACKET\n             | nodeproperty LSQUAREBRACKET value RSQUAREBRACKET SEPARATOR comment\n             | nodeproperty LSQUAREBRACKET delimseparatedlist RSQUAREBRACKET\n             | nodeproperty LSQUAREBRACKET delimseparatedlist RSQUAREBRACKET SEPARATOR comment\n             shapeconstraint : node SEPARATOR CLOSED\n                       | node SEPARATOR PLUS PLUS SEPARATOR value\n                       | node SEPARATOR EXTRA SEPARATOR valuenodeproperty : node SEPARATOR prop SEPARATORprefixes : prefix\n                     | prefix prefixesimports : import\n                     | import importsprefix : STRING SEPARATOR STRINGimport : IMPORTSTRINGpropertyvalue : value\n                     | node\n                     | type\n                     | specialtermnode : NODENAME\n                 | NODENAME COLON STRING \n    specialterm : PERIOD\n                   | NODEKIND\n    cardinality : PLUS\n                | STAR\n                | QUESTIONMARK\n                | NUMBER\n                | NUMBER COMMA\n                | NUMBER COMMA NUMBER\n    type : TYPESTRING\n            | TYPESTRING COLON STRINGvalue : STRINGcomment : COMMENTprop : value\n            | CARET valuecommaseparatedvaluelist : value COMMA value\n                | value COMMA commaseparatedvaluelistcommaseparatedtypelist : type COMMA type\n                | type COMMA commaseparatedtypelistdelimseparatedlist : commaseparatedtypelist\n                | commaseparatedvaluelist'
    
_lr_action_items = {'SPACE':([0,4,7,14,16,19,20,22,23,24,25,26,27,28,29,30,31,38,39,40,49,56,58,59,60,61,62,63,64,65,66,67,68,69,70,71,77,81,82,83,84,85,86,],[2,2,-7,-33,2,-9,-11,-29,-30,-31,-32,-53,-54,-45,-43,-35,-36,2,-8,-46,-19,-34,-10,-13,-37,-38,-39,-40,-12,-15,-17,-49,-50,-51,-52,-44,-41,-21,-14,-42,-16,-18,-20,]),'NEWLINE':([0,4,7,14,16,19,20,22,23,24,25,26,27,28,29,30,31,38,39,40,49,56,58,59,60,61,62,63,64,65,66,67,68,69,70,71,77,81,82,83,84,85,86,],[3,3,-7,-33,3,-9,-11,-29,-30,-31,-32,-53,-54,-45,-43,-35,-36,3,-8,-46,-19,-34,-10,-13,-37,-38,-39,-40,-12,-15,-17,-49,-50,-51,-52,-44,-41,-21,-14,-42,-16,-18,-20,]),'STRING':([0,4,6,7,8,9,10,13,14,16,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,38,39,40,46,48,49,54,55,56,58,59,60,61,62,63,64,65,66,67,68,69,70,71,73,74,77,80,81,82,83,84,85,86,],[12,12,12,-7,28,12,-25,-28,-33,12,-9,-11,28,-29,-30,-31,-32,-53,-54,-45,-43,-35,-36,-26,28,55,56,12,-8,-46,28,71,-19,28,-27,-34,-10,-13,-37,-38,-39,-40,-12,-15,-17,-49,-50,-51,-52,-44,28,-22,-41,28,-21,-14,-42,-16,-18,-20,]),'IMPORTSTRING':([0,4,7,10,13,14,16,19,20,22,23,24,25,26,27,28,29,30,31,38,39,40,49,56,58,59,60,61,62,63,64,65,66,67,68,69,70,71,77,81,82,83,84,85,86,],[13,13,-7,13,-28,-33,13,-9,-11,-29,-30,-31,-32,-53,-54,-45,-43,-35,-36,13,-8,-46,-19,-34,-10,-13,-37,-38,-39,-40,-12,-15,-17,-49,-50,-51,-52,-44,-41,-21,-14,-42,-16,-18,-20,]),'NODENAME':([0,4,5,7,8,9,14,16,17,19,20,22,23,24,25,26,27,28,29,30,31,32,38,39,40,49,55,56,58,59,60,61,62,63,64,65,66,67,68,69,70,71,74,77,81,82,83,84,85,86,],[14,14,14,-7,14,-23,-33,14,14,-9,-11,-29,-30,-31,-32,-53,-54,-45,-43,-35,-36,-24,14,-8,-46,-19,-27,-34,-10,-13,-37,-38,-39,-40,-12,-15,-17,-49,-50,-51,-52,-44,-22,-41,-21,-14,-42,-16,-18,-20,]),'$end':([1,2,3,4,7,14,15,19,20,22,23,24,25,26,27,28,29,30,31,37,39,40,49,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,77,81,82,83,84,85,86,],[0,-1,-2,-3,-7,-33,-4,-9,-11,-29,-30,-31,-32,-53,-54,-45,-43,-35,-36,-5,-8,-46,-19,-34,-6,-10,-13,-37,-38,-39,-40,-12,-15,-17,-49,-50,-51,-52,-44,-41,-21,-14,-42,-16,-18,-20,]),'SEPARATOR':([7,11,12,14,19,20,22,23,24,25,26,27,28,29,30,31,49,51,52,53,56,59,60,61,62,63,65,66,67,68,69,70,71,72,75,77,81,83,86,],[18,34,35,-33,41,42,-29,-30,-31,-32,-53,-54,-45,-43,-35,-36,-19,-47,73,74,-34,76,-37,-38,-39,-40,78,79,-49,-50,-51,-52,-44,80,-48,-41,-21,-42,-20,]),'LSQUAREBRACKET':([8,74,],[21,-22,]),'TYPESTRING':([8,21,47,74,],[29,29,29,-22,]),'PERIOD':([8,74,],[30,-22,]),'NODEKIND':([8,74,],[31,-22,]),'COLON':([14,29,],[36,48,]),'COMMENT':([18,41,42,76,78,79,],[40,40,40,40,40,40,]),'COMMA':([22,24,28,29,43,45,63,67,69,71,],[46,47,-45,-43,46,47,77,46,47,-44,]),'RSQUAREBRACKET':([26,27,28,29,43,44,67,68,69,70,71,],[-53,-54,-45,-43,65,66,-49,-50,-51,-52,-44,]),'CLOSED':([34,],[49,]),'PLUS':([34,41,50,],[50,60,72,]),'EXTRA':([34,],[52,]),'CARET':([34,],[54,]),'STAR':([41,],[61,]),'QUESTIONMARK':([41,],[62,]),'NUMBER':([41,77,],[63,83,]),}

_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 = {'statements':([0,4,16,38,],[1,15,37,57,]),'statement':([0,4,5,16,17,38,],[4,4,16,4,38,4,]),'prefixes':([0,4,6,9,16,38,],[5,5,17,32,5,5,]),'imports':([0,4,10,16,38,],[6,6,33,6,6,]),'shapeconstraint':([0,4,5,16,17,38,],[7,7,7,7,7,7,]),'nodeproperty':([0,4,5,16,17,38,],[8,8,8,8,8,8,]),'prefix':([0,4,6,9,16,38,],[9,9,9,9,9,9,]),'import':([0,4,10,16,38,],[10,10,10,10,10,]),'node':([0,4,5,8,16,17,38,],[11,11,11,23,11,11,11,]),'propertyvalue':([8,],[19,]),'delimseparatedlist':([8,21,],[20,44,]),'value':([8,21,34,46,54,73,80,],[22,43,51,67,75,81,86,]),'type':([8,21,47,],[24,45,69,]),'specialterm':([8,],[25,]),'commaseparatedtypelist':([8,21,47,],[26,26,70,]),'commaseparatedvaluelist':([8,21,46,],[27,27,68,]),'comment':([18,41,42,76,78,79,],[39,58,64,82,84,85,]),'prop':([34,],[53,]),'cardinality':([41,],[59,]),}

_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' -> statements","S'",1,None,None,None),
  ('statements -> SPACE','statements',1,'p_statements','shexstatementsparser.py',161),
  ('statements -> NEWLINE','statements',1,'p_statements','shexstatementsparser.py',162),
  ('statements -> statement','statements',1,'p_statements','shexstatementsparser.py',163),
  ('statements -> statement statements','statements',2,'p_statements','shexstatementsparser.py',164),
  ('statements -> prefixes statement statements','statements',3,'p_statements','shexstatementsparser.py',165),
  ('statements -> imports prefixes statement statements','statements',4,'p_statements','shexstatementsparser.py',166),
  ('statement -> shapeconstraint','statement',1,'p_statement','shexstatementsparser.py',182),
  ('statement -> shapeconstraint SEPARATOR comment','statement',3,'p_statement','shexstatementsparser.py',183),
  ('statement -> nodeproperty propertyvalue','statement',2,'p_statement','shexstatementsparser.py',184),
  ('statement -> nodeproperty propertyvalue SEPARATOR comment','statement',4,'p_statement','shexstatementsparser.py',185),
  ('statement -> nodeproperty delimseparatedlist','statement',2,'p_statement','shexstatementsparser.py',186),
  ('statement -> nodeproperty delimseparatedlist SEPARATOR comment','statement',4,'p_statement','shexstatementsparser.py',187),
  ('statement -> nodeproperty propertyvalue SEPARATOR cardinality','statement',4,'p_statement','shexstatementsparser.py',188),
  ('statement -> nodeproperty propertyvalue SEPARATOR cardinality SEPARATOR comment','statement',6,'p_statement','shexstatementsparser.py',189),
  ('statement -> nodeproperty LSQUAREBRACKET value RSQUAREBRACKET','statement',4,'p_statement','shexstatementsparser.py',190),
  ('statement -> nodeproperty LSQUAREBRACKET value RSQUAREBRACKET SEPARATOR comment','statement',6,'p_statement','shexstatementsparser.py',191),
  ('statement -> nodeproperty LSQUAREBRACKET delimseparatedlist RSQUAREBRACKET','statement',4,'p_statement','shexstatementsparser.py',192),
  ('statement -> nodeproperty LSQUAREBRACKET delimseparatedlist RSQUAREBRACKET SEPARATOR comment','statement',6,'p_statement','shexstatementsparser.py',193),
  ('shapeconstraint -> node SEPARATOR CLOSED','shapeconstraint',3,'p_shapeconstraint','shexstatementsparser.py',207),
  ('shapeconstraint -> node SEPARATOR PLUS PLUS SEPARATOR value','shapeconstraint',6,'p_shapeconstraint','shexstatementsparser.py',208),
  ('shapeconstraint -> node SEPARATOR EXTRA SEPARATOR value','shapeconstraint',5,'p_shapeconstraint','shexstatementsparser.py',209),
  ('nodeproperty -> node SEPARATOR prop SEPARATOR','nodeproperty',4,'p_nodeproperty','shexstatementsparser.py',219),
  ('prefixes -> prefix','prefixes',1,'p_prefixes','shexstatementsparser.py',224),
  ('prefixes -> prefix prefixes','prefixes',2,'p_prefixes','shexstatementsparser.py',225),
  ('imports -> import','imports',1,'p_imports','shexstatementsparser.py',230),
  ('imports -> import imports','imports',2,'p_imports','shexstatementsparser.py',231),
  ('prefix -> STRING SEPARATOR STRING','prefix',3,'p_prefix','shexstatementsparser.py',236),
  ('import -> IMPORTSTRING','import',1,'p_import','shexstatementsparser.py',242),
  ('propertyvalue -> value','propertyvalue',1,'p_propertyvalue','shexstatementsparser.py',248),
  ('propertyvalue -> node','propertyvalue',1,'p_propertyvalue','shexstatementsparser.py',249),
  ('propertyvalue -> type','propertyvalue',1,'p_propertyvalue','shexstatementsparser.py',250),
  ('propertyvalue -> specialterm','propertyvalue',1,'p_propertyvalue','shexstatementsparser.py',251),
  ('node -> NODENAME','node',1,'p_node','shexstatementsparser.py',256),
  ('node -> NODENAME COLON STRING','node',3,'p_node','shexstatementsparser.py',257),
  ('specialterm -> PERIOD','specialterm',1,'p_specialterm','shexstatementsparser.py',273),
  ('specialterm -> NODEKIND','specialterm',1,'p_specialterm','shexstatementsparser.py',274),
  ('cardinality -> PLUS','cardinality',1,'p_cardinality','shexstatementsparser.py',281),
  ('cardinality -> STAR','cardinality',1,'p_cardinality','shexstatementsparser.py',282),
  ('cardinality -> QUESTIONMARK','cardinality',1,'p_cardinality','shexstatementsparser.py',283),
  ('cardinality -> NUMBER','cardinality',1,'p_cardinality','shexstatementsparser.py',284),
  ('cardinality -> NUMBER COMMA','cardinality',2,'p_cardinality','shexstatementsparser.py',285),
  ('cardinality -> NUMBER COMMA NUMBER','cardinality',3,'p_cardinality','shexstatementsparser.py',286),
  ('type -> TYPESTRING','type',1,'p_type','shexstatementsparser.py',298),
  ('type -> TYPESTRING COLON STRING','type',3,'p_type','shexstatementsparser.py',299),
  ('value -> STRING','value',1,'p_value','shexstatementsparser.py',310),
  ('comment -> COMMENT','comment',1,'p_comment','shexstatementsparser.py',322),
  ('prop -> value','prop',1,'p_prop','shexstatementsparser.py',328),
  ('prop -> CARET value','prop',2,'p_prop','shexstatementsparser.py',329),
  ('commaseparatedvaluelist -> value COMMA value','commaseparatedvaluelist',3,'p_commaseparatedvaluelist','shexstatementsparser.py',340),
  ('commaseparatedvaluelist -> value COMMA commaseparatedvaluelist','commaseparatedvaluelist',3,'p_commaseparatedvaluelist','shexstatementsparser.py',341),
  ('commaseparatedtypelist -> type COMMA type','commaseparatedtypelist',3,'p_commaseparatedtypelist','shexstatementsparser.py',346),
  ('commaseparatedtypelist -> type COMMA commaseparatedtypelist','commaseparatedtypelist',3,'p_commaseparatedtypelist','shexstatementsparser.py',347),
  ('delimseparatedlist -> commaseparatedtypelist','delimseparatedlist',1,'p_delimseparatedlist','shexstatementsparser.py',352),
  ('delimseparatedlist -> commaseparatedvaluelist','delimseparatedlist',1,'p_delimseparatedlist','shexstatementsparser.py',353),
]
