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