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

_lr_method = 'LALR'

_lr_signature = 'ALGNAME ALGORITHM ALGORITHM_POLICY COVERAGE DATESUFFIX DIRECTORY KEYTTL KEYTYPE KEY_SIZE LBRACE NONE NUMBER POLICY POST_PUBLISH PRE_PUBLISH QSTRING RBRACE ROLL_PERIOD SEMI STANDBY STR ZONEpolicylist : init policy\n                      | policylist policyinit :policy : alg_policy\n                  | zone_policy\n                  | named_policyname : STR\n                | KEYTYPE\n                | DATESUFFIXdomain : STR\n                  | QSTRING\n                  | KEYTYPE\n                  | DATESUFFIXnew_policy :alg_policy : ALGORITHM_POLICY ALGNAME new_policy alg_option_group SEMIzone_policy : ZONE domain 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,29,46,62,],[-3,7,7,-2,-4,-5,-6,-1,-15,-16,-17,]),'ZONE':([0,1,2,3,4,5,6,10,29,46,62,],[-3,8,8,-2,-4,-5,-6,-1,-15,-16,-17,]),'POLICY':([0,1,2,3,4,5,6,10,27,29,46,47,62,77,88,],[-3,9,9,-2,-4,-5,-6,-1,59,-15,-16,59,-17,-22,-23,]),'$end':([1,3,4,5,6,10,29,46,62,],[0,-2,-4,-5,-6,-1,-15,-16,-17,]),'ALGNAME':([7,61,],[11,80,]),'STR':([8,9,59,],[13,18,18,]),'QSTRING':([8,60,],[14,79,]),'KEYTYPE':([8,9,40,41,42,44,45,59,],[15,19,69,70,71,73,74,19,]),'DATESUFFIX':([8,9,59,67,],[16,20,20,82,]),'LBRACE':([11,12,13,14,15,16,17,18,19,20,21,22,23,],[-14,-14,-10,-11,-12,-13,-14,-7,-8,-9,25,27,27,]),'SEMI':([18,19,20,24,26,28,31,32,33,34,35,36,37,38,48,49,50,51,52,53,54,55,56,57,58,63,64,66,67,68,72,75,76,78,79,80,82,83,84,85,86,87,],[-7,-8,-9,29,46,62,65,-37,-38,-39,-40,-41,-42,-43,77,-24,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,81,-46,-18,-19,-52,-21,88,-44,-45,-53,-20,-47,-48,-49,-50,-51,]),'COVERAGE':([25,27,30,47,65,77,81,88,],[39,39,39,39,-35,-22,-36,-23,]),'ROLL_PERIOD':([25,27,30,47,65,77,81,88,],[40,40,40,40,-35,-22,-36,-23,]),'PRE_PUBLISH':([25,27,30,47,65,77,81,88,],[41,41,41,41,-35,-22,-36,-23,]),'POST_PUBLISH':([25,27,30,47,65,77,81,88,],[42,42,42,42,-35,-22,-36,-23,]),'KEYTTL':([25,27,30,47,65,77,81,88,],[43,43,43,43,-35,-22,-36,-23,]),'KEY_SIZE':([25,27,30,47,65,77,81,88,],[44,44,44,44,-35,-22,-36,-23,]),'STANDBY':([25,27,30,47,65,77,81,88,],[45,45,45,45,-35,-22,-36,-23,]),'DIRECTORY':([27,47,77,88,],[60,60,-22,-23,]),'ALGORITHM':([27,47,77,88,],[61,61,-22,-23,]),'RBRACE':([30,47,65,77,81,88,],[63,75,-35,-22,-36,-23,]),'NUMBER':([39,43,69,70,71,73,74,],[67,67,67,67,67,86,87,]),'NONE':([39,43,69,70,71,],[68,68,68,68,68,]),}

_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,]),'domain':([8,],[12,]),'name':([9,59,],[17,78,]),'new_policy':([11,12,17,],[21,22,23,]),'alg_option_group':([21,],[24,]),'policy_option_group':([22,23,],[26,28,]),'alg_option_list':([25,],[30,]),'alg_option':([25,30,],[31,64,]),'coverage_option':([25,27,30,47,],[32,51,32,51,]),'rollperiod_option':([25,27,30,47,],[33,52,33,52,]),'prepublish_option':([25,27,30,47,],[34,53,34,53,]),'postpublish_option':([25,27,30,47,],[35,54,35,54,]),'keyttl_option':([25,27,30,47,],[36,57,36,57,]),'keysize_option':([25,27,30,47,],[37,55,37,55,]),'standby_option':([25,27,30,47,],[38,58,38,58,]),'policy_option_list':([27,],[47,]),'policy_option':([27,47,],[48,76,]),'parent_option':([27,47,],[49,49,]),'directory_option':([27,47,],[50,50,]),'algorithm_option':([27,47,],[56,56,]),'duration':([39,43,69,70,71,],[66,72,83,84,85,]),}

