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