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