
# parsetab.py
# This file is automatically generated. Do not edit.
_tabversion = '3.10'

_lr_method = 'LALR'

_lr_signature = 'POLICY ALGORITHM_POLICY ZONE ALGORITHM DIRECTORY KEYTTL KEY_SIZE ROLL_PERIOD PRE_PUBLISH POST_PUBLISH COVERAGE STANDBY NONE DATESUFFIX KEYTYPE ALGNAME STR QSTRING NUMBER LBRACE RBRACE SEMIpolicylist : init policy\n                      | policylist policyinit :policy : alg_policy\n                  | zone_policy\n                  | named_policyname : STR\n                | KEYTYPE\n                | DATESUFFIXnew_policy :alg_policy : ALGORITHM_POLICY ALGNAME new_policy alg_option_group SEMIzone_policy : ZONE name new_policy policy_option_group SEMInamed_policy : POLICY name new_policy policy_option_group SEMIduration : NUMBERduration : NONEduration : NUMBER DATESUFFIXpolicy_option_group : LBRACE policy_option_list RBRACEpolicy_option_list : policy_option SEMI\n                              | policy_option_list policy_option SEMIpolicy_option : parent_option\n                         | directory_option\n                         | coverage_option\n                         | rollperiod_option\n                         | prepublish_option\n                         | postpublish_option\n                         | keysize_option\n                         | algorithm_option\n                         | keyttl_option\n                         | standby_optionalg_option_group : LBRACE alg_option_list RBRACEalg_option_list : alg_option SEMI\n                           | alg_option_list alg_option SEMIalg_option : coverage_option\n                      | rollperiod_option\n                      | prepublish_option\n                      | postpublish_option\n                      | keyttl_option\n                      | keysize_option\n                      | standby_optionparent_option : POLICY namedirectory_option : DIRECTORY QSTRINGcoverage_option : COVERAGE durationrollperiod_option : ROLL_PERIOD KEYTYPE durationprepublish_option : PRE_PUBLISH KEYTYPE durationpostpublish_option : POST_PUBLISH KEYTYPE durationkeysize_option : KEY_SIZE KEYTYPE NUMBERstandby_option : STANDBY KEYTYPE NUMBERkeyttl_option : KEYTTL durationalgorithm_option : ALGORITHM ALGNAME'
    
_lr_action_items = {'ALGORITHM_POLICY':([0,1,2,3,4,5,6,10,25,42,58,],[-3,7,7,-2,-4,-5,-6,-1,-11,-12,-13,]),'ZONE':([0,1,2,3,4,5,6,10,25,42,58,],[-3,8,8,-2,-4,-5,-6,-1,-11,-12,-13,]),'POLICY':([0,1,2,3,4,5,6,10,23,25,42,43,58,73,84,],[-3,9,9,-2,-4,-5,-6,-1,55,-11,-12,55,-13,-18,-19,]),'$end':([1,3,4,5,6,10,25,42,58,],[0,-2,-4,-5,-6,-1,-11,-12,-13,]),'ALGNAME':([7,57,],[11,76,]),'STR':([8,9,55,],[13,13,13,]),'KEYTYPE':([8,9,36,37,38,40,41,55,],[14,14,65,66,67,69,70,14,]),'DATESUFFIX':([8,9,55,63,],[15,15,15,78,]),'LBRACE':([11,12,13,14,15,16,17,18,19,],[-10,-10,-7,-8,-9,-10,21,23,23,]),'SEMI':([13,14,15,20,22,24,27,28,29,30,31,32,33,34,44,45,46,47,48,49,50,51,52,53,54,59,60,62,63,64,68,71,72,74,75,76,78,79,80,81,82,83,],[-7,-8,-9,25,42,58,61,-33,-34,-35,-36,-37,-38,-39,73,-20,-21,-22,-23,-24,-25,-26,-27,-28,-29,-30,77,-42,-14,-15,-48,-17,84,-40,-41,-49,-16,-43,-44,-45,-46,-47,]),'COVERAGE':([21,23,26,43,61,73,77,84,],[35,35,35,35,-31,-18,-32,-19,]),'ROLL_PERIOD':([21,23,26,43,61,73,77,84,],[36,36,36,36,-31,-18,-32,-19,]),'PRE_PUBLISH':([21,23,26,43,61,73,77,84,],[37,37,37,37,-31,-18,-32,-19,]),'POST_PUBLISH':([21,23,26,43,61,73,77,84,],[38,38,38,38,-31,-18,-32,-19,]),'KEYTTL':([21,23,26,43,61,73,77,84,],[39,39,39,39,-31,-18,-32,-19,]),'KEY_SIZE':([21,23,26,43,61,73,77,84,],[40,40,40,40,-31,-18,-32,-19,]),'STANDBY':([21,23,26,43,61,73,77,84,],[41,41,41,41,-31,-18,-32,-19,]),'DIRECTORY':([23,43,73,84,],[56,56,-18,-19,]),'ALGORITHM':([23,43,73,84,],[57,57,-18,-19,]),'RBRACE':([26,43,61,73,77,84,],[59,71,-31,-18,-32,-19,]),'NUMBER':([35,39,65,66,67,69,70,],[63,63,63,63,63,82,83,]),'NONE':([35,39,65,66,67,],[64,64,64,64,64,]),'QSTRING':([56,],[75,]),}

