📄 totac.tab.c.bak
字号:
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 765
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 74
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 40
/* YYNRULES -- Number of rules. */
#define YYNRULES 121
/* YYNRULES -- Number of states. */
#define YYNSTATES 235
/* 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, 24, 27, 32, 39, 43, 46, 48, 52, 54,
57, 60, 67, 69, 71, 73, 76, 83, 85, 86,
88, 92, 94, 95, 103, 108, 112, 115, 117, 120,
121, 126, 128, 129, 132, 134, 136, 137, 140, 142,
150, 158, 164, 170, 178, 188, 200, 202, 204, 207,
209, 211, 213, 216, 219, 225, 227, 228, 233, 235,
236, 246, 252, 258, 266, 268, 271, 273, 275, 279,
282, 285, 288, 292, 294, 299, 303, 306, 309, 311,
313, 315, 317, 319, 321, 323, 325, 329, 333, 336,
340, 344, 348, 352, 356, 360, 364, 368, 371, 374,
378, 382, 386, 390, 394, 398, 402, 406, 410, 414,
417, 420
};
/* 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, 4, -1,
78, 30, 4, -1, 81, 31, -1, 81, 30, 78,
31, -1, 42, 83, 4, 46, 113, 31, -1, 27,
113, 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, 94, -1, 41, 4, 92, 31, -1, 25, 93,
26, -1, 25, 26, -1, 79, -1, 93, 79, -1,
-1, 25, 95, 96, 26, -1, 97, -1, -1, 97,
101, -1, 101, -1, 99, -1, -1, 99, 100, -1,
100, -1, 43, 23, 11, 30, 4, 24, 31, -1,
44, 23, 11, 30, 4, 24, 31, -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,
94, -1, 79, -1, 102, 31, -1, 107, -1, 106,
-1, 105, -1, 109, 31, -1, 108, 31, -1, 45,
25, 98, 26, 31, -1, 113, -1, -1, 113, 23,
104, 24, -1, 110, -1, -1, 14, 23, 102, 31,
113, 31, 102, 24, 101, -1, 15, 23, 113, 24,
101, -1, 12, 23, 113, 24, 101, -1, 12, 23,
113, 24, 101, 13, 101, -1, 17, -1, 17, 113,
-1, 16, -1, 113, -1, 110, 30, 113, -1, 112,
53, -1, 54, 53, -1, 54, 7, -1, 112, 30,
7, -1, 4, -1, 23, 83, 24, 113, -1, 113,
29, 4, -1, 113, 80, -1, 65, 113, -1, 7,
-1, 8, -1, 11, -1, 5, -1, 6, -1, 9,
-1, 111, -1, 103, -1, 113, 46, 113, -1, 23,
113, 24, -1, 59, 113, -1, 113, 54, 113, -1,
113, 53, 113, -1, 113, 52, 113, -1, 113, 51,
113, -1, 113, 50, 113, -1, 113, 49, 113, -1,
113, 48, 113, -1, 113, 47, 113, -1, 69, 113,
-1, 60, 113, -1, 113, 62, 113, -1, 113, 61,
113, -1, 113, 65, 113, -1, 113, 64, 113, -1,
113, 63, 113, -1, 113, 59, 113, -1, 113, 55,
113, -1, 113, 58, 113, -1, 113, 57, 113, -1,
113, 56, 113, -1, 61, 113, -1, 113, 72, -1,
113, 71, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const unsigned short yyrline[] =
{
0, 100, 100, 103, 104, 107, 108, 113, 114, 117,
118, 121, 122, 125, 129, 132, 136, 140, 146, 147,
150, 152, 157, 158, 159, 160, 163, 167, 168, 171,
172, 175, 179, 179, 198, 201, 202, 205, 207, 212,
212, 221, 222, 225, 226, 229, 230, 233, 234, 237,
239, 241, 242, 243, 244, 246, 251, 252, 253, 254,
255, 256, 257, 258, 259, 262, 263, 266, 269, 270,
273, 277, 280, 281, 284, 285, 288, 291, 292, 295,
296, 299, 300, 302, 303, 306, 307, 308, 309, 310,
311, 312, 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, 339, 340,
341, 342
};
#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", "SHR", "SHL", "XOR", "AND",
"CALCNOT", "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", "fieldblock", "fields", "stmtblock", "@2",
"stmtstar", "stmts", "asmstar", "asms", "asm", "stmt", "simplestmt",
"call", "actuals", "forstmt", "whilestmt", "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, 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, 91, 92, 92, 93, 93, 95,
94, 96, 96, 97, 97, 98, 98, 99, 99, 100,
100, 100, 100, 100, 100, 100, 101, 101, 101, 101,
101, 101, 101, 101, 101, 102, 102, 103, 104, 104,
105, 106, 107, 107, 108, 108, 109, 110, 110, 111,
111, 112, 112, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113
};
/* 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,
3, 2, 4, 6, 3, 2, 1, 3, 1, 2,
2, 6, 1, 1, 1, 2, 6, 1, 0, 1,
3, 1, 0, 7, 4, 3, 2, 1, 2, 0,
4, 1, 0, 2, 1, 1, 0, 2, 1, 7,
7, 5, 5, 7, 9, 11, 1, 1, 2, 1,
1, 1, 2, 2, 5, 1, 0, 4, 1, 0,
9, 5, 5, 7, 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, 22, 24, 23, 0, 0, 0, 2, 4, 5,
0, 0, 18, 7, 6, 8, 25, 0, 0, 1,
3, 0, 11, 15, 0, 0, 19, 20, 0, 0,
25, 0, 9, 0, 28, 0, 83, 91, 92, 88,
89, 93, 90, 0, 0, 0, 0, 0, 0, 0,
95, 94, 0, 0, 36, 37, 0, 0, 34, 0,
0, 12, 31, 0, 27, 29, 0, 0, 0, 81,
80, 98, 108, 119, 87, 107, 0, 79, 69, 14,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
121, 120, 86, 15, 35, 38, 0, 10, 32, 0,
0, 16, 0, 97, 82, 0, 68, 77, 85, 96,
106, 105, 104, 103, 102, 101, 100, 99, 115, 118,
117, 116, 114, 110, 109, 113, 112, 111, 13, 26,
0, 30, 21, 0, 84, 67, 0, 39, 33, 17,
78, 42, 0, 0, 0, 76, 74, 0, 57, 56,
0, 41, 44, 0, 61, 60, 59, 0, 0, 65,
0, 66, 0, 75, 46, 40, 43, 58, 63, 62,
0, 0, 0, 0, 0, 0, 0, 45, 48, 66,
0, 66, 0, 0, 0, 0, 47, 72, 0, 71,
0, 0, 0, 0, 64, 66, 66, 0, 0, 0,
0, 0, 73, 0, 0, 0, 51, 52, 0, 66,
0, 0, 0, 0, 70, 49, 50, 53, 0, 0,
0, 54, 0, 0, 55
};
/* YYDEFGOTO[NTERM-NUM]. */
static const short yydefgoto[] =
{
-1, 6, 7, 8, 33, 158, 102, 10, 110, 56,
12, 13, 63, 64, 65, 14, 140, 15, 29, 57,
159, 151, 160, 161, 186, 187, 188, 162, 163, 50,
115, 164, 165, 166, 167, 168, 116, 51, 52, 169
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -161
static const short yypact[] =
{
213, -161, -161, -161, 6, 112, 5, 213, -161, -161,
51, 13, -161, -161, -161, -161, -12, 11, 15, -161,
-161, 23, -161, 7, 20, 233, -161, -161, 58, 4,
-161, 33, -161, 105, 112, 70, -161, -161, -161, -161,
-161, -161, -161, 211, -5, 233, 233, 233, 233, 233,
-161, -161, -24, 261, -161, -161, 24, 159, -161, 233,
103, -161, -161, 86, 88, -161, 112, -20, 307, -161,
-161, 14, 276, 14, 14, 14, 120, -161, 233, -161,
126, 233, 233, 233, 233, 233, 233, 233, 233, 233,
233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
-161, -161, -161, -161, -161, -161, 353, -161, 115, 112,
1, -15, 233, -161, -161, 119, 125, 537, -161, 537,
583, 629, 647, 647, 647, 647, 647, 647, 693, 276,
276, 276, 276, 96, 96, 14, 14, 14, -161, -161,
138, -161, -161, 112, 14, -161, 233, -161, -161, -15,
537, 97, 127, 141, 146, -161, 233, 152, -161, -161,
154, 97, -161, 155, -161, -161, -161, 156, 157, 537,
233, 233, 233, 537, 72, -161, -161, -161, -161, -161,
399, 158, 445, 170, 171, 174, 172, 72, -161, 167,
233, 167, 191, 194, 130, 175, -161, 197, 491, -161,
177, 181, 189, 25, -161, 167, 233, 210, 219, 193,
198, 214, -161, 206, 207, 209, -161, -161, 67, 167,
204, 215, 220, 242, -161, -161, -161, -161, 68, 226,
247, -161, 235, 229, -161
};
/* YYPGOTO[NTERM-NUM]. */
static const short yypgoto[] =
{
-161, -161, -161, 254, -161, 26, 21, -33, -161, 9,
-161, -161, -161, -161, 153, -161, -161, -161, -161, -161,
123, -161, -161, -161, -161, -161, 77, -65, -160, -161,
-161, -161, -161, -161, -161, -161, -161, -161, -161, -25
};
/* 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 -67
static const short yytable[] =
{
53, 62, 69, 24, 112, 19, 76, 25, 24, 11,
16, 181, 25, 28, 18, 30, 11, 23, 68, 31,
71, 72, 73, 74, 75, 142, 9, 32, 103, 77,
34, 143, 27, 9, 106, 58, 24, 78, 24, 27,
25, 25, 25, 80, 35, 26, 213, 24, 70, 210,
26, 25, 67, 117, 55, 211, 119, 120, 121, 122,
123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
133, 134, 135, 136, 137, 111, 62, 27, 26, 59,
26, 21, 22, 105, 54, 100, 101, 144, 27, 26,
1, 222, 229, 66, 2, 3, 176, 223, 230, 17,
5, 36, 37, 38, 39, 40, 41, 107, 42, 152,
108, 153, 154, 155, 156, 183, 184, 185, 109, 78,
43, 150, 147, 25, 197, 80, 199, 114, -66, 1,
118, 173, 27, 2, 3, 60, 61, 202, 17, 5,
212, 203, 157, 145, 1, 180, 139, 182, 2, 3,
170, 44, 149, 17, 224, 146, 45, 46, 47, 97,
98, 99, 48, 147, 171, 198, 49, 100, 101, 172,
27, 36, 37, 38, 39, 40, 41, 174, 42, 152,
175, 153, 154, 155, 156, 104, 177, 178, 179, 190,
43, 1, 147, 192, 193, 2, 3, 194, 195, 1,
17, 5, 200, 2, 3, 201, 204, 207, 17, 5,
205, 208, 157, 209, 214, 36, 37, 38, 39, 40,
41, 44, 42, 215, 216, 218, 45, 46, 47, 217,
219, 220, 48, 221, 43, 225, 49, 36, 37, 38,
39, 40, 41, 1, 42, 1, 226, 2, 3, 2,
3, 227, 17, 228, 4, 5, 43, 231, 232, 233,
234, 20, 141, 148, 196, 44, 0, 0, 0, 0,
45, 46, 47, 0, 0, 0, 48, 0, 0, 0,
49, 0, 0, 0, 78, 0, 0, 44, 25, 79,
80, 0, 45, 46, 47, 0, 0, 0, 48, 78,
0, 0, 49, 25, 0, 80, 0, 81, 82, 83,
84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
94, 0, 95, 96, 97, 98, 99, 0, 0, 0,
78, 113, 100, 101, 25, 0, 80, 95, 96, 97,
98, 99, 0, 0, 0, 0, 0, 100, 101, 0,
0, 0, 0, 81, 82, 83, 84, 85, 86, 87,
88, 89, 90, 91, 92, 93, 94, 0, 95, 96,
97, 98, 99, 0, 0, 0, 78, 0, 100, 101,
25, 0, 80, 0, 138, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 81,
82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
92, 93, 94, 0, 95, 96, 97, 98, 99, 0,
0, 0, 78, 189, 100, 101, 25, 0, 80, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 81, 82, 83, 84, 85,
86, 87, 88, 89, 90, 91, 92, 93, 94, 0,
95, 96, 97, 98, 99, 0, 0, 0, 78, 191,
100, 101, 25, 0, 80, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 81, 82, 83, 84, 85, 86, 87, 88, 89,
90, 91, 92, 93, 94, 0, 95, 96, 97, 98,
99, 0, 0, 0, 78, 0, 100, 101, 25, 0,
80, 0, 206, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 81, 82, 83,
84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
94, 0, 95, 96, 97, 98, 99, 0, 0, 0,
78, 0, 100, 101, 25, 0, 80, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 81, 82, 83, 84, 85, 86, 87,
88, 89, 90, 91, 92, 93, 94, 0, 95, 96,
97, 98, 99, 0, 0, 0, 78, 0, 100, 101,
25, 0, 80, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 83, 84, 85, 86, 87, 88, 89, 90, 91,
92, 93, 94, 0, 95, 96, 97, 98, 99, 0,
0, 0, 78, 0, 100, 101, 25, 0, 80, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
78, 0, 0, 0, 25, 0, 80, 0, 84, 85,
86, 87, 88, 89, 90, 91, 92, 93, 94, 0,
95, 96, 97, 98, 99, 0, 0, 0, 0, 0,
100, 101, 90, 91, 92, 93, 94, 0, 95, 96,
97, 98, 99, 0, 0, 0, 78, 0, 100, 101,
25, 0, 80, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 91,
92, 93, 94, 0, 95, 96, 97, 98, 99, 0,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -