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

_lr_method = 'LALR'

_lr_signature = 'COLON SEMICOLON EQ DOLLAR IDENT ENDDEF ENDSCAN REF DEF SCANvex : vex_header blocksvex_header : IDENT EQ IDENT SEMICOLONblocks : block\n              | blocks blockblock : block_header block_contentblock_header : DOLLAR IDENT SEMICOLONblock_content : block_lines\n                     | block_content def_block\n                     | block_content scan_blockdef_block : DEF word SEMICOLON block_lines ENDDEF SEMICOLONscan_block : SCAN word SEMICOLON block_lines ENDSCAN SEMICOLONblock_lines :\n                   | block_lines block_lineblock_line : REF DOLLAR word EQ value SEMICOLON\n                  | word EQ value SEMICOLONvalue : word\n             | \n             | value COLON word\n             | value COLONword : IDENT\n            | word IDENT'
    
_lr_action_items = {'ENDDEF':([22,30,35,37,45,],[-13,-12,40,-15,-14,]),'IDENT':([0,4,6,7,13,15,18,19,20,21,22,24,25,26,27,28,29,30,31,33,34,35,36,37,38,41,45,],[1,9,11,-12,20,-6,20,20,-20,27,-13,27,27,20,-21,20,-12,-12,27,27,20,20,20,-15,20,27,-14,]),'SEMICOLON':([9,11,20,24,25,26,27,31,32,36,38,39,40,41,42,],[14,15,-20,29,30,-17,-21,-16,37,-19,-17,43,44,-18,45,]),'SCAN':([7,12,13,15,16,17,22,37,43,44,45,],[-12,18,-7,-6,-9,-8,-13,-15,-11,-10,-14,]),'EQ':([1,20,21,27,33,],[4,-20,26,-21,38,]),'DOLLAR':([3,5,7,8,10,12,13,14,15,16,17,22,23,37,43,44,45,],[6,6,-12,-3,-4,-5,-7,-2,-6,-9,-8,-13,28,-15,-11,-10,-14,]),'COLON':([20,26,27,31,32,36,38,41,42,],[-20,-17,-21,-16,36,-19,-17,-18,36,]),'ENDSCAN':([22,29,34,37,45,],[-13,-12,39,-15,-14,]),'REF':([7,13,15,22,29,30,34,35,37,45,],[-12,23,-6,-13,-12,-12,23,23,-15,-14,]),'DEF':([7,12,13,15,16,17,22,37,43,44,45,],[-12,19,-7,-6,-9,-8,-13,-15,-11,-10,-14,]),'$end':([2,5,7,8,10,12,13,15,16,17,22,37,43,44,45,],[0,-1,-12,-3,-4,-5,-7,-6,-9,-8,-13,-15,-11,-10,-14,]),}

_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 = {'value':([26,38,],[32,42,]),'blocks':([3,],[5,]),'scan_block':([12,],[16,]),'def_block':([12,],[17,]),'block_content':([7,],[12,]),'block_header':([3,5,],[7,7,]),'vex':([0,],[2,]),'block_lines':([7,29,30,],[13,34,35,]),'block_line':([13,34,35,],[22,22,22,]),'vex_header':([0,],[3,]),'word':([13,18,19,26,28,34,35,36,38,],[21,24,25,31,33,21,21,41,31,]),'block':([3,5,],[8,10,]),}

_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' -> vex","S'",1,None,None,None),
  ('vex -> vex_header blocks','vex',2,'p_vex','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',79),
  ('vex_header -> IDENT EQ IDENT SEMICOLON','vex_header',4,'p_vex_header','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',84),
  ('blocks -> block','blocks',1,'p_blocks','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',90),
  ('blocks -> blocks block','blocks',2,'p_blocks','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',91),
  ('block -> block_header block_content','block',2,'p_block','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',99),
  ('block_header -> DOLLAR IDENT SEMICOLON','block_header',3,'p_block_header','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',105),
  ('block_content -> block_lines','block_content',1,'p_block_content','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',110),
  ('block_content -> block_content def_block','block_content',2,'p_block_content','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',111),
  ('block_content -> block_content scan_block','block_content',2,'p_block_content','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',112),
  ('def_block -> DEF word SEMICOLON block_lines ENDDEF SEMICOLON','def_block',6,'p_def_block','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',120),
  ('scan_block -> SCAN word SEMICOLON block_lines ENDSCAN SEMICOLON','scan_block',6,'p_scan_block','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',126),
  ('block_lines -> <empty>','block_lines',0,'p_block_lines','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',132),
  ('block_lines -> block_lines block_line','block_lines',2,'p_block_lines','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',133),
  ('block_line -> REF DOLLAR word EQ value SEMICOLON','block_line',6,'p_block_line','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',143),
  ('block_line -> word EQ value SEMICOLON','block_line',4,'p_block_line','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',144),
  ('value -> word','value',1,'p_value','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',154),
  ('value -> <empty>','value',0,'p_value','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',155),
  ('value -> value COLON word','value',3,'p_value','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',156),
  ('value -> value COLON','value',2,'p_value','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',157),
  ('word -> IDENT','word',1,'p_word','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',175),
  ('word -> word IDENT','word',2,'p_word','/cluster/difx/DiFX-trunk_64/svn/sites/MPIfR/vex/vex.py',176),
]