_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 = {'policylist':([0,],[1,]),'init':([0,],[2,]),'policy':([1,2,],[3,10,]),'alg_policy':([1,2,],[4,4,]),'zone_policy':([1,2,],[5,5,]),'named_policy':([1,2,],[6,6,]),'name':([8,9,55,],[12,16,74,]),'new_policy':([11,12,16,],[17,18,19,]),'alg_option_group':([17,],[20,]),'policy_option_group':([18,19,],[22,24,]),'alg_option_list':([21,],[26,]),'alg_option':([21,26,],[27,60,]),'coverage_option':([21,23,26,43,],[28,47,28,47,]),'rollperiod_option':([21,23,26,43,],[29,48,29,48,]),'prepublish_option':([21,23,26,43,],[30,49,30,49,]),'postpublish_option':([21,23,26,43,],[31,50,31,50,]),'keyttl_option':([21,23,26,43,],[32,53,32,53,]),'keysize_option':([21,23,26,43,],[33,51,33,51,]),'standby_option':([21,23,26,43,],[34,54,34,54,]),'policy_option_list':([23,],[43,]),'policy_option':([23,43,],[44,72,]),'parent_option':([23,43,],[45,45,]),'directory_option':([23,43,],[46,46,]),'algorithm_option':([23,43,],[52,52,]),'duration':([35,39,65,66,67,],[62,68,79,80,81,]),}

_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' -> policylist","S'",1,None,None,None),
  ('policylist -> init policy','policylist',2,'p_policylist','policy.py',504),
  ('policylist -> policylist policy','policylist',2,'p_policylist','policy.py',505),
  ('init -> <empty>','init',0,'p_init','policy.py',509),
  ('policy -> alg_policy','policy',1,'p_policy','policy.py',513),
  ('policy -> zone_policy','policy',1,'p_policy','policy.py',514),
  ('policy -> named_policy','policy',1,'p_policy','policy.py',515),
  ('name -> STR','name',1,'p_name','policy.py',519),
  ('name -> KEYTYPE','name',1,'p_name','policy.py',520),
  ('name -> DATESUFFIX','name',1,'p_name','policy.py',521),
  ('new_policy -> <empty>','new_policy',0,'p_new_policy','policy.py',526),
  ('alg_policy -> ALGORITHM_POLICY ALGNAME new_policy alg_option_group SEMI','alg_policy',5,'p_alg_policy','policy.py',530),
  ('zone_policy -> ZONE name new_policy policy_option_group SEMI','zone_policy',5,'p_zone_policy','policy.py',537),
  ('named_policy -> POLICY name new_policy policy_option_group SEMI','named_policy',5,'p_named_policy','policy.py',544),
  ('duration -> NUMBER','duration',1,'p_duration_1','policy.py',550),
  ('duration -> NONE','duration',1,'p_duration_2','policy.py',555),
  ('duration -> NUMBER DATESUFFIX','duration',2,'p_duration_3','policy.py',560),
  ('policy_option_group -> LBRACE policy_option_list RBRACE','policy_option_group',3,'p_policy_option_group','policy.py',579),
  ('policy_option_list -> policy_option SEMI','policy_option_list',2,'p_policy_option_list','policy.py',583),
  ('policy_option_list -> policy_option_list policy_option SEMI','policy_option_list',3,'p_policy_option_list','policy.py',584),
  ('policy_option -> parent_option','policy_option',1,'p_policy_option','policy.py',588),
  ('policy_option -> directory_option','policy_option',1,'p_policy_option','policy.py',589),
  ('policy_option -> coverage_option','policy_option',1,'p_policy_option','policy.py',590),
  ('policy_option -> rollperiod_option','policy_option',1,'p_policy_option','policy.py',591),
  ('policy_option -> prepublish_option','policy_option',1,'p_policy_option','policy.py',592),
  ('policy_option -> postpublish_option','policy_option',1,'p_policy_option','policy.py',593),
  ('policy_option -> keysize_option','policy_option',1,'p_policy_option','policy.py',594),
  ('policy_option -> algorithm_option','policy_option',1,'p_policy_option','policy.py',595),
  ('policy_option -> keyttl_option','policy_option',1,'p_policy_option','policy.py',596),
  ('policy_option -> standby_option','policy_option',1,'p_policy_option','policy.py',597),
  ('alg_option_group -> LBRACE alg_option_list RBRACE','alg_option_group',3,'p_alg_option_group','policy.py',601),
  ('alg_option_list -> alg_option SEMI','alg_option_list',2,'p_alg_option_list','policy.py',605),
  ('alg_option_list -> alg_option_list alg_option SEMI','alg_option_list',3,'p_alg_option_list','policy.py',606),
  ('alg_option -> coverage_option','alg_option',1,'p_alg_option','policy.py',610),
  ('alg_option -> rollperiod_option','alg_option',1,'p_alg_option','policy.py',611),
  ('alg_option -> prepublish_option','alg_option',1,'p_alg_option','policy.py',612),
  ('alg_option -> postpublish_option','alg_option',1,'p_alg_option','policy.py',613),
  ('alg_option -> keyttl_option','alg_option',1,'p_alg_option','policy.py',614),
  ('alg_option -> keysize_option','alg_option',1,'p_alg_option','policy.py',615),
  ('alg_option -> standby_option','alg_option',1,'p_alg_option','policy.py',616),
  ('parent_option -> POLICY name','parent_option',2,'p_parent_option','policy.py',620),
  ('directory_option -> DIRECTORY QSTRING','directory_option',2,'p_directory_option','policy.py',624),
  ('coverage_option -> COVERAGE duration','coverage_option',2,'p_coverage_option','policy.py',628),
  ('rollperiod_option -> ROLL_PERIOD KEYTYPE duration','rollperiod_option',3,'p_rollperiod_option','policy.py',632),
  ('prepublish_option -> PRE_PUBLISH KEYTYPE duration','prepublish_option',3,'p_prepublish_option','policy.py',639),
  ('postpublish_option -> POST_PUBLISH KEYTYPE duration','postpublish_option',3,'p_postpublish_option','policy.py',646),
  ('keysize_option -> KEY_SIZE KEYTYPE NUMBER','keysize_option',3,'p_keysize_option','policy.py',653),
  ('standby_option -> STANDBY KEYTYPE NUMBER','standby_option',3,'p_standby_option','policy.py',660),
  ('keyttl_option -> KEYTTL duration','keyttl_option',2,'p_keyttl_option','policy.py',667),
  ('algorithm_option -> ALGORITHM ALGNAME','algorithm_option',2,'p_algorithm_option','policy.py',671),
]
