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