📄 y.tab.c
字号:
/* 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 + -