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