📄 checker.tab.c.bak
字号:
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 74
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 45
/* YYNRULES -- Number of rules. */
#define YYNRULES 128
/* YYNRULES -- Number of states. */
#define YYNSTATES 242
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 328
#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, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 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, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73
};
#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, 8, 10, 12, 14, 16, 18,
20, 22, 26, 29, 34, 41, 45, 48, 50, 54,
56, 59, 62, 69, 71, 73, 75, 78, 85, 87,
88, 90, 94, 96, 97, 105, 106, 112, 116, 119,
121, 124, 125, 130, 132, 133, 136, 138, 140, 141,
144, 146, 152, 158, 166, 176, 188, 196, 204, 206,
208, 211, 213, 215, 217, 220, 223, 229, 231, 233,
234, 239, 241, 242, 243, 244, 256, 257, 264, 269,
272, 277, 279, 282, 284, 286, 290, 293, 296, 299,
303, 305, 310, 314, 317, 320, 322, 324, 326, 328,
330, 332, 334, 336, 340, 344, 347, 351, 355, 359,
363, 367, 371, 375, 379, 382, 385, 389, 393, 397,
401, 405, 409, 413, 417, 421, 425, 428, 431
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yysigned_char yyrhs[] =
{
75, 0, -1, 76, -1, 76, 77, -1, 77, -1,
79, -1, 89, -1, 85, -1, 91, -1, 1, -1,
4, -1, 78, 30, 4, -1, 81, 31, -1, 81,
30, 78, 31, -1, 42, 83, 4, 46, 118, 31,
-1, 27, 118, 28, -1, 83, 4, -1, 83, -1,
82, 30, 83, -1, 84, -1, 83, 65, -1, 83,
80, -1, 83, 23, 24, 23, 82, 24, -1, 32,
-1, 37, -1, 36, -1, 41, 4, -1, 83, 4,
23, 86, 24, 31, -1, 87, -1, -1, 88, -1,
87, 30, 88, -1, 81, -1, -1, 83, 4, 23,
86, 24, 90, 95, -1, -1, 41, 4, 92, 93,
31, -1, 25, 94, 26, -1, 25, 26, -1, 79,
-1, 94, 79, -1, -1, 25, 96, 97, 26, -1,
98, -1, -1, 98, 102, -1, 102, -1, 100, -1,
-1, 100, 101, -1, 101, -1, 45, 23, 7, 24,
31, -1, 45, 23, 11, 24, 31, -1, 45, 23,
11, 30, 11, 24, 31, -1, 45, 23, 11, 30,
11, 30, 11, 24, 31, -1, 45, 23, 11, 30,
11, 30, 11, 30, 11, 24, 31, -1, 43, 23,
11, 30, 4, 24, 31, -1, 44, 23, 11, 30,
4, 24, 31, -1, 95, -1, 79, -1, 103, 31,
-1, 112, -1, 109, -1, 106, -1, 114, 31, -1,
113, 31, -1, 45, 25, 99, 26, 31, -1, 1,
-1, 118, -1, -1, 118, 23, 105, 24, -1, 115,
-1, -1, -1, -1, 14, 23, 103, 31, 118, 107,
31, 103, 24, 108, 102, -1, -1, 15, 23, 118,
24, 110, 102, -1, 12, 23, 118, 24, -1, 111,
102, -1, 111, 102, 13, 102, -1, 17, -1, 17,
118, -1, 16, -1, 118, -1, 115, 30, 118, -1,
117, 53, -1, 54, 53, -1, 54, 7, -1, 117,
30, 7, -1, 4, -1, 23, 83, 24, 118, -1,
118, 29, 4, -1, 118, 80, -1, 65, 118, -1,
7, -1, 8, -1, 11, -1, 5, -1, 6, -1,
9, -1, 116, -1, 104, -1, 118, 46, 118, -1,
23, 118, 24, -1, 60, 118, -1, 118, 54, 118,
-1, 118, 53, 118, -1, 118, 52, 118, -1, 118,
51, 118, -1, 118, 50, 118, -1, 118, 49, 118,
-1, 118, 48, 118, -1, 118, 47, 118, -1, 69,
118, -1, 56, 118, -1, 118, 62, 118, -1, 118,
61, 118, -1, 118, 65, 118, -1, 118, 64, 118,
-1, 118, 63, 118, -1, 118, 60, 118, -1, 118,
55, 118, -1, 118, 59, 118, -1, 118, 58, 118,
-1, 118, 57, 118, -1, 61, 118, -1, 118, 72,
-1, 118, 71, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const unsigned short yyrline[] =
{
0, 98, 98, 101, 102, 105, 106, 107, 108, 109,
112, 113, 116, 117, 120, 124, 127, 131, 135, 141,
142, 145, 147, 152, 153, 154, 155, 167, 175, 176,
179, 180, 183, 188, 188, 205, 205, 209, 210, 213,
215, 220, 220, 224, 225, 228, 229, 232, 233, 236,
237, 240, 241, 242, 243, 245, 247, 249, 253, 254,
255, 256, 257, 258, 259, 260, 261, 262, 265, 266,
269, 272, 273, 276, 277, 276, 281, 281, 285, 287,
288, 291, 294, 299, 303, 304, 307, 308, 311, 312,
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 352, 353
};
#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", "NIL", "IDENT", "TRUE", "FALSE", "INT",
"SYMNULL", "CHAR", "DOUBLE", "STRING", "IF", "ELSE", "FOR", "WHILE",
"BREAK", "RETURN", "PRINT", "READINT", "READDBL", "READLINE", "NEW",
"LPAREN", "RPAREN", "LBRACKET", "RBRACKET", "LSQUARE", "RSQUARE", "DOT",
"COMMA", "SEMICOLON", "TYPEINT", "TYPEDOUBLE", "TYPEBOOL", "TYPESTRING",
"TYPEVOID", "TYPECHAR", "CLASS", "EXTENDS", "THIS", "STRUCT", "CONST",
"READREG", "WRITEREG", "ASM", "LET", "LOGICOR", "LOGICAND", "NEQ",
"EQL", "GEQ", "LEQ", "GTR", "LES", "OR", "CALCNOT", "SHR", "SHL", "XOR",
"AND", "MINUS", "ADD", "MOD", "DIV", "MUL", "FORCE", "REF", "STAR",
"NOT", "UMINUS", "MMINUS", "PPLUS", "IFX", "$accept", "program",
"decls", "decl", "varlist", "vardecl", "arraysub", "var", "types",
"type", "basictype", "funcdecl", "formals", "funcvars", "funcvar",
"funcdef", "@1", "structdef", "@2", "fieldblock", "fields", "stmtblock",
"@3", "stmtstar", "stmts", "asmstar", "asms", "asm", "stmt",
"simplestmt", "call", "actuals", "forstmt", "@4", "@5", "whilestmt",
"@6", "ifpart", "ifstmt", "returnstmt", "breakstmt", "exprs",
"intblock", "ints", "expr", 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, 307, 308, 309, 310, 311, 312, 313, 314,
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
325, 326, 327, 328
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const unsigned char yyr1[] =
{
0, 74, 75, 76, 76, 77, 77, 77, 77, 77,
78, 78, 79, 79, 79, 80, 81, 82, 82, 83,
83, 83, 83, 84, 84, 84, 84, 85, 86, 86,
87, 87, 88, 90, 89, 92, 91, 93, 93, 94,
94, 96, 95, 97, 97, 98, 98, 99, 99, 100,
100, 101, 101, 101, 101, 101, 101, 101, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102, 103, 103,
104, 105, 105, 107, 108, 106, 110, 109, 111, 112,
112, 113, 113, 114, 115, 115, 116, 116, 117, 117,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118
};
/* 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, 1, 1,
1, 3, 2, 4, 6, 3, 2, 1, 3, 1,
2, 2, 6, 1, 1, 1, 2, 6, 1, 0,
1, 3, 1, 0, 7, 0, 5, 3, 2, 1,
2, 0, 4, 1, 0, 2, 1, 1, 0, 2,
1, 5, 5, 7, 9, 11, 7, 7, 1, 1,
2, 1, 1, 1, 2, 2, 5, 1, 1, 0,
4, 1, 0, 0, 0, 11, 0, 6, 4, 2,
4, 1, 2, 1, 1, 3, 2, 2, 2, 3,
1, 4, 3, 2, 2, 1, 1, 1, 1, 1,
1, 1, 1, 3, 3, 2, 3, 3, 3, 3,
3, 3, 3, 3, 2, 2, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 2, 2, 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, 9, 23, 25, 24, 0, 0, 0, 0, 4,
5, 0, 0, 19, 7, 6, 8, 26, 0, 0,
1, 3, 0, 12, 16, 0, 0, 20, 21, 0,
26, 0, 10, 0, 29, 0, 90, 98, 99, 95,
96, 100, 97, 0, 0, 0, 0, 0, 0, 0,
102, 101, 0, 0, 0, 0, 0, 0, 13, 32,
0, 0, 28, 30, 0, 0, 0, 88, 87, 115,
105, 126, 94, 114, 0, 86, 72, 15, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 128, 127,
93, 38, 39, 0, 36, 0, 11, 16, 33, 0,
0, 17, 0, 104, 89, 0, 71, 84, 92, 103,
113, 112, 111, 110, 109, 108, 107, 106, 122, 125,
124, 123, 121, 117, 116, 120, 119, 118, 37, 40,
14, 27, 0, 31, 22, 0, 91, 70, 0, 41,
34, 18, 85, 0, 67, 0, 0, 0, 83, 81,
0, 59, 58, 0, 0, 46, 0, 63, 62, 0,
61, 0, 0, 68, 0, 69, 0, 82, 48, 42,
45, 60, 79, 65, 64, 0, 0, 0, 0, 0,
0, 0, 47, 50, 0, 78, 0, 76, 0, 0,
0, 0, 49, 80, 73, 0, 0, 0, 0, 0,
66, 0, 77, 0, 0, 0, 0, 0, 69, 0,
0, 51, 52, 0, 0, 0, 0, 0, 0, 74,
56, 57, 53, 0, 0, 0, 0, 75, 54, 0,
0, 55
};
/* YYDEFGOTO[NTERM-NUM]. */
static const short yydefgoto[] =
{
-1, 7, 8, 9, 33, 161, 100, 11, 110, 60,
13, 14, 61, 62, 63, 15, 142, 16, 29, 55,
103, 162, 153, 163, 164, 191, 192, 193, 165, 166,
50, 115, 167, 211, 234, 168, 205, 169, 170, 171,
172, 116, 51, 52, 173
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -174
static const short yypact[] =
{
165, -174, -174, -174, -174, 24, 62, 4, 188, -174,
-174, 97, 14, -174, -174, -174, -174, 6, 34, 20,
-174, -174, 35, -174, 19, 50, 299, -174, -174, 56,
-174, 38, -174, 104, 62, 64, -174, -174, -174, -174,
-174, -174, -174, 277, -4, 299, 299, 299, 299, 299,
-174, -174, -17, 329, 231, 69, 299, 89, -174, -174,
25, 72, 80, -174, 62, 65, 375, -174, -174, 715,
68, 68, 68, 68, 95, -174, 299, -174, 109, 299,
299, 299, 299, 299, 299, 299, 299, 299, 299, 299,
299, 299, 299, 299, 299, 299, 299, 299, -174, -174,
-174, -174, -174, 303, -174, 421, -174, -174, 90, 62,
-18, 17, 299, -174, -174, 114, 113, 559, -174, 559,
605, 651, 669, 669, 669, 669, 669, 669, 715, 190,
190, 190, 190, 298, 298, 68, 68, 68, -174, -174,
-174, -174, 119, -174, -174, 62, 68, -174, 299, -174,
-174, 17, 559, 100, -174, 123, 124, 126, -174, 299,
127, -174, -174, 125, 167, -174, 128, -174, -174, 233,
-174, 131, 132, 559, 299, 299, 299, 559, 75, -174,
-174, -174, 142, -174, -174, 467, 136, 513, 134, 135,
154, 159, 75, -174, 233, -174, 299, -174, 169, 175,
0, 156, -174, -174, 559, 233, 161, 164, 171, -15,
-174, 174, -174, 192, 196, 179, 180, 203, 299, 191,
194, -174, -174, 3, 198, 185, 195, 200, 222, -174,
-174, -174, -174, 53, 233, 204, 232, -174, -174, 235,
215, -174
};
/* YYPGOTO[NTERM-NUM]. */
static const short yypgoto[] =
{
-174, -174, -174, 252, -174, 26, 13, -33, -174, 8,
-174, -174, -174, -174, 157, -174, -174, -174, -174, -174,
-174, 129, -174, -174, -174, -174, -174, 84, -159, -173,
-174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
-174, -174, -174, -174, -26
};
/* 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 -70
static const short yytable[] =
{
53, 59, 186, 67, 20, 180, 144, 208, 12, 216,
182, 209, 145, 74, 19, 217, 12, 66, 24, 69,
70, 71, 72, 73, 31, 28, 10, 227, 17, 107,
105, -35, 28, 228, 10, 203, 75, 25, 30, 32,
25, 26, 34, 25, 26, 224, 212, 26, 25, 68,
117, 65, 26, 119, 120, 121, 122, 123, 124, 125,
126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
136, 137, 111, 28, 35, 237, 59, 235, 28, 27,
102, 54, 27, 236, 56, 27, 146, 64, 25, 112,
27, 76, 26, 106, 2, 26, 108, 78, 3, 4,
104, 154, 114, 18, 36, 37, 38, 39, 40, 41,
109, 42, 155, 118, 156, 157, 158, 159, 188, 189,
190, 141, 152, 43, 28, 149, -44, 22, 23, 139,
27, -69, 2, 177, 57, 58, 3, 4, 147, 98,
99, 18, 6, 148, 149, 160, 174, 175, 185, 176,
187, 179, 178, 151, 44, 194, 45, 198, 199, 181,
46, 47, 183, 184, 28, 48, 1, 196, 154, 49,
204, 36, 37, 38, 39, 40, 41, 200, 42, 155,
206, 156, 157, 158, 159, 201, 207, 210, -2, 1,
43, 213, 149, -43, 214, 215, 219, 2, -69, 2,
220, 3, 4, 3, 4, 218, 5, 6, 18, 6,
221, 222, 160, 76, 223, 225, 230, 26, 226, 78,
2, 44, 229, 45, 3, 4, 231, 46, 47, 5,
6, 232, 48, 233, 154, 238, 49, 36, 37, 38,
39, 40, 41, 239, 42, 155, 241, 156, 157, 158,
159, 93, 94, 95, 96, 97, 43, 101, 149, 240,
21, 98, 99, 2, -69, 2, 143, 3, 4, 3,
4, 150, 18, 6, 18, 6, 202, 0, 160, 0,
0, 36, 37, 38, 39, 40, 41, 44, 42, 45,
0, 0, 0, 46, 47, 0, 0, 0, 48, 0,
43, 0, 49, 36, 37, 38, 39, 40, 41, 2,
42, 0, 0, 3, 4, 0, 0, 0, 18, 0,
0, 76, 43, 0, 0, 26, 0, 78, 0, 138,
0, 44, 0, 45, 0, 2, 0, 46, 47, 3,
4, 0, 48, 0, 18, 6, 49, 0, 0, 0,
0, 0, 76, 44, 0, 45, 26, 77, 78, 46,
47, 95, 96, 97, 48, 0, 0, 0, 49, 98,
99, 0, 0, 0, 0, 79, 80, 81, 82, 83,
84, 85, 86, 87, 88, 0, 89, 90, 91, 92,
93, 94, 95, 96, 97, 0, 0, 0, 76, 113,
98, 99, 26, 0, 78, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 79, 80, 81, 82, 83, 84, 85, 86, 87,
88, 0, 89, 90, 91, 92, 93, 94, 95, 96,
97, 0, 0, 0, 76, 0, 98, 99, 26, 0,
78, 0, 140, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 79, 80, 81,
82, 83, 84, 85, 86, 87, 88, 0, 89, 90,
91, 92, 93, 94, 95, 96, 97, 0, 0, 0,
76, 195, 98, 99, 26, 0, 78, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 79, 80, 81, 82, 83, 84, 85,
86, 87, 88, 0, 89, 90, 91, 92, 93, 94,
95, 96, 97, 0, 0, 0, 76, 197, 98, 99,
26, 0, 78, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 0,
89, 90, 91, 92, 93, 94, 95, 96, 97, 0,
0, 0, 76, 0, 98, 99, 26, 0, 78, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 79, 80, 81, 82, 83,
84, 85, 86, 87, 88, 0, 89, 90, 91, 92,
93, 94, 95, 96, 97, 0, 0, 0, 76, 0,
98, 99, 26, 0, 78, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 81, 82, 83, 84, 85, 86, 87,
88, 0, 89, 90, 91, 92, 93, 94, 95, 96,
97, 0, 0, 0, 76, 0, 98, 99, 26, 0,
78, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 76, 0, 0, 0, 26, 0, 78, 0,
82, 83, 84, 85, 86, 87, 88, 0, 89, 90,
91, 92, 93, 94, 95, 96, 97, 0, 0, 0,
0, 0, 98, 99, 88, 0, 89, 90, 91, 92,
93, 94, 95, 96, 97, 0, 0, 0, 76, 0,
98, 99, 26, 0, 78, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -