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