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

_lr_method = 'LALR'

_lr_signature = '\xc3\xd0\xf4b\xf70\x88\x8a\xa2\xc3\xfa\xbe\xf3\xc0\xeb\xd3'
    
_lr_action_items = {'CONST':([7,28,49,58,59,105,107,127,],[16,16,56,56,-29,-30,-42,-43,]),'NATIVEID':([50,],[61,]),'NUMBER':([79,84,85,100,101,102,103,104,106,],[87,87,87,87,87,87,87,87,87,]),'LSHIFT':([86,87,88,89,98,99,115,116,117,118,119,120,121,],[103,-31,-33,-32,103,-35,-34,-36,-38,-37,-39,-40,103,]),'RSHIFT':([86,87,88,89,98,99,115,116,117,118,119,120,121,],[104,-31,-33,-32,104,-35,-34,-36,-38,-37,-39,-40,104,]),'INOUT':([31,81,95,108,],[-14,-15,113,-15,]),'NATIVE':([0,2,3,6,8,9,10,11,31,35,51,55,77,],[-15,-15,-15,-15,-15,-15,-15,26,-14,-9,-54,-22,-10,]),')':([37,38,61,81,87,88,89,91,92,93,94,98,99,109,115,116,117,118,119,120,121,122,126,129,130,131,134,],[43,44,71,-45,-31,-33,-32,-64,-65,-46,110,115,-35,-44,-34,-36,-38,-37,-39,-40,-41,-46,-47,-48,132,-68,-69,]),'(':([16,18,19,34,42,76,79,84,85,100,101,102,103,104,106,124,],[-13,30,-12,-11,50,81,84,84,84,84,84,84,84,84,84,128,]),'+':([86,87,88,89,98,99,115,116,117,118,119,120,121,],[100,-31,-33,-32,100,-35,-34,-36,-38,-37,100,100,100,]),'*':([86,87,88,89,98,99,115,116,117,118,119,120,121,],[101,-31,-33,-32,101,-35,-34,101,-38,101,101,101,101,]),'-':([79,84,85,86,87,88,89,98,99,100,101,102,103,104,106,115,116,117,118,119,120,121,],[85,85,85,102,-31,-33,-32,102,-35,85,85,85,85,85,85,-34,-36,-38,-37,102,102,102,]),',':([16,17,18,19,29,43,44,91,92,93,122,129,131,],[-13,28,-21,-12,-18,-19,-20,-64,-65,108,108,-48,133,]),'IID':([30,],[38,]),'READONLY':([31,49,58,59,60,105,107,127,],[-14,-15,-15,-29,69,-30,-42,-43,]),';':([27,32,33,40,41,45,46,48,62,66,71,78,82,86,87,88,89,90,91,92,97,99,110,115,116,117,118,119,120,121,123,132,],[35,-26,-26,-56,-24,-25,51,55,-55,-23,77,-63,96,105,-31,-33,-32,107,-64,-65,-62,-35,-67,-34,-36,-38,-37,-39,-40,-41,127,-66,]),'IDENTIFIER':([4,7,14,24,25,26,28,30,31,39,47,49,53,54,56,58,59,60,64,65,70,72,73,75,79,80,84,85,96,100,101,102,103,104,105,106,107,111,112,113,114,125,127,128,133,],[14,19,27,32,33,34,19,37,-14,45,-15,-15,-15,64,65,-15,-29,70,-61,74,76,78,-60,80,88,92,88,88,-59,88,88,88,88,88,-30,88,-42,125,-49,-50,-51,92,-43,131,131,]),'=':([74,78,],[79,83,]),'?':([64,],[73,]),'OUT':([31,81,95,108,],[-14,-15,114,-15,]),'TYPEDEF':([0,2,3,6,8,9,10,35,51,55,77,],[4,4,4,4,4,4,4,-9,-54,-22,-10,]),'STRING':([83,],[97,]),'DICTIONARY':([0,2,3,6,8,9,10,11,31,35,51,55,77,80,125,],[-15,-15,-15,-15,-15,-15,-15,24,-14,-9,-54,-22,-10,91,91,]),'RAISES':([110,],[124,]),'IN':([31,81,95,108,],[-14,-15,112,-15,]),'[':([0,2,3,6,8,9,10,35,47,49,51,53,55,58,59,77,81,96,105,107,108,127,],[7,7,7,7,7,7,7,-9,7,7,-54,7,-22,7,-29,-10,7,-59,-30,-42,7,-43,]),'INCLUDE':([0,2,3,6,8,9,10,35,51,55,77,],[8,8,8,8,8,8,8,-9,-54,-22,-10,]),']':([16,17,18,19,20,29,36,43,44,],[-13,-16,-21,-12,31,-18,-17,-19,-20,]),':':([32,33,],[39,39,]),'ATTRIBUTE':([31,49,58,59,60,68,69,105,107,127,],[-14,-15,-15,-29,-53,75,-52,-30,-42,-43,]),'CDATA':([0,2,3,6,8,9,10,35,49,51,55,58,59,77,105,107,127,],[10,10,10,10,10,10,10,-9,59,-54,-22,59,-29,-10,-30,-42,-43,]),'INTERFACE':([0,2,3,6,8,9,10,11,31,35,51,55,77,],[-15,-15,-15,-15,-15,-15,-15,25,-14,-9,-54,-22,-10,]),'{':([32,33,40,41,45,],[-26,-26,47,49,-25,]),'$end':([0,1,2,3,5,6,8,9,10,12,13,15,21,22,23,35,51,55,77,],[-2,-1,-2,-2,0,-2,-2,-2,-2,-7,-6,-5,-4,-8,-3,-9,-54,-22,-10,]),'}':([47,49,52,53,57,58,59,63,67,96,105,107,127,],[-57,-27,62,-57,66,-27,-29,-58,-28,-59,-30,-42,-43,]),'|':([86,87,88,89,98,99,115,116,117,118,119,120,121,],[106,-31,-33,-32,106,-35,-34,-36,-38,-37,-39,-40,-41,]),'HEXNUM':([79,84,85,100,101,102,103,104,106,],[89,89,89,89,89,89,89,89,89,]),}