_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',487),
  ('policylist -> policylist policy','policylist',2,'p_policylist','policy.py',488),
  ('init -> <empty>','init',0,'p_init','policy.py',492),
  ('policy -> alg_policy','policy',1,'p_policy','policy.py',496),
  ('policy -> zone_policy','policy',1,'p_policy','policy.py',497),
  ('policy -> named_policy','policy',1,'p_policy','policy.py',498),
  ('name -> STR','name',1,'p_name','policy.py',502),
  ('name -> KEYTYPE','name',1,'p_name','policy.py',503),
  ('name -> DATESUFFIX','name',1,'p_name','policy.py',504),
  ('domain -> STR','domain',1,'p_domain','policy.py',509),
  ('domain -> QSTRING','domain',1,'p_domain','policy.py',510),
  ('domain -> KEYTYPE','domain',1,'p_domain','policy.py',511),
  ('domain -> DATESUFFIX','domain',1,'p_domain','policy.py',512),
  ('new_policy -> <empty>','new_policy',0,'p_new_policy','policy.py',519),
  ('alg_policy -> ALGORITHM_POLICY ALGNAME new_policy alg_option_group SEMI','alg_policy',5,'p_alg_policy','policy.py',523),
  ('zone_policy -> ZONE domain new_policy policy_option_group SEMI','zone_policy',5,'p_zone_policy','policy.py',530),
  ('named_policy -> POLICY name new_policy policy_option_group SEMI','named_policy',5,'p_named_policy','policy.py',537),
  ('duration -> NUMBER','duration',1,'p_duration_1','policy.py',543),
  ('duration -> NONE','duration',1,'p_duration_2','policy.py',548),
  ('duration -> NUMBER DATESUFFIX','duration',2,'p_duration_3','policy.py',553),
  ('policy_option_group -> LBRACE policy_option_list RBRACE','policy_option_group',3,'p_policy_option_group','policy.py',572),
  ('policy_option_list -> policy_option SEMI','policy_option_list',2,'p_policy_option_list','policy.py',576),
  ('policy_option_list -> policy_option_list policy_option SEMI','policy_option_list',3,'p_policy_option_list','policy.py',577),
  ('policy_option -> parent_option','policy_option',1,'p_policy_option','policy.py',581),
  ('policy_option -> directory_option','policy_option',1,'p_policy_option','policy.py',582),
  ('policy_option -> coverage_option','policy_option',1,'p_policy_option','policy.py',583),
  ('policy_option -> rollperiod_option','policy_option',1,'p_policy_option','policy.py',584),
  ('policy_option -> prepublish_option','policy_option',1,'p_policy_option','policy.py',585),
  ('policy_option -> postpublish_option','policy_option',1,'p_policy_option','policy.py',586),
  ('policy_option -> keysize_option','policy_option',1,'p_policy_option','policy.py',587),
  ('policy_option -> algorithm_option','policy_option',1,'p_policy_option','policy.py',588),
  ('policy_option -> keyttl_option','policy_option',1,'p_policy_option','policy.py',589),
  ('policy_option -> standby_option','policy_option',1,'p_policy_option','policy.py',590),
  ('alg_option_group -> LBRACE alg_option_list RBRACE','alg_option_group',3,'p_alg_option_group','policy.py',594),
  ('alg_option_list -> alg_option SEMI','alg_option_list',2,'p_alg_option_list','policy.py',598),
  ('alg_option_list -> alg_option_list alg_option SEMI','alg_option_list',3,'p_alg_option_list','policy.py',599),
  ('alg_option -> coverage_option','alg_option',1,'p_alg_option','policy.py',603),
  ('alg_option -> rollperiod_option','alg_option',1,'p_alg_option','policy.py',604),
  ('alg_option -> prepublish_option','alg_option',1,'p_alg_option','policy.py',605),
  ('alg_option -> postpublish_option','alg_option',1,'p_alg_option','policy.py',606),
  ('alg_option -> keyttl_option','alg_option',1,'p_alg_option','policy.py',607),
  ('alg_option -> keysize_option','alg_option',1,'p_alg_option','policy.py',608),
  ('alg_option -> standby_option','alg_option',1,'p_alg_option','policy.py',609),
  ('parent_option -> POLICY name','parent_option',2,'p_parent_option','policy.py',613),
  ('directory_option -> DIRECTORY QSTRING','directory_option',2,'p_directory_option','policy.py',617),
  ('coverage_option -> COVERAGE duration','coverage_option',2,'p_coverage_option','policy.py',621),
  ('rollperiod_option -> ROLL_PERIOD KEYTYPE duration','rollperiod_option',3,'p_rollperiod_option','policy.py',625),
  ('prepublish_option -> PRE_PUBLISH KEYTYPE duration','prepublish_option',3,'p_prepublish_option','policy.py',632),
  ('postpublish_option -> POST_PUBLISH KEYTYPE duration','postpublish_option',3,'p_postpublish_option','policy.py',639),
  ('keysize_option -> KEY_SIZE KEYTYPE NUMBER','keysize_option',3,'p_keysize_option','policy.py',646),
  ('standby_option -> STANDBY KEYTYPE NUMBER','standby_option',3,'p_standby_option','policy.py',653),
  ('keyttl_option -> KEYTTL duration','keyttl_option',2,'p_keyttl_option','policy.py',660),
  ('algorithm_option -> ALGORITHM ALGNAME','algorithm_option',2,'p_algorithm_option','policy.py',664),
]
