
# ../../xpcom/idl-parser\xpidlyacc.py
# This file is automatically generated. Do not edit.
_tabversion = '3.2'

_lr_method = 'LALR'

_lr_signature = '\xc9g\xb2\n\x94\xa2\x97\x01L\xaedPAp6x'
    
_lr_action_items = {'CONST':([7,28,49,58,59,107,109,130,],[16,16,56,56,-29,-30,-42,-43,]),'NATIVEID':([50,],[61,]),'NUMBER':([79,84,85,102,103,104,105,106,108,],[87,87,87,87,87,87,87,87,87,]),'LSHIFT':([86,87,88,89,100,101,118,119,120,121,122,123,124,],[105,-31,-33,-32,105,-35,-34,-36,-38,-37,-39,-40,105,]),'RSHIFT':([86,87,88,89,100,101,118,119,120,121,122,123,124,],[106,-31,-33,-32,106,-35,-34,-36,-38,-37,-39,-40,106,]),'INOUT':([31,81,95,110,],[-14,-15,115,-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,100,101,111,118,119,120,121,122,123,124,125,129,132,133,134,137,],[43,44,71,-45,-31,-33,-32,-66,-67,-46,112,118,-35,-44,-34,-36,-38,-37,-39,-40,-41,-46,-47,-48,135,-70,-71,]),'(':([16,18,19,34,42,76,79,84,85,102,103,104,105,106,108,127,],[-13,30,-12,-11,50,81,84,84,84,84,84,84,84,84,84,131,]),'+':([86,87,88,89,100,101,118,119,120,121,122,123,124,],[102,-31,-33,-32,102,-35,-34,-36,-38,-37,102,102,102,]),'*':([86,87,88,89,100,101,118,119,120,121,122,123,124,],[103,-31,-33,-32,103,-35,-34,103,-38,103,103,103,103,]),'-':([79,83,84,85,86,87,88,89,100,101,102,103,104,105,106,108,118,119,120,121,122,123,124,],[85,98,85,85,104,-31,-33,-32,104,-35,85,85,85,85,85,85,-34,-36,-38,-37,104,104,104,]),',':([16,17,18,19,29,43,44,91,92,93,125,132,134,],[-13,28,-21,-12,-18,-19,-20,-66,-67,110,110,-48,136,]),'IID':([30,],[38,]),'READONLY':([31,49,58,59,60,107,109,130,],[-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,101,112,117,118,119,120,121,122,123,124,126,135,],[35,-26,-26,-56,-24,-25,51,55,-55,-23,77,-65,96,107,-31,-33,-32,109,-66,-67,-63,-62,-35,-69,-64,-34,-36,-38,-37,-39,-40,-41,130,-68,]),'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,102,103,104,105,106,107,108,109,113,114,115,116,128,130,131,136,],[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,128,-49,-50,-51,92,-43,134,134,]),'=':([74,78,],[79,83,]),'?':([64,],[73,]),'OUT':([31,81,95,110,],[-14,-15,116,-15,]),'TYPEDEF':([0,2,3,6,8,9,10,35,51,55,77,],[4,4,4,4,4,4,4,-9,-54,-22,-10,]),'INFINITY':([83,98,],[97,117,]),'STRING':([83,],[99,]),'DICTIONARY':([0,2,3,6,8,9,10,11,31,35,51,55,77,80,128,],[-15,-15,-15,-15,-15,-15,-15,24,-14,-9,-54,-22,-10,91,91,]),'RAISES':([112,],[127,]),'IN':([31,81,95,110,],[-14,-15,114,-15,]),'[':([0,2,3,6,8,9,10,35,47,49,51,53,55,58,59,77,81,96,107,109,110,130,],[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,107,109,130,],[-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,107,109,130,],[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,107,109,130,],[-57,-27,62,-57,66,-27,-29,-58,-28,-59,-30,-42,-43,]),'|':([86,87,88,89,100,101,118,119,120,121,122,123,124,],[108,-31,-33,-32,108,-35,-34,-36,-38,-37,-39,-40,-41,]),'HEXNUM':([79,84,85,102,103,104,105,106,108,],[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,102,103,104,105,106,108,],[86,100,101,119,120,121,122,123,124,]),'productions':([0,2,3,6,8,9,10,],[1,12,13,15,21,22,23,]),'raises':([112,],[126,]),'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,110,],[93,125,]),'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,125,],[111,129,]),'interface':([0,2,3,6,8,9,10,],[6,6,6,6,6,6,6,]),'idlist':([131,136,],[133,137,]),'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,110,],[11,11,11,11,11,11,11,54,60,54,60,95,95,]),'identifier':([80,128,],[90,132,]),'paramtype':([95,],[113,]),}

