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