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