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

_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',454),
  ('translation_unit -> translation_unit external_declaration','translation_unit',2,'p_translation_unit_02','cparse.py',459),
  ('external_declaration -> function_definition','external_declaration',1,'p_external_declaration','cparse.py',465),
  ('external_declaration -> declaration','external_declaration',1,'p_external_declaration','cparse.py',466),
  ('function_definition -> type_specifier declarator compound_statement','function_definition',3,'p_function_definition_01','cparse.py',471),
  ('function_definition -> STATIC type_specifier declarator compound_statement','function_definition',4,'p_function_definition_02','cparse.py',477),
  ('declaration -> type_specifier declarator SEMICOLON','declaration',3,'p_declaration_01','cparse.py',484),
  ('declaration -> EXTERN type_specifier declarator SEMICOLON','declaration',4,'p_declaration_02','cparse.py',492),
  ('declaration_list_opt -> empty','declaration_list_opt',1,'p_declaration_list_opt_01','cparse.py',499),
  ('declaration_list_opt -> declaration_list','declaration_list_opt',1,'p_declaration_list_opt_02','cparse.py',504),
  ('declaration_list -> declaration','declaration_list',1,'p_declaration_list_02','cparse.py',509),
  ('declaration_list -> declaration_list declaration','declaration_list',2,'p_declaration_list_03','cparse.py',514),
  ('type_specifier -> INT','type_specifier',1,'p_type_specifier','cparse.py',520),
  ('type_specifier -> CHAR','type_specifier',1,'p_type_specifier','cparse.py',521),
  ('declarator -> direct_declarator','declarator',1,'p_declarator_01','cparse.py',526),
  ('declarator -> ASTERISK declarator','declarator',2,'p_declarator_02','cparse.py',531),
  ('direct_declarator -> ID','direct_declarator',1,'p_direct_declarator_01','cparse.py',537),
  ('direct_declarator -> direct_declarator LPAREN parameter_type_list RPAREN','direct_declarator',4,'p_direct_declarator_02','cparse.py',542),
  ('direct_declarator -> direct_declarator LPAREN RPAREN','direct_declarator',3,'p_direct_declarator_03','cparse.py',548),
  ('parameter_type_list -> parameter_list','parameter_type_list',1,'p_parameter_type_list_01','cparse.py',554),
  ('parameter_type_list -> parameter_list COMMA ELLIPSIS','parameter_type_list',3,'p_parameter_type_list_02','cparse.py',559),
  ('parameter_list -> parameter_declaration','parameter_list',1,'p_parameter_list_01','cparse.py',565),
  ('parameter_list -> parameter_list COMMA parameter_declaration','parameter_list',3,'p_parameter_list_02','cparse.py',570),
  ('parameter_declaration -> type_specifier declarator','parameter_declaration',2,'p_parameter_declaration','cparse.py',576),
  ('compound_statement -> LBRACE declaration_list_opt statement_list RBRACE','compound_statement',4,'p_compound_statement_01','cparse.py',581),
  ('compound_statement -> LBRACE declaration_list_opt RBRACE','compound_statement',3,'p_compound_statement_02','cparse.py',586),
  ('expression_statement -> expression SEMICOLON','expression_statement',2,'p_expression_statement','cparse.py',591),
  ('expression -> equality_expression','expression',1,'p_expression_01','cparse.py',596),
  ('expression -> equality_expression ASSIGN expression','expression',3,'p_expression_02','cparse.py',601),
  ('expression -> equality_expression EQ_PLUS expression','expression',3,'p_expression_02','cparse.py',602),
  ('expression -> equality_expression EQ_MINUS expression','expression',3,'p_expression_02','cparse.py',603),
  ('equality_expression -> relational_expression','equality_expression',1,'p_equality_expression_01','cparse.py',608),
  ('equality_expression -> equality_expression EQ relational_expression','equality_expression',3,'p_equality_expression_02','cparse.py',613),
  ('equality_expression -> equality_expression NOT_EQ relational_expression','equality_expression',3,'p_equality_expression_02','cparse.py',614),
  ('relational_expression -> additive_expression','relational_expression',1,'p_relational_expression_01','cparse.py',619),
  ('relational_expression -> relational_expression LESS additive_expression','relational_expression',3,'p_relational_expression_02','cparse.py',624),
  ('relational_expression -> relational_expression GREATER additive_expression','relational_expression',3,'p_relational_expression_02','cparse.py',625),
  ('relational_expression -> relational_expression LESS_EQ additive_expression','relational_expression',3,'p_relational_expression_02','cparse.py',626),
  ('relational_expression -> relational_expression GREATER_EQ additive_expression','relational_expression',3,'p_relational_expression_02','cparse.py',627),
  ('postfix_expression -> primary_expression','postfix_expression',1,'p_postfix_expression_01','cparse.py',632),
  ('postfix_expression -> postfix_expression LPAREN argument_expression_list RPAREN','postfix_expression',4,'p_postfix_expression_02','cparse.py',637),
  ('postfix_expression -> postfix_expression LPAREN RPAREN','postfix_expression',3,'p_postfix_expression_03','cparse.py',643),
  ('postfix_expression -> postfix_expression LBRACKET expression RBRACKET','postfix_expression',4,'p_postfix_expression_04','cparse.py',648),
  ('argument_expression_list -> expression','argument_expression_list',1,'p_argument_expression_list_01','cparse.py',653),
  ('argument_expression_list -> argument_expression_list COMMA expression','argument_expression_list',3,'p_argument_expression_list_02','cparse.py',658),
  ('unary_expression -> postfix_expression','unary_expression',1,'p_unary_expression_01','cparse.py',664),
  ('unary_expression -> MINUS unary_expression','unary_expression',2,'p_unary_expression_02','cparse.py',669),
  ('unary_expression -> EXCLAMATION unary_expression','unary_expression',2,'p_unary_expression_03','cparse.py',679),
  ('unary_expression -> ASTERISK unary_expression','unary_expression',2,'p_unary_expression_04','cparse.py',686),
  ('unary_expression -> AMPERSAND unary_expression','unary_expression',2,'p_unary_expression_05','cparse.py',691),
  ('mult_expression -> unary_expression','mult_expression',1,'p_mult_expression_01','cparse.py',696),
  ('mult_expression -> mult_expression ASTERISK unary_expression','mult_expression',3,'p_mult_expression_02','cparse.py',701),
  ('mult_expression -> mult_expression DIV unary_expression','mult_expression',3,'p_mult_expression_02','cparse.py',702),
  ('mult_expression -> mult_expression MODULO unary_expression','mult_expression',3,'p_mult_expression_02','cparse.py',703),
  ('additive_expression -> mult_expression','additive_expression',1,'p_additive_expression_01','cparse.py',708),
  ('additive_expression -> additive_expression PLUS mult_expression','additive_expression',3,'p_additive_expression_02','cparse.py',713),
  ('additive_expression -> additive_expression MINUS mult_expression','additive_expression',3,'p_additive_expression_02','cparse.py',714),
  ('primary_expression -> ID','primary_expression',1,'p_primary_expression_01','cparse.py',719),
  ('primary_expression -> INUMBER','primary_expression',1,'p_primary_expression_02','cparse.py',724),
  ('primary_expression -> FNUMBER','primary_expression',1,'p_primary_expression_03','cparse.py',729),
  ('primary_expression -> CHARACTER','primary_expression',1,'p_primary_expression_04','cparse.py',734),
  ('primary_expression -> string_literal','primary_expression',1,'p_primary_expression_05','cparse.py',739),
  ('primary_expression -> LPAREN expression RPAREN','primary_expression',3,'p_primary_expression_06','cparse.py',744),
  ('string_literal -> STRING','string_literal',1,'p_string_literal_01','cparse.py',749),
  ('string_literal -> string_literal STRING','string_literal',2,'p_string_literal_02','cparse.py',754),
  ('statement -> compound_statement','statement',1,'p_statement','cparse.py',760),
  ('statement -> expression_statement','statement',1,'p_statement','cparse.py',761),
  ('statement -> selection_statement','statement',1,'p_statement','cparse.py',762),
  ('statement -> iteration_statement','statement',1,'p_statement','cparse.py',763),
  ('statement -> jump_statement','statement',1,'p_statement','cparse.py',764),
  ('jump_statement -> RETURN SEMICOLON','jump_statement',2,'p_jump_statement_01','cparse.py',769),
  ('jump_statement -> RETURN expression SEMICOLON','jump_statement',3,'p_jump_statement_02','cparse.py',774),
  ('jump_statement -> BREAK SEMICOLON','jump_statement',2,'p_jump_statement_03','cparse.py',779),
  ('jump_statement -> CONTINUE SEMICOLON','jump_statement',2,'p_jump_statement_04','cparse.py',784),
  ('iteration_statement -> WHILE LPAREN expression RPAREN statement','iteration_statement',5,'p_iteration_statement_01','cparse.py',789),
  ('iteration_statement -> FOR LPAREN expression_statement expression_statement expression RPAREN statement','iteration_statement',7,'p_iteration_statement_02','cparse.py',794),
  ('selection_statement -> IF LPAREN expression RPAREN statement','selection_statement',5,'p_selection_statement_01','cparse.py',799),
  ('selection_statement -> IF LPAREN expression RPAREN statement ELSE statement','selection_statement',7,'p_selection_statement_02','cparse.py',804),
  ('statement_list -> statement','statement_list',1,'p_statement_list_02','cparse.py',809),
  ('statement_list -> statement_list statement','statement_list',2,'p_statement_list_03','cparse.py',814),
  ('empty -> <empty>','empty',0,'p_empty','cparse.py',820),
]