|
|
1.1 root 1:
2: #line 19 "awk.y"
3:
4: #include "awk.h"
5:
6:
7: #include "y.tab.h"
8: #define YYCLEARIN yychar = -1000
9: #define YYERROK yyerrflag = 0
10: extern int yychar;
11: extern short yyerrflag;
12: #ifndef YYMAXDEPTH
13: #define YYMAXDEPTH 150
14: #endif
15: YYSTYPE yyval, yylval;
16: #ifdef YYTNAMES
17: struct yytname yytnames[68] =
18: {
19: "$end", -1,
20: "error", -2,
21: "IF_", 256,
22: "WHILE_", 257,
23: "FOR_", 258,
24: "ELSE_", 259,
25: "BREAK_", 260,
26: "CONTINUE_", 261,
27: "NEXT_", 262,
28: "EXIT_", 263,
29: "IN_", 264,
30: "PRINT_", 265,
31: "PRINTF_", 266,
32: "BEGIN_", 267,
33: "END_", 268,
34: "FAPPEND_", 269,
35: "FOUT_", 270,
36: "ID_", 271,
37: "STRING_", 272,
38: "NUMBER_", 273,
39: "FUNCTION_", 274,
40: "SCON_", 295,
41: "ASADD_", 296,
42: "ASSUB_", 297,
43: "ASMUL_", 298,
44: "ASDIV_", 299,
45: "'='", 61,
46: "ASMOD_", 300,
47: "OROR_", 301,
48: "ANDAND_", 302,
49: "'~'", 126,
50: "NMATCH_", 303,
51: "EQ_", 304,
52: "NE_", 305,
53: "GE_", 306,
54: "'>'", 62,
55: "LE_", 307,
56: "'<'", 60,
57: "'+'", 43,
58: "'-'", 45,
59: "'*'", 42,
60: "'/'", 47,
61: "'%'", 37,
62: "'!'", 33,
63: "INC_", 308,
64: "DEC_", 309,
65: "'$'", 36,
66: "'('", 40,
67: "'['", 91,
68: "REEOL_", 310,
69: "REBOL_", 311,
70: "REANY_", 312,
71: "RECLASS_", 313,
72: "RECHAR_", 314,
73: "REOR_", 315,
74: "RECON_", 316,
75: "RECLOS_", 317,
76: "RENECL_", 318,
77: "REZOCL_", 319,
78: "'\\n'", 10,
79: "','", 44,
80: "')'", 41,
81: "'{'", 123,
82: "'}'", 125,
83: "';'", 59,
84: "']'", 93,
85: "'|'", 124,
86: NULL
87: } ;
88: #endif
89: #include <action.h>
90: unsigned char yypdnt[102] = {
91: 0, 1, 2, 2, 3, 3, 3, 5,
92: 5, 5, 5, 8, 7, 10, 7, 9,
93: 9, 9, 9, 9, 9, 9, 9, 9,
94: 11, 11, 11, 4, 13, 15, 13, 13,
95: 13, 13, 13, 13, 13, 13, 17, 13,
96: 20, 13, 21, 13, 13, 13, 13, 12,
97: 12, 14, 22, 22, 22, 22, 22, 22,
98: 24, 24, 24, 24, 24, 16, 16, 16,
99: 16, 26, 26, 25, 25, 23, 23, 6,
100: 6, 6, 6, 6, 6, 6, 6, 6,
101: 6, 6, 6, 6, 6, 6, 6, 6,
102: 6, 6, 6, 6, 6, 6, 19, 19,
103: 19, 19, 18, 18, 27, 27
104: };
105: unsigned char yypn[102] = {
106: 2, 1, 2, 1, 2, 2, 3, 1,
107: 1, 1, 3, 0, 4, 0, 4, 2,
108: 3, 3, 2, 1, 1, 1, 1, 1,
109: 1, 1, 1, 3, 5, 0, 8, 5,
110: 7, 9, 2, 2, 1, 2, 0, 4,
111: 0, 3, 0, 4, 2, 2, 1, 1,
112: 2, 1, 3, 3, 2, 2, 2, 2,
113: 1, 1, 1, 1, 1, 4, 2, 4,
114: 1, 1, 1, 1, 1, 1, 2, 3,
115: 3, 3, 2, 2, 1, 1, 3, 3,
116: 3, 3, 3, 3, 3, 3, 3, 3,
117: 3, 3, 3, 1, 4, 1, 3, 3,
118: 3, 1, 3, 1, 1, 3
119: };
120: unsigned char yypgo[28] = {
121: 0, 0, 2, 6, 8, 16, 18, 94,
122: 102, 104, 112, 114, 116, 120, 132, 140,
123: 142, 160, 162, 166, 172, 174, 176, 178,
124: 190, 192, 202, 204
125: };
126: unsigned int yygo[212] = {
127: -1000, 16, 18, 55, -1000, 17, -1000, 18,
128: 0, 19, 18, 19, 20, 58, -1000, 50,
129: -1000, 20, 0, 21, 8, 30, 10, 32,
130: 15, 51, 18, 21, 35, 95, 39, 97,
131: 53, 51, 59, 112, 60, 113, 63, 116,
132: 64, 117, 65, 118, 66, 119, 67, 120,
133: 68, 121, 69, 122, 70, 123, 71, 124,
134: 72, 125, 73, 126, 74, 127, 85, 97,
135: 86, 97, 98, 143, 99, 144, 100, 145,
136: 128, 97, 129, 97, 160, 51, 161, 51,
137: 162, 173, 164, 97, 180, 183, 181, 51,
138: 182, 51, 186, 51, -1000, 38, 61, 114,
139: 62, 115, 84, 130, -1000, 22, -1000, 31,
140: 31, 94, 88, 134, 136, 158, -1000, 140,
141: -1000, 84, -1000, 141, 53, 110, -1000, 52,
142: 160, 171, 161, 172, 181, 184, 182, 185,
143: 186, 187, -1000, 53, 144, 161, 174, 181,
144: 183, 186, -1000, 160, -1000, 182, 11, 33,
145: 12, 34, 13, 36, 100, 146, 150, 36,
146: 151, 36, 153, 36, 163, 174, -1000, 23,
147: -1000, 105, 107, 155, -1000, 148, 148, 166,
148: 155, 170, -1000, 154, -1000, 106, -1000, 107,
149: -1000, 24, 14, 39, 28, 85, 79, 128,
150: 83, 129, 147, 164, -1000, 86, -1000, 83,
151: 13, 37, 150, 167, 151, 168, 153, 169,
152: -1000, 25, -1000, 26, 29, 87, 132, 156,
153: 147, 165, -1000, 149
154: };
155: unsigned short yypa[188] = {
156: 0, 30, 34, 36, 38, 42, 44, 46,
157: 50, 74, 50, 76, 76, 82, 50, 94,
158: 140, 144, 146, 178, 182, 188, 222, 224,
159: 242, 244, 246, 248, 50, 50, 250, 252,
160: 266, 268, 270, 50, 272, 274, 276, 308,
161: 334, 338, 342, 346, 350, 354, 358, 362,
162: 372, 374, 376, 378, 412, 416, 464, 468,
163: 470, 472, 474, 50, 50, 478, 478, 50,
164: 50, 50, 50, 50, 50, 50, 50, 50,
165: 50, 50, 50, 482, 484, 486, 488, 50,
166: 490, 492, 494, 50, 496, 500, 526, 562,
167: 252, 566, 568, 570, 572, 574, 576, 600,
168: 634, 636, 50, 50, 50, 668, 670, 672,
169: 674, 676, 700, 676, 710, 712, 714, 716,
170: 718, 748, 776, 778, 780, 804, 828, 848,
171: 868, 888, 908, 916, 924, 926, 928, 930,
172: 962, 1030, 1098, 1100, 50, 1102, 1104, 1128,
173: 252, 1130, 1132, 1134, 1136, 1154, 1156, 1158,
174: 1158, 1192, 1226, 50, 1246, 1256, 1258, 1258,
175: 1268, 1258, 1270, 1246, 1272, 1274, 1276, 1294,
176: 94, 94, 50, 76, 1296, 1324, 1328, 1330,
177: 1334, 1338, 1342, 1344, 1348, 1350, 1384, 1388,
178: 1390, 1392, 1394, 1396, 50, 94, 94, 1158,
179: 1398, 1400, 94, 1402
180: };
181: unsigned int yyact[1404] = {
182: 2, 267, 3, 268, 4, 271, 5, 272,
183: 6, 273, 7, 274, 8, 45, 9, 47,
184: 10, 33, 11, 308, 12, 309, 13, 36,
185: 14, 40, 15, 123, 1, -1000, 27, 10,
186: 24576, -1000, 8199, -1000, 8200, -1000, 28, 91,
187: 8256, -1000, 8257, -1000, 8258, -1000, 29, 40,
188: 8285, -1000, 4, 271, 5, 272, 6, 273,
189: 7, 274, 8, 45, 9, 47, 10, 33,
190: 11, 308, 12, 309, 13, 36, 14, 40,
191: 1, -1000, 8203, -1000, 4, 271, 13, 36,
192: 24576, -1000, 4, 271, 5, 272, 6, 273,
193: 13, 36, 35, 40, 24576, -1000, 40, 256,
194: 41, 257, 42, 258, 43, 260, 44, 261,
195: 45, 262, 46, 263, 47, 265, 48, 266,
196: 4, 271, 5, 272, 6, 273, 7, 274,
197: 8, 45, 9, 47, 10, 33, 11, 308,
198: 12, 309, 13, 36, 14, 40, 15, 123,
199: 49, 59, 1, -1000, 54, -1, 24576, -1000,
200: 8193, -1000, 2, 267, 3, 268, 4, 271,
201: 5, 272, 6, 273, 7, 274, 8, 45,
202: 9, 47, 10, 33, 11, 308, 12, 309,
203: 13, 36, 14, 40, 15, 123, 8195, -1,
204: 1, -1000, 56, 10, 24576, -1000, 57, 10,
205: 15, 123, 24576, -1000, 59, 301, 60, 302,
206: 61, 126, 62, 303, 63, 304, 64, 305,
207: 65, 306, 66, 62, 67, 307, 68, 60,
208: 69, 43, 70, 45, 71, 42, 72, 47,
209: 73, 37, 74, 44, 8201, -1000, 8283, -1000,
210: 75, 296, 76, 297, 77, 298, 78, 299,
211: 79, 61, 80, 300, 81, 308, 82, 309,
212: 8259, -1000, 8269, -1000, 8268, -1000, 8260, -1000,
213: 8205, -1000, 8267, -1000, 88, 40, 89, 310,
214: 90, 311, 91, 312, 92, 313, 93, 314,
215: 24576, -1000, 8266, -1000, 8244, -1000, 8246, -1000,
216: 8259, -1000, 8254, -1000, 59, 301, 60, 302,
217: 61, 126, 62, 303, 63, 304, 64, 305,
218: 65, 306, 66, 62, 67, 307, 68, 60,
219: 69, 43, 70, 45, 71, 42, 72, 47,
220: 73, 37, 8261, -1000, 4, 271, 5, 272,
221: 6, 273, 7, 274, 8, 45, 9, 47,
222: 10, 33, 11, 308, 12, 309, 13, 36,
223: 14, 40, 96, 41, 1, -1000, 98, 40,
224: 24576, -1000, 99, 40, 24576, -1000, 100, 40,
225: 24576, -1000, 101, 59, 24576, -1000, 102, 59,
226: 24576, -1000, 103, 59, 24576, -1000, 104, 59,
227: 24576, -1000, 8232, 269, 8232, 270, 8232, 59,
228: 8232, 124, 8230, -1000, 8234, -1000, 8238, -1000,
229: 8228, -1000, 59, 301, 60, 302, 61, 126,
230: 62, 303, 63, 304, 64, 305, 65, 306,
231: 66, 62, 67, 307, 68, 60, 69, 43,
232: 70, 45, 71, 42, 72, 47, 73, 37,
233: 108, 59, 24576, -1000, 109, 125, 24576, -1000,
234: 40, 256, 41, 257, 42, 258, 43, 260,
235: 44, 261, 45, 262, 46, 263, 47, 265,
236: 48, 266, 4, 271, 5, 272, 6, 273,
237: 7, 274, 8, 45, 9, 47, 10, 33,
238: 11, 308, 12, 309, 13, 36, 14, 40,
239: 15, 123, 49, 59, 8239, 125, 1, -1000,
240: 16384, -1, 24576, -1000, 8194, -1000, 8196, -1000,
241: 8197, -1000, 111, 10, 24576, -1000, 9, 47,
242: 1, -1000, 8248, -1000, 8249, -1000, 8250, -1000,
243: 8251, -1000, 8252, -1000, 8245, -1000, 8247, -1000,
244: 9, 47, 1, -1000, 4, 271, 5, 272,
245: 6, 273, 7, 274, 8, 45, 9, 47,
246: 10, 33, 11, 308, 12, 309, 13, 36,
247: 14, 40, 131, 93, 1, -1000, 4, 271,
248: 5, 272, 6, 273, 7, 274, 8, 45,
249: 9, 47, 10, 33, 11, 308, 12, 309,
250: 13, 36, 14, 40, 132, 44, 8292, 269,
251: 8292, 270, 8292, 41, 8292, 59, 8292, 124,
252: 1, -1000, 133, 41, 24576, -1000, 8214, -1000,
253: 8213, -1000, 8212, -1000, 8211, -1000, 8215, -1000,
254: 135, 47, 88, 40, 89, 310, 90, 311,
255: 91, 312, 92, 313, 93, 314, 136, 315,
256: 137, 317, 138, 318, 139, 319, 24576, -1000,
257: 59, 301, 60, 302, 61, 126, 62, 303,
258: 63, 304, 64, 305, 65, 306, 66, 62,
259: 67, 307, 68, 60, 69, 43, 70, 45,
260: 71, 42, 72, 47, 73, 37, 142, 41,
261: 24576, -1000, 8263, -1000, 59, 301, 60, 302,
262: 61, 126, 62, 303, 63, 304, 64, 305,
263: 65, 306, 66, 62, 67, 307, 68, 60,
264: 69, 43, 70, 45, 71, 42, 72, 47,
265: 73, 37, 8262, -1000, 8226, -1000, 8227, -1000,
266: 8236, -1000, 8237, -1000, 4, 271, 5, 272,
267: 6, 273, 7, 274, 8, 45, 9, 47,
268: 10, 33, 11, 308, 12, 309, 13, 36,
269: 147, 40, 1, -1000, 150, 269, 151, 270,
270: 152, 59, 153, 124, 24576, -1000, 8229, -1000,
271: 8219, -1000, 8240, -1000, 8198, -1000, 60, 302,
272: 61, 126, 62, 303, 63, 304, 64, 305,
273: 65, 306, 66, 62, 67, 307, 68, 60,
274: 69, 43, 70, 45, 71, 42, 72, 47,
275: 73, 37, 8265, -1000, 61, 126, 62, 303,
276: 63, 304, 64, 305, 65, 306, 66, 62,
277: 67, 307, 68, 60, 69, 43, 70, 45,
278: 71, 42, 72, 47, 73, 37, 8264, -1000,
279: 8281, -1000, 8282, -1000, 63, 304, 64, 305,
280: 65, 306, 66, 62, 67, 307, 68, 60,
281: 69, 43, 70, 45, 71, 42, 72, 47,
282: 73, 37, 8277, -1000, 63, 304, 64, 305,
283: 65, 306, 66, 62, 67, 307, 68, 60,
284: 69, 43, 70, 45, 71, 42, 72, 47,
285: 73, 37, 8278, -1000, 65, 306, 66, 62,
286: 67, 307, 68, 60, 69, 43, 70, 45,
287: 71, 42, 72, 47, 73, 37, 8279, -1000,
288: 65, 306, 66, 62, 67, 307, 68, 60,
289: 69, 43, 70, 45, 71, 42, 72, 47,
290: 73, 37, 8275, -1000, 65, 306, 66, 62,
291: 67, 307, 68, 60, 69, 43, 70, 45,
292: 71, 42, 72, 47, 73, 37, 8280, -1000,
293: 65, 306, 66, 62, 67, 307, 68, 60,
294: 69, 43, 70, 45, 71, 42, 72, 47,
295: 73, 37, 8276, -1000, 71, 42, 72, 47,
296: 73, 37, 8270, -1000, 71, 42, 72, 47,
297: 73, 37, 8271, -1000, 8272, -1000, 8273, -1000,
298: 8274, -1000, 59, 301, 60, 302, 61, 126,
299: 62, 303, 63, 304, 64, 305, 65, 306,
300: 66, 62, 67, 307, 68, 60, 69, 43,
301: 70, 45, 71, 42, 72, 47, 73, 37,
302: 8202, -1000, 4, 271, 5, 272, 6, 273,
303: 7, 274, 8, 45, 9, 47, 10, 33,
304: 11, 308, 12, 309, 13, 36, 14, 40,
305: 8242, 269, 8242, 270, 8242, 301, 8242, 302,
306: 8242, 126, 8242, 303, 8242, 304, 8242, 305,
307: 8242, 306, 8242, 62, 8242, 307, 8242, 60,
308: 8242, 43, 8242, 42, 8242, 37, 8242, 10,
309: 8242, 44, 8242, 41, 8242, 123, 8242, 59,
310: 8242, 93, 8242, 124, 1, -1000, 4, 271,
311: 5, 272, 6, 273, 7, 274, 8, 45,
312: 9, 47, 10, 33, 11, 308, 12, 309,
313: 13, 36, 14, 40, 8243, 269, 8243, 270,
314: 8243, 301, 8243, 302, 8243, 126, 8243, 303,
315: 8243, 304, 8243, 305, 8243, 306, 8243, 62,
316: 8243, 307, 8243, 60, 8243, 43, 8243, 42,
317: 8243, 37, 8243, 10, 8243, 44, 8243, 41,
318: 8243, 123, 8243, 59, 8243, 93, 8243, 124,
319: 1, -1000, 8206, -1000, 8255, -1000, 8284, -1000,
320: 88, 40, 89, 310, 90, 311, 91, 312,
321: 92, 313, 93, 314, 136, 315, 137, 317,
322: 138, 318, 139, 319, 157, 41, 24576, -1000,
323: 8204, -1000, 8216, -1000, 8218, -1000, 8217, -1000,
324: 89, 310, 90, 311, 91, 312, 92, 313,
325: 93, 314, 137, 317, 138, 318, 139, 319,
326: 8207, -1000, 8210, -1000, 8253, -1000, 59, 301,
327: 60, 302, 61, 126, 62, 303, 63, 304,
328: 64, 305, 65, 306, 66, 62, 67, 307,
329: 68, 60, 69, 43, 70, 45, 71, 42,
330: 72, 47, 73, 37, 159, 41, 24576, -1000,
331: 59, 301, 60, 302, 61, 126, 62, 303,
332: 63, 304, 64, 305, 65, 306, 66, 62,
333: 67, 307, 68, 60, 69, 43, 70, 45,
334: 71, 42, 72, 47, 73, 37, 162, 59,
335: 24576, -1000, 163, 264, 75, 296, 76, 297,
336: 77, 298, 78, 299, 79, 61, 80, 300,
337: 81, 308, 82, 309, 8259, -1000, 150, 269,
338: 151, 270, 152, 59, 153, 124, 24576, -1000,
339: 8291, -1000, 4, 271, 5, 272, 6, 273,
340: 13, 36, 24576, -1000, 8289, -1000, 8233, -1000,
341: 8293, -1000, 8208, -1000, 89, 310, 90, 311,
342: 91, 312, 92, 313, 93, 314, 137, 317,
343: 138, 318, 139, 319, 8209, -1000, 8241, -1000,
344: 4, 271, 5, 272, 6, 273, 7, 274,
345: 8, 45, 9, 47, 10, 33, 11, 308,
346: 12, 309, 13, 36, 14, 40, 132, 44,
347: 96, 41, 1, -1000, 175, 41, 24576, -1000,
348: 8231, -1000, 176, 59, 24576, -1000, 177, 59,
349: 24576, -1000, 178, 59, 24576, -1000, 8235, -1000,
350: 179, 259, 8220, -1000, 8223, -1000, 59, 301,
351: 60, 302, 61, 126, 62, 303, 63, 304,
352: 64, 305, 65, 306, 66, 62, 67, 307,
353: 68, 60, 69, 43, 70, 45, 71, 42,
354: 72, 47, 73, 37, 180, 59, 24576, -1000,
355: 159, 41, 24576, -1000, 8290, -1000, 8286, -1000,
356: 8287, -1000, 8288, -1000, 8221, -1000, 8224, -1000,
357: 8222, -1000, 8225, -1000
358: };
359: /* (-lgl
360: * COHERENT Version 3.0
361: * Copyright (c) 1982, 1990 by Mark Williams Company.
362: * All rights reserved. May not be copied without permission.
363: -lgl) */
364: #include "action.h"
365: #define YYNOCHAR (-1000)
366: #define yyerrok yyerrflag=0
367: #define yyclearin yylval=YYNOCHAR
368: int yystack[YYMAXDEPTH];
369: YYSTYPE yyvstack[YYMAXDEPTH], *yyv;
370: int yychar;
371:
372: #ifdef YYDEBUG
373: int yydebug = 1; /* No sir, not in the BSS */
374: #include <stdio.h>
375: #endif
376:
377: short yyerrflag;
378: int *yys;
379:
380: yyparse()
381: {
382: register YYSTYPE *yypvt;
383: int act;
384: register unsigned *ip, yystate;
385: int pno;
386: yystate = 0;
387: yychar = YYNOCHAR;
388: yyv = &yyvstack[-1];
389: yys = &yystack[-1];
390:
391: stack:
392: if( ++yys >= &yystack[YYMAXDEPTH] ) {
393: write(2, "Stack overflow\n", 15);
394: exit(1);
395: }
396: *yys = yystate;
397: *++yyv = yyval;
398: #ifdef YYDEBUG
399: if( yydebug )
400: fprintf(stdout, "Stack state %d, char %d\n", yystate, yychar);
401: #endif
402:
403: read:
404: ip = &yyact[yypa[yystate]];
405: if( ip[1] != YYNOCHAR ) {
406: if( yychar == YYNOCHAR ) {
407: yychar = yylex();
408: #ifdef YYDEBUG
409: if( yydebug )
410: fprintf(stdout, "lex read char %d, val %d\n", yychar, yylval);
411: #endif
412: }
413: while (ip[1]!=YYNOCHAR) {
414: if (ip[1]==yychar)
415: break;
416: ip += 2;
417: }
418: }
419: act = ip[0];
420: switch( act>>YYACTSH ) {
421: case YYSHIFTACT:
422: if( ip[1]==YYNOCHAR )
423: goto YYerract;
424: if( yychar != -1 )
425: yychar = YYNOCHAR; /* dont throw away EOF */
426: yystate = act&YYAMASK;
427: yyval = yylval;
428: #ifdef YYDEBUG
429: if( yydebug )
430: fprintf(stdout, "shift %d\n", yystate);
431: #endif
432: if( yyerrflag )
433: --yyerrflag;
434: goto stack;
435:
436: case YYACCEPTACT:
437: #ifdef YYDEBUG
438: if( yydebug )
439: fprintf(stdout, "accept\n");
440: #endif
441: return(0);
442:
443: case YYERRACT:
444: YYerract:
445: switch (yyerrflag) {
446: case 0:
447: yyerror("Syntax error");
448:
449: case 1:
450: case 2:
451:
452: yyerrflag = 3;
453: while( yys >= & yystack[0] ) {
454: ip = &yyact[yypa[*yys]];
455: while( ip[1]!=YYNOCHAR )
456: ip += 2;
457: if( (*ip&~YYAMASK) == (YYSHIFTACT<<YYACTSH) ) {
458: yystate = *ip&YYAMASK;
459: goto stack;
460: }
461: #ifdef YYDEBUG
462: if( yydebug )
463: fprintf(stderr, "error recovery leaves state %d, uncovers %d\n", *yys, yys[-1]);
464: #endif
465: yys--;
466: yyv--;
467: }
468: #ifdef YYDEBUG
469: if( yydebug )
470: fprintf(stderr, "no shift on error; abort\n");
471: #endif
472: return(1);
473:
474: case 3:
475: #ifdef YYDEBUG
476: if( yydebug )
477: fprintf(stderr, "Error recovery clobbers char %o\n", yychar);
478: #endif
479: if( yychar==YYEOFVAL )
480: return(1);
481: yychar = YYNOCHAR;
482: goto read;
483: }
484:
485: case YYREDACT:
486: pno = act&YYAMASK;
487: #ifdef YYDEBUG
488: if( yydebug )
489: fprintf(stdout, "reduce %d\n", pno);
490: #endif
491: yypvt = yyv;
492: yyv -= yypn[pno];
493: yys -= yypn[pno];
494: yyval = yyv[1];
495: switch(pno) {
496:
497: case 1: {
498:
499: #line 72 "awk.y"
500:
501: codep = yypvt[0].u_node;
502: }break;
503:
504: case 2: {
505:
506: #line 78 "awk.y"
507:
508: yyval.u_node = node(ALIST, yypvt[-1].u_node, yypvt[0].u_node);
509: }break;
510:
511: case 4: {
512:
513: #line 85 "awk.y"
514:
515: yyval.u_node = node(AROOT, NULL, yypvt[-1].u_node);
516: }break;
517:
518: case 5: {
519:
520: #line 88 "awk.y"
521:
522: yyval.u_node = node(AROOT, yypvt[-1].u_node, NULL);
523: }break;
524:
525: case 6: {
526:
527: #line 91 "awk.y"
528:
529: yyval.u_node = node(AROOT, yypvt[-2].u_node, yypvt[-1].u_node);
530: }break;
531:
532: case 7: {
533:
534: #line 97 "awk.y"
535:
536: yyval.u_node = node(ABEGIN);
537: }break;
538:
539: case 8: {
540:
541: #line 100 "awk.y"
542:
543: yyval.u_node = node(AEND);
544: }break;
545:
546: case 10: {
547:
548: #line 104 "awk.y"
549:
550: yyval.u_node = node(ARANGE, yypvt[-2].u_node, yypvt[0].u_node);
551: }break;
552:
553: case 11: {
554:
555: #line 110 "awk.y"
556: lexre=1; }break;
557:
558: case 12: {
559:
560: #line 110 "awk.y"
561:
562: lexre = 0;
563: yyval.u_node = yypvt[-1].u_node;
564: }break;
565:
566: case 13: {
567:
568: #line 114 "awk.y"
569:
570: yyerrok;
571: yyerror("Badly formed regular expression");
572: }break;
573:
574: case 14: {
575:
576: #line 117 "awk.y"
577:
578: yyval.u_node = yypvt[0].u_node;
579: }break;
580:
581: case 15: {
582:
583: #line 123 "awk.y"
584:
585: register NODE *np;
586:
587: for (np = yypvt[-1].u_node; np->n_O3!=NULL; np = np->n_O3)
588: ;
589: np->n_O3 = yypvt[0].u_node;
590: yyval.u_node = yypvt[-1].u_node;
591: }break;
592:
593: case 16: {
594:
595: #line 131 "awk.y"
596:
597: yyval.u_node = yypvt[-1].u_node;
598: }break;
599:
600: case 17: {
601:
602: #line 134 "awk.y"
603:
604: yyval.u_node = node(AROR, yypvt[-2].u_node, yypvt[0].u_node, NULL);
605: }break;
606:
607: case 18: {
608:
609: #line 137 "awk.y"
610:
611: yyval.u_node = node(yypvt[0].u_char, yypvt[-1].u_node, NULL, NULL);
612: }break;
613:
614: case 19: {
615:
616: #line 140 "awk.y"
617:
618: yyval.u_node = node(yflag?ARDCLASS:ARCLASS, NULL, NULL, NULL);
619: yyval.u_node->n_o1.n_charp = yypvt[0].u_charp;
620: }break;
621:
622: case 20: {
623:
624: #line 144 "awk.y"
625:
626: yyval.u_node = node(ARANY, NULL, NULL, NULL);
627: }break;
628:
629: case 21: {
630:
631: #line 147 "awk.y"
632:
633: yyval.u_node = node(ARBOL, NULL, NULL, NULL);
634: }break;
635:
636: case 22: {
637:
638: #line 150 "awk.y"
639:
640: yyval.u_node = node(AREOL, NULL, NULL, NULL);
641: }break;
642:
643: case 23: {
644:
645: #line 153 "awk.y"
646:
647: yyval.u_node = cnode(yflag?ARDCHAR:ARCHAR, yypvt[0].u_char);
648: }break;
649:
650: case 24: {
651:
652: #line 159 "awk.y"
653:
654: yyval.u_char = ARCLOS;
655: }break;
656:
657: case 25: {
658:
659: #line 162 "awk.y"
660:
661: yyval.u_char = ARZOCL;
662: }break;
663:
664: case 26: {
665:
666: #line 165 "awk.y"
667:
668: yyval.u_char = ARNECL;
669: }break;
670:
671: case 27: {
672:
673: #line 171 "awk.y"
674:
675: yyval.u_node = yypvt[-1].u_node;
676: }break;
677:
678: case 28: {
679:
680: #line 177 "awk.y"
681:
682: yyval.u_node = node(AIF, yypvt[-2].u_node, yypvt[0].u_node, NULL);
683: }break;
684:
685: case 29: {
686:
687: #line 180 "awk.y"
688: nlskip = 1;}break;
689:
690: case 30: {
691:
692: #line 180 "awk.y"
693:
694: yyval.u_node = node(AIF, yypvt[-5].u_node, yypvt[-3].u_node, yypvt[0].u_node);
695: }break;
696:
697: case 31: {
698:
699: #line 183 "awk.y"
700:
701: yyval.u_node = node(AWHILE, yypvt[-2].u_node, yypvt[0].u_node);
702: }break;
703:
704: case 32: {
705:
706: #line 186 "awk.y"
707:
708: yyval.u_node = node(AFORIN, yypvt[-4].u_node, yypvt[-2].u_node, yypvt[0].u_node);
709: }break;
710:
711: case 33: {
712:
713: #line 189 "awk.y"
714:
715: yyval.u_node = node(AFOR, yypvt[-6].u_node, yypvt[-4].u_node, yypvt[-2].u_node, yypvt[0].u_node);
716: }break;
717:
718: case 34: {
719:
720: #line 192 "awk.y"
721:
722: yyval.u_node = node(ABREAK);
723: }break;
724:
725: case 35: {
726:
727: #line 195 "awk.y"
728:
729: yyval.u_node = node(ACONTIN);
730: }break;
731:
732: case 38: {
733:
734: #line 200 "awk.y"
735: outflag++;}break;
736:
737: case 39: {
738:
739: #line 200 "awk.y"
740:
741: yyval.u_node = node(APRINT, yypvt[-1].u_node, yypvt[0].u_node);
742: }break;
743:
744: case 40: {
745:
746: #line 203 "awk.y"
747: outflag++;}break;
748:
749: case 41: {
750:
751: #line 203 "awk.y"
752:
753: yyval.u_node = node(APRINT, &xfield0, yypvt[0].u_node);
754: }break;
755:
756: case 42: {
757:
758: #line 206 "awk.y"
759: outflag++;}break;
760:
761: case 43: {
762:
763: #line 206 "awk.y"
764:
765: yyval.u_node = node(APRINTF, yypvt[-1].u_node, yypvt[0].u_node);
766: }break;
767:
768: case 44: {
769:
770: #line 209 "awk.y"
771:
772: yyval.u_node = node(ANEXT);
773: }break;
774:
775: case 45: {
776:
777: #line 212 "awk.y"
778:
779: yyval.u_node = node(AEXIT);
780: }break;
781:
782: case 46: {
783:
784: #line 215 "awk.y"
785:
786: yyval.u_node = NULL;
787: }break;
788:
789: case 48: {
790:
791: #line 222 "awk.y"
792:
793: if (yypvt[-1].u_node!=NULL && yypvt[0].u_node!=NULL)
794: yyval.u_node = node(ALIST, yypvt[-1].u_node, yypvt[0].u_node);
795: else if (yypvt[-1].u_node != NULL)
796: yyval.u_node = yypvt[-1].u_node;
797: else
798: yyval.u_node = yypvt[0].u_node;
799: }break;
800:
801: case 49: {
802:
803: #line 233 "awk.y"
804:
805: nlskip = 1;
806: }break;
807:
808: case 50: {
809:
810: #line 239 "awk.y"
811:
812: yyval.u_node = node(AASGN, yypvt[-2].u_node, yypvt[0].u_node);
813: }break;
814:
815: case 51: {
816:
817: #line 242 "awk.y"
818:
819: yyval.u_node = node(AASGN, yypvt[-2].u_node, node(yypvt[-1].u_char, yypvt[-2].u_node, yypvt[0].u_node));
820: }break;
821:
822: case 52: {
823:
824: #line 245 "awk.y"
825:
826: yyval.u_node = node(AASGN, yypvt[0].u_node, node(AADD, yypvt[0].u_node, &xone));
827: }break;
828:
829: case 53: {
830:
831: #line 248 "awk.y"
832:
833: yyval.u_node = node(AINCA, yypvt[-1].u_node);
834: }break;
835:
836: case 54: {
837:
838: #line 251 "awk.y"
839:
840: yyval.u_node = node(AASGN, yypvt[0].u_node, node(ASUB, yypvt[0].u_node, &xone));
841: }break;
842:
843: case 55: {
844:
845: #line 254 "awk.y"
846:
847: yyval.u_node = node(ADECA, yypvt[-1].u_node);
848: }break;
849:
850: case 56: {
851:
852: #line 260 "awk.y"
853:
854: yyval.u_char = AADD;
855: }break;
856:
857: case 57: {
858:
859: #line 263 "awk.y"
860:
861: yyval.u_char = ASUB;
862: }break;
863:
864: case 58: {
865:
866: #line 266 "awk.y"
867:
868: yyval.u_char = AMUL;
869: }break;
870:
871: case 59: {
872:
873: #line 269 "awk.y"
874:
875: yyval.u_char = ADIV;
876: }break;
877:
878: case 60: {
879:
880: #line 272 "awk.y"
881:
882: yyval.u_char = AMOD;
883: }break;
884:
885: case 61: {
886:
887: #line 278 "awk.y"
888:
889: yyval.u_node = node(AFIELD, yypvt[-1].u_node);
890: }break;
891:
892: case 62: {
893:
894: #line 281 "awk.y"
895:
896: yyval.u_node = node(AFIELD, yypvt[0].u_node);
897: }break;
898:
899: case 63: {
900:
901: #line 284 "awk.y"
902:
903: yyval.u_node = node(AARRAY, yypvt[-3].u_node, yypvt[-1].u_node);
904: }break;
905:
906: case 70: {
907:
908: #line 302 "awk.y"
909:
910: yyval.u_node = node(ACONC, yypvt[-1].u_node, yypvt[0].u_node);
911: }break;
912:
913: case 71: {
914:
915: #line 308 "awk.y"
916:
917: yyval.u_node = yypvt[-1].u_node;
918: }break;
919:
920: case 72: {
921:
922: #line 311 "awk.y"
923:
924: yyval.u_node = node(AANDAND, yypvt[-2].u_node, yypvt[0].u_node);
925: }break;
926:
927: case 73: {
928:
929: #line 314 "awk.y"
930:
931: yyval.u_node = node(AOROR, yypvt[-2].u_node, yypvt[0].u_node);
932: }break;
933:
934: case 74: {
935:
936: #line 317 "awk.y"
937:
938: yyval.u_node = node(ANOT, yypvt[0].u_node);
939: }break;
940:
941: case 75: {
942:
943: #line 320 "awk.y"
944:
945: yyval.u_node = node(ANEG, yypvt[0].u_node);
946: }break;
947:
948: case 78: {
949:
950: #line 325 "awk.y"
951:
952: yyval.u_node = node(AADD, yypvt[-2].u_node, yypvt[0].u_node);
953: }break;
954:
955: case 79: {
956:
957: #line 328 "awk.y"
958:
959: yyval.u_node = node(ASUB, yypvt[-2].u_node, yypvt[0].u_node);
960: }break;
961:
962: case 80: {
963:
964: #line 331 "awk.y"
965:
966: yyval.u_node = node(AMUL, yypvt[-2].u_node, yypvt[0].u_node);
967: }break;
968:
969: case 81: {
970:
971: #line 334 "awk.y"
972:
973: yyval.u_node = node(ADIV, yypvt[-2].u_node, yypvt[0].u_node);
974: }break;
975:
976: case 82: {
977:
978: #line 337 "awk.y"
979:
980: yyval.u_node = node(AMOD, yypvt[-2].u_node, yypvt[0].u_node);
981: }break;
982:
983: case 83: {
984:
985: #line 340 "awk.y"
986:
987: yyval.u_node = node(AGT, yypvt[-2].u_node, yypvt[0].u_node);
988: }break;
989:
990: case 84: {
991:
992: #line 343 "awk.y"
993:
994: yyval.u_node = node(ALT, yypvt[-2].u_node, yypvt[0].u_node);
995: }break;
996:
997: case 85: {
998:
999: #line 346 "awk.y"
1000:
1001: yyval.u_node = node(AEQ, yypvt[-2].u_node, yypvt[0].u_node);
1002: }break;
1003:
1004: case 86: {
1005:
1006: #line 349 "awk.y"
1007:
1008: yyval.u_node = node(ANE, yypvt[-2].u_node, yypvt[0].u_node);
1009: }break;
1010:
1011: case 87: {
1012:
1013: #line 352 "awk.y"
1014:
1015: yyval.u_node = node(AGE, yypvt[-2].u_node,yypvt[0].u_node);
1016: }break;
1017:
1018: case 88: {
1019:
1020: #line 355 "awk.y"
1021:
1022: yyval.u_node = node(ALE, yypvt[-2].u_node, yypvt[0].u_node);
1023: }break;
1024:
1025: case 89: {
1026:
1027: #line 358 "awk.y"
1028:
1029: yyval.u_node = node(AREMAT, yypvt[-2].u_node, yypvt[0].u_node);
1030: }break;
1031:
1032: case 90: {
1033:
1034: #line 361 "awk.y"
1035:
1036: yyval.u_node = node(ARENMAT, yypvt[-2].u_node, yypvt[0].u_node);
1037: }break;
1038:
1039: case 91: {
1040:
1041: #line 364 "awk.y"
1042:
1043: if (brlevel)
1044: awkerr("Regular expression illegal in action");
1045: yyval.u_node = node(ARE, yypvt[0].u_node);
1046: }break;
1047:
1048: case 92: {
1049:
1050: #line 369 "awk.y"
1051:
1052: yyval.u_node = node(AFUNC, yypvt[-3].u_node, yypvt[-1].u_node);
1053: }break;
1054:
1055: case 93: {
1056:
1057: #line 372 "awk.y"
1058:
1059: yyval.u_node = node(AFUNC, yypvt[0].u_node, NULL);
1060: }break;
1061:
1062: case 94: {
1063:
1064: #line 378 "awk.y"
1065:
1066: yyval.u_node = node(AFAPP, yypvt[-1].u_node);
1067: }break;
1068:
1069: case 95: {
1070:
1071: #line 381 "awk.y"
1072:
1073: yyval.u_node = node(AFOUT, yypvt[-1].u_node);
1074: }break;
1075:
1076: case 96: {
1077:
1078: #line 384 "awk.y"
1079:
1080: yyval.u_node = node(AFPIPE, yypvt[-1].u_node);
1081: }break;
1082:
1083: case 97: {
1084:
1085: #line 387 "awk.y"
1086:
1087: yyval.u_node = NULL;
1088: }break;
1089:
1090: case 98: {
1091:
1092: #line 392 "awk.y"
1093:
1094: yyval.u_node = yypvt[-1].u_node;
1095: }break;
1096:
1097: case 99: {
1098:
1099: #line 395 "awk.y"
1100:
1101: yyval.u_node = yypvt[0].u_node;
1102: }break;
1103:
1104: case 100: {
1105:
1106: #line 401 "awk.y"
1107:
1108: yyval.u_node = yypvt[0].u_node;
1109: }break;
1110:
1111: case 101: {
1112:
1113: #line 404 "awk.y"
1114:
1115: yyval.u_node = node(ALIST, yypvt[-2].u_node, yypvt[0].u_node);
1116: }break;
1117:
1118: }
1119: ip = &yygo[ yypgo[yypdnt[pno]] ];
1120: while( *ip!=*yys && *ip!=YYNOCHAR )
1121: ip += 2;
1122: yystate = ip[1];
1123: goto stack;
1124: }
1125: }
1126:
1127:
1128:
1129:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.