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

📄 y.tab.c

📁 编译原理课程设计之pp2语法分析程序
💻 C
📖 第 1 页 / 共 5 页
字号:

/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
#define YYUNDEFTOK  2
#define YYMAXUTOK   297

#define YYTRANSLATE(YYX) 						\
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)

/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
static const unsigned char yytranslate[] =
{
       0,     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,    52,     2,     2,     2,    51,     2,     2,
      60,    61,    49,    48,    41,    47,    53,    50,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,    43,    57,
      45,    42,    46,    44,     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,    54,     2,    62,     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,    58,     2,    59,     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,     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,    55,    56
};

#if YYDEBUG
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
   YYRHS.  */
static const unsigned short int yyprhs[] =
{
       0,     0,     3,     5,     8,    10,    12,    14,    16,    19,
      22,    24,    26,    28,    30,    32,    34,    37,    43,    51,
      54,    55,    57,    59,    66,    73,    79,    85,    87,    91,
      96,   100,   104,   107,   109,   112,   114,   117,   119,   122,
     124,   126,   128,   130,   132,   134,   136,   138,   140,   142,
     146,   152,   154,   155,   157,   160,   162,   163,   171,   177,
     180,   184,   187,   193,   201,   207,   212,   216,   220,   223,
     225,   228,   233,   237,   243,   253,   255,   256,   258,   262,
     266,   270,   274,   278,   282,   285,   289,   293,   297,   301,
     305,   309,   313,   316,   320,   322,   326,   331,   338,   342,
     346,   348,   350,   356,   361,   368,   370,   374,   376,   377,
     379,   383,   388,   390,   392,   394,   396,   398
};

/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yysigned_char yyrhs[] =
{
      64,     0,    -1,    65,    -1,    65,    66,    -1,    66,    -1,
      67,    -1,    71,    -1,    74,    -1,    68,    57,    -1,    70,
      69,    -1,    36,    -1,     4,    -1,     5,    -1,     6,    -1,
       7,    -1,    69,    -1,    70,    13,    -1,     8,    69,    58,
      72,    59,    -1,     8,    69,    17,    69,    58,    72,    59,
      -1,    72,    73,    -1,    -1,    67,    -1,    74,    -1,    70,
      69,    60,    75,    61,    76,    -1,     3,    69,    60,    75,
      61,    76,    -1,    70,    69,    60,    61,    76,    -1,     3,
      69,    60,    61,    76,    -1,    68,    -1,    75,    41,    68,
      -1,    58,    77,    78,    59,    -1,    58,    77,    59,    -1,
      58,    78,    59,    -1,    58,    59,    -1,    67,    -1,    77,
      67,    -1,    79,    -1,    78,    79,    -1,    57,    -1,    98,
      57,    -1,    76,    -1,    89,    -1,    90,    -1,    95,    -1,
      96,    -1,    88,    -1,    87,    -1,    86,    -1,    81,    -1,
      80,    -1,    32,    98,    57,    -1,    30,    58,    82,    59,
      84,    -1,    78,    -1,    -1,    85,    -1,    83,    85,    -1,
      83,    -1,    -1,    31,    60,    68,    61,    58,    82,    59,
      -1,    27,    60,   100,    61,    57,    -1,    24,    57,    -1,
      23,    98,    57,    -1,    23,    57,    -1,    21,    60,    98,
      61,    79,    -1,    21,    60,    98,    61,    79,    22,    79,
      -1,    33,    60,    98,    61,    91,    -1,    58,    92,    94,
      59,    -1,    58,    92,    59,    -1,    58,    94,    59,    -1,
      58,    59,    -1,    93,    -1,    92,    93,    -1,    34,   103,
      43,    79,    -1,    35,    43,    79,    -1,    19,    60,    98,
      61,    79,    -1,    20,    60,    97,    57,    98,    57,    97,
      61,    79,    -1,    98,    -1,    -1,   104,    -1,    98,    48,
      98,    -1,    98,    49,    98,    -1,    98,    50,    98,    -1,
      98,    51,    98,    -1,    98,    46,    98,    -1,    98,    45,
      98,    -1,    47,    98,    -1,    98,    47,    98,    -1,    98,
       9,    98,    -1,    98,    10,    98,    -1,    98,    11,    98,
      -1,    98,    12,    98,    -1,    98,    15,    98,    -1,    98,
      14,    98,    -1,    52,    98,    -1,    60,    98,    61,    -1,
     102,    -1,   102,    42,    98,    -1,    25,    60,    69,    61,
      -1,    26,    60,    98,    41,    70,    61,    -1,    29,    60,
      61,    -1,    28,    60,    61,    -1,    18,    -1,    99,    -1,
      98,    44,    98,    43,    98,    -1,    69,    60,   101,    61,
      -1,    98,    53,    69,    60,   101,    61,    -1,    98,    -1,
     100,    41,    98,    -1,   100,    -1,    -1,    69,    -1,    98,
      53,    69,    -1,    98,    54,    98,    62,    -1,    38,    -1,
     103,    -1,    39,    -1,    40,    -1,    37,    -1,    16,    -1
};

