
# 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 DESCRIPTION EQ GE GT LBRACK LE LPAREN LT NETWORK NUMBER OPTION RANDOM RBRACK RECIPE_BEGIN RECIPE_END RECIPE_LINE RPAREN SOFT STEP STRING SYSTEM VAR WITHradl : radl radl_sentence\n                | radl_sentence\n                | description_sentence radlradl_sentence : network_sentence\n                         | ansible_sentence\n                         | system_sentence\n                         | configure_sentence\n                         | contextualize_sentence\n                         | deploy_sentencedescription_sentence : DESCRIPTION VAR\n                                | DESCRIPTION VAR LPAREN features RPARENconfigure_sentence : CONFIGURE VAR\n                              | CONFIGURE VAR LPAREN RECIPE_BEGIN recipe RECIPE_END RPAREN\n                              | CONFIGURE VAR LPAREN RPARENrecipe : RECIPE_LINE\n                  | RECIPE_LINE recipedeploy_sentence : DEPLOY VAR NUMBER\n                           | DEPLOY VAR NUMBER VARcontextualize_sentence : CONTEXTUALIZE LPAREN contextualize_options contextualize_items RPAREN\n                                  | CONTEXTUALIZE NUMBER LPAREN contextualize_options contextualize_items RPARENcontextualize_options : contextualize_options contextualize_option\n                                 | contextualize_option\n                                 | emptycontextualize_option : OPTION VAR comparator STRING\n                                | OPTION VAR comparator NUMBERcontextualize_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 RANDOM\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 = {'DESCRIPTION':([0,3,19,66,],[10,10,-10,-11,]),'NETWORK':([0,1,2,3,4,5,6,7,8,9,17,18,19,20,22,23,37,50,58,66,69,70,71,74,91,98,],[11,11,-2,11,-4,-5,-6,-7,-8,-9,-1,11,-10,-32,-35,-12,-17,-14,-18,-11,-33,-34,-36,-19,-20,-13,]),'ANSIBLE':([0,1,2,3,4,5,6,7,8,9,17,18,19,20,22,23,37,50,58,66,69,70,71,74,91,98,],[12,12,-2,12,-4,-5,-6,-7,-8,-9,-1,12,-10,-32,-35,-12,-17,-14,-18,-11,-33,-34,-36,-19,-20,-13,]),'SYSTEM':([0,1,2,3,4,5,6,7,8,9,17,18,19,20,22,23,24,32,33,34,36,37,50,51,52,53,54,57,58,66,69,70,71,74,75,78,89,90,91,98,99,107,108,],[13,13,-2,13,-4,-5,-6,-7,-8,-9,-1,13,-10,-32,-35,-12,-49,55,-22,-23,-49,-17,-14,55,-21,-27,-28,55,-18,-11,-33,-34,-36,-19,-26,55,-24,-25,-20,-13,-29,-30,-31,]),'CONFIGURE':([0,1,2,3,4,5,6,7,8,9,17,18,19,20,22,23,37,50,58,66,69,70,71,74,76,91,98,],[14,14,-2,14,-4,-5,-6,-7,-8,-9,-1,14,-10,-32,-35,-12,-17,-14,-18,-11,-33,-34,-36,-19,88,-20,-13,]),'CONTEXTUALIZE':([0,1,2,3,4,5,6,7,8,9,17,18,19,20,22,23,37,50,58,66,69,70,71,74,91,98,],[15,15,-2,15,-4,-5,-6,-7,-8,-9,-1,15,-10,-32,-35,-12,-17,-14,-18,-11,-33,-34,-36,-19,-20,-13,]),'DEPLOY':([0,1,2,3,4,5,6,7,8,9,17,18,19,20,22,23,37,50,58,66,69,70,71,74,91,98,],[16,16,-2,16,-4,-5,-6,-7,-8,-9,-1,16,-10,-32,-35,-12,-17,-14,-18,-11,-33,-34,-36,-19,-20,-13,]),'$end':([1,2,4,5,6,7,8,9,17,18,20,22,23,37,50,58,69,70,71,74,91,98,],[0,-2,-4,-5,-6,-7,-8,-9,-1,-3,-32,-35,-12,-17,-14,-18,-33,-34,-36,-19,-20,-13,]),'VAR':([10,11,12,13,14,16,27,28,29,30,35,37,55,67,79,83,85,88,105,],[19,20,21,22,23,26,38,38,38,38,56,58,76,38,92,38,38,99,108,]),'LPAREN':([15,19,20,21,22,23,25,60,68,],[24,27,28,29,30,31,36,83,85,]),'NUMBER':([15,26,45,59,61,62,63,64,65,77,104,],[25,37,68,79,-50,-51,-52,-53,-54,90,107,]),'OPTION':([24,32,33,34,36,52,57,89,90,],[35,35,-22,-23,35,-21,35,-24,-25,]),'RPAREN':([24,27,28,29,30,31,32,33,34,36,39,40,41,42,43,44,46,47,48,51,52,53,54,57,75,78,79,81,82,83,84,85,86,89,90,92,96,97,99,100,102,103,107,108,],[-49,-49,-49,-49,-49,50,-49,-22,-23,-49,66,-38,-39,-40,-41,-42,69,70,71,74,-21,-27,-28,-49,-26,91,-45,-47,-48,-49,-37,-49,98,-24,-25,-44,102,103,-29,-46,-55,-43,-30,-31,]),'AND':([27,28,29,30,39,40,41,42,43,44,46,47,48,79,81,82,83,84,85,92,96,97,100,102,103,],[-49,-49,-49,-49,67,-38,-39,-40,-41,-42,67,67,67,-45,-47,-48,-49,-37,-49,-44,67,67,-46,-55,-43,]),'SOFT':([27,28,29,30,67,83,85,],[45,45,45,45,45,45,45,]),'RECIPE_BEGIN':([31,],[49,]),'CONTAINS':([38,],[60,]),'EQ':([38,56,],[61,61,]),'LT':([38,56,],[62,62,]),'GT':([38,56,],[63,63,]),'GE':([38,56,],[64,64,]),'LE':([38,56,],[65,65,]),'RECIPE_LINE':([49,73,],[73,73,]),'LBRACK':([59,61,62,63,64,65,],[80,-50,-51,-52,-53,-54,]),'RANDOM':([59,61,62,63,64,65,],[81,-50,-51,-52,-53,-54,]),'STRING':([59,61,62,63,64,65,77,80,101,],[82,-50,-51,-52,-53,-54,89,94,106,]),'RECIPE_END':([72,73,87,],[86,-15,-16,]),'RBRACK':([80,93,94,95,106,],[-49,100,-57,-58,-56,]),'COMMA':([80,93,94,95,106,],[-49,101,-57,-58,-56,]),'STEP':([99,],[104,]),'WITH':([99,],[105,]),}

_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 = {'radl':([0,3,],[1,18,]),'radl_sentence':([0,1,3,18,],[2,17,2,17,]),'description_sentence':([0,3,],[3,3,]),'network_sentence':([0,1,3,18,],[4,4,4,4,]),'ansible_sentence':([0,1,3,18,],[5,5,5,5,]),'system_sentence':([0,1,3,18,],[6,6,6,6,]),'configure_sentence':([0,1,3,18,],[7,7,7,7,]),'contextualize_sentence':([0,1,3,18,],[8,8,8,8,]),'deploy_sentence':([0,1,3,18,],[9,9,9,9,]),'contextualize_options':([24,36,],[32,57,]),'contextualize_option':([24,32,36,57,],[33,52,33,52,]),'empty':([24,27,28,29,30,32,36,57,80,83,85,],[34,41,41,41,41,54,34,54,95,41,41,]),'features':([27,28,29,30,83,85,],[39,46,47,48,96,97,]),'feature':([27,28,29,30,67,83,85,],[40,40,40,40,84,40,40,]),'feature_soft':([27,28,29,30,67,83,85,],[42,42,42,42,42,42,42,]),'feature_simple':([27,28,29,30,67,83,85,],[43,43,43,43,43,43,43,]),'feature_contains':([27,28,29,30,67,83,85,],[44,44,44,44,44,44,44,]),'contextualize_items':([32,57,],[51,78,]),'contextualize_item':([32,51,57,78,],[53,75,53,75,]),'comparator':([38,56,],[59,77,]),'recipe':([49,73,],[72,87,]),'string_list':([80,],[93,]),}

_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',216),
  ('radl -> radl_sentence','radl',1,'p_radl','radl_parse.py',217),
  ('radl -> description_sentence radl','radl',2,'p_radl','radl_parse.py',218),
  ('radl_sentence -> network_sentence','radl_sentence',1,'p_radl_sentence','radl_parse.py',233),
  ('radl_sentence -> ansible_sentence','radl_sentence',1,'p_radl_sentence','radl_parse.py',234),
  ('radl_sentence -> system_sentence','radl_sentence',1,'p_radl_sentence','radl_parse.py',235),
  ('radl_sentence -> configure_sentence','radl_sentence',1,'p_radl_sentence','radl_parse.py',236),
  ('radl_sentence -> contextualize_sentence','radl_sentence',1,'p_radl_sentence','radl_parse.py',237),
  ('radl_sentence -> deploy_sentence','radl_sentence',1,'p_radl_sentence','radl_parse.py',238),
  ('description_sentence -> DESCRIPTION VAR','description_sentence',2,'p_description_sentence','radl_parse.py',243),
  ('description_sentence -> DESCRIPTION VAR LPAREN features RPAREN','description_sentence',5,'p_description_sentence','radl_parse.py',244),
  ('configure_sentence -> CONFIGURE VAR','configure_sentence',2,'p_configure_sentence','radl_parse.py',253),
  ('configure_sentence -> CONFIGURE VAR LPAREN RECIPE_BEGIN recipe RECIPE_END RPAREN','configure_sentence',7,'p_configure_sentence','radl_parse.py',254),
  ('configure_sentence -> CONFIGURE VAR LPAREN RPAREN','configure_sentence',4,'p_configure_sentence','radl_parse.py',255),
  ('recipe -> RECIPE_LINE','recipe',1,'p_recipe','radl_parse.py',266),
  ('recipe -> RECIPE_LINE recipe','recipe',2,'p_recipe','radl_parse.py',267),
  ('deploy_sentence -> DEPLOY VAR NUMBER','deploy_sentence',3,'p_deploy_sentence','radl_parse.py',275),
  ('deploy_sentence -> DEPLOY VAR NUMBER VAR','deploy_sentence',4,'p_deploy_sentence','radl_parse.py',276),
  ('contextualize_sentence -> CONTEXTUALIZE LPAREN contextualize_options contextualize_items RPAREN','contextualize_sentence',5,'p_contextualize_sentence','radl_parse.py',285),
  ('contextualize_sentence -> CONTEXTUALIZE NUMBER LPAREN contextualize_options contextualize_items RPAREN','contextualize_sentence',6,'p_contextualize_sentence','radl_parse.py',286),
  ('contextualize_options -> contextualize_options contextualize_option','contextualize_options',2,'p_contextualize_options','radl_parse.py',295),
  ('contextualize_options -> contextualize_option','contextualize_options',1,'p_contextualize_options','radl_parse.py',296),
  ('contextualize_options -> empty','contextualize_options',1,'p_contextualize_options','radl_parse.py',297),
  ('contextualize_option -> OPTION VAR comparator STRING','contextualize_option',4,'p_contextualize_option','radl_parse.py',308),
  ('contextualize_option -> OPTION VAR comparator NUMBER','contextualize_option',4,'p_contextualize_option','radl_parse.py',309),
  ('contextualize_items -> contextualize_items contextualize_item','contextualize_items',2,'p_contextualize_items','radl_parse.py',315),
  ('contextualize_items -> contextualize_item','contextualize_items',1,'p_contextualize_items','radl_parse.py',316),
  ('contextualize_items -> empty','contextualize_items',1,'p_contextualize_items','radl_parse.py',317),
  ('contextualize_item -> SYSTEM VAR CONFIGURE VAR','contextualize_item',4,'p_contextualize_item','radl_parse.py',328),
  ('contextualize_item -> SYSTEM VAR CONFIGURE VAR STEP NUMBER','contextualize_item',6,'p_contextualize_item','radl_parse.py',329),
  ('contextualize_item -> SYSTEM VAR CONFIGURE VAR WITH VAR','contextualize_item',6,'p_contextualize_item','radl_parse.py',330),
  ('network_sentence -> NETWORK VAR','network_sentence',2,'p_network_sentence','radl_parse.py',341),
  ('network_sentence -> NETWORK VAR LPAREN features RPAREN','network_sentence',5,'p_network_sentence','radl_parse.py',342),
  ('ansible_sentence -> ANSIBLE VAR LPAREN features RPAREN','ansible_sentence',5,'p_ansible_sentence','radl_parse.py',351),
  ('system_sentence -> SYSTEM VAR','system_sentence',2,'p_system_sentence','radl_parse.py',357),
  ('system_sentence -> SYSTEM VAR LPAREN features RPAREN','system_sentence',5,'p_system_sentence','radl_parse.py',358),
  ('features -> features AND feature','features',3,'p_features','radl_parse.py',367),
  ('features -> feature','features',1,'p_features','radl_parse.py',368),
  ('features -> empty','features',1,'p_features','radl_parse.py',369),
  ('feature -> feature_soft','feature',1,'p_feature','radl_parse.py',381),
  ('feature -> feature_simple','feature',1,'p_feature','radl_parse.py',382),
  ('feature -> feature_contains','feature',1,'p_feature','radl_parse.py',383),
  ('feature_soft -> SOFT NUMBER LPAREN features RPAREN','feature_soft',5,'p_feature_soft','radl_parse.py',389),
  ('feature_simple -> VAR comparator NUMBER VAR','feature_simple',4,'p_feature_simple','radl_parse.py',395),
  ('feature_simple -> VAR comparator NUMBER','feature_simple',3,'p_feature_simple','radl_parse.py',396),
  ('feature_simple -> VAR comparator LBRACK string_list RBRACK','feature_simple',5,'p_feature_simple','radl_parse.py',397),
  ('feature_simple -> VAR comparator RANDOM','feature_simple',3,'p_feature_simple','radl_parse.py',398),
  ('feature_simple -> VAR comparator STRING','feature_simple',3,'p_feature_simple','radl_parse.py',399),
  ('empty -> <empty>','empty',0,'p_empty','radl_parse.py',414),
  ('comparator -> EQ','comparator',1,'p_comparator','radl_parse.py',420),
  ('comparator -> LT','comparator',1,'p_comparator','radl_parse.py',421),
  ('comparator -> GT','comparator',1,'p_comparator','radl_parse.py',422),
  ('comparator -> GE','comparator',1,'p_comparator','radl_parse.py',423),
  ('comparator -> LE','comparator',1,'p_comparator','radl_parse.py',424),
  ('feature_contains -> VAR CONTAINS LPAREN features RPAREN','feature_contains',5,'p_feature_contains','radl_parse.py',430),
  ('string_list -> string_list COMMA STRING','string_list',3,'p_string_list','radl_parse.py',436),
  ('string_list -> STRING','string_list',1,'p_string_list','radl_parse.py',437),
  ('string_list -> empty','string_list',1,'p_string_list','radl_parse.py',438),
]