_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 = {'paramlist':([81,],[94,]),'attribute':([7,28,],[17,17,]),'dictmember':([47,53,],[53,53,]),'number':([79,84,85,100,101,102,103,104,106,],[86,98,99,116,117,118,119,120,121,]),'productions':([0,2,3,6,8,9,10,],[1,12,13,15,21,22,23,]),'raises':([110,],[123,]),'ifacebody':([41,],[48,]),'dictbody':([40,],[46,]),'attlist':([7,28,],[20,36,]),'native':([0,2,3,6,8,9,10,],[9,9,9,9,9,9,9,]),'optdefvalue':([78,],[82,]),'typedef':([0,2,3,6,8,9,10,],[2,2,2,2,2,2,2,]),'attributeval':([18,],[29,]),'optreadonly':([60,],[68,]),'ifacebase':([32,33,],[40,41,]),'afternativeid':([34,],[42,]),'param':([81,108,],[93,122,]),'member':([49,58,],[58,58,]),'dictionary':([0,2,3,6,8,9,10,],[3,3,3,3,3,3,3,]),'idlfile':([0,],[5,]),'members':([49,58,],[57,67,]),'moreparams':([93,122,],[109,126,]),'interface':([0,2,3,6,8,9,10,],[6,6,6,6,6,6,6,]),'idlist':([128,133,],[130,134,]),'dictmembers':([47,53,],[52,63,]),'optnullable':([64,],[72,]),'anyident':([7,28,],[18,18,]),'attributes':([0,2,3,6,8,9,10,47,49,53,58,81,108,],[11,11,11,11,11,11,11,54,60,54,60,95,95,]),'identifier':([80,125,],[90,129,]),'paramtype':([95,],[111,]),}

_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' -> idlfile","S'",1,None,None,None),
  ('idlfile -> productions','idlfile',1,'p_idlfile','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1190),
  ('productions -> <empty>','productions',0,'p_productions_start','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1194),
  ('productions -> CDATA productions','productions',2,'p_productions_cdata','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1198),
  ('productions -> INCLUDE productions','productions',2,'p_productions_include','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1203),
  ('productions -> interface productions','productions',2,'p_productions_interface','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1208),
  ('productions -> dictionary productions','productions',2,'p_productions_interface','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1209),
  ('productions -> typedef productions','productions',2,'p_productions_interface','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1210),
  ('productions -> native productions','productions',2,'p_productions_interface','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1211),
  ('typedef -> TYPEDEF IDENTIFIER IDENTIFIER ;','typedef',4,'p_typedef','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1216),
  ('native -> attributes NATIVE IDENTIFIER afternativeid ( NATIVEID ) ;','native',8,'p_native','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1223),
  ('afternativeid -> <empty>','afternativeid',0,'p_afternativeid','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1230),
  ('anyident -> IDENTIFIER','anyident',1,'p_anyident','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1236),
  ('anyident -> CONST','anyident',1,'p_anyident','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1237),
  ('attributes -> [ attlist ]','attributes',3,'p_attributes','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1242),
  ('attributes -> <empty>','attributes',0,'p_attributes','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1243),
  ('attlist -> attribute','attlist',1,'p_attlist_start','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1251),
  ('attlist -> attribute , attlist','attlist',3,'p_attlist_continue','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1255),
  ('attribute -> anyident attributeval','attribute',2,'p_attribute','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1260),
  ('attributeval -> ( IDENTIFIER )','attributeval',3,'p_attributeval','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1264),
  ('attributeval -> ( IID )','attributeval',3,'p_attributeval','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1265),
  ('attributeval -> <empty>','attributeval',0,'p_attributeval','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1266),
  ('interface -> attributes INTERFACE IDENTIFIER ifacebase ifacebody ;','interface',6,'p_interface','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1271),
  ('ifacebody -> { members }','ifacebody',3,'p_ifacebody','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1300),
  ('ifacebody -> <empty>','ifacebody',0,'p_ifacebody','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1301),
  ('ifacebase -> : IDENTIFIER','ifacebase',2,'p_ifacebase','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1306),
  ('ifacebase -> <empty>','ifacebase',0,'p_ifacebase','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1307),
  ('members -> <empty>','members',0,'p_members_start','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1312),
  ('members -> member members','members',2,'p_members_continue','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1316),
  ('member -> CDATA','member',1,'p_member_cdata','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1321),
  ('member -> CONST IDENTIFIER IDENTIFIER = number ;','member',6,'p_member_const','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1325),
  ('number -> NUMBER','number',1,'p_number_decimal','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1333),
  ('number -> HEXNUM','number',1,'p_number_hex','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1338),
  ('number -> IDENTIFIER','number',1,'p_number_identifier','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1343),
  ('number -> ( number )','number',3,'p_number_paren','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1349),
  ('number -> - number','number',2,'p_number_neg','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1353),
  ('number -> number + number','number',3,'p_number_add','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1358),
  ('number -> number - number','number',3,'p_number_add','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1359),
  ('number -> number * number','number',3,'p_number_add','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1360),
  ('number -> number LSHIFT number','number',3,'p_number_shift','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1371),
  ('number -> number RSHIFT number','number',3,'p_number_shift','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1372),
  ('number -> number | number','number',3,'p_number_bitor','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1381),
  ('member -> attributes optreadonly ATTRIBUTE IDENTIFIER identifier ;','member',6,'p_member_att','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1387),
  ('member -> attributes IDENTIFIER IDENTIFIER ( paramlist ) raises ;','member',8,'p_member_method','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1405),
  ('paramlist -> param moreparams','paramlist',2,'p_paramlist','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1420),
  ('paramlist -> <empty>','paramlist',0,'p_paramlist','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1421),
  ('moreparams -> <empty>','moreparams',0,'p_moreparams_start','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1429),
  ('moreparams -> , param moreparams','moreparams',3,'p_moreparams_continue','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1433),
  ('param -> attributes paramtype IDENTIFIER identifier','param',4,'p_param','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1438),
  ('paramtype -> IN','paramtype',1,'p_paramtype','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1446),
  ('paramtype -> INOUT','paramtype',1,'p_paramtype','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1447),
  ('paramtype -> OUT','paramtype',1,'p_paramtype','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1448),
  ('optreadonly -> READONLY','optreadonly',1,'p_optreadonly','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1452),
  ('optreadonly -> <empty>','optreadonly',0,'p_optreadonly','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1453),
  ('dictionary -> attributes DICTIONARY IDENTIFIER ifacebase dictbody ;','dictionary',6,'p_dictionary','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1460),
  ('dictbody -> { dictmembers }','dictbody',3,'p_dictbody','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1478),
  ('dictbody -> <empty>','dictbody',0,'p_dictbody','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1479),
  ('dictmembers -> <empty>','dictmembers',0,'p_dictmembers_start','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1484),
  ('dictmembers -> dictmember dictmembers','dictmembers',2,'p_dictmembers_continue','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1488),
  ('dictmember -> attributes IDENTIFIER optnullable IDENTIFIER optdefvalue ;','dictmember',6,'p_dictmember','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1493),
  ('optnullable -> ?','optnullable',1,'p_optnullable','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1509),
  ('optnullable -> <empty>','optnullable',0,'p_optnullable','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1510),
  ('optdefvalue -> = STRING','optdefvalue',2,'p_optdefvalue','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1517),
  ('optdefvalue -> <empty>','optdefvalue',0,'p_optdefvalue','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1518),
  ('identifier -> DICTIONARY','identifier',1,'p_identifier','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1525),
  ('identifier -> IDENTIFIER','identifier',1,'p_identifier','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1526),
  ('raises -> RAISES ( idlist )','raises',4,'p_raises','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1530),
  ('raises -> <empty>','raises',0,'p_raises','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1531),
  ('idlist -> IDENTIFIER','idlist',1,'p_idlist','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1538),
  ('idlist -> IDENTIFIER , idlist','idlist',3,'p_idlist_continue','/work/a/ports/www/libxul/work/mozilla-esr17/xpcom/idl-parser/xpidl.py',1542),
]
