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 TIMES 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 = {'RBRACE':([19,21,25,26,27,28,29,36,42,43,51,55,61,63,65,69,78,88,92,94,97,98,119,137,139,143,144,],[-81,-7,-8,-9,-11,36,-10,-26,-70,-67,-69,-79,-66,97,-68,-12,-74,-71,-73,-27,-25,-80,-72,-77,-75,-78,-76,]),'ASSIGN':([38,45,47,48,52,54,59,60,62,64,66,67,68,81,87,90,91,93,109,110,111,114,115,116,117,118,120,121,122,126,128,135,136,],[-55,-59,-32,-64,-61,-62,-40,-35,-51,100,-46,-58,-60,-49,-50,-47,-65,-48,-54,-52,-53,-63,-39,-37,-36,-38,-57,-56,-34,-33,-42,-41,-43,]),'STATIC':([0,1,2,5,9,16,20,21,24,25,36,97,],[4,-4,-1,-3,4,-2,-5,-7,-6,-8,-26,-25,]),'CHARACTER':([19,21,25,26,27,28,29,36,42,43,44,46,49,50,51,53,55,57,61,63,65,69,74,75,76,77,78,79,80,83,84,85,86,88,92,94,95,96,97,98,99,100,101,102,103,104,105,112,119,131,132,133,134,137,139,141,142,143,144,],[-81,-7,-8,-9,-11,52,-10,-26,-70,-67,52,52,52,52,-69,52,-79,52,-66,52,-68,-12,52,52,52,52,-74,52,52,52,52,52,52,-71,-73,-27,52,52,-25,-80,52,52,52,52,52,52,52,52,-72,52,52,52,52,-77,-75,52,52,-78,-76,]),'IF':([19,21,25,26,27,28,29,36,42,43,51,55,61,63,65,69,78,88,92,94,97,98,119,131,133,137,139,141,142,143,144,],[-81,-7,-8,-9,-11,37,-10,-26,-70,-67,-69,-79,-66,37,-68,-12,-74,-71,-73,-27,-25,-80,-72,37,37,-77,-75,37,37,-78,-76,]),'RETURN':([19,21,25,26,27,28,29,36,42,43,51,55,61,63,65,69,78,88,92,94,97,98,119,131,133,137,139,141,142,143,144,],[-81,-7,-8,-9,-11,50,-10,-26,-70,-67,-69,-79,-66,50,-68,-12,-74,-71,-73,-27,-25,-80,-72,50,50,-77,-75,50,50,-78,-76,]),'AMPERSAND':([19,21,25,26,27,28,29,36,42,43,44,46,49,50,51,53,55,57,61,63,65,69,74,75,76,77,78,79,80,83,84,85,86,88,92,94,95,96,97,98,99,100,101,102,103,104,105,112,119,131,132,133,134,137,139,141,142,143,144,],[-81,-7,-8,-9,-11,49,-10,-26,-70,-67,49,49,49,49,-69,49,-79,49,-66,49,-68,-12,49,49,49,49,-74,49,49,49,49,49,49,-71,-73,-27,49,49,-25,-80,49,49,49,49,49,49,49,49,-72,49,49,49,49,-77,-75,49,49,-78,-76,]),'CONTINUE':([19,21,25,26,27,28,29,36,42,43,51,55,61,63,65,69,78,88,92,94,97,98,119,131,133,137,139,141,142,143,144,],[-81,-7,-8,-9,-11,39,-10,-26,-70,-67,-69,-79,-66,39,-68,-12,-74,-71,-73,-27,-25,-80,-72,39,39,-77,-75,39,39,-78,-76,]),'FOR':([19,21,25,26,27,28,29,36,42,43,51,55,61,63,65,69,78,88,92,94,97,98,119,131,133,137,139,141,142,143,144,],[-81,-7,-8,-9,-11,40,-10,-26,-70,-67,-69,-79,-66,40,-68,-12,-74,-71,-73,-27,-25,-80,-72,40,40,-77,-75,40,40,-78,-76,]),'MINUS':([19,21,25,26,27,28,29,36,38,42,43,44,45,46,48,49,50,51,52,53,54,55,57,59,60,61,62,63,65,66,67,68,69,74,75,76,77,78,79,80,81,83,84,85,86,87,88,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,109,110,111,112,114,115,116,117,118,119,120,121,128,131,132,133,134,135,136,137,139,141,142,143,144,],[-81,-7,-8,-9,-11,53,-10,-26,-55,-70,-67,53,-59,53,-64,53,53,-69,-61,53,-62,-79,53,-40,95,-66,-51,53,-68,-46,-58,-60,-12,53,53,53,53,-74,53,53,-49,53,53,53,53,-50,-71,-47,-65,-73,-48,-27,53,53,-25,-80,53,53,53,53,53,53,53,-54,-52,-53,53,-63,95,95,95,95,-72,-57,-56,-42,53,53,53,53,-41,-43,-77,-75,53,53,-78,-76,]),'WHILE':([19,21,25,26,27,28,29,36,42,43,51,55,61,63,65,69,78,88,92,94,97,98,119,131,133,137,139,141,142,143,144,],[-81,-7,-8,-9,-11,41,-10,-26,-70,-67,-69,-79,-66,41,-68,-12,-74,-71,-73,-27,-25,-80,-72,41,41,-77,-75,41,41,-78,-76,]),'LBRACE':([12,13,14,17,19,21,23,25,26,27,28,29,33,36,42,43,51,55,61,63,65,69,71,78,88,92,94,97,98,119,131,133,137,139,141,142,143,144,],[19,-17,-15,19,-81,-7,-16,-8,-9,-11,19,-10,-19,-26,-70,-67,-69,-79,-66,19,-68,-12,-18,-74,-71,-73,-27,-25,-80,-72,19,19,-77,-75,19,19,-78,-76,]),'EQ':([38,45,47,48,52,54,59,60,62,64,66,67,68,81,87,90,91,93,109,110,111,114,115,116,117,118,120,121,122,126,128,135,136,],[-55,-59,-32,-64,-61,-62,-40,-35,-51,103,-46,-58,-60,-49,-50,-47,-65,-48,-54,-52,-53,-63,-39,-37,-36,-38,-57,-56,-34,-33,-42,-41,-43,]),'MODULO':([38,45,48,52,54,59,62,66,67,68,81,87,90,91,93,109,110,111,114,120,121,128,135,136,],[75,-59,-64,-61,-62,-40,-51,-46,-58,-60,-49,-50,-47,-65,-48,-54,-52,-53,-63,75,75,-42,-41,-43,]),'GREATER':([38,45,47,48,52,54,59,60,62,66,67,68,81,87,90,91,93,109,110,111,114,115,116,117,118,120,121,122,126,128,135,136,],[-55,-59,84,-64,-61,-62,-40,-35,-51,-46,-58,-60,-49,-50,-47,-65,-48,-54,-52,-53,-63,-39,-37,-36,-38,-57,-56,84,84,-42,-41,-43,]),'LBRACKET':([45,48,52,54,59,66,67,68,91,114,128,135,136,],[-59,-64,-61,-62,-40,105,-58,-60,-65,-63,-42,-41,-43,]),'DIV':([38,45,48,52,54,59,62,66,67,68,81,87,90,91,93,109,110,111,114,120,121,128,135,136,],[77,-59,-64,-61,-62,-40,-51,-46,-58,-60,-49,-50,-47,-65,-48,-54,-52,-53,-63,77,77,-42,-41,-43,]),'LESS':([38,45,47,48,52,54,59,60,62,66,67,68,81,87,90,91,93,109,110,111,114,115,116,117,118,120,121,122,126,128,135,136,],[-55,-59,85,-64,-61,-62,-40,-35,-51,-46,-58,-60,-49,-50,-47,-65,-48,-54,-52,-53,-63,-39,-37,-36,-38,-57,-56,85,85,-42,-41,-43,]),'RPAREN':([13,14,22,23,31,32,33,35,38,45,47,48,52,54,59,60,62,64,66,67,68,71,72,81,82,87,90,91,93,104,106,107,108,109,110,111,113,114,115,116,117,118,120,121,122,123,124,125,126,127,128,129,135,136,138,140,],[-17,-15,33,-16,-22,71,-19,-20,-55,-59,-32,-64,-61,-62,-40,-35,-51,-28,-46,-58,-60,-18,-24,-49,114,-50,-47,-65,-48,128,-23,-21,131,-54,-52,-53,133,-63,-39,-37,-36,-38,-57,-56,-34,-29,-30,-31,-33,135,-42,-44,-41,-43,142,-45,]),'EQ_MINUS':([38,45,47,48,52,54,59,60,62,64,66,67,68,81,87,90,91,93,109,110,111,114,115,116,117,118,120,121,122,126,128,135,136,],[-55,-59,-32,-64,-61,-62,-40,-35,-51,102,-46,-58,-60,-49,-50,-47,-65,-48,-54,-52,-53,-63,-39,-37,-36,-38,-57,-56,-34,-33,-42,-41,-43,]),'SEMICOLON':([12,13,14,18,23,33,38,39,45,47,48,50,52,54,56,58,59,60,62,64,66,67,68,70,71,81,87,89,90,91,93,109,110,111,114,115,116,117,118,120,121,122,123,124,125,126,128,135,136,],[21,-17,-15,25,-16,-19,-55,78,-59,-32,-64,88,-61,-62,92,94,-40,-35,-51,-28,-46,-58,-60,21,-18,-49,-50,119,-47,-65,-48,-54,-52,-53,-63,-39,-37,-36,-38,-57,-56,-34,-29,-30,-31,-33,-42,-41,-43,]),'BREAK':([19,21,25,26,27,28,29,36,42,43,51,55,61,63,65,69,78,88,92,94,97,98,119,131,133,137,139,141,142,143,144,],[-81,-7,-8,-9,-11,56,-10,-26,-70,-67,-69,-79,-66,56,-68,-12,-74,-71,-73,-27,-25,-80,-72,56,56,-77,-75,56,56,-78,-76,]),'ASTERISK':([3,6,8,10,11,15,19,21,25,26,27,28,29,30,34,36,38,42,43,44,45,46,48,49,50,51,52,53,54,55,57,59,61,62,63,65,66,67,68,69,74,75,76,77,78,79,80,81,83,84,85,86,87,88,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,109,110,111,112,114,119,120,121,128,131,132,133,134,135,136,137,139,141,142,143,144,],[-13,-14,15,15,15,15,-81,-7,-8,-9,-11,44,-10,15,15,-26,76,-70,-67,44,-59,44,-64,44,44,-69,-61,44,-62,-79,44,-40,-66,-51,44,-68,-46,-58,-60,-12,44,44,44,44,-74,44,44,-49,44,44,44,44,-50,-71,-47,-65,-73,-48,-27,44,44,-25,-80,44,44,44,44,44,44,44,-54,-52,-53,44,-63,-72,76,76,-42,44,44,44,44,-41,-43,-77,-75,44,44,-78,-76,]),'INUMBER':([19,21,25,26,27,28,29,36,42,43,44,46,49,50,51,53,55,57,61,63,65,69,74,75,76,77,78,79,80,83,84,85,86,88,92,94,95,96,97,98,99,100,101,102,103,104,105,112,119,131,132,133,134,137,139,141,142,143,144,],[-81,-7,-8,-9,-11,45,-10,-26,-70,-67,45,45,45,45,-69,45,-79,45,-66,45,-68,-12,45,45,45,45,-74,45,45,45,45,45,45,-71,-73,-27,45,45,-25,-80,45,45,45,45,45,45,45,45,-72,45,45,45,45,-77,-75,45,45,-78,-76,]),'GREATER_EQ':([38,45,47,48,52,54,59,60,62,66,67,68,81,87,90,91,93,109,110,111,114,115,116,117,118,120,121,122,126,128,135,136,],[-55,-59,83,-64,-61,-62,-40,-35,-51,-46,-58,-60,-49,-50,-47,-65,-48,-54,-52,-53,-63,-39,-37,-36,-38,-57,-56,83,83,-42,-41,-43,]),'LPAREN':([13,14,19,21,25,26,27,28,29,33,36,37,40,41,42,43,44,45,46,48,49,50,51,52,53,54,55,57,59,61,63,65,66,67,68,69,71,74,75,76,77,78,79,80,83,84,85,86,88,91,92,94,95,96,97,98,99,100,101,102,103,104,105,112,114,119,128,131,132,133,134,135,136,137,139,141,142,143,144,],[-17,22,-81,-7,-8,-9,-11,46,-10,-19,-26,74,79,80,-70,-67,46,-59,46,-64,46,46,-69,-61,46,-62,-79,46,-40,-66,46,-68,104,-58,-60,-12,-18,46,46,46,46,-74,46,46,46,46,46,46,-71,-65,-73,-27,46,46,-25,-80,46,46,46,46,46,46,46,46,-63,-72,-42,46,46,46,46,-41,-43,-77,-75,46,46,-78,-76,]),'LESS_EQ':([38,45,47,48,52,54,59,60,62,66,67,68,81,87,90,91,93,109,110,111,114,115,116,117,118,120,121,122,126,128,135,136,],[-55,-59,86,-64,-61,-62,-40,-35,-51,-46,-58,-60,-49,-50,-47,-65,-48,-54,-52,-53,-63,-39,-37,-36,-38,-57,-56,86,86,-42,-41,-43,]),'COMMA':([13,14,23,31,33,35,38,45,47,48,52,54,59,60,62,64,66,67,68,71,72,81,87,90,91,93,106,109,110,111,114,115,116,117,118,120,121,122,123,124,125,126,127,128,129,135,136,140,],[-17,-15,-16,-22,-19,73,-55,-59,-32,-64,-61,-62,-40,-35,-51,-28,-46,-58,-60,-18,-24,-49,-50,-47,-65,-48,-23,-54,-52,-53,-63,-39,-37,-36,-38,-57,-56,-34,-29,-30,-31,-33,134,-42,-44,-41,-43,-45,]),'ELSE':([36,42,43,51,61,65,78,88,92,94,97,119,137,139,143,144,],[-26,-70,-67,-69,-66,-68,-74,-71,-73,-27,-25,-72,141,-75,-78,-76,]),'INT':([0,1,2,4,5,7,9,16,19,20,21,22,24,25,27,29,36,69,73,97,],[3,-4,-1,3,-3,3,3,-2,3,-5,-7,3,-6,-8,-11,3,-26,-12,3,-25,]),'NOT_EQ':([38,45,47,48,52,54,59,60,62,64,66,67,68,81,87,90,91,93,109,110,111,114,115,116,117,118,120,121,122,126,128,135,136,],[-55,-59,-32,-64,-61,-62,-40,-35,-51,99,-46,-58,-60,-49,-50,-47,-65,-48,-54,-52,-53,-63,-39,-37,-36,-38,-57,-56,-34,-33,-42,-41,-43,]),'PLUS':([38,45,48,52,54,59,60,62,66,67,68,81,87,90,91,93,109,110,111,114,115,116,117,118,120,121,128,135,136,],[-55,-59,-64,-61,-62,-40,96,-51,-46,-58,-60,-49,-50,-47,-65,-48,-54,-52,-53,-63,96,96,96,96,-57,-56,-42,-41,-43,]),'STRING':([19,21,25,26,27,28,29,36,42,43,44,46,48,49,50,51,53,54,55,57,61,63,65,69,74,75,76,77,78,79,80,83,84,85,86,88,91,92,94,95,96,97,98,99,100,101,102,103,104,105,112,119,131,132,133,134,137,139,141,142,143,144,],[-81,-7,-8,-9,-11,48,-10,-26,-70,-67,48,48,-64,48,48,-69,48,91,-79,48,-66,48,-68,-12,48,48,48,48,-74,48,48,48,48,48,48,-71,-65,-73,-27,48,48,-25,-80,48,48,48,48,48,48,48,48,-72,48,48,48,48,-77,-75,48,48,-78,-76,]),'$end':([1,2,5,9,16,20,21,24,25,36,97,],[-4,-1,-3,0,-2,-5,-7,-6,-8,-26,-25,]),'CHAR':([0,1,2,4,5,7,9,16,19,20,21,22,24,25,27,29,36,69,73,97,],[6,-4,-1,6,-3,6,6,-2,6,-5,-7,6,-6,-8,-11,6,-26,-12,6,-25,]),'EXTERN':([0,1,2,5,9,16,19,20,21,24,25,27,29,36,69,97,],[7,-4,-1,-3,7,-2,7,-5,-7,-6,-8,-11,7,-26,-12,-25,]),'RBRACKET':([38,45,47,48,52,54,59,60,62,64,66,67,68,81,87,90,91,93,109,110,111,114,115,116,117,118,120,121,122,123,124,125,126,128,130,135,136,],[-55,-59,-32,-64,-61,-62,-40,-35,-51,-28,-46,-58,-60,-49,-50,-47,-65,-48,-54,-52,-53,-63,-39,-37,-36,-38,-57,-56,-34,-29,-30,-31,-33,-42,136,-41,-43,]),'FNUMBER':([19,21,25,26,27,28,29,36,42,43,44,46,49,50,51,53,55,57,61,63,65,69,74,75,76,77,78,79,80,83,84,85,86,88,92,94,95,96,97,98,99,100,101,102,103,104,105,112,119,131,132,133,134,137,139,141,142,143,144,],[-81,-7,-8,-9,-11,68,-10,-26,-70,-67,68,68,68,68,-69,68,-79,68,-66,68,-68,-12,68,68,68,68,-74,68,68,68,68,68,68,-71,-73,-27,68,68,-25,-80,68,68,68,68,68,68,68,68,-72,68,68,68,68,-77,-75,68,68,-78,-76,]),'ELLIPSIS':([73,],[107,]),'EQ_PLUS':([38,45,47,48,52,54,59,60,62,64,66,67,68,81,87,90,91,93,109,110,111,114,115,116,117,118,120,121,122,126,128,135,136,],[-55,-59,-32,-64,-61,-62,-40,-35,-51,101,-46,-58,-60,-49,-50,-47,-65,-48,-54,-52,-53,-63,-39,-37,-36,-38,-57,-56,-34,-33,-42,-41,-43,]),'EXCLAMATION':([19,21,25,26,27,28,29,36,42,43,44,46,49,50,51,53,55,57,61,63,65,69,74,75,76,77,78,79,80,83,84,85,86,88,92,94,95,96,97,98,99,100,101,102,103,104,105,112,119,131,132,133,134,137,139,141,142,143,144,],[-81,-7,-8,-9,-11,57,-10,-26,-70,-67,57,57,57,57,-69,57,-79,57,-66,57,-68,-12,57,57,57,57,-74,57,57,57,57,57,57,-71,-73,-27,57,57,-25,-80,57,57,57,57,57,57,57,57,-72,57,57,57,57,-77,-75,57,57,-78,-76,]),'ID':([3,6,8,10,11,15,19,21,25,26,27,28,29,30,34,36,42,43,44,46,49,50,51,53,55,57,61,63,65,69,74,75,76,77,78,79,80,83,84,85,86,88,92,94,95,96,97,98,99,100,101,102,103,104,105,112,119,131,132,133,134,137,139,141,142,143,144,],[-13,-14,13,13,13,13,-81,-7,-8,-9,-11,67,-10,13,13,-26,-70,-67,67,67,67,67,-69,67,-79,67,-66,67,-68,-12,67,67,67,67,-74,67,67,67,67,67,67,-71,-73,-27,67,67,-25,-80,67,67,67,67,67,67,67,67,-72,67,67,67,67,-77,-75,67,67,-78,-76,]),}