/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
static const unsigned short int yyrline[] =
{
       0,   171,   171,   185,   186,   189,   190,   191,   193,   195,
     197,   199,   200,   201,   202,   203,   204,   206,   207,   211,
     212,   214,   215,   218,   219,   221,   222,   225,   226,   228,
     229,   233,   237,   242,   243,   245,   246,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   261,
     263,   265,   266,   268,   269,   271,   272,   274,   276,   278,
     280,   281,   283,   284,   286,   288,   289,   290,   294,   299,
     300,   302,   304,   306,   308,   310,   311,   313,   314,   315,
     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
     336,   337,   338,   342,   343,   345,   346,   348,   349,   351,
     352,   353,   355,   357,   358,   359,   360,   361
};
#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", "T_Void", "T_Bool", "T_Int", "T_Double",
  "T_String", "T_Class", "T_LessEqual", "T_GreaterEqual", "T_Equal",
  "T_NotEqual", "T_Dims", "T_And", "T_Or", "T_Null", "T_Extends", "T_This",
  "T_While", "T_For", "T_If", "T_Else", "T_Return", "T_Break", "T_New",
  "T_NewArray", "T_Print", "T_ReadInteger", "T_ReadLine", "T_Try",
  "T_Catch", "T_Throw", "T_Switch", "T_Case", "T_Default", "T_Identifier",
  "T_StringConstant", "T_IntConstant", "T_DoubleConstant",
  "T_BoolConstant", "','", "'='", "':'", "'?'", "'<'", "'>'", "'-'", "'+'",
  "'*'", "'/'", "'%'", "'!'", "'.'", "'['", "UMINUS", "Lower_Else", "';'",
  "'{'", "'}'", "'('", "')'", "']'", "$accept", "Program", "DeclList",
  "Decl", "VariableDecl", "Variable", "Ident", "Type", "ClassDecl",
  "Fieldlist", "Field", "FunctionDecl", "Formals", "StmtBlock",
  "NonEmptyVList", "NonEmptySList", "Stmt", "ThrowStmt", "TryCatchBlock",
  "StmtList", "NonEmptyCBList", "CatchBlockList", "CatchBlock",
  "PrintStmt", "BreakStmt", "ReturnStmt", "IfStmt", "SwitchStmt",
  "SwitchBody", "CaseStmtList", "CaseStmt", "DefaultStmt", "WhileStmt",
  "ForStmt", "Expr_Em", "Expr", "Call", "NonEmptyActuals", "Actuals",
  "LValue", "IntConstant", "Constant", 0
};
#endif

# ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
   token YYLEX-NUM.  */
static const unsigned short int 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,    44,    61,    58,    63,    60,    62,    45,    43,    42,
      47,    37,    33,    46,    91,   296,   297,    59,   123,   125,
      40,    41,    93
};
# endif

/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
static const unsigned char yyr1[] =
{
       0,    63,    64,    65,    65,    66,    66,    66,    67,    68,
      69,    70,    70,    70,    70,    70,    70,    71,    71,    72,
      72,    73,    73,    74,    74,    74,    74,    75,    75,    76,
      76,    76,    76,    77,    77,    78,    78,    79,    79,    79,
      79,    79,    79,    79,    79,    79,    79,    79,    79,    80,
      81,    82,    82,    83,    83,    84,    84,    85,    86,    87,
      88,    88,    89,    89,    90,    91,    91,    91,    91,    92,
      92,    93,    94,    95,    96,    97,    97,    98,    98,    98,
      98,    98,    98,    98,    98,    98,    98,    98,    98,    98,
      98,    98,    98,    98,    98,    98,    98,    98,    98,    98,
      98,    98,    98,    99,    99,   100,   100,   101,   101,   102,
     102,   102,   103,   104,   104,   104,   104,   104
};

/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
static const unsigned char yyr2[] =
{
       0,     2,     1,     2,     1,     1,     1,     1,     2,     2,
       1,     1,     1,     1,     1,     1,     2,     5,     7,     2,
       0,     1,     1,     6,     6,     5,     5,     1,     3,     4,
       3,     3,     2,     1,     2,     1,     2,     1,     2,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
       5,     1,     0,     1,     2,     1,     0,     7,     5,     2,
       3,     2,     5,     7,     5,     4,     3,     3,     2,     1,
       2,     4,     3,     5,     9,     1,     0,     1,     3,     3,
       3,     3,     3,     3,     2,     3,     3,     3,     3,     3,
       3,     3,     2,     3,     1,     3,     4,     6,     3,     3,
       1,     1,     5,     4,     6,     1,     3,     1,     0,     1,
       3,     4,     1,     1,     1,     1,     1,     1
};

/* 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,     0,    11,    12,    13,    14,     0,    10,     0,     2,
       4,     5,     0,    15,     0,     6,     7,     0,     0,     1,
       3,     8,    16,     9,     0,     0,    20,     0,     0,    27,
       0,     0,     0,     0,     0,     0,     0,    26,     9,     0,
       0,    20,    17,    21,    19,    22,    25,     0,   117,   100,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   116,   112,   114,   115,     0,     0,    37,
      32,     0,    33,   109,    39,     0,     0,    35,    48,    47,
      46,    45,    44,    40,    41,    42,    43,     0,   101,    94,
     113,    77,    28,    24,     0,    23,     0,    76,     0,    61,
     109,     0,    59,     0,     0,     0,     0,     0,    52,     0,
       0,    84,    92,     0,   108,    30,    34,     0,    31,    36,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    38,     0,    18,     0,
       0,    75,     0,    60,     0,     0,   105,     0,    99,    98,
      51,     0,    49,     0,    93,   107,     0,    29,    86,    87,
      88,    89,    91,    90,     0,    83,    82,    85,    78,    79,
      80,    81,   110,     0,    95,     0,     0,     0,    96,     0,
       0,     0,    56,     0,   103,     0,   108,   111,    73,     0,
      62,     0,   106,    58,     0,    55,    50,    53,     0,    64,
     102,     0,    76,     0,    97,     0,    54,     0,     0,    68,
       0,    69,     0,   104,     0,    63,     0,     0,     0,    66,
      70,     0,    67,     0,     0,     0,    72,    65,    74,    52,
      71,     0,    57
};

/* YYDEFGOTO[NTERM-NUM]. */
static const short int yydefgoto[] =
{
      -1,     8,     9,    10,    11,    12,   100,    30,    15,    33,
      44,    16,    31,    74,    75,   150,    77,    78,    79,   151,
     195,   196,   197,    80,    81,    82,    83,    84,   199,   210,
     211,   212,    85,    86,   140,    87,    88,   155,   156,    89,
      90,    91
};

/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
   STATE-NUM.  */
