|
|
1.1 root 1:
2: # line 2 "x.y"
3: #include <stdio.h>
4: #include "pico.h"
5: #include "pico2.h"
6:
7: #define usedboth usedold=usednew=1
8:
9: #define YYDEBUG 1
10:
11: extern short CURSCRATCH, CUROLD;
12: extern char *progr;
13: extern struct SRC src[MANY];
14: extern int nsrc, nrparams, LO, linenumber, whichdevice;
15: extern char usednew, usedold, faster, frameb, metheus;
16: extern char isglobal, seetree, optim, touchedcmap;
17: extern FILE *INPUT;
18:
19: # line 19 "x.y"
20: typedef union {
21: Node *node;
22: Symbol *sym;
23: int resu;
24: struct SNode *snode;
25: } YYSTYPE;
26: # define VARIABLE 257
27: # define AUTO 258
28: # define ARRAY 259
29: # define FCT 260
30: # define BLTN 261
31: # define NAME 262
32: # define VAL 263
33: # define STRING 264
34: # define A 265
35: # define WINDOW 266
36: # define C 267
37: # define DEF 268
38: # define DEL 269
39: # define SCOM 270
40: # define ECOM 271
41: # define UP 272
42: # define DOWN 273
43: # define RUN 274
44: # define F 275
45: # define H 276
46: # define Q 277
47: # define R 278
48: # define SET 279
49: # define SETF 280
50: # define GET 281
51: # define W 282
52: # define PCONST 283
53: # define RETURN 284
54: # define OPEN 285
55: # define CLOSE 286
56: # define DECL 287
57: # define INT 288
58: # define GLOBAL 289
59: # define X 290
60: # define Y 291
61: # define I 292
62: # define OLD 293
63: # define TMP 294
64: # define CMAP 295
65: # define FOR 296
66: # define DO 297
67: # define WHILE 298
68: # define JUMP 299
69: # define IF 300
70: # define ELSE 301
71: # define COLOR 302
72: # define NOCOLOR 303
73: # define ZAP 304
74: # define FASTER 305
75: # define SLOWER 306
76: # define HELP 307
77: # define FRAMEBUFFER 308
78: # define METHEUS 309
79: # define BLIND 310
80: # define SEETREE 311
81: # define OPTIM 312
82: # define ASSIGN 313
83: # define OPER 314
84: # define OROR 315
85: # define ANDAND 316
86: # define OR 317
87: # define AND 318
88: # define EQ 319
89: # define NE 320
90: # define GT 321
91: # define GE 322
92: # define LT 323
93: # define LE 324
94: # define LSH 325
95: # define RSH 326
96: # define POST 327
97: # define UNARYMINUS 328
98: # define NOT 329
99: # define RCHAN 330
100: # define GCHAN 331
101: # define BCHAN 332
102: # define BW 333
103: # define RGB 334
104: # define POW 335
105: #define yyclearin yychar = -1
106: #define yyerrok yyerrflag = 0
107: extern int yychar;
108: extern short yyerrflag;
109: #ifndef YYMAXDEPTH
110: #define YYMAXDEPTH 150
111: #endif
112: YYSTYPE yylval, yyval;
113: # define YYERRCODE 256
114:
115: # line 316 "x.y"
116:
117: short yyexca[] ={
118: -1, 1,
119: 0, -1,
120: -2, 0,
121: -1, 108,
122: 58, 79,
123: -2, 135,
124: -1, 109,
125: 58, 80,
126: -2, 136,
127: -1, 112,
128: 58, 83,
129: -2, 137,
130: -1, 113,
131: 58, 84,
132: -2, 125,
133: -1, 114,
134: 58, 67,
135: -2, 131,
136: -1, 115,
137: 58, 68,
138: -2, 132,
139: -1, 116,
140: 58, 69,
141: -2, 133,
142: -1, 134,
143: 286, 50,
144: -2, 55,
145: };
146: # define YYNPROD 180
147: # define YYLAST 1448
148: short yyact[]={
149:
150: 62, 66, 178, 270, 176, 269, 138, 137, 338, 174,
151: 172, 265, 173, 264, 175, 263, 262, 62, 163, 176,
152: 136, 92, 63, 64, 174, 172, 238, 173, 176, 175,
153: 171, 140, 139, 174, 104, 266, 104, 176, 175, 156,
154: 104, 214, 174, 172, 213, 173, 212, 175, 333, 334,
155: 335, 332, 331, 221, 222, 223, 220, 219, 119, 73,
156: 133, 177, 320, 207, 152, 232, 199, 200, 201, 130,
157: 198, 102, 97, 39, 96, 301, 7, 21, 303, 23,
158: 8, 41, 42, 82, 302, 3, 9, 11, 6, 5,
159: 19, 20, 10, 22, 68, 71, 72, 69, 70, 67,
160: 330, 74, 39, 329, 39, 230, 118, 166, 39, 328,
161: 135, 327, 326, 17, 16, 141, 12, 13, 18, 210,
162: 325, 104, 14, 15, 209, 324, 284, 75, 76, 77,
163: 62, 282, 62, 39, 123, 215, 104, 283, 260, 127,
164: 281, 82, 280, 68, 71, 72, 69, 70, 67, 151,
165: 74, 279, 75, 76, 77, 146, 278, 202, 143, 274,
166: 273, 148, 64, 339, 236, 176, 25, 104, 107, 272,
167: 174, 172, 27, 173, 167, 175, 75, 76, 77, 150,
168: 149, 164, 268, 62, 271, 124, 234, 58, 154, 39,
169: 101, 169, 193, 100, 99, 98, 84, 267, 89, 208,
170: 147, 78, 24, 103, 39, 106, 203, 28, 165, 26,
171: 316, 289, 290, 288, 275, 293, 142, 162, 161, 145,
172: 128, 109, 112, 113, 110, 111, 108, 143, 74, 120,
173: 153, 144, 27, 117, 211, 39, 104, 235, 109, 112,
174: 113, 110, 111, 108, 206, 74, 40, 30, 36, 38,
175: 231, 90, 2, 52, 114, 115, 116, 61, 60, 37,
176: 33, 35, 44, 105, 43, 36, 38, 28, 233, 26,
177: 52, 114, 115, 116, 61, 60, 37, 33, 35, 44,
178: 105, 43, 186, 185, 187, 188, 183, 184, 179, 180,
179: 181, 182, 189, 190, 55, 56, 57, 53, 54, 309,
180: 310, 81, 178, 1, 39, 4, 291, 189, 190, 86,
181: 168, 55, 56, 57, 53, 54, 191, 178, 48, 306,
182: 194, 195, 196, 34, 32, 197, 178, 132, 208, 121,
183: 204, 205, 300, 134, 0, 178, 0, 217, 218, 62,
184: 0, 0, 104, 123, 0, 228, 305, 0, 127, 307,
185: 308, 50, 51, 59, 41, 42, 49, 125, 126, 81,
186: 0, 340, 0, 0, 239, 240, 241, 242, 243, 244,
187: 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
188: 255, 256, 257, 258, 45, 46, 47, 61, 60, 61,
189: 60, 176, 0, 0, 124, 337, 174, 172, 0, 173,
190: 0, 175, 0, 0, 50, 51, 59, 41, 42, 49,
191: 39, 0, 341, 0, 0, 0, 0, 171, 0, 0,
192: 0, 0, 0, 129, 55, 56, 57, 53, 54, 128,
193: 292, 36, 38, 0, 0, 0, 52, 45, 46, 47,
194: 61, 60, 37, 33, 35, 44, 0, 43, 177, 179,
195: 180, 181, 182, 189, 190, 296, 297, 298, 299, 0,
196: 0, 0, 176, 178, 0, 122, 0, 174, 172, 29,
197: 173, 0, 175, 0, 319, 0, 0, 55, 56, 57,
198: 53, 54, 0, 0, 321, 176, 322, 323, 171, 0,
199: 174, 172, 0, 173, 0, 175, 0, 0, 29, 62,
200: 29, 0, 0, 0, 29, 0, 294, 0, 82, 0,
201: 0, 171, 176, 0, 336, 0, 277, 174, 172, 177,
202: 173, 0, 175, 0, 0, 0, 0, 0, 0, 29,
203: 0, 0, 0, 0, 0, 0, 0, 0, 171, 0,
204: 0, 0, 177, 0, 176, 0, 0, 0, 276, 174,
205: 172, 0, 173, 0, 175, 0, 0, 0, 0, 0,
206: 50, 51, 59, 41, 42, 49, 125, 126, 0, 177,
207: 171, 0, 176, 0, 0, 0, 0, 174, 172, 261,
208: 173, 0, 175, 0, 0, 29, 0, 0, 0, 0,
209: 0, 0, 0, 45, 46, 47, 61, 60, 171, 176,
210: 29, 177, 0, 259, 174, 172, 0, 173, 0, 175,
211: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
212: 0, 0, 0, 0, 0, 171, 0, 0, 0, 177,
213: 0, 29, 129, 55, 56, 57, 53, 54, 176, 0,
214: 0, 0, 0, 174, 172, 0, 173, 0, 175, 0,
215: 0, 0, 0, 0, 0, 0, 177, 0, 0, 0,
216: 237, 0, 0, 0, 171, 0, 0, 0, 0, 186,
217: 185, 187, 188, 183, 184, 179, 180, 181, 182, 189,
218: 190, 0, 176, 0, 0, 0, 0, 174, 172, 178,
219: 173, 0, 175, 0, 0, 177, 0, 0, 0, 0,
220: 29, 0, 0, 0, 170, 176, 0, 0, 171, 0,
221: 174, 172, 0, 173, 0, 175, 0, 0, 0, 0,
222: 68, 71, 72, 69, 70, 67, 81, 74, 0, 0,
223: 0, 171, 95, 0, 0, 0, 0, 0, 0, 177,
224: 186, 185, 187, 188, 183, 184, 179, 180, 181, 182,
225: 189, 190, 0, 75, 76, 77, 61, 60, 0, 0,
226: 178, 0, 177, 186, 185, 187, 188, 183, 184, 179,
227: 180, 181, 182, 189, 190, 0, 131, 0, 0, 176,
228: 31, 0, 0, 178, 174, 172, 0, 173, 0, 175,
229: 186, 185, 187, 188, 183, 184, 179, 180, 181, 182,
230: 189, 190, 0, 0, 0, 0, 29, 82, 176, 31,
231: 178, 31, 0, 174, 172, 31, 173, 62, 175, 0,
232: 0, 0, 186, 185, 187, 188, 183, 184, 179, 180,
233: 181, 182, 189, 190, 0, 0, 177, 0, 176, 0,
234: 31, 0, 178, 174, 172, 0, 173, 0, 175, 0,
235: 186, 185, 187, 188, 183, 184, 179, 180, 181, 182,
236: 189, 190, 0, 176, 0, 177, 0, 0, 174, 172,
237: 178, 173, 0, 175, 0, 0, 0, 186, 185, 187,
238: 188, 183, 184, 179, 180, 181, 182, 189, 190, 0,
239: 0, 0, 0, 176, 0, 177, 31, 178, 174, 172,
240: 0, 173, 0, 175, 0, 0, 0, 0, 0, 62,
241: 0, 31, 0, 0, 0, 0, 186, 185, 187, 188,
242: 183, 184, 179, 180, 181, 182, 189, 190, 0, 176,
243: 0, 0, 0, 0, 174, 172, 178, 173, 0, 175,
244: 0, 0, 31, 0, 68, 71, 72, 69, 70, 67,
245: 177, 74, 0, 0, 0, 0, 0, 0, 0, 192,
246: 186, 185, 187, 188, 183, 184, 179, 180, 181, 182,
247: 189, 190, 0, 0, 0, 0, 0, 75, 76, 77,
248: 178, 0, 0, 186, 185, 187, 188, 183, 184, 179,
249: 180, 181, 182, 189, 190, 0, 0, 0, 0, 0,
250: 0, 0, 0, 178, 0, 0, 0, 0, 0, 0,
251: 0, 31, 0, 0, 0, 0, 0, 0, 0, 68,
252: 71, 72, 69, 70, 67, 81, 74, 0, 0, 0,
253: 0, 0, 0, 0, 0, 0, 0, 0, 68, 71,
254: 72, 69, 70, 67, 85, 74, 304, 304, 0, 0,
255: 304, 304, 75, 76, 77, 0, 0, 186, 185, 187,
256: 188, 183, 184, 179, 180, 181, 182, 189, 190, 0,
257: 0, 75, 76, 77, 61, 60, 0, 178, 0, 0,
258: 0, 0, 0, 0, 0, 0, 0, 185, 187, 188,
259: 183, 184, 179, 180, 181, 182, 189, 190, 0, 0,
260: 0, 0, 216, 0, 0, 0, 178, 224, 225, 0,
261: 0, 0, 0, 0, 0, 0, 0, 31, 187, 188,
262: 183, 184, 179, 180, 181, 182, 189, 190, 0, 0,
263: 68, 71, 72, 69, 70, 67, 178, 74, 0, 0,
264: 0, 0, 0, 0, 188, 183, 184, 179, 180, 181,
265: 182, 189, 190, 0, 0, 0, 0, 0, 0, 0,
266: 65, 178, 0, 75, 76, 77, 61, 60, 79, 83,
267: 0, 87, 91, 80, 188, 183, 184, 179, 180, 181,
268: 182, 189, 190, 94, 88, 0, 0, 0, 0, 0,
269: 0, 178, 0, 0, 0, 93, 0, 0, 0, 0,
270: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
271: 0, 183, 184, 179, 180, 181, 182, 189, 190, 0,
272: 0, 295, 0, 0, 0, 0, 0, 178, 0, 0,
273: 0, 0, 0, 0, 0, 0, 0, 0, 311, 312,
274: 313, 314, 315, 0, 0, 0, 0, 0, 0, 0,
275: 0, 158, 0, 0, 155, 0, 160, 0, 0, 0,
276: 0, 0, 157, 0, 0, 0, 0, 159, 0, 0,
277: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
278: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
279: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
280: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
281: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
282: 0, 0, 0, 0, 0, 0, 0, 0, 0, 226,
283: 0, 227, 0, 229, 0, 0, 0, 0, 0, 0,
284: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
285: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
286: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
287: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
288: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
289: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
290: 285, 286, 0, 287, 0, 0, 0, 0, 0, 0,
291: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
292: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
293: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
294: 0, 0, 0, 0, 0, 0, 317, 318 };
295: short yypact[]={
296:
297: -189,-1000, 143, 147, 103,-163, 142, 762, 781,-1000,
298: 463,-163,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-163,
299: -1000, 38, 687,-188,-1000,-1000,-1000, 136, 135, 134,
300: -1000, 131, -19, 193, -19, 103, 303, 14, -19,-307,
301: -256, 176, 176, 191, 179,-1000,-1000,-1000,-1000,-1000,
302: -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, 109, 70,
303: -1000,-1000,-114, 147,-1000, 129,-1000,-1000,-1000,-1000,
304: -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
305: 38,-1000,-224,-1000,-1000,-1000,-1000,-1000, 38,-1000,
306: -163,-1000,-1000, 38,-1000,-163, 178, 177,-1000,-1000,
307: -1000,-1000,-283, 122, 150,-163,-1000, 115,-1000,-1000,
308: 176, 176,-1000, 70,-1000,-1000,-1000, 303,-1000, -19,
309: 645,-1000,-1000, 303, 303,-1000,-1000, 303, 303, 303,
310: -307,-1000, 303,-264, -36,-1000,-1000, 303, 303,-138,
311: -218,-1000, 94,-1000, 303, 303,-277, 303, 303,-1000,
312: -1000,-1000,-1000,-1000,-1000, 38,-1000, 96,-1000, 38,
313: -1000,-197,-197, 103,-1000, -19, 105,-1000, 601,-272,
314: -1000, 303, 303, 303, 303, 303, 303, 303, 303, 303,
315: 303, 303, 303, 303, 303, 303, 303, 303, 303, 303,
316: 303, 562, 45, 535,-333,-333,-333, 668,-297,-298,
317: -300,-302,-251,-1000, 742, 668, 138,-1000,-1000,-308,
318: -310, 125,-1000, 69, 68,-1000, 173, 507, 475, 65,
319: 60, 51, 49, 40, 44, 33, 38, 38,-1000, 38,
320: 172, 167,-1000, 171, -19,-1000,-1000, 303, 175, 448,
321: -9, -9,-333,-333,-333, 826,-333, -18, -18, -18,
322: -18, 128, 128, 801, 771, 856, 892, 0, 0,-1000,
323: -1000, 303, 303, 303, 303, 303,-1000,-1000,-138,-179,
324: -179,-1000,-218,-179,-179,-1000, 103, 103, 303, 303,
325: 303, 303, 303, 164,-1000,-163, 873,-1000,-1000,-200,
326: -1000,-1000, 425, 303, 303,-1000, 668, 668, 668, 668,
327: -1000,-1000,-1000,-1000,-1000,-1000,-1000, 32, 27,-1000,
328: -1000, 19, 18, 16, 10, 7,-282,-1000,-1000,-1000,
329: -1000, 303, 354, 668,-1000,-1000,-1000,-1000,-1000,-1000,
330: -1000,-1000,-1000,-1000,-1000,-1000, -33, 104, 103,-1000,
331: -19,-1000 };
332: short yypgo[]={
333:
334: 0, 71, 205, 203, 333, 329, 465, 324, 323, 115,
335: 776, 959, 192, 168, 318, 69, 187, 166, 75,1173,
336: 309, 1, 59,1160, 305, 303, 252, 22, 105, 251,
337: 250, 247, 246, 244, 234, 63, 46 };
338: short yyr1[]={
339:
340: 0, 25, 25, 25, 25, 25, 24, 24, 26, 26,
341: 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
342: 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
343: 26, 26, 26, 20, 20, 20, 29, 29, 28, 28,
344: 30, 30, 17, 17, 17, 13, 13, 13, 13, 13,
345: 27, 27, 31, 31, 32, 32, 33, 33, 34, 34,
346: 35, 35, 35, 35, 35, 36, 36, 22, 22, 22,
347: 3, 4, 4, 9, 9, 11, 11, 7, 8, 21,
348: 21, 21, 21, 21, 21, 21, 21, 23, 1, 1,
349: 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
350: 2, 2, 14, 14, 14, 14, 14, 14, 14, 14,
351: 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
352: 14, 14, 14, 14, 14, 14, 6, 6, 6, 5,
353: 5, 15, 15, 15, 15, 15, 15, 15, 10, 10,
354: 19, 19, 18, 18, 18, 12, 12, 12, 12, 12,
355: 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
356: 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
357: 12, 12, 12, 12, 16, 16, 16, 16, 16, 16 };
358: short yyr2[]={
359:
360: 0, 2, 2, 3, 3, 2, 5, 5, 0, 2,
361: 6, 2, 2, 2, 1, 1, 2, 2, 6, 2,
362: 1, 1, 1, 1, 1, 1, 1, 1, 2, 1,
363: 5, 2, 3, 1, 3, 5, 1, 2, 0, 1,
364: 1, 3, 1, 2, 2, 3, 5, 5, 5, 5,
365: 0, 1, 4, 4, 1, 0, 1, 3, 1, 3,
366: 1, 1, 1, 3, 3, 4, 4, 1, 1, 1,
367: 4, 1, 2, 2, 3, 1, 3, 5, 5, 1,
368: 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
369: 3, 1, 2, 2, 1, 2, 2, 5, 10, 2,
370: 8, 3, 1, 1, 1, 1, 1, 1, 3, 3,
371: 3, 3, 3, 4, 6, 6, 6, 6, 6, 6,
372: 6, 6, 6, 6, 4, 1, 2, 3, 3, 1,
373: 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
374: 1, 2, 1, 1, 1, 1, 1, 3, 3, 1,
375: 1, 5, 2, 2, 2, 3, 3, 3, 3, 3,
376: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
377: 3, 3, 3, 3, 1, 1, 2, 2, 2, 2 };
378: short yychk[]={
379:
380: -1000, -25, -26, 274, -24, 278, 277, 265, 269, 275,
381: 281, 276, 305, 306, 311, 312, 303, 302, 307, 279,
382: 280, 266, 282, 268, 59, -17, -2, -13, -3, -6,
383: -31, -10, -7, 296, -8, 297, 284, 295, 285, -15,
384: -32, 260, 261, 300, 298, 290, 291, 292, -14, 262,
385: 257, 258, 289, 333, 334, 330, 331, 332, -16, 259,
386: 294, 293, 36, -27, 59, -23, -21, 262, 257, 260,
387: 261, 258, 259, -22, 264, 290, 291, 292, 59, -23,
388: -19, 263, 45, -23, -16, 263, -20, -23, -19, -16,
389: -29, -23, -21, -19, -23, 45, 262, 260, 59, 59,
390: 59, 59, -1, -3, -21, 299, -2, -13, 262, 257,
391: 260, 261, 258, 259, 290, 291, 292, 40, -1, -27,
392: -12, -5, -6, 40, 91, 263, 264, 45, 126, 329,
393: -15, -10, 313, 46, -4, -1, 327, 314, 313, 288,
394: 287, -9, 40, -9, 40, 40, 46, 91, 91, 294,
395: 293, 263, -21, -17, 59, -19, 263, -19, -23, -19,
396: -23, 40, 40, 301, 59, 58, -21, 59, -12, -1,
397: 59, 63, 43, 45, 42, 47, 37, 94, 335, 321,
398: 322, 323, 324, 319, 320, 316, 315, 317, 318, 325,
399: 326, -12, -11, -12, -12, -12, -12, -12, 334, 330,
400: 331, 332, -27, -1, -12, -12, -33, -35, -22, 262,
401: 257, -34, -36, 262, 259, 41, -11, -12, -12, 334,
402: 333, 330, 331, 332, -11, -11, -19, -19, -16, -19,
403: -28, -30, 262, -28, -27, -1, 59, 59, 298, -12,
404: -12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
405: -12, -12, -12, -12, -12, -12, -12, -12, -12, 41,
406: 93, 44, 313, 313, 313, 313, 286, 59, 44, 313,
407: 313, 59, 44, 91, 91, 41, 41, 41, 91, 91,
408: 91, 91, 91, 93, 93, -19, -19, -19, 41, 44,
409: 41, -1, -12, 40, 58, -11, -12, -12, -12, -12,
410: -35, -18, 263, 257, -10, -18, -36, -18, -18, -27,
411: -27, -11, -11, -11, -11, -11, 46, -23, -23, -16,
412: 262, 59, -12, -12, 93, 93, 93, 93, 93, 93,
413: 93, 334, 333, 330, 331, 332, -12, 41, 41, 59,
414: -27, -1 };
415: short yydef[]={
416:
417: 8, -2, 0, 55, 50, 0, 0, 0, 0, 14,
418: 15, 0, 20, 21, 22, 23, 24, 25, 26, 27,
419: 29, 0, 0, 0, 1, 2, 42, 0, 0, 0,
420: 94, 0, 55, 0, 55, 50, 0, 0, 55, 0,
421: 0, 0, 0, 0, 0, 131, 132, 133, 134, 135,
422: 136, 137, 54, 102, 103, 104, 105, 106, 107, 125,
423: 174, 175, 0, 55, 51, 0, 87, 79, 80, 81,
424: 82, 83, 84, 85, 86, 67, 68, 69, 5, 9,
425: 0, 140, 0, 11, 12, 13, 16, 17, 0, 33,
426: 19, 36, 28, 0, 31, 0, 0, 0, 43, 44,
427: 93, 95, 96, 0, 0, 0, 91, 0, -2, -2,
428: 81, 82, -2, -2, -2, -2, -2, 0, 99, 55,
429: 0, 145, 146, 0, 0, 149, 150, 0, 0, 0,
430: 129, 130, 0, 0, -2, 71, 126, 0, 0, 0,
431: 0, 138, 0, 139, 0, 0, 0, 0, 0, 176,
432: 177, 178, 179, 3, 4, 0, 141, 0, 37, 0,
433: 32, 38, 38, 50, 88, 55, 0, 92, 0, 0,
434: 101, 0, 0, 0, 0, 0, 0, 0, 0, 0,
435: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
436: 0, 0, 0, 75, 152, 153, 154, 45, 0, 0,
437: 0, 0, 0, 72, 127, 128, 0, 56, 60, 61,
438: 62, 0, 58, 0, 0, 73, 0, 0, 0, 108,
439: 109, 110, 111, 112, 0, 0, 0, 0, 34, 0,
440: 0, 39, 40, 0, 55, 89, 90, 0, 0, 0,
441: 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
442: 165, 166, 167, 168, 169, 170, 171, 172, 173, 147,
443: 148, 0, 0, 0, 0, 0, 70, 52, 0, 0,
444: 0, 53, 0, 0, 0, 74, 50, 50, 0, 0,
445: 0, 0, 0, 113, 124, 0, 0, 30, 6, 0,
446: 7, 97, 0, 0, 0, 76, 46, 47, 48, 49,
447: 57, 63, 142, 143, 144, 64, 59, 0, 0, 77,
448: 78, 0, 0, 0, 0, 0, 0, 10, 18, 35,
449: 41, 0, 0, 151, 65, 66, 119, 120, 121, 122,
450: 123, 114, 115, 116, 117, 118, 0, 0, 50, 100,
451: 55, 98 };
452: # ifdef YYDEBUG
453: # include "y.debug"
454: # endif
455:
456: # define YYFLAG -1000
457: # define YYERROR goto yyerrlab
458: # define YYACCEPT return(0)
459: # define YYABORT return(1)
460:
461: /* parser for yacc output */
462:
463: #ifdef YYDEBUG
464: int yydebug = 0; /* 1 for debugging */
465: #endif
466: YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */
467: int yychar = -1; /* current input token number */
468: int yynerrs = 0; /* number of errors */
469: short yyerrflag = 0; /* error recovery flag */
470:
471: yyparse()
472: { short yys[YYMAXDEPTH];
473: int yyj, yym;
474: register YYSTYPE *yypvt;
475: register int yystate, yyn;
476: register short *yyps;
477: register YYSTYPE *yypv;
478: register short *yyxi;
479:
480: yystate = 0;
481: yychar = -1;
482: yynerrs = 0;
483: yyerrflag = 0;
484: yyps= &yys[-1];
485: yypv= &yyv[-1];
486:
487: yystack: /* put a state and value onto the stack */
488: #ifdef YYDEBUG
489: if(yydebug >= 3)
490: if(yychar < 0 || yytoknames[yychar] == 0)
491: printf("char %d in %s", yychar, yystates[yystate]);
492: else
493: printf("%s in %s", yytoknames[yychar], yystates[yystate]);
494: #endif
495: if( ++yyps >= &yys[YYMAXDEPTH] ) {
496: yyerror( "yacc stack overflow" );
497: return(1);
498: }
499: *yyps = yystate;
500: ++yypv;
501: *yypv = yyval;
502: yynewstate:
503: yyn = yypact[yystate];
504: if(yyn <= YYFLAG) goto yydefault; /* simple state */
505: if(yychar<0) {
506: yychar = yylex();
507: #ifdef YYDEBUG
508: if(yydebug >= 2) {
509: if(yychar <= 0)
510: printf("lex EOF\n");
511: else if(yytoknames[yychar])
512: printf("lex %s\n", yytoknames[yychar]);
513: else
514: printf("lex (%c)\n", yychar);
515: }
516: #endif
517: if(yychar < 0)
518: yychar = 0;
519: }
520: if((yyn += yychar) < 0 || yyn >= YYLAST)
521: goto yydefault;
522: if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */
523: yychar = -1;
524: yyval = yylval;
525: yystate = yyn;
526: if( yyerrflag > 0 ) --yyerrflag;
527: goto yystack;
528: }
529: yydefault:
530: /* default state action */
531: if( (yyn=yydef[yystate]) == -2 ) {
532: if(yychar < 0) {
533: yychar = yylex();
534: #ifdef YYDEBUG
535: if(yydebug >= 2)
536: if(yychar < 0)
537: printf("lex EOF\n");
538: else
539: printf("lex %s\n", yytoknames[yychar]);
540: #endif
541: if(yychar < 0)
542: yychar = 0;
543: }
544: /* look through exception table */
545: for(yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate);
546: yyxi += 2 ) ; /* VOID */
547: while( *(yyxi+=2) >= 0 ){
548: if( *yyxi == yychar ) break;
549: }
550: if( (yyn = yyxi[1]) < 0 ) return(0); /* accept */
551: }
552: if( yyn == 0 ){ /* error */
553: /* error ... attempt to resume parsing */
554: switch( yyerrflag ){
555: case 0: /* brand new error */
556: #ifdef YYDEBUG
557: yyerror("syntax error\n%s", yystates[yystate]);
558: if(yytoknames[yychar])
559: yyerror("saw %s\n", yytoknames[yychar]);
560: else if(yychar >= ' ' && yychar < '\177')
561: yyerror("saw `%c'\n", yychar);
562: else if(yychar == 0)
563: yyerror("saw EOF\n");
564: else
565: yyerror("saw char 0%o\n", yychar);
566: #else
567: yyerror( "syntax error" );
568: #endif
569: yyerrlab:
570: ++yynerrs;
571: case 1:
572: case 2: /* incompletely recovered error ... try again */
573: yyerrflag = 3;
574: /* find a state where "error" is a legal shift action */
575: while ( yyps >= yys ) {
576: yyn = yypact[*yyps] + YYERRCODE;
577: if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){
578: yystate = yyact[yyn]; /* simulate a shift of "error" */
579: goto yystack;
580: }
581: yyn = yypact[*yyps];
582: /* the current yyps has no shift onn "error", pop stack */
583: #ifdef YYDEBUG
584: if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] );
585: #endif
586: --yyps;
587: --yypv;
588: }
589: /* there is no state on the stack with an error shift ... abort */
590: yyabort:
591: return(1);
592: case 3: /* no shift yet; clobber input char */
593: #ifdef YYDEBUG
594: if( yydebug ) {
595: printf("error recovery discards ");
596: if(yytoknames[yychar])
597: printf("%s\n", yytoknames[yychar]);
598: else if(yychar >= ' ' && yychar < '\177')
599: printf("`%c'\n", yychar);
600: else if(yychar == 0)
601: printf("EOF\n");
602: else
603: printf("char 0%o\n", yychar);
604: }
605: #endif
606: if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */
607: yychar = -1;
608: goto yynewstate; /* try again in the same state */
609: }
610: }
611: /* reduction by production yyn */
612: #ifdef YYDEBUG
613: if(yydebug) { char *s;
614: printf("reduce %d in:\n\t", yyn);
615: for(s = yystates[yystate]; *s; s++) {
616: putchar(*s);
617: if(*s == '\n' && *(s+1))
618: putchar('\t');
619: }
620: }
621: #endif
622: yyps -= yyr2[yyn];
623: yypvt = yypv;
624: yypv -= yyr2[yyn];
625: yyval = yypv[1];
626: yym=yyn;
627: /* consult goto table to find next state */
628: yyn = yyr1[yyn];
629: yyj = yypgo[yyn] + *yyps + 1;
630: if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]];
631: switch(yym){
632:
633: case 1:
634: # line 64 "x.y"
635: { return 1; } break;
636: case 2:
637: # line 65 "x.y"
638: { munge(yypvt[-0].resu); return 1; } break;
639: case 3:
640: # line 66 "x.y"
641: { postfunct(yypvt[-2].sym); return 1; } break;
642: case 4:
643: # line 67 "x.y"
644: { redirect(yypvt[-1].sym->name);
645: checkit();
646: return 1;
647: } break;
648: case 5:
649: # line 71 "x.y"
650: { return 0; } break;
651: case 6:
652: # line 73 "x.y"
653: { prefunct(yypvt[-3].sym, nrparams); yyval.sym = yypvt[-3].sym; } break;
654: case 7:
655: # line 74 "x.y"
656: { prefunct(yypvt[-3].sym, nrparams); yyval.sym = yypvt[-3].sym; } break;
657: case 8:
658: # line 76 "x.y"
659: { /* if (INPUT == stdin) linenumber--; */ } break;
660: case 9:
661: # line 77 "x.y"
662: { append( 0, 0, 0, 0, yypvt[-0].sym->name); } break;
663: case 10:
664: # line 78 "x.y"
665: { append(yypvt[-4].resu, yypvt[-3].resu, yypvt[-2].resu, yypvt[-1].resu, yypvt[-0].sym->name); } break;
666: case 11:
667: # line 79 "x.y"
668: { discard(yypvt[-0].sym->name); } break;
669: case 12:
670: # line 80 "x.y"
671: { if (yypvt[-0].resu > 1 && yypvt[-0].resu <= nsrc-1)
672: discard(src[yypvt[-0].resu].fname);
673: else
674: yyerror("unknown file number %d", yypvt[-0].resu);
675: } break;
676: case 13:
677: # line 85 "x.y"
678: { if (yypvt[-0].resu > 1 && yypvt[-0].resu <= nsrc-1)
679: discard(src[yypvt[-0].resu].fname);
680: else
681: yyerror("unknown file number %d", yypvt[-0].resu);
682: } break;
683: case 14:
684: # line 90 "x.y"
685: { files(); } break;
686: case 15:
687: # line 91 "x.y"
688: { getscreen(Old); } break;
689: case 16:
690: # line 92 "x.y"
691: { getter(yypvt[-0].resu); } break;
692: case 17:
693: # line 93 "x.y"
694: { getter(append( 0, 0, 0, 0, yypvt[-0].sym->name)); } break;
695: case 18:
696: # line 94 "x.y"
697: { getter(append(yypvt[-4].resu, yypvt[-3].resu, yypvt[-2].resu, yypvt[-1].resu, yypvt[-0].sym->name)); } break;
698: case 20:
699: # line 96 "x.y"
700: { faster = 1; } break;
701: case 21:
702: # line 97 "x.y"
703: { faster = 0; } break;
704: case 22:
705: # line 98 "x.y"
706: { seetree = 1 - seetree; } break;
707: case 23:
708: # line 99 "x.y"
709: { optim = 1 - optim; } break;
710: case 24:
711: # line 100 "x.y"
712: { Old->nchan = Scratch->nchan = 1; } break;
713: case 25:
714: # line 101 "x.y"
715: { Old->nchan = Scratch->nchan = 3;
716: checkpix(Old); checkpix(Scratch);
717: } break;
718: case 26:
719: # line 104 "x.y"
720: { dohelp(); } break;
721: case 27:
722: # line 105 "x.y"
723: { showvars(); } break;
724: case 28:
725: # line 106 "x.y"
726: { showsym(yypvt[-0].sym); } break;
727: case 29:
728: # line 107 "x.y"
729: { showfcts(); } break;
730: case 30:
731: # line 108 "x.y"
732: { setwindow(yypvt[-3].resu, yypvt[-2].resu, yypvt[-1].resu, yypvt[-0].resu); } break;
733: case 31:
734: # line 109 "x.y"
735: { putdpix(yypvt[-0].sym->name, PICO); } break;
736: case 32:
737: # line 110 "x.y"
738: { putdpix(yypvt[-0].sym->name, 0); } break;
739: case 33:
740: # line 112 "x.y"
741: { yyval.resu = yypvt[-0].resu; } break;
742: case 34:
743: # line 113 "x.y"
744: { yyval.resu = append(yypvt[-2].resu, yypvt[-1].resu, 0, 0, src[yypvt[-0].resu].fname); } break;
745: case 35:
746: # line 114 "x.y"
747: { yyval.resu = append(yypvt[-4].resu, yypvt[-3].resu, yypvt[-2].resu, yypvt[-1].resu, src[yypvt[-0].resu].fname); } break;
748: case 36:
749: # line 116 "x.y"
750: { interpret(yypvt[-0].sym->name); } break;
751: case 37:
752: # line 117 "x.y"
753: { interpret(yypvt[-0].sym->name); } break;
754: case 40:
755: # line 122 "x.y"
756: { automa(yypvt[-0].sym, nrparams++); } break;
757: case 41:
758: # line 123 "x.y"
759: { automa(yypvt[-0].sym, nrparams++); } break;
760: case 42:
761: # line 125 "x.y"
762: { compile(yypvt[-0].node, progr); yyval.resu = BLOOP; } break;
763: case 43:
764: # line 126 "x.y"
765: { compile(yypvt[-1].node, progr); yyval.resu = SLOOP; } break;
766: case 44:
767: # line 127 "x.y"
768: { compile(yypvt[-1].node, progr); yyval.resu = NLOOP; } break;
769: case 45:
770: # line 129 "x.y"
771: { yyval.node = mapall(cast(yypvt[-0].node)); } break;
772: case 46:
773: # line 130 "x.y"
774: { yyval.node = mapall(yypvt[-0].node); } break;
775: case 47:
776: # line 131 "x.y"
777: { yyval.node = mapred(cast(yypvt[-0].node)); } break;
778: case 48:
779: # line 132 "x.y"
780: { yyval.node = mapgrn(cast(yypvt[-0].node)); } break;
781: case 49:
782: # line 133 "x.y"
783: { yyval.node = mapblu(cast(yypvt[-0].node)); } break;
784: case 54:
785: # line 141 "x.y"
786: { isglobal = 1; } break;
787: case 55:
788: # line 142 "x.y"
789: { isglobal = 0; } break;
790: case 61:
791: # line 151 "x.y"
792: { decvar(yypvt[-0].sym, 0); } break;
793: case 62:
794: # line 152 "x.y"
795: { decvar(yypvt[-0].sym, 0); } break;
796: case 63:
797: # line 153 "x.y"
798: { decvar(yypvt[-2].sym, yypvt[-0].resu); } break;
799: case 64:
800: # line 154 "x.y"
801: { decvar(yypvt[-2].sym, yypvt[-0].resu); } break;
802: case 65:
803: # line 156 "x.y"
804: { decarray(yypvt[-3].sym, yypvt[-1].resu); } break;
805: case 66:
806: # line 157 "x.y"
807: { decarray(yypvt[-3].sym, yypvt[-1].resu); } break;
808: case 67:
809: # line 159 "x.y"
810: { yyval.sym = newsym("x"); } break;
811: case 68:
812: # line 160 "x.y"
813: { yyval.sym = newsym("y"); } break;
814: case 69:
815: # line 161 "x.y"
816: { yyval.sym = newsym("i"); } break;
817: case 70:
818: # line 163 "x.y"
819: { yyval.node = yypvt[-2].node; } break;
820: case 71:
821: # line 165 "x.y"
822: { yyval.node = yypvt[-0].node; } break;
823: case 72:
824: # line 166 "x.y"
825: { yyval.node = new(OCOMMA, yypvt[-1].node, yypvt[-0].node, Z); } break;
826: case 73:
827: # line 168 "x.y"
828: { yyval.node = Z; } break;
829: case 74:
830: # line 169 "x.y"
831: { yyval.node = yypvt[-1].node; } break;
832: case 75:
833: # line 171 "x.y"
834: { yyval.node = cast(yypvt[-0].node); } break;
835: case 76:
836: # line 172 "x.y"
837: { yyval.node = new(ACOMMA, cast(yypvt[-2].node), yypvt[-0].node, Z); } break;
838: case 77:
839: # line 174 "x.y"
840: { yyval.node = yypvt[-2].node; } break;
841: case 78:
842: # line 175 "x.y"
843: { yyval.node = yypvt[-2].node; } break;
844: case 79:
845: # line 177 "x.y"
846: { yyval.sym = yypvt[-0].sym; } break;
847: case 80:
848: # line 178 "x.y"
849: { yyval.sym = yypvt[-0].sym; } break;
850: case 81:
851: # line 179 "x.y"
852: { yyval.sym = yypvt[-0].sym; } break;
853: case 82:
854: # line 180 "x.y"
855: { yyval.sym = yypvt[-0].sym; } break;
856: case 83:
857: # line 181 "x.y"
858: { yyval.sym = yypvt[-0].sym; } break;
859: case 84:
860: # line 182 "x.y"
861: { yyval.sym = yypvt[-0].sym; } break;
862: case 85:
863: # line 183 "x.y"
864: { yyval.sym = yypvt[-0].sym; } break;
865: case 86:
866: # line 184 "x.y"
867: { yyval.sym = lookup(yypvt[-0].resu); } break;
868: case 87:
869: # line 186 "x.y"
870: { yyval.sym = yypvt[-0].sym; } break;
871: case 88:
872: # line 188 "x.y"
873: { yyval.node = yypvt[-1].node; } break;
874: case 89:
875: # line 189 "x.y"
876: { yyval.node = new(LABL,yypvt[-0].node, Z, yypvt[-2].sym); } break;
877: case 90:
878: # line 190 "x.y"
879: { yyval.node = new(GOTO, Z, Z, yypvt[-1].sym); } break;
880: case 91:
881: # line 191 "x.y"
882: { yyval.node = yypvt[-0].node; } break;
883: case 92:
884: # line 192 "x.y"
885: { yyval.node = yypvt[-1].node; } break;
886: case 93:
887: # line 194 "x.y"
888: { yyval.node = yypvt[-1].node; } break;
889: case 94:
890: # line 195 "x.y"
891: { yyval.node = Z; } break;
892: case 95:
893: # line 196 "x.y"
894: { yyval.node = yypvt[-1].node; } break;
895: case 96:
896: # line 197 "x.y"
897: { yyval.node = new(CONDI, yypvt[-0].node, Z, yypvt[-1].node); } break;
898: case 97:
899: # line 198 "x.y"
900: { yyval.node = new(CONDI, yypvt[-3].node, yypvt[-0].node, yypvt[-4].node); } break;
901: case 98:
902: # line 199 "x.y"
903: {
904: yyval.node = newloop(yypvt[-7].node, yypvt[-5].node, yypvt[-3].node, yypvt[-0].node); } break;
905: case 99:
906: # line 201 "x.y"
907: { yyval.node = newhile(yypvt[-1].node, yypvt[-0].node); } break;
908: case 100:
909: # line 202 "x.y"
910: { yyval.node = newuntil(yypvt[-5].node, yypvt[-2].node); } break;
911: case 101:
912: # line 203 "x.y"
913: { yyval.node = new(ORETURN, yypvt[-1].node, Z, Z); } break;
914: case 102:
915: # line 205 "x.y"
916: { usedboth; yyval.snode = super(CURSCRATCH, Z, BW); } break;
917: case 103:
918: # line 206 "x.y"
919: { usedboth; yyval.snode = super(CURSCRATCH, Z, RGB); } break;
920: case 104:
921: # line 207 "x.y"
922: { usedboth; yyval.snode = super(CURSCRATCH, Z, RCHAN); } break;
923: case 105:
924: # line 208 "x.y"
925: { usedboth; yyval.snode = super(CURSCRATCH, Z, GCHAN); } break;
926: case 106:
927: # line 209 "x.y"
928: { usedboth; yyval.snode = super(CURSCRATCH, Z, BCHAN); } break;
929: case 107:
930: # line 210 "x.y"
931: { yyval.snode = super(yypvt[-0].resu, Z, (src[yypvt[-0].resu].nchan == 1)?BW:RGB); } break;
932: case 108:
933: # line 211 "x.y"
934: { yyval.snode = super(yypvt[-2].resu, Z, RGB); } break;
935: case 109:
936: # line 212 "x.y"
937: { yyval.snode = super(yypvt[-2].resu, Z, BW); } break;
938: case 110:
939: # line 213 "x.y"
940: { yyval.snode = super(yypvt[-2].resu, Z, RCHAN); } break;
941: case 111:
942: # line 214 "x.y"
943: { yyval.snode = super(yypvt[-2].resu, Z, GCHAN); } break;
944: case 112:
945: # line 215 "x.y"
946: { yyval.snode = super(yypvt[-2].resu, Z, BCHAN); } break;
947: case 113:
948: # line 216 "x.y"
949: { yyval.snode = super(yypvt[-3].resu, yypvt[-1].node,(src[yypvt[-3].resu].nchan == 1)?BW:RGB); } break;
950: case 114:
951: # line 217 "x.y"
952: { yyval.snode = super(yypvt[-5].resu, yypvt[-3].node, RGB); } break;
953: case 115:
954: # line 218 "x.y"
955: { yyval.snode = super(yypvt[-5].resu, yypvt[-3].node, BW); } break;
956: case 116:
957: # line 219 "x.y"
958: { yyval.snode = super(yypvt[-5].resu, yypvt[-3].node, RCHAN); } break;
959: case 117:
960: # line 220 "x.y"
961: { yyval.snode = super(yypvt[-5].resu, yypvt[-3].node, GCHAN); } break;
962: case 118:
963: # line 221 "x.y"
964: { yyval.snode = super(yypvt[-5].resu, yypvt[-3].node, BCHAN); } break;
965: case 119:
966: # line 222 "x.y"
967: { yyval.snode = super(yypvt[-5].resu, yypvt[-1].node, RGB); } break;
968: case 120:
969: # line 223 "x.y"
970: { yyval.snode = super(yypvt[-5].resu, yypvt[-1].node, BW); } break;
971: case 121:
972: # line 224 "x.y"
973: { yyval.snode = super(yypvt[-5].resu, yypvt[-1].node, RCHAN); } break;
974: case 122:
975: # line 225 "x.y"
976: { yyval.snode = super(yypvt[-5].resu, yypvt[-1].node, GCHAN); } break;
977: case 123:
978: # line 226 "x.y"
979: { yyval.snode = super(yypvt[-5].resu, yypvt[-1].node, BCHAN); } break;
980: case 124:
981: # line 227 "x.y"
982: { yyval.snode=nsup(RL((yypvt[-3].sym->u.ar->base),Index(yypvt[-1].node)),0,0,128);} break;
983: case 125:
984: # line 228 "x.y"
985: { yyval.snode=nsup(RL((yypvt[-0].sym->u.ar->base),DII), 0,0,128); } break;
986: case 126:
987: # line 230 "x.y"
988: { yyval.node = weird(yypvt[-1].snode, notnew(LO, yypvt[-1].snode->n, NR(1))); } break;
989: case 127:
990: # line 231 "x.y"
991: { yyval.node = weird(yypvt[-2].snode, notnew(LO, yypvt[-2].snode->n, yypvt[-0].node)); } break;
992: case 128:
993: # line 232 "x.y"
994: { yyval.node = weird(yypvt[-2].snode, yypvt[-0].node); } break;
995: case 129:
996: # line 234 "x.y"
997: { yyval.node = yypvt[-0].snode->n; } break;
998: case 130:
999: # line 235 "x.y"
1000: { yyval.node = yypvt[-0].node; } break;
1001: case 131:
1002: # line 237 "x.y"
1003: { yyval.snode = nsup(new(REG, Z, Z, XREG), 0, 0, 128); } break;
1004: case 132:
1005: # line 238 "x.y"
1006: { yyval.snode = nsup(new(REG, Z, Z, YREG), 0, 0, 128); } break;
1007: case 133:
1008: # line 239 "x.y"
1009: { yyval.snode = nsup(new(REG, Z, Z, IREG), 0, 0, 128); } break;
1010: case 134:
1011: # line 240 "x.y"
1012: { yyval.snode = yypvt[-0].snode; } break;
1013: case 135:
1014: # line 241 "x.y"
1015: { yyerror("undeclared variable %s", yypvt[-0].sym->name); } break;
1016: case 136:
1017: # line 242 "x.y"
1018: { yyval.snode = nsup(new(VAR, Z, Z, &yypvt[-0].sym->u.val), 0,0,128);} break;
1019: case 137:
1020: # line 243 "x.y"
1021: { yyval.snode = nsup(new(OARG, Z, Z, yypvt[-0].sym->u.val), 0,0,128);} break;
1022: case 138:
1023: # line 245 "x.y"
1024: { if (yypvt[-1].sym->u.fu->usednew == -1 && notrecurcall(yypvt[-1].sym))
1025: yyerror("undefined function %s", yypvt[-1].sym->name);
1026: argcount(yypvt[-1].sym->u.fu->nrparams, yypvt[-0].node, yypvt[-1].sym->name);
1027: usednew += yypvt[-1].sym->u.fu->usednew;
1028: usedold += yypvt[-1].sym->u.fu->usedold;
1029: yyval.node = new(OCALL, yypvt[-0].node, Z, yypvt[-1].sym->u.fu->fct);
1030: } break;
1031: case 139:
1032: # line 252 "x.y"
1033: { argcount(yypvt[-1].sym->u.bl->nrparams, yypvt[-0].node, yypvt[-1].sym->name);
1034: usednew += yypvt[-1].sym->u.bl->usednew;
1035: yyval.node = new(CCALL, yypvt[-0].node, Z, yypvt[-1].sym->u.bl->faddr);
1036: } break;
1037: case 140:
1038: # line 257 "x.y"
1039: { yyval.resu = yypvt[-0].resu; } break;
1040: case 141:
1041: # line 258 "x.y"
1042: { yyval.resu = -yypvt[-0].resu; } break;
1043: case 142:
1044: # line 260 "x.y"
1045: { yyval.resu = yypvt[-0].resu; } break;
1046: case 143:
1047: # line 261 "x.y"
1048: { yyval.resu = yypvt[-0].sym->u.val; } break;
1049: case 144:
1050: # line 262 "x.y"
1051: { compile(yypvt[-0].node, progr); yyval.resu = callit(); } break;
1052: case 145:
1053: # line 264 "x.y"
1054: { yyval.node = yypvt[-0].node; } break;
1055: case 146:
1056: # line 265 "x.y"
1057: { yyval.node = yypvt[-0].node; } break;
1058: case 147:
1059: # line 266 "x.y"
1060: { yyval.node = yypvt[-1].node; } break;
1061: case 148:
1062: # line 267 "x.y"
1063: { yyval.node = new(COMP, yypvt[-1].node, Z, Z); } break;
1064: case 149:
1065: # line 268 "x.y"
1066: { yyval.node = NR(yypvt[-0].resu); } break;
1067: case 150:
1068: # line 269 "x.y"
1069: { yyval.node = NR(yypvt[-0].resu); } break;
1070: case 151:
1071: # line 270 "x.y"
1072: { yyval.node = new(CONDI, yypvt[-2].node, yypvt[-0].node, yypvt[-4].node); } break;
1073: case 152:
1074: # line 271 "x.y"
1075: { yyval.node = new(OMINUS, yypvt[-0].node, Z, Z); } break;
1076: case 153:
1077: # line 272 "x.y"
1078: { yyval.node = new(ONEG, yypvt[-0].node, Z, Z); } break;
1079: case 154:
1080: # line 273 "x.y"
1081: { yyval.node = new(ONOT, yypvt[-0].node, Z, Z); } break;
1082: case 155:
1083: # line 274 "x.y"
1084: { yyval.node = notnew(OADD, yypvt[-2].node, yypvt[-0].node); } break;
1085: case 156:
1086: # line 275 "x.y"
1087: { yyval.node = notnew(OSUB, yypvt[-2].node, yypvt[-0].node); } break;
1088: case 157:
1089: # line 276 "x.y"
1090: { yyval.node = notnew(OMUL, yypvt[-2].node, yypvt[-0].node); } break;
1091: case 158:
1092: # line 277 "x.y"
1093: { yyval.node = notnew(DIVV, yypvt[-2].node, yypvt[-0].node); } break;
1094: case 159:
1095: # line 278 "x.y"
1096: { yyval.node = notnew(MODU, yypvt[-2].node, yypvt[-0].node); } break;
1097: case 160:
1098: # line 279 "x.y"
1099: { yyval.node = notnew(OXOR, yypvt[-2].node, yypvt[-0].node); } break;
1100: case 161:
1101: # line 280 "x.y"
1102: { yyval.node = notnew(OPOW, yypvt[-2].node, yypvt[-0].node); } break;
1103: case 162:
1104: # line 281 "x.y"
1105: { yyval.node = notnew(OGT, yypvt[-2].node, yypvt[-0].node); } break;
1106: case 163:
1107: # line 282 "x.y"
1108: { yyval.node = notnew(OGE, yypvt[-2].node, yypvt[-0].node); } break;
1109: case 164:
1110: # line 283 "x.y"
1111: { yyval.node = notnew(OLT, yypvt[-2].node, yypvt[-0].node); } break;
1112: case 165:
1113: # line 284 "x.y"
1114: { yyval.node = notnew(OLE, yypvt[-2].node, yypvt[-0].node); } break;
1115: case 166:
1116: # line 285 "x.y"
1117: { yyval.node = notnew(OEQ, yypvt[-2].node, yypvt[-0].node); } break;
1118: case 167:
1119: # line 286 "x.y"
1120: { yyval.node = notnew(ONE, yypvt[-2].node, yypvt[-0].node); } break;
1121: case 168:
1122: # line 287 "x.y"
1123: { yyval.node = notnew(OANDAND, yypvt[-2].node, yypvt[-0].node); } break;
1124: case 169:
1125: # line 288 "x.y"
1126: { yyval.node = notnew(OOROR, yypvt[-2].node, yypvt[-0].node); } break;
1127: case 170:
1128: # line 289 "x.y"
1129: { yyval.node = notnew(OOR, yypvt[-2].node, yypvt[-0].node); } break;
1130: case 171:
1131: # line 290 "x.y"
1132: { yyval.node = notnew(OAND, yypvt[-2].node, yypvt[-0].node); } break;
1133: case 172:
1134: # line 291 "x.y"
1135: { yyval.node = notnew(OLSH, yypvt[-2].node, yypvt[-0].node); } break;
1136: case 173:
1137: # line 292 "x.y"
1138: { yyval.node = notnew(OLSH, yypvt[-2].node, notnew(OMINUS, yypvt[-0].node, Z)); } break;
1139: case 174:
1140: # line 294 "x.y"
1141: { usednew=usedold=1; yyval.resu = CURSCRATCH; } break;
1142: case 175:
1143: # line 295 "x.y"
1144: { usedold=1; yyval.resu = CUROLD; } break;
1145: case 176:
1146: # line 296 "x.y"
1147: { usednew=usedold=1; yyval.resu = CURSCRATCH; } break;
1148: case 177:
1149: # line 297 "x.y"
1150: { usedold=1; yyval.resu = CUROLD; } break;
1151: case 178:
1152: # line 298 "x.y"
1153: { int x = yypvt[-0].resu;
1154: if (x < 0 || x > nsrc-2)
1155: yyerror("unknown file number %d", x);
1156: x = (x == 0) ? CUROLD : x+1;
1157: if (x == CUROLD)
1158: usedold=1;
1159: else
1160: src[x].used = 1;
1161: yyval.resu = x;
1162: } break;
1163: case 179:
1164: # line 308 "x.y"
1165: { int x = whatarray(yypvt[-0].sym->name);
1166: if (x <= 0)
1167: x = prepare(yypvt[-0].sym->name);
1168: if (x <= 0)
1169: yyerror("unknown file %s", yypvt[-0].sym->name);
1170: src[x].used = 1;
1171: yyval.resu = x;
1172: } break;
1173: }
1174: goto yystack; /* stack new state and value */
1175: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.