_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 = {'mult_expression':([28,46,50,63,74,79,80,83,84,85,86,95,96,99,100,101,102,103,104,105,112,131,132,133,134,141,142,],[38,38,38,38,38,38,38,38,38,38,38,120,121,38,38,38,38,38,38,38,38,38,38,38,38,38,38,]),'declarator':([8,10,11,15,30,34,],[12,17,18,23,70,72,]),'translation_unit':([0,],[9,]),'additive_expression':([28,46,50,63,74,79,80,83,84,85,86,99,100,101,102,103,104,105,112,131,132,133,134,141,142,],[60,60,60,60,60,60,60,115,116,117,118,60,60,60,60,60,60,60,60,60,60,60,60,60,60,]),'jump_statement':([28,63,131,133,141,142,],[42,42,42,42,42,42,]),'declaration_list_opt':([19,],[28,]),'string_literal':([28,44,46,49,50,53,57,63,74,75,76,77,79,80,83,84,85,86,95,96,99,100,101,102,103,104,105,112,131,132,133,134,141,142,],[54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,]),'iteration_statement':([28,63,131,133,141,142,],[51,51,51,51,51,51,]),'argument_expression_list':([104,],[127,]),'declaration_list':([19,],[29,]),'parameter_type_list':([22,],[32,]),'expression_statement':([28,63,79,112,131,133,141,142,],[43,43,112,132,43,43,43,43,]),'statement':([28,63,131,133,141,142,],[55,98,137,139,143,144,]),'parameter_list':([22,],[35,]),'declaration':([0,9,19,29,],[1,1,27,69,]),'expression':([28,46,50,63,74,79,80,100,101,102,104,105,112,131,132,133,134,141,142,],[58,82,89,58,108,58,113,123,124,125,129,130,58,58,138,58,140,58,58,]),'primary_expression':([28,44,46,49,50,53,57,63,74,75,76,77,79,80,83,84,85,86,95,96,99,100,101,102,103,104,105,112,131,132,133,134,141,142,],[59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,]),'empty':([19,],[26,]),'compound_statement':([12,17,28,63,131,133,141,142,],[20,24,61,61,61,61,61,61,]),'unary_expression':([28,44,46,49,50,53,57,63,74,75,76,77,79,80,83,84,85,86,95,96,99,100,101,102,103,104,105,112,131,132,133,134,141,142,],[62,81,62,87,62,90,93,62,62,109,110,111,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,]),'external_declaration':([0,9,],[2,16,]),'selection_statement':([28,63,131,133,141,142,],[65,65,65,65,65,65,]),'relational_expression':([28,46,50,63,74,79,80,99,100,101,102,103,104,105,112,131,132,133,134,141,142,],[47,47,47,47,47,47,47,122,47,47,47,126,47,47,47,47,47,47,47,47,47,]),'function_definition':([0,9,],[5,5,]),'parameter_declaration':([22,73,],[31,106,]),'statement_list':([28,],[63,]),'postfix_expression':([28,44,46,49,50,53,57,63,74,75,76,77,79,80,83,84,85,86,95,96,99,100,101,102,103,104,105,112,131,132,133,134,141,142,],[66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,]),'direct_declarator':([8,10,11,15,30,34,],[14,14,14,14,14,14,]),'type_specifier':([0,4,7,9,19,22,29,73,],[8,10,11,8,30,34,30,34,]),'equality_expression':([28,46,50,63,74,79,80,100,101,102,104,105,112,131,132,133,134,141,142,],[64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,]),}

_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),
]