Franck Pommereau

cosmetic changes

......@@ -448,7 +448,6 @@ precedence = (
class ParseError(Exception):
"Exception raised whenever a parsing error occurs."
pass
def p_translation_unit_01(t):
......
......@@ -178,14 +178,21 @@ class CodeGenVisitor (Visitor) :
"# Franck Pommereau (2018)\n"
"# Adapted from Atul Varma's c.py (Spring 2004)\n")
for c in chunks :
outfile.write("\n# code from file %r\n" % c.path)
outfile.write(c.curr_str.getvalue())
s = c.curr_str.getvalue()
if s.strip() :
outfile.write("\n###\n### code from file %r\n###\n" % c.path)
outfile.write(s)
for c in chunks :
outfile.write("\n# globals from file %r\n\n" % c.path)
outfile.write(c.globals_str.getvalue())
s = c.globals_str.getvalue()
if s.strip() :
outfile.write("\n###\n### globals from file %r\n###\n\n" % c.path)
outfile.write(s)
for c in chunks :
outfile.write("\n# string literals from file %r\n\n" % c.path)
outfile.write(c.str_literal_str.getvalue())
s = c.str_literal_str.getvalue()
if s.strip() :
outfile.write("\n###\n### string literals from file %r\n###\n\n"
% c.path)
outfile.write(s)
def _calc_function_var_addrs(self, symtab, last_fp_loc):
self._calc_function_arg_addrs(symtab)
......
......@@ -8,7 +8,7 @@ _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_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():
......@@ -17,7 +17,7 @@ for _k, _v in _lr_action_items.items():
_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_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():
......@@ -27,85 +27,85 @@ for _k, _v in _lr_goto_items.items():
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),
('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),
]
......