📄 y_tab.c
字号:
#ifndef lint
static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/02/91\n\
Generated by WANG Hanfei for DOS.";
#endif
#define YYBYACC 1
#define YYPREFIX "yy"
#line 2 "pascal.y"
#include <stdio.h>
#include "types.h"
extern int linenumber;
extern char yytext[];
extern char numbertext[80];
extern char *laststring;
extern char lastident[];
extern char *create_string();
#define YYSTYPE item
int lexical_level = 0;
static int param_level = 0;
static char *its_a = "error - uninitialised";
#line 28 "y_tab.c"
#define UNSIGNED_INT 257
#define UNSIGNED_REAL 258
#define STRING 259
#define IDENTIFIER 260
#define NE 261
#define LE 262
#define GE 263
#define BECOMES 264
#define DIV 265
#define MOD 266
#define NIL 267
#define IN 268
#define OR 269
#define AND 270
#define NOT 271
#define DOTDOT 272
#define IF 273
#define THEN 274
#define ELSE 275
#define CASE 276
#define OF 277
#define REPEAT 278
#define UNTIL 279
#define WHILE 280
#define DO 281
#define FOR 282
#define TO 283
#define DOWNTO 284
#define SBEGIN 285
#define END 286
#define WITH 287
#define GOTO 288
#define CONST 289
#define VAR 290
#define TYPE 291
#define ARRAY 292
#define RECORD 293
#define SET 294
#define SFILE 295
#define FUNCTION 296
#define PROCEDURE 297
#define LABEL 298
#define PACKED 299
#define PROGRAM 300
#define YYERRCODE 256
short yylhs[] = { -1,
2, 0, 3, 6, 3, 4, 7, 7, 9, 9,
10, 10, 10, 10, 10, 11, 16, 16, 17, 12,
18, 18, 20, 19, 21, 21, 21, 21, 21, 21,
21, 22, 22, 13, 24, 24, 26, 25, 27, 27,
27, 27, 30, 28, 28, 28, 29, 29, 29, 29,
31, 31, 32, 32, 32, 33, 33, 36, 35, 35,
38, 34, 37, 37, 39, 39, 40, 40, 14, 42,
42, 44, 43, 5, 45, 45, 15, 46, 46, 50,
52, 47, 53, 55, 49, 54, 54, 48, 48, 51,
57, 51, 56, 56, 60, 58, 61, 58, 62, 58,
63, 58, 59, 64, 64, 64, 65, 65, 67, 66,
8, 68, 69, 69, 70, 70, 70, 70, 70, 70,
70, 70, 70, 70, 70, 70, 70, 75, 75, 71,
72, 78, 78, 79, 79, 80, 80, 81, 81, 74,
74, 82, 82, 41, 41, 83, 76, 76, 73, 73,
86, 86, 86, 86, 86, 86, 86, 85, 85, 85,
85, 88, 88, 88, 87, 87, 90, 90, 90, 90,
90, 89, 89, 89, 89, 89, 91, 91, 91, 92,
93, 93, 94, 94, 95, 95, 77, 77, 77, 77,
96, 96, 84, 23, 1,
};
short yylen[] = { 2,
0, 7, 0, 0, 4, 2, 0, 1, 2, 1,
1, 1, 1, 1, 1, 3, 3, 1, 1, 3,
3, 1, 0, 4, 1, 2, 2, 1, 2, 2,
1, 1, 1, 3, 3, 1, 0, 4, 1, 2,
1, 2, 0, 4, 3, 1, 6, 3, 3, 3,
3, 1, 1, 3, 1, 3, 1, 0, 4, 0,
0, 5, 3, 1, 3, 1, 5, 0, 3, 3,
1, 0, 4, 1, 3, 1, 1, 4, 4, 0,
0, 5, 0, 0, 5, 0, 3, 1, 1, 0,
0, 4, 3, 1, 0, 2, 0, 3, 0, 2,
0, 2, 3, 1, 6, 7, 3, 1, 0, 6,
1, 3, 3, 1, 0, 3, 1, 1, 1, 2,
4, 6, 5, 4, 4, 8, 4, 1, 1, 3,
2, 0, 3, 3, 1, 1, 2, 2, 4, 3,
1, 3, 0, 3, 1, 1, 3, 1, 1, 3,
1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
3, 1, 1, 1, 1, 3, 1, 1, 1, 1,
1, 1, 1, 3, 1, 2, 1, 1, 1, 3,
0, 1, 3, 1, 1, 3, 2, 4, 3, 2,
3, 1, 1, 1, 1,
};
short yydefred[] = { 0,
1, 0, 0, 195, 0, 4, 0, 0, 0, 76,
0, 0, 23, 72, 37, 83, 80, 0, 0, 0,
0, 10, 11, 12, 13, 14, 15, 77, 0, 0,
5, 0, 0, 22, 0, 0, 71, 0, 0, 36,
0, 0, 0, 19, 0, 18, 2, 0, 6, 111,
9, 0, 0, 75, 0, 0, 0, 0, 0, 0,
84, 81, 16, 0, 194, 0, 0, 0, 0, 0,
0, 0, 0, 0, 117, 0, 114, 118, 119, 0,
89, 88, 0, 0, 21, 0, 70, 0, 35, 0,
0, 0, 17, 32, 33, 178, 179, 0, 0, 0,
0, 0, 177, 0, 0, 0, 0, 0, 165, 173,
175, 0, 0, 0, 0, 0, 0, 148, 120, 0,
0, 0, 112, 0, 0, 0, 190, 0, 78, 79,
31, 0, 0, 24, 25, 28, 0, 0, 0, 0,
0, 43, 0, 0, 0, 73, 39, 41, 38, 91,
0, 85, 82, 176, 0, 0, 0, 0, 0, 0,
184, 187, 0, 156, 154, 155, 157, 164, 151, 162,
163, 152, 153, 0, 0, 169, 170, 171, 167, 168,
0, 0, 0, 0, 0, 0, 0, 116, 0, 0,
135, 113, 130, 189, 192, 0, 26, 29, 27, 30,
0, 61, 0, 0, 55, 57, 0, 0, 0, 40,
0, 42, 0, 0, 0, 174, 0, 180, 0, 0,
0, 0, 166, 146, 0, 0, 141, 145, 125, 124,
0, 127, 147, 0, 137, 133, 0, 0, 188, 52,
0, 0, 48, 0, 0, 49, 50, 0, 45, 97,
0, 94, 0, 0, 0, 87, 186, 183, 0, 0,
0, 123, 0, 128, 129, 0, 0, 134, 191, 0,
0, 0, 0, 64, 0, 54, 56, 0, 44, 0,
0, 92, 0, 96, 100, 102, 122, 144, 142, 140,
0, 0, 51, 0, 0, 0, 59, 98, 93, 0,
0, 139, 47, 63, 0, 66, 0, 0, 0, 104,
103, 126, 0, 0, 109, 0, 65, 0, 0, 108,
0, 109, 0, 109, 0, 0, 0, 67, 107, 0,
0, 0, 105, 0, 0, 0, 106, 110,
};
short yydgoto[] = { 2,
10, 3, 7, 82, 283, 8, 20, 49, 21, 22,
23, 24, 25, 26, 27, 45, 73, 33, 34, 35,
144, 103, 104, 39, 40, 41, 146, 147, 148, 211,
241, 203, 204, 205, 206, 207, 275, 242, 305, 306,
225, 36, 37, 38, 12, 28, 29, 83, 30, 43,
151, 92, 42, 152, 91, 251, 214, 252, 284, 253,
280, 254, 255, 311, 319, 320, 321, 75, 76, 77,
78, 79, 158, 226, 266, 116, 106, 122, 190, 191,
235, 227, 228, 118, 107, 174, 108, 175, 109, 181,
110, 111, 159, 160, 161, 196,
};
short yysindex[] = { -253,
0, 0, -201, 0, 23, 0, 38, -201, 148, 0,
26, 34, 0, 0, 0, 0, 0, -159, 70, -177,
148, 0, 0, 0, 0, 0, 0, 0, 58, 65,
0, -201, 66, 0, -201, 73, 0, -201, 83, 0,
-201, -201, -201, 0, 33, 0, 0, 484, 0, 0,
0, -95, -95, 0, 0, 88, 0, 109, 0, 115,
0, 0, 0, -159, 0, 191, 191, 484, 191, -76,
-76, -159, 120, 145, 0, -29, 0, 0, 0, 61,
0, 0, 127, 128, 0, 165, 0, -30, 0, -30,
153, 153, 0, 0, 0, 0, 0, 42, 191, 42,
42, 191, 0, 145, -75, 9, 438, 18, 0, 0,
0, -79, -55, -81, -60, -38, 9, 0, 0, 484,
191, 0, 0, 484, 191, -76, 0, 191, 0, 0,
0, -100, -100, 0, 0, 0, 114, -69, -66, -65,
-112, 0, -47, -50, 0, 0, 0, 0, 0, 0,
159, 0, 0, 0, 185, 18, 18, -31, 149, 202,
0, 0, 484, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 191, 42, 0, 0, 0, 0, 0,
42, 165, 191, 484, 191, 484, -76, 0, 200, 99,
0, 0, 0, 0, 0, -8, 0, 0, 0, 0,
105, 0, 11, 227, 0, 0, -201, 105, -30, 0,
-201, 0, 165, 21, -76, 0, 191, 0, 191, 37,
-21, 18, 0, 0, 62, -26, 0, 0, 0, 0,
-211, 0, 0, 191, 0, 0, 191, 191, 0, 0,
2, 48, 0, -69, 240, 0, 0, 273, 0, 0,
15, 0, -201, 35, 20, 0, 0, 0, 484, 165,
484, 0, 165, 0, 0, 191, 281, 0, 0, 105,
67, 0, 295, 0, 84, 0, 0, -30, 0, -201,
21, 0, 308, 0, 0, 0, 0, 0, 0, 0,
86, 191, 0, -30, -76, 165, 0, 0, 0, -203,
484, 0, 0, 0, 309, 0, 77, 279, 79, 0,
0, 0, 165, 339, 0, 290, 0, -69, -43, 0,
-201, 0, 343, 0, 108, 116, 297, 0, 0, -203,
-201, 117, 0, 345, -76, -76, 0, 0,
};
short yyrindex[] = { 0,
0, 0, 0, 0, 338, 0, 0, 0, 121, 0,
0, 64, 0, 0, 0, 0, 0, 0, 0, 0,
135, 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, -10, 0, 0,
0, 121, 121, 0, 423, 0, 426, 0, 442, 0,
0, 0, 0, 0, 0, 0, 0, -42, 0, 0,
0, 0, 0, 40, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10, 17, 0, 0, 0, 0, 0, 0, 0, 0,
0, 333, 0, 68, 0, 130, 194, 234, 0, 0,
0, 0, 0, 0, 0, 0, -37, 0, 0, -5,
0, 289, 0, -6, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -54, 0, 0,
0, 0, 0, 0, -32, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 262, 315, 8, 0, 334,
0, 0, -5, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 3, 0, -5, 0, -5, 0, 0, 110, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, -27, 0, 0, 0, 0, 0, 0,
0, 0, 0, -226, 0, 0, 0, 0, 0, 31,
328, 374, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, -15, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, -5, 0,
-10, 0, 3, 0, 0, 0, 125, 0, 0, 0,
0, -57, 0, 0, 0, 0, 0, 0, 0, 0,
-226, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -39, 0, 0, 0, 0,
-5, 0, 0, 0, -20, 0, 0, 0, 0, 0,
0, 0, -39, 0, 0, 0, 0, 7, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
};
short yygindex[] = { 0,
-3, 0, 0, 392, 171, 0, 0, 0, 0, 407,
0, 0, 0, 0, 0, 0, 19, 0, 375, 0,
367, 483, -45, 0, 370, 0, 63, -166, 299, 0,
0, 113, 0, 197, 198, 0, 0, 0, 0, 134,
-194, 0, 386, 0, 0, 0, 201, 399, 199, 0,
364, 0, 0, 0, 0, 0, 0, 176, 179, 0,
0, 0, 0, 131, 0, -186, 0, 440, 395, 226,
0, 0, 492, 0, 0, 0, -40, 360, 0, 228,
0, 207, 212, 287, 302, 0, -82, 0, -87, 0,
0, 0, 0, 0, 260, 0,
};
#define YYTABLESIZE 796
short yytable[] = { 5,
195, 68, 74, 124, 60, 187, 193, 80, 46, 142,
154, 46, 132, 53, 133, 324, 115, 156, 157, 68,
62, 170, 74, 171, 115, 60, 46, 80, 54, 124,
117, 56, 263, 95, 240, 238, 46, 60, 61, 62,
136, 246, 145, 60, 145, 270, 1, 60, 115, 325,
86, 185, 115, 115, 126, 282, 65, 90, 4, 179,
46, 143, 6, 143, 180, 60, 31, 90, 86, 101,
99, 264, 265, 281, 74, 90, 64, 32, 74, 80,
194, 99, 93, 80, 239, 132, 198, 200, 308, 121,
119, 63, 222, 223, 271, 309, 9, 44, 132, 128,
185, 307, 127, 293, 74, 260, 126, 48, 132, 132,
132, 132, 132, 132, 132, 47, 52, 74, 307, 261,
260, 74, 80, 53, 55, 132, 132, 132, 132, 132,
132, 57, 102, 132, 314, 327, 136, 329, 74, 236,
74, 59, 237, 80, 142, 80, 117, 132, 86, 133,
136, 128, 149, 136, 127, 145, 94, 95, 132, 65,
132, 132, 145, 145, 81, 138, 88, 136, 138, 256,
172, 172, 172, 172, 172, 90, 172, 120, 11, 137,
138, 139, 140, 65, 121, 129, 130, 172, 172, 172,
172, 172, 150, 13, 14, 15, 274, 182, 163, 184,
16, 17, 18, 185, 201, 58, 202, 132, 58, 133,
208, 209, 212, 74, 136, 74, 215, 136, 80, 194,
80, 213, 172, 183, 145, 216, 94, 95, 131, 65,
99, 60, 145, 100, 149, 101, 115, 149, 273, 28,
217, 218, 186, 193, 58, 219, 68, 168, 145, 304,
136, 149, 149, 46, 310, 74, 123, 234, 53, 262,
80, 137, 138, 139, 140, 62, 58, 136, 141, 115,
60, 247, 115, 115, 158, 115, 158, 158, 158, 115,
115, 102, 176, 177, 310, 244, 149, 178, 143, 337,
338, 158, 158, 158, 158, 158, 243, 278, 94, 95,
96, 65, 159, 132, 159, 159, 159, 272, 97, 121,
250, 259, 98, 279, 132, 16, 121, 326, 132, 159,
159, 159, 159, 159, 125, 132, 158, 334, 132, 132,
132, 17, 132, 132, 187, 132, 132, 132, 292, 132,
297, 132, 132, 294, 132, 188, 132, 131, 132, 192,
132, 132, 295, 132, 159, 160, 303, 160, 160, 160,
296, 94, 95, 131, 65, 300, 301, 313, 150, 315,
316, 150, 160, 160, 160, 160, 160, 245, 318, 187,
322, 248, 187, 328, 330, 150, 150, 331, 220, 332,
172, 172, 172, 335, 172, 172, 3, 172, 172, 172,
19, 172, 336, 172, 172, 7, 172, 160, 172, 230,
172, 232, 172, 172, 161, 172, 161, 161, 161, 8,
150, 94, 95, 131, 65, 181, 182, 51, 89, 85,
323, 161, 161, 161, 161, 161, 13, 14, 15, 210,
276, 277, 87, 16, 17, 18, 317, 94, 95, 96,
65, 84, 134, 286, 285, 153, 299, 97, 298, 50,
333, 98, 113, 162, 268, 149, 161, 149, 149, 290,
149, 288, 149, 233, 149, 221, 149, 149, 258, 149,
170, 0, 171, 0, 287, 0, 289, 0, 0, 0,
0, 0, 0, 0, 158, 158, 158, 172, 169, 173,
0, 158, 158, 0, 0, 158, 0, 158, 158, 0,
158, 0, 158, 0, 158, 0, 158, 158, 0, 158,
0, 0, 159, 159, 159, 0, 312, 0, 0, 159,
159, 0, 0, 159, 0, 159, 159, 0, 159, 0,
159, 0, 159, 0, 159, 159, 0, 159, 224, 0,
0, 0, 187, 0, 0, 0, 0, 105, 112, 0,
114, 0, 0, 131, 0, 0, 0, 131, 135, 0,
135, 0, 135, 0, 131, 160, 160, 160, 0, 249,
0, 0, 160, 160, 0, 0, 160, 0, 160, 160,
155, 160, 0, 160, 0, 160, 0, 160, 160, 150,
160, 150, 150, 0, 150, 0, 150, 0, 150, 0,
150, 150, 189, 150, 197, 199, 193, 0, 0, 195,
0, 0, 0, 0, 0, 0, 224, 0, 0, 224,
0, 0, 0, 0, 161, 161, 161, 0, 0, 0,
0, 161, 161, 0, 0, 161, 0, 161, 161, 0,
161, 0, 161, 0, 161, 0, 161, 161, 0, 161,
0, 0, 224, 0, 135, 0, 0, 0, 0, 0,
0, 0, 0, 0, 229, 0, 231, 0, 0, 224,
0, 0, 23, 135, 0, 72, 0, 0, 0, 0,
135, 135, 0, 0, 0, 135, 0, 0, 164, 165,
166, 37, 0, 0, 0, 167, 168, 20, 257, 0,
69, 20, 20, 20, 69, 69, 69, 0, 20, 20,
20, 69, 69, 69, 0, 267, 34, 0, 189, 269,
34, 34, 34, 0, 0, 0, 0, 34, 34, 34,
44, 0, 135, 65, 0, 135, 0, 0, 0, 0,
0, 0, 135, 0, 0, 0, 66, 291, 0, 67,
135, 68, 0, 69, 0, 70, 0, 0, 48, 0,
71, 72, 0, 0, 0, 0, 135, 0, 135, 0,
0, 0, 0, 302, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 135,
};
short yycheck[] = { 3,
58, 41, 48, 59, 59, 44, 44, 48, 41, 40,
98, 44, 43, 41, 45, 59, 59, 100, 101, 59,
41, 43, 68, 45, 70, 41, 59, 68, 32, 59,
71, 35, 59, 260, 201, 44, 18, 41, 42, 43,
86, 208, 88, 59, 90, 44, 300, 41, 59, 93,
41, 44, 59, 59, 46, 41, 260, 41, 260, 42,
93, 59, 40, 94, 47, 59, 41, 58, 59, 296,
297, 283, 284, 59, 120, 59, 44, 44, 124, 120,
126, 40, 64, 124, 93, 46, 132, 133, 292, 59,
72, 59, 175, 181, 93, 299, 59, 257, 59, 91,
93, 296, 94, 270, 41, 44, 46, 285, 41, 42,
43, 44, 45, 46, 47, 46, 59, 163, 313, 58,
44, 58, 163, 59, 59, 58, 59, 60, 61, 62,
91, 59, 91, 94, 58, 322, 182, 324, 184, 41,
186, 59, 44, 184, 40, 186, 187, 43, 61, 45,
41, 91, 90, 44, 94, 201, 257, 258, 91, 260,
93, 94, 208, 209, 260, 41, 58, 213, 44, 215,
41, 42, 43, 44, 45, 61, 47, 58, 8, 292,
293, 294, 295, 260, 40, 59, 59, 58, 59, 60,
61, 62, 40, 289, 290, 291, 242, 277, 274, 281,
296, 297, 298, 264, 91, 260, 276, 43, 38, 45,
277, 277, 260, 259, 260, 261, 58, 263, 259, 277,
261, 272, 93, 279, 270, 41, 257, 258, 259, 260,
40, 286, 278, 43, 41, 45, 279, 44, 242, 272,
272, 93, 281, 281, 260, 44, 286, 269, 294, 295,
296, 58, 59, 286, 300, 301, 286, 58, 286, 286,
301, 292, 293, 294, 295, 286, 260, 313, 299, 275,
286, 209, 279, 279, 41, 286, 43, 44, 45, 286,
286, 91, 265, 266, 330, 59, 93, 270, 286, 335,
336, 58, 59, 60, 61, 62, 286, 58, 257, 258,
259, 260, 41, 264, 43, 44, 45, 260, 267, 279,
290, 275, 271, 41, 275, 296, 286, 321, 279, 58,
59, 60, 61, 62, 264, 286, 93, 331, 261, 262,
263, 297, 265, 266, 46, 268, 269, 270, 58, 272,
278, 274, 275, 277, 277, 120, 279, 59, 281, 124,
283, 284, 58, 286, 93, 41, 294, 43, 44, 45,
277, 257, 258, 259, 260, 58, 281, 59, 41, 91,
292, 44, 58, 59, 60, 61, 62, 207, 40, 91,
91, 211, 94, 41, 277, 58, 59, 272, 163, 93,
261, 262, 263, 277, 265, 266, 59, 268, 269, 270,
9, 272, 58, 274, 275, 285, 277, 93, 279, 184,
281, 186, 283, 284, 41, 286, 43, 44, 45, 285,
93, 257, 258, 259, 260, 93, 93, 21, 59, 55,
318, 58, 59, 60, 61, 62, 289, 290, 291, 141,
244, 244, 57, 296, 297, 298, 313, 257, 258, 259,
260, 53, 86, 255, 254, 92, 281, 267, 280, 20,
330, 271, 68, 104, 237, 272, 93, 274, 275, 263,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -