Annotation of OpenXM_contrib2/asir2000/parse/y.tab.c, Revision 1.1
1.1 ! noro 1: #ifndef lint
! 2: static char const yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
! 3: #endif
! 4: #include <stdlib.h>
! 5: #define YYBYACC 1
! 6: #define YYMAJOR 1
! 7: #define YYMINOR 9
! 8: #define YYLEX yylex()
! 9: #define YYEMPTY -1
! 10: #define yyclearin (yychar=(YYEMPTY))
! 11: #define yyerrok (yyerrflag=0)
! 12: #define YYRECOVERING (yyerrflag!=0)
! 13: #if defined(c_plusplus) || defined(__cplusplus)
! 14: #include <stdlib.h>
! 15: #else
! 16: extern char *getenv();
! 17: extern void *realloc();
! 18: #endif
! 19: static int yygrowstack();
! 20: #define YYPREFIX "yy"
! 21: #line 3 "parse.y"
! 22: #define malloc(x) GC_malloc(x)
! 23: #define realloc(x,y) GC_realloc(x,y)
! 24: #define free(x) GC_free(x)
! 25:
! 26: #if defined(THINK_C)
! 27: #define alloca(x) GC_malloc(x)
! 28: #endif
! 29: #if defined(TOWNS)
! 30: #include <alloca.h>
! 31: #endif
! 32: #include <ctype.h>
! 33: #include "ca.h"
! 34: #if !defined(THINK_C)
! 35: #include <sys/types.h>
! 36: #include <sys/stat.h>
! 37: #endif
! 38: #include "parse.h"
! 39:
! 40: #define NOPR (prresult=0)
! 41:
! 42: extern int gdef;
! 43: extern SNODE parse_snode;
! 44: extern int main_parser;
! 45:
! 46: int prresult;
! 47:
! 48: static int ind;
! 49: static FNODE t;
! 50: static NODE a,b;
! 51: static NODE2 a2;
! 52: static pointer val;
! 53: extern jmp_buf env;
! 54: #line 39 "parse.y"
! 55: typedef union {
! 56: FNODE f;
! 57: SNODE s;
! 58: NODE n;
! 59: NODE2 n2;
! 60: int i;
! 61: pointer p;
! 62: } YYSTYPE;
! 63: #line 64 "y.tab.c"
! 64: #define STRUCT 257
! 65: #define POINT 258
! 66: #define NEWSTRUCT 259
! 67: #define ANS 260
! 68: #define FDEF 261
! 69: #define PFDEF 262
! 70: #define GLOBAL 263
! 71: #define CMP 264
! 72: #define OR 265
! 73: #define AND 266
! 74: #define CAR 267
! 75: #define CDR 268
! 76: #define DO 269
! 77: #define WHILE 270
! 78: #define FOR 271
! 79: #define IF 272
! 80: #define ELSE 273
! 81: #define BREAK 274
! 82: #define RETURN 275
! 83: #define CONTINUE 276
! 84: #define PARIF 277
! 85: #define MAP 278
! 86: #define TIMER 279
! 87: #define GF2NGEN 280
! 88: #define GFPNGEN 281
! 89: #define GETOPT 282
! 90: #define FOP_AND 283
! 91: #define FOP_OR 284
! 92: #define FOP_IMPL 285
! 93: #define FOP_REPL 286
! 94: #define FOP_EQUIV 287
! 95: #define FOP_NOT 288
! 96: #define LOP 289
! 97: #define FORMULA 290
! 98: #define UCASE 291
! 99: #define LCASE 292
! 100: #define STR 293
! 101: #define SELF 294
! 102: #define BOPASS 295
! 103: #define PLUS 296
! 104: #define MINUS 297
! 105: #define YYERRCODE 256
! 106: const short yylhs[] = { -1,
! 107: 0, 6, 16, 17, 6, 6, 6, 6, 6, 6,
! 108: 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
! 109: 6, 18, 6, 6, 15, 15, 1, 1, 7, 12,
! 110: 12, 12, 13, 13, 11, 11, 8, 8, 9, 9,
! 111: 10, 10, 14, 14, 2, 2, 5, 4, 4, 4,
! 112: 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
! 113: 4, 4, 4, 4, 4, 4, 4, 3, 3, 3,
! 114: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
! 115: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
! 116: 3, 3, 3, 3, 3, 3,
! 117: };
! 118: const short yylen[] = { 2,
! 119: 1, 1, 0, 0, 5, 6, 7, 4, 2, 1,
! 120: 2, 2, 2, 3, 5, 7, 9, 5, 7, 8,
! 121: 5, 0, 10, 2, 1, 1, 0, 1, 3, 0,
! 122: 3, 5, 1, 3, 1, 3, 0, 2, 0, 1,
! 123: 1, 3, 1, 3, 1, 1, 3, 1, 1, 1,
! 124: 1, 1, 1, 4, 6, 7, 4, 6, 8, 6,
! 125: 7, 4, 4, 3, 1, 4, 3, 1, 5, 3,
! 126: 3, 2, 2, 3, 2, 2, 3, 3, 3, 3,
! 127: 3, 3, 3, 2, 3, 3, 2, 3, 3, 3,
! 128: 3, 3, 3, 5, 3, 4,
! 129: };
! 130: const short yydefred[] = { 0,
! 131: 0, 0, 0, 50, 0, 0, 3, 0, 0, 0,
! 132: 0, 0, 0, 0, 0, 0, 0, 0, 0, 51,
! 133: 52, 0, 0, 49, 65, 0, 48, 0, 0, 0,
! 134: 0, 37, 0, 25, 26, 0, 0, 0, 0, 0,
! 135: 1, 10, 2, 24, 45, 46, 0, 0, 22, 0,
! 136: 0, 0, 0, 0, 0, 0, 0, 11, 0, 0,
! 137: 13, 12, 0, 0, 0, 0, 0, 0, 0, 0,
! 138: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 139: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 140: 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 141: 9, 0, 0, 35, 30, 0, 0, 0, 0, 0,
! 142: 0, 0, 0, 0, 0, 0, 0, 14, 0, 0,
! 143: 0, 0, 0, 0, 29, 38, 0, 0, 64, 74,
! 144: 0, 95, 0, 0, 0, 0, 0, 0, 0, 0,
! 145: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 146: 67, 0, 0, 0, 8, 96, 0, 0, 0, 62,
! 147: 63, 0, 0, 0, 0, 0, 0, 0, 0, 57,
! 148: 0, 0, 0, 0, 0, 0, 0, 66, 0, 0,
! 149: 33, 0, 36, 0, 21, 5, 0, 18, 0, 0,
! 150: 54, 0, 0, 0, 0, 0, 0, 43, 0, 0,
! 151: 0, 0, 0, 0, 0, 6, 0, 31, 0, 0,
! 152: 0, 0, 60, 58, 0, 0, 0, 0, 55, 0,
! 153: 0, 0, 7, 34, 28, 0, 19, 0, 16, 0,
! 154: 56, 0, 0, 44, 61, 32, 37, 0, 59, 20,
! 155: 0, 17, 23,
! 156: };
! 157: const short yydgoto[] = { 38,
! 158: 226, 181, 78, 40, 198, 126, 42, 74, 79, 80,
! 159: 106, 153, 182, 199, 43, 51, 159, 108,
! 160: };
! 161: const short yysindex[] = { 119,
! 162: 3, -214, -16, 0, -288, -275, 0, 8, 18, 119,
! 163: 25, 29, 32, 3, 155, 3, 34, 41, 42, 0,
! 164: 0, 44, 458, 0, 0, -25, 0, 458, 458, 458,
! 165: 458, 0, 193, 0, 0, 458, 458, 0, 1376, -84,
! 166: 0, 0, 0, 0, 0, 0, -114, -214, 0, 46,
! 167: -201, 458, 458, -179, 458, 458, 458, 0, -20, 1376,
! 168: 0, 0, -195, -187, 458, -214, 2001, 458, 458, -186,
! 169: 12, 12, -186, 40, -214, 458, 1522, 1943, 17, 63,
! 170: 47, 458, 458, 458, 458, 458, 458, 458, 458, 458,
! 171: 0, 458, 458, 458, 458, 458, 458, 458, 458, 458,
! 172: 0, -214, 458, 0, 0, 7, 70, 72, 458, 71,
! 173: 1675, 1733, 74, 76, 62, 86, 458, 0, 84, 92,
! 174: 1776, 96, 19, -31, 0, 0, 101, 1789, 0, 0,
! 175: 458, 0, -7, 600, 987, 467, 2118, 2056, 1860, 720,
! 176: 757, 1943, 12, 12, -92, -92, -92, -92, 1943, 1826,
! 177: 0, 1853, -122, -148, 0, 0, 458, 104, 3, 0,
! 178: 0, 458, 119, 458, 119, 6, 458, 458, 458, 0,
! 179: 106, 90, -214, 2037, 109, 1943, 458, 0, -214, -17,
! 180: 0, 20, 0, 110, 0, 0, 113, 0, 97, -116,
! 181: 0, 117, 120, 1887, 458, 99, 105, 0, -28, 422,
! 182: -84, 458, 1988, -214, 7, 0, -214, 0, -125, 3,
! 183: 458, 119, 0, 0, 458, 132, 458, 458, 0, -214,
! 184: 135, 20, 0, 0, 0, 57, 0, 141, 0, 1930,
! 185: 0, 1376, 1943, 0, 0, 0, 0, 119, 0, 0,
! 186: 80, 0, 0,
! 187: };
! 188: const short yyrindex[] = { 0,
! 189: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 190: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 191: 0, 0, 0, 0, 0, 1100, 0, 0, 0, 0,
! 192: 0, 0, 0, 0, 0, 93, 121, 0, 0, 526,
! 193: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 194: 0, 0, 0, 0, 146, 137, 146, 0, 489, 0,
! 195: 0, 0, 0, 0, 0, 0, -30, 79, 14, 818,
! 196: 1032, 1209, 846, 0, 0, 0, 0, 88, 0, 435,
! 197: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 198: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 199: 0, 0, 0, 0, 0, 0, 0, 0, 146, 16,
! 200: 0, 0, 0, 0, 0, 0, 14, 0, 0, 0,
! 201: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 202: 0, 0, 1418, 1477, 1464, -36, 1424, 131, 1631, 605,
! 203: 1571, 60, 1267, 1309, 886, 914, 954, 999, 1149, 0,
! 204: 0, 0, 0, 0, 0, 0, 146, 0, 0, 0,
! 205: 0, 146, 0, 137, 0, 0, 146, 146, 0, 0,
! 206: 0, 1361, 0, 0, 0, 397, 0, 0, 0, 0,
! 207: 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
! 208: 0, 0, 0, 0, 146, 0, 0, 0, 0, 0,
! 209: 563, 146, 9, 0, 0, 0, 0, 0, 78, 0,
! 210: 146, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 211: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 212: 0, 0, -23, 0, 0, 0, 0, 0, 0, 0,
! 213: 0, 0, 0,
! 214: };
! 215: const short yygindex[] = { 0,
! 216: 0, 694, 2334, 23, -21, 468, 0, -29, 2398, 0,
! 217: -39, 0, 2, 0, 2309, 0, 0, 0,
! 218: };
! 219: #define YYTABLESIZE 2609
! 220: const short yytable[] = { 88,
! 221: 15, 97, 180, 49, 88, 87, 103, 88, 105, 172,
! 222: 87, 110, 219, 87, 69, 220, 50, 47, 35, 117,
! 223: 47, 88, 88, 48, 88, 88, 88, 87, 87, 98,
! 224: 87, 87, 87, 15, 95, 93, 15, 94, 35, 96,
! 225: 15, 34, 35, 15, 94, 15, 191, 52, 98, 94,
! 226: 154, 4, 94, 95, 39, 35, 88, 53, 96, 15,
! 227: 15, 34, 87, 207, 55, 34, 94, 94, 56, 94,
! 228: 94, 57, 31, 63, 4, 35, 45, 46, 34, 33,
! 229: 64, 65, 29, 66, 30, 109, 97, 88, 88, 104,
! 230: 113, 15, 173, 87, 87, 71, 119, 68, 34, 37,
! 231: 71, 94, 68, 71, 120, 97, 131, 91, 132, 130,
! 232: 156, 157, 31, 162, 154, 35, 163, 71, 71, 33,
! 233: 164, 71, 29, 15, 30, 15, 165, 167, 41, 173,
! 234: 36, 41, 94, 94, 179, 168, 170, 39, 34, 37,
! 235: 205, 174, 183, 171, 185, 195, 41, 196, 202, 41,
! 236: 209, 31, 71, 210, 35, 211, 212, 213, 33, 217,
! 237: 214, 29, 32, 30, 125, 218, 90, 225, 45, 46,
! 238: 36, 90, 231, 102, 90, 235, 104, 34, 37, 237,
! 239: 41, 238, 39, 71, 71, 39, 39, 31, 90, 90,
! 240: 35, 90, 90, 90, 33, 39, 201, 29, 234, 30,
! 241: 27, 91, 32, 39, 243, 222, 0, 241, 0, 36,
! 242: 0, 41, 41, 34, 37, 0, 0, 0, 0, 0,
! 243: 0, 0, 0, 90, 0, 31, 0, 0, 0, 0,
! 244: 0, 0, 33, 0, 76, 29, 0, 30, 0, 0,
! 245: 0, 32, 0, 0, 0, 36, 88, 88, 88, 88,
! 246: 88, 0, 37, 0, 90, 90, 15, 15, 88, 15,
! 247: 15, 15, 15, 15, 87, 0, 0, 15, 15, 15,
! 248: 15, 15, 15, 104, 15, 15, 15, 15, 15, 15,
! 249: 15, 15, 15, 36, 0, 0, 91, 0, 15, 0,
! 250: 15, 15, 15, 15, 15, 1, 2, 0, 3, 4,
! 251: 5, 6, 7, 94, 0, 91, 8, 9, 10, 11,
! 252: 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
! 253: 21, 22, 0, 0, 0, 0, 0, 23, 0, 24,
! 254: 25, 26, 27, 28, 0, 1, 2, 0, 3, 4,
! 255: 5, 6, 7, 0, 0, 0, 8, 9, 10, 11,
! 256: 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
! 257: 21, 22, 0, 0, 0, 0, 0, 23, 0, 24,
! 258: 25, 26, 27, 28, 1, 2, 0, 3, 4, 5,
! 259: 6, 7, 0, 0, 0, 8, 9, 10, 11, 12,
! 260: 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
! 261: 22, 0, 0, 0, 0, 0, 23, 0, 24, 25,
! 262: 26, 27, 28, 3, 4, 90, 90, 90, 0, 0,
! 263: 0, 8, 9, 0, 0, 90, 0, 0, 0, 0,
! 264: 0, 17, 18, 19, 20, 21, 22, 42, 0, 0,
! 265: 42, 0, 23, 0, 24, 25, 59, 27, 28, 75,
! 266: 0, 3, 4, 0, 31, 42, 0, 0, 42, 8,
! 267: 9, 33, 0, 76, 29, 0, 30, 41, 0, 17,
! 268: 18, 19, 20, 21, 22, 40, 0, 54, 0, 0,
! 269: 23, 37, 24, 25, 59, 27, 28, 0, 0, 42,
! 270: 31, 0, 0, 40, 0, 0, 40, 33, 0, 0,
! 271: 29, 0, 30, 98, 0, 0, 0, 0, 95, 93,
! 272: 0, 94, 36, 96, 0, 0, 0, 37, 0, 0,
! 273: 42, 42, 0, 0, 53, 53, 0, 40, 0, 53,
! 274: 53, 53, 53, 53, 0, 53, 0, 0, 0, 0,
! 275: 0, 0, 0, 0, 0, 0, 53, 53, 36, 53,
! 276: 53, 53, 0, 0, 0, 0, 0, 0, 40, 40,
! 277: 97, 68, 68, 0, 0, 0, 68, 68, 68, 68,
! 278: 68, 0, 68, 0, 0, 0, 0, 0, 0, 53,
! 279: 0, 53, 53, 68, 68, 0, 68, 68, 68, 0,
! 280: 0, 0, 0, 0, 0, 0, 0, 0, 69, 69,
! 281: 0, 0, 0, 69, 69, 69, 69, 69, 0, 69,
! 282: 0, 0, 53, 53, 0, 0, 0, 0, 68, 68,
! 283: 69, 69, 0, 69, 69, 69, 0, 0, 0, 0,
! 284: 188, 0, 190, 0, 0, 0, 98, 0, 0, 0,
! 285: 92, 95, 93, 0, 94, 92, 96, 0, 92, 68,
! 286: 68, 0, 0, 0, 0, 69, 69, 0, 0, 0,
! 287: 0, 0, 92, 92, 0, 92, 92, 92, 0, 0,
! 288: 0, 0, 0, 0, 0, 0, 0, 0, 0, 229,
! 289: 3, 4, 0, 0, 0, 0, 69, 69, 8, 9,
! 290: 0, 0, 0, 97, 0, 47, 0, 92, 17, 18,
! 291: 19, 20, 21, 22, 0, 242, 0, 0, 0, 23,
! 292: 0, 24, 25, 59, 27, 28, 3, 4, 0, 0,
! 293: 0, 0, 0, 0, 8, 9, 0, 0, 92, 92,
! 294: 82, 83, 84, 0, 17, 18, 19, 20, 21, 22,
! 295: 0, 107, 0, 0, 0, 23, 53, 24, 25, 59,
! 296: 27, 28, 53, 53, 53, 90, 98, 0, 0, 122,
! 297: 91, 95, 93, 0, 94, 0, 96, 0, 127, 0,
! 298: 0, 53, 53, 53, 53, 53, 0, 53, 0, 0,
! 299: 0, 0, 53, 53, 0, 0, 0, 0, 0, 68,
! 300: 68, 68, 0, 98, 0, 151, 0, 0, 95, 93,
! 301: 0, 94, 0, 96, 0, 0, 0, 0, 68, 68,
! 302: 68, 68, 68, 97, 68, 0, 0, 0, 0, 68,
! 303: 68, 0, 0, 0, 0, 0, 69, 69, 69, 0,
! 304: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 305: 0, 0, 0, 0, 0, 69, 69, 69, 69, 69,
! 306: 97, 69, 0, 73, 73, 0, 69, 69, 73, 73,
! 307: 73, 73, 73, 82, 73, 84, 197, 0, 0, 0,
! 308: 0, 0, 204, 0, 0, 73, 73, 0, 73, 73,
! 309: 73, 84, 84, 0, 0, 0, 84, 84, 84, 84,
! 310: 84, 92, 84, 91, 0, 0, 0, 0, 0, 92,
! 311: 224, 0, 0, 84, 84, 0, 84, 84, 84, 0,
! 312: 73, 73, 0, 197, 0, 0, 0, 0, 0, 0,
! 313: 0, 79, 79, 0, 0, 0, 79, 79, 79, 79,
! 314: 79, 0, 79, 0, 0, 0, 0, 0, 84, 84,
! 315: 0, 73, 73, 79, 79, 0, 79, 79, 79, 80,
! 316: 80, 0, 0, 0, 80, 80, 80, 80, 80, 0,
! 317: 80, 0, 0, 0, 0, 0, 0, 0, 0, 84,
! 318: 84, 80, 80, 0, 80, 80, 80, 0, 79, 0,
! 319: 0, 0, 0, 82, 83, 84, 0, 0, 0, 82,
! 320: 82, 0, 0, 0, 82, 82, 82, 82, 82, 0,
! 321: 82, 0, 85, 86, 87, 88, 80, 0, 90, 79,
! 322: 79, 82, 82, 91, 82, 82, 82, 0, 0, 0,
! 323: 82, 83, 84, 98, 0, 0, 0, 0, 95, 93,
! 324: 0, 94, 0, 96, 81, 81, 0, 80, 80, 81,
! 325: 81, 81, 81, 81, 0, 81, 82, 0, 0, 0,
! 326: 91, 0, 0, 0, 0, 0, 81, 81, 0, 81,
! 327: 81, 81, 0, 0, 0, 0, 0, 75, 0, 0,
! 328: 0, 0, 75, 0, 75, 75, 75, 82, 82, 0,
! 329: 97, 73, 73, 73, 0, 0, 0, 0, 0, 75,
! 330: 75, 81, 75, 75, 75, 0, 0, 0, 0, 0,
! 331: 73, 73, 73, 73, 73, 0, 73, 0, 0, 84,
! 332: 84, 84, 73, 0, 0, 0, 0, 0, 0, 0,
! 333: 0, 0, 81, 81, 75, 0, 0, 0, 84, 84,
! 334: 84, 84, 84, 0, 84, 53, 53, 0, 0, 0,
! 335: 84, 53, 53, 0, 53, 0, 53, 0, 0, 79,
! 336: 79, 79, 0, 0, 0, 75, 75, 0, 53, 0,
! 337: 53, 0, 53, 0, 0, 0, 0, 0, 79, 79,
! 338: 79, 79, 79, 0, 79, 0, 0, 80, 80, 80,
! 339: 79, 0, 0, 0, 70, 0, 0, 0, 0, 70,
! 340: 53, 0, 70, 53, 0, 0, 80, 80, 80, 80,
! 341: 80, 0, 80, 0, 0, 0, 70, 70, 80, 0,
! 342: 70, 0, 0, 0, 0, 0, 0, 82, 82, 82,
! 343: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 344: 0, 0, 0, 0, 0, 0, 82, 82, 82, 82,
! 345: 82, 70, 82, 0, 76, 0, 0, 0, 82, 76,
! 346: 82, 76, 76, 76, 0, 0, 0, 0, 0, 0,
! 347: 0, 0, 81, 81, 81, 0, 76, 76, 0, 76,
! 348: 76, 76, 70, 70, 0, 0, 0, 0, 0, 0,
! 349: 91, 81, 81, 81, 81, 81, 0, 81, 0, 0,
! 350: 0, 0, 0, 81, 0, 75, 75, 75, 0, 0,
! 351: 0, 76, 77, 0, 0, 0, 0, 77, 0, 77,
! 352: 77, 77, 0, 0, 75, 75, 75, 75, 75, 0,
! 353: 75, 0, 0, 0, 77, 77, 75, 77, 77, 77,
! 354: 0, 0, 76, 76, 0, 0, 0, 0, 0, 0,
! 355: 0, 0, 0, 0, 78, 0, 0, 0, 0, 78,
! 356: 0, 78, 78, 78, 0, 0, 0, 53, 0, 77,
! 357: 0, 0, 0, 53, 53, 53, 78, 78, 0, 78,
! 358: 78, 78, 0, 0, 0, 0, 0, 0, 0, 0,
! 359: 0, 0, 53, 53, 53, 53, 53, 0, 53, 0,
! 360: 77, 77, 0, 53, 53, 0, 54, 54, 0, 0,
! 361: 0, 78, 54, 54, 0, 54, 0, 54, 0, 0,
! 362: 0, 35, 98, 0, 0, 0, 0, 95, 93, 54,
! 363: 94, 54, 96, 54, 0, 0, 0, 0, 0, 0,
! 364: 0, 0, 78, 78, 34, 0, 99, 0, 100, 0,
! 365: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 366: 0, 54, 0, 83, 54, 0, 0, 0, 83, 89,
! 367: 0, 83, 0, 0, 89, 0, 0, 89, 0, 97,
! 368: 0, 0, 76, 76, 76, 83, 83, 0, 83, 83,
! 369: 83, 89, 89, 0, 89, 89, 89, 0, 0, 0,
! 370: 0, 76, 76, 76, 76, 76, 0, 76, 0, 86,
! 371: 0, 0, 0, 76, 86, 0, 0, 86, 0, 0,
! 372: 83, 0, 85, 0, 0, 0, 89, 85, 0, 0,
! 373: 85, 86, 86, 0, 86, 86, 86, 0, 0, 0,
! 374: 77, 77, 77, 0, 85, 85, 0, 85, 85, 85,
! 375: 0, 83, 83, 0, 0, 0, 0, 89, 89, 77,
! 376: 77, 77, 77, 77, 0, 77, 86, 0, 98, 0,
! 377: 0, 77, 129, 95, 93, 0, 94, 0, 96, 85,
! 378: 0, 0, 78, 78, 78, 0, 0, 0, 0, 0,
! 379: 0, 0, 99, 0, 100, 0, 0, 86, 86, 0,
! 380: 0, 78, 78, 78, 78, 78, 0, 78, 0, 0,
! 381: 85, 85, 0, 78, 0, 0, 93, 0, 0, 0,
! 382: 0, 93, 0, 0, 93, 97, 0, 0, 54, 0,
! 383: 0, 0, 0, 0, 54, 54, 54, 0, 93, 93,
! 384: 0, 93, 93, 93, 0, 0, 0, 0, 0, 82,
! 385: 83, 84, 0, 54, 54, 54, 54, 54, 0, 54,
! 386: 0, 0, 0, 0, 54, 54, 0, 0, 85, 86,
! 387: 87, 88, 89, 93, 90, 0, 91, 0, 0, 91,
! 388: 92, 91, 0, 0, 91, 0, 0, 0, 0, 0,
! 389: 0, 83, 83, 83, 0, 0, 0, 0, 91, 91,
! 390: 0, 91, 91, 91, 93, 93, 0, 0, 0, 0,
! 391: 83, 83, 83, 83, 83, 0, 83, 89, 89, 89,
! 392: 89, 98, 83, 0, 0, 160, 95, 93, 89, 94,
! 393: 0, 96, 0, 91, 0, 0, 0, 0, 86, 86,
! 394: 0, 0, 0, 0, 0, 99, 0, 100, 0, 0,
! 395: 0, 85, 0, 0, 0, 0, 86, 86, 86, 86,
! 396: 86, 0, 86, 0, 91, 91, 0, 0, 86, 85,
! 397: 85, 85, 85, 85, 0, 85, 0, 0, 97, 98,
! 398: 0, 85, 0, 161, 95, 93, 0, 94, 0, 96,
! 399: 0, 0, 0, 0, 0, 82, 83, 84, 0, 0,
! 400: 0, 0, 0, 99, 0, 100, 0, 0, 0, 0,
! 401: 0, 0, 0, 0, 85, 86, 87, 88, 89, 0,
! 402: 90, 0, 98, 0, 0, 91, 92, 95, 93, 169,
! 403: 94, 0, 96, 0, 0, 98, 97, 0, 0, 175,
! 404: 95, 93, 0, 94, 0, 96, 99, 0, 100, 0,
! 405: 0, 0, 0, 0, 0, 0, 0, 0, 0, 99,
! 406: 0, 100, 0, 93, 93, 93, 93, 93, 0, 93,
! 407: 0, 0, 98, 0, 0, 93, 0, 95, 93, 97,
! 408: 94, 0, 96, 0, 0, 0, 0, 0, 0, 0,
! 409: 0, 0, 97, 177, 0, 0, 99, 0, 100, 98,
! 410: 0, 0, 0, 0, 95, 93, 98, 94, 0, 96,
! 411: 0, 95, 93, 0, 94, 0, 96, 0, 0, 0,
! 412: 0, 0, 0, 99, 0, 100, 91, 91, 0, 97,
! 413: 0, 0, 0, 98, 0, 91, 0, 0, 95, 93,
! 414: 215, 94, 0, 96, 0, 0, 0, 0, 82, 83,
! 415: 84, 0, 0, 0, 0, 178, 97, 99, 0, 100,
! 416: 0, 0, 0, 97, 0, 0, 0, 85, 86, 87,
! 417: 88, 89, 0, 90, 0, 0, 98, 0, 91, 92,
! 418: 239, 95, 93, 0, 94, 0, 96, 0, 0, 98,
! 419: 97, 0, 0, 0, 95, 93, 0, 94, 0, 96,
! 420: 99, 0, 100, 0, 0, 0, 82, 83, 84, 0,
! 421: 0, 0, 0, 99, 0, 100, 0, 0, 0, 0,
! 422: 0, 0, 0, 0, 0, 85, 86, 87, 88, 89,
! 423: 0, 90, 0, 97, 98, 0, 91, 92, 0, 95,
! 424: 93, 0, 94, 0, 96, 0, 97, 98, 0, 82,
! 425: 83, 84, 95, 93, 0, 94, 0, 96, 0, 0,
! 426: 100, 0, 82, 83, 84, 0, 0, 0, 85, 86,
! 427: 87, 88, 89, 0, 90, 0, 0, 0, 0, 91,
! 428: 92, 85, 86, 87, 88, 89, 200, 90, 0, 0,
! 429: 0, 97, 91, 92, 0, 0, 0, 0, 0, 82,
! 430: 83, 84, 98, 0, 97, 0, 0, 95, 93, 0,
! 431: 94, 0, 96, 0, 0, 0, 0, 0, 85, 86,
! 432: 87, 88, 89, 0, 90, 0, 82, 83, 84, 91,
! 433: 92, 0, 0, 82, 83, 84, 0, 0, 0, 0,
! 434: 0, 0, 0, 0, 0, 85, 86, 87, 88, 89,
! 435: 0, 90, 85, 86, 87, 0, 91, 92, 90, 97,
! 436: 82, 83, 84, 91, 98, 0, 0, 0, 0, 95,
! 437: 93, 0, 94, 0, 96, 0, 0, 0, 0, 85,
! 438: 86, 87, 88, 89, 0, 90, 0, 0, 0, 0,
! 439: 91, 92, 0, 0, 0, 0, 0, 0, 0, 0,
! 440: 0, 0, 0, 82, 83, 84, 0, 0, 0, 0,
! 441: 0, 0, 0, 0, 0, 0, 82, 83, 84, 0,
! 442: 0, 97, 85, 86, 87, 88, 89, 0, 90, 0,
! 443: 0, 0, 0, 91, 92, 85, 86, 87, 88, 89,
! 444: 0, 90, 0, 0, 0, 0, 91, 92, 0, 0,
! 445: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 446: 0, 82, 83, 84, 0, 0, 0, 0, 0, 0,
! 447: 0, 0, 0, 0, 82, 83, 84, 0, 0, 0,
! 448: 85, 86, 87, 88, 89, 0, 90, 0, 0, 0,
! 449: 0, 91, 0, 85, 86, 87, 88, 89, 0, 90,
! 450: 0, 0, 0, 0, 91, 0, 4, 0, 0, 0,
! 451: 0, 0, 0, 8, 9, 0, 0, 0, 0, 44,
! 452: 0, 0, 0, 17, 18, 19, 20, 21, 22, 82,
! 453: 83, 84, 58, 61, 62, 0, 24, 25, 59, 27,
! 454: 0, 0, 0, 39, 0, 0, 0, 0, 85, 86,
! 455: 0, 0, 0, 39, 90, 0, 0, 101, 60, 91,
! 456: 0, 0, 0, 0, 0, 0, 67, 0, 0, 0,
! 457: 0, 70, 71, 72, 73, 0, 77, 0, 118, 0,
! 458: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 459: 0, 82, 83, 84, 0, 111, 112, 0, 0, 0,
! 460: 0, 0, 0, 0, 0, 0, 0, 0, 121, 0,
! 461: 85, 0, 0, 0, 0, 0, 90, 39, 0, 128,
! 462: 0, 91, 0, 0, 155, 133, 134, 135, 136, 137,
! 463: 138, 139, 140, 141, 0, 142, 143, 144, 145, 146,
! 464: 147, 148, 149, 150, 81, 0, 152, 0, 0, 0,
! 465: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 466: 0, 0, 114, 115, 116, 0, 0, 0, 0, 0,
! 467: 0, 0, 0, 0, 176, 123, 124, 186, 0, 0,
! 468: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 469: 0, 0, 0, 0, 0, 0, 0, 0, 206, 0,
! 470: 208, 0, 0, 0, 0, 0, 39, 0, 39, 0,
! 471: 0, 0, 194, 0, 0, 0, 158, 0, 0, 0,
! 472: 203, 0, 0, 223, 166, 0, 0, 0, 227, 0,
! 473: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 474: 236, 0, 0, 77, 0, 0, 0, 0, 0, 0,
! 475: 240, 0, 0, 0, 0, 39, 0, 0, 230, 0,
! 476: 232, 233, 0, 0, 184, 0, 0, 0, 0, 187,
! 477: 0, 189, 0, 0, 192, 193, 0, 0, 0, 0,
! 478: 0, 39, 0, 0, 39, 0, 0, 0, 0, 0,
! 479: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 480: 0, 0, 216, 0, 0, 0, 0, 0, 0, 221,
! 481: 0, 0, 0, 0, 0, 0, 0, 0, 228,
! 482: };
! 483: const short yycheck[] = { 36,
! 484: 0, 94, 125, 292, 41, 36, 91, 44, 123, 41,
! 485: 41, 51, 41, 44, 40, 44, 292, 41, 36, 40,
! 486: 44, 58, 59, 40, 61, 62, 63, 58, 59, 37,
! 487: 61, 62, 63, 33, 42, 43, 36, 45, 36, 47,
! 488: 40, 59, 36, 43, 36, 45, 41, 40, 37, 41,
! 489: 44, 36, 44, 42, 41, 36, 93, 40, 47, 59,
! 490: 60, 59, 93, 44, 40, 59, 58, 59, 40, 61,
! 491: 62, 40, 33, 40, 59, 36, 291, 292, 59, 40,
! 492: 40, 40, 43, 40, 45, 40, 94, 124, 125, 291,
! 493: 270, 91, 124, 124, 125, 36, 292, 123, 59, 60,
! 494: 41, 93, 123, 44, 292, 94, 44, 294, 62, 93,
! 495: 41, 40, 33, 40, 44, 36, 41, 58, 59, 40,
! 496: 59, 62, 43, 123, 45, 125, 41, 44, 41, 124,
! 497: 91, 44, 124, 125, 257, 44, 41, 124, 59, 60,
! 498: 180, 41, 291, 125, 41, 40, 59, 58, 40, 62,
! 499: 41, 33, 93, 41, 36, 59, 273, 41, 40, 61,
! 500: 41, 43, 123, 45, 125, 61, 36, 293, 291, 292,
! 501: 91, 41, 41, 258, 44, 41, 291, 59, 60, 123,
! 502: 93, 41, 62, 124, 125, 93, 41, 33, 58, 59,
! 503: 36, 61, 62, 63, 40, 59, 174, 43, 220, 45,
! 504: 123, 294, 123, 125, 125, 204, -1, 237, -1, 91,
! 505: -1, 124, 125, 59, 60, -1, -1, -1, -1, -1,
! 506: -1, -1, -1, 93, -1, 33, -1, -1, -1, -1,
! 507: -1, -1, 40, -1, 42, 43, -1, 45, -1, -1,
! 508: -1, 123, -1, -1, -1, 91, 283, 284, 285, 286,
! 509: 287, -1, 60, -1, 124, 125, 256, 257, 295, 259,
! 510: 260, 261, 262, 263, 295, -1, -1, 267, 268, 269,
! 511: 270, 271, 272, 291, 274, 275, 276, 277, 278, 279,
! 512: 280, 281, 282, 91, -1, -1, 294, -1, 288, -1,
! 513: 290, 291, 292, 293, 294, 256, 257, -1, 259, 260,
! 514: 261, 262, 263, 295, -1, 294, 267, 268, 269, 270,
! 515: 271, 272, -1, 274, 275, 276, 277, 278, 279, 280,
! 516: 281, 282, -1, -1, -1, -1, -1, 288, -1, 290,
! 517: 291, 292, 293, 294, -1, 256, 257, -1, 259, 260,
! 518: 261, 262, 263, -1, -1, -1, 267, 268, 269, 270,
! 519: 271, 272, -1, 274, 275, 276, 277, 278, 279, 280,
! 520: 281, 282, -1, -1, -1, -1, -1, 288, -1, 290,
! 521: 291, 292, 293, 294, 256, 257, -1, 259, 260, 261,
! 522: 262, 263, -1, -1, -1, 267, 268, 269, 270, 271,
! 523: 272, -1, 274, 275, 276, 277, 278, 279, 280, 281,
! 524: 282, -1, -1, -1, -1, -1, 288, -1, 290, 291,
! 525: 292, 293, 294, 259, 260, 285, 286, 287, -1, -1,
! 526: -1, 267, 268, -1, -1, 295, -1, -1, -1, -1,
! 527: -1, 277, 278, 279, 280, 281, 282, 41, -1, -1,
! 528: 44, -1, 288, -1, 290, 291, 292, 293, 294, 257,
! 529: -1, 259, 260, -1, 33, 59, -1, -1, 62, 267,
! 530: 268, 40, -1, 42, 43, -1, 45, 0, -1, 277,
! 531: 278, 279, 280, 281, 282, 41, -1, 10, -1, -1,
! 532: 288, 60, 290, 291, 292, 293, 294, -1, -1, 93,
! 533: 33, -1, -1, 59, -1, -1, 62, 40, -1, -1,
! 534: 43, -1, 45, 37, -1, -1, -1, -1, 42, 43,
! 535: -1, 45, 91, 47, -1, -1, -1, 60, -1, -1,
! 536: 124, 125, -1, -1, 36, 37, -1, 93, -1, 41,
! 537: 42, 43, 44, 45, -1, 47, -1, -1, -1, -1,
! 538: -1, -1, -1, -1, -1, -1, 58, 59, 91, 61,
! 539: 62, 63, -1, -1, -1, -1, -1, -1, 124, 125,
! 540: 94, 36, 37, -1, -1, -1, 41, 42, 43, 44,
! 541: 45, -1, 47, -1, -1, -1, -1, -1, -1, 91,
! 542: -1, 93, 94, 58, 59, -1, 61, 62, 63, -1,
! 543: -1, -1, -1, -1, -1, -1, -1, -1, 36, 37,
! 544: -1, -1, -1, 41, 42, 43, 44, 45, -1, 47,
! 545: -1, -1, 124, 125, -1, -1, -1, -1, 93, 94,
! 546: 58, 59, -1, 61, 62, 63, -1, -1, -1, -1,
! 547: 163, -1, 165, -1, -1, -1, 37, -1, -1, -1,
! 548: 36, 42, 43, -1, 45, 41, 47, -1, 44, 124,
! 549: 125, -1, -1, -1, -1, 93, 94, -1, -1, -1,
! 550: -1, -1, 58, 59, -1, 61, 62, 63, -1, -1,
! 551: -1, -1, -1, -1, -1, -1, -1, -1, -1, 212,
! 552: 259, 260, -1, -1, -1, -1, 124, 125, 267, 268,
! 553: -1, -1, -1, 94, -1, 2, -1, 93, 277, 278,
! 554: 279, 280, 281, 282, -1, 238, -1, -1, -1, 288,
! 555: -1, 290, 291, 292, 293, 294, 259, 260, -1, -1,
! 556: -1, -1, -1, -1, 267, 268, -1, -1, 124, 125,
! 557: 264, 265, 266, -1, 277, 278, 279, 280, 281, 282,
! 558: -1, 48, -1, -1, -1, 288, 258, 290, 291, 292,
! 559: 293, 294, 264, 265, 266, 289, 37, -1, -1, 66,
! 560: 294, 42, 43, -1, 45, -1, 47, -1, 75, -1,
! 561: -1, 283, 284, 285, 286, 287, -1, 289, -1, -1,
! 562: -1, -1, 294, 295, -1, -1, -1, -1, -1, 264,
! 563: 265, 266, -1, 37, -1, 102, -1, -1, 42, 43,
! 564: -1, 45, -1, 47, -1, -1, -1, -1, 283, 284,
! 565: 285, 286, 287, 94, 289, -1, -1, -1, -1, 294,
! 566: 295, -1, -1, -1, -1, -1, 264, 265, 266, -1,
! 567: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 568: -1, -1, -1, -1, -1, 283, 284, 285, 286, 287,
! 569: 94, 289, -1, 36, 37, -1, 294, 295, 41, 42,
! 570: 43, 44, 45, 264, 47, 266, 173, -1, -1, -1,
! 571: -1, -1, 179, -1, -1, 58, 59, -1, 61, 62,
! 572: 63, 36, 37, -1, -1, -1, 41, 42, 43, 44,
! 573: 45, 287, 47, 294, -1, -1, -1, -1, -1, 295,
! 574: 207, -1, -1, 58, 59, -1, 61, 62, 63, -1,
! 575: 93, 94, -1, 220, -1, -1, -1, -1, -1, -1,
! 576: -1, 36, 37, -1, -1, -1, 41, 42, 43, 44,
! 577: 45, -1, 47, -1, -1, -1, -1, -1, 93, 94,
! 578: -1, 124, 125, 58, 59, -1, 61, 62, 63, 36,
! 579: 37, -1, -1, -1, 41, 42, 43, 44, 45, -1,
! 580: 47, -1, -1, -1, -1, -1, -1, -1, -1, 124,
! 581: 125, 58, 59, -1, 61, 62, 63, -1, 93, -1,
! 582: -1, -1, -1, 264, 265, 266, -1, -1, -1, 36,
! 583: 37, -1, -1, -1, 41, 42, 43, 44, 45, -1,
! 584: 47, -1, 283, 284, 285, 286, 93, -1, 289, 124,
! 585: 125, 58, 59, 294, 61, 62, 63, -1, -1, -1,
! 586: 264, 265, 266, 37, -1, -1, -1, -1, 42, 43,
! 587: -1, 45, -1, 47, 36, 37, -1, 124, 125, 41,
! 588: 42, 43, 44, 45, -1, 47, 93, -1, -1, -1,
! 589: 294, -1, -1, -1, -1, -1, 58, 59, -1, 61,
! 590: 62, 63, -1, -1, -1, -1, -1, 36, -1, -1,
! 591: -1, -1, 41, -1, 43, 44, 45, 124, 125, -1,
! 592: 94, 264, 265, 266, -1, -1, -1, -1, -1, 58,
! 593: 59, 93, 61, 62, 63, -1, -1, -1, -1, -1,
! 594: 283, 284, 285, 286, 287, -1, 289, -1, -1, 264,
! 595: 265, 266, 295, -1, -1, -1, -1, -1, -1, -1,
! 596: -1, -1, 124, 125, 93, -1, -1, -1, 283, 284,
! 597: 285, 286, 287, -1, 289, 36, 37, -1, -1, -1,
! 598: 295, 42, 43, -1, 45, -1, 47, -1, -1, 264,
! 599: 265, 266, -1, -1, -1, 124, 125, -1, 59, -1,
! 600: 61, -1, 63, -1, -1, -1, -1, -1, 283, 284,
! 601: 285, 286, 287, -1, 289, -1, -1, 264, 265, 266,
! 602: 295, -1, -1, -1, 36, -1, -1, -1, -1, 41,
! 603: 91, -1, 44, 94, -1, -1, 283, 284, 285, 286,
! 604: 287, -1, 289, -1, -1, -1, 58, 59, 295, -1,
! 605: 62, -1, -1, -1, -1, -1, -1, 264, 265, 266,
! 606: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 607: -1, -1, -1, -1, -1, -1, 283, 284, 285, 286,
! 608: 287, 93, 289, -1, 36, -1, -1, -1, 295, 41,
! 609: 264, 43, 44, 45, -1, -1, -1, -1, -1, -1,
! 610: -1, -1, 264, 265, 266, -1, 58, 59, -1, 61,
! 611: 62, 63, 124, 125, -1, -1, -1, -1, -1, -1,
! 612: 294, 283, 284, 285, 286, 287, -1, 289, -1, -1,
! 613: -1, -1, -1, 295, -1, 264, 265, 266, -1, -1,
! 614: -1, 93, 36, -1, -1, -1, -1, 41, -1, 43,
! 615: 44, 45, -1, -1, 283, 284, 285, 286, 287, -1,
! 616: 289, -1, -1, -1, 58, 59, 295, 61, 62, 63,
! 617: -1, -1, 124, 125, -1, -1, -1, -1, -1, -1,
! 618: -1, -1, -1, -1, 36, -1, -1, -1, -1, 41,
! 619: -1, 43, 44, 45, -1, -1, -1, 258, -1, 93,
! 620: -1, -1, -1, 264, 265, 266, 58, 59, -1, 61,
! 621: 62, 63, -1, -1, -1, -1, -1, -1, -1, -1,
! 622: -1, -1, 283, 284, 285, 286, 287, -1, 289, -1,
! 623: 124, 125, -1, 294, 295, -1, 36, 37, -1, -1,
! 624: -1, 93, 42, 43, -1, 45, -1, 47, -1, -1,
! 625: -1, 36, 37, -1, -1, -1, -1, 42, 43, 59,
! 626: 45, 61, 47, 63, -1, -1, -1, -1, -1, -1,
! 627: -1, -1, 124, 125, 59, -1, 61, -1, 63, -1,
! 628: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 629: -1, 91, -1, 36, 94, -1, -1, -1, 41, 36,
! 630: -1, 44, -1, -1, 41, -1, -1, 44, -1, 94,
! 631: -1, -1, 264, 265, 266, 58, 59, -1, 61, 62,
! 632: 63, 58, 59, -1, 61, 62, 63, -1, -1, -1,
! 633: -1, 283, 284, 285, 286, 287, -1, 289, -1, 36,
! 634: -1, -1, -1, 295, 41, -1, -1, 44, -1, -1,
! 635: 93, -1, 36, -1, -1, -1, 93, 41, -1, -1,
! 636: 44, 58, 59, -1, 61, 62, 63, -1, -1, -1,
! 637: 264, 265, 266, -1, 58, 59, -1, 61, 62, 63,
! 638: -1, 124, 125, -1, -1, -1, -1, 124, 125, 283,
! 639: 284, 285, 286, 287, -1, 289, 93, -1, 37, -1,
! 640: -1, 295, 41, 42, 43, -1, 45, -1, 47, 93,
! 641: -1, -1, 264, 265, 266, -1, -1, -1, -1, -1,
! 642: -1, -1, 61, -1, 63, -1, -1, 124, 125, -1,
! 643: -1, 283, 284, 285, 286, 287, -1, 289, -1, -1,
! 644: 124, 125, -1, 295, -1, -1, 36, -1, -1, -1,
! 645: -1, 41, -1, -1, 44, 94, -1, -1, 258, -1,
! 646: -1, -1, -1, -1, 264, 265, 266, -1, 58, 59,
! 647: -1, 61, 62, 63, -1, -1, -1, -1, -1, 264,
! 648: 265, 266, -1, 283, 284, 285, 286, 287, -1, 289,
! 649: -1, -1, -1, -1, 294, 295, -1, -1, 283, 284,
! 650: 285, 286, 287, 93, 289, -1, 36, -1, -1, 294,
! 651: 295, 41, -1, -1, 44, -1, -1, -1, -1, -1,
! 652: -1, 264, 265, 266, -1, -1, -1, -1, 58, 59,
! 653: -1, 61, 62, 63, 124, 125, -1, -1, -1, -1,
! 654: 283, 284, 285, 286, 287, -1, 289, 284, 285, 286,
! 655: 287, 37, 295, -1, -1, 41, 42, 43, 295, 45,
! 656: -1, 47, -1, 93, -1, -1, -1, -1, 265, 266,
! 657: -1, -1, -1, -1, -1, 61, -1, 63, -1, -1,
! 658: -1, 265, -1, -1, -1, -1, 283, 284, 285, 286,
! 659: 287, -1, 289, -1, 124, 125, -1, -1, 295, 283,
! 660: 284, 285, 286, 287, -1, 289, -1, -1, 94, 37,
! 661: -1, 295, -1, 41, 42, 43, -1, 45, -1, 47,
! 662: -1, -1, -1, -1, -1, 264, 265, 266, -1, -1,
! 663: -1, -1, -1, 61, -1, 63, -1, -1, -1, -1,
! 664: -1, -1, -1, -1, 283, 284, 285, 286, 287, -1,
! 665: 289, -1, 37, -1, -1, 294, 295, 42, 43, 44,
! 666: 45, -1, 47, -1, -1, 37, 94, -1, -1, 41,
! 667: 42, 43, -1, 45, -1, 47, 61, -1, 63, -1,
! 668: -1, -1, -1, -1, -1, -1, -1, -1, -1, 61,
! 669: -1, 63, -1, 283, 284, 285, 286, 287, -1, 289,
! 670: -1, -1, 37, -1, -1, 295, -1, 42, 43, 94,
! 671: 45, -1, 47, -1, -1, -1, -1, -1, -1, -1,
! 672: -1, -1, 94, 58, -1, -1, 61, -1, 63, 37,
! 673: -1, -1, -1, -1, 42, 43, 37, 45, -1, 47,
! 674: -1, 42, 43, -1, 45, -1, 47, -1, -1, -1,
! 675: -1, -1, -1, 61, -1, 63, 286, 287, -1, 94,
! 676: -1, -1, -1, 37, -1, 295, -1, -1, 42, 43,
! 677: 44, 45, -1, 47, -1, -1, -1, -1, 264, 265,
! 678: 266, -1, -1, -1, -1, 93, 94, 61, -1, 63,
! 679: -1, -1, -1, 94, -1, -1, -1, 283, 284, 285,
! 680: 286, 287, -1, 289, -1, -1, 37, -1, 294, 295,
! 681: 41, 42, 43, -1, 45, -1, 47, -1, -1, 37,
! 682: 94, -1, -1, -1, 42, 43, -1, 45, -1, 47,
! 683: 61, -1, 63, -1, -1, -1, 264, 265, 266, -1,
! 684: -1, -1, -1, 61, -1, 63, -1, -1, -1, -1,
! 685: -1, -1, -1, -1, -1, 283, 284, 285, 286, 287,
! 686: -1, 289, -1, 94, 37, -1, 294, 295, -1, 42,
! 687: 43, -1, 45, -1, 47, -1, 94, 37, -1, 264,
! 688: 265, 266, 42, 43, -1, 45, -1, 47, -1, -1,
! 689: 63, -1, 264, 265, 266, -1, -1, -1, 283, 284,
! 690: 285, 286, 287, -1, 289, -1, -1, -1, -1, 294,
! 691: 295, 283, 284, 285, 286, 287, 40, 289, -1, -1,
! 692: -1, 94, 294, 295, -1, -1, -1, -1, -1, 264,
! 693: 265, 266, 37, -1, 94, -1, -1, 42, 43, -1,
! 694: 45, -1, 47, -1, -1, -1, -1, -1, 283, 284,
! 695: 285, 286, 287, -1, 289, -1, 264, 265, 266, 294,
! 696: 295, -1, -1, 264, 265, 266, -1, -1, -1, -1,
! 697: -1, -1, -1, -1, -1, 283, 284, 285, 286, 287,
! 698: -1, 289, 283, 284, 285, -1, 294, 295, 289, 94,
! 699: 264, 265, 266, 294, 37, -1, -1, -1, -1, 42,
! 700: 43, -1, 45, -1, 47, -1, -1, -1, -1, 283,
! 701: 284, 285, 286, 287, -1, 289, -1, -1, -1, -1,
! 702: 294, 295, -1, -1, -1, -1, -1, -1, -1, -1,
! 703: -1, -1, -1, 264, 265, 266, -1, -1, -1, -1,
! 704: -1, -1, -1, -1, -1, -1, 264, 265, 266, -1,
! 705: -1, 94, 283, 284, 285, 286, 287, -1, 289, -1,
! 706: -1, -1, -1, 294, 295, 283, 284, 285, 286, 287,
! 707: -1, 289, -1, -1, -1, -1, 294, 295, -1, -1,
! 708: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 709: -1, 264, 265, 266, -1, -1, -1, -1, -1, -1,
! 710: -1, -1, -1, -1, 264, 265, 266, -1, -1, -1,
! 711: 283, 284, 285, 286, 287, -1, 289, -1, -1, -1,
! 712: -1, 294, -1, 283, 284, 285, 286, 287, -1, 289,
! 713: -1, -1, -1, -1, 294, -1, 260, -1, -1, -1,
! 714: -1, -1, -1, 267, 268, -1, -1, -1, -1, 1,
! 715: -1, -1, -1, 277, 278, 279, 280, 281, 282, 264,
! 716: 265, 266, 14, 15, 16, -1, 290, 291, 292, 293,
! 717: -1, -1, -1, 0, -1, -1, -1, -1, 283, 284,
! 718: -1, -1, -1, 10, 289, -1, -1, 39, 15, 294,
! 719: -1, -1, -1, -1, -1, -1, 23, -1, -1, -1,
! 720: -1, 28, 29, 30, 31, -1, 33, -1, 60, -1,
! 721: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 722: -1, 264, 265, 266, -1, 52, 53, -1, -1, -1,
! 723: -1, -1, -1, -1, -1, -1, -1, -1, 65, -1,
! 724: 283, -1, -1, -1, -1, -1, 289, 74, -1, 76,
! 725: -1, 294, -1, -1, 106, 82, 83, 84, 85, 86,
! 726: 87, 88, 89, 90, -1, 92, 93, 94, 95, 96,
! 727: 97, 98, 99, 100, 37, -1, 103, -1, -1, -1,
! 728: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 729: -1, -1, 55, 56, 57, -1, -1, -1, -1, -1,
! 730: -1, -1, -1, -1, 131, 68, 69, 159, -1, -1,
! 731: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 732: -1, -1, -1, -1, -1, -1, -1, -1, 180, -1,
! 733: 182, -1, -1, -1, -1, -1, 163, -1, 165, -1,
! 734: -1, -1, 169, -1, -1, -1, 109, -1, -1, -1,
! 735: 177, -1, -1, 205, 117, -1, -1, -1, 210, -1,
! 736: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 737: 222, -1, -1, 200, -1, -1, -1, -1, -1, -1,
! 738: 232, -1, -1, -1, -1, 212, -1, -1, 215, -1,
! 739: 217, 218, -1, -1, 157, -1, -1, -1, -1, 162,
! 740: -1, 164, -1, -1, 167, 168, -1, -1, -1, -1,
! 741: -1, 238, -1, -1, 241, -1, -1, -1, -1, -1,
! 742: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 743: -1, -1, 195, -1, -1, -1, -1, -1, -1, 202,
! 744: -1, -1, -1, -1, -1, -1, -1, -1, 211,
! 745: };
! 746: #define YYFINAL 38
! 747: #ifndef YYDEBUG
! 748: #define YYDEBUG 0
! 749: #elif YYDEBUG
! 750: #include <stdio.h>
! 751: #endif
! 752: #define YYMAXTOKEN 297
! 753: #if YYDEBUG
! 754: const char * const yyname[] = {
! 755: "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
! 756: "'!'",0,0,"'$'","'%'","'&'",0,"'('","')'","'*'","'+'","','","'-'",0,"'/'",0,0,0,
! 757: 0,0,0,0,0,0,0,"':'","';'","'<'","'='","'>'","'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
! 758: 0,0,0,0,0,0,0,0,0,0,0,0,"'['",0,"']'","'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
! 759: 0,0,0,0,0,0,0,0,0,0,"'{'","'|'","'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
! 760: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
! 761: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
! 762: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"STRUCT","POINT",
! 763: "NEWSTRUCT","ANS","FDEF","PFDEF","GLOBAL","CMP","OR","AND","CAR","CDR","DO",
! 764: "WHILE","FOR","IF","ELSE","BREAK","RETURN","CONTINUE","PARIF","MAP","TIMER",
! 765: "GF2NGEN","GFPNGEN","GETOPT","FOP_AND","FOP_OR","FOP_IMPL","FOP_REPL",
! 766: "FOP_EQUIV","FOP_NOT","LOP","FORMULA","UCASE","LCASE","STR","SELF","BOPASS",
! 767: "PLUS","MINUS",
! 768: };
! 769: const char * const yyrule[] = {
! 770: "$accept : start",
! 771: "start : stat",
! 772: "stat : tail",
! 773: "$$1 :",
! 774: "$$2 :",
! 775: "stat : GLOBAL $$1 pvars $$2 tail",
! 776: "stat : STRUCT rawstr '{' fields '}' tail",
! 777: "stat : STRUCT rawstr '{' fields '}' pvars tail",
! 778: "stat : STRUCT rawstr pvars tail",
! 779: "stat : expr tail",
! 780: "stat : complex",
! 781: "stat : BREAK tail",
! 782: "stat : CONTINUE tail",
! 783: "stat : RETURN tail",
! 784: "stat : RETURN expr tail",
! 785: "stat : IF '(' node ')' stat",
! 786: "stat : IF '(' node ')' stat ELSE stat",
! 787: "stat : FOR '(' node ';' node ';' node ')' stat",
! 788: "stat : WHILE '(' node ')' stat",
! 789: "stat : DO stat WHILE '(' node ')' tail",
! 790: "stat : LCASE '(' node ')' ':' '=' expr tail",
! 791: "stat : PFDEF LCASE '(' node ')'",
! 792: "$$3 :",
! 793: "stat : FDEF LCASE $$3 '(' node ')' desc '{' stats '}'",
! 794: "stat : error tail",
! 795: "tail : ';'",
! 796: "tail : '$'",
! 797: "desc :",
! 798: "desc : STR",
! 799: "complex : '{' stats '}'",
! 800: "fields :",
! 801: "fields : fields members tail",
! 802: "fields : fields STRUCT rawstr members tail",
! 803: "members : rawstr",
! 804: "members : members ',' rawstr",
! 805: "pvars : UCASE",
! 806: "pvars : pvars ',' UCASE",
! 807: "stats :",
! 808: "stats : stats stat",
! 809: "node :",
! 810: "node : _node",
! 811: "_node : expr",
! 812: "_node : _node ',' expr",
! 813: "optlist : opt",
! 814: "optlist : optlist ',' opt",
! 815: "rawstr : UCASE",
! 816: "rawstr : LCASE",
! 817: "opt : rawstr '=' expr",
! 818: "pexpr : STR",
! 819: "pexpr : FORMULA",
! 820: "pexpr : ANS",
! 821: "pexpr : GF2NGEN",
! 822: "pexpr : GFPNGEN",
! 823: "pexpr : LCASE",
! 824: "pexpr : LCASE '(' node ')'",
! 825: "pexpr : LCASE '(' node '|' optlist ')'",
! 826: "pexpr : LCASE '{' node '}' '(' node ')'",
! 827: "pexpr : GETOPT '(' rawstr ')'",
! 828: "pexpr : MAP '(' LCASE ',' node ')'",
! 829: "pexpr : TIMER '(' expr ',' expr ',' expr ')'",
! 830: "pexpr : PARIF '(' LCASE ',' node ')'",
! 831: "pexpr : '(' '*' expr ')' '(' node ')'",
! 832: "pexpr : CAR '(' expr ')'",
! 833: "pexpr : CDR '(' expr ')'",
! 834: "pexpr : '(' expr ')'",
! 835: "pexpr : UCASE",
! 836: "pexpr : pexpr '[' expr ']'",
! 837: "pexpr : pexpr POINT rawstr",
! 838: "expr : pexpr",
! 839: "expr : '(' STRUCT rawstr ')' pexpr",
! 840: "expr : expr '=' expr",
! 841: "expr : expr BOPASS expr",
! 842: "expr : expr SELF",
! 843: "expr : SELF expr",
! 844: "expr : '[' node ']'",
! 845: "expr : '+' expr",
! 846: "expr : '-' expr",
! 847: "expr : expr '+' expr",
! 848: "expr : expr '-' expr",
! 849: "expr : expr '*' expr",
! 850: "expr : expr '/' expr",
! 851: "expr : expr '%' expr",
! 852: "expr : expr '^' expr",
! 853: "expr : expr CMP expr",
! 854: "expr : '!' expr",
! 855: "expr : expr OR expr",
! 856: "expr : expr AND expr",
! 857: "expr : FOP_NOT expr",
! 858: "expr : expr FOP_AND expr",
! 859: "expr : expr FOP_OR expr",
! 860: "expr : expr FOP_IMPL expr",
! 861: "expr : expr FOP_REPL expr",
! 862: "expr : expr FOP_EQUIV expr",
! 863: "expr : expr LOP expr",
! 864: "expr : expr '?' expr ':' expr",
! 865: "expr : '<' node '>'",
! 866: "expr : NEWSTRUCT '(' rawstr ')'",
! 867: };
! 868: #endif
! 869: #ifdef YYSTACKSIZE
! 870: #undef YYMAXDEPTH
! 871: #define YYMAXDEPTH YYSTACKSIZE
! 872: #else
! 873: #ifdef YYMAXDEPTH
! 874: #define YYSTACKSIZE YYMAXDEPTH
! 875: #else
! 876: #define YYSTACKSIZE 10000
! 877: #define YYMAXDEPTH 10000
! 878: #endif
! 879: #endif
! 880: #define YYINITSTACKSIZE 200
! 881: int yydebug;
! 882: int yynerrs;
! 883: int yyerrflag;
! 884: int yychar;
! 885: short *yyssp;
! 886: YYSTYPE *yyvsp;
! 887: YYSTYPE yyval;
! 888: YYSTYPE yylval;
! 889: short *yyss;
! 890: short *yysslim;
! 891: YYSTYPE *yyvs;
! 892: int yystacksize;
! 893: /* allocate initial stack or double stack size, up to YYMAXDEPTH */
! 894: static int yygrowstack()
! 895: {
! 896: int newsize, i;
! 897: short *newss;
! 898: YYSTYPE *newvs;
! 899:
! 900: if ((newsize = yystacksize) == 0)
! 901: newsize = YYINITSTACKSIZE;
! 902: else if (newsize >= YYMAXDEPTH)
! 903: return -1;
! 904: else if ((newsize *= 2) > YYMAXDEPTH)
! 905: newsize = YYMAXDEPTH;
! 906: i = yyssp - yyss;
! 907: if ((newss = (short *)realloc(yyss, newsize * sizeof *newss)) == NULL)
! 908: return -1;
! 909: yyss = newss;
! 910: yyssp = newss + i;
! 911: if ((newvs = (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs)) == NULL)
! 912: return -1;
! 913: yyvs = newvs;
! 914: yyvsp = newvs + i;
! 915: yystacksize = newsize;
! 916: yysslim = yyss + newsize - 1;
! 917: return 0;
! 918: }
! 919:
! 920: #define YYABORT goto yyabort
! 921: #define YYREJECT goto yyabort
! 922: #define YYACCEPT goto yyaccept
! 923: #define YYERROR goto yyerrlab
! 924:
! 925: int
! 926: yyparse()
! 927: {
! 928: register int yym, yyn, yystate;
! 929: #if YYDEBUG
! 930: register const char *yys;
! 931:
! 932: if ((yys = getenv("YYDEBUG")))
! 933: {
! 934: yyn = *yys;
! 935: if (yyn >= '0' && yyn <= '9')
! 936: yydebug = yyn - '0';
! 937: }
! 938: #endif
! 939:
! 940: yynerrs = 0;
! 941: yyerrflag = 0;
! 942: yychar = (-1);
! 943:
! 944: if (yyss == NULL && yygrowstack()) goto yyoverflow;
! 945: yyssp = yyss;
! 946: yyvsp = yyvs;
! 947: *yyssp = yystate = 0;
! 948:
! 949: yyloop:
! 950: if ((yyn = yydefred[yystate])) goto yyreduce;
! 951: if (yychar < 0)
! 952: {
! 953: if ((yychar = yylex()) < 0) yychar = 0;
! 954: #if YYDEBUG
! 955: if (yydebug)
! 956: {
! 957: yys = 0;
! 958: if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
! 959: if (!yys) yys = "illegal-symbol";
! 960: printf("%sdebug: state %d, reading %d (%s)\n",
! 961: YYPREFIX, yystate, yychar, yys);
! 962: }
! 963: #endif
! 964: }
! 965: if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
! 966: yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
! 967: {
! 968: #if YYDEBUG
! 969: if (yydebug)
! 970: printf("%sdebug: state %d, shifting to state %d\n",
! 971: YYPREFIX, yystate, yytable[yyn]);
! 972: #endif
! 973: if (yyssp >= yysslim && yygrowstack())
! 974: {
! 975: goto yyoverflow;
! 976: }
! 977: *++yyssp = yystate = yytable[yyn];
! 978: *++yyvsp = yylval;
! 979: yychar = (-1);
! 980: if (yyerrflag > 0) --yyerrflag;
! 981: goto yyloop;
! 982: }
! 983: if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
! 984: yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
! 985: {
! 986: yyn = yytable[yyn];
! 987: goto yyreduce;
! 988: }
! 989: if (yyerrflag) goto yyinrecovery;
! 990: #if defined(lint) || defined(__GNUC__)
! 991: goto yynewerror;
! 992: #endif
! 993: yynewerror:
! 994: yyerror("syntax error");
! 995: #if defined(lint) || defined(__GNUC__)
! 996: goto yyerrlab;
! 997: #endif
! 998: yyerrlab:
! 999: ++yynerrs;
! 1000: yyinrecovery:
! 1001: if (yyerrflag < 3)
! 1002: {
! 1003: yyerrflag = 3;
! 1004: for (;;)
! 1005: {
! 1006: if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
! 1007: yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
! 1008: {
! 1009: #if YYDEBUG
! 1010: if (yydebug)
! 1011: printf("%sdebug: state %d, error recovery shifting\
! 1012: to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
! 1013: #endif
! 1014: if (yyssp >= yysslim && yygrowstack())
! 1015: {
! 1016: goto yyoverflow;
! 1017: }
! 1018: *++yyssp = yystate = yytable[yyn];
! 1019: *++yyvsp = yylval;
! 1020: goto yyloop;
! 1021: }
! 1022: else
! 1023: {
! 1024: #if YYDEBUG
! 1025: if (yydebug)
! 1026: printf("%sdebug: error recovery discarding state %d\n",
! 1027: YYPREFIX, *yyssp);
! 1028: #endif
! 1029: if (yyssp <= yyss) goto yyabort;
! 1030: --yyssp;
! 1031: --yyvsp;
! 1032: }
! 1033: }
! 1034: }
! 1035: else
! 1036: {
! 1037: if (yychar == 0) goto yyabort;
! 1038: #if YYDEBUG
! 1039: if (yydebug)
! 1040: {
! 1041: yys = 0;
! 1042: if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
! 1043: if (!yys) yys = "illegal-symbol";
! 1044: printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
! 1045: YYPREFIX, yystate, yychar, yys);
! 1046: }
! 1047: #endif
! 1048: yychar = (-1);
! 1049: goto yyloop;
! 1050: }
! 1051: yyreduce:
! 1052: #if YYDEBUG
! 1053: if (yydebug)
! 1054: printf("%sdebug: state %d, reducing by rule %d (%s)\n",
! 1055: YYPREFIX, yystate, yyn, yyrule[yyn]);
! 1056: #endif
! 1057: yym = yylen[yyn];
! 1058: yyval = yyvsp[1-yym];
! 1059: switch (yyn)
! 1060: {
! 1061: case 1:
! 1062: #line 85 "parse.y"
! 1063: { parse_snode = yyvsp[0].s; YYACCEPT; }
! 1064: break;
! 1065: case 2:
! 1066: #line 88 "parse.y"
! 1067: { yyval.s = 0; }
! 1068: break;
! 1069: case 3:
! 1070: #line 89 "parse.y"
! 1071: { gdef=1; }
! 1072: break;
! 1073: case 4:
! 1074: #line 89 "parse.y"
! 1075: { gdef=0; }
! 1076: break;
! 1077: case 5:
! 1078: #line 90 "parse.y"
! 1079: { yyval.s = 0; }
! 1080: break;
! 1081: case 6:
! 1082: #line 92 "parse.y"
! 1083: { structdef(yyvsp[-4].p,yyvsp[-2].n); yyval.s = 0; }
! 1084: break;
! 1085: case 7:
! 1086: #line 94 "parse.y"
! 1087: { structdef(yyvsp[-5].p,yyvsp[-3].n); setstruct(yyvsp[-5].p,yyvsp[-1].n); yyval.s = 0; }
! 1088: break;
! 1089: case 8:
! 1090: #line 96 "parse.y"
! 1091: { setstruct(yyvsp[-2].p,yyvsp[-1].n); yyval.s = 0; }
! 1092: break;
! 1093: case 9:
! 1094: #line 98 "parse.y"
! 1095: { yyval.s = mksnode(1,S_SINGLE,yyvsp[-1].f); }
! 1096: break;
! 1097: case 10:
! 1098: #line 100 "parse.y"
! 1099: { yyval.s = yyvsp[0].s; }
! 1100: break;
! 1101: case 11:
! 1102: #line 102 "parse.y"
! 1103: { yyval.s = mksnode(0,S_BREAK); }
! 1104: break;
! 1105: case 12:
! 1106: #line 104 "parse.y"
! 1107: { yyval.s = mksnode(0,S_CONTINUE); }
! 1108: break;
! 1109: case 13:
! 1110: #line 106 "parse.y"
! 1111: { yyval.s = mksnode(1,S_RETURN,0); }
! 1112: break;
! 1113: case 14:
! 1114: #line 108 "parse.y"
! 1115: { yyval.s = mksnode(1,S_RETURN,yyvsp[-1].f); }
! 1116: break;
! 1117: case 15:
! 1118: #line 110 "parse.y"
! 1119: { yyval.s = mksnode(4,S_IFELSE,yyvsp[-4].i,yyvsp[-2].n,yyvsp[0].s,0); yyvsp[0].s?yyval.s->ln=yyvsp[0].s->ln:0; NOPR; }
! 1120: break;
! 1121: case 16:
! 1122: #line 112 "parse.y"
! 1123: { yyval.s = mksnode(4,S_IFELSE,yyvsp[-6].i,yyvsp[-4].n,yyvsp[-2].s,yyvsp[0].s); yyvsp[0].s?yyval.s->ln=yyvsp[0].s->ln:0; NOPR; }
! 1124: break;
! 1125: case 17:
! 1126: #line 114 "parse.y"
! 1127: { yyval.s = mksnode(5,S_FOR,yyvsp[-8].i,yyvsp[-6].n,yyvsp[-4].n?yyvsp[-4].n:ONENODE,yyvsp[-2].n,yyvsp[0].s); yyvsp[0].s?yyval.s->ln=yyvsp[0].s->ln:0; NOPR; }
! 1128: break;
! 1129: case 18:
! 1130: #line 116 "parse.y"
! 1131: { yyval.s = mksnode(5,S_FOR,yyvsp[-4].i,0,yyvsp[-2].n,0,yyvsp[0].s); yyvsp[0].s?yyval.s->ln=yyvsp[0].s->ln:0; NOPR; }
! 1132: break;
! 1133: case 19:
! 1134: #line 118 "parse.y"
! 1135: { yyval.s = mksnode(3,S_DO,yyvsp[-6].i,yyvsp[-5].s,yyvsp[-2].n); }
! 1136: break;
! 1137: case 20:
! 1138: #line 120 "parse.y"
! 1139: { yyval.s = mksnode(3,S_PFDEF,yyvsp[-7].p,yyvsp[-5].n,yyvsp[-1].f); NOPR; }
! 1140: break;
! 1141: case 21:
! 1142: #line 122 "parse.y"
! 1143: { yyval.s = mksnode(3,S_PFDEF,yyvsp[-3].p,yyvsp[-1].n,0); NOPR; }
! 1144: break;
! 1145: case 22:
! 1146: #line 123 "parse.y"
! 1147: { mkpvs(); }
! 1148: break;
! 1149: case 23:
! 1150: #line 124 "parse.y"
! 1151: {
! 1152: mkuf(yyvsp[-8].p,asir_infile->name,yyvsp[-5].n,
! 1153: mksnode(1,S_CPLX,yyvsp[-1].n),yyvsp[-9].i,asir_infile->ln,yyvsp[-3].p);
! 1154: yyval.s = 0; NOPR;
! 1155: }
! 1156: break;
! 1157: case 24:
! 1158: #line 130 "parse.y"
! 1159: { yyerrok; yyval.s = 0; }
! 1160: break;
! 1161: case 25:
! 1162: #line 133 "parse.y"
! 1163: { if ( main_parser ) prresult = 1; }
! 1164: break;
! 1165: case 26:
! 1166: #line 135 "parse.y"
! 1167: { if ( main_parser ) prresult = 0; }
! 1168: break;
! 1169: case 27:
! 1170: #line 137 "parse.y"
! 1171: { yyval.p = 0; }
! 1172: break;
! 1173: case 28:
! 1174: #line 139 "parse.y"
! 1175: { yyval.p = yyvsp[0].p; }
! 1176: break;
! 1177: case 29:
! 1178: #line 142 "parse.y"
! 1179: { yyval.s = mksnode(1,S_CPLX,yyvsp[-1].n); }
! 1180: break;
! 1181: case 30:
! 1182: #line 145 "parse.y"
! 1183: { yyval.n = 0; }
! 1184: break;
! 1185: case 31:
! 1186: #line 147 "parse.y"
! 1187: { MKNODE(a,0,yyvsp[-1].n); appendtonode(yyvsp[-2].n,(pointer)a,&yyval.n); }
! 1188: break;
! 1189: case 32:
! 1190: #line 149 "parse.y"
! 1191: { MKNODE(a,yyvsp[-2].p,yyvsp[-1].n); appendtonode(yyvsp[-4].n,(pointer)a,&yyval.n); }
! 1192: break;
! 1193: case 33:
! 1194: #line 152 "parse.y"
! 1195: { MKNODE(yyval.n,yyvsp[0].p,0); }
! 1196: break;
! 1197: case 34:
! 1198: #line 154 "parse.y"
! 1199: { appendtonode(yyvsp[-2].n,yyvsp[0].p,&yyval.n); }
! 1200: break;
! 1201: case 35:
! 1202: #line 157 "parse.y"
! 1203: { val = (pointer)makepvar(yyvsp[0].p); MKNODE(yyval.n,val,0); }
! 1204: break;
! 1205: case 36:
! 1206: #line 159 "parse.y"
! 1207: { appendtonode(yyvsp[-2].n,(pointer)makepvar(yyvsp[0].p),&yyval.n); }
! 1208: break;
! 1209: case 37:
! 1210: #line 162 "parse.y"
! 1211: { yyval.n = 0; }
! 1212: break;
! 1213: case 38:
! 1214: #line 164 "parse.y"
! 1215: { appendtonode(yyvsp[-1].n,(pointer)yyvsp[0].s,&yyval.n); }
! 1216: break;
! 1217: case 39:
! 1218: #line 167 "parse.y"
! 1219: { yyval.n = 0; }
! 1220: break;
! 1221: case 40:
! 1222: #line 169 "parse.y"
! 1223: { yyval.n = yyvsp[0].n; }
! 1224: break;
! 1225: case 41:
! 1226: #line 172 "parse.y"
! 1227: { MKNODE(yyval.n,yyvsp[0].f,0); }
! 1228: break;
! 1229: case 42:
! 1230: #line 174 "parse.y"
! 1231: { appendtonode(yyvsp[-2].n,(pointer)yyvsp[0].f,&yyval.n); }
! 1232: break;
! 1233: case 43:
! 1234: #line 177 "parse.y"
! 1235: { MKNODE(yyval.n,yyvsp[0].f,0); }
! 1236: break;
! 1237: case 44:
! 1238: #line 179 "parse.y"
! 1239: { appendtonode(yyvsp[-2].n,(pointer)yyvsp[0].f,&yyval.n); }
! 1240: break;
! 1241: case 45:
! 1242: #line 182 "parse.y"
! 1243: { yyval.p = yyvsp[0].p; }
! 1244: break;
! 1245: case 46:
! 1246: #line 184 "parse.y"
! 1247: { yyval.p = yyvsp[0].p; }
! 1248: break;
! 1249: case 47:
! 1250: #line 187 "parse.y"
! 1251: { yyval.f = mkfnode(2,I_OPT,yyvsp[-2].p,yyvsp[0].f); }
! 1252: break;
! 1253: case 48:
! 1254: #line 190 "parse.y"
! 1255: { yyval.f = mkfnode(1,I_STR,yyvsp[0].p); }
! 1256: break;
! 1257: case 49:
! 1258: #line 192 "parse.y"
! 1259: { yyval.f = mkfnode(1,I_FORMULA,yyvsp[0].p); }
! 1260: break;
! 1261: case 50:
! 1262: #line 194 "parse.y"
! 1263: { yyval.f = mkfnode(1,I_ANS,yyvsp[0].i); }
! 1264: break;
! 1265: case 51:
! 1266: #line 196 "parse.y"
! 1267: { yyval.f = mkfnode(0,I_GF2NGEN); }
! 1268: break;
! 1269: case 52:
! 1270: #line 198 "parse.y"
! 1271: { yyval.f = mkfnode(0,I_GFPNGEN); }
! 1272: break;
! 1273: case 53:
! 1274: #line 200 "parse.y"
! 1275: {
! 1276: FUNC f;
! 1277:
! 1278: searchf(noargsysf,yyvsp[0].p,&f);
! 1279: if ( f )
! 1280: yyval.f = mkfnode(2,I_FUNC,f,0);
! 1281: else {
! 1282: searchc(yyvsp[0].p,&f);
! 1283: if ( f )
! 1284: yyval.f = mkfnode(2,I_FUNC,f,mkfnode(1,I_LIST,0));
! 1285: else {
! 1286: searchf(sysf,yyvsp[0].p,&f);
! 1287: if ( !f )
! 1288: searchf(ubinf,yyvsp[0].p,&f);
! 1289: if ( !f )
! 1290: searchpf(yyvsp[0].p,&f);
! 1291: if ( !f )
! 1292: searchf(usrf,yyvsp[0].p,&f);
! 1293: if ( f )
! 1294: makesrvar(f,(P *)&val);
! 1295: else
! 1296: makevar(yyvsp[0].p,(P *)&val);
! 1297: yyval.f = mkfnode(1,I_FORMULA,val);
! 1298: }
! 1299: }
! 1300: }
! 1301: break;
! 1302: case 54:
! 1303: #line 227 "parse.y"
! 1304: {
! 1305: searchf(sysf,yyvsp[-3].p,(FUNC *)&val);
! 1306: if ( !val )
! 1307: searchf(ubinf,yyvsp[-3].p,(FUNC *)&val);
! 1308: if ( !val )
! 1309: searchpf(yyvsp[-3].p,(FUNC *)&val);
! 1310: if ( !val )
! 1311: searchf(usrf,yyvsp[-3].p,(FUNC *)&val);
! 1312: if ( !val )
! 1313: appenduf(yyvsp[-3].p,(FUNC *)&val);
! 1314: yyval.f = mkfnode(2,I_FUNC,val,mkfnode(1,I_LIST,yyvsp[-1].n));
! 1315: }
! 1316: break;
! 1317: case 55:
! 1318: #line 241 "parse.y"
! 1319: {
! 1320: searchf(sysf,yyvsp[-5].p,(FUNC *)&val);
! 1321: if ( !val )
! 1322: searchf(ubinf,yyvsp[-5].p,(FUNC *)&val);
! 1323: if ( !val )
! 1324: searchpf(yyvsp[-5].p,(FUNC *)&val);
! 1325: if ( !val )
! 1326: searchf(usrf,yyvsp[-5].p,(FUNC *)&val);
! 1327: if ( !val )
! 1328: appenduf(yyvsp[-5].p,(FUNC *)&val);
! 1329: yyval.f = mkfnode(3,I_FUNC_OPT,val,
! 1330: mkfnode(1,I_LIST,yyvsp[-3].n),mkfnode(1,I_LIST,yyvsp[-1].n));
! 1331: }
! 1332: break;
! 1333: case 56:
! 1334: #line 255 "parse.y"
! 1335: {
! 1336: searchpf(yyvsp[-6].p,(FUNC *)&val);
! 1337: yyval.f = mkfnode(2,I_PFDERIV,val,mkfnode(1,I_LIST,yyvsp[-1].n),mkfnode(1,I_LIST,yyvsp[-4].n));
! 1338: }
! 1339: break;
! 1340: case 57:
! 1341: #line 260 "parse.y"
! 1342: {
! 1343: yyval.f = mkfnode(2,I_GETOPT,yyvsp[-1].p);
! 1344: }
! 1345: break;
! 1346: case 58:
! 1347: #line 264 "parse.y"
! 1348: {
! 1349: searchf(sysf,yyvsp[-3].p,(FUNC *)&val);
! 1350: if ( !val )
! 1351: searchf(ubinf,yyvsp[-3].p,(FUNC *)&val);
! 1352: if ( !val )
! 1353: searchpf(yyvsp[-3].p,(FUNC *)&val);
! 1354: if ( !val )
! 1355: searchf(usrf,yyvsp[-3].p,(FUNC *)&val);
! 1356: if ( !val )
! 1357: appenduf(yyvsp[-3].p,(FUNC *)&val);
! 1358: yyval.f = mkfnode(2,I_MAP,val,mkfnode(1,I_LIST,yyvsp[-1].n));
! 1359: }
! 1360: break;
! 1361: case 59:
! 1362: #line 277 "parse.y"
! 1363: {
! 1364: yyval.f = mkfnode(3,I_TIMER,yyvsp[-5].f,yyvsp[-3].f,yyvsp[-1].f);
! 1365: }
! 1366: break;
! 1367: case 60:
! 1368: #line 281 "parse.y"
! 1369: {
! 1370: searchf(parif,yyvsp[-3].p,(FUNC *)&val);
! 1371: if ( !val )
! 1372: mkparif(yyvsp[-3].p,(FUNC *)&val);
! 1373: yyval.f = mkfnode(2,I_FUNC,val,mkfnode(1,I_LIST,yyvsp[-1].n));
! 1374: }
! 1375: break;
! 1376: case 61:
! 1377: #line 288 "parse.y"
! 1378: {
! 1379: yyval.f = mkfnode(2,I_IFUNC,yyvsp[-4].f,mkfnode(1,I_LIST,yyvsp[-1].n));
! 1380: }
! 1381: break;
! 1382: case 62:
! 1383: #line 292 "parse.y"
! 1384: { yyval.f = mkfnode(1,I_CAR,yyvsp[-1].f); }
! 1385: break;
! 1386: case 63:
! 1387: #line 294 "parse.y"
! 1388: { yyval.f = mkfnode(1,I_CDR,yyvsp[-1].f); }
! 1389: break;
! 1390: case 64:
! 1391: #line 296 "parse.y"
! 1392: { yyval.f = yyvsp[-1].f; }
! 1393: break;
! 1394: case 65:
! 1395: #line 298 "parse.y"
! 1396: {
! 1397: if ( main_parser )
! 1398: yyval.f = mkfnode(2,I_PVAR,makepvar(yyvsp[0].p),0);
! 1399: else {
! 1400: ind = searchpvar(yyvsp[0].p);
! 1401: if ( ind == -1 ) {
! 1402: fprintf(stderr,"%s : no such variable.\n",yyvsp[0].p);
! 1403: YYABORT;
! 1404: } else
! 1405: yyval.f = mkfnode(2,I_PVAR,ind,0);
! 1406: }
! 1407: }
! 1408: break;
! 1409: case 66:
! 1410: #line 311 "parse.y"
! 1411: {
! 1412: if ( yyvsp[-3].f->id == I_PVAR || yyvsp[-3].f->id == I_INDEX ) {
! 1413: appendtonode((NODE)yyvsp[-3].f->arg[1],(pointer)yyvsp[-1].f,&a);
! 1414: yyvsp[-3].f->arg[1] = (pointer)a; yyval.f = yyvsp[-3].f;
! 1415: } else {
! 1416: MKNODE(a,yyvsp[-1].f,0);
! 1417: yyval.f = mkfnode(2,I_INDEX,(pointer)yyvsp[-3].f,a);
! 1418: }
! 1419: }
! 1420: break;
! 1421: case 67:
! 1422: #line 321 "parse.y"
! 1423: { memberofstruct(yyvsp[-2].f,yyvsp[0].p,&yyval.f); }
! 1424: break;
! 1425: case 68:
! 1426: #line 324 "parse.y"
! 1427: { yyval.f = yyvsp[0].f; }
! 1428: break;
! 1429: case 69:
! 1430: #line 326 "parse.y"
! 1431: { yyval.f = mkfnode(3,I_CAST,structtoindex(yyvsp[-2].p),yyvsp[0].f,0); }
! 1432: break;
! 1433: case 70:
! 1434: #line 328 "parse.y"
! 1435: { yyval.f = mkfnode(2,I_ASSPVAR,yyvsp[-2].f,yyvsp[0].f); }
! 1436: break;
! 1437: case 71:
! 1438: #line 330 "parse.y"
! 1439: { yyval.f = mkfnode(2,I_ASSPVAR,yyvsp[-2].f,mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f)); }
! 1440: break;
! 1441: case 72:
! 1442: #line 332 "parse.y"
! 1443: { yyval.f = mkfnode(2,I_POSTSELF,yyvsp[0].p,yyvsp[-1].f); }
! 1444: break;
! 1445: case 73:
! 1446: #line 334 "parse.y"
! 1447: { yyval.f = mkfnode(2,I_PRESELF,yyvsp[-1].p,yyvsp[0].f); }
! 1448: break;
! 1449: case 74:
! 1450: #line 336 "parse.y"
! 1451: { yyval.f = mkfnode(1,I_LIST,yyvsp[-1].n); }
! 1452: break;
! 1453: case 75:
! 1454: #line 338 "parse.y"
! 1455: { yyval.f = yyvsp[0].f; }
! 1456: break;
! 1457: case 76:
! 1458: #line 340 "parse.y"
! 1459: { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,0,yyvsp[0].f); }
! 1460: break;
! 1461: case 77:
! 1462: #line 342 "parse.y"
! 1463: { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
! 1464: break;
! 1465: case 78:
! 1466: #line 344 "parse.y"
! 1467: { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
! 1468: break;
! 1469: case 79:
! 1470: #line 346 "parse.y"
! 1471: { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
! 1472: break;
! 1473: case 80:
! 1474: #line 348 "parse.y"
! 1475: { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
! 1476: break;
! 1477: case 81:
! 1478: #line 350 "parse.y"
! 1479: { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
! 1480: break;
! 1481: case 82:
! 1482: #line 352 "parse.y"
! 1483: { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
! 1484: break;
! 1485: case 83:
! 1486: #line 354 "parse.y"
! 1487: { yyval.f = mkfnode(3,I_COP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
! 1488: break;
! 1489: case 84:
! 1490: #line 356 "parse.y"
! 1491: { yyval.f = mkfnode(1,I_NOT,yyvsp[0].f); }
! 1492: break;
! 1493: case 85:
! 1494: #line 358 "parse.y"
! 1495: { yyval.f = mkfnode(2,I_OR,yyvsp[-2].f,yyvsp[0].f); }
! 1496: break;
! 1497: case 86:
! 1498: #line 360 "parse.y"
! 1499: { yyval.f = mkfnode(2,I_AND,yyvsp[-2].f,yyvsp[0].f); }
! 1500: break;
! 1501: case 87:
! 1502: #line 362 "parse.y"
! 1503: { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[0].f,0); }
! 1504: break;
! 1505: case 88:
! 1506: #line 364 "parse.y"
! 1507: { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
! 1508: break;
! 1509: case 89:
! 1510: #line 366 "parse.y"
! 1511: { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
! 1512: break;
! 1513: case 90:
! 1514: #line 368 "parse.y"
! 1515: { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
! 1516: break;
! 1517: case 91:
! 1518: #line 370 "parse.y"
! 1519: { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
! 1520: break;
! 1521: case 92:
! 1522: #line 372 "parse.y"
! 1523: { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
! 1524: break;
! 1525: case 93:
! 1526: #line 374 "parse.y"
! 1527: { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
! 1528: break;
! 1529: case 94:
! 1530: #line 376 "parse.y"
! 1531: { yyval.f = mkfnode(3,I_CE,yyvsp[-4].f,yyvsp[-2].f,yyvsp[0].f); }
! 1532: break;
! 1533: case 95:
! 1534: #line 378 "parse.y"
! 1535: { yyval.f = mkfnode(1,I_EV,yyvsp[-1].n); }
! 1536: break;
! 1537: case 96:
! 1538: #line 380 "parse.y"
! 1539: { yyval.f = mkfnode(1,I_NEWCOMP,(int)structtoindex(yyvsp[-1].p)); }
! 1540: break;
! 1541: #line 1540 "y.tab.c"
! 1542: }
! 1543: yyssp -= yym;
! 1544: yystate = *yyssp;
! 1545: yyvsp -= yym;
! 1546: yym = yylhs[yyn];
! 1547: if (yystate == 0 && yym == 0)
! 1548: {
! 1549: #if YYDEBUG
! 1550: if (yydebug)
! 1551: printf("%sdebug: after reduction, shifting from state 0 to\
! 1552: state %d\n", YYPREFIX, YYFINAL);
! 1553: #endif
! 1554: yystate = YYFINAL;
! 1555: *++yyssp = YYFINAL;
! 1556: *++yyvsp = yyval;
! 1557: if (yychar < 0)
! 1558: {
! 1559: if ((yychar = yylex()) < 0) yychar = 0;
! 1560: #if YYDEBUG
! 1561: if (yydebug)
! 1562: {
! 1563: yys = 0;
! 1564: if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
! 1565: if (!yys) yys = "illegal-symbol";
! 1566: printf("%sdebug: state %d, reading %d (%s)\n",
! 1567: YYPREFIX, YYFINAL, yychar, yys);
! 1568: }
! 1569: #endif
! 1570: }
! 1571: if (yychar == 0) goto yyaccept;
! 1572: goto yyloop;
! 1573: }
! 1574: if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
! 1575: yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
! 1576: yystate = yytable[yyn];
! 1577: else
! 1578: yystate = yydgoto[yym];
! 1579: #if YYDEBUG
! 1580: if (yydebug)
! 1581: printf("%sdebug: after reduction, shifting from state %d \
! 1582: to state %d\n", YYPREFIX, *yyssp, yystate);
! 1583: #endif
! 1584: if (yyssp >= yysslim && yygrowstack())
! 1585: {
! 1586: goto yyoverflow;
! 1587: }
! 1588: *++yyssp = yystate;
! 1589: *++yyvsp = yyval;
! 1590: goto yyloop;
! 1591: yyoverflow:
! 1592: yyerror("yacc stack overflow");
! 1593: yyabort:
! 1594: return (1);
! 1595: yyaccept:
! 1596: return (0);
! 1597: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>