# parsetab.py
# This file is automatically generated. Do not edit.
_tabversion = '3.10'
_lr_method = 'LALR'
_lr_signature = 'BLOCK BASE FIELD FIELD_HIGH MASK PADDING TAGGED_UNION TAG IDENTIFIER INTLIT LBRACE RBRACE LPAREN RPAREN COMMAstart : entity_listentity_list : entity_list : entity_list baseentity_list : entity_list blockentity_list : entity_list tagged_unionbase : BASE INTLITbase : BASE INTLIT LPAREN INTLIT COMMA INTLIT RPARENblock : BLOCK IDENTIFIER opt_visible_order_spec LBRACE fields RBRACEopt_visible_order_spec : opt_visible_order_spec : LPAREN visible_order_spec RPARENvisible_order_spec : visible_order_spec : IDENTIFIERvisible_order_spec : visible_order_spec COMMA IDENTIFIERfields : fields : fields FIELD IDENTIFIER INTLITfields : fields FIELD_HIGH IDENTIFIER INTLITfields : fields PADDING INTLITtagged_union : TAGGED_UNION IDENTIFIER IDENTIFIER LBRACE masks tags RBRACEtags :tags : tags TAG IDENTIFIER INTLITmasks :masks : masks MASK INTLIT INTLIT'
_lr_action_items = {'BASE':([0,2,3,4,5,9,27,34,38,],[-2,6,-3,-4,-5,-6,-8,-7,-18,]),'BLOCK':([0,2,3,4,5,9,27,34,38,],[-2,7,-3,-4,-5,-6,-8,-7,-18,]),'TAGGED_UNION':([0,2,3,4,5,9,27,34,38,],[-2,8,-3,-4,-5,-6,-8,-7,-18,]),'$end':([0,1,2,3,4,5,9,27,34,38,],[-2,0,-1,-3,-4,-5,-6,-8,-7,-18,]),'INTLIT':([6,12,21,30,33,35,36,40,43,],[9,16,26,37,40,41,42,44,45,]),'IDENTIFIER':([7,8,11,14,24,28,29,39,],[10,11,15,19,31,35,36,43,]),'LPAREN':([9,10,],[12,14,]),'LBRACE':([10,13,15,23,],[-9,17,20,-10,]),'RPAREN':([14,18,19,26,31,],[-11,23,-12,34,-13,]),'COMMA':([14,16,18,19,31,],[-11,21,24,-12,-13,]),'RBRACE':([17,20,22,25,32,37,41,42,44,45,],[-14,-21,27,-19,38,-17,-15,-16,-22,-20,]),'FIELD':([17,22,37,41,42,],[-14,28,-17,-15,-16,]),'FIELD_HIGH':([17,22,37,41,42,],[-14,29,-17,-15,-16,]),'PADDING':([17,22,37,41,42,],[-14,30,-17,-15,-16,]),'MASK':([20,25,44,],[-21,33,-22,]),'TAG':([20,25,32,44,45,],[-21,-19,39,-22,-20,]),}
_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 = {'start':([0,],[1,]),'entity_list':([0,],[2,]),'base':([2,],[3,]),'block':([2,],[4,]),'tagged_union':([2,],[5,]),'opt_visible_order_spec':([10,],[13,]),'visible_order_spec':([14,],[18,]),'fields':([17,],[22,]),'masks':([20,],[25,]),'tags':([25,],[32,]),}
_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' -> start","S'",1,None,None,None),
('start -> entity_list','start',1,'p_start','bitfield_gen.py',83),
('entity_list -> <empty>','entity_list',0,'p_entity_list_empty','bitfield_gen.py',87),
('entity_list -> entity_list base','entity_list',2,'p_entity_list_base','bitfield_gen.py',91),
('entity_list -> entity_list block','entity_list',2,'p_entity_list_block','bitfield_gen.py',98),
('entity_list -> entity_list tagged_union','entity_list',2,'p_entity_list_union','bitfield_gen.py',104),
('base -> BASE INTLIT','base',2,'p_base_simple','bitfield_gen.py',110),
('base -> BASE INTLIT LPAREN INTLIT COMMA INTLIT RPAREN','base',7,'p_base_mask','bitfield_gen.py',114),
('block -> BLOCK IDENTIFIER opt_visible_order_spec LBRACE fields RBRACE','block',6,'p_block','bitfield_gen.py',118),
('opt_visible_order_spec -> <empty>','opt_visible_order_spec',0,'p_opt_visible_order_spec_empty','bitfield_gen.py',123),
('opt_visible_order_spec -> LPAREN visible_order_spec RPAREN','opt_visible_order_spec',3,'p_opt_visible_order_spec','bitfield_gen.py',127),
('visible_order_spec -> <empty>','visible_order_spec',0,'p_visible_order_spec_empty','bitfield_gen.py',131),
('visible_order_spec -> IDENTIFIER','visible_order_spec',1,'p_visible_order_spec_single','bitfield_gen.py',135),
('visible_order_spec -> visible_order_spec COMMA IDENTIFIER','visible_order_spec',3,'p_visible_order_spec','bitfield_gen.py',139),
('fields -> <empty>','fields',0,'p_fields_empty','bitfield_gen.py',143),
('fields -> fields FIELD IDENTIFIER INTLIT','fields',4,'p_fields_field','bitfield_gen.py',147),
('fields -> fields FIELD_HIGH IDENTIFIER INTLIT','fields',4,'p_fields_field_high','bitfield_gen.py',151),
('fields -> fields PADDING INTLIT','fields',3,'p_fields_padding','bitfield_gen.py',155),
('tagged_union -> TAGGED_UNION IDENTIFIER IDENTIFIER LBRACE masks tags RBRACE','tagged_union',7,'p_tagged_union','bitfield_gen.py',159),
('tags -> <empty>','tags',0,'p_tags_empty','bitfield_gen.py',164),
('tags -> tags TAG IDENTIFIER INTLIT','tags',4,'p_tags','bitfield_gen.py',168),
('masks -> <empty>','masks',0,'p_masks_empty','bitfield_gen.py',172),
('masks -> masks MASK INTLIT INTLIT','masks',4,'p_masks','bitfield_gen.py',176),
]