|
|
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.