parsetab.py 28.7 KB

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

_lr_method = 'LALR'

_lr_signature = 'rightELSEAMPERSAND ARROW ASSIGN ASTERISK AUTO BREAK CARET CASE CHAR CHARACTER COLON COMMA CONST CONTINUE DEFAULT DIV DO DOT DOUBLE DOUBLE_AMPERSAND DOUBLE_MINUS DOUBLE_PIPE DOUBLE_PLUS ELLIPSIS ELSE ENUM EQ EQ_AMPERSAND EQ_CARET EQ_DIV EQ_MINUS EQ_MODULO EQ_PIPE EQ_PLUS EQ_SHIFT_LEFT EQ_SHIFT_RIGHT EQ_TIMES EXCLAMATION EXTERN FLOAT FNUMBER FOR GOTO GREATER GREATER_EQ ID IF INT INUMBER LBRACE LBRACKET LESS LESS_EQ LONG LPAREN MINUS MODULO NOT_EQ PIPE PLUS POUND QUESTION RBRACE RBRACKET REGISTER RETURN RPAREN SEMICOLON SHIFT_LEFT SHIFT_RIGHT SHORT SIGNED SIZEOF STATIC STRING STRUCT SWITCH TILDE TYPEDEF UNION UNSIGNED VOID VOLATILE WHILEtranslation_unit : external_declarationtranslation_unit : translation_unit external_declarationexternal_declaration : function_definition\n                            | declarationfunction_definition : type_specifier declarator compound_statementfunction_definition : STATIC type_specifier declarator compound_statementdeclaration : type_specifier declarator SEMICOLONdeclaration : EXTERN type_specifier declarator SEMICOLONdeclaration_list_opt : emptydeclaration_list_opt : declaration_listdeclaration_list : declarationdeclaration_list : declaration_list declarationtype_specifier : INT\n                      | CHARdeclarator : direct_declaratordeclarator : ASTERISK declaratordirect_declarator : IDdirect_declarator : direct_declarator LPAREN parameter_type_list RPARENdirect_declarator : direct_declarator LPAREN RPARENparameter_type_list : parameter_listparameter_type_list : parameter_list COMMA ELLIPSISparameter_list : parameter_declarationparameter_list : parameter_list COMMA parameter_declarationparameter_declaration : type_specifier declaratorcompound_statement : LBRACE declaration_list_opt statement_list RBRACEcompound_statement : LBRACE declaration_list_opt RBRACEexpression_statement : expression SEMICOLONexpression : equality_expressionexpression : equality_expression ASSIGN expression\n                  | equality_expression EQ_PLUS expression\n                  | equality_expression EQ_MINUS expressionequality_expression : relational_expressionequality_expression : equality_expression EQ relational_expression\n                           | equality_expression NOT_EQ relational_expressionrelational_expression : additive_expressionrelational_expression : relational_expression LESS additive_expression\n                             | relational_expression GREATER additive_expression\n                             | relational_expression LESS_EQ additive_expression\n                             | relational_expression GREATER_EQ additive_expressionpostfix_expression : primary_expressionpostfix_expression : postfix_expression LPAREN argument_expression_list RPARENpostfix_expression : postfix_expression LPAREN RPARENpostfix_expression : postfix_expression LBRACKET expression RBRACKETargument_expression_list : expressionargument_expression_list : argument_expression_list COMMA expressionunary_expression : postfix_expressionunary_expression : MINUS unary_expressionunary_expression : EXCLAMATION unary_expressionunary_expression : ASTERISK unary_expressionunary_expression : AMPERSAND unary_expressionmult_expression : unary_expressionmult_expression : mult_expression ASTERISK unary_expression\n                       | mult_expression DIV unary_expression\n                       | mult_expression MODULO unary_expressionadditive_expression : mult_expressionadditive_expression : additive_expression PLUS mult_expression\n                           | additive_expression MINUS mult_expressionprimary_expression : IDprimary_expression : INUMBERprimary_expression : FNUMBERprimary_expression : CHARACTERprimary_expression : string_literalprimary_expression : LPAREN expression RPARENstring_literal : STRINGstring_literal : string_literal STRINGstatement : compound_statement\n                 | expression_statement\n                 | selection_statement\n                 | iteration_statement\n                 | jump_statementjump_statement : RETURN SEMICOLONjump_statement : RETURN expression SEMICOLONjump_statement : BREAK SEMICOLONjump_statement : CONTINUE SEMICOLONiteration_statement : WHILE LPAREN expression RPAREN statementiteration_statement : FOR LPAREN expression_statement expression_statement expression RPAREN statementselection_statement : IF LPAREN expression RPAREN statementselection_statement : IF LPAREN expression RPAREN statement ELSE statementstatement_list : statementstatement_list : statement_list statementempty :'
    