#define YYPACT_NINF -74
static const short int yypact[] =
{
     306,   -21,   -74,   -74,   -74,   -74,   -21,   -74,    26,   306,
     -74,   -74,   -34,   -74,    19,   -74,   -74,   -32,    -4,   -74,
     -74,   -74,   -74,   -26,    15,   -21,   -74,   119,   -27,   -74,
      19,   -12,   -17,   132,   -27,    23,   188,   -74,   -74,    56,
     -27,   -74,   -74,   -74,   -74,   -74,   -74,   -27,   -74,   -74,
     -23,    18,    28,   758,    16,    31,    33,    36,    37,    38,
     -13,   138,    59,   -74,   -74,   -74,   -74,   138,   138,   -74,
     -74,   138,   -74,    -1,   -74,   237,   643,   -74,   -74,   -74,
     -74,   -74,   -74,   -74,   -74,   -74,   -74,   386,   -74,    43,
     -74,   -74,   -74,   -74,   137,   -74,   138,   138,   138,   -74,
      61,   413,   -74,   -21,   138,   138,    39,    72,   733,   435,
     138,    17,    17,   290,   138,   -74,   -74,   688,   -74,   -74,
     138,   138,   138,   138,   138,   138,   138,   138,   138,   138,
     138,   138,   138,   138,   -21,   138,   -74,   138,   -74,   317,
      22,   530,   338,   -74,    85,   484,   530,    25,   -74,   -74,
     733,    88,   -74,   365,   -74,   107,    90,   -74,   183,   183,
     604,   604,   586,   540,   512,   183,   183,    78,    78,    17,
      17,    17,    89,   271,   530,   733,   138,   733,   -74,    56,
     138,    96,   126,   100,   -74,   138,   138,   -74,   -74,   462,
     140,    -3,   530,   -74,    99,   126,   -74,   -74,     8,   -74,
     558,   108,   138,   733,   -74,    56,   -74,   122,   129,   -74,
      13,   -74,   123,   -74,   120,   -74,   127,   141,   733,   -74,
     -74,   130,   -74,   733,   139,   733,   -74,   -74,   -74,   733,
     -74,   142,   -74
};

/* YYPGOTO[NTERM-NUM].  */
static const short int yypgoto[] =
{
     -74,   -74,   -74,   190,   -25,   -22,     0,     7,   -74,   159,
     -74,   -29,   175,    40,   -74,   -18,   -73,   -74,   -74,   -19,
     -74,   -74,    24,   -74,   -74,   -74,   -74,   -74,   -74,   -74,
      -7,    12,   -74,   -74,    21,   -15,   -74,   124,    52,   -74,
      32,   -74
};

