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