⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c-.tab.c

📁 一个编译器的例子,基于c语言,在linux下开发 现在了简单的c语言例子
💻 C
📖 第 1 页 / 共 5 页
字号:
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,      45,    46,    47,    48,    49,    50,    51};#if YYDEBUG/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in   YYRHS.  */static const unsigned short yyprhs[] ={       0,     0,     3,     5,     7,     9,    11,    13,    15,    17,      21,    23,    28,    32,    37,    41,    45,    48,    51,    53,      57,    59,    62,    65,    68,    71,    76,    78,    80,    82,      84,    86,    88,    93,    95,    99,   103,   107,   109,   113,     117,   119,   123,   127,   129,   133,   137,   141,   145,   147,     151,   155,   157,   161,   163,   167,   169,   173,   175,   179,     181,   185,   187,   193,   195,   199,   201,   203,   205,   207,     209,   211,   213,   215,   217,   219,   221,   223,   227,   229,     232,   236,   238,   241,   243,   247,   249,   250,   255,   257,     259,   261,   263,   265,   267,   268,   275,   276,   282,   285,     287,   290,   294,   297,   299,   301,   305,   308,   310,   312,     316,   321,   325,   326,   332,   337,   338,   343,   345,   349,     352,   355,   357,   359,   363,   365,   368,   370,   372,   375,     379,   382,   386,   389,   393,   395,   399,   401,   405,   407,     409,   411,   413,   415,   417,   419,   423,   428,   432,   435,     439,   443,   448,   450,   453,   455,   458,   460,   463,   469,     474,   476,   480,   486,   494,   500,   506,   514,   521,   529,     533,   536,   539,   542,   546,   548,   551,   553,   555,   560,     564,   568};/* YYRHS -- A `-1'-separated list of the rules' RHS. */static const short yyrhs[] ={     133,     0,    -1,     3,    -1,     4,    -1,     5,    -1,     6,      -1,     7,    -1,     8,    -1,     9,    -1,    52,    95,    53,      -1,    76,    -1,    77,    54,    95,    55,    -1,    77,    52,      53,    -1,    77,    52,    78,    53,    -1,    77,    56,     3,      -1,    77,    11,     3,    -1,    77,    12,    -1,    77,    13,      -1,    93,    -1,    78,    57,    93,    -1,    77,    -1,    12,      79,    -1,    13,    79,    -1,    80,    81,    -1,    10,    79,      -1,    10,    52,   117,    53,    -1,    58,    -1,    59,    -1,      60,    -1,    61,    -1,    62,    -1,    79,    -1,    52,   117,      53,    81,    -1,    81,    -1,    82,    59,    81,    -1,    82,      63,    81,    -1,    82,    64,    81,    -1,    82,    -1,    83,      60,    82,    -1,    83,    61,    82,    -1,    83,    -1,    84,      14,    83,    -1,    84,    15,    83,    -1,    84,    -1,    85,      65,    84,    -1,    85,    66,    84,    -1,    85,    16,    84,      -1,    85,    17,    84,    -1,    85,    -1,    86,    18,    85,      -1,    86,    19,    85,    -1,    86,    -1,    87,    58,    86,      -1,    87,    -1,    88,    67,    87,    -1,    88,    -1,    89,      68,    88,    -1,    89,    -1,    90,    21,    89,    -1,    90,      -1,    91,    22,    90,    -1,    91,    -1,    91,    69,    95,      70,    92,    -1,    92,    -1,    79,    94,    93,    -1,    71,      -1,    23,    -1,    24,    -1,    25,    -1,    26,    -1,    27,      -1,    28,    -1,    29,    -1,    30,    -1,    31,    -1,    32,      -1,    93,    -1,    95,    57,    93,    -1,    92,    -1,    98,      72,    -1,    98,    99,    72,    -1,   102,    -1,   102,    98,      -1,   100,    -1,    99,    57,   100,    -1,   110,    -1,    -1,     110,    71,   101,   120,    -1,    33,    -1,    34,    -1,    35,      -1,    37,    -1,    36,    -1,   103,    -1,    -1,    38,     3,      73,   104,   106,    74,    -1,    -1,    38,    73,   105,   106,      74,    -1,    38,     3,    -1,   107,    -1,   106,   107,    -1,     108,   109,    72,    -1,   102,   108,    -1,   102,    -1,   110,      -1,   109,    57,   110,    -1,    59,   111,    -1,   111,    -1,       3,    -1,    52,   110,    53,    -1,   111,    54,    96,    55,      -1,   111,    54,    55,    -1,    -1,   111,    52,   112,   114,      53,    -1,   111,    52,   116,    53,    -1,    -1,   111,    52,     113,    53,    -1,   115,    -1,   114,    57,   115,    -1,    98,     110,    -1,    98,   118,    -1,    98,    -1,     3,    -1,   116,      57,     3,    -1,   108,    -1,   108,   118,    -1,    59,    -1,     119,    -1,    59,   119,    -1,    52,   118,    53,    -1,    54,      55,    -1,    54,    96,    55,    -1,    52,    53,    -1,    52,     114,    53,    -1,    93,    -1,    73,   121,    74,    -1,   120,      -1,   121,    57,   120,    -1,   123,    -1,   124,    -1,   127,      -1,   130,    -1,   131,    -1,   132,    -1,   128,    -1,     3,      70,   122,    -1,    39,    96,    70,   122,    -1,    40,    70,     122,    -1,    73,    74,    -1,    73,   126,    74,    -1,    73,     125,    74,    -1,    73,   125,   126,    74,    -1,    97,    -1,     125,    97,    -1,   122,    -1,   126,   122,    -1,    72,    -1,      95,    72,    -1,    51,    52,   129,    53,    72,    -1,    51,      52,     1,    72,    -1,    93,    -1,   129,    20,    93,    -1,      41,    52,    95,    53,   122,    -1,    41,    52,    95,    53,     122,    42,   122,    -1,    43,    52,    95,    53,   122,    -1,      44,    52,    95,    53,   122,    -1,    45,   122,    44,    52,      95,    53,    72,    -1,    46,    52,   127,   127,    53,   122,      -1,    46,    52,   127,   127,    95,    53,   122,    -1,    47,       3,    72,    -1,    48,    72,    -1,    49,    72,    -1,    50,      72,    -1,    50,    95,    72,    -1,   134,    -1,   133,   134,      -1,   135,    -1,    97,    -1,    98,   110,   125,   124,    -1,      98,   110,   124,    -1,   110,   125,   124,    -1,   110,   124,      -1};/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */static const unsigned short yyrline[] ={       0,    63,    63,    76,    77,   100,   107,   108,   109,   110,     114,   115,   121,   122,   123,   129,   130,   134,   141,   142,     146,   147,   151,   155,   156,   157,   161,   162,   163,   164,     165,   169,   170,   177,   178,   180,   182,   187,   188,   190,     195,   196,   198,   203,   204,   206,   208,   210,   215,   216,     218,   223,   224,   229,   230,   235,   236,   241,   242,   247,     248,   253,   254,   259,   260,   266,   267,   268,   269,   270,     271,   272,   273,   274,   275,   276,   280,   281,   287,   291,     292,   306,   307,   312,   314,   321,   322,   322,   348,   349,     350,   351,   352,   353,   357,   357,   371,   371,   380,   393,     394,   398,   402,   403,   407,   413,   429,   430,   434,   435,     436,   460,   471,   470,   485,   488,   487,   504,   505,   511,     520,   525,   529,   536,   546,   547,   552,   553,   554,   558,     559,   560,   561,   562,   566,   572,   576,   577,   583,   584,     585,   586,   587,   588,   589,   593,   595,   598,   602,   603,     604,   605,   610,   611,   615,   616,   620,   621,   625,   627,     631,   632,   639,   643,   648,   655,   662,   669,   678,   691,     692,   693,   694,   695,   699,   700,   704,   705,   709,   717,     723,   729};#endif#if YYDEBUG || YYERROR_VERBOSE/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.   First, the terminals, then, starting at YYNTOKENS, nonterminals. */static const char *const yytname[] ={  "$end", "error", "$undefined", "ID", "INT_VAL", "CHAR_VAL", "FLT_VAL",   "HEX_VAL", "EP_VAL", "STRING", "SIZEOF", "PTR_OP", "INC_OP", "DEC_OP",   "LEFT_OP", "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "PRN_OP",   "AND_OP", "OR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN",   "ADD_ASSIGN", "SUB_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN",   "XOR_ASSIGN", "OR_ASSIGN", "CHAR", "INT", "FLOAT", "DOUBLE", "VOID",   "STRUCT", "CASE", "DEFAULT", "IF", "ELSE", "SWITCH", "WHILE", "DO",   "FOR", "GOTO", "CONTINUE", "BREAK", "RETURN", "PRINTLN", "'('", "')'",   "'['", "']'", "'.'", "','", "'&'", "'*'", "'+'", "'-'", "'!'", "'/'",   "'%'", "'<'", "'>'", "'^'", "'|'", "'?'", "':'", "'='", "';'", "'{'",   "'}'", "$accept", "primary_expression", "postfix_expression",   "argument_expression_list", "unary_expression", "unary_operator",   "cast_expression", "multiplicative_expression", "additive_expression",   "shift_expression", "relational_expression", "equality_expression",   "and_expression", "exclusive_or_expression", "inclusive_or_expression",   "logical_and_expression", "logical_or_expression",   "conditional_expression", "assignment_expression",   "assignment_operator", "expression", "constant_expression",   "declaration", "declaration_specifiers", "init_declarator_list",   "init_declarator", "@1", "type_specifier", "struct_specifier", "@2",   "@3", "struct_declaration_list", "struct_declaration",   "specifier_qualifier_list", "struct_declarator_list", "declarator",   "direct_declarator", "@4", "@5", "parameter_list",   "parameter_declaration", "identifier_list", "type_name",   "abstract_declarator", "direct_abstract_declarator", "initializer",   "initializer_list", "statement", "labeled_statement",   "compound_statement", "declaration_list", "statement_list",   "expression_statement", "print_statement", "print_list",   "selection_statement", "iteration_statement", "jump_statement",   "program", "external_declaration", "function_definition", 0};#endif# ifdef YYPRINT/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to   token YYLEX-NUM.  */static const unsigned short yytoknum[] ={       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,     305,   306,    40,    41,    91,    93,    46,    44,    38,    42,      43,    45,    33,    47,    37,    60,    62,    94,   124,    63,      58,    61,    59,   123,   125};# endif/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */static const unsigned char yyr1[] ={       0,    75,    76,    76,    76,    76,    76,    76,    76,    76,      77,    77,    77,    77,    77,    77,    77,    77,    78,    78,      79,    79,    79,    79,    79,    79,    80,    80,    80,    80,      80,    81,    81,    82,    82,    82,    82,    83,    83,    83,      84,    84,    84,    85,    85,    85,    85,    85,    86,    86,      86,    87,    87,    88,    88,    89,    89,    90,    90,    91,      91,    92,    92,    93,    93,    94,    94,    94,    94,    94,      94,    94,    94,    94,    94,    94,    95,    95,    96,    97,      97,    98,    98,    99,    99,   100,   101,   100,   102,   102,     102,   102,   102,   102,   104,   103,   105,   103,   103,   106,     106,   107,   108,   108,   109,   109,   110,   110,   111,   111,     111,   111,   112,   111,   111,   113,   111,   114,   114,   115,     115,   115,   116,   116,   117,   117,   118,   118,   118,   119,     119,   119,   119,   119,   120,   120,   121,   121,   122,   122,     122,   122,   122,   122,   122,   123,   123,   123,   124,   124,     124,   124,   125,   125,   126,   126,   127,   127,   128,   128,     129,   129,   130,   130,   130,   131,   131,   131,   131,   132,     132,   132,   132,   132,   133,   133,   134,   134,   135,   135,     135,   135};/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */static const unsigned char yyr2[] ={       0,     2,     1,     1,     1,     1,     1,     1,     1,     3,       1,     4,     3,     4,     3,     3,     2,     2,     1,     3,       1,     2,     2,     2,     2,     4,     1,     1,     1,     1,       1,     1,     4,     1,     3,     3,     3,     1,     3,     3,       1,     3,     3,     1,     3,     3,     3,     3,     1,     3,       3,     1,     3,     1,     3,     1,     3,     1,     3,     1,       3,     1,     5,     1,     3,     1,     1,     1,     1,     1,       1,     1,     1,     1,     1,     1,     1,     3,     1,     2,       3,     1,     2,     1,     3,     1,     0,     4,     1,     1,       1,     1,     1,     1,     0,     6,     0,     5,     2,     1,       2,     3,     2,     1,     1,     3,     2,     1,     1,     3,       4,     3,     0,     5,     4,     0,     4,     1,     3,     2,       2,     1,     1,     3,     1,     2,     1,     1,     2,     3,       2,     3,     2,     3,     1,     3,     1,     3,     1,     1,       1,     1,     1,     1,     1,     3,     4,     3,     2,     3,       3,     4,     1,     2,     1,     2,     1,     2,     5,     4,       1,     3,     5,     7,     5,     5,     7,     6,     7,     3,       2,     2,     2,     3,     1,     2,     1,     1,     4,     3,       3,     2};/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero   means the default is an error.  */static const unsigned char yydefact[] ={       0,   108,    88,    89,    90,    92,    91,     0,     0,     0,     177,     0,    81,    93,     0,   107,     0,   174,   176,    98,      96,     0,   106,    79,     0,    83,    85,    82,     0,   152,       0,   181,     0,   112,     0,     1,   175,    94,     0,   109,       0,    80,    86,   179,     0,     2,     3,     4,     5,     6,       7,     8,     0,     0,     0,     0,     0,     0,     0,     0,       0,     0,     0,     0,     0,     0,     0,     0,    26,    27,      28,    29,    30,   156,   148,    10,    20,    31,     0,    33,      37,    40,    43,    48,    51,    53,    55,    57,    59,    61,      63,    76,     0,   154,   138,   139,     0,     0,   140,   144,     141,   142,   143,    85,   153,   180,   122,     0,     0,     0,       2,   111,    31,    78,     0,     0,   103,     0,    99,     0,      84,     0,   178,     0,     0,    24,     0,    21,    22,     0,       0,     0,     0,     0,     0,     0,     0,   170,   171,   172,       0,     0,     0,   124,     0,     0,    16,    17,     0,     0,       0,    66,    67,    68,    69,    70,    71,    72,    73,    74,      75,    65,     0,    23,     0,     0,     0,     0,     0,     0,       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,       0,     0,     0,     0,   157,   150,     0,   149,   155,   121,       0,   117,   116,   114,     0,   110,     0,   102,    97,   100,       0,   104,     0,   134,    87,   145,     0,     0,   147,     0,       0,     0,     0,     0,   169,   173,     0,   160,     0,     9,       0,     0,   126,   125,   127,     0,    15,    12,     0,    18,       0,    14,    64,    34,    35,    36,    38,    39,    41,    42,      46,    47,    44,    45,    49,    50,    52,    54,    56,    58,      60,     0,    77,   151,     0,   126,   119,   120,   113,     0,     123,    95,     0,   101,   136,     0,    25,   146,     0,     0,       0,     0,     0,   159,     0,     0,   132,     0,     0,   130,       0,   128,    32,    13,     0,    11,     0,   118,   105,     0,     135,   162,   164,   165,     0,     0,     0,   161,   158,   133,     129,   131,    19,    62,   137,     0,     0,   167,     0,   163,     166,   168};/* YYDEFGOTO[NTERM-NUM]. */static const short yydefgoto[] ={      -1,    75,    76,   228,    77,    78,    79,    80,    81,    82,      83,    84,    85,    86,    87,    88,    89,    90,    91,   162,      92,   114,    29,    30,    24,    25,   121,    12,    13,   115,      38,   117,   118,   119,   200,    14,    15,   107,   108,   277,     191,   109,   144,   278,   224,   204,   265,    93,    94,    95,      32,    97,    98,    99,   218,   100,   101,   102,    16,    17,      18};/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing   STATE-NUM.  */#define YYPACT_NINF -201static const short yypact[] ={     437,  -201,  -201,  -201,  -201,  -201,  -201,    17,    73,    18,    -201,    34,   195,  -201,   315,    -5,   189,  -201,  -201,   -33,    -201,     8,    -5,  -201,   -19,  -201,   180,  -201,   262,  -201,      34,  -201,   315,    29,   661,  -201,  -201,  -201,   195,  -201,      73,  -201,  -201,  -201,   315,    65,  -201,  -201,  -201,  -201,    -201,  -201,   809,   820,   820,   831,    86,    26,   125,   136,     550,   158,   171,   124,   147,   566,   169,   702,  -201,  -201,    -201,  -201,  -201,  -201,  -201,  -201,   231,   175,   831,  -201,     122,    69,   144,    68,   146,   176,   173,   177,   229,    14,    -201,  -201,   -14,  -201,  -201,  -201,   334,   406,  -201,  -201,    -201,  -201,  -201,   191,  -201,  -201,  -201,   195,   211,    74,    -201,  -201,  -201,  -201,   239,   195,   195,   244,  -201,    73,    -201,   111,  -201,   550,   702,  -201,   831,  -201,  -201,   214,     550,   831,   831,   831,   242,   627,   232,  -201,  -201,  -201,     -13,   642,   134,   103,   263,   312,  -201,  -201,   721,   831,     314,  -201,  -201,  -201,  -201,  -201,  -201,  -201,  -201,  -201,    -201,  -201,   831,  -201,   831,   831,   831,   831,   831,   831,     831,   831,   831,   831,   831,   831,   831,   831,   831,   831,     831,   831,   831,   831,  -201,  -201,   478,  -201,  -201,    51,     137,  -201,  -201,  -201,   316,  -201,   255,  -201,  -201,  -201,      56,  -201,   111,  -201,  -201,  -201,   272,   550,  -201,   182,     199,   204,   281,   627,  -201,  -201,   283,  -201,    -1,  -201,     389,   738,    45,  -201,  -201,   831,  -201,  -201,   273,  -201,     -16,  -201,  -201,  -201,  -201,  -201,   122,   122,    69,    69,     144,   144,   144,   144,    68,    68,   146,   176,   173,   177,     229,    38,  -201,  -201,   861,    15,  -201,  -201,  -201,   195,    -201,  -201,    73,  -201,  -201,   -23,  -201,  -201,   550,   550,     550,   831,   798,  -201,   831,   284,  -201,   274,   292,  -201,     302,  -201,  -201,  -201,   831,  -201,   831,  -201,  -201,   111,    -201,   321,  -201,  -201,   275,   550,   301,  -201,  -201,  -201,    -201,  -201,  -201,  -201,  -201,   550,   293,  -201,   550,  -201,    -201,  -201};/* YYPGOTO[NTERM-NUM].  */static const short yypgoto[] ={    -201,  -201,  -201,  -201,   -28,  -201,   -64,    12,    -3,   188,      33,   187,   198,   208,   186,   209,  -201,   -26,  -106,  -201,     -60,   -45,    30,     0,  -201,   349,  -201,   -36,  -201,  -201,    -201,   276,  -104,   -56,  -201,    -7,    -6,  -201,  -201,   290,     139,  -201,   277,   -95,  -200,  -185,  -201,   -32,  -201,    31,      83,   303,  -126,  -201,  -201,  -201,  -201,  -201,  -201,   384,    -201};/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If   positive, shift that token.  If negative, reduce the rule which   number is the opposite.  If zero, do what YYDEFACT says.   If YYTABLE_NINF, syntax error.  */#define YYTABLE_NINF -116static const short yytable[] ={      11,    21,   116,    22,    26,   140,   112,   142,   113,   213,     129,   143,    27,   199,   163,   203,    11,   264,     1,   274,      19,     1,   281,   103,   125,   127,   128,   112,   134,   113,      10,   116,   106,   103,   289,   217,   181,     1,    40,   285,      37,   183,   229,   183,   183,    31,    10,    33,   223,    34,     112,   290,   275,    41,     1,   281,   232,    43,   184,   215,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -