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