perl 5.0 alpha 3
[perl.git] / perly.c
1 #ifndef lint
2 static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91";
3 #endif
4 #define YYBYACC 1
5 #line 39 "perly.y"
6 #include "EXTERN.h"
7 #include "perl.h"
8
9 /*SUPPRESS 530*/
10 /*SUPPRESS 593*/
11 /*SUPPRESS 595*/
12
13 #line 50 "perly.y"
14 typedef union {
15     I32 ival;
16     char *pval;
17     OP *opval;
18     GV *gvval;
19 } YYSTYPE;
20 #line 21 "y.tab.c"
21 #define WORD 257
22 #define METHOD 258
23 #define THING 259
24 #define PMFUNC 260
25 #define PRIVATEREF 261
26 #define LABEL 262
27 #define FORMAT 263
28 #define SUB 264
29 #define PACKAGE 265
30 #define WHILE 266
31 #define UNTIL 267
32 #define IF 268
33 #define UNLESS 269
34 #define ELSE 270
35 #define ELSIF 271
36 #define CONTINUE 272
37 #define FOR 273
38 #define LOOPEX 274
39 #define DOTDOT 275
40 #define FUNC0 276
41 #define FUNC1 277
42 #define FUNC 278
43 #define RELOP 279
44 #define EQOP 280
45 #define MULOP 281
46 #define ADDOP 282
47 #define DOLSHARP 283
48 #define DO 284
49 #define LOCAL 285
50 #define DELETE 286
51 #define HASHBRACK 287
52 #define NOAMP 288
53 #define LSTOP 289
54 #define OROR 290
55 #define ANDAND 291
56 #define BITOROP 292
57 #define BITANDOP 293
58 #define UNIOP 294
59 #define SHIFTOP 295
60 #define MATCHOP 296
61 #define ARROW 297
62 #define UMINUS 298
63 #define REFGEN 299
64 #define POWOP 300
65 #define PREINC 301
66 #define PREDEC 302
67 #define POSTINC 303
68 #define POSTDEC 304
69 #define YYERRCODE 256
70 short yylhs[] = {                                        -1,
71    30,    0,    7,    3,    8,    8,    8,    9,    9,    9,
72     9,   23,   23,   23,   23,   23,   23,   13,   13,   13,
73    11,   11,   11,   11,   29,   29,   10,   10,   10,   10,
74    10,   10,   10,   10,   12,   12,   26,   26,   28,   28,
75     1,    1,    1,    2,    2,   31,   31,   32,   32,   14,
76    14,   27,   27,   27,   27,   27,   27,   27,   27,   15,
77    15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
78    15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
79    15,   15,   16,   16,   16,   16,   16,   16,   16,   16,
80    16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
81    16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
82    16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
83    16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
84    16,   16,   16,   16,   16,   16,   16,   24,   24,   22,
85    17,   18,   19,   20,   21,   25,   25,   25,   25,    4,
86     4,    5,    5,    6,    6,
87 };
88 short yylen[] = {                                         2,
89     0,    2,    4,    0,    0,    2,    2,    2,    1,    2,
90     3,    1,    1,    3,    3,    3,    3,    0,    2,    6,
91     6,    6,    4,    4,    0,    2,    7,    7,    5,    5,
92     8,    7,   10,    3,    0,    1,    0,    1,    0,    1,
93     1,    1,    1,    3,    2,    3,    3,    3,    2,    3,
94     1,    3,    5,    4,    6,    6,    3,    2,    4,    3,
95     4,    4,    4,    4,    4,    4,    4,    4,    3,    3,
96     3,    3,    3,    3,    3,    3,    3,    3,    3,    5,
97     3,    1,    2,    2,    2,    2,    2,    2,    2,    2,
98     2,    2,    3,    2,    3,    2,    3,    3,    1,    1,
99     4,    5,    1,    1,    1,    5,    6,    6,    5,    4,
100     5,    6,    8,    1,    1,    3,    4,    3,    2,    2,
101     4,    5,    4,    5,    1,    2,    1,    2,    2,    1,
102     3,    3,    4,    4,    6,    1,    1,    0,    1,    2,
103     2,    2,    2,    2,    2,    1,    1,    1,    1,    2,
104     1,    2,    1,    3,    2,
105 };
106 short yydefred[] = {                                      1,
107     0,    5,    0,   40,    0,    0,    0,    6,   41,    7,
108     9,    0,   42,   43,    4,    0,   45,    0,    0,   49,
109    12,    0,    0,  114,    0,  149,    0,    0,    0,    0,
110     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
111     0,    0,    0,    0,    0,    0,    0,    0,    0,   10,
112     0,    0,    0,    0,    0,    0,    0,    0,    0,    8,
113     0,    0,    0,    0,    0,  103,  105,  100,    0,    0,
114     0,  137,    5,   44,   47,   46,   48,  146,  148,  147,
115     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
116     0,    0,  126,    0,    0,    0,  144,    0,  120,    0,
117     0,    0,    0,    0,    0,    0,    0,    0,   58,    0,
118   128,    0,    0,    0,    0,   90,   91,    0,    0,    0,
119     0,   96,    0,  140,  141,  142,  143,  145,    0,   34,
120     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
121     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
122    88,   89,    0,    0,    0,    0,    0,   11,    0,    0,
123    57,    0,    0,    0,    0,    0,    0,    0,    0,    0,
124     0,    0,    0,   36,    0,  131,  132,    0,    0,    0,
125     0,    0,    0,    0,   98,    0,    0,   97,  118,   52,
126     0,  151,    0,    0,    0,  153,   95,   26,    0,    0,
127     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
128     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
129     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
130     0,    0,  116,    0,    0,    0,    3,  134,    0,    0,
131    29,    0,   30,    0,    0,    0,   23,    0,   24,    0,
132     0,    0,  133,   59,    0,  121,    0,  123,    0,    0,
133     0,    0,  155,    0,  150,    0,  152,    0,    0,    0,
134     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
135   101,    0,  110,  117,    0,   54,    0,    0,    0,    0,
136    19,    0,    0,    0,    0,    0,   53,  122,  124,    0,
137     0,  154,  109,    0,    0,    0,    0,  102,  106,  111,
138     0,  135,   27,   28,   21,    0,   22,    0,   32,    0,
139     0,  112,  108,  107,   56,   55,    0,    0,   31,    0,
140     0,    0,  113,   20,   33,
141 };
142 short yydgoto[] = {                                       1,
143     8,    9,   73,  194,  197,  188,   79,    3,   10,   11,
144    60,  172,  247,  108,   62,   63,   64,   65,   66,   67,
145    68,   69,  174,  109,   71,  164,   72,   12,  130,    2,
146    13,   14,
147 };
148 short yysindex[] = {                                      0,
149     0,    0,   20,    0, -122, -241,  -57,    0,    0,    0,
150     0,  606,    0,    0,    0,  -84,    0,  -32,   39,    0,
151     0,    0,  -33,    0,   19,    0,  -28,  -23,  -21,  -19,
152   169, -143,   77,   83,  107,  -33, 2774, 2835,  172,  884,
153  -108, 2835, 2835, 2835, 2835, 2835, 2835, 2835,  945,    0,
154  2835, 2835,  992,  -33,  -33,  -33,  -33,  -33, -106,    0,
155   -14, 1210,  -59,  -60,  -58,    0,    0,    0,  143,  159,
156   -76,    0,    0,    0,    0,    0,    0,    0,    0,    0,
157  2835, 2835, 2835,  -84, 2835,  -84, 2835,  -84, 2835,  -84,
158  1056,  194,    0,  201, 1262, 2835,    0,  209,    0,   -1,
159   -30,   -1,  223,  147,  139,   28, 2835,  231,    0, 1323,
160     0,   -1, -237, -237, -237,    0,    0,  182,  115, -237,
161  -237,    0,  -18,    0,    0,    0,    0,    0,  -84,    0,
162  2835, 2835, 2835, 2835, 2835, 2835, 2835, 2835, 1370, 1434,
163  2835, 2835, 1640, 1701, 1748, 1812, 2018, 2835, 2079,  -87,
164     0,    0, 2835, 2835, 2835, 2835, 2126,    0,  -92, -119,
165     0, 4249,  231,  245, -106,  141, -106,  217,  -44,  246,
166   -44,  233,  -36,    0, 2835,    0,    0,  257,  255, 1323,
167  2190, 2396,  181, 2835,    0, 2457,  184,    0,    0,    0,
168  2835,    0, 2504,  215, 2568,    0,    0,    0,  231,  231,
169   231,  231, 1210,  -89,   -1, -174, 2835,  -40, 2835, -236,
170  1210,  409, 2835,  345, 2835,  376, 2835, -238, 2835,  382,
171  2835, -247,   16, 2835,   16, 2835,  270, 2835,   68,  -16,
172    75,  -15,    0,  115,  271, 2835,    0,    0, 2835,  -84,
173     0,  -84,    0,  -84,  -84,  277,    0,  -84,    0, 2835,
174   -84,  115,    0,    0,  278,    0,  115,    0,  115, 2835,
175    96,  193,    0,   -4,    0, 2835,    0, 1210, 1210, 2835,
176  1210, 1210, 1210, 1210, 1210, 1210,  116, 2835,    3,  196,
177     0,  199,    0,    0, 2835,    0, 4397, -106, -106,  -44,
178     0, 2835,  -44,  266, -106,  -84,    0,    0,    0,  136,
179   203,    0,    0,    4, 1102,  218,  303,    0,    0,    0,
180   304,    0,    0,    0,    0,  264,    0, 1056,    0, -106,
181   228,    0,    0,    0,    0,    0,  -84,  307,    0,  313,
182   -44,  -84,    0,    0,    0,
183 };
184 short yyrindex[] = {                                      0,
185     0,    0,  229,    0,    0,    0,    0,    0,    0,    0,
186     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
187     0,  496,    0,    0,    0,    0,    0,    0,    0,    0,
188     0, 2708, 2864,    0,    0,    0,    0,    0,    0,    0,
189     0, 2904, 2978,    0,    0,    0,    0,    0,    0,    0,
190     0,    0,    0,    0,    0,    0,    0,    0,   73,    0,
191    11,  363, 4373,  557, 3023,    0,    0,    0, 3161,    0,
192     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
193  2904,    0,  322,    0,    0,    0,    0,    0,    0,    0,
194   305,    0,    0,    0,    0,  324,    0, 3236,    0, 2284,
195  3280, 3735,    0,    0,    0,    0, 2904, 3408,    0, 3449,
196     0, 3768, 4128, 4182, 4218,    0,    0, 3319,    0, 4284,
197  4320,    0,    0,    0,    0,    0,    0,    0,    0,    0,
198     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
199     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
200     0,    0,    0,    0,    0,    0,    0,    0,    0,  678,
201     0,    0,   15,    0,  125,    0,  125,    0,  177,    0,
202   177,    0,  309,    0,    0,    0,    0,    0,    0,  324,
203     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
204     0,    0,    0, 3362,    0,    0,    0,    0,   79,   98,
205   128,  135,  860,  958, 3834, 3867,    0, 1906,    0, 1150,
206  1575,    0,    0, 1021,    0, 4047,    0, 4005,    0, 3915,
207     0, 1528, 3577,    0, 3702,    0,    0,    0,    0,    0,
208     0,    0,    0,    0,    0, 2904,    0,    0,    0,    0,
209     0,    0,    0,    0,    0,    0,    0,    0,    0,  310,
210     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
211     0,    0,    0,    0,    0,    0,    0, 1953, 2331,    0,
212  2667, 3620, 3907, 3931, 4037, 4063,    0,  324,    0,    0,
213     0,    0,    0,    0,  324,    0,    0,  125,  125,  177,
214     0,    0,  177,    0,  125,    0,    0,    0,    0,    0,
215     0,    0,    0,    0,   10,    0,    0,    0,    0,    0,
216     0,    0,    0,    0,    0,    0,    0,  325,    0,  125,
217     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
218   177,    0,    0,    0,    0,
219 };
220 short yygindex[] = {                                      0,
221     0,    0,    0, -158,    0,    0,   -5,  298,    0,    0,
222     0,   55, -157,   -3, 4489,  520,  488,    0,    0,    0,
223     0,    0,  364,  216,  527,  127,    0,    0, -147,    0,
224     0,    0,
225 };
226 #define YYTABLESIZE 4759
227 short yytable[] = {                                      17,
228    15,   20,   55,  228,  192,  237,   59,  193,   61,  182,
229    74,   83,   76,  249,  251,   18,   85,  241,   87,  243,
230    89,   84,   86,   88,   90,  195,   75,  135,  135,  135,
231   154,   99,  156,  139,  140,  226,  106,  111,   15,  135,
232   137,  138,  139,  140,  139,  119,  135,  135,  148,  123,
233    80,   13,  149,   80,  146,   38,  147,  148,   82,  148,
234   154,  149,  153,  149,  155,  151,  152,   80,   80,   13,
235    80,  186,   25,   38,  196,  284,  281,  283,  165,  163,
236   167,  166,  169,  168,  171,  170,  187,  173,  303,   15,
237    15,  178,  153,  296,   15,  308,  323,   77,  298,   15,
238   299,   15,   80,   15,  137,   25,  139,  140,   25,   25,
239    25,  135,   25,   93,   25,   25,   94,   25,  135,   16,
240   147,  148,   95,  198,   25,  149,  280,  199,  200,  201,
241   202,   25,  315,  282,   16,  317,   25,   16,   17,  135,
242   313,  314,    4,    5,    6,    7,   96,  319,  107,  229,
243   230,  231,  232,  234,  301,  192,   17,   25,  193,  135,
244    25,   25,   25,   25,   25,  129,   25,   25,   14,   25,
245   227,  252,  329,  334,  306,   15,   18,  257,  259,  135,
246   261,  242,  157,   25,  135,  235,   14,  264,   25,  137,
247   138,  139,  140,   15,  321,   25,  236,   25,   25,   19,
248   143,  144,  145,  146,   55,  147,  148,   55,   91,   18,
249   149,  103,   18,   18,   18,   25,   18,  158,   18,   18,
250   159,   18,  277,   78,  279,  245,  246,   26,    2,  131,
251   132,  133,  134,  175,  288,   18,  289,  150,  290,  291,
252    18,  176,  293,  151,  152,  295,  163,   25,  181,   25,
253    25,  131,  132,  133,  134,  148,  300,  244,   55,  149,
254   135,   39,  304,  185,   39,   39,   39,   18,   39,  184,
255    39,   39,  191,   39,  135,   80,   80,   80,   80,  139,
256   140,    4,    5,    6,    7,  240,  248,   39,  316,  135,
257   320,  250,   39,  147,  148,  254,  161,  253,  149,   18,
258   135,   18,   18,  260,  327,  266,   80,  135,  263,  278,
259   285,  179,   80,   80,   61,  149,  292,  302,  297,   39,
260   309,  331,  189,  310,  318,  190,  335,  322,   25,   25,
261    25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
262    25,   25,  324,  325,  326,   25,   25,  332,   25,   25,
263    25,   39,  330,  333,   39,   25,   25,   25,   25,   25,
264    25,   25,   37,   35,  138,   35,   25,   13,   37,  148,
265   160,   25,  328,   25,   25,   70,  294,    0,    0,    0,
266    25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
267    25,   25,   25,   25,    0,  255,    0,   25,   25,    0,
268    25,   25,   25,   51,    0,    0,   51,   25,   25,   25,
269    25,   25,   25,   25,    0,    0,    0,    0,   25,    0,
270    51,   51,    0,   25,    0,   25,   25,    0,    0,    0,
271     0,    0,   18,   18,   18,   18,   18,   18,   18,   18,
272    18,   18,   18,   18,   18,   18,    0,    0,    0,   18,
273    18,  286,   18,   18,   18,   51,    0,    0,    0,   18,
274    18,   18,   18,   18,   18,   18,  270,    0,    0,  141,
275    18,  142,    0,    0,    0,   18,    0,   18,   18,    0,
276     0,    0,    0,    0,   39,   39,   39,   39,   39,   39,
277     0,    0,    0,  307,   39,   39,   39,   39,    0,    0,
278   311,   39,   39,    0,   39,   39,   39,    0,    0,    0,
279    80,   39,   39,   39,   39,   39,   39,   39,   92,    0,
280     0,    0,   39,   80,  101,    0,  104,   39,  146,   39,
281    39,  146,  146,  146,    0,  146,  136,  146,  146,  136,
282   146,   80,   80,   80,   80,   80,    0,    0,    0,   81,
283     0,    0,    0,  136,  136,    0,  136,    0,  136,  146,
284     0,    0,   97,  113,  114,  115,  116,  117,  110,    0,
285   120,  121,    0,    0,    0,    0,    0,    0,    0,    0,
286   124,  125,  126,  127,  128,    0,  146,    0,  136,  147,
287   183,    0,  147,  147,  147,    0,  147,   99,  147,  147,
288    99,  147,    0,    0,    0,    0,    0,    0,    0,    0,
289     0,    0,    0,    0,   99,   99,    0,   99,  146,   99,
290   147,  146,  180,  137,  138,  139,  140,    0,   51,   51,
291    51,   51,    0,    0,    0,  144,  145,  146,   44,  147,
292   148,   55,   57,   54,  149,   49,    0,   58,   52,   99,
293    51,    0,    0,    0,  137,  138,  139,  140,    0,   51,
294   137,  138,  139,  140,   50,   51,   51,  145,  146,   56,
295   147,  148,    0,    0,    0,  149,  147,  148,    0,    0,
296     0,  149,  147,  136,    0,    0,    0,  137,  138,  139,
297   140,    0,    0,    0,    0,    0,   53,    0,  143,  144,
298   145,  146,    0,  147,  148,    0,    0,    0,  149,    0,
299    39,    0,    0,   39,   39,   39,    0,   39,    0,   39,
300    39,    0,   39,    0,    0,    0,    0,    0,   15,    0,
301     0,   45,    0,    0,    0,    0,   39,    0,    0,    0,
302     0,   39,    0,    0,    0,    0,    0,    0,    0,    0,
303     0,    0,  146,  146,  146,  146,  146,    0,    0,    0,
304     0,  136,  136,  136,  136,    0,    0,    0,   39,  146,
305   136,  146,  146,  146,  136,  136,  136,  136,  146,  146,
306   146,  146,  146,  146,  146,  136,  136,  136,  136,  146,
307   136,  136,  136,    0,  146,  136,  146,  146,  136,  136,
308    39,    0,    0,   39,    0,    0,    0,    0,    0,    0,
309     0,    0,    0,  147,  147,  147,  147,  147,    0,    0,
310     0,    0,   99,   99,   99,   99,    0,    0,    0,    0,
311   147,   99,  147,  147,  147,   99,   99,   99,   99,  147,
312   147,  147,  147,  147,  147,  147,   99,   99,   99,   99,
313   147,   99,   99,   99,    0,  147,   99,  147,  147,   99,
314    99,   21,   22,   23,   24,   25,   26,    0,    0,    0,
315     0,   27,   28,   29,   30,    0,    0,    0,   31,   32,
316     0,   33,   34,   35,    0,    0,    0,    0,   36,   37,
317    38,   39,   40,   41,   42,    0,    0,    0,    0,   43,
318    50,    0,    0,   50,   46,    0,   47,   48,    0,    0,
319     0,    0,    0,    0,    0,    0,   44,   50,   50,   55,
320    57,   54,    0,   49,    0,   58,   52,    0,   51,    0,
321     0,    0,    0,   39,   39,   39,   39,   39,   39,    0,
322     0,    0,  105,   39,   39,   39,   39,   56,    0,    0,
323    39,   39,   50,   39,   39,   39,    0,    0,    0,    0,
324    39,   39,   39,   39,   39,   39,   39,    0,    0,    0,
325     0,   39,    0,    0,   53,    0,   39,   44,   39,   39,
326    55,   57,   54,    0,   49,  118,   58,   52,    0,   51,
327     0,    0,    0,    0,    0,    0,    0,    0,   77,    0,
328     0,   77,    0,    0,    0,    0,   15,    0,   56,   45,
329     0,    0,    0,    0,    0,   77,   77,    0,   77,    0,
330    77,    0,    0,    0,   44,    0,    0,   55,   57,   54,
331     0,   49,    0,   58,   52,   53,   51,    0,    0,    0,
332     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
333    77,    0,    0,    0,    0,   56,    0,    0,    0,    0,
334     0,   79,    0,    0,   79,    0,    0,   15,    0,    0,
335    45,    0,    0,    0,    0,    0,    0,    0,   79,   79,
336     0,   79,   53,   79,  122,    0,    0,    0,   44,    0,
337     0,   55,   57,   54,    0,   49,    0,   58,   52,    0,
338    51,    0,    0,    0,    0,    0,    0,    0,    0,    0,
339     0,    0,    0,   79,   15,    0,    0,   45,    0,   56,
340     0,    0,    0,    0,    0,   50,   50,   50,   50,    0,
341     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
342    22,   23,   24,   25,   26,    0,   53,    0,    0,    0,
343     0,    0,    0,    0,    0,    0,   50,   32,    0,   33,
344    34,   35,   50,   50,  142,    0,   36,   37,   38,   39,
345    40,   41,   42,    0,    0,    0,    0,   43,   15,    0,
346     0,   45,   46,    0,   47,   48,    0,    0,    0,    0,
347    71,    0,    0,   71,    0,    0,    0,    0,    0,    0,
348     0,   22,   23,   24,   25,   26,    0,   71,   71,    0,
349    71,    0,   71,    0,    0,    0,    0,    0,   32,    0,
350    33,   34,   35,   77,   77,   77,   77,   36,   37,   38,
351    39,   40,   41,   42,    0,    0,    0,    0,   43,    0,
352     0,    0,   71,   46,    0,   47,   48,    0,   22,   23,
353    24,   25,   26,    0,   77,    0,    0,    0,    0,    0,
354    77,   77,    0,    0,    0,   32,    0,   33,   34,   35,
355   141,    0,  142,    0,   36,   37,   38,   39,   40,   41,
356    42,    0,    0,    0,    0,   43,   79,   79,   79,   79,
357    46,    0,   47,   48,   44,   79,    0,   55,   57,   54,
358     0,   49,  177,   58,   52,    0,   51,    0,    0,    0,
359    79,   21,   22,   23,   24,   25,   26,   79,    0,    0,
360     0,    0,    0,   79,   79,   56,    0,    0,    0,   32,
361     0,   33,   34,   35,    0,    0,    0,    0,   36,   37,
362    38,   39,   40,   41,   42,    0,    0,    0,    0,   43,
363     0,    0,   53,    0,   46,   44,   47,   48,   55,   57,
364    54,    0,   49,    0,   58,   52,    0,   51,    0,    0,
365     0,    0,    0,    0,    0,    0,  136,    0,    0,    0,
366   137,  138,  139,  140,   15,    0,   56,   45,    0,    0,
367     0,  143,  144,  145,  146,    0,  147,  148,    0,    0,
368     0,  149,   44,    0,    0,   55,   57,   54,    0,   49,
369     0,   58,   52,   53,   51,   71,   71,   71,   71,    0,
370     0,    0,    0,    0,   71,    0,    0,    0,   71,   71,
371   207,   71,    0,   56,    0,    0,    0,    0,    0,   71,
372    71,   71,   71,    0,   71,   15,   71,    0,   45,    0,
373     0,    0,   71,   71,    0,    0,    0,    0,    0,    0,
374    53,    0,    0,    0,    0,    0,   44,    0,    0,   55,
375    57,   54,    0,   49,    0,   58,   52,    0,   51,    0,
376     0,    0,    0,    0,  136,    0,    0,    0,  137,  138,
377   139,  140,   15,    0,  209,   45,    0,   56,    0,  143,
378   144,  145,  146,    0,  147,  148,    0,    0,    0,  149,
379     0,    0,    0,    0,    0,    0,    0,    0,   22,   23,
380    24,   25,   26,    0,   53,    0,    0,    0,    0,    0,
381     0,    0,    0,    0,    0,   32,    0,   33,   34,   35,
382     0,    0,    0,    0,   36,   37,   38,   39,   40,   41,
383    42,    0,    0,    0,    0,   43,   15,    0,    0,   45,
384    46,    0,   47,   48,    0,    0,    0,    0,   72,    0,
385     0,   72,    0,    0,    0,    0,    0,    0,    0,   22,
386    23,   24,   25,   26,    0,   72,   72,    0,   72,    0,
387    72,    0,    0,    0,    0,    0,   32,    0,   33,   34,
388    35,    0,    0,    0,    0,   36,   37,   38,   39,   40,
389    41,   42,    0,    0,    0,   60,   43,    0,   60,  159,
390    72,   46,    0,   47,   48,    0,   22,   23,   24,   25,
391    26,    0,   60,   60,    0,    0,    0,    0,    0,    0,
392     0,    0,    0,   32,    0,   33,   34,   35,    0,    0,
393     0,    0,   36,   37,   38,   39,   40,   41,   42,    0,
394     0,    0,    0,   43,    0,    0,    0,   60,   46,    0,
395    47,   48,   44,    0,    0,   55,   57,   54,    0,   49,
396     0,   58,   52,    0,   51,    0,    0,    0,    0,    0,
397    22,   23,   24,   25,   26,    0,    0,    0,    0,    0,
398   213,    0,    0,   56,    0,    0,    0,   32,    0,   33,
399    34,   35,    0,    0,    0,    0,   36,   37,   38,   39,
400    40,   41,   42,    0,    0,    0,    0,   43,    0,    0,
401    53,    0,   46,   44,   47,   48,   55,   57,   54,    0,
402    49,    0,   58,   52,    0,   51,    0,    0,    0,    0,
403     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
404     0,  215,   15,    0,   56,   45,    0,    0,    0,    0,
405     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
406    44,    0,    0,   55,   57,   54,    0,   49,    0,   58,
407    52,   53,   51,   72,   72,   72,   72,    0,    0,    0,
408     0,    0,   72,    0,    0,    0,   72,   72,  217,    0,
409     0,   56,    0,    0,    0,    0,    0,   72,   72,   72,
410    72,    0,   72,   15,   72,    0,   45,    0,    0,    0,
411    72,   72,    0,    0,    0,    0,    0,    0,   53,    0,
412    60,   60,   60,   60,   44,    0,    0,   55,   57,   54,
413     0,   49,    0,   58,   52,    0,   51,    0,    0,    0,
414     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
415    15,   60,  219,   45,    0,   56,    0,   60,   60,    0,
416     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
417     0,    0,    0,    0,    0,    0,   22,   23,   24,   25,
418    26,    0,   53,    0,    0,    0,    0,    0,    0,    0,
419     0,    0,    0,   32,    0,   33,   34,   35,    0,    0,
420     0,    0,   36,   37,   38,   39,   40,   41,   42,    0,
421     0,    0,    0,   43,   15,    0,    0,   45,   46,    0,
422    47,   48,    0,    0,    0,    0,   70,    0,    0,   70,
423     0,    0,    0,    0,    0,    0,    0,   22,   23,   24,
424    25,   26,    0,   70,   70,    0,   70,    0,   70,    0,
425     0,    0,    0,    0,   32,    0,   33,   34,   35,    0,
426     0,    0,    0,   36,   37,   38,   39,   40,   41,   42,
427     0,    0,    0,   62,   43,    0,   62,    0,   70,   46,
428     0,   47,   48,    0,   22,   23,   24,   25,   26,    0,
429    62,   62,    0,    0,    0,    0,    0,    0,    0,    0,
430     0,   32,    0,   33,   34,   35,    0,    0,    0,    0,
431    36,   37,   38,   39,   40,   41,   42,    0,    0,    0,
432     0,   43,    0,    0,    0,   62,   46,    0,   47,   48,
433    44,    0,    0,   55,   57,   54,    0,   49,    0,   58,
434    52,    0,   51,    0,    0,    0,    0,    0,   22,   23,
435    24,   25,   26,    0,    0,    0,    0,    0,  221,    0,
436     0,   56,    0,    0,    0,   32,    0,   33,   34,   35,
437     0,    0,    0,    0,   36,   37,   38,   39,   40,   41,
438    42,    0,    0,    0,    0,   43,    0,    0,   53,    0,
439    46,   44,   47,   48,   55,   57,   54,    0,   49,    0,
440    58,   52,    0,   51,    0,    0,    0,    0,    0,    0,
441     0,    0,    0,    0,    0,    0,    0,    0,    0,  224,
442    15,    0,   56,   45,    0,    0,    0,    0,    0,    0,
443     0,    0,    0,    0,    0,    0,    0,    0,   44,    0,
444     0,   55,   57,   54,    0,   49,  233,   58,   52,   53,
445    51,   70,   70,   70,   70,    0,    0,    0,    0,    0,
446    70,    0,    0,    0,   70,   70,   70,   70,    0,   56,
447     0,    0,    0,    0,    0,   70,   70,   70,   70,    0,
448    70,   15,   70,    0,   45,    0,    0,    0,   70,   70,
449     0,    0,    0,    0,    0,    0,   53,    0,   62,   62,
450    62,   62,   44,    0,    0,   55,   57,   54,    0,   49,
451   256,   58,   52,    0,   51,    0,    0,    0,    0,    0,
452     0,    0,    0,    0,    0,    0,    0,    0,   15,   62,
453     0,   45,    0,   56,    0,   62,   62,    0,    0,    0,
454     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
455     0,    0,    0,    0,   22,   23,   24,   25,   26,    0,
456    53,    0,    0,    0,    0,    0,    0,    0,    0,    0,
457     0,   32,    0,   33,   34,   35,    0,    0,    0,    0,
458    36,   37,   38,   39,   40,   41,   42,    0,    0,    0,
459     0,   43,   15,    0,    0,   45,   46,    0,   47,   48,
460     0,    0,    0,    0,  119,    0,    0,  119,    0,    0,
461     0,    0,    0,    0,    0,   22,   23,   24,   25,   26,
462     0,  119,  119,    0,  119,    0,  119,    0,    0,    0,
463     0,    0,   32,    0,   33,   34,   35,    0,    0,    0,
464     0,   36,   37,   38,   39,   40,   41,   42,    0,    0,
465     0,   63,   43,    0,   63,    0,  119,   46,    0,   47,
466    48,    0,   22,   23,   24,   25,   26,    0,   63,   63,
467     0,    0,    0,    0,    0,    0,    0,    0,    0,   32,
468     0,   33,   34,   35,    0,    0,    0,    0,   36,   37,
469    38,   39,   40,   41,   42,    0,    0,    0,    0,   43,
470     0,    0,    0,   63,   46,    0,   47,   48,   44,    0,
471     0,   55,   57,   54,    0,   49,  258,   58,   52,    0,
472    51,    0,    0,    0,    0,    0,   22,   23,   24,   25,
473    26,    0,    0,    0,    0,    0,    0,    0,    0,   56,
474     0,    0,    0,   32,    0,   33,   34,   35,    0,    0,
475     0,    0,   36,   37,   38,   39,   40,   41,   42,    0,
476     0,    0,    0,   43,    0,    0,   53,    0,   46,   44,
477    47,   48,   55,   57,   54,    0,   49,    0,   58,   52,
478     0,   51,    0,    0,    0,    0,    0,    0,    0,    0,
479     0,    0,    0,    0,    0,  262,    0,    0,   15,    0,
480    56,   45,    0,    0,    0,    0,    0,    0,    0,    0,
481     0,    0,    0,    0,    0,    0,   44,    0,    0,   55,
482    57,   54,    0,   49,  265,   58,   52,   53,   51,  119,
483   119,  119,  119,    0,    0,    0,    0,    0,  119,    0,
484     0,    0,  119,  119,    0,    0,    0,   56,    0,    0,
485     0,    0,    0,  119,  119,  119,  119,    0,    0,   15,
486   119,    0,   45,    0,    0,    0,  119,  119,    0,    0,
487     0,    0,    0,    0,   53,    0,   63,   63,   63,   63,
488    44,    0,    0,   55,   57,   54,    0,   49,    0,   58,
489    52,    0,   51,    0,    0,    0,    0,    0,    0,    0,
490     0,    0,    0,    0,    0,    0,   15,   63,    0,   45,
491     0,   56,    0,   63,   63,    0,    0,    0,    0,    0,
492     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
493     0,    0,   22,   23,   24,   25,   26,    0,   53,    0,
494   267,    0,    0,    0,    0,    0,    0,    0,    0,   32,
495     0,   33,   34,   35,    0,    0,    0,    0,   36,   37,
496    38,   39,   40,   41,   42,    0,    0,    0,    0,   43,
497    15,    0,    0,   45,   46,    0,   47,   48,    0,    0,
498     0,    0,    0,    0,    0,    0,    0,   68,    0,    0,
499    68,    0,    0,   22,   23,   24,   25,   26,    0,    0,
500     0,    0,    0,    0,   68,   68,    0,    0,    0,    0,
501    32,    0,   33,   34,   35,    0,    0,    0,    0,   36,
502    37,   38,   39,   40,   41,   42,    0,    0,  125,    0,
503    43,  125,    0,    0,    0,   46,    0,   47,   48,   68,
504    22,   23,   24,   25,   26,  125,  125,    0,  125,    0,
505   125,    0,    0,    0,    0,    0,    0,   32,    0,   33,
506    34,   35,    0,    0,    0,    0,   36,   37,   38,   39,
507    40,   41,   42,    0,    0,    0,    0,   43,    0,    0,
508   125,    0,   46,    0,   47,   48,   44,    0,    0,   55,
509    57,   54,    0,   49,    0,   58,   52,    0,   51,    0,
510     0,    0,    0,    0,   22,   23,   24,   25,   26,    0,
511     0,    0,    0,    0,    0,    0,    0,   56,    0,    0,
512     0,   32,    0,   33,   34,   35,    0,    0,    0,    0,
513    36,   37,   38,   39,   40,   41,   42,    0,    0,    0,
514     0,   43,    0,    0,   53,    0,   46,   44,   47,   48,
515    55,   57,   54,    0,   49,    0,   58,   52,    0,   51,
516     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
517     0,    0,    0,    0,    0,    0,   15,    0,   56,   45,
518     0,    0,    0,    0,  130,    0,    0,  130,    0,    0,
519     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
520     0,  130,  130,    0,  130,   53,  130,    0,    0,    0,
521     0,    0,   68,   68,   68,   68,    0,    0,    0,    0,
522     0,    0,    0,    0,  138,    0,    0,  138,    0,    0,
523     0,    0,    0,    0,    0,    0,  130,   15,    0,    0,
524    45,  138,  138,   68,  138,    0,  138,    0,    0,   68,
525    68,    0,    0,  125,  125,  125,  125,    0,    0,    0,
526     0,    0,  125,    0,    0,    0,  125,  125,  125,  125,
527     0,    0,    0,    0,    0,    0,  138,  125,  125,  125,
528   125,    0,  125,  125,  125,    0,    0,  125,    0,    0,
529   125,  125,    0,    0,    0,    0,    0,    0,  127,    0,
530     0,  127,    0,    0,    0,    0,    0,    0,    0,    0,
531    98,   23,   24,   25,   26,  127,  127,    0,  127,    0,
532   127,    0,    0,    0,    0,    0,    0,   32,    0,   33,
533    34,   35,    0,    0,    0,    0,   36,   37,   38,   39,
534    40,   41,   42,  104,    0,    0,  104,   43,    0,    0,
535   127,    0,   46,    0,   47,   48,    0,    0,    0,    0,
536   104,  104,    0,  104,    0,  104,    0,    0,    0,    0,
537     0,   22,   23,   24,   25,   26,    0,    0,    0,    0,
538     0,    0,    0,    0,    0,    0,    0,    0,   32,    0,
539    33,   34,   35,    0,    0,  104,    0,   36,   37,   38,
540    39,   40,   41,   42,    0,    0,    0,    0,   43,  130,
541   130,  130,  130,   46,    0,   47,   48,    0,  130,    0,
542     0,    0,  130,  130,  130,  130,    0,    0,    0,    0,
543     0,    0,    0,  130,  130,  130,  130,    0,  130,  130,
544   130,    0,    0,  130,    0,    0,  130,  130,    0,  138,
545   138,  138,  138,    0,    0,    0,    0,    0,  138,    0,
546     0,    0,  138,  138,  138,  138,    0,    0,    0,    0,
547     0,    0,    0,  138,  138,  138,  138,    0,  138,  138,
548   138,  115,    0,  138,  115,    0,  138,  138,    0,    0,
549     0,    0,    0,    0,    0,    0,    0,    0,  115,  115,
550     0,  115,    0,  115,    0,    0,    0,    0,    0,    0,
551     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
552     0,    0,    0,  127,  127,  127,  127,    0,    0,    0,
553     0,    0,  127,  115,    0,    0,  127,  127,  127,  127,
554     0,    0,    0,    0,    0,    0,    0,  127,  127,  127,
555   127,    0,  127,  127,  127,    0,  136,  127,    0,  136,
556   127,  127,    0,    0,    0,    0,    0,    0,  104,  104,
557   104,  104,    0,  136,  136,    0,  136,  104,  136,    0,
558     0,  104,  104,  104,  104,    0,    0,    0,    0,    0,
559     0,    0,  104,  104,  104,  104,    0,  104,  104,  104,
560    99,    0,  104,   99,    0,  104,  104,    0,  136,    0,
561     0,    0,    0,    0,    0,    0,    0,   99,   99,    0,
562    99,    0,   99,    0,    0,    0,    0,    0,    0,    0,
563     0,    0,    0,    0,    0,    0,    0,    0,    0,   94,
564     0,    0,   94,    0,    0,    0,    0,    0,    0,    0,
565     0,    0,   99,    0,    0,    0,   94,   94,    0,   94,
566     0,   94,    0,    0,    0,    0,    0,    0,    0,    0,
567     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
568     0,    0,   93,    0,    0,   93,    0,    0,    0,    0,
569     0,   94,    0,    0,    0,    0,    0,    0,    0,   93,
570    93,    0,   93,    0,   93,    0,  115,  115,  115,  115,
571     0,    0,    0,    0,    0,  115,    0,    0,    0,  115,
572   115,  115,  115,    0,    0,    0,    0,    0,  139,    0,
573   115,  115,  115,  115,   93,  115,  115,  115,    0,    0,
574   115,    0,    0,  115,  115,  139,  139,    0,  139,    0,
575   139,    0,    0,    0,    0,    0,    0,    0,    0,    0,
576     0,    0,    0,    0,    0,    0,    0,    0,    0,  138,
577     0,    0,  138,    0,    0,    0,    0,    0,    0,    0,
578   139,  136,  136,  136,  136,    0,  138,  138,    0,  138,
579   136,  138,    0,    0,  136,  136,  136,  136,    0,    0,
580     0,    0,    0,    0,    0,  136,  136,  136,  136,    0,
581   136,  136,  136,    0,    0,  136,    0,    0,  136,  136,
582     0,  138,    0,    0,    0,   99,   99,   99,   99,    0,
583     0,    0,    0,    0,   99,    0,    0,    0,   99,   99,
584    99,   99,    0,    0,    0,    0,    0,    0,    0,   99,
585    99,   99,   99,    0,   99,   99,   99,    0,    0,   99,
586     0,    0,   99,   99,   94,   94,   94,   94,    0,    0,
587     0,    0,    0,   94,    0,    0,    0,   94,   94,   94,
588    94,    0,    0,    0,    0,    0,    0,    0,   94,   94,
589    94,   94,    0,   94,   94,   94,    0,   81,   94,    0,
590    81,   94,   94,    0,    0,    0,    0,   93,   93,   93,
591    93,    0,    0,    0,   81,   81,   93,   81,    0,   81,
592    93,   93,   93,   93,    0,    0,    0,    0,    0,    0,
593     0,   93,   93,   93,   93,    0,   93,   93,   93,    0,
594    67,   93,    0,   67,   93,   93,    0,    0,    0,   81,
595     0,    0,    0,  139,  139,  139,  139,   67,   67,    0,
596     0,    0,  139,    0,    0,    0,  139,  139,  139,  139,
597     0,    0,    0,    0,    0,    0,    0,  139,  139,  139,
598   139,    0,  139,  139,  139,    0,    0,  139,    0,    0,
599   139,  139,   67,    0,  138,  138,  138,  138,    0,    0,
600     0,    0,    0,  138,    0,    0,    0,  138,  138,  138,
601   138,    0,    0,    0,    0,    0,    0,    0,  138,  138,
602   138,  138,   69,  138,  138,   69,    0,    0,  138,    0,
603     0,  138,  138,    0,    0,    0,    0,    0,    0,   69,
604    69,    0,   69,    0,   69,    0,    0,    0,    0,    0,
605     0,    0,    0,    0,    0,   92,    0,    0,   92,    0,
606     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
607     0,    0,   92,   92,   69,   92,    0,   92,    0,    0,
608     0,    0,    0,    0,    0,    0,    0,    0,  129,    0,
609     0,  129,    0,    0,    0,    0,    0,    0,    0,    0,
610     0,    0,    0,    0,    0,  129,  129,   92,  129,    0,
611   129,    0,    0,    0,    0,    0,    0,    0,    0,    0,
612     0,    0,   81,   81,   81,   81,    0,    0,    0,    0,
613     0,   81,    0,    0,    0,   81,   81,   81,   81,    0,
614   129,    0,    0,    0,    0,    0,   81,   81,   81,   81,
615     0,   81,   81,   81,   73,    0,    0,   73,    0,   81,
616    81,    0,    0,    0,    0,   67,   67,   67,   67,    0,
617     0,   73,   73,    0,   73,    0,   73,    0,    0,    0,
618     0,    0,    0,    0,    0,    0,    0,   74,    0,    0,
619    74,    0,    0,    0,    0,    0,   67,    0,    0,    0,
620     0,    0,   67,   67,   74,   74,   73,   74,    0,   74,
621     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
622     0,    0,    0,    0,    0,    0,    0,   66,    0,    0,
623    66,    0,    0,    0,    0,   75,    0,    0,   75,   74,
624     0,    0,    0,    0,   66,   66,    0,   69,   69,   69,
625    69,   65,   75,   75,   65,   75,   69,   75,    0,    0,
626    69,   69,   69,   69,    0,    0,    0,    0,   65,   65,
627     0,   69,   69,   69,   69,    0,   69,   69,   69,   66,
628    92,   92,   92,   92,   69,   69,    0,   75,    0,   92,
629     0,    0,    0,   92,   92,    0,    0,    0,    0,    0,
630     0,    0,    0,   65,   92,   92,   92,   92,    0,    0,
631     0,   92,    0,  129,  129,  129,  129,   92,   92,    0,
632     0,    0,  129,    0,    0,   76,  129,  129,   76,    0,
633     0,    0,    0,    0,    0,    0,    0,  129,  129,  129,
634   129,    0,   76,   76,  129,   76,    0,   76,    0,    0,
635   129,  129,    0,    0,    0,    0,    0,   64,    0,    0,
636    64,    0,    0,    0,    0,    0,    0,   78,    0,    0,
637    78,    0,    0,    0,   64,   64,    0,   76,    0,   73,
638    73,   73,   73,   61,   78,   78,   61,   78,   73,   78,
639     0,    0,    0,   73,    0,    0,    0,    0,    0,    0,
640    61,   61,    0,   73,   73,   73,   73,    0,    0,   64,
641    73,    0,   74,   74,   74,   74,   73,   73,    0,   78,
642     0,   74,    0,    0,    0,    0,    0,    0,    0,    0,
643     0,    0,    0,    0,    0,   61,   74,   74,   74,   74,
644     0,    0,    0,   74,    0,    0,    0,    0,   85,   74,
645    74,   85,   66,   66,   66,   66,    0,    0,    0,    0,
646    75,   75,   75,   75,    0,   85,   85,    0,   85,   75,
647    85,    0,    0,    0,    0,    0,   65,   65,   65,   65,
648     0,    0,    0,   66,   75,   75,   75,   75,    0,   66,
649    66,   75,    0,    0,    0,    0,    0,   75,   75,    0,
650    85,    0,   86,    0,    0,   86,    0,   65,    0,    0,
651     0,    0,    0,   65,   65,    0,    0,    0,    0,   86,
652    86,    0,   86,    0,   86,    0,    0,    0,    0,    0,
653     0,    0,    0,    0,    0,    0,    0,    0,   87,    0,
654     0,   87,    0,    0,    0,    0,    0,    0,    0,    0,
655    76,   76,   76,   76,   86,   87,   87,    0,   87,   76,
656    87,    0,    0,    0,    0,    0,    0,    0,    0,  238,
657     0,    0,  239,    0,   76,   76,   76,    0,    0,    0,
658     0,   76,   64,   64,   64,   64,    0,   76,   76,  141,
659    87,  142,   78,   78,   78,   78,    0,    0,    0,    0,
660     0,   78,    0,    0,   83,    0,    0,   83,   61,   61,
661    61,   61,    0,   64,    0,    0,   78,   78,    0,   64,
662    64,   83,   83,   78,   83,    0,   83,    0,    0,   78,
663    78,    0,    0,    0,    0,    0,    0,    0,    0,   61,
664    84,    0,    0,   84,    0,   61,   61,    0,    0,    0,
665     0,    0,    0,    0,    0,    0,   83,   84,   84,    0,
666    84,    0,   84,    0,    0,    0,    0,    0,    0,    0,
667     0,    0,    0,   85,   85,   85,   85,    0,    0,    0,
668     0,    0,   85,    0,    0,    0,   85,   85,   85,   85,
669     0,    0,   84,   82,    0,    0,   82,   85,   85,   85,
670    85,    0,   85,   85,   85,    0,    0,   85,    0,    0,
671    82,   82,    0,   82,    0,   82,    0,  312,    0,    0,
672     0,    0,    0,    0,    0,    0,    0,   86,   86,   86,
673    86,    0,    0,    0,    0,    0,   86,  141,    0,  142,
674    86,   86,   86,   86,    0,   82,    0,    0,    0,    0,
675     0,   86,   86,   86,   86,    0,   86,   86,   86,    0,
676     0,   86,    0,   87,   87,   87,   87,    0,    0,    0,
677     0,    0,   87,    0,    0,    0,   87,   87,   87,   87,
678     0,    0,    0,    0,    0,    0,    0,   87,   87,   87,
679    87,    0,   87,   87,   87,    0,    0,   87,    0,    0,
680     0,    0,    0,  136,    0,  100,  102,  137,  138,  139,
681   140,  112,    0,    0,    0,    0,    0,    0,  143,  144,
682   145,  146,    0,  147,  148,    0,    0,    0,  149,   83,
683    83,   83,   83,    0,    0,    0,    0,    0,   83,    0,
684     0,    0,   83,   83,   83,   83,    0,    0,    0,    0,
685   162,    0,    0,   83,   83,   83,   83,    0,   83,   83,
686    83,    0,    0,   83,    0,   84,   84,   84,   84,    0,
687     0,    0,    0,    0,   84,    0,    0,    0,   84,   84,
688    84,   84,    0,    0,    0,    0,    0,    0,    0,   84,
689    84,   84,   84,    0,   84,   84,   84,    0,    0,   84,
690     0,    0,    0,  203,  204,  205,  206,  208,  210,  211,
691   212,  214,  216,  218,  220,  222,  223,  225,   82,   82,
692    82,   82,    0,    0,    0,    0,    0,   82,    0,    0,
693     0,   82,   82,   82,   82,    0,    0,    0,    0,    0,
694     0,    0,   82,   82,   82,   82,    0,   82,   82,    0,
695     0,  136,   82,    0,  203,  137,  138,  139,  140,    0,
696     0,  203,    0,  203,    0,    0,  143,  144,  145,  146,
697     0,  147,  148,    0,    0,  268,  149,  269,    0,    0,
698     0,  271,    0,  272,    0,  273,    0,  274,    0,  275,
699     0,    0,  276,    0,    0,    0,    0,    0,    0,    0,
700     0,    0,    0,    0,    0,    0,    0,  287,    0,    0,
701     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
702     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
703     0,    0,    0,    0,    0,    0,    0,    0,  305,
704 };
705 short yycheck[] = {                                       5,
706   123,   59,   36,   91,   41,  125,   12,   44,   12,   40,
707    16,   40,   18,  171,  173,  257,   40,  165,   40,  167,
708    40,   27,   28,   29,   30,   44,   59,   44,   44,   44,
709    91,   37,   91,  281,  282,  123,   40,   43,  123,   44,
710   279,  280,  281,  282,  281,   49,   44,   44,  296,   53,
711    41,   41,  300,   44,  293,   41,  295,  296,   40,  296,
712    91,  300,  123,  300,  123,  303,  304,   58,   59,   59,
713    61,   44,    0,   59,   93,  234,   93,   93,   84,   83,
714    86,   85,   88,   87,   90,   89,   59,   91,   93,  123,
715   123,   95,  123,  252,  123,   93,   93,   59,  257,  123,
716   259,  123,   93,  123,  279,   33,  281,  282,   36,   37,
717    38,   44,   40,  257,   42,   43,   40,   45,   44,   41,
718   295,  296,   40,  129,    0,  300,   59,  131,  132,  133,
719   134,   59,  290,   59,  257,  293,   64,   59,   41,   44,
720   288,  289,  262,  263,  264,  265,   40,  295,  257,  153,
721   154,  155,  156,  157,   59,   41,   59,   33,   44,   44,
722    36,   37,   38,   91,   40,  272,   42,   43,   41,   45,
723   258,  175,  320,  331,   59,   41,    0,  181,  182,   44,
724   184,   41,   40,   59,   44,  278,   59,  191,   64,  279,
725   280,  281,  282,   59,   59,  123,  289,  125,  126,  257,
726   290,  291,  292,  293,   36,  295,  296,   36,   40,   33,
727   300,   40,   36,   37,   38,   91,   40,   59,   42,   43,
728   297,   45,  226,  257,  228,  270,  271,  261,    0,  266,
729   267,  268,  269,   40,  240,   59,  242,  297,  244,  245,
730    64,   41,  248,  303,  304,  251,  250,  123,   40,  125,
731   126,  266,  267,  268,  269,  296,  260,   41,   36,  300,
732    44,   33,  266,  125,   36,   37,   38,   91,   40,  123,
733    42,   43,   91,   45,   44,  266,  267,  268,  269,  281,
734   282,  262,  263,  264,  265,   41,   41,   59,  292,   44,
735   296,   59,   64,  295,  296,   41,   81,   41,  300,  123,
736    44,  125,  126,  123,   41,   91,  297,   44,  125,   40,
737    40,   96,  303,  304,  318,  300,   40,  125,   41,   91,
738   125,  327,  107,  125,   59,  110,  332,  125,  256,  257,
739   258,  259,  260,  261,  262,  263,  264,  265,  266,  267,
740   268,  269,  125,   41,   41,  273,  274,   41,  276,  277,
741   278,  123,  125,   41,  126,  283,  284,  285,  286,  287,
742   288,  289,   41,   59,   41,   41,  294,   59,   59,  297,
743    73,  299,  318,  301,  302,   12,  250,   -1,   -1,   -1,
744   256,  257,  258,  259,  260,  261,  262,  263,  264,  265,
745   266,  267,  268,  269,   -1,  180,   -1,  273,  274,   -1,
746   276,  277,  278,   41,   -1,   -1,   44,  283,  284,  285,
747   286,  287,  288,  289,   -1,   -1,   -1,   -1,  294,   -1,
748    58,   59,   -1,  299,   -1,  301,  302,   -1,   -1,   -1,
749    -1,   -1,  256,  257,  258,  259,  260,  261,  262,  263,
750   264,  265,  266,  267,  268,  269,   -1,   -1,   -1,  273,
751   274,  236,  276,  277,  278,   93,   -1,   -1,   -1,  283,
752   284,  285,  286,  287,  288,  289,   58,   -1,   -1,   61,
753   294,   63,   -1,   -1,   -1,  299,   -1,  301,  302,   -1,
754    -1,   -1,   -1,   -1,  256,  257,  258,  259,  260,  261,
755    -1,   -1,   -1,  278,  266,  267,  268,  269,   -1,   -1,
756   285,  273,  274,   -1,  276,  277,  278,   -1,   -1,   -1,
757    23,  283,  284,  285,  286,  287,  288,  289,   31,   -1,
758    -1,   -1,  294,   36,   37,   -1,   39,  299,   33,  301,
759   302,   36,   37,   38,   -1,   40,   41,   42,   43,   44,
760    45,   54,   55,   56,   57,   58,   -1,   -1,   -1,   23,
761    -1,   -1,   -1,   58,   59,   -1,   61,   -1,   63,   64,
762    -1,   -1,   36,   44,   45,   46,   47,   48,   42,   -1,
763    51,   52,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
764    54,   55,   56,   57,   58,   -1,   91,   -1,   93,   33,
765   103,   -1,   36,   37,   38,   -1,   40,   41,   42,   43,
766    44,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
767    -1,   -1,   -1,   -1,   58,   59,   -1,   61,  123,   63,
768    64,  126,   96,  279,  280,  281,  282,   -1,  266,  267,
769   268,  269,   -1,   -1,   -1,  291,  292,  293,   33,  295,
770   296,   36,   37,   38,  300,   40,   -1,   42,   43,   93,
771    45,   -1,   -1,   -1,  279,  280,  281,  282,   -1,  297,
772   279,  280,  281,  282,   59,  303,  304,  292,  293,   64,
773   295,  296,   -1,   -1,   -1,  300,  295,  296,   -1,   -1,
774    -1,  300,  126,  275,   -1,   -1,   -1,  279,  280,  281,
775   282,   -1,   -1,   -1,   -1,   -1,   91,   -1,  290,  291,
776   292,  293,   -1,  295,  296,   -1,   -1,   -1,  300,   -1,
777    33,   -1,   -1,   36,   37,   38,   -1,   40,   -1,   42,
778    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,  123,   -1,
779    -1,  126,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,
780    -1,   64,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
781    -1,   -1,  257,  258,  259,  260,  261,   -1,   -1,   -1,
782    -1,  266,  267,  268,  269,   -1,   -1,   -1,   91,  274,
783   275,  276,  277,  278,  279,  280,  281,  282,  283,  284,
784   285,  286,  287,  288,  289,  290,  291,  292,  293,  294,
785   295,  296,  297,   -1,  299,  300,  301,  302,  303,  304,
786   123,   -1,   -1,  126,   -1,   -1,   -1,   -1,   -1,   -1,
787    -1,   -1,   -1,  257,  258,  259,  260,  261,   -1,   -1,
788    -1,   -1,  266,  267,  268,  269,   -1,   -1,   -1,   -1,
789   274,  275,  276,  277,  278,  279,  280,  281,  282,  283,
790   284,  285,  286,  287,  288,  289,  290,  291,  292,  293,
791   294,  295,  296,  297,   -1,  299,  300,  301,  302,  303,
792   304,  256,  257,  258,  259,  260,  261,   -1,   -1,   -1,
793    -1,  266,  267,  268,  269,   -1,   -1,   -1,  273,  274,
794    -1,  276,  277,  278,   -1,   -1,   -1,   -1,  283,  284,
795   285,  286,  287,  288,  289,   -1,   -1,   -1,   -1,  294,
796    41,   -1,   -1,   44,  299,   -1,  301,  302,   -1,   -1,
797    -1,   -1,   -1,   -1,   -1,   -1,   33,   58,   59,   36,
798    37,   38,   -1,   40,   -1,   42,   43,   -1,   45,   -1,
799    -1,   -1,   -1,  256,  257,  258,  259,  260,  261,   -1,
800    -1,   -1,   59,  266,  267,  268,  269,   64,   -1,   -1,
801   273,  274,   93,  276,  277,  278,   -1,   -1,   -1,   -1,
802   283,  284,  285,  286,  287,  288,  289,   -1,   -1,   -1,
803    -1,  294,   -1,   -1,   91,   -1,  299,   33,  301,  302,
804    36,   37,   38,   -1,   40,   41,   42,   43,   -1,   45,
805    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   41,   -1,
806    -1,   44,   -1,   -1,   -1,   -1,  123,   -1,   64,  126,
807    -1,   -1,   -1,   -1,   -1,   58,   59,   -1,   61,   -1,
808    63,   -1,   -1,   -1,   33,   -1,   -1,   36,   37,   38,
809    -1,   40,   -1,   42,   43,   91,   45,   -1,   -1,   -1,
810    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
811    93,   -1,   -1,   -1,   -1,   64,   -1,   -1,   -1,   -1,
812    -1,   41,   -1,   -1,   44,   -1,   -1,  123,   -1,   -1,
813   126,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,
814    -1,   61,   91,   63,   93,   -1,   -1,   -1,   33,   -1,
815    -1,   36,   37,   38,   -1,   40,   -1,   42,   43,   -1,
816    45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
817    -1,   -1,   -1,   93,  123,   -1,   -1,  126,   -1,   64,
818    -1,   -1,   -1,   -1,   -1,  266,  267,  268,  269,   -1,
819    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
820   257,  258,  259,  260,  261,   -1,   91,   -1,   -1,   -1,
821    -1,   -1,   -1,   -1,   -1,   -1,  297,  274,   -1,  276,
822   277,  278,  303,  304,   63,   -1,  283,  284,  285,  286,
823   287,  288,  289,   -1,   -1,   -1,   -1,  294,  123,   -1,
824    -1,  126,  299,   -1,  301,  302,   -1,   -1,   -1,   -1,
825    41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,
826    -1,  257,  258,  259,  260,  261,   -1,   58,   59,   -1,
827    61,   -1,   63,   -1,   -1,   -1,   -1,   -1,  274,   -1,
828   276,  277,  278,  266,  267,  268,  269,  283,  284,  285,
829   286,  287,  288,  289,   -1,   -1,   -1,   -1,  294,   -1,
830    -1,   -1,   93,  299,   -1,  301,  302,   -1,  257,  258,
831   259,  260,  261,   -1,  297,   -1,   -1,   -1,   -1,   -1,
832   303,  304,   -1,   -1,   -1,  274,   -1,  276,  277,  278,
833    61,   -1,   63,   -1,  283,  284,  285,  286,  287,  288,
834   289,   -1,   -1,   -1,   -1,  294,  266,  267,  268,  269,
835   299,   -1,  301,  302,   33,  275,   -1,   36,   37,   38,
836    -1,   40,   41,   42,   43,   -1,   45,   -1,   -1,   -1,
837   290,  256,  257,  258,  259,  260,  261,  297,   -1,   -1,
838    -1,   -1,   -1,  303,  304,   64,   -1,   -1,   -1,  274,
839    -1,  276,  277,  278,   -1,   -1,   -1,   -1,  283,  284,
840   285,  286,  287,  288,  289,   -1,   -1,   -1,   -1,  294,
841    -1,   -1,   91,   -1,  299,   33,  301,  302,   36,   37,
842    38,   -1,   40,   -1,   42,   43,   -1,   45,   -1,   -1,
843    -1,   -1,   -1,   -1,   -1,   -1,  275,   -1,   -1,   -1,
844   279,  280,  281,  282,  123,   -1,   64,  126,   -1,   -1,
845    -1,  290,  291,  292,  293,   -1,  295,  296,   -1,   -1,
846    -1,  300,   33,   -1,   -1,   36,   37,   38,   -1,   40,
847    -1,   42,   43,   91,   45,  266,  267,  268,  269,   -1,
848    -1,   -1,   -1,   -1,  275,   -1,   -1,   -1,  279,  280,
849    61,  282,   -1,   64,   -1,   -1,   -1,   -1,   -1,  290,
850   291,  292,  293,   -1,  295,  123,  297,   -1,  126,   -1,
851    -1,   -1,  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,
852    91,   -1,   -1,   -1,   -1,   -1,   33,   -1,   -1,   36,
853    37,   38,   -1,   40,   -1,   42,   43,   -1,   45,   -1,
854    -1,   -1,   -1,   -1,  275,   -1,   -1,   -1,  279,  280,
855   281,  282,  123,   -1,   61,  126,   -1,   64,   -1,  290,
856   291,  292,  293,   -1,  295,  296,   -1,   -1,   -1,  300,
857    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
858   259,  260,  261,   -1,   91,   -1,   -1,   -1,   -1,   -1,
859    -1,   -1,   -1,   -1,   -1,  274,   -1,  276,  277,  278,
860    -1,   -1,   -1,   -1,  283,  284,  285,  286,  287,  288,
861   289,   -1,   -1,   -1,   -1,  294,  123,   -1,   -1,  126,
862   299,   -1,  301,  302,   -1,   -1,   -1,   -1,   41,   -1,
863    -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
864   258,  259,  260,  261,   -1,   58,   59,   -1,   61,   -1,
865    63,   -1,   -1,   -1,   -1,   -1,  274,   -1,  276,  277,
866   278,   -1,   -1,   -1,   -1,  283,  284,  285,  286,  287,
867   288,  289,   -1,   -1,   -1,   41,  294,   -1,   44,  297,
868    93,  299,   -1,  301,  302,   -1,  257,  258,  259,  260,
869   261,   -1,   58,   59,   -1,   -1,   -1,   -1,   -1,   -1,
870    -1,   -1,   -1,  274,   -1,  276,  277,  278,   -1,   -1,
871    -1,   -1,  283,  284,  285,  286,  287,  288,  289,   -1,
872    -1,   -1,   -1,  294,   -1,   -1,   -1,   93,  299,   -1,
873   301,  302,   33,   -1,   -1,   36,   37,   38,   -1,   40,
874    -1,   42,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
875   257,  258,  259,  260,  261,   -1,   -1,   -1,   -1,   -1,
876    61,   -1,   -1,   64,   -1,   -1,   -1,  274,   -1,  276,
877   277,  278,   -1,   -1,   -1,   -1,  283,  284,  285,  286,
878   287,  288,  289,   -1,   -1,   -1,   -1,  294,   -1,   -1,
879    91,   -1,  299,   33,  301,  302,   36,   37,   38,   -1,
880    40,   -1,   42,   43,   -1,   45,   -1,   -1,   -1,   -1,
881    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
882    -1,   61,  123,   -1,   64,  126,   -1,   -1,   -1,   -1,
883    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
884    33,   -1,   -1,   36,   37,   38,   -1,   40,   -1,   42,
885    43,   91,   45,  266,  267,  268,  269,   -1,   -1,   -1,
886    -1,   -1,  275,   -1,   -1,   -1,  279,  280,   61,   -1,
887    -1,   64,   -1,   -1,   -1,   -1,   -1,  290,  291,  292,
888   293,   -1,  295,  123,  297,   -1,  126,   -1,   -1,   -1,
889   303,  304,   -1,   -1,   -1,   -1,   -1,   -1,   91,   -1,
890   266,  267,  268,  269,   33,   -1,   -1,   36,   37,   38,
891    -1,   40,   -1,   42,   43,   -1,   45,   -1,   -1,   -1,
892    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
893   123,  297,   61,  126,   -1,   64,   -1,  303,  304,   -1,
894    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
895    -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,
896   261,   -1,   91,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
897    -1,   -1,   -1,  274,   -1,  276,  277,  278,   -1,   -1,
898    -1,   -1,  283,  284,  285,  286,  287,  288,  289,   -1,
899    -1,   -1,   -1,  294,  123,   -1,   -1,  126,  299,   -1,
900   301,  302,   -1,   -1,   -1,   -1,   41,   -1,   -1,   44,
901    -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
902   260,  261,   -1,   58,   59,   -1,   61,   -1,   63,   -1,
903    -1,   -1,   -1,   -1,  274,   -1,  276,  277,  278,   -1,
904    -1,   -1,   -1,  283,  284,  285,  286,  287,  288,  289,
905    -1,   -1,   -1,   41,  294,   -1,   44,   -1,   93,  299,
906    -1,  301,  302,   -1,  257,  258,  259,  260,  261,   -1,
907    58,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
908    -1,  274,   -1,  276,  277,  278,   -1,   -1,   -1,   -1,
909   283,  284,  285,  286,  287,  288,  289,   -1,   -1,   -1,
910    -1,  294,   -1,   -1,   -1,   93,  299,   -1,  301,  302,
911    33,   -1,   -1,   36,   37,   38,   -1,   40,   -1,   42,
912    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,  257,  258,
913   259,  260,  261,   -1,   -1,   -1,   -1,   -1,   61,   -1,
914    -1,   64,   -1,   -1,   -1,  274,   -1,  276,  277,  278,
915    -1,   -1,   -1,   -1,  283,  284,  285,  286,  287,  288,
916   289,   -1,   -1,   -1,   -1,  294,   -1,   -1,   91,   -1,
917   299,   33,  301,  302,   36,   37,   38,   -1,   40,   -1,
918    42,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
919    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   61,
920   123,   -1,   64,  126,   -1,   -1,   -1,   -1,   -1,   -1,
921    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,
922    -1,   36,   37,   38,   -1,   40,   41,   42,   43,   91,
923    45,  266,  267,  268,  269,   -1,   -1,   -1,   -1,   -1,
924   275,   -1,   -1,   -1,  279,  280,  281,  282,   -1,   64,
925    -1,   -1,   -1,   -1,   -1,  290,  291,  292,  293,   -1,
926   295,  123,  297,   -1,  126,   -1,   -1,   -1,  303,  304,
927    -1,   -1,   -1,   -1,   -1,   -1,   91,   -1,  266,  267,
928   268,  269,   33,   -1,   -1,   36,   37,   38,   -1,   40,
929    41,   42,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
930    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,  297,
931    -1,  126,   -1,   64,   -1,  303,  304,   -1,   -1,   -1,
932    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
933    -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,   -1,
934    91,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
935    -1,  274,   -1,  276,  277,  278,   -1,   -1,   -1,   -1,
936   283,  284,  285,  286,  287,  288,  289,   -1,   -1,   -1,
937    -1,  294,  123,   -1,   -1,  126,  299,   -1,  301,  302,
938    -1,   -1,   -1,   -1,   41,   -1,   -1,   44,   -1,   -1,
939    -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,
940    -1,   58,   59,   -1,   61,   -1,   63,   -1,   -1,   -1,
941    -1,   -1,  274,   -1,  276,  277,  278,   -1,   -1,   -1,
942    -1,  283,  284,  285,  286,  287,  288,  289,   -1,   -1,
943    -1,   41,  294,   -1,   44,   -1,   93,  299,   -1,  301,
944   302,   -1,  257,  258,  259,  260,  261,   -1,   58,   59,
945    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  274,
946    -1,  276,  277,  278,   -1,   -1,   -1,   -1,  283,  284,
947   285,  286,  287,  288,  289,   -1,   -1,   -1,   -1,  294,
948    -1,   -1,   -1,   93,  299,   -1,  301,  302,   33,   -1,
949    -1,   36,   37,   38,   -1,   40,   41,   42,   43,   -1,
950    45,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,
951   261,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   64,
952    -1,   -1,   -1,  274,   -1,  276,  277,  278,   -1,   -1,
953    -1,   -1,  283,  284,  285,  286,  287,  288,  289,   -1,
954    -1,   -1,   -1,  294,   -1,   -1,   91,   -1,  299,   33,
955   301,  302,   36,   37,   38,   -1,   40,   -1,   42,   43,
956    -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
957    -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,
958    64,  126,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
959    -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,   -1,   36,
960    37,   38,   -1,   40,   41,   42,   43,   91,   45,  266,
961   267,  268,  269,   -1,   -1,   -1,   -1,   -1,  275,   -1,
962    -1,   -1,  279,  280,   -1,   -1,   -1,   64,   -1,   -1,
963    -1,   -1,   -1,  290,  291,  292,  293,   -1,   -1,  123,
964   297,   -1,  126,   -1,   -1,   -1,  303,  304,   -1,   -1,
965    -1,   -1,   -1,   -1,   91,   -1,  266,  267,  268,  269,
966    33,   -1,   -1,   36,   37,   38,   -1,   40,   -1,   42,
967    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
968    -1,   -1,   -1,   -1,   -1,   -1,  123,  297,   -1,  126,
969    -1,   64,   -1,  303,  304,   -1,   -1,   -1,   -1,   -1,
970    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
971    -1,   -1,  257,  258,  259,  260,  261,   -1,   91,   -1,
972    93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  274,
973    -1,  276,  277,  278,   -1,   -1,   -1,   -1,  283,  284,
974   285,  286,  287,  288,  289,   -1,   -1,   -1,   -1,  294,
975   123,   -1,   -1,  126,  299,   -1,  301,  302,   -1,   -1,
976    -1,   -1,   -1,   -1,   -1,   -1,   -1,   41,   -1,   -1,
977    44,   -1,   -1,  257,  258,  259,  260,  261,   -1,   -1,
978    -1,   -1,   -1,   -1,   58,   59,   -1,   -1,   -1,   -1,
979   274,   -1,  276,  277,  278,   -1,   -1,   -1,   -1,  283,
980   284,  285,  286,  287,  288,  289,   -1,   -1,   41,   -1,
981   294,   44,   -1,   -1,   -1,  299,   -1,  301,  302,   93,
982   257,  258,  259,  260,  261,   58,   59,   -1,   61,   -1,
983    63,   -1,   -1,   -1,   -1,   -1,   -1,  274,   -1,  276,
984   277,  278,   -1,   -1,   -1,   -1,  283,  284,  285,  286,
985   287,  288,  289,   -1,   -1,   -1,   -1,  294,   -1,   -1,
986    93,   -1,  299,   -1,  301,  302,   33,   -1,   -1,   36,
987    37,   38,   -1,   40,   -1,   42,   43,   -1,   45,   -1,
988    -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,   -1,
989    -1,   -1,   -1,   -1,   -1,   -1,   -1,   64,   -1,   -1,
990    -1,  274,   -1,  276,  277,  278,   -1,   -1,   -1,   -1,
991   283,  284,  285,  286,  287,  288,  289,   -1,   -1,   -1,
992    -1,  294,   -1,   -1,   91,   -1,  299,   33,  301,  302,
993    36,   37,   38,   -1,   40,   -1,   42,   43,   -1,   45,
994    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
995    -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,   64,  126,
996    -1,   -1,   -1,   -1,   41,   -1,   -1,   44,   -1,   -1,
997    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
998    -1,   58,   59,   -1,   61,   91,   63,   -1,   -1,   -1,
999    -1,   -1,  266,  267,  268,  269,   -1,   -1,   -1,   -1,
1000    -1,   -1,   -1,   -1,   41,   -1,   -1,   44,   -1,   -1,
1001    -1,   -1,   -1,   -1,   -1,   -1,   93,  123,   -1,   -1,
1002   126,   58,   59,  297,   61,   -1,   63,   -1,   -1,  303,
1003   304,   -1,   -1,  266,  267,  268,  269,   -1,   -1,   -1,
1004    -1,   -1,  275,   -1,   -1,   -1,  279,  280,  281,  282,
1005    -1,   -1,   -1,   -1,   -1,   -1,   93,  290,  291,  292,
1006   293,   -1,  295,  296,  297,   -1,   -1,  300,   -1,   -1,
1007   303,  304,   -1,   -1,   -1,   -1,   -1,   -1,   41,   -1,
1008    -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1009   257,  258,  259,  260,  261,   58,   59,   -1,   61,   -1,
1010    63,   -1,   -1,   -1,   -1,   -1,   -1,  274,   -1,  276,
1011   277,  278,   -1,   -1,   -1,   -1,  283,  284,  285,  286,
1012   287,  288,  289,   41,   -1,   -1,   44,  294,   -1,   -1,
1013    93,   -1,  299,   -1,  301,  302,   -1,   -1,   -1,   -1,
1014    58,   59,   -1,   61,   -1,   63,   -1,   -1,   -1,   -1,
1015    -1,  257,  258,  259,  260,  261,   -1,   -1,   -1,   -1,
1016    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  274,   -1,
1017   276,  277,  278,   -1,   -1,   93,   -1,  283,  284,  285,
1018   286,  287,  288,  289,   -1,   -1,   -1,   -1,  294,  266,
1019   267,  268,  269,  299,   -1,  301,  302,   -1,  275,   -1,
1020    -1,   -1,  279,  280,  281,  282,   -1,   -1,   -1,   -1,
1021    -1,   -1,   -1,  290,  291,  292,  293,   -1,  295,  296,
1022   297,   -1,   -1,  300,   -1,   -1,  303,  304,   -1,  266,
1023   267,  268,  269,   -1,   -1,   -1,   -1,   -1,  275,   -1,
1024    -1,   -1,  279,  280,  281,  282,   -1,   -1,   -1,   -1,
1025    -1,   -1,   -1,  290,  291,  292,  293,   -1,  295,  296,
1026   297,   41,   -1,  300,   44,   -1,  303,  304,   -1,   -1,
1027    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,
1028    -1,   61,   -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,
1029    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1030    -1,   -1,   -1,  266,  267,  268,  269,   -1,   -1,   -1,
1031    -1,   -1,  275,   93,   -1,   -1,  279,  280,  281,  282,
1032    -1,   -1,   -1,   -1,   -1,   -1,   -1,  290,  291,  292,
1033   293,   -1,  295,  296,  297,   -1,   41,  300,   -1,   44,
1034   303,  304,   -1,   -1,   -1,   -1,   -1,   -1,  266,  267,
1035   268,  269,   -1,   58,   59,   -1,   61,  275,   63,   -1,
1036    -1,  279,  280,  281,  282,   -1,   -1,   -1,   -1,   -1,
1037    -1,   -1,  290,  291,  292,  293,   -1,  295,  296,  297,
1038    41,   -1,  300,   44,   -1,  303,  304,   -1,   93,   -1,
1039    -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,   -1,
1040    61,   -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1041    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   41,
1042    -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1043    -1,   -1,   93,   -1,   -1,   -1,   58,   59,   -1,   61,
1044    -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1045    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1046    -1,   -1,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,
1047    -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,
1048    59,   -1,   61,   -1,   63,   -1,  266,  267,  268,  269,
1049    -1,   -1,   -1,   -1,   -1,  275,   -1,   -1,   -1,  279,
1050   280,  281,  282,   -1,   -1,   -1,   -1,   -1,   41,   -1,
1051   290,  291,  292,  293,   93,  295,  296,  297,   -1,   -1,
1052   300,   -1,   -1,  303,  304,   58,   59,   -1,   61,   -1,
1053    63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1054    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   41,
1055    -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1056    93,  266,  267,  268,  269,   -1,   58,   59,   -1,   61,
1057   275,   63,   -1,   -1,  279,  280,  281,  282,   -1,   -1,
1058    -1,   -1,   -1,   -1,   -1,  290,  291,  292,  293,   -1,
1059   295,  296,  297,   -1,   -1,  300,   -1,   -1,  303,  304,
1060    -1,   93,   -1,   -1,   -1,  266,  267,  268,  269,   -1,
1061    -1,   -1,   -1,   -1,  275,   -1,   -1,   -1,  279,  280,
1062   281,  282,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  290,
1063   291,  292,  293,   -1,  295,  296,  297,   -1,   -1,  300,
1064    -1,   -1,  303,  304,  266,  267,  268,  269,   -1,   -1,
1065    -1,   -1,   -1,  275,   -1,   -1,   -1,  279,  280,  281,
1066   282,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  290,  291,
1067   292,  293,   -1,  295,  296,  297,   -1,   41,  300,   -1,
1068    44,  303,  304,   -1,   -1,   -1,   -1,  266,  267,  268,
1069   269,   -1,   -1,   -1,   58,   59,  275,   61,   -1,   63,
1070   279,  280,  281,  282,   -1,   -1,   -1,   -1,   -1,   -1,
1071    -1,  290,  291,  292,  293,   -1,  295,  296,  297,   -1,
1072    41,  300,   -1,   44,  303,  304,   -1,   -1,   -1,   93,
1073    -1,   -1,   -1,  266,  267,  268,  269,   58,   59,   -1,
1074    -1,   -1,  275,   -1,   -1,   -1,  279,  280,  281,  282,
1075    -1,   -1,   -1,   -1,   -1,   -1,   -1,  290,  291,  292,
1076   293,   -1,  295,  296,  297,   -1,   -1,  300,   -1,   -1,
1077   303,  304,   93,   -1,  266,  267,  268,  269,   -1,   -1,
1078    -1,   -1,   -1,  275,   -1,   -1,   -1,  279,  280,  281,
1079   282,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  290,  291,
1080   292,  293,   41,  295,  296,   44,   -1,   -1,  300,   -1,
1081    -1,  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,   58,
1082    59,   -1,   61,   -1,   63,   -1,   -1,   -1,   -1,   -1,
1083    -1,   -1,   -1,   -1,   -1,   41,   -1,   -1,   44,   -1,
1084    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1085    -1,   -1,   58,   59,   93,   61,   -1,   63,   -1,   -1,
1086    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   41,   -1,
1087    -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1088    -1,   -1,   -1,   -1,   -1,   58,   59,   93,   61,   -1,
1089    63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1090    -1,   -1,  266,  267,  268,  269,   -1,   -1,   -1,   -1,
1091    -1,  275,   -1,   -1,   -1,  279,  280,  281,  282,   -1,
1092    93,   -1,   -1,   -1,   -1,   -1,  290,  291,  292,  293,
1093    -1,  295,  296,  297,   41,   -1,   -1,   44,   -1,  303,
1094   304,   -1,   -1,   -1,   -1,  266,  267,  268,  269,   -1,
1095    -1,   58,   59,   -1,   61,   -1,   63,   -1,   -1,   -1,
1096    -1,   -1,   -1,   -1,   -1,   -1,   -1,   41,   -1,   -1,
1097    44,   -1,   -1,   -1,   -1,   -1,  297,   -1,   -1,   -1,
1098    -1,   -1,  303,  304,   58,   59,   93,   61,   -1,   63,
1099    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1100    -1,   -1,   -1,   -1,   -1,   -1,   -1,   41,   -1,   -1,
1101    44,   -1,   -1,   -1,   -1,   41,   -1,   -1,   44,   93,
1102    -1,   -1,   -1,   -1,   58,   59,   -1,  266,  267,  268,
1103   269,   41,   58,   59,   44,   61,  275,   63,   -1,   -1,
1104   279,  280,  281,  282,   -1,   -1,   -1,   -1,   58,   59,
1105    -1,  290,  291,  292,  293,   -1,  295,  296,  297,   93,
1106   266,  267,  268,  269,  303,  304,   -1,   93,   -1,  275,
1107    -1,   -1,   -1,  279,  280,   -1,   -1,   -1,   -1,   -1,
1108    -1,   -1,   -1,   93,  290,  291,  292,  293,   -1,   -1,
1109    -1,  297,   -1,  266,  267,  268,  269,  303,  304,   -1,
1110    -1,   -1,  275,   -1,   -1,   41,  279,  280,   44,   -1,
1111    -1,   -1,   -1,   -1,   -1,   -1,   -1,  290,  291,  292,
1112   293,   -1,   58,   59,  297,   61,   -1,   63,   -1,   -1,
1113   303,  304,   -1,   -1,   -1,   -1,   -1,   41,   -1,   -1,
1114    44,   -1,   -1,   -1,   -1,   -1,   -1,   41,   -1,   -1,
1115    44,   -1,   -1,   -1,   58,   59,   -1,   93,   -1,  266,
1116   267,  268,  269,   41,   58,   59,   44,   61,  275,   63,
1117    -1,   -1,   -1,  280,   -1,   -1,   -1,   -1,   -1,   -1,
1118    58,   59,   -1,  290,  291,  292,  293,   -1,   -1,   93,
1119   297,   -1,  266,  267,  268,  269,  303,  304,   -1,   93,
1120    -1,  275,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1121    -1,   -1,   -1,   -1,   -1,   93,  290,  291,  292,  293,
1122    -1,   -1,   -1,  297,   -1,   -1,   -1,   -1,   41,  303,
1123   304,   44,  266,  267,  268,  269,   -1,   -1,   -1,   -1,
1124   266,  267,  268,  269,   -1,   58,   59,   -1,   61,  275,
1125    63,   -1,   -1,   -1,   -1,   -1,  266,  267,  268,  269,
1126    -1,   -1,   -1,  297,  290,  291,  292,  293,   -1,  303,
1127   304,  297,   -1,   -1,   -1,   -1,   -1,  303,  304,   -1,
1128    93,   -1,   41,   -1,   -1,   44,   -1,  297,   -1,   -1,
1129    -1,   -1,   -1,  303,  304,   -1,   -1,   -1,   -1,   58,
1130    59,   -1,   61,   -1,   63,   -1,   -1,   -1,   -1,   -1,
1131    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   41,   -1,
1132    -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1133   266,  267,  268,  269,   93,   58,   59,   -1,   61,  275,
1134    63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   41,
1135    -1,   -1,   44,   -1,  290,  291,  292,   -1,   -1,   -1,
1136    -1,  297,  266,  267,  268,  269,   -1,  303,  304,   61,
1137    93,   63,  266,  267,  268,  269,   -1,   -1,   -1,   -1,
1138    -1,  275,   -1,   -1,   41,   -1,   -1,   44,  266,  267,
1139   268,  269,   -1,  297,   -1,   -1,  290,  291,   -1,  303,
1140   304,   58,   59,  297,   61,   -1,   63,   -1,   -1,  303,
1141   304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  297,
1142    41,   -1,   -1,   44,   -1,  303,  304,   -1,   -1,   -1,
1143    -1,   -1,   -1,   -1,   -1,   -1,   93,   58,   59,   -1,
1144    61,   -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1145    -1,   -1,   -1,  266,  267,  268,  269,   -1,   -1,   -1,
1146    -1,   -1,  275,   -1,   -1,   -1,  279,  280,  281,  282,
1147    -1,   -1,   93,   41,   -1,   -1,   44,  290,  291,  292,
1148   293,   -1,  295,  296,  297,   -1,   -1,  300,   -1,   -1,
1149    58,   59,   -1,   61,   -1,   63,   -1,   41,   -1,   -1,
1150    -1,   -1,   -1,   -1,   -1,   -1,   -1,  266,  267,  268,
1151   269,   -1,   -1,   -1,   -1,   -1,  275,   61,   -1,   63,
1152   279,  280,  281,  282,   -1,   93,   -1,   -1,   -1,   -1,
1153    -1,  290,  291,  292,  293,   -1,  295,  296,  297,   -1,
1154    -1,  300,   -1,  266,  267,  268,  269,   -1,   -1,   -1,
1155    -1,   -1,  275,   -1,   -1,   -1,  279,  280,  281,  282,
1156    -1,   -1,   -1,   -1,   -1,   -1,   -1,  290,  291,  292,
1157   293,   -1,  295,  296,  297,   -1,   -1,  300,   -1,   -1,
1158    -1,   -1,   -1,  275,   -1,   37,   38,  279,  280,  281,
1159   282,   43,   -1,   -1,   -1,   -1,   -1,   -1,  290,  291,
1160   292,  293,   -1,  295,  296,   -1,   -1,   -1,  300,  266,
1161   267,  268,  269,   -1,   -1,   -1,   -1,   -1,  275,   -1,
1162    -1,   -1,  279,  280,  281,  282,   -1,   -1,   -1,   -1,
1163    82,   -1,   -1,  290,  291,  292,  293,   -1,  295,  296,
1164   297,   -1,   -1,  300,   -1,  266,  267,  268,  269,   -1,
1165    -1,   -1,   -1,   -1,  275,   -1,   -1,   -1,  279,  280,
1166   281,  282,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  290,
1167   291,  292,  293,   -1,  295,  296,  297,   -1,   -1,  300,
1168    -1,   -1,   -1,  135,  136,  137,  138,  139,  140,  141,
1169   142,  143,  144,  145,  146,  147,  148,  149,  266,  267,
1170   268,  269,   -1,   -1,   -1,   -1,   -1,  275,   -1,   -1,
1171    -1,  279,  280,  281,  282,   -1,   -1,   -1,   -1,   -1,
1172    -1,   -1,  290,  291,  292,  293,   -1,  295,  296,   -1,
1173    -1,  275,  300,   -1,  186,  279,  280,  281,  282,   -1,
1174    -1,  193,   -1,  195,   -1,   -1,  290,  291,  292,  293,
1175    -1,  295,  296,   -1,   -1,  207,  300,  209,   -1,   -1,
1176    -1,  213,   -1,  215,   -1,  217,   -1,  219,   -1,  221,
1177    -1,   -1,  224,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1178    -1,   -1,   -1,   -1,   -1,   -1,   -1,  239,   -1,   -1,
1179    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1180    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1181    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  270,
1182 };
1183 #define YYFINAL 1
1184 #ifndef YYDEBUG
1185 #define YYDEBUG 0
1186 #endif
1187 #define YYMAXTOKEN 304
1188 #if YYDEBUG
1189 char *yyname[] = {
1190 "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,
1191 "'!'",0,0,"'$'","'%'","'&'",0,"'('","')'","'*'","'+'","','","'-'",0,0,0,0,0,0,0,
1192 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,
1193 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,
1194 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,
1195 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,
1196 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,
1197 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"WORD","METHOD","THING",
1198 "PMFUNC","PRIVATEREF","LABEL","FORMAT","SUB","PACKAGE","WHILE","UNTIL","IF",
1199 "UNLESS","ELSE","ELSIF","CONTINUE","FOR","LOOPEX","DOTDOT","FUNC0","FUNC1",
1200 "FUNC","RELOP","EQOP","MULOP","ADDOP","DOLSHARP","DO","LOCAL","DELETE",
1201 "HASHBRACK","NOAMP","LSTOP","OROR","ANDAND","BITOROP","BITANDOP","UNIOP",
1202 "SHIFTOP","MATCHOP","ARROW","UMINUS","REFGEN","POWOP","PREINC","PREDEC",
1203 "POSTINC","POSTDEC",
1204 };
1205 char *yyrule[] = {
1206 "$accept : prog",
1207 "$$1 :",
1208 "prog : $$1 lineseq",
1209 "block : '{' remember lineseq '}'",
1210 "remember :",
1211 "lineseq :",
1212 "lineseq : lineseq decl",
1213 "lineseq : lineseq line",
1214 "line : label cond",
1215 "line : loop",
1216 "line : label ';'",
1217 "line : label sideff ';'",
1218 "sideff : error",
1219 "sideff : expr",
1220 "sideff : expr IF expr",
1221 "sideff : expr UNLESS expr",
1222 "sideff : expr WHILE expr",
1223 "sideff : expr UNTIL expr",
1224 "else :",
1225 "else : ELSE block",
1226 "else : ELSIF '(' expr ')' block else",
1227 "cond : IF '(' expr ')' block else",
1228 "cond : UNLESS '(' expr ')' block else",
1229 "cond : IF block block else",
1230 "cond : UNLESS block block else",
1231 "cont :",
1232 "cont : CONTINUE block",
1233 "loop : label WHILE '(' texpr ')' block cont",
1234 "loop : label UNTIL '(' expr ')' block cont",
1235 "loop : label WHILE block block cont",
1236 "loop : label UNTIL block block cont",
1237 "loop : label FOR scalar '(' expr crp block cont",
1238 "loop : label FOR '(' expr crp block cont",
1239 "loop : label FOR '(' nexpr ';' texpr ';' nexpr ')' block",
1240 "loop : label block cont",
1241 "nexpr :",
1242 "nexpr : sideff",
1243 "texpr :",
1244 "texpr : expr",
1245 "label :",
1246 "label : LABEL",
1247 "decl : format",
1248 "decl : subrout",
1249 "decl : package",
1250 "format : FORMAT WORD block",
1251 "format : FORMAT block",
1252 "subrout : SUB WORD block",
1253 "subrout : SUB WORD ';'",
1254 "package : PACKAGE WORD ';'",
1255 "package : PACKAGE ';'",
1256 "expr : expr ',' sexpr",
1257 "expr : sexpr",
1258 "listop : LSTOP indirob listexpr",
1259 "listop : FUNC '(' indirob listexpr ')'",
1260 "listop : indirob ARROW LSTOP listexpr",
1261 "listop : indirob ARROW FUNC '(' listexpr ')'",
1262 "listop : term ARROW METHOD '(' listexpr ')'",
1263 "listop : METHOD indirob listexpr",
1264 "listop : LSTOP listexpr",
1265 "listop : FUNC '(' listexpr ')'",
1266 "sexpr : sexpr '=' sexpr",
1267 "sexpr : sexpr POWOP '=' sexpr",
1268 "sexpr : sexpr MULOP '=' sexpr",
1269 "sexpr : sexpr ADDOP '=' sexpr",
1270 "sexpr : sexpr SHIFTOP '=' sexpr",
1271 "sexpr : sexpr BITANDOP '=' sexpr",
1272 "sexpr : sexpr BITOROP '=' sexpr",
1273 "sexpr : sexpr ANDAND '=' sexpr",
1274 "sexpr : sexpr OROR '=' sexpr",
1275 "sexpr : sexpr POWOP sexpr",
1276 "sexpr : sexpr MULOP sexpr",
1277 "sexpr : sexpr ADDOP sexpr",
1278 "sexpr : sexpr SHIFTOP sexpr",
1279 "sexpr : sexpr RELOP sexpr",
1280 "sexpr : sexpr EQOP sexpr",
1281 "sexpr : sexpr BITANDOP sexpr",
1282 "sexpr : sexpr BITOROP sexpr",
1283 "sexpr : sexpr DOTDOT sexpr",
1284 "sexpr : sexpr ANDAND sexpr",
1285 "sexpr : sexpr OROR sexpr",
1286 "sexpr : sexpr '?' sexpr ':' sexpr",
1287 "sexpr : sexpr MATCHOP sexpr",
1288 "sexpr : term",
1289 "term : '-' term",
1290 "term : '+' term",
1291 "term : '!' term",
1292 "term : '~' term",
1293 "term : REFGEN term",
1294 "term : term POSTINC",
1295 "term : term POSTDEC",
1296 "term : PREINC term",
1297 "term : PREDEC term",
1298 "term : LOCAL sexpr",
1299 "term : '(' expr crp",
1300 "term : '(' ')'",
1301 "term : '[' expr crb",
1302 "term : '[' ']'",
1303 "term : HASHBRACK expr crhb",
1304 "term : HASHBRACK ';' '}'",
1305 "term : scalar",
1306 "term : star",
1307 "term : scalar '[' expr ']'",
1308 "term : term ARROW '[' expr ']'",
1309 "term : hsh",
1310 "term : ary",
1311 "term : arylen",
1312 "term : scalar '{' expr ';' '}'",
1313 "term : term ARROW '{' expr ';' '}'",
1314 "term : '(' expr crp '[' expr ']'",
1315 "term : '(' ')' '[' expr ']'",
1316 "term : ary '[' expr ']'",
1317 "term : ary '{' expr ';' '}'",
1318 "term : DELETE scalar '{' expr ';' '}'",
1319 "term : DELETE '(' scalar '{' expr ';' '}' ')'",
1320 "term : THING",
1321 "term : amper",
1322 "term : amper '(' ')'",
1323 "term : amper '(' expr crp",
1324 "term : NOAMP WORD listexpr",
1325 "term : DO sexpr",
1326 "term : DO block",
1327 "term : DO WORD '(' ')'",
1328 "term : DO WORD '(' expr crp",
1329 "term : DO scalar '(' ')'",
1330 "term : DO scalar '(' expr crp",
1331 "term : LOOPEX",
1332 "term : LOOPEX WORD",
1333 "term : UNIOP",
1334 "term : UNIOP block",
1335 "term : UNIOP sexpr",
1336 "term : FUNC0",
1337 "term : FUNC0 '(' ')'",
1338 "term : FUNC1 '(' ')'",
1339 "term : FUNC1 '(' expr ')'",
1340 "term : PMFUNC '(' sexpr ')'",
1341 "term : PMFUNC '(' sexpr ',' sexpr ')'",
1342 "term : WORD",
1343 "term : listop",
1344 "listexpr :",
1345 "listexpr : expr",
1346 "amper : '&' indirob",
1347 "scalar : '$' indirob",
1348 "ary : '@' indirob",
1349 "hsh : '%' indirob",
1350 "arylen : DOLSHARP indirob",
1351 "star : '*' indirob",
1352 "indirob : WORD",
1353 "indirob : scalar",
1354 "indirob : block",
1355 "indirob : PRIVATEREF",
1356 "crp : ',' ')'",
1357 "crp : ')'",
1358 "crb : ',' ']'",
1359 "crb : ']'",
1360 "crhb : ',' ';' '}'",
1361 "crhb : ';' '}'",
1362 };
1363 #endif
1364 #define yyclearin (yychar=(-1))
1365 #define yyerrok (yyerrflag=0)
1366 #ifdef YYSTACKSIZE
1367 #ifndef YYMAXDEPTH
1368 #define YYMAXDEPTH YYSTACKSIZE
1369 #endif
1370 #else
1371 #ifdef YYMAXDEPTH
1372 #define YYSTACKSIZE YYMAXDEPTH
1373 #else
1374 #define YYSTACKSIZE 500
1375 #define YYMAXDEPTH 500
1376 #endif
1377 #endif
1378 int yydebug;
1379 int yynerrs;
1380 int yyerrflag;
1381 int yychar;
1382 YYSTYPE yyval;
1383 YYSTYPE yylval;
1384 #line 579 "perly.y"
1385  /* PROGRAM */
1386 #line 1392 "y.tab.c"
1387 #define YYABORT goto yyabort
1388 #define YYACCEPT goto yyaccept
1389 #define YYERROR goto yyerrlab
1390 int
1391 yyparse()
1392 {
1393     register int yym, yyn, yystate;
1394     register short *yyssp;
1395     register YYSTYPE *yyvsp;
1396     short* yyss;
1397     YYSTYPE* yyvs;
1398     unsigned yystacksize = YYSTACKSIZE;
1399     int oldyydebug      = yydebug;
1400     int oldyynerrs      = yynerrs;
1401     int oldyyerrflag    = yyerrflag;
1402     int oldyychar       = yychar;
1403     YYSTYPE oldyyval    = yyval;
1404     YYSTYPE oldyylval   = yylval;
1405     int retval = 0;
1406
1407 #if YYDEBUG
1408     register char *yys;
1409     extern char *getenv();
1410
1411     if (yys = getenv("YYDEBUG"))
1412     {
1413         yyn = *yys;
1414         if (yyn >= '0' && yyn <= '9')
1415             yydebug = yyn - '0';
1416     }
1417 #endif
1418
1419     yynerrs = 0;
1420     yyerrflag = 0;
1421     yychar = (-1);
1422
1423     /*
1424     ** Initialize private stacks (yyparse may be called from an action)
1425     */
1426     yyss = (short*)malloc(yystacksize*sizeof(short));
1427     yyvs = (YYSTYPE*)malloc(yystacksize*sizeof(YYSTYPE));
1428     if (!yyvs || !yyss)
1429         goto yyoverflow;
1430
1431     yyssp = yyss;
1432     yyvsp = yyvs;
1433     *yyssp = yystate = 0;
1434
1435 yyloop:
1436     if (yyn = yydefred[yystate]) goto yyreduce;
1437     if (yychar < 0)
1438     {
1439         if ((yychar = yylex()) < 0) yychar = 0;
1440 #if YYDEBUG
1441         if (yydebug)
1442         {
1443             yys = 0;
1444             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1445             if (!yys) yys = "illegal-symbol";
1446             printf("yydebug: state %d, reading %d (%s)\n", yystate,
1447                     yychar, yys);
1448         }
1449 #endif
1450     }
1451     if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
1452             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1453     {
1454 #if YYDEBUG
1455         if (yydebug)
1456             printf("yydebug: state %d, shifting to state %d\n",
1457                     yystate, yytable[yyn]);
1458 #endif
1459         if (yyssp >= yyss + yystacksize - 1)
1460         {
1461             /*
1462             ** reallocate and recover.  Note that pointers
1463             ** have to be reset, or bad things will happen
1464             */
1465             int yyps_index = (yyssp - yyss);
1466             int yypv_index = (yyvsp - yyvs);
1467             yystacksize += YYSTACKSIZE;
1468             yyvs = (YYSTYPE*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
1469             yyss = (short*)realloc((char*)yyss,yystacksize * sizeof(short));
1470             if (!yyvs || !yyss)
1471                 goto yyoverflow;
1472             yyssp = yyss + yyps_index;
1473             yyvsp = yyvs + yypv_index;
1474         }
1475         *++yyssp = yystate = yytable[yyn];
1476         *++yyvsp = yylval;
1477         yychar = (-1);
1478         if (yyerrflag > 0)  --yyerrflag;
1479         goto yyloop;
1480     }
1481     if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
1482             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1483     {
1484         yyn = yytable[yyn];
1485         goto yyreduce;
1486     }
1487     if (yyerrflag) goto yyinrecovery;
1488 #ifdef lint
1489     goto yynewerror;
1490 #endif
1491 yynewerror:
1492     yyerror("syntax error");
1493 #ifdef lint
1494     goto yyerrlab;
1495 #endif
1496 yyerrlab:
1497     ++yynerrs;
1498 yyinrecovery:
1499     if (yyerrflag < 3)
1500     {
1501         yyerrflag = 3;
1502         for (;;)
1503         {
1504             if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
1505                     yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
1506             {
1507 #if YYDEBUG
1508                 if (yydebug)
1509                     printf("yydebug: state %d, error recovery shifting\
1510  to state %d\n", *yyssp, yytable[yyn]);
1511 #endif
1512                 if (yyssp >= yyss + yystacksize - 1)
1513                 {
1514                     /*
1515                     ** reallocate and recover.  Note that pointers
1516                     ** have to be reset, or bad things will happen
1517                     */
1518                     int yyps_index = (yyssp - yyss);
1519                     int yypv_index = (yyvsp - yyvs);
1520                     yystacksize += YYSTACKSIZE;
1521                     yyvs = (YYSTYPE*)realloc((char*)yyvs,
1522                         yystacksize * sizeof(YYSTYPE));
1523                     yyss = (short*)realloc((char*)yyss,
1524                         yystacksize * sizeof(short));
1525                     if (!yyvs || !yyss)
1526                         goto yyoverflow;
1527                     yyssp = yyss + yyps_index;
1528                     yyvsp = yyvs + yypv_index;
1529                 }
1530                 *++yyssp = yystate = yytable[yyn];
1531                 *++yyvsp = yylval;
1532                 goto yyloop;
1533             }
1534             else
1535             {
1536 #if YYDEBUG
1537                 if (yydebug)
1538                     printf("yydebug: error recovery discarding state %d\n",
1539                             *yyssp);
1540 #endif
1541                 if (yyssp <= yyss) goto yyabort;
1542                 --yyssp;
1543                 --yyvsp;
1544             }
1545         }
1546     }
1547     else
1548     {
1549         if (yychar == 0) goto yyabort;
1550 #if YYDEBUG
1551         if (yydebug)
1552         {
1553             yys = 0;
1554             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1555             if (!yys) yys = "illegal-symbol";
1556             printf("yydebug: state %d, error recovery discards token %d (%s)\n",
1557                     yystate, yychar, yys);
1558         }
1559 #endif
1560         yychar = (-1);
1561         goto yyloop;
1562     }
1563 yyreduce:
1564 #if YYDEBUG
1565     if (yydebug)
1566         printf("yydebug: state %d, reducing by rule %d (%s)\n",
1567                 yystate, yyn, yyrule[yyn]);
1568 #endif
1569     yym = yylen[yyn];
1570     yyval = yyvsp[1-yym];
1571     switch (yyn)
1572     {
1573 case 1:
1574 #line 100 "perly.y"
1575 {
1576 #if defined(YYDEBUG) && defined(DEBUGGING)
1577                     yydebug = (debug & 1);
1578 #endif
1579                     expect = XBLOCK;
1580                 }
1581 break;
1582 case 2:
1583 #line 107 "perly.y"
1584 {   if (in_eval) {
1585                                 eval_root = newUNOP(OP_LEAVEEVAL, 0, yyvsp[0].opval);
1586                                 eval_start = linklist(eval_root);
1587                                 eval_root->op_next = 0;
1588                                 peep(eval_start);
1589                             }
1590                             else
1591                                 main_root = block_head(yyvsp[0].opval, &main_start);
1592                         }
1593 break;
1594 case 3:
1595 #line 119 "perly.y"
1596 { yyval.opval = scalarseq(yyvsp[-1].opval);
1597                           if (copline > (line_t)yyvsp[-3].ival)
1598                               copline = yyvsp[-3].ival;
1599                           leave_scope(yyvsp[-2].ival);
1600                           pad_leavemy(comppadnamefill);
1601                           expect = XBLOCK; }
1602 break;
1603 case 4:
1604 #line 128 "perly.y"
1605 { yyval.ival = savestack_ix; SAVEINT(comppadnamefill); }
1606 break;
1607 case 5:
1608 #line 132 "perly.y"
1609 { yyval.opval = Nullop; }
1610 break;
1611 case 6:
1612 #line 134 "perly.y"
1613 { yyval.opval = yyvsp[-1].opval; }
1614 break;
1615 case 7:
1616 #line 136 "perly.y"
1617 { yyval.opval = append_list(OP_LINESEQ, yyvsp[-1].opval, yyvsp[0].opval); pad_reset(); }
1618 break;
1619 case 8:
1620 #line 140 "perly.y"
1621 { yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); }
1622 break;
1623 case 10:
1624 #line 143 "perly.y"
1625 { if (yyvsp[-1].pval != Nullch) {
1626                               yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0));
1627                             }
1628                             else {
1629                               yyval.opval = Nullop;
1630                               copline = NOLINE;
1631                             }
1632                             expect = XBLOCK; }
1633 break;
1634 case 11:
1635 #line 152 "perly.y"
1636 { yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
1637                           expect = XBLOCK; }
1638 break;
1639 case 12:
1640 #line 157 "perly.y"
1641 { yyval.opval = Nullop; }
1642 break;
1643 case 13:
1644 #line 159 "perly.y"
1645 { yyval.opval = yyvsp[0].opval; }
1646 break;
1647 case 14:
1648 #line 161 "perly.y"
1649 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1650 break;
1651 case 15:
1652 #line 163 "perly.y"
1653 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1654 break;
1655 case 16:
1656 #line 165 "perly.y"
1657 { yyval.opval = newLOOPOP(0, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); }
1658 break;
1659 case 17:
1660 #line 167 "perly.y"
1661 { yyval.opval = newLOOPOP(0, 1, invert(scalar(yyvsp[0].opval)), yyvsp[-2].opval);}
1662 break;
1663 case 18:
1664 #line 171 "perly.y"
1665 { yyval.opval = Nullop; }
1666 break;
1667 case 19:
1668 #line 173 "perly.y"
1669 { yyval.opval = scope(yyvsp[0].opval); }
1670 break;
1671 case 20:
1672 #line 175 "perly.y"
1673 { copline = yyvsp[-5].ival;
1674                             yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval); }
1675 break;
1676 case 21:
1677 #line 180 "perly.y"
1678 { copline = yyvsp[-5].ival;
1679                             yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval); }
1680 break;
1681 case 22:
1682 #line 183 "perly.y"
1683 { copline = yyvsp[-5].ival;
1684                             yyval.opval = newCONDOP(0,
1685                                 invert(scalar(yyvsp[-3].opval)), scope(yyvsp[-1].opval), yyvsp[0].opval); }
1686 break;
1687 case 23:
1688 #line 187 "perly.y"
1689 { copline = yyvsp[-3].ival;
1690                             yyval.opval = newCONDOP(0, scope(yyvsp[-2].opval), scope(yyvsp[-1].opval), yyvsp[0].opval); }
1691 break;
1692 case 24:
1693 #line 190 "perly.y"
1694 { copline = yyvsp[-3].ival;
1695                             yyval.opval = newCONDOP(0, invert(scalar(scope(yyvsp[-2].opval))),
1696                                                 scope(yyvsp[-1].opval), yyvsp[0].opval); }
1697 break;
1698 case 25:
1699 #line 196 "perly.y"
1700 { yyval.opval = Nullop; }
1701 break;
1702 case 26:
1703 #line 198 "perly.y"
1704 { yyval.opval = scope(yyvsp[0].opval); }
1705 break;
1706 case 27:
1707 #line 202 "perly.y"
1708 { copline = yyvsp[-5].ival;
1709                             yyval.opval = newSTATEOP(0, yyvsp[-6].pval,
1710                                     newWHILEOP(0, 1, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval) ); }
1711 break;
1712 case 28:
1713 #line 206 "perly.y"
1714 { copline = yyvsp[-5].ival;
1715                             yyval.opval = newSTATEOP(0, yyvsp[-6].pval,
1716                                     newWHILEOP(0, 1, Nullop,
1717                                         invert(scalar(yyvsp[-3].opval)), yyvsp[-1].opval, yyvsp[0].opval) ); }
1718 break;
1719 case 29:
1720 #line 211 "perly.y"
1721 { copline = yyvsp[-3].ival;
1722                             yyval.opval = newSTATEOP(0, yyvsp[-4].pval,
1723                                     newWHILEOP(0, 1, Nullop,
1724                                         scope(yyvsp[-2].opval), yyvsp[-1].opval, yyvsp[0].opval) ); }
1725 break;
1726 case 30:
1727 #line 216 "perly.y"
1728 { copline = yyvsp[-3].ival;
1729                             yyval.opval = newSTATEOP(0, yyvsp[-4].pval,
1730                                     newWHILEOP(0, 1, Nullop,
1731                                         invert(scalar(scope(yyvsp[-2].opval))), yyvsp[-1].opval, yyvsp[0].opval)); }
1732 break;
1733 case 31:
1734 #line 221 "perly.y"
1735 { yyval.opval = newFOROP(0, yyvsp[-7].pval, yyvsp[-6].ival, ref(yyvsp[-5].opval, OP_ENTERLOOP),
1736                                 yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval); }
1737 break;
1738 case 32:
1739 #line 224 "perly.y"
1740 { yyval.opval = newFOROP(0, yyvsp[-6].pval, yyvsp[-5].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval); }
1741 break;
1742 case 33:
1743 #line 227 "perly.y"
1744 {  copline = yyvsp[-8].ival;
1745                             yyval.opval = append_elem(OP_LINESEQ,
1746                                     newSTATEOP(0, yyvsp[-9].pval, scalar(yyvsp[-6].opval)),
1747                                     newSTATEOP(0, yyvsp[-9].pval,
1748                                         newWHILEOP(0, 1, Nullop,
1749                                             scalar(yyvsp[-4].opval), yyvsp[0].opval, scalar(yyvsp[-2].opval)) )); }
1750 break;
1751 case 34:
1752 #line 234 "perly.y"
1753 { yyval.opval = newSTATEOP(0,
1754                                 yyvsp[-2].pval, newWHILEOP(0, 1, Nullop, Nullop, yyvsp[-1].opval, yyvsp[0].opval)); }
1755 break;
1756 case 35:
1757 #line 239 "perly.y"
1758 { yyval.opval = Nullop; }
1759 break;
1760 case 37:
1761 #line 244 "perly.y"
1762 { (void)scan_num("1"); yyval.opval = yylval.opval; }
1763 break;
1764 case 39:
1765 #line 249 "perly.y"
1766 { yyval.pval = Nullch; }
1767 break;
1768 case 41:
1769 #line 254 "perly.y"
1770 { yyval.ival = 0; }
1771 break;
1772 case 42:
1773 #line 256 "perly.y"
1774 { yyval.ival = 0; }
1775 break;
1776 case 43:
1777 #line 258 "perly.y"
1778 { yyval.ival = 0; }
1779 break;
1780 case 44:
1781 #line 262 "perly.y"
1782 { newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
1783 break;
1784 case 45:
1785 #line 264 "perly.y"
1786 { newFORM(yyvsp[-1].ival, Nullop, yyvsp[0].opval); }
1787 break;
1788 case 46:
1789 #line 268 "perly.y"
1790 { newSUB(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
1791 break;
1792 case 47:
1793 #line 270 "perly.y"
1794 { newSUB(yyvsp[-2].ival, yyvsp[-1].opval, Nullop); }
1795 break;
1796 case 48:
1797 #line 274 "perly.y"
1798 { package(yyvsp[-1].opval); }
1799 break;
1800 case 49:
1801 #line 276 "perly.y"
1802 { package(Nullop); }
1803 break;
1804 case 50:
1805 #line 280 "perly.y"
1806 { yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); }
1807 break;
1808 case 52:
1809 #line 285 "perly.y"
1810 { yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED,
1811                                 prepend_elem(OP_LIST, newGVREF(yyvsp[-1].opval), yyvsp[0].opval) ); }
1812 break;
1813 case 53:
1814 #line 288 "perly.y"
1815 { yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED,
1816                                 prepend_elem(OP_LIST, newGVREF(yyvsp[-2].opval), yyvsp[-1].opval) ); }
1817 break;
1818 case 54:
1819 #line 291 "perly.y"
1820 { yyval.opval = convert(yyvsp[-1].ival, OPf_STACKED,
1821                                 prepend_elem(OP_LIST, newGVREF(yyvsp[-3].opval), yyvsp[0].opval) ); }
1822 break;
1823 case 55:
1824 #line 294 "perly.y"
1825 { yyval.opval = convert(yyvsp[-3].ival, OPf_STACKED,
1826                                 prepend_elem(OP_LIST, newGVREF(yyvsp[-5].opval), yyvsp[-1].opval) ); }
1827 break;
1828 case 56:
1829 #line 297 "perly.y"
1830 { yyval.opval = convert(OP_ENTERSUBR, OPf_STACKED|OPf_SPECIAL,
1831                                 prepend_elem(OP_LIST, newMETHOD(yyvsp[-5].opval,yyvsp[-3].opval), yyvsp[-1].opval)); }
1832 break;
1833 case 57:
1834 #line 300 "perly.y"
1835 { yyval.opval = convert(OP_ENTERSUBR, OPf_STACKED|OPf_SPECIAL,
1836                                 prepend_elem(OP_LIST, newMETHOD(yyvsp[-1].opval,yyvsp[-2].opval), yyvsp[0].opval)); }
1837 break;
1838 case 58:
1839 #line 303 "perly.y"
1840 { yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); }
1841 break;
1842 case 59:
1843 #line 305 "perly.y"
1844 { yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
1845 break;
1846 case 60:
1847 #line 309 "perly.y"
1848 { yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[0].opval); }
1849 break;
1850 case 61:
1851 #line 311 "perly.y"
1852 { yyval.opval = newBINOP(yyvsp[-2].ival, OPf_STACKED,
1853                                 ref(scalar(yyvsp[-3].opval), yyvsp[-2].ival), scalar(yyvsp[0].opval)); }
1854 break;
1855 case 62:
1856 #line 314 "perly.y"
1857 { yyval.opval = newBINOP(yyvsp[-2].ival, OPf_STACKED,
1858                                 ref(scalar(yyvsp[-3].opval), yyvsp[-2].ival), scalar(yyvsp[0].opval)); }
1859 break;
1860 case 63:
1861 #line 317 "perly.y"
1862 { yyval.opval = newBINOP(yyvsp[-2].ival, OPf_STACKED,
1863                                 ref(scalar(yyvsp[-3].opval), yyvsp[-2].ival), scalar(yyvsp[0].opval));}
1864 break;
1865 case 64:
1866 #line 320 "perly.y"
1867 { yyval.opval = newBINOP(yyvsp[-2].ival, OPf_STACKED,
1868                                 ref(scalar(yyvsp[-3].opval), yyvsp[-2].ival), scalar(yyvsp[0].opval)); }
1869 break;
1870 case 65:
1871 #line 323 "perly.y"
1872 { yyval.opval = newBINOP(yyvsp[-2].ival, OPf_STACKED,
1873                                 ref(scalar(yyvsp[-3].opval), yyvsp[-2].ival), scalar(yyvsp[0].opval)); }
1874 break;
1875 case 66:
1876 #line 326 "perly.y"
1877 { yyval.opval = newBINOP(yyvsp[-2].ival, OPf_STACKED,
1878                                 ref(scalar(yyvsp[-3].opval), yyvsp[-2].ival), scalar(yyvsp[0].opval)); }
1879 break;
1880 case 67:
1881 #line 329 "perly.y"
1882 { yyval.opval = newLOGOP(OP_ANDASSIGN, 0,
1883                                 ref(scalar(yyvsp[-3].opval), OP_ANDASSIGN),
1884                                 newUNOP(OP_SASSIGN, 0, scalar(yyvsp[0].opval))); }
1885 break;
1886 case 68:
1887 #line 333 "perly.y"
1888 { yyval.opval = newLOGOP(OP_ORASSIGN, 0,
1889                                 ref(scalar(yyvsp[-3].opval), OP_ORASSIGN),
1890                                 newUNOP(OP_SASSIGN, 0, scalar(yyvsp[0].opval))); }
1891 break;
1892 case 69:
1893 #line 339 "perly.y"
1894 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
1895 break;
1896 case 70:
1897 #line 341 "perly.y"
1898 {   if (yyvsp[-1].ival != OP_REPEAT)
1899                                 scalar(yyvsp[-2].opval);
1900                             yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); }
1901 break;
1902 case 71:
1903 #line 345 "perly.y"
1904 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
1905 break;
1906 case 72:
1907 #line 347 "perly.y"
1908 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
1909 break;
1910 case 73:
1911 #line 349 "perly.y"
1912 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
1913 break;
1914 case 74:
1915 #line 351 "perly.y"
1916 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
1917 break;
1918 case 75:
1919 #line 353 "perly.y"
1920 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
1921 break;
1922 case 76:
1923 #line 355 "perly.y"
1924 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
1925 break;
1926 case 77:
1927 #line 357 "perly.y"
1928 { yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));}
1929 break;
1930 case 78:
1931 #line 359 "perly.y"
1932 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
1933 break;
1934 case 79:
1935 #line 361 "perly.y"
1936 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
1937 break;
1938 case 80:
1939 #line 363 "perly.y"
1940 { yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); }
1941 break;
1942 case 81:
1943 #line 365 "perly.y"
1944 { yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); }
1945 break;
1946 case 82:
1947 #line 367 "perly.y"
1948 { yyval.opval = yyvsp[0].opval; }
1949 break;
1950 case 83:
1951 #line 371 "perly.y"
1952 { yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); }
1953 break;
1954 case 84:
1955 #line 373 "perly.y"
1956 { yyval.opval = yyvsp[0].opval; }
1957 break;
1958 case 85:
1959 #line 375 "perly.y"
1960 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
1961 break;
1962 case 86:
1963 #line 377 "perly.y"
1964 { yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));}
1965 break;
1966 case 87:
1967 #line 379 "perly.y"
1968 { yyval.opval = newUNOP(OP_REFGEN, 0, ref(yyvsp[0].opval, OP_REFGEN)); }
1969 break;
1970 case 88:
1971 #line 381 "perly.y"
1972 { yyval.opval = newUNOP(OP_POSTINC, 0,
1973                                         ref(scalar(yyvsp[-1].opval), OP_POSTINC)); }
1974 break;
1975 case 89:
1976 #line 384 "perly.y"
1977 { yyval.opval = newUNOP(OP_POSTDEC, 0,
1978                                         ref(scalar(yyvsp[-1].opval), OP_POSTDEC)); }
1979 break;
1980 case 90:
1981 #line 387 "perly.y"
1982 { yyval.opval = newUNOP(OP_PREINC, 0,
1983                                         ref(scalar(yyvsp[0].opval), OP_PREINC)); }
1984 break;
1985 case 91:
1986 #line 390 "perly.y"
1987 { yyval.opval = newUNOP(OP_PREDEC, 0,
1988                                         ref(scalar(yyvsp[0].opval), OP_PREDEC)); }
1989 break;
1990 case 92:
1991 #line 393 "perly.y"
1992 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
1993 break;
1994 case 93:
1995 #line 395 "perly.y"
1996 { yyval.opval = sawparens(yyvsp[-1].opval); }
1997 break;
1998 case 94:
1999 #line 397 "perly.y"
2000 { yyval.opval = newNULLLIST(); }
2001 break;
2002 case 95:
2003 #line 399 "perly.y"
2004 { yyval.opval = newANONLIST(yyvsp[-1].opval); }
2005 break;
2006 case 96:
2007 #line 401 "perly.y"
2008 { yyval.opval = newANONLIST(Nullop); }
2009 break;
2010 case 97:
2011 #line 403 "perly.y"
2012 { yyval.opval = newANONHASH(yyvsp[-1].opval); }
2013 break;
2014 case 98:
2015 #line 405 "perly.y"
2016 { yyval.opval = newANONHASH(Nullop); }
2017 break;
2018 case 99:
2019 #line 407 "perly.y"
2020 { yyval.opval = yyvsp[0].opval; }
2021 break;
2022 case 100:
2023 #line 409 "perly.y"
2024 { yyval.opval = yyvsp[0].opval; }
2025 break;
2026 case 101:
2027 #line 411 "perly.y"
2028 { yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); }
2029 break;
2030 case 102:
2031 #line 413 "perly.y"
2032 { yyval.opval = newBINOP(OP_AELEM, 0,
2033                                         scalar(ref(newAVREF(yyvsp[-4].opval),OP_RV2AV)),
2034                                         scalar(yyvsp[-1].opval));}
2035 break;
2036 case 103:
2037 #line 417 "perly.y"
2038 { yyval.opval = yyvsp[0].opval; }
2039 break;
2040 case 104:
2041 #line 419 "perly.y"
2042 { yyval.opval = yyvsp[0].opval; }
2043 break;
2044 case 105:
2045 #line 421 "perly.y"
2046 { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));}
2047 break;
2048 case 106:
2049 #line 423 "perly.y"
2050 { yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
2051                             expect = XOPERATOR; }
2052 break;
2053 case 107:
2054 #line 426 "perly.y"
2055 { yyval.opval = newBINOP(OP_HELEM, 0,
2056                                         scalar(ref(newHVREF(yyvsp[-5].opval),OP_RV2HV)),
2057                                         jmaybe(yyvsp[-2].opval));
2058                             expect = XOPERATOR; }
2059 break;
2060 case 108:
2061 #line 431 "perly.y"
2062 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); }
2063 break;
2064 case 109:
2065 #line 433 "perly.y"
2066 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); }
2067 break;
2068 case 110:
2069 #line 435 "perly.y"
2070 { yyval.opval = prepend_elem(OP_ASLICE,
2071                                 newOP(OP_PUSHMARK, 0),
2072                                 list(
2073                                     newLISTOP(OP_ASLICE, 0,
2074                                         list(yyvsp[-1].opval),
2075                                         ref(yyvsp[-3].opval, OP_ASLICE)))); }
2076 break;
2077 case 111:
2078 #line 442 "perly.y"
2079 { yyval.opval = prepend_elem(OP_HSLICE,
2080                                 newOP(OP_PUSHMARK, 0),
2081                                 list(
2082                                     newLISTOP(OP_HSLICE, 0,
2083                                         list(yyvsp[-2].opval),
2084                                         ref(oopsHV(yyvsp[-4].opval), OP_HSLICE))));
2085                             expect = XOPERATOR; }
2086 break;
2087 case 112:
2088 #line 450 "perly.y"
2089 { yyval.opval = newBINOP(OP_DELETE, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
2090                             expect = XOPERATOR; }
2091 break;
2092 case 113:
2093 #line 453 "perly.y"
2094 { yyval.opval = newBINOP(OP_DELETE, 0, oopsHV(yyvsp[-5].opval), jmaybe(yyvsp[-3].opval));
2095                             expect = XOPERATOR; }
2096 break;
2097 case 114:
2098 #line 456 "perly.y"
2099 { yyval.opval = yyvsp[0].opval; }
2100 break;
2101 case 115:
2102 #line 458 "perly.y"
2103 { yyval.opval = newUNOP(OP_ENTERSUBR, 0,
2104                                 scalar(yyvsp[0].opval)); }
2105 break;
2106 case 116:
2107 #line 461 "perly.y"
2108 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_STACKED, scalar(yyvsp[-2].opval)); }
2109 break;
2110 case 117:
2111 #line 463 "perly.y"
2112 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_STACKED,
2113                             list(prepend_elem(OP_LIST, scalar(yyvsp[-3].opval), yyvsp[-1].opval))); }
2114 break;
2115 case 118:
2116 #line 466 "perly.y"
2117 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_STACKED,
2118                             list(prepend_elem(OP_LIST,
2119                                 newCVREF(scalar(yyvsp[-1].opval)), yyvsp[0].opval))); }
2120 break;
2121 case 119:
2122 #line 470 "perly.y"
2123 { yyval.opval = newUNOP(OP_DOFILE, 0, scalar(yyvsp[0].opval));
2124                           allgvs = TRUE;}
2125 break;
2126 case 120:
2127 #line 473 "perly.y"
2128 { yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); }
2129 break;
2130 case 121:
2131 #line 475 "perly.y"
2132 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_SPECIAL|OPf_STACKED,
2133                             list(prepend_elem(OP_LIST,
2134                                 scalar(newCVREF(scalar(yyvsp[-2].opval))), newNULLLIST()))); }
2135 break;
2136 case 122:
2137 #line 479 "perly.y"
2138 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_SPECIAL|OPf_STACKED,
2139                             list(prepend_elem(OP_LIST,
2140                                 scalar(newCVREF(scalar(yyvsp[-3].opval))),
2141                                 yyvsp[-1].opval))); }
2142 break;
2143 case 123:
2144 #line 484 "perly.y"
2145 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_SPECIAL|OPf_STACKED,
2146                             list(prepend_elem(OP_LIST,
2147                                 scalar(newCVREF(scalar(yyvsp[-2].opval))), newNULLLIST())));}
2148 break;
2149 case 124:
2150 #line 488 "perly.y"
2151 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_SPECIAL|OPf_STACKED,
2152                             list(prepend_elem(OP_LIST,
2153                                 scalar(newCVREF(scalar(yyvsp[-3].opval))),
2154                                 yyvsp[-1].opval))); }
2155 break;
2156 case 125:
2157 #line 493 "perly.y"
2158 { yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL); }
2159 break;
2160 case 126:
2161 #line 495 "perly.y"
2162 { yyval.opval = newPVOP(yyvsp[-1].ival, 0,
2163                                 savestr(SvPVnx(((SVOP*)yyvsp[0].opval)->op_sv)));
2164                             op_free(yyvsp[0].opval); }
2165 break;
2166 case 127:
2167 #line 499 "perly.y"
2168 { yyval.opval = newOP(yyvsp[0].ival, 0); }
2169 break;
2170 case 128:
2171 #line 501 "perly.y"
2172 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2173 break;
2174 case 129:
2175 #line 503 "perly.y"
2176 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2177 break;
2178 case 130:
2179 #line 505 "perly.y"
2180 { yyval.opval = newOP(yyvsp[0].ival, 0); }
2181 break;
2182 case 131:
2183 #line 507 "perly.y"
2184 { yyval.opval = newOP(yyvsp[-2].ival, 0); }
2185 break;
2186 case 132:
2187 #line 509 "perly.y"
2188 { yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); }
2189 break;
2190 case 133:
2191 #line 511 "perly.y"
2192 { yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
2193 break;
2194 case 134:
2195 #line 513 "perly.y"
2196 { yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); }
2197 break;
2198 case 135:
2199 #line 515 "perly.y"
2200 { yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); }
2201 break;
2202 case 138:
2203 #line 521 "perly.y"
2204 { yyval.opval = newNULLLIST(); }
2205 break;
2206 case 139:
2207 #line 523 "perly.y"
2208 { yyval.opval = yyvsp[0].opval; }
2209 break;
2210 case 140:
2211 #line 527 "perly.y"
2212 { yyval.opval = newCVREF(yyvsp[0].opval); }
2213 break;
2214 case 141:
2215 #line 531 "perly.y"
2216 { yyval.opval = newSVREF(yyvsp[0].opval); }
2217 break;
2218 case 142:
2219 #line 535 "perly.y"
2220 { yyval.opval = newAVREF(yyvsp[0].opval); }
2221 break;
2222 case 143:
2223 #line 539 "perly.y"
2224 { yyval.opval = newHVREF(yyvsp[0].opval); }
2225 break;
2226 case 144:
2227 #line 543 "perly.y"
2228 { yyval.opval = newAVREF(yyvsp[0].opval); }
2229 break;
2230 case 145:
2231 #line 547 "perly.y"
2232 { yyval.opval = newGVREF(yyvsp[0].opval); }
2233 break;
2234 case 146:
2235 #line 551 "perly.y"
2236 { yyval.opval = scalar(yyvsp[0].opval); }
2237 break;
2238 case 147:
2239 #line 553 "perly.y"
2240 { yyval.opval = scalar(yyvsp[0].opval); }
2241 break;
2242 case 148:
2243 #line 555 "perly.y"
2244 { yyval.opval = scalar(scope(yyvsp[0].opval)); }
2245 break;
2246 case 149:
2247 #line 558 "perly.y"
2248 { yyval.opval = yyvsp[0].opval; }
2249 break;
2250 case 150:
2251 #line 562 "perly.y"
2252 { yyval.ival = 1; }
2253 break;
2254 case 151:
2255 #line 564 "perly.y"
2256 { yyval.ival = 0; }
2257 break;
2258 case 152:
2259 #line 568 "perly.y"
2260 { yyval.ival = 1; }
2261 break;
2262 case 153:
2263 #line 570 "perly.y"
2264 { yyval.ival = 0; }
2265 break;
2266 case 154:
2267 #line 574 "perly.y"
2268 { yyval.ival = 1; }
2269 break;
2270 case 155:
2271 #line 576 "perly.y"
2272 { yyval.ival = 0; }
2273 break;
2274 #line 2233 "y.tab.c"
2275     }
2276     yyssp -= yym;
2277     yystate = *yyssp;
2278     yyvsp -= yym;
2279     yym = yylhs[yyn];
2280     if (yystate == 0 && yym == 0)
2281     {
2282 #if YYDEBUG
2283         if (yydebug)
2284             printf("yydebug: after reduction, shifting from state 0 to\
2285  state %d\n", YYFINAL);
2286 #endif
2287         yystate = YYFINAL;
2288         *++yyssp = YYFINAL;
2289         *++yyvsp = yyval;
2290         if (yychar < 0)
2291         {
2292             if ((yychar = yylex()) < 0) yychar = 0;
2293 #if YYDEBUG
2294             if (yydebug)
2295             {
2296                 yys = 0;
2297                 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2298                 if (!yys) yys = "illegal-symbol";
2299                 printf("yydebug: state %d, reading %d (%s)\n",
2300                         YYFINAL, yychar, yys);
2301             }
2302 #endif
2303         }
2304         if (yychar == 0) goto yyaccept;
2305         goto yyloop;
2306     }
2307     if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
2308             yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
2309         yystate = yytable[yyn];
2310     else
2311         yystate = yydgoto[yym];
2312 #if YYDEBUG
2313     if (yydebug)
2314         printf("yydebug: after reduction, shifting from state %d \
2315 to state %d\n", *yyssp, yystate);
2316 #endif
2317     if (yyssp >= yyss + yystacksize - 1)
2318     {
2319         /*
2320         ** reallocate and recover.  Note that pointers
2321         ** have to be reset, or bad things will happen
2322         */
2323         int yyps_index = (yyssp - yyss);
2324         int yypv_index = (yyvsp - yyvs);
2325         yystacksize += YYSTACKSIZE;
2326         yyvs = (YYSTYPE*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
2327         yyss = (short*)realloc((char*)yyss,yystacksize * sizeof(short));
2328         if (!yyvs || !yyss)
2329             goto yyoverflow;
2330         yyssp = yyss + yyps_index;
2331         yyvsp = yyvs + yypv_index;
2332     }
2333     *++yyssp = yystate;
2334     *++yyvsp = yyval;
2335     goto yyloop;
2336 yyoverflow:
2337     yyerror("Out of memory for yacc stack");
2338 yyabort:
2339     retval = 1;
2340 yyaccept:
2341     if (yyss) free(yyss);
2342     if (yyvs) free(yyvs);
2343     yydebug     = oldyydebug;
2344     yynerrs     = oldyynerrs;
2345     yyerrflag   = oldyyerrflag;
2346     yychar      = oldyychar;
2347     yyval       = oldyyval;
2348     yylval      = oldyylval;
2349     return retval;
2350 }