_lr_action_items = {'ASSIGN':([41,42,43,47,48,50,52,55,59,61,63,67,71,76,81,90,95,96,108,109,110,111,112,113,114,117,120,121,122,125,128,132,134,],[-32,-62,-35,-51,-64,-59,-46,-55,-60,-58,-40,-61,102,-48,-65,-50,-49,-47,-39,-36,-38,-37,-56,-57,-63,-42,-52,-54,-53,-33,-34,-43,-41,]),'BREAK':([19,21,30,32,33,34,35,44,46,51,53,56,57,66,69,73,86,87,98,99,100,106,130,131,136,137,140,141,142,143,144,],[-81,-7,-9,-11,65,-10,-8,-79,-26,65,-68,-70,-66,-67,-69,-12,-80,-25,-73,-74,-27,-71,-72,65,65,-75,-77,65,65,-76,-78,]),'LESS':([41,42,43,47,48,50,52,55,59,61,63,67,76,81,90,95,96,108,109,110,111,112,113,114,117,120,121,122,125,128,132,134,],[78,-62,-35,-51,-64,-59,-46,-55,-60,-58,-40,-61,-48,-65,-50,-49,-47,-39,-36,-38,-37,-56,-57,-63,-42,-52,-54,-53,78,78,-43,-41,]),'IF':([19,21,30,32,33,34,35,44,46,51,53,56,57,66,69,73,86,87,98,99,100,106,130,131,136,137,140,141,142,143,144,],[-81,-7,-9,-11,64,-10,-8,-79,-26,64,-68,-70,-66,-67,-69,-12,-80,-25,-73,-74,-27,-71,-72,64,64,-75,-77,64,64,-76,-78,]),'NOT_EQ':([41,42,43,47,48,50,52,55,59,61,63,67,71,76,81,90,95,96,108,109,110,111,112,113,114,117,120,121,122,125,128,132,134,],[-32,-62,-35,-51,-64,-59,-46,-55,-60,-58,-40,-61,104,-48,-65,-50,-49,-47,-39,-36,-38,-37,-56,-57,-63,-42,-52,-54,-53,-33,-34,-43,-41,]),'FOR':([19,21,30,32,33,34,35,44,46,51,53,56,57,66,69,73,86,87,98,99,100,106,130,131,136,137,140,141,142,143,144,],[-81,-7,-9,-11,58,-10,-8,-79,-26,58,-68,-70,-66,-67,-69,-12,-80,-25,-73,-74,-27,-71,-72,58,58,-75,-77,58,58,-76,-78,]),'MINUS':([19,21,30,32,33,34,35,40,42,43,44,45,46,47,48,50,51,52,53,54,55,56,57,59,60,61,62,63,66,67,69,72,73,76,77,78,79,80,81,82,83,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,108,109,110,111,112,113,114,117,120,121,122,123,130,131,132,133,134,135,136,137,140,141,142,143,144,],[-81,-7,-9,-11,62,-10,-8,62,-62,83,-79,62,-26,-51,-64,-59,62,-46,-68,62,-55,-70,-66,-60,62,-58,62,-40,-67,-61,-69,62,-12,-48,62,62,62,62,-65,62,62,62,-80,-25,62,62,-50,62,62,62,62,-49,-47,62,-73,-74,-27,62,62,62,62,62,-71,83,83,83,83,-56,-57,-63,-42,-52,-54,-53,62,-72,62,-43,62,-41,62,62,-75,-77,62,62,-76,-78,]),'GREATER':([41,42,43,47,48,50,52,55,59,61,63,67,76,81,90,95,96,108,109,110,111,112,113,114,117,120,121,122,125,128,132,134,],[80,-62,-35,-51,-64,-59,-46,-55,-60,-58,-40,-61,-48,-65,-50,-49,-47,-39,-36,-38,-37,-56,-57,-63,-42,-52,-54,-53,80,80,-43,-41,]),'COMMA':([12,15,22,26,27,28,36,38,41,42,43,47,48,50,52,55,59,61,63,67,71,75,76,81,90,95,96,108,109,110,111,112,113,114,117,118,119,120,121,122,125,126,127,128,129,132,134,138,],[-15,-17,-16,37,-19,-22,-24,-18,-32,-62,-35,-51,-64,-59,-46,-55,-60,-58,-40,-61,-28,-23,-48,-65,-50,-49,-47,-39,-36,-38,-37,-56,-57,-63,-42,-44,133,-52,-54,-53,-33,-29,-31,-34,-30,-43,-41,-45,]),'RPAREN':([12,15,18,22,26,27,28,29,36,38,41,42,43,47,48,50,52,55,59,61,63,67,71,74,75,76,81,84,89,90,95,96,108,109,110,111,112,113,114,115,117,118,119,120,121,122,124,125,126,127,128,129,132,134,138,139,],[-15,-17,27,-16,-20,-19,-22,38,-24,-18,-32,-62,-35,-51,-64,-59,-46,-55,-60,-58,-40,-61,-28,-21,-23,-48,-65,114,117,-50,-49,-47,-39,-36,-38,-37,-56,-57,-63,131,-42,-44,134,-52,-54,-53,136,-33,-29,-31,-34,-30,-43,-41,-45,141,]),'LESS_EQ':([41,42,43,47,48,50,52,55,59,61,63,67,76,81,90,95,96,108,109,110,111,112,113,114,117,120,121,122,125,128,132,134,],[79,-62,-35,-51,-64,-59,-46,-55,-60,-58,-40,-61,-48,-65,-50,-49,-47,-39,-36,-38,-37,-56,-57,-63,-42,-52,-54,-53,79,79,-43,-41,]),'EQ_MINUS':([41,42,43,47,48,50,52,55,59,61,63,67,71,76,81,90,95,96,108,109,110,111,112,113,114,117,120,121,122,125,128,132,134,],[-32,-62,-35,-51,-64,-59,-46,-55,-60,-58,-40,-61,103,-48,-65,-50,-49,-47,-39,-36,-38,-37,-56,-57,-63,-42,-52,-54,-53,-33,-34,-43,-41,]),'ASTERISK':([4,5,8,11,14,16,19,21,25,30,31,32,33,34,35,40,42,44,45,46,47,48,50,51,52,53,54,55,56,57,59,60,61,62,63,66,67,69,72,73,76,77,78,79,80,81,82,83,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,112,113,114,117,120,121,122,123,130,131,132,133,134,135,136,137,140,141,142,143,144,],[14,-13,-14,14,14,14,-81,-7,14,-9,14,-11,60,-10,-8,60,-62,-79,60,-26,-51,-64,-59,60,-46,-68,60,91,-70,-66,-60,60,-58,60,-40,-67,-61,-69,60,-12,-48,60,60,60,60,-65,60,60,60,-80,-25,60,60,-50,60,60,60,60,-49,-47,60,-73,-74,-27,60,60,60,60,60,-71,91,91,-63,-42,-52,-54,-53,60,-72,60,-43,60,-41,60,60,-75,-77,60,60,-76,-78,]),'EQ':([41,42,43,47,48,50,52,55,59,61,63,67,71,76,81,90,95,96,108,109,110,111,112,113,114,117,120,121,122,125,128,132,134,],[-32,-62,-35,-51,-64,-59,-46,-55,-60,-58,-40,-61,101,-48,-65,-50,-49,-47,-39,-36,-38,-37,-56,-57,-63,-42,-52,-54,-53,-33,-34,-43,-41,]),'CHAR':([0,1,2,3,6,7,9,10,18,19,20,21,24,32,34,35,37,46,73,87,],[8,8,-3,8,-4,-1,8,-2,8,8,-5,-7,-6,-11,8,-8,8,-26,-12,-25,]),'LPAREN':([12,15,19,21,27,30,32,33,34,35,38,40,42,44,45,46,48,49,50,51,52,53,54,56,57,58,59,60,61,62,63,64,66,67,69,72,73,77,78,79,80,81,82,83,85,86,87,88,89,91,92,93,94,97,98,99,100,101,102,103,104,105,106,114,117,123,130,131,132,133,134,135,136,137,140,141,142,143,144,],[18,-17,-81,-7,-19,-9,-11,45,-10,-8,-18,45,-62,-79,45,-26,-64,85,-59,45,89,-68,45,-70,-66,94,-60,45,-58,45,-40,97,-67,-61,-69,45,-12,45,45,45,45,-65,45,45,45,-80,-25,45,45,45,45,45,45,45,-73,-74,-27,45,45,45,45,45,-71,-63,-42,45,-72,45,-43,45,-41,45,45,-75,-77,45,45,-76,-78,]),'EXTERN':([0,1,2,6,7,10,19,20,21,24,32,34,35,46,73,87,],[9,9,-3,-4,-1,-2,9,-5,-7,-6,-11,9,-8,-26,-12,-25,]),'MODULO':([42,47,48,50,52,55,59,61,63,67,76,81,90,95,96,112,113,114,117,120,121,122,132,134,],[-62,-51,-64,-59,-46,92,-60,-58,-40,-61,-48,-65,-50,-49,-47,92,92,-63,-42,-52,-54,-53,-43,-41,]),'RBRACE':([19,21,30,32,33,34,35,44,46,51,53,56,57,66,69,73,86,87,98,99,100,106,130,137,140,143,144,],[-81,-7,-9,-11,46,-10,-8,-79,-26,87,-68,-70,-66,-67,-69,-12,-80,-25,-73,-74,-27,-71,-72,-75,-77,-76,-78,]),'$end':([1,2,6,7,10,20,21,24,35,46,87,],[0,-3,-4,-1,-2,-5,-7,-6,-8,-26,-25,]),'EQ_PLUS':([41,42,43,47,48,50,52,55,59,61,63,67,71,76,81,90,95,96,108,109,110,111,112,113,114,117,120,121,122,125,128,132,134,],[-32,-62,-35,-51,-64,-59,-46,-55,-60,-58,-40,-61,105,-48,-65,-50,-49,-47,-39,-36,-38,-37,-56,-57,-63,-42,-52,-54,-53,-33,-34,-43,-41,]),'ID':([4,5,8,11,14,16,19,21,25,30,31,32,33,34,35,40,44,45,46,51,53,54,56,57,60,62,66,69,72,73,77,78,79,80,82,83,85,86,87,88,89,91,92,93,94,97,98,99,100,101,102,103,104,105,106,123,130,131,133,135,136,137,140,141,142,143,144,],[15,-13,-14,15,15,15,-81,-7,15,-9,15,-11,61,-10,-8,61,-79,61,-26,61,-68,61,-70,-66,61,61,-67,-69,61,-12,61,61,61,61,61,61,61,-80,-25,61,61,61,61,61,61,61,-73,-74,-27,61,61,61,61,61,-71,61,-72,61,61,61,61,-75,-77,61,61,-76,-78,]),'STRING':([19,21,30,32,33,34,35,40,42,44,45,46,48,51,53,54,56,57,60,62,66,69,72,73,77,78,79,80,81,82,83,85,86,87,88,89,91,92,93,94,97,98,99,100,101,102,103,104,105,106,123,130,131,133,135,136,137,140,141,142,143,144,],[-81,-7,-9,-11,48,-10,-8,48,81,-79,48,-26,-64,48,-68,48,-70,-66,48,48,-67,-69,48,-12,48,48,48,48,-65,48,48,48,-80,-25,48,48,48,48,48,48,48,-73,-74,-27,48,48,48,48,48,-71,48,-72,48,48,48,48,-75,-77,48,48,-76,-78,]),'PLUS':([42,43,47,48,50,52,55,59,61,63,67,76,81,90,95,96,108,109,110,111,112,113,114,117,120,121,122,132,134,],[-62,82,-51,-64,-59,-46,-55,-60,-58,-40,-61,-48,-65,-50,-49,-47,82,82,82,82,-56,-57,-63,-42,-52,-54,-53,-43,-41,]),'GREATER_EQ':([41,42,43,47,48,50,52,55,59,61,63,67,76,81,90,95,96,108,109,110,111,112,113,114,117,120,121,122,125,128,132,134,],[77,-62,-35,-51,-64,-59,-46,-55,-60,-58,-40,-61,-48,-65,-50,-49,-47,-39,-36,-38,-37,-56,-57,-63,-42,-52,-54,-53,77,77,-43,-41,]),'WHILE':([19,21,30,32,33,34,35,44,46,51,53,56,57,66,69,73,86,87,98,99,100,106,130,131,136,137,140,141,142,143,144,],[-81,-7,-9,-11,49,-10,-8,-79,-26,49,-68,-70,-66,-67,-69,-12,-80,-25,-73,-74,-27,-71,-72,49,49,-75,-77,49,49,-76,-78,]),'INUMBER':([19,21,30,32,33,34,35,40,44,45,46,51,53,54,56,57,60,62,66,69,72,73,77,78,79,80,82,83,85,86,87,88,89,91,92,93,94,97,98,99,100,101,102,103,104,105,106,123,130,131,133,135,136,137,140,141,142,143,144,],[-81,-7,-9,-11,50,-10,-8,50,-79,50,-26,50,-68,50,-70,-66,50,50,-67,-69,50,-12,50,50,50,50,50,50,50,-80,-25,50,50,50,50,50,50,50,-73,-74,-27,50,50,50,50,50,-71,50,-72,50,50,50,50,-75,-77,50,50,-76,-78,]),'LBRACKET':([42,48,50,52,59,61,63,67,81,114,117,132,134,],[-62,-64,-59,88,-60,-58,-40,-61,-65,-63,-42,-43,-41,]),'EXCLAMATION':([19,21,30,32,33,34,35,40,44,45,46,51,53,54,56,57,60,62,66,69,72,73,77,78,79,80,82,83,85,86,87,88,89,91,92,93,94,97,98,99,100,101,102,103,104,105,106,123,130,131,133,135,136,137,140,141,142,143,144,],[-81,-7,-9,-11,40,-10,-8,40,-79,40,-26,40,-68,40,-70,-66,40,40,-67,-69,40,-12,40,40,40,40,40,40,40,-80,-25,40,40,40,40,40,40,40,-73,-74,-27,40,40,40,40,40,-71,40,-72,40,40,40,40,-75,-77,40,40,-76,-78,]),'SEMICOLON':([12,13,15,22,23,27,38,39,41,42,43,47,48,50,52,55,59,61,63,65,67,68,70,71,72,76,81,90,95,96,107,108,109,110,111,112,113,114,117,120,121,122,125,126,127,128,129,132,134,],[-15,21,-17,-16,35,-19,-18,21,-32,-62,-35,-51,-64,-59,-46,-55,-60,-58,-40,98,-61,99,100,-28,106,-48,-65,-50,-49,-47,130,-39,-36,-38,-37,-56,-57,-63,-42,-52,-54,-53,-33,-29,-31,-34,-30,-43,-41,]),'STATIC':([0,1,2,6,7,10,20,21,24,35,46,87,],[3,3,-3,-4,-1,-2,-5,-7,-6,-8,-26,-25,]),'CHARACTER':([19,21,30,32,33,34,35,40,44,45,46,51,53,54,56,57,60,62,66,69,72,73,77,78,79,80,82,83,85,86,87,88,89,91,92,93,94,97,98,99,100,101,102,103,104,105,106,123,130,131,133,135,136,137,140,141,142,143,144,],[-81,-7,-9,-11,67,-10,-8,67,-79,67,-26,67,-68,67,-70,-66,67,67,-67,-69,67,-12,67,67,67,67,67,67,67,-80,-25,67,67,67,67,67,67,67,-73,-74,-27,67,67,67,67,67,-71,67,-72,67,67,67,67,-75,-77,67,67,-76,-78,]),'ELLIPSIS':([37,],[74,]),'CONTINUE':([19,21,30,32,33,34,35,44,46,51,53,56,57,66,69,73,86,87,98,99,100,106,130,131,136,137,140,141,142,143,144,],[-81,-7,-9,-11,68,-10,-8,-79,-26,68,-68,-70,-66,-67,-69,-12,-80,-25,-73,-74,-27,-71,-72,68,68,-75,-77,68,68,-76,-78,]),'AMPERSAND':([19,21,30,32,33,34,35,40,44,45,46,51,53,54,56,57,60,62,66,69,72,73,77,78,79,80,82,83,85,86,87,88,89,91,92,93,94,97,98,99,100,101,102,103,104,105,106,123,130,131,133,135,136,137,140,141,142,143,144,],[-81,-7,-9,-11,54,-10,-8,54,-79,54,-26,54,-68,54,-70,-66,54,54,-67,-69,54,-12,54,54,54,54,54,54,54,-80,-25,54,54,54,54,54,54,54,-73,-74,-27,54,54,54,54,54,-71,54,-72,54,54,54,54,-75,-77,54,54,-76,-78,]),'FNUMBER':([19,21,30,32,33,34,35,40,44,45,46,51,53,54,56,57,60,62,66,69,72,73,77,78,79,80,82,83,85,86,87,88,89,91,92,93,94,97,98,99,100,101,102,103,104,105,106,123,130,131,133,135,136,137,140,141,142,143,144,],[-81,-7,-9,-11,59,-10,-8,59,-79,59,-26,59,-68,59,-70,-66,59,59,-67,-69,59,-12,59,59,59,59,59,59,59,-80,-25,59,59,59,59,59,59,59,-73,-74,-27,59,59,59,59,59,-71,59,-72,59,59,59,59,-75,-77,59,59,-76,-78,]),'INT':([0,1,2,3,6,7,9,10,18,19,20,21,24,32,34,35,37,46,73,87,],[5,5,-3,5,-4,-1,5,-2,5,5,-5,-7,-6,-11,5,-8,5,-26,-12,-25,]),'RBRACKET':([41,42,43,47,48,50,52,55,59,61,63,67,71,76,81,90,95,96,108,109,110,111,112,113,114,116,117,120,121,122,125,126,127,128,129,132,134,],[-32,-62,-35,-51,-64,-59,-46,-55,-60,-58,-40,-61,-28,-48,-65,-50,-49,-47,-39,-36,-38,-37,-56,-57,-63,132,-42,-52,-54,-53,-33,-29,-31,-34,-30,-43,-41,]),'LBRACE':([12,13,15,17,19,21,22,27,30,32,33,34,35,38,44,46,51,53,56,57,66,69,73,86,87,98,99,100,106,130,131,136,137,140,141,142,143,144,],[-15,19,-17,19,-81,-7,-16,-19,-9,-11,19,-10,-8,-18,-79,-26,19,-68,-70,-66,-67,-69,-12,-80,-25,-73,-74,-27,-71,-72,19,19,-75,-77,19,19,-76,-78,]),'ELSE':([46,53,56,57,66,69,87,98,99,100,106,130,137,140,143,144,],[-26,-68,-70,-66,-67,-69,-25,-73,-74,-27,-71,-72,-75,142,-76,-78,]),'RETURN':([19,21,30,32,33,34,35,44,46,51,53,56,57,66,69,73,86,87,98,99,100,106,130,131,136,137,140,141,142,143,144,],[-81,-7,-9,-11,72,-10,-8,-79,-26,72,-68,-70,-66,-67,-69,-12,-80,-25,-73,-74,-27,-71,-72,72,72,-75,-77,72,72,-76,-78,]),'DIV':([42,47,48,50,52,55,59,61,63,67,76,81,90,95,96,112,113,114,117,120,121,122,132,134,],[-62,-51,-64,-59,-46,93,-60,-58,-40,-61,-48,-65,-50,-49,-47,93,93,-63,-42,-52,-54,-53,-43,-41,]),}

_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 = {'string_literal':([33,40,45,51,54,60,62,72,77,78,79,80,82,83,85,88,89,91,92,93,94,97,101,102,103,104,105,123,131,133,135,136,141,142,],[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,]),'declaration_list_opt':([19,],[33,]),'empty':([19,],[30,]),'parameter_declaration':([18,37,],[28,75,]),'function_definition':([0,1,],[2,2,]),'relational_expression':([33,45,51,72,85,88,89,94,97,101,102,103,104,105,123,131,133,135,136,141,142,],[41,41,41,41,41,41,41,41,41,125,41,41,128,41,41,41,41,41,41,41,41,]),'compound_statement':([13,17,33,51,131,136,141,142,],[20,24,57,57,57,57,57,57,]),'additive_expression':([33,45,51,72,77,78,79,80,85,88,89,94,97,101,102,103,104,105,123,131,133,135,136,141,142,],[43,43,43,43,108,109,110,111,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,]),'argument_expression_list':([89,],[119,]),'postfix_expression':([33,40,45,51,54,60,62,72,77,78,79,80,82,83,85,88,89,91,92,93,94,97,101,102,103,104,105,123,131,133,135,136,141,142,],[52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,]),'translation_unit':([0,],[1,]),'declaration':([0,1,19,34,],[6,6,32,73,]),'primary_expression':([33,40,45,51,54,60,62,72,77,78,79,80,82,83,85,88,89,91,92,93,94,97,101,102,103,104,105,123,131,133,135,136,141,142,],[63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,]),'statement':([33,51,131,136,141,142,],[44,86,137,140,143,144,]),'parameter_type_list':([18,],[29,]),'unary_expression':([33,40,45,51,54,60,62,72,77,78,79,80,82,83,85,88,89,91,92,93,94,97,101,102,103,104,105,123,131,133,135,136,141,142,],[47,76,47,47,90,95,96,47,47,47,47,47,47,47,47,47,47,120,121,122,47,47,47,47,47,47,47,47,47,47,47,47,47,47,]),'declarator':([4,11,14,16,25,31,],[13,17,22,23,36,39,]),'parameter_list':([18,],[26,]),'statement_list':([33,],[51,]),'expression_statement':([33,51,94,123,131,136,141,142,],[66,66,123,135,66,66,66,66,]),'type_specifier':([0,1,3,9,18,19,34,37,],[4,4,11,16,25,31,31,25,]),'jump_statement':([33,51,131,136,141,142,],[56,56,56,56,56,56,]),'direct_declarator':([4,11,14,16,25,31,],[12,12,12,12,12,12,]),'selection_statement':([33,51,131,136,141,142,],[53,53,53,53,53,53,]),'mult_expression':([33,45,51,72,77,78,79,80,82,83,85,88,89,94,97,101,102,103,104,105,123,131,133,135,136,141,142,],[55,55,55,55,55,55,55,55,112,113,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,]),'iteration_statement':([33,51,131,136,141,142,],[69,69,69,69,69,69,]),'expression':([33,45,51,72,85,88,89,94,97,102,103,105,123,131,133,135,136,141,142,],[70,84,70,107,115,116,118,70,124,126,127,129,70,70,138,139,70,70,70,]),'declaration_list':([19,],[34,]),'external_declaration':([0,1,],[7,10,]),'equality_expression':([33,45,51,72,85,88,89,94,97,102,103,105,123,131,133,135,136,141,142,],[71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,]),}

_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' -> translation_unit","S'",1,None,None,None),
  ('translation_unit -> external_declaration','translation_unit',1,'p_translation_unit_01','cparse.py',453),
  ('translation_unit -> translation_unit external_declaration','translation_unit',2,'p_translation_unit_02','cparse.py',457),
  ('external_declaration -> function_definition','external_declaration',1,'p_external_declaration','cparse.py',462),
  ('external_declaration -> declaration','external_declaration',1,'p_external_declaration','cparse.py',463),
  ('function_definition -> type_specifier declarator compound_statement','function_definition',3,'p_function_definition_01','cparse.py',467),
  ('function_definition -> STATIC type_specifier declarator compound_statement','function_definition',4,'p_function_definition_02','cparse.py',472),
  ('declaration -> type_specifier declarator SEMICOLON','declaration',3,'p_declaration_01','cparse.py',478),
  ('declaration -> EXTERN type_specifier declarator SEMICOLON','declaration',4,'p_declaration_02','cparse.py',485),
  ('declaration_list_opt -> empty','declaration_list_opt',1,'p_declaration_list_opt_01','cparse.py',491),
  ('declaration_list_opt -> declaration_list','declaration_list_opt',1,'p_declaration_list_opt_02','cparse.py',495),
  ('declaration_list -> declaration','declaration_list',1,'p_declaration_list_02','cparse.py',499),
  ('declaration_list -> declaration_list declaration','declaration_list',2,'p_declaration_list_03','cparse.py',503),
  ('type_specifier -> INT','type_specifier',1,'p_type_specifier','cparse.py',508),
  ('type_specifier -> CHAR','type_specifier',1,'p_type_specifier','cparse.py',509),
  ('declarator -> direct_declarator','declarator',1,'p_declarator_01','cparse.py',513),
  ('declarator -> ASTERISK declarator','declarator',2,'p_declarator_02','cparse.py',517),
  ('direct_declarator -> ID','direct_declarator',1,'p_direct_declarator_01','cparse.py',522),
  ('direct_declarator -> direct_declarator LPAREN parameter_type_list RPAREN','direct_declarator',4,'p_direct_declarator_02','cparse.py',526),
  ('direct_declarator -> direct_declarator LPAREN RPAREN','direct_declarator',3,'p_direct_declarator_03','cparse.py',531),
  ('parameter_type_list -> parameter_list','parameter_type_list',1,'p_parameter_type_list_01','cparse.py',536),
  ('parameter_type_list -> parameter_list COMMA ELLIPSIS','parameter_type_list',3,'p_parameter_type_list_02','cparse.py',540),
  ('parameter_list -> parameter_declaration','parameter_list',1,'p_parameter_list_01','cparse.py',545),
  ('parameter_list -> parameter_list COMMA parameter_declaration','parameter_list',3,'p_parameter_list_02','cparse.py',549),
  ('parameter_declaration -> type_specifier declarator','parameter_declaration',2,'p_parameter_declaration','cparse.py',554),
  ('compound_statement -> LBRACE declaration_list_opt statement_list RBRACE','compound_statement',4,'p_compound_statement_01','cparse.py',559),
  ('compound_statement -> LBRACE declaration_list_opt RBRACE','compound_statement',3,'p_compound_statement_02','cparse.py',563),
  ('expression_statement -> expression SEMICOLON','expression_statement',2,'p_expression_statement','cparse.py',567),
  ('expression -> equality_expression','expression',1,'p_expression_01','cparse.py',571),
  ('expression -> equality_expression ASSIGN expression','expression',3,'p_expression_02','cparse.py',575),
  ('expression -> equality_expression EQ_PLUS expression','expression',3,'p_expression_02','cparse.py',576),
  ('expression -> equality_expression EQ_MINUS expression','expression',3,'p_expression_02','cparse.py',577),
  ('equality_expression -> relational_expression','equality_expression',1,'p_equality_expression_01','cparse.py',581),
  ('equality_expression -> equality_expression EQ relational_expression','equality_expression',3,'p_equality_expression_02','cparse.py',585),
  ('equality_expression -> equality_expression NOT_EQ relational_expression','equality_expression',3,'p_equality_expression_02','cparse.py',586),
  ('relational_expression -> additive_expression','relational_expression',1,'p_relational_expression_01','cparse.py',590),
  ('relational_expression -> relational_expression LESS additive_expression','relational_expression',3,'p_relational_expression_02','cparse.py',594),
  ('relational_expression -> relational_expression GREATER additive_expression','relational_expression',3,'p_relational_expression_02','cparse.py',595),
  ('relational_expression -> relational_expression LESS_EQ additive_expression','relational_expression',3,'p_relational_expression_02','cparse.py',596),
  ('relational_expression -> relational_expression GREATER_EQ additive_expression','relational_expression',3,'p_relational_expression_02','cparse.py',597),
  ('postfix_expression -> primary_expression','postfix_expression',1,'p_postfix_expression_01','cparse.py',601),
  ('postfix_expression -> postfix_expression LPAREN argument_expression_list RPAREN','postfix_expression',4,'p_postfix_expression_02','cparse.py',605),
  ('postfix_expression -> postfix_expression LPAREN RPAREN','postfix_expression',3,'p_postfix_expression_03','cparse.py',610),
  ('postfix_expression -> postfix_expression LBRACKET expression RBRACKET','postfix_expression',4,'p_postfix_expression_04','cparse.py',614),
  ('argument_expression_list -> expression','argument_expression_list',1,'p_argument_expression_list_01','cparse.py',618),
  ('argument_expression_list -> argument_expression_list COMMA expression','argument_expression_list',3,'p_argument_expression_list_02','cparse.py',622),
  ('unary_expression -> postfix_expression','unary_expression',1,'p_unary_expression_01','cparse.py',627),
  ('unary_expression -> MINUS unary_expression','unary_expression',2,'p_unary_expression_02','cparse.py',631),
  ('unary_expression -> EXCLAMATION unary_expression','unary_expression',2,'p_unary_expression_03','cparse.py',639),
  ('unary_expression -> ASTERISK unary_expression','unary_expression',2,'p_unary_expression_04','cparse.py',645),
  ('unary_expression -> AMPERSAND unary_expression','unary_expression',2,'p_unary_expression_05','cparse.py',649),
  ('mult_expression -> unary_expression','mult_expression',1,'p_mult_expression_01','cparse.py',653),
  ('mult_expression -> mult_expression ASTERISK unary_expression','mult_expression',3,'p_mult_expression_02','cparse.py',657),
  ('mult_expression -> mult_expression DIV unary_expression','mult_expression',3,'p_mult_expression_02','cparse.py',658),
  ('mult_expression -> mult_expression MODULO unary_expression','mult_expression',3,'p_mult_expression_02','cparse.py',659),
  ('additive_expression -> mult_expression','additive_expression',1,'p_additive_expression_01','cparse.py',663),
  ('additive_expression -> additive_expression PLUS mult_expression','additive_expression',3,'p_additive_expression_02','cparse.py',667),
  ('additive_expression -> additive_expression MINUS mult_expression','additive_expression',3,'p_additive_expression_02','cparse.py',668),
  ('primary_expression -> ID','primary_expression',1,'p_primary_expression_01','cparse.py',672),
  ('primary_expression -> INUMBER','primary_expression',1,'p_primary_expression_02','cparse.py',676),
  ('primary_expression -> FNUMBER','primary_expression',1,'p_primary_expression_03','cparse.py',680),
  ('primary_expression -> CHARACTER','primary_expression',1,'p_primary_expression_04','cparse.py',684),
  ('primary_expression -> string_literal','primary_expression',1,'p_primary_expression_05','cparse.py',688),
  ('primary_expression -> LPAREN expression RPAREN','primary_expression',3,'p_primary_expression_06','cparse.py',692),
  ('string_literal -> STRING','string_literal',1,'p_string_literal_01','cparse.py',696),
  ('string_literal -> string_literal STRING','string_literal',2,'p_string_literal_02','cparse.py',700),
  ('statement -> compound_statement','statement',1,'p_statement','cparse.py',705),
  ('statement -> expression_statement','statement',1,'p_statement','cparse.py',706),
  ('statement -> selection_statement','statement',1,'p_statement','cparse.py',707),
  ('statement -> iteration_statement','statement',1,'p_statement','cparse.py',708),
  ('statement -> jump_statement','statement',1,'p_statement','cparse.py',709),
  ('jump_statement -> RETURN SEMICOLON','jump_statement',2,'p_jump_statement_01','cparse.py',713),
  ('jump_statement -> RETURN expression SEMICOLON','jump_statement',3,'p_jump_statement_02','cparse.py',717),
  ('jump_statement -> BREAK SEMICOLON','jump_statement',2,'p_jump_statement_03','cparse.py',721),
  ('jump_statement -> CONTINUE SEMICOLON','jump_statement',2,'p_jump_statement_04','cparse.py',725),
  ('iteration_statement -> WHILE LPAREN expression RPAREN statement','iteration_statement',5,'p_iteration_statement_01','cparse.py',729),
  ('iteration_statement -> FOR LPAREN expression_statement expression_statement expression RPAREN statement','iteration_statement',7,'p_iteration_statement_02','cparse.py',733),
  ('selection_statement -> IF LPAREN expression RPAREN statement','selection_statement',5,'p_selection_statement_01','cparse.py',737),
  ('selection_statement -> IF LPAREN expression RPAREN statement ELSE statement','selection_statement',7,'p_selection_statement_02','cparse.py',741),
  ('statement_list -> statement','statement_list',1,'p_statement_list_02','cparse.py',745),
  ('statement_list -> statement_list statement','statement_list',2,'p_statement_list_03','cparse.py',749),
  ('empty -> <empty>','empty',0,'p_empty','cparse.py',754),
]