/* 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 -16
static const short int yytable[] =
{
      13,    17,    29,   119,    45,    29,    18,    14,    43,    13,
      22,    72,   -15,    25,    23,     7,    14,    92,    76,     2,
       3,     4,     5,    21,    13,    32,    19,    13,    24,    39,
      38,    36,    22,    13,    27,   -15,    73,    96,   101,    13,
      14,    41,   207,   208,   119,   108,   109,   207,   208,    40,
     116,     7,   111,   112,    26,     7,   113,   117,   204,   114,
       2,     3,     4,     5,    39,    45,   180,   209,    37,    43,
     134,   135,   219,   102,    46,    73,    28,   119,    97,   176,
      93,   139,   141,   142,    47,   137,   181,    95,    98,   145,
     146,   103,     7,   104,    13,   153,   105,   106,   107,   146,
     148,    14,   188,   144,   190,   158,   159,   160,   161,   162,
     163,   164,   165,   166,   167,   168,   169,   170,   171,   110,
     173,   114,   174,     2,     3,     4,     5,   131,   132,   133,
     215,   134,   135,   149,   172,     1,     2,     3,     4,     5,
       1,     2,     3,     4,     5,   226,   178,   182,   180,   186,
     228,   184,   230,   193,    48,     7,    49,   194,   198,   205,
      64,   189,   203,    55,    56,   192,    58,    59,     7,   213,
     200,   146,   218,     7,     7,    63,    64,    65,    66,    13,
      34,   223,   222,   216,   225,    67,   191,   141,   224,   227,
      68,    42,     2,     3,     4,     5,   138,   229,    71,    20,
      94,   232,    35,   220,    48,    13,    49,    50,    51,    52,
     231,    53,    54,    55,    56,    57,    58,    59,    60,   206,
      61,    62,   221,   214,     7,    63,    64,    65,    66,   147,
     129,   130,   131,   132,   133,    67,   134,   135,   201,   217,
      68,     2,     3,     4,     5,    69,    36,    70,    71,     0,
       0,     0,     0,    48,     0,    49,    50,    51,    52,     0,
      53,    54,    55,    56,    57,    58,    59,    60,     0,    61,
      62,     0,     0,     7,    63,    64,    65,    66,     0,     0,
     120,   121,   122,   123,    67,   124,   125,     0,     0,    68,
       0,     0,     0,     0,    69,    36,   115,    71,     0,   120,
     121,   122,   123,     0,   124,   125,     0,     0,     0,     1,
       2,     3,     4,     5,     6,   126,   127,   128,   129,   130,
     131,   132,   133,     0,   134,   135,   120,   121,   122,   123,
       0,   124,   125,   187,   126,   127,   128,   129,   130,   131,
     132,   133,     7,   134,   135,     0,     0,   120,   121,   122,
     123,   154,   124,   125,     0,     0,     0,     0,     0,     0,
       0,   126,   127,   128,   129,   130,   131,   132,   133,     0,
     134,   135,     0,     0,   120,   121,   122,   123,   175,   124,
     125,     0,   126,   127,   128,   129,   130,   131,   132,   133,
       0,   134,   135,     0,     0,   120,   121,   122,   123,   177,
     124,   125,     0,     0,     0,     0,     0,     0,     0,   126,
     127,   128,   129,   130,   131,   132,   133,     0,   134,   135,
       0,     0,   120,   121,   122,   123,   183,   124,   125,     0,
     126,   127,   128,   129,   130,   131,   132,   133,     0,   134,
     135,     0,     0,   136,   120,   121,   122,   123,     0,   124,
     125,     0,     0,     0,     0,     0,     0,   126,   127,   128,
     129,   130,   131,   132,   133,     0,   134,   135,     0,     0,
     143,   120,   121,   122,   123,     0,   124,   125,     0,   126,
     127,   128,   129,   130,   131,   132,   133,     0,   134,   135,
       0,     0,   152,   120,   121,   122,   123,     0,   124,   125,
       0,     0,     0,     0,     0,     0,   126,   127,   128,   129,
     130,   131,   132,   133,     0,   134,   135,     0,     0,   202,
       0,   120,   121,   122,   123,   179,   124,   125,   126,   127,
     128,   129,   130,   131,   132,   133,     0,   134,   135,   120,
     121,   122,   123,     0,   124,   125,     0,     0,     0,   120,
     121,   122,   123,     0,   124,   185,   126,   127,   128,   129,
     130,   131,   132,   133,     0,   134,   135,   120,   121,   122,
     123,     0,   124,   125,   126,   127,   128,   129,   130,   131,
     132,   133,     0,   134,   135,   127,   128,   129,   130,   131,
     132,   133,     0,   134,   135,   120,   121,   122,   123,     0,
       0,     0,     0,   127,   128,   129,   130,   131,   132,   133,
       0,   134,   135,   120,   121,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   127,   128,   129,   130,   131,   132,   133,     0,   134,
     135,     0,     0,     0,     0,     0,     0,     0,     0,   127,
     128,   129,   130,   131,   132,   133,     0,   134,   135,    48,
       0,    49,    50,    51,    52,     0,    53,    54,    55,    56,
      57,    58,    59,    60,     0,    61,    62,     0,     0,     7,
      63,    64,    65,    66,     0,     0,     0,     0,     0,     0,
      67,     0,     0,     0,     0,    68,     0,     0,     0,     0,

⌨️ 快捷键说明

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