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