home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-387-Vol-3of3.iso
/
p
/
perl4036.zip
/
x2p
/
a2p.c
next >
Wrap
C/C++ Source or Header
|
1993-02-26
|
94KB
|
2,199 lines
/* A Bison parser, made from a2p.y */
#define YYBISON 1 /* Identify Bison output. */
#define BEGIN 258
#define END 259
#define REGEX 260
#define SEMINEW 261
#define NEWLINE 262
#define COMMENT 263
#define FUN1 264
#define FUNN 265
#define GRGR 266
#define PRINT 267
#define PRINTF 268
#define SPRINTF 269
#define SPLIT 270
#define IF 271
#define ELSE 272
#define WHILE 273
#define FOR 274
#define IN 275
#define EXIT 276
#define NEXT 277
#define BREAK 278
#define CONTINUE 279
#define RET 280
#define GETLINE 281
#define DO 282
#define SUB 283
#define GSUB 284
#define MATCH 285
#define FUNCTION 286
#define USERFUN 287
#define DELETE 288
#define ASGNOP 289
#define OROR 290
#define ANDAND 291
#define NUMBER 292
#define VAR 293
#define SUBSTR 294
#define INDEX 295
#define MATCHOP 296
#define RELOP 297
#define OR 298
#define STRING 299
#define UMINUS 300
#define NOT 301
#define INCR 302
#define DECR 303
#define FIELD 304
#define VFIELD 305
#line 1 "a2p.y"
/* $RCSfile: a2p.y,v $$Revision: 4.0.1.2 $$Date: 92/06/08 16:13:03 $
*
* Copyright (c) 1991, Larry Wall
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
*
* $Log: a2p.y,v $
* Revision 4.0.1.2 92/06/08 16:13:03 lwall
* patch20: in a2p, getline should allow variable to be array element
*
* Revision 4.0.1.1 91/06/07 12:12:41 lwall
* patch4: new copyright notice
*
* Revision 4.0 91/03/20 01:57:21 lwall
* 4.0 baseline.
*
*/
#include "INTERN.h"
#include "a2p.h"
int root;
int begins = Nullop;
int ends = Nullop;
#ifndef YYLTYPE
typedef
struct yyltype
{
int timestamp;
int first_line;
int first_column;
int last_line;
int last_column;
char *text;
}
yyltype;
#define YYLTYPE yyltype
#endif
#ifndef YYSTYPE
#define YYSTYPE int
#endif
#include <stdio.h>
#ifndef __STDC__
#define const
#endif
#define YYFINAL 318
#define YYFLAG -32768
#define YYNTBASE 71
#define YYTRANSLATE(x) ((unsigned)(x) <= 305 ? yytranslate[x] : 98)
static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 53, 2, 2, 63,
64, 51, 49, 65, 50, 2, 52, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 36, 69, 45,
2, 46, 35, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
67, 2, 68, 56, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 66, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 61, 70, 62, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 37,
38, 39, 40, 41, 42, 43, 44, 47, 48, 54,
55, 57, 58, 59, 60
};
#if YYDEBUG != 0
static const short yyprhs[] = { 0,
0, 3, 10, 16, 19, 23, 24, 26, 32, 43,
48, 50, 52, 54, 56, 60, 62, 64, 66, 68,
72, 77, 82, 85, 89, 93, 97, 101, 105, 109,
111, 115, 117, 120, 124, 126, 128, 130, 134, 138,
142, 146, 150, 154, 158, 164, 167, 170, 173, 176,
179, 182, 186, 188, 191, 195, 200, 204, 209, 211,
215, 220, 225, 230, 233, 242, 249, 258, 267, 274,
281, 288, 295, 302, 309, 316, 323, 332, 341, 350,
359, 361, 366, 368, 371, 373, 375, 376, 381, 386,
390, 393, 394, 396, 398, 400, 402, 405, 406, 408,
410, 413, 416, 419, 422, 425, 426, 430, 433, 436,
438, 440, 441, 443, 448, 451, 456, 459, 461, 463,
465, 468, 470, 472, 475, 481, 483, 485, 487, 494,
504, 511, 519, 530, 540, 547
};
#endif
static const short yyrhs[] = { 87,
74, 0, 3, 61, 89, 92, 62, 87, 0, 4,
61, 89, 92, 62, 0, 73, 7, 0, 74, 75,
87, 0, 0, 77, 0, 77, 61, 89, 92, 62,
0, 31, 32, 63, 76, 64, 89, 61, 89, 92,
62, 0, 61, 89, 92, 62, 0, 72, 0, 73,
0, 85, 0, 78, 0, 78, 65, 78, 0, 82,
0, 81, 0, 80, 0, 79, 0, 63, 79, 64,
0, 78, 38, 89, 78, 0, 78, 37, 89, 78,
0, 55, 78, 0, 82, 44, 82, 0, 82, 46,
82, 0, 82, 45, 82, 0, 63, 80, 64, 0,
82, 43, 82, 0, 82, 43, 5, 0, 5, 0,
63, 81, 64, 0, 83, 0, 82, 83, 0, 84,
34, 78, 0, 84, 0, 39, 0, 48, 0, 83,
49, 83, 0, 83, 50, 83, 0, 83, 51, 83,
0, 83, 52, 83, 0, 83, 53, 83, 0, 83,
56, 83, 0, 83, 20, 40, 0, 83, 35, 83,
36, 83, 0, 84, 57, 0, 84, 58, 0, 57,
84, 0, 58, 84, 0, 50, 83, 0, 49, 83,
0, 63, 78, 64, 0, 26, 0, 26, 84, 0,
26, 45, 82, 0, 26, 84, 45, 82, 0, 83,
66, 26, 0, 83, 66, 26, 84, 0, 9, 0,
9, 63, 64, 0, 9, 63, 82, 64, 0, 10,
63, 85, 64, 0, 32, 63, 85, 64, 0, 14,
85, 0, 41, 63, 82, 65, 82, 65, 82, 64,
0, 41, 63, 82, 65, 82, 64, 0, 15, 63,
82, 65, 40, 65, 82, 64, 0, 15, 63, 82,
65, 40, 65, 5, 64, 0, 15, 63, 82, 65,
40, 64, 0, 42, 63, 82, 65, 82, 64, 0,
30, 63, 82, 65, 5, 64, 0, 30, 63, 82,
65, 82, 64, 0, 28, 63, 82, 65, 82, 64,
0, 28, 63, 5, 65, 82, 64, 0, 29, 63,
82, 65, 82, 64, 0, 29, 63, 5, 65, 82,
64, 0, 28, 63, 82, 65, 82, 65, 82, 64,
0, 28, 63, 5, 65, 82, 65, 82, 64, 0,
29, 63, 82, 65, 82, 65, 82, 64, 0, 29,
63, 5, 65, 82, 65, 82, 64, 0, 40, 0,
40, 67, 85, 68, 0, 59, 0, 60, 83, 0,
82, 0, 86, 0, 0, 82, 65, 89, 82, 0,
86, 65, 89, 82, 0, 63, 86, 64, 0, 87,
88, 0, 0, 69, 0, 6, 0, 7, 0, 8,
0, 89, 90, 0, 0, 7, 0, 8, 0, 69,
89, 0, 6, 89, 0, 7, 89, 0, 8, 89,
0, 92, 93, 0, 0, 95, 91, 89, 0, 69,
89, 0, 6, 89, 0, 97, 0, 95, 0, 0,
82, 0, 12, 85, 96, 82, 0, 12, 85, 0,
13, 85, 96, 82, 0, 13, 85, 0, 23, 0,
22, 0, 21, 0, 21, 82, 0, 24, 0, 25,
0, 25, 82, 0, 33, 40, 67, 82, 68, 0,
46, 0, 11, 0, 70, 0, 16, 63, 78, 64,
89, 93, 0, 16, 63, 78, 64, 89, 93, 17,
89, 93, 0, 18, 63, 78, 64, 89, 93, 0,
27, 89, 93, 18, 63, 78, 64, 0, 19, 63,
94, 69, 78, 69, 94, 64, 89, 93, 0, 19,
63, 94, 69, 69, 94, 64, 89, 93, 0, 19,
63, 82, 64, 89, 93, 0, 61, 89, 92, 62,
89, 0
};
#if YYDEBUG != 0
static const short yyrline[] = { 0,
59, 63, 68, 70, 74, 76, 80, 82, 84, 86,
88, 89, 92, 96, 98, 102, 103, 104, 105, 109,
111, 113, 115, 119, 121, 123, 125, 129, 131, 133,
135, 139, 141, 143, 152, 154, 156, 158, 160, 162,
164, 166, 168, 170, 172, 174, 176, 178, 180, 182,
184, 186, 188, 190, 192, 195, 198, 201, 204, 206,
208, 210, 212, 214, 216, 218, 220, 222, 224, 226,
228, 230, 232, 234, 236, 238, 240, 242, 244, 246,
250, 252, 254, 256, 261, 262, 263, 267, 269, 271,
275, 277, 281, 283, 285, 287, 291, 293, 297, 299,
304, 306, 308, 310, 314, 316, 321, 323, 325, 327,
330, 331, 336, 337, 343, 348, 353, 357, 359, 361,
363, 365, 367, 369, 371, 375, 377, 379, 384, 386,
388, 390, 392, 394, 396, 398
};
static const char * const yytname[] = { "$","error","$illegal.","BEGIN","END",
"REGEX","SEMINEW","NEWLINE","COMMENT","FUN1","FUNN","GRGR","PRINT","PRINTF",
"SPRINTF","SPLIT","IF","ELSE","WHILE","FOR","IN","EXIT","NEXT","BREAK","CONTINUE",
"RET","GETLINE","DO","SUB","GSUB","MATCH","FUNCTION","USERFUN","DELETE","ASGNOP",
"'?'","':'","OROR","ANDAND","NUMBER","VAR","SUBSTR","INDEX","MATCHOP","RELOP",
"'<'","'>'","OR","STRING","'+'","'-'","'*'","'/'","'%'","UMINUS","NOT","'^'",
"INCR","DECR","FIELD","VFIELD","'{'","'}'","'('","')'","','","'p'","'['","']'",
"';'","'|'","program","begin","end","hunks","hunk","arg_list","patpat","cond",
"compound_cond","rel","match","expr","term","variable","expr_list","clist","junk",
"hunksep","maybe","nlstuff","separator","states","statement","simpnull","simple",
"redir","compound",""
};
#endif
static const short yyr1[] = { 0,
71, 72, 73, 73, 74, 74, 75, 75, 75, 75,
75, 75, 76, 77, 77, 78, 78, 78, 78, 79,
79, 79, 79, 80, 80, 80, 80, 81, 81, 81,
81, 82, 82, 82, 83, 83, 83, 83, 83, 83,
83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
84, 84, 84, 84, 85, 85, 85, 86, 86, 86,
87, 87, 88, 88, 88, 88, 89, 89, 90, 90,
91, 91, 91, 91, 92, 92, 93, 93, 93, 93,
94, 94, 95, 95, 95, 95, 95, 95, 95, 95,
95, 95, 95, 95, 95, 96, 96, 96, 97, 97,
97, 97, 97, 97, 97, 97
};
static const short yyr2[] = { 0,
2, 6, 5, 2, 3, 0, 1, 5, 10, 4,
1, 1, 1, 1, 3, 1, 1, 1, 1, 3,
4, 4, 2, 3, 3, 3, 3, 3, 3, 1,
3, 1, 2, 3, 1, 1, 1, 3, 3, 3,
3, 3, 3, 3, 5, 2, 2, 2, 2, 2,
2, 3, 1, 2, 3, 4, 3, 4, 1, 3,
4, 4, 4, 2, 8, 6, 8, 8, 6, 6,
6, 6, 6, 6, 6, 6, 8, 8, 8, 8,
1, 4, 1, 2, 1, 1, 0, 4, 4, 3,
2, 0, 1, 1, 1, 1, 2, 0, 1, 1,
2, 2, 2, 2, 2, 0, 3, 2, 2, 1,
1, 0, 1, 4, 2, 4, 2, 1, 1, 1,
2, 1, 1, 2, 5, 1, 1, 1, 6, 9,
6, 7, 10, 9, 6, 5
};
static const short yydefact[] = { 92,
6, 94, 95, 96, 93, 1, 91, 0, 0, 30,
59, 0, 87, 0, 53, 0, 0, 0, 0, 0,
36, 81, 0, 0, 37, 0, 0, 0, 0, 0,
83, 0, 98, 0, 11, 12, 92, 7, 14, 19,
18, 17, 16, 32, 35, 98, 98, 0, 87, 0,
85, 64, 86, 0, 0, 54, 0, 0, 0, 0,
87, 87, 0, 0, 0, 51, 35, 50, 23, 48,
49, 84, 106, 0, 19, 18, 17, 4, 5, 98,
98, 98, 0, 0, 0, 0, 0, 33, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 46, 47,
106, 106, 60, 0, 0, 0, 16, 0, 98, 98,
0, 55, 0, 0, 0, 0, 0, 0, 87, 0,
0, 0, 0, 99, 100, 97, 0, 52, 20, 27,
31, 106, 0, 0, 15, 29, 28, 24, 26, 25,
44, 0, 38, 39, 40, 41, 42, 43, 57, 34,
0, 0, 61, 62, 90, 0, 0, 0, 56, 0,
0, 0, 0, 0, 0, 13, 63, 82, 0, 0,
98, 87, 87, 0, 0, 0, 120, 119, 118, 122,
123, 98, 0, 98, 10, 98, 113, 105, 0, 110,
0, 22, 21, 0, 58, 92, 3, 88, 89, 0,
0, 0, 0, 0, 0, 0, 98, 0, 0, 109,
115, 117, 0, 0, 112, 121, 124, 0, 0, 106,
108, 98, 98, 98, 98, 98, 8, 45, 2, 69,
0, 74, 0, 73, 0, 76, 0, 75, 0, 71,
72, 0, 66, 0, 70, 127, 126, 128, 0, 0,
0, 0, 113, 0, 111, 0, 0, 0, 102, 103,
104, 101, 107, 0, 0, 0, 0, 0, 0, 98,
0, 114, 116, 98, 98, 98, 0, 0, 0, 98,
68, 67, 78, 77, 80, 79, 106, 65, 0, 0,
0, 112, 0, 0, 125, 136, 0, 129, 131, 135,
0, 112, 0, 9, 98, 98, 0, 132, 0, 0,
98, 130, 134, 0, 133, 0, 0, 0
};
static const short yydefgoto[] = { 316,
35, 36, 6, 37, 165, 38, 74, 40, 41, 42,
187, 44, 45, 52, 53, 1, 7, 73, 126, 226,
127, 188, 254, 189, 249, 190
};
static const short yypact[] = {-32768,
2,-32768,-32768,-32768,-32768, 1157,-32768, -36, -30,-32768,
-27, -16, 3128, -3, 132, 5, 10, 12, 30, 42,
-32768, 32, 68, 71,-32768, 3180, 3180, 1325, 55, 55,
-32768, 3180,-32768, 1325,-32768, 109,-32768, 80, 0,-32768,
-32768,-32768, 3076, 145, 36,-32768,-32768, 2448, 3128, 1381,
2084,-32768, 1, 3180, 3180, 95, 1437, 1493, 3180, 82,
3128, 3128, 3180, 3180, 1325, -40, 44, -40,-32768,-32768,
-32768, 77, 102, -14, 83, 84, 85,-32768, 2,-32768,
-32768,-32768, 1325, 1549, 3180, 3180, 3180, 145, 104, 3180,
3180, 3180, 3180, 3180, 3180, 3180, 120, 1325,-32768,-32768,
102, 102,-32768, 2500, 89, 1381, 1713, 47,-32768,-32768,
2136, 308, 3180, 111, 2188, 113, 2240, 2292, 3128, 110,
114, 2344, 2396,-32768,-32768,-32768, 806,-32768,-32768,-32768,
-32768, 102, 1269, 1269, 81,-32768, 308, 308, 308, 308,
-32768, 86, 117, 117, -40, -40, -40, -40, 55, 81,
864, 922,-32768,-32768,-32768, 1772, 1772, 139, 308, 3180,
3180, 3180, 3180, 1605, 121,-32768,-32768,-32768, 3180, 3180,
-32768, 3128, 3128, 118, 123, 127, 3180,-32768,-32768,-32768,
3180,-32768, 144,-32768,-32768,-32768, 3180,-32768, 27,-32768,
980, 155,-32768, 3180,-32768,-32768,-32768, 3180, 3180, 59,
1824, 1876, 1928, 1980, 135, 2552,-32768, 2032, 2604, 102,
-7, -7, 1325, 1325, 3024, 3180, 3180, 748, 133, 102,
102,-32768,-32768,-32768,-32768,-32768,-32768, 145, 2,-32768,
1661,-32768, 3180,-32768, 3180,-32768, 3180,-32768, 3180,-32768,
-32768, 13,-32768, 3180,-32768,-32768,-32768,-32768, 3180, 3180,
3, 8, 2656, 134,-32768, 184, 3180, 1038, 102, 102,
102, 102, 102, 140, 2708, 2760, 2812, 2864, 2916,-32768,
2968, 3180, 3180,-32768,-32768,-32768, 690, 142, 1212,-32768,
-32768,-32768,-32768,-32768,-32768,-32768, 102,-32768, 748, 748,
748, 3024, -8, 1325,-32768, 102, 1096, 189,-32768,-32768,
146, 3024, 53,-32768,-32768,-32768, 150,-32768, 748, 748,
-32768,-32768,-32768, 748,-32768, 215, 216,-32768
};
static const short yypgoto[] = {-32768,
-32768,-32768,-32768,-32768,-32768,-32768, -1, -20, -19, -17,
-6, 419, 282, -43, -37, -34,-32768, 79,-32768,-32768,
-100, -206, -238, -204, 6,-32768
};
#define YYLAST 3243
static const short yytable[] = { 43,
151, 152, 79, 246, 39, 105, 51, 2, 3, 4,
255, 256, 108, 75, 76, 96, 77, 120, 121, 124,
125, 43, 81, 82, 46, 97, 69, 43, 81, 82,
47, 191, 222, 223, 224, 48, 81, 82, 247, 81,
82, 104, 51, 107, 81, 82, 49, 111, 112, 128,
115, 117, 118, 301, 51, 51, 122, 123, 43, 54,
302, 60, 248, 307, 83, 110, 274, 57, 108, 98,
5, 275, 58, 270, 59, 166, 43, 137, 138, 139,
140, 135, 298, 299, 300, 75, 76, 255, 77, 81,
82, 43, 99, 100, 22, 225, 150, 255, 62, 107,
99, 100, 312, 313, 61, 89, 159, 315, 124, 125,
155, 110, 51, 31, 32, 78, 308, 81, 82, 258,
90, 194, 230, 231, 101, 102, 43, 43, 211, 212,
63, 192, 193, 64, 91, 92, 93, 94, 95, 113,
80, 96, 97, 141, 119, 149, 129, 130, 131, 198,
199, 97, 154, 201, 202, 203, 204, 206, 132, 133,
134, 229, 208, 209, 89, 51, 51, 93, 94, 95,
216, 22, 96, 167, 217, 160, 55, 162, 200, 90,
213, 168, 97, 219, 207, 214, 297, 156, 157, 215,
31, 32, 82, 91, 92, 93, 94, 95, 240, 257,
96, 278, 277, 281, 294, 305, 43, 43, 253, 306,
97, 251, 252, 311, 317, 318, 0, 250, 0, 0,
0, 0, 0, 0, 265, 0, 266, 0, 267, 0,
268, 0, 269, 0, 0, 0, 0, 271, 0, 0,
0, 0, 272, 273, 0, 0, 0, 0, 0, 210,
279, 0, 0, 0, 0, 0, 0, 0, 0, 0,
218, 0, 220, 0, 221, 0, 0, 0, 0, 0,
43, 0, 0, 0, 0, 293, 0, 0, 0, 0,
0, 0, 0, 0, 0, 242, 0, 43, 0, 0,
0, 0, 303, 0, 0, 0, 56, 0, 0, 0,
259, 260, 261, 262, 263, 0, 0, 67, 67, 0,
70, 71, 0, 67, 0, 0, 11, 12, 0, 0,
0, 13, 14, 0, 67, 0, 0, 0, 0, 0,
0, 0, 67, 15, 0, 16, 17, 18, 0, 20,
0, 0, 0, 0, 0, 0, 0, 0, 287, 0,
0, 0, 289, 290, 291, 25, 26, 27, 296, 0,
0, 0, 0, 0, 29, 30, 31, 32, 0, 0,
65, 67, 67, 67, 67, 67, 67, 67, 0, 0,
0, 0, 0, 309, 310, 67, 0, 0, 67, 314,
0, 0, 67, 67, 0, 0, 67, 0, 67, 67,
0, 0, 0, 67, 67, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 67, 67,
67, 67, 0, 0, 0, 0, 0, 0, 0, 0,
195, 0, 0, 0, 0, 0, 0, 0, 0, 0,
67, 0, 0, 0, 66, 68, 0, 0, 0, 0,
72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 88, 0, 0, 0, 0, 0, 0, 67, 88,
0, 0, 0, 0, 0, 67, 0, 0, 0, 67,
67, 0, 67, 67, 67, 67, 0, 67, 0, 67,
67, 0, 0, 0, 0, 0, 0, 67, 67, 0,
0, 0, 0, 0, 0, 0, 0, 0, 142, 143,
144, 145, 146, 147, 148, 0, 0, 0, 0, 0,
0, 0, 88, 0, 0, 88, 0, 0, 0, 88,
88, 0, 0, 88, 67, 88, 88, 0, 0, 0,
88, 88, 0, 0, 0, 0, 67, 67, 67, 67,
67, 0, 67, 67, 67, 88, 88, 88, 88, 0,
67, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 88, 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, 88, 0, 0, 0, 0,
0, 0, 228, 0, 0, 0, 88, 88, 0, 88,
88, 88, 88, 0, 88, 0, 88, 88, 0, 0,
0, 0, 0, 0, 88, 88, 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, 88, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 88, 88, 88, 88, 88, 0, 88,
88, 88, 0, 0, 10, 0, 0, 88, 11, 12,
0, 0, 0, 13, 14, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 15, 0, 16, 17, 18,
0, 20, 0, 0, 0, 0, 0, 0, 21, 22,
23, 24, 0, 0, 0, 0, 0, 25, 26, 27,
0, 0, 0, 0, 28, 0, 29, 30, 31, 32,
0, 0, 34, 171, 124, 125, 11, 12, 292, 172,
173, 13, 14, 174, 0, 175, 176, 0, 177, 178,
179, 180, 181, 15, 182, 16, 17, 18, 0, 20,
183, 0, 0, 0, 0, 0, 21, 22, 23, 24,
0, 0, 0, 0, 0, 25, 26, 27, 0, 0,
0, 0, 0, 0, 29, 30, 31, 32, 184, 0,
65, 171, 0, 0, 11, 12, 186, 172, 173, 13,
14, 174, 0, 175, 176, 0, 177, 178, 179, 180,
181, 15, 182, 16, 17, 18, 0, 20, 183, 0,
0, 0, 0, 0, 21, 22, 23, 24, 0, 0,
0, 0, 0, 25, 26, 27, 0, 0, 0, 0,
0, 0, 29, 30, 31, 32, 184, 185, 65, 171,
0, 0, 11, 12, 186, 172, 173, 13, 14, 174,
0, 175, 176, 0, 177, 178, 179, 180, 181, 15,
182, 16, 17, 18, 0, 20, 183, 0, 0, 0,
0, 0, 21, 22, 23, 24, 0, 0, 0, 0,
0, 25, 26, 27, 0, 0, 0, 0, 0, 0,
29, 30, 31, 32, 184, 196, 65, 171, 0, 0,
11, 12, 186, 172, 173, 13, 14, 174, 0, 175,
176, 0, 177, 178, 179, 180, 181, 15, 182, 16,
17, 18, 0, 20, 183, 0, 0, 0, 0, 0,
21, 22, 23, 24, 0, 0, 0, 0, 0, 25,
26, 27, 0, 0, 0, 0, 0, 0, 29, 30,
31, 32, 184, 197, 65, 171, 0, 0, 11, 12,
186, 172, 173, 13, 14, 174, 0, 175, 176, 0,
177, 178, 179, 180, 181, 15, 182, 16, 17, 18,
0, 20, 183, 0, 0, 0, 0, 0, 21, 22,
23, 24, 0, 0, 0, 0, 0, 25, 26, 27,
0, 0, 0, 0, 0, 0, 29, 30, 31, 32,
184, 227, 65, 171, 0, 0, 11, 12, 186, 172,
173, 13, 14, 174, 0, 175, 176, 0, 177, 178,
179, 180, 181, 15, 182, 16, 17, 18, 0, 20,
183, 0, 0, 0, 0, 0, 21, 22, 23, 24,
0, 0, 0, 0, 0, 25, 26, 27, 0, 0,
0, 0, 0, 0, 29, 30, 31, 32, 184, 280,
65, 171, 0, 0, 11, 12, 186, 172, 173, 13,
14, 174, 0, 175, 176, 0, 177, 178, 179, 180,
181, 15, 182, 16, 17, 18, 0, 20, 183, 0,
0, 0, 0, 0, 21, 22, 23, 24, 0, 0,
0, 0, 0, 25, 26, 27, 0, 0, 0, 0,
0, 0, 29, 30, 31, 32, 184, 304, 65, 8,
9, 10, 0, 0, 186, 11, 12, 0, 0, 0,
13, 14, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 15, 0, 16, 17, 18, 19, 20, 0,
0, 0, 0, 0, 0, 21, 22, 23, 24, 0,
0, 0, 0, 0, 25, 26, 27, 0, 0, 0,
0, 28, 0, 29, 30, 31, 32, 33, 0, 34,
11, 12, 0, 0, 0, 13, 14, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 15, 0, 16,
17, 18, 0, 20, 0, 0, 0, 0, 0, 0,
21, 22, 23, 24, 0, 0, 0, 0, 0, 25,
26, 27, 0, 0, 0, 0, 0, 0, 29, 30,
31, 32, 0, 10, 65, 124, 125, 11, 12, 295,
0, 0, 13, 14, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 15, 0, 16, 17, 18, 0,
20, 0, 0, 0, 0, 0, 0, 21, 22, 23,
24, 0, 0, 0, 0, 0, 25, 26, 27, 0,
0, 0, 0, 28, 0, 29, 30, 31, 32, 10,
0, 34, 0, 11, 12, 0, 0, 0, 13, 14,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15, 0, 16, 17, 18, 0, 20, 0, 0, 0,
0, 0, 0, 21, 22, 23, 24, 0, 0, 0,
0, 0, 25, 26, 27, 0, 0, 0, 0, 28,
0, 29, 30, 31, 32, 10, 0, 34, 0, 11,
12, 0, 0, 0, 13, 14, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 15, 0, 16, 17,
18, 0, 20, 0, 0, 0, 0, 0, 0, 21,
22, 23, 24, 0, 0, 0, 0, 0, 25, 26,
27, 0, 0, 0, 0, 28, 0, 29, 30, 31,
32, 114, 0, 106, 0, 11, 12, 0, 0, 0,
13, 14, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 15, 0, 16, 17, 18, 0, 20, 0,
0, 0, 0, 0, 0, 21, 22, 23, 24, 0,
0, 0, 0, 0, 25, 26, 27, 0, 0, 0,
0, 0, 0, 29, 30, 31, 32, 116, 0, 65,
0, 11, 12, 0, 0, 0, 13, 14, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 15, 0,
16, 17, 18, 0, 20, 0, 0, 0, 0, 0,
0, 21, 22, 23, 24, 0, 0, 0, 0, 0,
25, 26, 27, 0, 0, 0, 0, 0, 0, 29,
30, 31, 32, 136, 0, 65, 0, 11, 12, 0,
0, 0, 13, 14, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 15, 0, 16, 17, 18, 0,
20, 0, 0, 0, 0, 0, 0, 21, 22, 23,
24, 0, 0, 0, 0, 0, 25, 26, 27, 0,
0, 0, 0, 0, 0, 29, 30, 31, 32, 205,
0, 65, 0, 11, 12, 0, 0, 0, 13, 14,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15, 0, 16, 17, 18, 0, 20, 0, 0, 0,
0, 0, 0, 21, 22, 23, 24, 0, 0, 0,
0, 0, 25, 26, 27, 0, 0, 0, 0, 0,
0, 29, 30, 31, 32, 264, 0, 65, 0, 11,
12, 0, 0, 0, 13, 14, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 15, 0, 16, 17,
18, 0, 20, 0, 0, 0, 0, 0, 0, 21,
22, 23, 24, 0, 0, 0, 0, 0, 25, 26,
27, 0, 0, 0, 0, 0, 0, 29, 30, 31,
32, 11, 12, 65, 0, 0, 13, 14, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 15, 0,
16, 17, 18, 0, 20, 0, 0, 0, 0, 0,
0, 21, 22, 23, 24, 84, 85, 86, 87, 0,
25, 26, 27, 0, 0, 0, 0, 0, 0, 29,
30, 31, 32, 0, 0, 65, 0, 109, 124, 125,
11, 12, 0, 0, 0, 13, 14, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 15, 0, 16,
17, 18, 0, 20, 0, 0, 0, 0, 0, 0,
21, 22, 23, 24, 0, 0, 0, 0, 0, 25,
26, 27, 0, 0, 0, 0, 0, 0, 29, 30,
31, 32, 11, 12, 65, 0, 0, 13, 14, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
0, 16, 17, 18, 0, 20, 0, 0, 0, 0,
0, 0, 21, 22, 23, 24, 0, 0, 0, 0,
0, 25, 26, 27, 0, 0, 0, 0, 0, 0,
29, 30, 31, 32, 11, 12, 65, 232, 233, 13,
14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 15, 0, 16, 17, 18, 0, 20, 0, 0,
0, 0, 0, 0, 21, 22, 23, 24, 0, 0,
0, 0, 0, 25, 26, 27, 0, 0, 0, 0,
0, 0, 29, 30, 31, 32, 11, 12, 65, 234,
235, 13, 14, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 15, 0, 16, 17, 18, 0, 20,
0, 0, 0, 0, 0, 0, 21, 22, 23, 24,
0, 0, 0, 0, 0, 25, 26, 27, 0, 0,
0, 0, 0, 0, 29, 30, 31, 32, 11, 12,
65, 236, 237, 13, 14, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 15, 0, 16, 17, 18,
0, 20, 0, 0, 0, 0, 0, 0, 21, 22,
23, 24, 0, 0, 0, 0, 0, 25, 26, 27,
0, 0, 0, 0, 0, 0, 29, 30, 31, 32,
11, 12, 65, 238, 239, 13, 14, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 15, 0, 16,
17, 18, 0, 20, 0, 0, 0, 0, 0, 0,
21, 22, 23, 24, 0, 0, 0, 0, 0, 25,
26, 27, 0, 0, 0, 0, 0, 0, 29, 30,
31, 32, 11, 12, 65, 243, 244, 13, 14, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
0, 16, 17, 18, 0, 20, 0, 0, 0, 0,
0, 0, 21, 22, 23, 24, 0, 0, 0, 0,
0, 25, 26, 27, 0, 0, 0, 0, 0, 0,
29, 30, 31, 32, 11, 12, 65, 0, 109, 13,
14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 15, 0, 16, 17, 18, 0, 20, 0, 0,
0, 0, 0, 0, 21, 22, 23, 24, 0, 0,
0, 0, 0, 25, 26, 27, 0, 0, 0, 0,
0, 0, 29, 30, 31, 32, 11, 12, 65, 0,
158, 13, 14, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 15, 0, 16, 17, 18, 0, 20,
0, 0, 0, 0, 0, 0, 21, 22, 23, 24,
0, 0, 0, 0, 0, 25, 26, 27, 0, 0,
0, 0, 0, 0, 29, 30, 31, 32, 11, 12,
65, 0, 161, 13, 14, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 15, 0, 16, 17, 18,
0, 20, 0, 0, 0, 0, 0, 0, 21, 22,
23, 24, 0, 0, 0, 0, 0, 25, 26, 27,
0, 0, 0, 0, 0, 0, 29, 30, 31, 32,
11, 12, 65, 0, 163, 13, 14, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 15, 0, 16,
17, 18, 0, 20, 0, 0, 0, 0, 0, 0,
21, 22, 23, 24, 0, 0, 0, 0, 0, 25,
26, 27, 0, 0, 0, 0, 0, 0, 29, 30,
31, 32, 11, 12, 65, 0, 164, 13, 14, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
0, 16, 17, 18, 0, 20, 0, 0, 0, 0,
0, 0, 21, 22, 23, 24, 0, 0, 0, 0,
0, 25, 26, 27, 0, 0, 0, 0, 0, 0,
29, 30, 31, 32, 11, 12, 65, 0, 169, 13,
14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 15, 0, 16, 17, 18, 0, 20, 0, 0,
0, 0, 0, 0, 21, 22, 23, 24, 0, 0,
0, 0, 0, 25, 26, 27, 0, 0, 0, 0,
0, 0, 29, 30, 31, 32, 11, 12, 65, 0,
170, 13, 14, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 15, 0, 16, 17, 18, 0, 20,
0, 0, 0, 0, 0, 0, 21, 22, 23, 24,
0, 0, 0, 0, 0, 25, 26, 27, 0, 0,
0, 0, 0, 0, 29, 30, 31, 32, 11, 12,
65, 103, 0, 13, 14, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 15, 0, 16, 17, 18,
0, 20, 0, 0, 0, 0, 0, 0, 21, 22,
23, 24, 0, 0, 0, 0, 0, 25, 26, 27,
0, 0, 0, 0, 0, 0, 29, 30, 31, 32,
11, 12, 65, 153, 0, 13, 14, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 15, 0, 16,
17, 18, 0, 20, 0, 0, 0, 0, 0, 0,
21, 22, 23, 24, 0, 0, 0, 0, 0, 25,
26, 27, 0, 0, 0, 0, 0, 0, 29, 30,
31, 32, 11, 12, 65, 241, 0, 13, 14, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
0, 16, 17, 18, 0, 20, 0, 0, 0, 0,
0, 0, 21, 22, 23, 24, 0, 0, 0, 0,
0, 25, 26, 27, 0, 0, 0, 0, 0, 0,
29, 30, 31, 32, 11, 12, 65, 245, 0, 13,
14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 15, 0, 16, 17, 18, 0, 20, 0, 0,
0, 0, 0, 0, 21, 22, 23, 24, 0, 0,
0, 0, 0, 25, 26, 27, 0, 0, 0, 0,
0, 0, 29, 30, 31, 32, 11, 12, 65, 276,
0, 13, 14, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 15, 0, 16, 17, 18, 0, 20,
0, 0, 0, 0, 0, 0, 21, 22, 23, 24,
0, 0, 0, 0, 0, 25, 26, 27, 0, 0,
0, 0, 0, 0, 29, 30, 31, 32, 11, 12,
65, 282, 0, 13, 14, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 15, 0, 16, 17, 18,
0, 20, 0, 0, 0, 0, 0, 0, 21, 22,
23, 24, 0, 0, 0, 0, 0, 25, 26, 27,
0, 0, 0, 0, 0, 0, 29, 30, 31, 32,
11, 12, 65, 283, 0, 13, 14, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 15, 0, 16,
17, 18, 0, 20, 0, 0, 0, 0, 0, 0,
21, 22, 23, 24, 0, 0, 0, 0, 0, 25,
26, 27, 0, 0, 0, 0, 0, 0, 29, 30,
31, 32, 11, 12, 65, 284, 0, 13, 14, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
0, 16, 17, 18, 0, 20, 0, 0, 0, 0,
0, 0, 21, 22, 23, 24, 0, 0, 0, 0,
0, 25, 26, 27, 0, 0, 0, 0, 0, 0,
29, 30, 31, 32, 11, 12, 65, 285, 0, 13,
14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 15, 0, 16, 17, 18, 0, 20, 0, 0,
0, 0, 0, 0, 21, 22, 23, 24, 0, 0,
0, 0, 0, 25, 26, 27, 0, 0, 0, 0,
0, 0, 29, 30, 31, 32, 11, 12, 65, 286,
0, 13, 14, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 15, 0, 16, 17, 18, 0, 20,
0, 0, 0, 0, 0, 0, 21, 22, 23, 24,
0, 0, 0, 0, 0, 25, 26, 27, 0, 0,
0, 0, 0, 0, 29, 30, 31, 32, 0, 0,
65, 288, 11, 12, 0, 172, 173, 13, 14, 0,
0, 0, 0, 0, 177, 178, 179, 180, 181, 15,
0, 16, 17, 18, 0, 20, 183, 0, 0, 0,
0, 0, 21, 22, 23, 24, 0, 0, 0, 0,
0, 25, 26, 27, 0, 0, 0, 0, 0, 0,
29, 30, 31, 32, 11, 12, 65, 0, 0, 13,
14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 15, 0, 16, 17, 18, 0, 20, 0, 0,
0, 0, 0, 0, 21, 22, 23, 24, 84, 85,
86, 87, 0, 25, 26, 27, 0, 0, 0, 0,
0, 0, 29, 30, 31, 32, 11, 12, 65, 0,
0, 13, 14, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 15, 0, 16, 17, 18, 0, 20,
0, 0, 0, 0, 0, 0, 21, 22, 23, 24,
0, 0, 0, 0, 0, 25, 26, 27, 0, 0,
0, 0, 0, 0, 29, 30, 31, 32, 11, 12,
50, 0, 0, 13, 14, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 15, 0, 16, 17, 18,
0, 20, 0, 0, 0, 0, 0, 0, 21, 22,
23, 24, 0, 0, 0, 0, 0, 25, 26, 27,
0, 0, 0, 0, 0, 0, 29, 30, 31, 32,
0, 0, 65
};
static const short yycheck[] = { 6,
101, 102, 37, 11, 6, 49, 13, 6, 7, 8,
215, 218, 50, 34, 34, 56, 34, 61, 62, 7,
8, 28, 37, 38, 61, 66, 28, 34, 37, 38,
61, 132, 6, 7, 8, 63, 37, 38, 46, 37,
38, 48, 49, 50, 37, 38, 63, 54, 55, 64,
57, 58, 59, 292, 61, 62, 63, 64, 65, 63,
69, 32, 70, 302, 65, 65, 64, 63, 106, 34,
69, 64, 63, 61, 63, 119, 83, 84, 85, 86,
87, 83, 289, 290, 291, 106, 106, 292, 106, 37,
38, 98, 57, 58, 40, 69, 98, 302, 67, 106,
57, 58, 309, 310, 63, 20, 113, 314, 7, 8,
64, 65, 119, 59, 60, 7, 64, 37, 38, 220,
35, 36, 64, 65, 46, 47, 133, 134, 172, 173,
63, 133, 134, 63, 49, 50, 51, 52, 53, 45,
61, 56, 66, 40, 63, 26, 64, 64, 64, 156,
157, 66, 64, 160, 161, 162, 163, 164, 80, 81,
82, 196, 169, 170, 20, 172, 173, 51, 52, 53,
177, 40, 56, 64, 181, 65, 45, 65, 40, 35,
63, 68, 66, 40, 64, 63, 287, 109, 110, 63,
59, 60, 38, 49, 50, 51, 52, 53, 64, 67,
56, 18, 69, 64, 63, 17, 213, 214, 215, 64,
66, 213, 214, 64, 0, 0, -1, 212, -1, -1,
-1, -1, -1, -1, 231, -1, 233, -1, 235, -1,
237, -1, 239, -1, -1, -1, -1, 244, -1, -1,
-1, -1, 249, 250, -1, -1, -1, -1, -1, 171,
257, -1, -1, -1, -1, -1, -1, -1, -1, -1,
182, -1, 184, -1, 186, -1, -1, -1, -1, -1,
277, -1, -1, -1, -1, 277, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 207, -1, 294, -1, -1,
-1, -1, 294, -1, -1, -1, 15, -1, -1, -1,
222, 223, 224, 225, 226, -1, -1, 26, 27, -1,
29, 30, -1, 32, -1, -1, 9, 10, -1, -1,
-1, 14, 15, -1, 43, -1, -1, -1, -1, -1,
-1, -1, 51, 26, -1, 28, 29, 30, -1, 32,
-1, -1, -1, -1, -1, -1, -1, -1, 270, -1,
-1, -1, 274, 275, 276, 48, 49, 50, 280, -1,
-1, -1, -1, -1, 57, 58, 59, 60, -1, -1,
63, 90, 91, 92, 93, 94, 95, 96, -1, -1,
-1, -1, -1, 305, 306, 104, -1, -1, 107, 311,
-1, -1, 111, 112, -1, -1, 115, -1, 117, 118,
-1, -1, -1, 122, 123, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 137, 138,
139, 140, -1, -1, -1, -1, -1, -1, -1, -1,
149, -1, -1, -1, -1, -1, -1, -1, -1, -1,
159, -1, -1, -1, 26, 27, -1, -1, -1, -1,
32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 43, -1, -1, -1, -1, -1, -1, 187, 51,
-1, -1, -1, -1, -1, 194, -1, -1, -1, 198,
199, -1, 201, 202, 203, 204, -1, 206, -1, 208,
209, -1, -1, -1, -1, -1, -1, 216, 217, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 90, 91,
92, 93, 94, 95, 96, -1, -1, -1, -1, -1,
-1, -1, 104, -1, -1, 107, -1, -1, -1, 111,
112, -1, -1, 115, 253, 117, 118, -1, -1, -1,
122, 123, -1, -1, -1, -1, 265, 266, 267, 268,
269, -1, 271, 272, 273, 137, 138, 139, 140, -1,
279, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 159, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 187, -1, -1, -1, -1,
-1, -1, 194, -1, -1, -1, 198, 199, -1, 201,
202, 203, 204, -1, 206, -1, 208, 209, -1, -1,
-1, -1, -1, -1, 216, 217, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 253, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 265, 266, 267, 268, 269, -1, 271,
272, 273, -1, -1, 5, -1, -1, 279, 9, 10,
-1, -1, -1, 14, 15, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 26, -1, 28, 29, 30,
-1, 32, -1, -1, -1, -1, -1, -1, 39, 40,
41, 42, -1, -1, -1, -1, -1, 48, 49, 50,
-1, -1, -1, -1, 55, -1, 57, 58, 59, 60,
-1, -1, 63, 6, 7, 8, 9, 10, 69, 12,
13, 14, 15, 16, -1, 18, 19, -1, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, -1, 32,
33, -1, -1, -1, -1, -1, 39, 40, 41, 42,
-1, -1, -1, -1, -1, 48, 49, 50, -1, -1,
-1, -1, -1, -1, 57, 58, 59, 60, 61, -1,
63, 6, -1, -1, 9, 10, 69, 12, 13, 14,
15, 16, -1, 18, 19, -1, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, -1, 32, 33, -1,
-1, -1, -1, -1, 39, 40, 41, 42, -1, -1,
-1, -1, -1, 48, 49, 50, -1, -1, -1, -1,
-1, -1, 57, 58, 59, 60, 61, 62, 63, 6,
-1, -1, 9, 10, 69, 12, 13, 14, 15, 16,
-1, 18, 19, -1, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, -1, 32, 33, -1, -1, -1,
-1, -1, 39, 40, 41, 42, -1, -1, -1, -1,
-1, 48, 49, 50, -1, -1, -1, -1, -1, -1,
57, 58, 59, 60, 61, 62, 63, 6, -1, -1,
9, 10, 69, 12, 13, 14, 15, 16, -1, 18,
19, -1, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, -1, 32, 33, -1, -1, -1, -1, -1,
39, 40, 41, 42, -1, -1, -1, -1, -1, 48,
49, 50, -1, -1, -1, -1, -1, -1, 57, 58,
59, 60, 61, 62, 63, 6, -1, -1, 9, 10,
69, 12, 13, 14, 15, 16, -1, 18, 19, -1,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
-1, 32, 33, -1, -1, -1, -1, -1, 39, 40,
41, 42, -1, -1, -1, -1, -1, 48, 49, 50,
-1, -1, -1, -1, -1, -1, 57, 58, 59, 60,
61, 62, 63, 6, -1, -1, 9, 10, 69, 12,
13, 14, 15, 16, -1, 18, 19, -1, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, -1, 32,
33, -1, -1, -1, -1, -1, 39, 40, 41, 42,
-1, -1, -1, -1, -1, 48, 49, 50, -1, -1,
-1, -1, -1, -1, 57, 58, 59, 60, 61, 62,
63, 6, -1, -1, 9, 10, 69, 12, 13, 14,
15, 16, -1, 18, 19, -1, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, -1, 32, 33, -1,
-1, -1, -1, -1, 39, 40, 41, 42, -1, -1,
-1, -1, -1, 48, 49, 50, -1, -1, -1, -1,
-1, -1, 57, 58, 59, 60, 61, 62, 63, 3,
4, 5, -1, -1, 69, 9, 10, -1, -1, -1,
14, 15, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 26, -1, 28, 29, 30, 31, 32, -1,
-1, -1, -1, -1, -1, 39, 40, 41, 42, -1,
-1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
-1, 55, -1, 57, 58, 59, 60, 61, -1, 63,
9, 10, -1, -1, -1, 14, 15, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 26, -1, 28,
29, 30, -1, 32, -1, -1, -1, -1, -1, -1,
39, 40, 41, 42, -1, -1, -1, -1, -1, 48,
49, 50, -1, -1, -1, -1, -1, -1, 57, 58,
59, 60, -1, 5, 63, 7, 8, 9, 10, 68,
-1, -1, 14, 15, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 26, -1, 28, 29, 30, -1,
32, -1, -1, -1, -1, -1, -1, 39, 40, 41,
42, -1, -1, -1, -1, -1, 48, 49, 50, -1,
-1, -1, -1, 55, -1, 57, 58, 59, 60, 5,
-1, 63, -1, 9, 10, -1, -1, -1, 14, 15,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26, -1, 28, 29, 30, -1, 32, -1, -1, -1,
-1, -1, -1, 39, 40, 41, 42, -1, -1, -1,
-1, -1, 48, 49, 50, -1, -1, -1, -1, 55,
-1, 57, 58, 59, 60, 5, -1, 63, -1, 9,
10, -1, -1, -1, 14, 15, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 26, -1, 28, 29,
30, -1, 32, -1, -1, -1, -1, -1, -1, 39,
40, 41, 42, -1, -1, -1, -1, -1, 48, 49,
50, -1, -1, -1, -1, 55, -1, 57, 58, 59,
60, 5, -1, 63, -1, 9, 10, -1, -1, -1,
14, 15, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 26, -1, 28, 29, 30, -1, 32, -1,
-1, -1, -1, -1, -1, 39, 40, 41, 42, -1,
-1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
-1, -1, -1, 57, 58, 59, 60, 5, -1, 63,
-1, 9, 10, -1, -1, -1, 14, 15, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 26, -1,
28, 29, 30, -1, 32, -1, -1, -1, -1, -1,
-1, 39, 40, 41, 42, -1, -1, -1, -1, -1,
48, 49, 50, -1, -1, -1, -1, -1, -1, 57,
58, 59, 60, 5, -1, 63, -1, 9, 10, -1,
-1, -1, 14, 15, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 26, -1, 28, 29, 30, -1,
32, -1, -1, -1, -1, -1, -1, 39, 40, 41,
42, -1, -1, -1, -1, -1, 48, 49, 50, -1,
-1, -1, -1, -1, -1, 57, 58, 59, 60, 5,
-1, 63, -1, 9, 10, -1, -1, -1, 14, 15,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26, -1, 28, 29, 30, -1, 32, -1, -1, -1,
-1, -1, -1, 39, 40, 41, 42, -1, -1, -1,
-1, -1, 48, 49, 50, -1, -1, -1, -1, -1,
-1, 57, 58, 59, 60, 5, -1, 63, -1, 9,
10, -1, -1, -1, 14, 15, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 26, -1, 28, 29,
30, -1, 32, -1, -1, -1, -1, -1, -1, 39,
40, 41, 42, -1, -1, -1, -1, -1, 48, 49,
50, -1, -1, -1, -1, -1, -1, 57, 58, 59,
60, 9, 10, 63, -1, -1, 14, 15, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 26, -1,
28, 29, 30, -1, 32, -1, -1, -1, -1, -1,
-1, 39, 40, 41, 42, 43, 44, 45, 46, -1,
48, 49, 50, -1, -1, -1, -1, -1, -1, 57,
58, 59, 60, -1, -1, 63, -1, 65, 7, 8,
9, 10, -1, -1, -1, 14, 15, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 26, -1, 28,
29, 30, -1, 32, -1, -1, -1, -1, -1, -1,
39, 40, 41, 42, -1, -1, -1, -1, -1, 48,
49, 50, -1, -1, -1, -1, -1, -1, 57, 58,
59, 60, 9, 10, 63, -1, -1, 14, 15, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 26,
-1, 28, 29, 30, -1, 32, -1, -1, -1, -1,
-1, -1, 39, 40, 41, 42, -1, -1, -1, -1,
-1, 48, 49, 50, -1, -1, -1, -1, -1, -1,
57, 58, 59, 60, 9, 10, 63, 64, 65, 14,
15, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 26, -1, 28, 29, 30, -1, 32, -1, -1,
-1, -1, -1, -1, 39, 40, 41, 42, -1, -1,
-1, -1, -1, 48, 49, 50, -1, -1, -1, -1,
-1, -1, 57, 58, 59, 60, 9, 10, 63, 64,
65, 14, 15, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 26, -1, 28, 29, 30, -1, 32,
-1, -1, -1, -1, -1, -1, 39, 40, 41, 42,
-1, -1, -1, -1, -1, 48, 49, 50, -1, -1,
-1, -1, -1, -1, 57, 58, 59, 60, 9, 10,
63, 64, 65, 14, 15, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 26, -1, 28, 29, 30,
-1, 32, -1, -1, -1, -1, -1, -1, 39, 40,
41, 42, -1, -1, -1, -1, -1, 48, 49, 50,
-1, -1, -1, -1, -1, -1, 57, 58, 59, 60,
9, 10, 63, 64, 65, 14, 15, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 26, -1, 28,
29, 30, -1, 32, -1, -1, -1, -1, -1, -1,
39, 40, 41, 42, -1, -1, -1, -1, -1, 48,
49, 50, -1, -1, -1, -1, -1, -1, 57, 58,
59, 60, 9, 10, 63, 64, 65, 14, 15, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 26,
-1, 28, 29, 30, -1, 32, -1, -1, -1, -1,
-1, -1, 39, 40, 41, 42, -1, -1, -1, -1,
-1, 48, 49, 50, -1, -1, -1, -1, -1, -1,
57, 58, 59, 60, 9, 10, 63, -1, 65, 14,
15, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 26, -1, 28, 29, 30, -1, 32, -1, -1,
-1, -1, -1, -1, 39, 40, 41, 42, -1, -1,
-1, -1, -1, 48, 49, 50, -1, -1, -1, -1,
-1, -1, 57, 58, 59, 60, 9, 10, 63, -1,
65, 14, 15, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 26, -1, 28, 29, 30, -1, 32,
-1, -1, -1, -1, -1, -1, 39, 40, 41, 42,
-1, -1, -1, -1, -1, 48, 49, 50, -1, -1,
-1, -1, -1, -1, 57, 58, 59, 60, 9, 10,
63, -1, 65, 14, 15, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 26, -1, 28, 29, 30,
-1, 32, -1, -1, -1, -1, -1, -1, 39, 40,
41, 42, -1, -1, -1, -1, -1, 48, 49, 50,
-1, -1, -1, -1, -1, -1, 57, 58, 59, 60,
9, 10, 63, -1, 65, 14, 15, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 26, -1, 28,
29, 30, -1, 32, -1, -1, -1, -1, -1, -1,
39, 40, 41, 42, -1, -1, -1, -1, -1, 48,
49, 50, -1, -1, -1, -1, -1, -1, 57, 58,
59, 60, 9, 10, 63, -1, 65, 14, 15, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 26,
-1, 28, 29, 30, -1, 32, -1, -1, -1, -1,
-1, -1, 39, 40, 41, 42, -1, -1, -1, -1,
-1, 48, 49, 50, -1, -1, -1, -1, -1, -1,
57, 58, 59, 60, 9, 10, 63, -1, 65, 14,
15, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 26, -1, 28, 29, 30, -1, 32, -1, -1,
-1, -1, -1, -1, 39, 40, 41, 42, -1, -1,
-1, -1, -1, 48, 49, 50, -1, -1, -1, -1,
-1, -1, 57, 58, 59, 60, 9, 10, 63, -1,
65, 14, 15, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 26, -1, 28, 29, 30, -1, 32,
-1, -1, -1, -1, -1, -1, 39, 40, 41, 42,
-1, -1, -1, -1, -1, 48, 49, 50, -1, -1,
-1, -1, -1, -1, 57, 58, 59, 60, 9, 10,
63, 64, -1, 14, 15, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 26, -1, 28, 29, 30,
-1, 32, -1, -1, -1, -1, -1, -1, 39, 40,
41, 42, -1, -1, -1, -1, -1, 48, 49, 50,
-1, -1, -1, -1, -1, -1, 57, 58, 59, 60,
9, 10, 63, 64, -1, 14, 15, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 26, -1, 28,
29, 30, -1, 32, -1, -1, -1, -1, -1, -1,
39, 40, 41, 42, -1, -1, -1, -1, -1, 48,
49, 50, -1, -1, -1, -1, -1, -1, 57, 58,
59, 60, 9, 10, 63, 64, -1, 14, 15, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 26,
-1, 28, 29, 30, -1, 32, -1, -1, -1, -1,
-1, -1, 39, 40, 41, 42, -1, -1, -1, -1,
-1, 48, 49, 50, -1, -1, -1, -1, -1, -1,
57, 58, 59, 60, 9, 10, 63, 64, -1, 14,
15, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 26, -1, 28, 29, 30, -1, 32, -1, -1,
-1, -1, -1, -1, 39, 40, 41, 42, -1, -1,
-1, -1, -1, 48, 49, 50, -1, -1, -1, -1,
-1, -1, 57, 58, 59, 60, 9, 10, 63, 64,
-1, 14, 15, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 26, -1, 28, 29, 30, -1, 32,
-1, -1, -1, -1, -1, -1, 39, 40, 41, 42,
-1, -1, -1, -1, -1, 48, 49, 50, -1, -1,
-1, -1, -1, -1, 57, 58, 59, 60, 9, 10,
63, 64, -1, 14, 15, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 26, -1, 28, 29, 30,
-1, 32, -1, -1, -1, -1, -1, -1, 39, 40,
41, 42, -1, -1, -1, -1, -1, 48, 49, 50,
-1, -1, -1, -1, -1, -1, 57, 58, 59, 60,
9, 10, 63, 64, -1, 14, 15, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 26, -1, 28,
29, 30, -1, 32, -1, -1, -1, -1, -1, -1,
39, 40, 41, 42, -1, -1, -1, -1, -1, 48,
49, 50, -1, -1, -1, -1, -1, -1, 57, 58,
59, 60, 9, 10, 63, 64, -1, 14, 15, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 26,
-1, 28, 29, 30, -1, 32, -1, -1, -1, -1,
-1, -1, 39, 40, 41, 42, -1, -1, -1, -1,
-1, 48, 49, 50, -1, -1, -1, -1, -1, -1,
57, 58, 59, 60, 9, 10, 63, 64, -1, 14,
15, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 26, -1, 28, 29, 30, -1, 32, -1, -1,
-1, -1, -1, -1, 39, 40, 41, 42, -1, -1,
-1, -1, -1, 48, 49, 50, -1, -1, -1, -1,
-1, -1, 57, 58, 59, 60, 9, 10, 63, 64,
-1, 14, 15, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 26, -1, 28, 29, 30, -1, 32,
-1, -1, -1, -1, -1, -1, 39, 40, 41, 42,
-1, -1, -1, -1, -1, 48, 49, 50, -1, -1,
-1, -1, -1, -1, 57, 58, 59, 60, -1, -1,
63, 64, 9, 10, -1, 12, 13, 14, 15, -1,
-1, -1, -1, -1, 21, 22, 23, 24, 25, 26,
-1, 28, 29, 30, -1, 32, 33, -1, -1, -1,
-1, -1, 39, 40, 41, 42, -1, -1, -1, -1,
-1, 48, 49, 50, -1, -1, -1, -1, -1, -1,
57, 58, 59, 60, 9, 10, 63, -1, -1, 14,
15, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 26, -1, 28, 29, 30, -1, 32, -1, -1,
-1, -1, -1, -1, 39, 40, 41, 42, 43, 44,
45, 46, -1, 48, 49, 50, -1, -1, -1, -1,
-1, -1, 57, 58, 59, 60, 9, 10, 63, -1,
-1, 14, 15, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 26, -1, 28, 29, 30, -1, 32,
-1, -1, -1, -1, -1, -1, 39, 40, 41, 42,
-1, -1, -1, -1, -1, 48, 49, 50, -1, -1,
-1, -1, -1, -1, 57, 58, 59, 60, 9, 10,
63, -1, -1, 14, 15, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 26, -1, 28, 29, 30,
-1, 32, -1, -1, -1, -1, -1, -1, 39, 40,
41, 42, -1, -1, -1, -1, -1, 48, 49, 50,
-1, -1, -1, -1, -1, -1, 57, 58, 59, 60,
-1, -1, 63
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "bison.simple"
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef alloca
#ifdef __GNUC__
#define alloca __builtin_alloca
#else /* not GNU C. */
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc)
#include <alloca.h>
#else /* not sparc */
#if defined (MSDOS) && !defined (__TURBOC__)
#include <malloc.h>
#else /* not MSDOS, or __TURBOC__ */
#if defined(_AIX)
#include <malloc.h>
#pragma alloca
#endif /* not _AIX */
#endif /* not MSDOS, or __TURBOC__ */
#endif /* not sparc. */
#endif /* not GNU C. */
#endif /* alloca not defined. */
/* This is the parser code that is written into each bison parser
when the %semantic_parser declaration is not specified in the grammar.
It was written by Richard Stallman by simplifying the hairy parser
used when %semantic_parser is specified. */
/* Note: there must be only one dollar sign in this file.
It is replaced by the list of actions, each action
as one case of the switch. */
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY -2
#define YYEOF 0
#define YYACCEPT return(0)
#define YYABORT return(1)
#define YYERROR goto yyerrlab1
/* Like YYERROR except do call yyerror.
This remains here temporarily to ease the
transition to the new meaning of YYERROR, for GCC.
Once GCC version 2 has supplanted version 1, this can go. */
#define YYFAIL goto yyerrlab
#define YYRECOVERING() (!!yyerrstatus)
#define YYBACKUP(token, value) \
do \
if (yychar == YYEMPTY && yylen == 1) \
{ yychar = (token), yylval = (value); \
yychar1 = YYTRANSLATE (yychar); \
YYPOPSTACK; \
goto yybackup; \
} \
else \
{ yyerror ("syntax error: cannot back up"); YYERROR; } \
while (0)
#define YYTERROR 1
#define YYERRCODE 256
#ifndef YYPURE
#define YYLEX yylex()
#endif
#ifdef YYPURE
#ifdef YYLSP_NEEDED
#define YYLEX yylex(&yylval, &yylloc)
#else
#define YYLEX yylex(&yylval)
#endif
#endif
/* If nonreentrant, generate the variables here */
#ifndef YYPURE
int yychar; /* the lookahead symbol */
YYSTYPE yylval; /* the semantic value of the */
/* lookahead symbol */
#ifdef YYLSP_NEEDED
YYLTYPE yylloc; /* location data for the lookahead */
/* symbol */
#endif
int yynerrs; /* number of parse errors so far */
#endif /* not YYPURE */
#if YYDEBUG != 0
int yydebug; /* nonzero means print parse trace */
/* Since this is uninitialized, it does not stop multiple parsers
from coexisting. */
#endif
/* YYINITDEPTH indicates the initial size of the parser's stacks */
#ifndef YYINITDEPTH
#define YYINITDEPTH 200
#endif
/* YYMAXDEPTH is the maximum size the stacks can grow to
(effective only if the built-in stack extension method is used). */
#if YYMAXDEPTH == 0
#undef YYMAXDEPTH
#endif
#ifndef YYMAXDEPTH
#define YYMAXDEPTH 10000
#endif
#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
#define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
#else /* not GNU C or C++ */
#ifndef __cplusplus
/* This is the most reliable way to avoid incompatibilities
in available built-in functions on various systems. */
static void
__yy_bcopy (from, to, count)
char *from;
char *to;
int count;
{
register char *f = from;
register char *t = to;
register int i = count;
while (i-- > 0)
*t++ = *f++;
}
#else /* __cplusplus */
/* This is the most reliable way to avoid incompatibilities
in available built-in functions on various systems. */
static void
__yy_bcopy (char *from, char *to, int count)
{
register char *f = from;
register char *t = to;
register int i = count;
while (i-- > 0)
*t++ = *f++;
}
#endif
#endif
#line 169 "bison.simple"
int
yyparse()
{
register int yystate;
register int yyn;
register short *yyssp;
register YYSTYPE *yyvsp;
int yyerrstatus; /* number of tokens to shift before error messages enabled */
int yychar1; /* lookahead token as an internal (translated) token number */
short yyssa[YYINITDEPTH]; /* the state stack */
YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
short *yyss = yyssa; /* refer to the stacks thru separate pointers */
YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
#ifdef YYLSP_NEEDED
YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
YYLTYPE *yyls = yylsa;
YYLTYPE *yylsp;
#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
#else
#define YYPOPSTACK (yyvsp--, yyssp--)
#endif
int yystacksize = YYINITDEPTH;
#ifdef YYPURE
int yychar;
YYSTYPE yylval;
int yynerrs;
#ifdef YYLSP_NEEDED
YYLTYPE yylloc;
#endif
#endif
YYSTYPE yyval; /* the variable used to return */
/* semantic values from the action */
/* routines */
int yylen;
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Starting parse\n");
#endif
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;
yychar = YYEMPTY; /* Cause a token to be read. */
/* Initialize stack pointers.
Waste one element of value and location stack
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
yyssp = yyss - 1;
yyvsp = yyvs;
#ifdef YYLSP_NEEDED
yylsp = yyls;
#endif
/* Push a new state, which is found in yystate . */
/* In all cases, when you get here, the value and location stacks
have just been pushed. so pushing a state here evens the stacks. */
yynewstate:
*++yyssp = yystate;
if (yyssp >= yyss + yystacksize - 1)
{
/* Give user a chance to reallocate the stack */
/* Use copies of these so that the &'s don't force the real ones into memory. */
YYSTYPE *yyvs1 = yyvs;
short *yyss1 = yyss;
#ifdef YYLSP_NEEDED
YYLTYPE *yyls1 = yyls;
#endif
/* Get the current used size of the three stacks, in elements. */
int size = yyssp - yyss + 1;
#ifdef yyoverflow
/* Each stack pointer address is followed by the size of
the data in use in that stack, in bytes. */
yyoverflow("parser stack overflow",
&yyss1, size * sizeof (*yyssp),
&yyvs1, size * sizeof (*yyvsp),
#ifdef YYLSP_NEEDED
&yyls1, size * sizeof (*yylsp),
#endif
&yystacksize);
yyss = yyss1; yyvs = yyvs1;
#ifdef YYLSP_NEEDED
yyls = yyls1;
#endif
#else /* no yyoverflow */
/* Extend the stack our own way. */
if (yystacksize >= YYMAXDEPTH)
{
yyerror("parser stack overflow");
return 2;
}
yystacksize *= 2;
if (yystacksize > YYMAXDEPTH)
yystacksize = YYMAXDEPTH;
yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
__yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
__yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
#ifdef YYLSP_NEEDED
yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
__yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
#endif
#endif /* no yyoverflow */
yyssp = yyss + size - 1;
yyvsp = yyvs + size - 1;
#ifdef YYLSP_NEEDED
yylsp = yyls + size - 1;
#endif
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Stack size increased to %d\n", yystacksize);
#endif
if (yyssp >= yyss + yystacksize - 1)
YYABORT;
}
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Entering state %d\n", yystate);
#endif
goto yybackup;
yybackup:
/* Do appropriate processing given the current state. */
/* Read a lookahead token if we need one and don't already have one. */
/* yyresume: */
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
if (yyn == YYFLAG)
goto yydefault;
/* Not known => get a lookahead token if don't already have one. */
/* yychar is either YYEMPTY or YYEOF
or a valid token in external form. */
if (yychar == YYEMPTY)
{
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Reading a token: ");
#endif
yychar = YYLEX;
}
/* Convert token to internal form (in yychar1) for indexing tables with */
if (yychar <= 0) /* This means end of input. */
{
yychar1 = 0;
yychar = YYEOF; /* Don't call YYLEX any more */
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Now at end of input.\n");
#endif
}
else
{
yychar1 = YYTRANSLATE(yychar);
#if YYDEBUG != 0
if (yydebug)
{
fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
/* Give the individual parser a way to print the precise meaning
of a token, for further debugging info. */
#ifdef YYPRINT
YYPRINT (stderr, yychar, yylval);
#endif
fprintf (stderr, ")\n");
}
#endif
}
yyn += yychar1;
if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
goto yydefault;
yyn = yytable[yyn];
/* yyn is what to do for this token type in this state.
Negative => reduce, -yyn is rule number.
Positive => shift, yyn is new state.
New state is final state => don't bother to shift,
just return success.
0, or most negative number => error. */
if (yyn < 0)
{
if (yyn == YYFLAG)
goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
else if (yyn == 0)
goto yyerrlab;
if (yyn == YYFINAL)
YYACCEPT;
/* Shift the lookahead token. */
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
#endif
/* Discard the token being shifted unless it is eof. */
if (yychar != YYEOF)
yychar = YYEMPTY;
*++yyvsp = yylval;
#ifdef YYLSP_NEEDED
*++yylsp = yylloc;
#endif
/* count tokens shifted since error; after three, turn off error status. */
if (yyerrstatus) yyerrstatus--;
yystate = yyn;
goto yynewstate;
/* Do the default action for the current state. */
yydefault:
yyn = yydefact[yystate];
if (yyn == 0)
goto yyerrlab;
/* Do a reduction. yyn is the number of a rule to reduce with. */
yyreduce:
yylen = yyr2[yyn];
yyval = yyvsp[1-yylen]; /* implement default value of the action */
#if YYDEBUG != 0
if (yydebug)
{
int i;
fprintf (stderr, "Reducing via rule %d (line %d), ",
yyn, yyrline[yyn]);
/* Print the symbols being reduced, and their result. */
for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
fprintf (stderr, "%s ", yytname[yyrhs[i]]);
fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
}
#endif
switch (yyn) {
case 1:
#line 60 "a2p.y"
{ root = oper4(OPROG,yyvsp[-1],begins,yyvsp[0],ends); ;
break;}
case 2:
#line 64 "a2p.y"
{ begins = oper4(OJUNK,begins,yyvsp[-3],yyvsp[-2],yyvsp[0]); in_begin = FALSE;
yyval = Nullop; ;
break;}
case 3:
#line 69 "a2p.y"
{ ends = oper3(OJUNK,ends,yyvsp[-2],yyvsp[-1]); yyval = Nullop; ;
break;}
case 4:
#line 71 "a2p.y"
{ yyval = yyvsp[-1]; ;
break;}
case 5:
#line 75 "a2p.y"
{ yyval = oper3(OHUNKS,yyvsp[-2],yyvsp[-1],yyvsp[0]); ;
break;}
case 6:
#line 77 "a2p.y"
{ yyval = Nullop; ;
break;}
case 7:
#line 81 "a2p.y"
{ yyval = oper1(OHUNK,yyvsp[0]); need_entire = TRUE; ;
break;}
case 8:
#line 83 "a2p.y"
{ yyval = oper2(OHUNK,yyvsp[-4],oper2(OJUNK,yyvsp[-2],yyvsp[-1])); ;
break;}
case 9:
#line 85 "a2p.y"
{ fixfargs(yyvsp[-8],yyvsp[-6],0); yyval = oper5(OUSERDEF,yyvsp[-8],yyvsp[-6],yyvsp[-4],yyvsp[-2],yyvsp[-1]); ;
break;}
case 10:
#line 87 "a2p.y"
{ yyval = oper2(OHUNK,Nullop,oper2(OJUNK,yyvsp[-2],yyvsp[-1])); ;
break;}
case 13:
#line 93 "a2p.y"
{ yyval = rememberargs(yyval); ;
break;}
case 14:
#line 97 "a2p.y"
{ yyval = oper1(OPAT,yyvsp[0]); ;
break;}
case 15:
#line 99 "a2p.y"
{ yyval = oper2(ORANGE,yyvsp[-2],yyvsp[0]); ;
break;}
case 20:
#line 110 "a2p.y"
{ yyval = oper1(OCPAREN,yyvsp[-1]); ;
break;}
case 21:
#line 112 "a2p.y"
{ yyval = oper3(OCANDAND,yyvsp[-3],yyvsp[-1],yyvsp[0]); ;
break;}
case 22:
#line 114 "a2p.y"
{ yyval = oper3(OCOROR,yyvsp[-3],yyvsp[-1],yyvsp[0]); ;
break;}
case 23:
#line 116 "a2p.y"
{ yyval = oper1(OCNOT,yyvsp[0]); ;
break;}
case 24:
#line 120 "a2p.y"
{ yyval = oper3(ORELOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); ;
break;}
case 25:
#line 122 "a2p.y"
{ yyval = oper3(ORELOP,string(">",1),yyvsp[-2],yyvsp[0]); ;
break;}
case 26:
#line 124 "a2p.y"
{ yyval = oper3(ORELOP,string("<",1),yyvsp[-2],yyvsp[0]); ;
break;}
case 27:
#line 126 "a2p.y"
{ yyval = oper1(ORPAREN,yyvsp[-1]); ;
break;}
case 28:
#line 130 "a2p.y"
{ yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); ;
break;}
case 29:
#line 132 "a2p.y"
{ yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],oper1(OREGEX,yyvsp[0])); ;
break;}
case 30:
#line 134 "a2p.y"
{ yyval = oper1(OREGEX,yyvsp[0]); ;
break;}
case 31:
#line 136 "a2p.y"
{ yyval = oper1(OMPAREN,yyvsp[-1]); ;
break;}
case 32:
#line 140 "a2p.y"
{ yyval = yyvsp[0]; ;
break;}
case 33:
#line 142 "a2p.y"
{ yyval = oper2(OCONCAT,yyvsp[-1],yyvsp[0]); ;
break;}
case 34:
#line 144 "a2p.y"
{ yyval = oper3(OASSIGN,yyvsp[-1],yyvsp[-2],yyvsp[0]);
if ((ops[yyvsp[-2]].ival & 255) == OFLD)
lval_field = TRUE;
if ((ops[yyvsp[-2]].ival & 255) == OVFLD)
lval_field = TRUE;
;
break;}
case 35:
#line 153 "a2p.y"
{ yyval = yyvsp[0]; ;
break;}
case 36:
#line 155 "a2p.y"
{ yyval = oper1(ONUM,yyvsp[0]); ;
break;}
case 37:
#line 157 "a2p.y"
{ yyval = oper1(OSTR,yyvsp[0]); ;
break;}
case 38:
#line 159 "a2p.y"
{ yyval = oper2(OADD,yyvsp[-2],yyvsp[0]); ;
break;}
case 39:
#line 161 "a2p.y"
{ yyval = oper2(OSUBTRACT,yyvsp[-2],yyvsp[0]); ;
break;}
case 40:
#line 163 "a2p.y"
{ yyval = oper2(OMULT,yyvsp[-2],yyvsp[0]); ;
break;}
case 41:
#line 165 "a2p.y"
{ yyval = oper2(ODIV,yyvsp[-2],yyvsp[0]); ;
break;}
case 42:
#line 167 "a2p.y"
{ yyval = oper2(OMOD,yyvsp[-2],yyvsp[0]); ;
break;}
case 43:
#line 169 "a2p.y"
{ yyval = oper2(OPOW,yyvsp[-2],yyvsp[0]); ;
break;}
case 44:
#line 171 "a2p.y"
{ yyval = oper2(ODEFINED,aryrefarg(yyvsp[0]),yyvsp[-2]); ;
break;}
case 45:
#line 173 "a2p.y"
{ yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); ;
break;}
case 46:
#line 175 "a2p.y"
{ yyval = oper1(OPOSTINCR,yyvsp[-1]); ;
break;}
case 47:
#line 177 "a2p.y"
{ yyval = oper1(OPOSTDECR,yyvsp[-1]); ;
break;}
case 48:
#line 179 "a2p.y"
{ yyval = oper1(OPREINCR,yyvsp[0]); ;
break;}
case 49:
#line 181 "a2p.y"
{ yyval = oper1(OPREDECR,yyvsp[0]); ;
break;}
case 50:
#line 183 "a2p.y"
{ yyval = oper1(OUMINUS,yyvsp[0]); ;
break;}
case 51:
#line 185 "a2p.y"
{ yyval = oper1(OUPLUS,yyvsp[0]); ;
break;}
case 52:
#line 187 "a2p.y"
{ yyval = oper1(OPAREN,yyvsp[-1]); ;
break;}
case 53:
#line 189 "a2p.y"
{ yyval = oper0(OGETLINE); ;
break;}
case 54:
#line 191 "a2p.y"
{ yyval = oper1(OGETLINE,yyvsp[0]); ;
break;}
case 55:
#line 193 "a2p.y"
{ yyval = oper3(OGETLINE,Nullop,string("<",1),yyvsp[0]);
if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; ;
break;}
case 56:
#line 196 "a2p.y"
{ yyval = oper3(OGETLINE,yyvsp[-2],string("<",1),yyvsp[0]);
if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; ;
break;}
case 57:
#line 199 "a2p.y"
{ yyval = oper3(OGETLINE,Nullop,string("|",1),yyvsp[-2]);
if (ops[yyvsp[-2]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; ;
break;}
case 58:
#line 202 "a2p.y"
{ yyval = oper3(OGETLINE,yyvsp[0],string("|",1),yyvsp[-3]);
if (ops[yyvsp[-3]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; ;
break;}
case 59:
#line 205 "a2p.y"
{ yyval = oper0(yyvsp[0]); need_entire = do_chop = TRUE; ;
break;}
case 60:
#line 207 "a2p.y"
{ yyval = oper1(yyvsp[-2],Nullop); need_entire = do_chop = TRUE; ;
break;}
case 61:
#line 209 "a2p.y"
{ yyval = oper1(yyvsp[-3],yyvsp[-1]); ;
break;}
case 62:
#line 211 "a2p.y"
{ yyval = oper1(yyvsp[-3],yyvsp[-1]); ;
break;}
case 63:
#line 213 "a2p.y"
{ yyval = oper2(OUSERFUN,yyvsp[-3],yyvsp[-1]); ;
break;}
case 64:
#line 215 "a2p.y"
{ yyval = oper1(OSPRINTF,yyvsp[0]); ;
break;}
case 65:
#line 217 "a2p.y"
{ yyval = oper3(OSUBSTR,yyvsp[-5],yyvsp[-3],yyvsp[-1]); ;
break;}
case 66:
#line 219 "a2p.y"
{ yyval = oper2(OSUBSTR,yyvsp[-3],yyvsp[-1]); ;
break;}
case 67:
#line 221 "a2p.y"
{ yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),yyvsp[-1]); ;
break;}
case 68:
#line 223 "a2p.y"
{ yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),oper1(OREGEX,yyvsp[-1]));;
break;}
case 69:
#line 225 "a2p.y"
{ yyval = oper2(OSPLIT,yyvsp[-3],aryrefarg(numary(yyvsp[-1]))); ;
break;}
case 70:
#line 227 "a2p.y"
{ yyval = oper2(OINDEX,yyvsp[-3],yyvsp[-1]); ;
break;}
case 71:
#line 229 "a2p.y"
{ yyval = oper2(OMATCH,yyvsp[-3],oper1(OREGEX,yyvsp[-1])); ;
break;}
case 72:
#line 231 "a2p.y"
{ yyval = oper2(OMATCH,yyvsp[-3],yyvsp[-1]); ;
break;}
case 73:
#line 233 "a2p.y"
{ yyval = oper2(OSUB,yyvsp[-3],yyvsp[-1]); ;
break;}
case 74:
#line 235 "a2p.y"
{ yyval = oper2(OSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); ;
break;}
case 75:
#line 237 "a2p.y"
{ yyval = oper2(OGSUB,yyvsp[-3],yyvsp[-1]); ;
break;}
case 76:
#line 239 "a2p.y"
{ yyval = oper2(OGSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); ;
break;}
case 77:
#line 241 "a2p.y"
{ yyval = oper3(OSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); ;
break;}
case 78:
#line 243 "a2p.y"
{ yyval = oper3(OSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); ;
break;}
case 79:
#line 245 "a2p.y"
{ yyval = oper3(OGSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); ;
break;}
case 80:
#line 247 "a2p.y"
{ yyval = oper3(OGSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); ;
break;}
case 81:
#line 251 "a2p.y"
{ yyval = oper1(OVAR,yyvsp[0]); ;
break;}
case 82:
#line 253 "a2p.y"
{ yyval = oper2(OVAR,aryrefarg(yyvsp[-3]),yyvsp[-1]); ;
break;}
case 83:
#line 255 "a2p.y"
{ yyval = oper1(OFLD,yyvsp[0]); ;
break;}
case 84:
#line 257 "a2p.y"
{ yyval = oper1(OVFLD,yyvsp[0]); ;
break;}
case 87:
#line 264 "a2p.y"
{ yyval = Nullop; ;
break;}
case 88:
#line 268 "a2p.y"
{ yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); ;
break;}
case 89:
#line 270 "a2p.y"
{ yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); ;
break;}
case 90:
#line 272 "a2p.y"
{ yyval = yyvsp[-1]; ;
break;}
case 91:
#line 276 "a2p.y"
{ yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); ;
break;}
case 92:
#line 278 "a2p.y"
{ yyval = Nullop; ;
break;}
case 93:
#line 282 "a2p.y"
{ yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); ;
break;}
case 94:
#line 284 "a2p.y"
{ yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); ;
break;}
case 95:
#line 286 "a2p.y"
{ yyval = oper0(ONEWLINE); ;
break;}
case 96:
#line 288 "a2p.y"
{ yyval = oper1(OCOMMENT,yyvsp[0]); ;
break;}
case 97:
#line 292 "a2p.y"
{ yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); ;
break;}
case 98:
#line 294 "a2p.y"
{ yyval = Nullop; ;
break;}
case 99:
#line 298 "a2p.y"
{ yyval = oper0(ONEWLINE); ;
break;}
case 100:
#line 300 "a2p.y"
{ yyval = oper1(OCOMMENT,yyvsp[0]); ;
break;}
case 101:
#line 305 "a2p.y"
{ yyval = oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0]); ;
break;}
case 102:
#line 307 "a2p.y"
{ yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); ;
break;}
case 103:
#line 309 "a2p.y"
{ yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); ;
break;}
case 104:
#line 311 "a2p.y"
{ yyval = oper2(OJUNK,oper1(OSCOMMENT,yyvsp[-1]),yyvsp[0]); ;
break;}
case 105:
#line 315 "a2p.y"
{ yyval = oper2(OSTATES,yyvsp[-1],yyvsp[0]); ;
break;}
case 106:
#line 317 "a2p.y"
{ yyval = Nullop; ;
break;}
case 107:
#line 322 "a2p.y"
{ yyval = oper2(OJUNK,oper2(OSTATE,yyvsp[-2],yyvsp[-1]),yyvsp[0]); ;
break;}
case 108:
#line 324 "a2p.y"
{ yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0])); ;
break;}
case 109:
#line 326 "a2p.y"
{ yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0])); ;
break;}
case 112:
#line 332 "a2p.y"
{ yyval = Nullop; ;
break;}
case 114:
#line 338 "a2p.y"
{ yyval = oper3(OPRINT,yyvsp[-2],yyvsp[-1],yyvsp[0]);
do_opens = TRUE;
saw_ORS = saw_OFS = TRUE;
if (!yyvsp[-2]) need_entire = TRUE;
if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; ;
break;}
case 115:
#line 344 "a2p.y"
{ yyval = oper1(OPRINT,yyvsp[0]);
if (!yyvsp[0]) need_entire = TRUE;
saw_ORS = saw_OFS = TRUE;
;
break;}
case 116:
#line 349 "a2p.y"
{ yyval = oper3(OPRINTF,yyvsp[-2],yyvsp[-1],yyvsp[0]);
do_opens = TRUE;
if (!yyvsp[-2]) need_entire = TRUE;
if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; ;
break;}
case 117:
#line 354 "a2p.y"
{ yyval = oper1(OPRINTF,yyvsp[0]);
if (!yyvsp[0]) need_entire = TRUE;
;
break;}
case 118:
#line 358 "a2p.y"
{ yyval = oper0(OBREAK); ;
break;}
case 119:
#line 360 "a2p.y"
{ yyval = oper0(ONEXT); ;
break;}
case 120:
#line 362 "a2p.y"
{ yyval = oper0(OEXIT); ;
break;}
case 121:
#line 364 "a2p.y"
{ yyval = oper1(OEXIT,yyvsp[0]); ;
break;}
case 122:
#line 366 "a2p.y"
{ yyval = oper0(OCONTINUE); ;
break;}
case 123:
#line 368 "a2p.y"
{ yyval = oper0(ORETURN); ;
break;}
case 124:
#line 370 "a2p.y"
{ yyval = oper1(ORETURN,yyvsp[0]); ;
break;}
case 125:
#line 372 "a2p.y"
{ yyval = oper2(ODELETE,aryrefarg(yyvsp[-3]),yyvsp[-1]); ;
break;}
case 126:
#line 376 "a2p.y"
{ yyval = oper1(OREDIR,string(">",1)); ;
break;}
case 127:
#line 378 "a2p.y"
{ yyval = oper1(OREDIR,string(">>",2)); ;
break;}
case 128:
#line 380 "a2p.y"
{ yyval = oper1(OREDIR,string("|",1)); ;
break;}
case 129:
#line 385 "a2p.y"
{ yyval = oper2(OIF,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); ;
break;}
case 130:
#line 387 "a2p.y"
{ yyval = oper3(OIF,yyvsp[-6],bl(yyvsp[-3],yyvsp[-4]),bl(yyvsp[0],yyvsp[-1])); ;
break;}
case 131:
#line 389 "a2p.y"
{ yyval = oper2(OWHILE,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); ;
break;}
case 132:
#line 391 "a2p.y"
{ yyval = oper2(ODO,bl(yyvsp[-4],yyvsp[-5]),yyvsp[-1]); ;
break;}
case 133:
#line 393 "a2p.y"
{ yyval = oper4(OFOR,yyvsp[-7],yyvsp[-5],yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); ;
break;}
case 134:
#line 395 "a2p.y"
{ yyval = oper4(OFOR,yyvsp[-6],string("",0),yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); ;
break;}
case 135:
#line 397 "a2p.y"
{ yyval = oper2(OFORIN,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); ;
break;}
case 136:
#line 399 "a2p.y"
{ yyval = oper3(OBLOCK,oper2(OJUNK,yyvsp[-3],yyvsp[-2]),Nullop,yyvsp[0]); ;
break;}
}
/* the action file gets copied in in place of this dollarsign */
#line 442 "bison.simple"
yyvsp -= yylen;
yyssp -= yylen;
#ifdef YYLSP_NEEDED
yylsp -= yylen;
#endif
#if YYDEBUG != 0
if (yydebug)
{
short *ssp1 = yyss - 1;
fprintf (stderr, "state stack now");
while (ssp1 != yyssp)
fprintf (stderr, " %d", *++ssp1);
fprintf (stderr, "\n");
}
#endif
*++yyvsp = yyval;
#ifdef YYLSP_NEEDED
yylsp++;
if (yylen == 0)
{
yylsp->first_line = yylloc.first_line;
yylsp->first_column = yylloc.first_column;
yylsp->last_line = (yylsp-1)->last_line;
yylsp->last_column = (yylsp-1)->last_column;
yylsp->text = 0;
}
else
{
yylsp->last_line = (yylsp+yylen-1)->last_line;
yylsp->last_column = (yylsp+yylen-1)->last_column;
}
#endif
/* Now "shift" the result of the reduction.
Determine what state that goes to,
based on the state we popped back to
and the rule number reduced by. */
yyn = yyr1[yyn];
yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
yystate = yytable[yystate];
else
yystate = yydefgoto[yyn - YYNTBASE];
goto yynewstate;
yyerrlab: /* here on detecting error */
if (! yyerrstatus)
/* If not already recovering from an error, report this error. */
{
++yynerrs;
#ifdef YYERROR_VERBOSE
yyn = yypact[yystate];
if (yyn > YYFLAG && yyn < YYLAST)
{
int size = 0;
char *msg;
int x, count;
count = 0;
for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
if (yycheck[x + yyn] == x)
size += strlen(yytname[x]) + 15, count++;
msg = (char *) malloc(size + 15);
if (msg != 0)
{
strcpy(msg, "parse error");
if (count < 5)
{
count = 0;
for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
if (yycheck[x + yyn] == x)
{
strcat(msg, count == 0 ? ", expecting `" : " or `");
strcat(msg, yytname[x]);
strcat(msg, "'");
count++;
}
}
yyerror(msg);
free(msg);
}
else
yyerror ("parse error; also virtual memory exceeded");
}
else
#endif /* YYERROR_VERBOSE */
yyerror("parse error");
}
goto yyerrlab1;
yyerrlab1: /* here on error raised explicitly by an action */
if (yyerrstatus == 3)
{
/* if just tried and failed to reuse lookahead token after an error, discard it. */
/* return failure if at end of input */
if (yychar == YYEOF)
YYABORT;
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
#endif
yychar = YYEMPTY;
}
/* Else will try to reuse lookahead token
after shifting the error token. */
yyerrstatus = 3; /* Each real token shifted decrements this */
goto yyerrhandle;
yyerrdefault: /* current state does not do anything special for the error token. */
#if 0
/* This is wrong; only states that explicitly want error tokens
should shift them. */
yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
if (yyn) goto yydefault;
#endif
yyerrpop: /* pop the current state because it cannot handle the error token */
if (yyssp == yyss) YYABORT;
yyvsp--;
yystate = *--yyssp;
#ifdef YYLSP_NEEDED
yylsp--;
#endif
#if YYDEBUG != 0
if (yydebug)
{
short *ssp1 = yyss - 1;
fprintf (stderr, "Error: state stack now");
while (ssp1 != yyssp)
fprintf (stderr, " %d", *++ssp1);
fprintf (stderr, "\n");
}
#endif
yyerrhandle:
yyn = yypact[yystate];
if (yyn == YYFLAG)
goto yyerrdefault;
yyn += YYTERROR;
if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
goto yyerrdefault;
yyn = yytable[yyn];
if (yyn < 0)
{
if (yyn == YYFLAG)
goto yyerrpop;
yyn = -yyn;
goto yyreduce;
}
else if (yyn == 0)
goto yyerrpop;
if (yyn == YYFINAL)
YYACCEPT;
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Shifting error token, ");
#endif
*++yyvsp = yylval;
#ifdef YYLSP_NEEDED
*++yylsp = yylloc;
#endif
yystate = yyn;
goto yynewstate;
}
#line 402 "a2p.y"
#include "a2py.c"