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

_lr_method = 'LALR'

_lr_signature = 'AND ANSIBLE COMMA CONFIGURE CONTAINS CONTEXTUALIZE DEPLOY EQ GE GT LBRACK LE LPAREN LT NETWORK NUMBER RBRACK RECIPE_BEGIN RECIPE_END RECIPE_LINE RPAREN SOFT STEP STRING SYSTEM VAR WITHradl : radl radl_sentence\n                | radl_sentenceradl_sentence : network_sentence\n                         | ansible_sentence\n                         | system_sentence\n                         | configure_sentence\n                         | contextualize_sentence\n                         | deploy_sentenceconfigure_sentence : CONFIGURE VAR\n                              | CONFIGURE VAR LPAREN RECIPE_BEGIN recipe RECIPE_END RPARENrecipe : RECIPE_LINE\n                  | RECIPE_LINE recipedeploy_sentence : DEPLOY VAR NUMBER\n                           | DEPLOY VAR NUMBER VARcontextualize_sentence : CONTEXTUALIZE LPAREN contextualize_items RPAREN\n                                  | CONTEXTUALIZE NUMBER LPAREN contextualize_items RPARENcontextualize_items : contextualize_items contextualize_item\n                               | contextualize_item\n                               | emptycontextualize_item : SYSTEM VAR CONFIGURE VAR\n                              | SYSTEM VAR CONFIGURE VAR STEP NUMBER\n                              | SYSTEM VAR CONFIGURE VAR WITH VARnetwork_sentence : NETWORK VAR\n                            | NETWORK VAR LPAREN features RPARENansible_sentence : ANSIBLE VAR LPAREN features RPARENsystem_sentence : SYSTEM VAR\n                           | SYSTEM VAR LPAREN features RPARENfeatures : features AND feature\n                    | feature\n                    | emptyfeature : feature_soft\n                   | feature_simple\n                   | feature_containsfeature_soft : SOFT NUMBER LPAREN features RPARENfeature_simple : VAR comparator NUMBER VAR\n                          | VAR comparator NUMBER\n                          | VAR comparator LBRACK string_list RBRACK\n                          | VAR comparator STRINGempty :comparator : EQ\n                      | LT\n                      | GT\n                      | GE\n                      | LEfeature_contains : VAR CONTAINS LPAREN features RPARENstring_list : string_list COMMA STRING\n                       | STRING\n                       | empty'
    
_lr_action_items = {'NETWORK':([0,3,4,5,7,8,9,13,14,15,18,21,22,30,42,46,58,59,61,64,82,],[1,1,-5,-6,-8,-4,-2,-7,-3,-23,-1,-9,-26,-13,-15,-14,-24,-16,-25,-27,-10,]),'NUMBER':([2,20,38,49,51,52,53,54,55,80,],[16,30,56,-44,67,-43,-41,-42,-40,87,]),'LBRACK':([49,51,52,53,54,55,],[-44,68,-43,-41,-42,-40,]),'STEP':([71,],[80,]),'RECIPE_END':([62,63,72,],[-11,73,-12,]),'WITH':([71,],[81,]),'CONTEXTUALIZE':([0,3,4,5,7,8,9,13,14,15,18,21,22,30,42,46,58,59,61,64,82,],[2,2,-5,-6,-8,-4,-2,-7,-3,-23,-1,-9,-26,-13,-15,-14,-24,-16,-25,-27,-10,]),'LE':([37,],[49,]),'RPAREN':([17,23,24,25,27,28,29,32,33,34,35,36,39,40,41,43,45,48,65,66,67,69,70,71,73,74,75,79,83,84,86,87,88,],[-39,-39,-39,42,-19,-18,-39,-39,-31,-29,-33,-32,-30,58,59,-17,61,64,-39,-38,-36,-39,-28,-20,82,83,-35,86,-45,-37,-34,-21,-22,]),'LT':([37,],[53,]),'ANSIBLE':([0,3,4,5,7,8,9,13,14,15,18,21,22,30,42,46,58,59,61,64,82,],[6,6,-5,-6,-8,-4,-2,-7,-3,-23,-1,-9,-26,-13,-15,-14,-24,-16,-25,-27,-10,]),'COMMA':([68,76,77,78,89,],[-39,-47,85,-48,-46,]),'SOFT':([23,29,32,57,65,69,],[38,38,38,38,38,38,]),'$end':([3,4,5,7,8,9,13,14,15,18,21,22,30,42,46,58,59,61,64,82,],[0,-5,-6,-8,-4,-2,-7,-3,-23,-1,-9,-26,-13,-15,-14,-24,-16,-25,-27,-10,]),'RECIPE_BEGIN':([31,],[47,]),'GT':([37,],[54,]),'STRING':([49,51,52,53,54,55,68,85,],[-44,66,-43,-41,-42,-40,76,89,]),'DEPLOY':([0,3,4,5,7,8,9,13,14,15,18,21,22,30,42,46,58,59,61,64,82,],[10,10,-5,-6,-8,-4,-2,-7,-3,-23,-1,-9,-26,-13,-15,-14,-24,-16,-25,-27,-10,]),'RBRACK':([68,76,77,78,89,],[-39,-47,84,-48,-46,]),'GE':([37,],[52,]),'LPAREN':([2,15,16,19,21,22,50,56,],[17,23,24,29,31,32,65,69,]),'VAR':([1,6,10,11,12,23,26,29,30,32,57,60,65,67,69,81,],[15,19,20,21,22,37,44,37,46,37,37,71,37,75,37,88,]),'EQ':([37,],[55,]),'AND':([23,29,32,33,34,35,36,39,40,45,48,65,66,67,69,70,74,75,79,83,84,86,],[-39,-39,-39,-31,-29,-33,-32,-30,57,57,57,-39,-38,-36,-39,-28,57,-35,57,-45,-37,-34,]),'CONFIGURE':([0,3,4,5,7,8,9,13,14,15,18,21,22,30,42,44,46,58,59,61,64,82,],[11,11,-5,-6,-8,-4,-2,-7,-3,-23,-1,-9,-26,-13,-15,60,-14,-24,-16,-25,-27,-10,]),'RECIPE_LINE':([47,62,],[62,62,]),'CONTAINS':([37,],[50,]),'SYSTEM':([0,3,4,5,7,8,9,13,14,15,17,18,21,22,24,25,27,28,30,41,42,43,46,58,59,61,64,71,82,87,88,],[12,12,-5,-6,-8,-4,-2,-7,-3,-23,26,-1,-9,-26,26,26,-19,-18,-13,26,-15,-17,-14,-24,-16,-25,-27,-20,-10,-21,-22,]),}

_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 = {'features':([23,29,32,65,69,],[40,45,48,74,79,]),'comparator':([37,],[51,]),'contextualize_items':([17,24,],[25,41,]),'feature_soft':([23,29,32,57,65,69,],[33,33,33,33,33,33,]),'radl':([0,],[3,]),'recipe':([47,62,],[63,72,]),'configure_sentence':([0,3,],[5,5,]),'feature_contains':([23,29,32,57,65,69,],[35,35,35,35,35,35,]),'feature':([23,29,32,57,65,69,],[34,34,34,70,34,34,]),'contextualize_sentence':([0,3,],[13,13,]),'system_sentence':([0,3,],[4,4,]),'string_list':([68,],[77,]),'deploy_sentence':([0,3,],[7,7,]),'feature_simple':([23,29,32,57,65,69,],[36,36,36,36,36,36,]),'network_sentence':([0,3,],[14,14,]),'ansible_sentence':([0,3,],[8,8,]),'radl_sentence':([0,3,],[9,18,]),'empty':([17,23,24,29,32,65,68,69,],[27,39,27,39,39,39,78,39,]),'contextualize_item':([17,24,25,41,],[28,28,43,43,]),}

_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' -> radl","S'",1,None,None,None),
  ('radl -> radl radl_sentence','radl',2,'p_radl','radl_parse.py',182),
  ('radl -> radl_sentence','radl',1,'p_radl','radl_parse.py',183),
  ('radl_sentence -> network_sentence','radl_sentence',1,'p_radl_sentence','radl_parse.py',193),
  ('radl_sentence -> ansible_sentence','radl_sentence',1,'p_radl_sentence','radl_parse.py',194),
  ('radl_sentence -> system_sentence','radl_sentence',1,'p_radl_sentence','radl_parse.py',195),
  ('radl_sentence -> configure_sentence','radl_sentence',1,'p_radl_sentence','radl_parse.py',196),
  ('radl_sentence -> contextualize_sentence','radl_sentence',1,'p_radl_sentence','radl_parse.py',197),
  ('radl_sentence -> deploy_sentence','radl_sentence',1,'p_radl_sentence','radl_parse.py',198),
  ('configure_sentence -> CONFIGURE VAR','configure_sentence',2,'p_configure_sentence','radl_parse.py',202),
  ('configure_sentence -> CONFIGURE VAR LPAREN RECIPE_BEGIN recipe RECIPE_END RPAREN','configure_sentence',7,'p_configure_sentence','radl_parse.py',203),
  ('recipe -> RECIPE_LINE','recipe',1,'p_recipe','radl_parse.py',211),
  ('recipe -> RECIPE_LINE recipe','recipe',2,'p_recipe','radl_parse.py',212),
  ('deploy_sentence -> DEPLOY VAR NUMBER','deploy_sentence',3,'p_deploy_sentence','radl_parse.py',219),
  ('deploy_sentence -> DEPLOY VAR NUMBER VAR','deploy_sentence',4,'p_deploy_sentence','radl_parse.py',220),
  ('contextualize_sentence -> CONTEXTUALIZE LPAREN contextualize_items RPAREN','contextualize_sentence',4,'p_contextualize_sentence','radl_parse.py',228),
  ('contextualize_sentence -> CONTEXTUALIZE NUMBER LPAREN contextualize_items RPAREN','contextualize_sentence',5,'p_contextualize_sentence','radl_parse.py',229),
  ('contextualize_items -> contextualize_items contextualize_item','contextualize_items',2,'p_contextualize_items','radl_parse.py',237),
  ('contextualize_items -> contextualize_item','contextualize_items',1,'p_contextualize_items','radl_parse.py',238),
  ('contextualize_items -> empty','contextualize_items',1,'p_contextualize_items','radl_parse.py',239),
  ('contextualize_item -> SYSTEM VAR CONFIGURE VAR','contextualize_item',4,'p_contextualize_item','radl_parse.py',249),
  ('contextualize_item -> SYSTEM VAR CONFIGURE VAR STEP NUMBER','contextualize_item',6,'p_contextualize_item','radl_parse.py',250),
  ('contextualize_item -> SYSTEM VAR CONFIGURE VAR WITH VAR','contextualize_item',6,'p_contextualize_item','radl_parse.py',251),
  ('network_sentence -> NETWORK VAR','network_sentence',2,'p_network_sentence','radl_parse.py',261),
  ('network_sentence -> NETWORK VAR LPAREN features RPAREN','network_sentence',5,'p_network_sentence','radl_parse.py',262),
  ('ansible_sentence -> ANSIBLE VAR LPAREN features RPAREN','ansible_sentence',5,'p_ansible_sentence','radl_parse.py',270),
  ('system_sentence -> SYSTEM VAR','system_sentence',2,'p_system_sentence','radl_parse.py',275),
  ('system_sentence -> SYSTEM VAR LPAREN features RPAREN','system_sentence',5,'p_system_sentence','radl_parse.py',276),
  ('features -> features AND feature','features',3,'p_features','radl_parse.py',284),
  ('features -> feature','features',1,'p_features','radl_parse.py',285),
  ('features -> empty','features',1,'p_features','radl_parse.py',286),
  ('feature -> feature_soft','feature',1,'p_feature','radl_parse.py',297),
  ('feature -> feature_simple','feature',1,'p_feature','radl_parse.py',298),
  ('feature -> feature_contains','feature',1,'p_feature','radl_parse.py',299),
  ('feature_soft -> SOFT NUMBER LPAREN features RPAREN','feature_soft',5,'p_feature_soft','radl_parse.py',304),
  ('feature_simple -> VAR comparator NUMBER VAR','feature_simple',4,'p_feature_simple','radl_parse.py',309),
  ('feature_simple -> VAR comparator NUMBER','feature_simple',3,'p_feature_simple','radl_parse.py',310),
  ('feature_simple -> VAR comparator LBRACK string_list RBRACK','feature_simple',5,'p_feature_simple','radl_parse.py',311),
  ('feature_simple -> VAR comparator STRING','feature_simple',3,'p_feature_simple','radl_parse.py',312),
  ('empty -> <empty>','empty',0,'p_empty','radl_parse.py',322),
  ('comparator -> EQ','comparator',1,'p_comparator','radl_parse.py',327),
  ('comparator -> LT','comparator',1,'p_comparator','radl_parse.py',328),
  ('comparator -> GT','comparator',1,'p_comparator','radl_parse.py',329),
  ('comparator -> GE','comparator',1,'p_comparator','radl_parse.py',330),
  ('comparator -> LE','comparator',1,'p_comparator','radl_parse.py',331),
  ('feature_contains -> VAR CONTAINS LPAREN features RPAREN','feature_contains',5,'p_feature_contains','radl_parse.py',336),
  ('string_list -> string_list COMMA STRING','string_list',3,'p_string_list','radl_parse.py',341),
  ('string_list -> STRING','string_list',1,'p_string_list','radl_parse.py',342),
  ('string_list -> empty','string_list',1,'p_string_list','radl_parse.py',343),
]
