📄 parser.c
字号:
static const short yyrline[] =
{
0, 245, 246, 253, 255, 258, 260, 262, 266, 273,
275, 279, 282, 284, 286, 288, 290, 292, 296, 299,
301, 303, 305, 307, 309, 313, 315, 319, 321, 329,
331, 333, 335, 337, 339, 341, 343, 355, 363, 371,
373, 381, 383, 391, 393, 395, 403, 406, 408, 412,
416, 419, 423, 424, 427, 431, 432, 435, 454, 454,
458, 460, 467, 469, 473, 475, 479, 481, 483, 485,
487, 491, 495, 497, 499, 516, 518, 522, 524, 528,
530, 533, 539, 552, 554, 556, 560, 562, 574, 576,
580, 588, 589, 590, 592, 600, 601, 603, 605, 607,
609, 613, 615, 618, 620, 624, 626, 634, 635, 637,
639, 641, 643, 645, 653, 657, 665, 666, 668, 670,
678, 679, 681, 689, 690, 692, 700, 701, 703, 705,
707, 715, 716, 718, 726, 727, 735, 736, 744, 745,
753, 754, 762, 763, 771, 772, 776, 784, 795, 797,
801, 809, 810, 813, 814, 815, 816, 817, 818, 821,
822, 829, 831, 839, 843, 845, 849, 857, 859, 863,
867, 875, 876, 880, 881, 889, 890, 894, 896, 898,
900, 902, 904, 906, 914, 916, 918, 922, 924, 928,
933, 934, 938, 939, 953, 954, 962, 964, 972, 975,
978, 981, 984, 987, 990, 992, 996, 1000, 1004
};
#endif
#if (YYDEBUG) || defined YYERROR_VERBOSE
/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
static const char *const yytname[] =
{
"$", "error", "$undefined.", "AND_SY", "ASM_SY", "ASSIGNMINUS_SY",
"ASSIGNMOD_SY", "ASSIGNPLUS_SY", "ASSIGNSLASH_SY", "ASSIGNSTAR_SY",
"BOOLEAN_SY", "BREAK_SY", "CASE_SY", "CFLOATCONST_SY", "COLONCOLON_SY",
"CONST_SY", "CONTINUE_SY", "DEFAULT_SY", "DISCARD_SY", "DO_SY", "EQ_SY",
"ELSE_SY", "ERROR_SY", "EXTERN_SY", "FLOAT_SY", "FLOATCONST_SY",
"FLOATHCONST_SY", "FLOATXCONST_SY", "FOR_SY", "GE_SY", "GG_SY",
"GOTO_SY", "IDENT_SY", "IF_SY", "IN_SY", "INLINE_SY", "INOUT_SY",
"INT_SY", "INTCONST_SY", "INTERNAL_SY", "LE_SY", "LL_SY",
"MINUSMINUS_SY", "NE_SY", "OR_SY", "OUT_SY", "PACKED_SY", "PLUSPLUS_SY",
"RETURN_SY", "STATIC_SY", "STRCONST_SY", "STRUCT_SY", "SWITCH_SY",
"TEXOBJ_SY", "THIS_SY", "TYPEDEF_SY", "TYPEIDENT_SY", "UNIFORM_SY",
"VARYING_SY", "VOID_SY", "WHILE_SY", "FIRST_USER_TOKEN_SY", "';'",
"','", "'='", "'}'", "':'", "'<'", "'>'", "'['", "']'", "')'", "'('",
"'{'", "'.'", "'+'", "'-'", "'!'", "'~'", "'*'", "'/'", "'%'", "'&'",
"'^'", "'|'", "'?'", "compilation_unit", "external_declaration",
"declaration", "abstract_declaration", "declaration_specifiers",
"abstract_declaration_specifiers", "abstract_declaration_specifiers2",
"init_declarator_list", "init_declarator", "type_specifier",
"type_qualifier", "type_domain", "storage_class", "function_specifier",
"in_out", "struct_or_connector_specifier", "struct_compound_header",
"struct_or_connector_header", "struct_identifier",
"untagged_struct_header", "struct_declaration_list",
"struct_declaration", "annotation", "@1", "annotation_decl_list",
"declarator", "semantic_declarator", "basic_declarator",
"function_decl_header", "abstract_declarator", "parameter_list",
"parameter_declaration", "abstract_parameter_list",
"non_empty_abstract_parameter_list", "initializer", "initializer_list",
"variable", "basic_variable", "primary_expression",
"postfix_expression", "actual_argument_list", "non_empty_argument_list",
"expression_list", "unary_expression", "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", "conditional_test", "expression",
"function_definition", "function_definition_header", "statement",
"balanced_statement", "dangling_statement", "discard_statement",
"if_statement", "dangling_if", "if_header", "compound_statement",
"compound_header", "compound_tail", "block_item_list", "block_item",
"expression_statement", "expression_statement2", "iteration_statement",
"dangling_iteration", "boolean_scalar_expression", "for_expression_opt",
"for_expression", "boolean_expression_opt", "return_statement",
"member_identifier", "scope_identifier", "semantics_identifier",
"type_identifier", "variable_identifier", "identifier", "constant", 0
};
#endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const short yyr1[] =
{
0, 86, 86, 87, 87, 88, 88, 88, 89, 90,
90, 91, 91, 91, 91, 91, 91, 91, 92, 92,
92, 92, 92, 92, 92, 93, 93, 94, 94, 95,
95, 95, 95, 95, 95, 95, 95, 96, 97, 98,
98, 99, 99, 100, 100, 100, 101, 101, 101, 102,
103, 103, 104, 104, 105, 106, 106, 107, 109, 108,
110, 110, 111, 111, 112, 112, 113, 113, 113, 113,
113, 114, 115, 115, 115, 116, 116, 117, 117, 118,
118, 119, 119, 120, 120, 120, 121, 121, 122, 122,
123, 124, 124, 124, 124, 125, 125, 125, 125, 125,
125, 126, 126, 127, 127, 128, 128, 129, 129, 129,
129, 129, 129, 129, 130, 130, 131, 131, 131, 131,
132, 132, 132, 133, 133, 133, 134, 134, 134, 134,
134, 135, 135, 135, 136, 136, 137, 137, 138, 138,
139, 139, 140, 140, 141, 141, 142, 143, 144, 144,
145, 146, 146, 147, 147, 147, 147, 147, 147, 148,
148, 149, 149, 150, 151, 151, 152, 153, 153, 154,
155, 156, 156, 157, 157, 158, 158, 159, 159, 159,
159, 159, 159, 159, 160, 160, 160, 161, 161, 162,
163, 163, 164, 164, 165, 165, 166, 166, 167, 168,
169, 170, 171, 172, 173, 173, 173, 173, 173
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const short yyr2[] =
{
0, 1, 2, 1, 1, 2, 3, 2, 2, 1,
2, 1, 2, 2, 2, 2, 2, 2, 1, 2,
2, 2, 2, 2, 2, 1, 3, 1, 3, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 4, 4, 1, 1,
2, 4, 1, 1, 1, 1, 2, 1, 0, 4,
0, 2, 1, 2, 1, 3, 1, 4, 3, 3,
3, 2, 0, 4, 3, 1, 3, 2, 4, 0,
1, 1, 3, 1, 3, 4, 1, 3, 1, 3,
1, 1, 1, 3, 4, 1, 2, 2, 3, 4,
4, 0, 1, 1, 3, 1, 3, 1, 2, 2,
2, 2, 2, 2, 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, 1, 3, 2,
3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 2, 3, 4, 2, 4, 4, 3, 2, 1,
1, 1, 2, 1, 1, 2, 1, 3, 1, 3,
3, 3, 3, 3, 5, 7, 9, 5, 9, 1,
1, 0, 1, 3, 1, 0, 3, 2, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1
};
/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
doesn't specify something else to do. Zero means the default is an
error. */
static const short yydefact[] =
{
0, 36, 32, 37, 0, 40, 30, 43, 41, 45,
29, 42, 44, 0, 39, 54, 33, 0, 201, 38,
31, 0, 1, 3, 0, 9, 11, 18, 0, 0,
0, 0, 0, 34, 48, 0, 4, 0, 35, 7,
17, 203, 50, 53, 52, 10, 2, 5, 0, 25,
27, 62, 64, 0, 66, 24, 19, 21, 20, 23,
22, 12, 14, 13, 16, 15, 169, 0, 49, 0,
205, 0, 0, 206, 207, 208, 0, 0, 204, 0,
0, 0, 0, 176, 149, 0, 0, 0, 0, 0,
173, 0, 18, 91, 88, 95, 107, 114, 116, 120,
123, 126, 131, 134, 136, 138, 140, 142, 144, 147,
0, 178, 174, 151, 152, 154, 157, 159, 0, 153,
0, 0, 171, 155, 0, 156, 160, 158, 0, 90,
202, 92, 0, 6, 0, 0, 150, 58, 63, 0,
0, 71, 81, 0, 72, 0, 75, 0, 80, 57,
0, 55, 0, 161, 0, 107, 0, 0, 0, 0,
0, 109, 108, 197, 0, 0, 0, 72, 0, 110,
111, 112, 113, 27, 0, 0, 0, 0, 0, 0,
97, 96, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 164, 151, 170, 168, 0,
148, 172, 175, 0, 51, 200, 26, 0, 28, 83,
60, 65, 0, 68, 77, 8, 0, 69, 70, 0,
46, 56, 47, 162, 0, 192, 0, 190, 189, 0,
196, 0, 0, 93, 0, 105, 179, 180, 181, 182,
183, 177, 0, 0, 102, 103, 98, 198, 117, 118,
119, 121, 122, 125, 124, 130, 129, 127, 128, 132,
133, 135, 137, 139, 141, 143, 0, 0, 167, 89,
202, 86, 0, 0, 67, 0, 0, 76, 82, 0,
0, 0, 166, 0, 115, 0, 94, 99, 100, 0,
0, 163, 165, 0, 84, 59, 61, 78, 0, 74,
0, 194, 0, 193, 184, 187, 106, 104, 145, 85,
87, 73, 0, 0, 185, 0, 0, 186, 188, 0,
0
};
static const short yydefgoto[] =
{
21, 22, 90, 142, 91, 25, 26, 48, 49, 154,
28, 29, 30, 31, 32, 33, 67, 34, 42, 35,
150, 151, 138, 220, 283, 173, 51, 52, 53, 225,
145, 146, 147, 148, 218, 282, 93, 94, 95, 155,
253, 254, 244, 97, 98, 99, 100, 101, 102, 103,
104, 105, 106, 107, 108, 109, 110, 111, 36, 37,
112, 113, 114, 115, 116, 117, 118, 119, 120, 208,
121, 122, 123, 124, 125, 126, 239, 236, 237, 312,
127, 256, 128, 214, 38, 129, 130, 131
};
static const short yypact[] =
{
1238,-32768,-32768,-32768, -44,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768, 1312,-32768, 9,-32768, 1312,-32768,-32768,
-32768, 1187,-32768,-32768, 13,-32768, 1339,-32768, 1312, 1312,
1312, 1312, 1312,-32768, -36, -36,-32768, 292,-32768,-32768,
-32768,-32768, -45,-32768,-32768,-32768,-32768,-32768, 80,-32768,
-20, -24, 44, 1025,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1238,-32768, 1238,
-32768, 644, 560,-32768,-32768,-32768, -18, -13,-32768, 938,
938, 686, 17,-32768,-32768, 499, 938, 938, 938, 938,
-32768, 13, 22,-32768,-32768,-32768, 55,-32768,-32768, 53,
69, 16, 11, 29, -9, 26, 33, 122, -27,-32768,
43,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 560,-32768,
361, 430,-32768,-32768, 86,-32768,-32768,-32768, 121,-32768,
136,-32768, 124,-32768, 124, 728,-32768,-32768,-32768, 124,
4,-32768,-32768, 124, 131, 40,-32768, 100, 110,-32768,
1076,-32768, 1127,-32768, 22, 46, 112, 116, 770, 980,
980,-32768,-32768,-32768, 115, 980, 107,-32768, 114,-32768,
-32768,-32768,-32768, 128, 980, 980, 980, 980, 980, 980,
-32768,-32768, 980, 980, 812, 124, 980, 980, 980, 980,
980, 980, 980, 980, 980, 980, 980, 980, 980, 980,
980, 980, 980, 980, 980,-32768, 165,-32768,-32768, 361,
-32768,-32768,-32768, 124,-32768,-32768,-32768, 728,-32768,-32768,
-32768,-32768, 120,-32768, 129, 125, 1275,-32768,-32768, 1312,
-32768,-32768,-32768,-32768, 123,-32768, 134, 135,-32768, 130,
-32768, 132, 980,-32768, 41,-32768,-32768,-32768,-32768,-32768,
-32768,-32768, 127, 133, 137,-32768,-32768,-32768,-32768,-32768,
-32768, 53, 53, 69, 69, 16, 16, 16, 16, 11,
11, 29, -9, 26, 33, 122, 139, 560,-32768,-32768,
-32768,-32768, 73, 224,-32768, 728, 10,-32768,-32768, 980,
854, 980,-32768, 560,-32768, 980,-32768,-32768,-32768, 980,
980,-32768,-32768, 602,-32768,-32768,-32768,-32768, 140,-32768,
141,-32768, 144,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768, 145, 896,-32768, 142, 560,-32768,-32768, 199,
-32768
};
static const short yypgoto[] =
{
-32768, 181, 1, -80, 3, -3,-32768,-32768, 81, 2,
188, 190, 191, 192, 193,-32768, 185,-32768,-32768,-32768,
152, -11,-32768,-32768,-32768, -17,-32768,-32768,-32768,-32768,
-32768, 6,-32768,-32768, -208,-32768,-32768, 14,-32768, -37,
-32768,-32768,-32768, 12, -175, -43, -33, -88, -30, 24,
30, 32, 35, 38,-32768, -65,-32768, 5,-32768,-32768,
-52, -102, -241,-32768,-32768,-32768,-32768,-32768, 126, 34,
118, -113,-32768, -154,-32768,-32768, -159, -81,-32768,-32768,
-32768,-32768,-32768, 105, 230,-32768, 23,-32768
};
#define YYLAST 1396
static const short yytable[] =
{
96, 23, 27, 24, 235, 166, 241, 50, 211, 281,
40, 258, 259, 260, 45, 27, 206, 203, 39, 27,
157, 132, 23, 27, 24, 61, 62, 63, 64, 65,
27, 27, 27, 27, 27, 96, 302, 66, 44, 92,
193, 41, 222, 137, 135, 41, 191, 54, 308, 197,
144, 194, 315, 136, 158, 27, 143, 192, -146, 159,
175, 176, 177, 178, 179, 18, 205, 294, 149, 27,
149, 27, 198, 199, 223, 47, 156, 307, 195, 196,
309, 96, 167, 96, 96, 328, 164, 92, 180, 165,
168, 161, 162, 181, 174, 320, 211, 180, 169, 170,
171, 172, 181, 226, 295, 265, 266, 267, 268, 200,
139, 227, 296, 140, 54, 183, 141, 201, 184, 182,
185, 96, 92, 92, 183, 202, 224, 184, 204, 185,
310, 311, 186, 187, 188, 213, 303, 313, 304, 231,
219, 231, 133, 134, 189, 190, 261, 262, 212, 288,
-199, 149, 27, 149, 27, 215, 41, 54, 263, 264,
68, 68, 215, -9, 238, 168, 54, 269, 270, 235,
238, 228, 96, 229, 233, 301, 234, 240, 242, 245,
246, 247, 248, 249, 250, 243, 277, 251, 252, 255,
284, 314, 135, 285, 286, 289, 290, 297, 291, 330,
299, 292, 46, 293, 298, 300, 323, 324, 257, 276,
321, 92, 322, 326, 56, 216, 57, 58, 59, 60,
69, 152, 219, 271, 327, 1, 167, 279, 27, 143,
272, 27, 287, 273, 2, 318, 280, 274, 209, 3,
96, 275, 325, 278, 221, 43, 4, 5, 6, 0,
0, 0, 0, 0, 96, 0, 96, 0, 7, 8,
9, 10, 0, 11, 0, 0, 0, 0, 0, 12,
13, 0, 0, 14, 0, 15, 0, 16, 0, 17,
18, 19, 0, 20, 306, 27, 96, 0, 0, 96,
219, 0, 305, 1, 238, 238, 0, 0, 0, 0,
316, 0, 2, 0, 317, 70, 0, 3, 219, 0,
71, 72, 0, 0, 4, 5, 6, 73, 74, 75,
76, 0, 0, 0, 41, 77, 7, 8, 9, 10,
78, 11, 0, 0, 79, 0, 0, 12, 13, 80,
81, 14, 0, 15, 0, 16, 0, 17, 18, 19,
0, 20, 82, 0, 83, 0, 0, 84, 0, 0,
0, 0, 1, 0, 85, 66, 0, 86, 87, 88,
89, 2, 0, 0, 70, 0, 3, 0, 0, 71,
72, 0, 0, 4, 5, 6, 73, 74, 75, 76,
0, 0, 0, 41, 77, 7, 8, 9, 10, 78,
11, 0, 0, 79, 0, 0, 12, 13, 80, 81,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -