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