_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','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1115),
  ('productions -> <empty>','productions',0,'p_productions_start','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1119),
  ('productions -> CDATA productions','productions',2,'p_productions_cdata','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1123),
  ('productions -> INCLUDE productions','productions',2,'p_productions_include','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1128),
  ('productions -> interface productions','productions',2,'p_productions_interface','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1133),
  ('productions -> dictionary productions','productions',2,'p_productions_interface','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1134),
  ('productions -> typedef productions','productions',2,'p_productions_interface','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1135),
  ('productions -> native productions','productions',2,'p_productions_interface','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1136),
  ('typedef -> TYPEDEF IDENTIFIER IDENTIFIER ;','typedef',4,'p_typedef','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1141),
  ('native -> attributes NATIVE IDENTIFIER afternativeid ( NATIVEID ) ;','native',8,'p_native','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1148),
  ('afternativeid -> <empty>','afternativeid',0,'p_afternativeid','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1155),
  ('anyident -> IDENTIFIER','anyident',1,'p_anyident','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1161),
  ('anyident -> CONST','anyident',1,'p_anyident','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1162),
  ('attributes -> [ attlist ]','attributes',3,'p_attributes','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1167),
  ('attributes -> <empty>','attributes',0,'p_attributes','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1168),
  ('attlist -> attribute','attlist',1,'p_attlist_start','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1176),
  ('attlist -> attribute , attlist','attlist',3,'p_attlist_continue','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1180),
  ('attribute -> anyident attributeval','attribute',2,'p_attribute','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1185),
  ('attributeval -> ( IDENTIFIER )','attributeval',3,'p_attributeval','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1189),
  ('attributeval -> ( IID )','attributeval',3,'p_attributeval','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1190),
  ('attributeval -> <empty>','attributeval',0,'p_attributeval','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1191),
  ('interface -> attributes INTERFACE IDENTIFIER ifacebase ifacebody ;','interface',6,'p_interface','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1196),
  ('ifacebody -> { members }','ifacebody',3,'p_ifacebody','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1225),
  ('ifacebody -> <empty>','ifacebody',0,'p_ifacebody','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1226),
  ('ifacebase -> : IDENTIFIER','ifacebase',2,'p_ifacebase','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1231),
  ('ifacebase -> <empty>','ifacebase',0,'p_ifacebase','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1232),
  ('members -> <empty>','members',0,'p_members_start','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1237),
  ('members -> member members','members',2,'p_members_continue','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1241),
  ('member -> CDATA','member',1,'p_member_cdata','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1246),
  ('member -> CONST IDENTIFIER IDENTIFIER = number ;','member',6,'p_member_const','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1250),
  ('number -> NUMBER','number',1,'p_number_decimal','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1258),
  ('number -> HEXNUM','number',1,'p_number_hex','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1263),
  ('number -> IDENTIFIER','number',1,'p_number_identifier','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1268),
  ('number -> ( number )','number',3,'p_number_paren','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1274),
  ('number -> - number','number',2,'p_number_neg','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1278),
  ('number -> number + number','number',3,'p_number_add','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1283),
  ('number -> number - number','number',3,'p_number_add','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1284),
  ('number -> number * number','number',3,'p_number_add','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1285),
  ('number -> number LSHIFT number','number',3,'p_number_shift','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1296),
  ('number -> number RSHIFT number','number',3,'p_number_shift','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1297),
  ('number -> number | number','number',3,'p_number_bitor','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1306),
  ('member -> attributes optreadonly ATTRIBUTE IDENTIFIER identifier ;','member',6,'p_member_att','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1312),
  ('member -> attributes IDENTIFIER IDENTIFIER ( paramlist ) raises ;','member',8,'p_member_method','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1330),
  ('paramlist -> param moreparams','paramlist',2,'p_paramlist','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1345),
  ('paramlist -> <empty>','paramlist',0,'p_paramlist','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1346),
  ('moreparams -> <empty>','moreparams',0,'p_moreparams_start','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1354),
  ('moreparams -> , param moreparams','moreparams',3,'p_moreparams_continue','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1358),
  ('param -> attributes paramtype IDENTIFIER identifier','param',4,'p_param','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1363),
  ('paramtype -> IN','paramtype',1,'p_paramtype','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1371),
  ('paramtype -> INOUT','paramtype',1,'p_paramtype','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1372),
  ('paramtype -> OUT','paramtype',1,'p_paramtype','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1373),
  ('optreadonly -> READONLY','optreadonly',1,'p_optreadonly','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1377),
  ('optreadonly -> <empty>','optreadonly',0,'p_optreadonly','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1378),
  ('dictionary -> attributes DICTIONARY IDENTIFIER ifacebase dictbody ;','dictionary',6,'p_dictionary','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1385),
  ('dictbody -> { dictmembers }','dictbody',3,'p_dictbody','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1403),
  ('dictbody -> <empty>','dictbody',0,'p_dictbody','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1404),
  ('dictmembers -> <empty>','dictmembers',0,'p_dictmembers_start','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1409),
  ('dictmembers -> dictmember dictmembers','dictmembers',2,'p_dictmembers_continue','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1413),
  ('dictmember -> attributes IDENTIFIER optnullable IDENTIFIER optdefvalue ;','dictmember',6,'p_dictmember','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1418),
  ('optnullable -> ?','optnullable',1,'p_optnullable','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1434),
  ('optnullable -> <empty>','optnullable',0,'p_optnullable','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1435),
  ('optdefvalue -> = STRING','optdefvalue',2,'p_optdefvalue','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1442),
  ('optdefvalue -> = INFINITY','optdefvalue',2,'p_optdefvalue','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1443),
  ('optdefvalue -> = - INFINITY','optdefvalue',3,'p_optdefvalue','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1444),
  ('optdefvalue -> <empty>','optdefvalue',0,'p_optdefvalue','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1445),
  ('identifier -> DICTIONARY','identifier',1,'p_identifier','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1452),
  ('identifier -> IDENTIFIER','identifier',1,'p_identifier','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1453),
  ('raises -> RAISES ( idlist )','raises',4,'p_raises','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1457),
  ('raises -> <empty>','raises',0,'p_raises','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1458),
  ('idlist -> IDENTIFIER','idlist',1,'p_idlist','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1465),
  ('idlist -> IDENTIFIER , idlist','idlist',3,'p_idlist_continue','s:\\mozilla\\central\\mozilla-central\\xpcom\\idl-parser\\xpidl.py',1469),
]
