9 extern void yyerror(char *);
10 extern int yylex(void);
13 #define YYMAXDEPTH 150
40 #define PLACENAME 57369
45 #define TEXTATTR 57374
62 #define DIAMETER 57391
189 #define YYPRIVATE 57344
193 173, 334, 139, 32, 53, 68, 312, 242, 124, 125,
194 137, 42, 115, 197, 116, 117, 118, 119, 110, 111,
195 112, 113, 114, 95, 227, 122, 162, 320, 81, 43,
196 274, 137, 92, 319, 51, 299, 273, 161, 137, 160,
197 159, 105, 158, 157, 156, 155, 154, 153, 98, 127,
198 128, 131, 109, 298, 246, 235, 152, 149, 233, 40,
199 112, 113, 114, 122, 51, 122, 41, 72, 40, 194,
200 102, 164, 166, 138, 130, 110, 111, 112, 113, 114,
201 129, 83, 122, 169, 190, 73, 74, 75, 76, 77,
202 78, 79, 80, 276, 246, 200, 110, 111, 112, 113,
203 114, 138, 126, 122, 124, 125, 107, 38, 204, 206,
204 105, 208, 209, 210, 211, 212, 213, 214, 215, 216,
205 217, 218, 219, 220, 195, 221, 224, 132, 133, 134,
206 135, 136, 51, 51, 124, 125, 124, 125, 205, 207,
207 198, 199, 34, 316, 275, 321, 168, 85, 223, 226,
208 234, 124, 125, 44, 236, 237, 238, 239, 240, 241,
209 203, 243, 244, 245, 232, 167, 170, 247, 249, 228,
210 124, 125, 86, 252, 93, 253, 105, 105, 105, 105,
211 105, 96, 97, 123, 261, 262, 263, 265, 335, 336,
212 337, 338, 81, 124, 125, 267, 268, 192, 270, 51,
213 51, 51, 51, 51, 251, 254, 255, 256, 257, 260,
214 121, 120, 115, 197, 116, 117, 118, 119, 110, 111,
215 112, 113, 114, 278, 90, 122, 280, 86, 311, 282,
216 287, 193, 191, 283, 229, 132, 133, 134, 135, 136,
217 71, 201, 142, 146, 147, 143, 144, 145, 148, 250,
218 285, 35, 281, 300, 66, 67, 69, 284, 87, 88,
219 287, 288, 35, 164, 166, 269, 2, 4, 36, 230,
220 37, 285, 286, 39, 163, 305, 105, 105, 308, 36,
221 310, 196, 188, 24, 171, 24, 266, 149, 84, 24,
222 230, 231, 151, 82, 313, 70, 314, 315, 1, 51,
223 51, 69, 165, 317, 318, 306, 307, 37, 100, 24,
224 322, 5, 323, 142, 146, 147, 143, 144, 145, 148,
225 248, 331, 24, 24, 26, 6, 12, 13, 14, 304,
226 89, 339, 91, 0, 301, 340, 0, 0, 0, 0,
227 341, 271, 272, 16, 20, 21, 17, 18, 19, 22,
228 37, 35, 25, 23, 52, 46, 10, 11, 0, 0,
229 30, 31, 29, 141, 0, 24, 103, 46, 36, 202,
230 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,
231 67, 69, 54, 0, 24, 0, 0, 0, 0, 0,
232 0, 66, 67, 69, 54, 0, 0, 0, 0, 0,
233 0, 45, 56, 57, 58, 59, 60, 61, 62, 64,
234 63, 65, 0, 45, 56, 57, 58, 59, 60, 61,
235 62, 64, 63, 65, 9, 0, 0, 0, 49, 48,
236 101, 0, 303, 0, 55, 0, 0, 0, 0, 0,
237 49, 48, 35, 94, 0, 0, 55, 0, 0, 0,
238 0, 27, 0, 33, 0, 50, 0, 52, 46, 36,
239 0, 172, 181, 0, 0, 0, 0, 175, 176, 177,
240 178, 179, 182, 0, 142, 146, 147, 143, 144, 145,
241 148, 150, 66, 67, 69, 54, 180, 121, 120, 115,
242 197, 116, 117, 118, 119, 110, 111, 112, 113, 114,
243 0, 0, 122, 0, 45, 56, 57, 58, 59, 60,
244 61, 62, 64, 63, 65, 174, 183, 184, 185, 186,
245 187, 0, 0, 35, 151, 0, 0, 0, 0, 0,
246 0, 49, 48, 0, 35, 0, 0, 55, 52, 46,
247 36, 0, 0, 0, 0, 0, 94, 0, 0, 52,
248 46, 36, 0, 0, 0, 0, 0, 0, 0, 0,
249 0, 0, 0, 66, 67, 69, 54, 0, 0, 0,
250 0, 0, 0, 0, 66, 67, 69, 54, 0, 0,
251 0, 0, 0, 0, 0, 45, 56, 57, 58, 59,
252 60, 61, 62, 64, 63, 65, 45, 56, 57, 58,
253 59, 60, 61, 62, 64, 63, 65, 52, 46, 0,
254 0, 0, 49, 48, 0, 0, 0, 0, 55, 52,
255 46, 0, 0, 49, 48, 0, 0, 94, 0, 55,
256 0, 0, 258, 67, 69, 54, 0, 0, 50, 0,
257 0, 0, 0, 0, 66, 67, 69, 54, 0, 0,
258 0, 0, 0, 0, 45, 56, 57, 58, 59, 60,
259 61, 62, 64, 63, 65, 0, 45, 56, 57, 58,
260 59, 60, 61, 62, 64, 63, 65, 264, 46, 0,
261 0, 49, 48, 0, 0, 0, 0, 55, 52, 46,
262 0, 0, 0, 49, 48, 259, 50, 0, 0, 55,
263 0, 0, 66, 67, 69, 54, 0, 0, 50, 0,
264 0, 0, 0, 66, 67, 69, 54, 0, 0, 0,
265 0, 0, 0, 0, 45, 56, 57, 58, 59, 60,
266 61, 62, 64, 63, 65, 45, 56, 57, 58, 59,
267 60, 61, 62, 64, 63, 65, 52, 46, 0, 0,
268 0, 49, 48, 0, 0, 0, 0, 55, 0, 0,
269 0, 0, 49, 48, 0, 0, 94, 0, 55, 0,
270 0, 66, 67, 69, 54, 0, 0, 225, 120, 115,
271 197, 116, 117, 118, 119, 110, 111, 112, 113, 114,
272 0, 0, 122, 45, 56, 57, 58, 59, 60, 61,
273 62, 64, 63, 65, 0, 16, 20, 21, 17, 18,
274 19, 22, 0, 35, 25, 23, 0, 0, 10, 11,
275 49, 48, 30, 31, 29, 0, 55, 0, 7, 28,
276 36, 0, 0, 0, 0, 222, 16, 20, 21, 17,
277 18, 19, 22, 0, 35, 25, 23, 0, 0, 10,
278 11, 0, 0, 30, 31, 29, 0, 0, 0, 7,
279 28, 36, 3, 0, 16, 20, 21, 17, 18, 19,
280 22, 0, 35, 25, 23, 0, 0, 10, 11, 0,
281 0, 30, 31, 29, 0, 0, 9, 7, 28, 36,
282 0, 0, 15, 0, 0, 121, 120, 115, 197, 116,
283 117, 118, 119, 110, 111, 112, 113, 114, 0, 0,
284 122, 0, 0, 27, 189, 33, 0, 9, 0, 333,
285 0, 0, 0, 15, 121, 120, 115, 197, 116, 117,
286 118, 119, 110, 111, 112, 113, 114, 0, 0, 122,
287 0, 99, 109, 0, 27, 9, 33, 0, 332, 0,
288 0, 15, 16, 20, 21, 17, 18, 19, 22, 0,
289 35, 25, 23, 0, 0, 10, 11, 0, 0, 30,
290 31, 29, 27, 0, 33, 7, 28, 36, 121, 120,
291 115, 108, 116, 117, 118, 119, 110, 111, 112, 113,
292 114, 0, 0, 122, 0, 0, 107, 0, 0, 0,
293 0, 0, 229, 121, 120, 115, 197, 116, 117, 118,
294 119, 110, 111, 112, 113, 114, 0, 0, 122, 0,
295 0, 309, 0, 0, 0, 0, 0, 229, 0, 0,
296 0, 0, 0, 9, 0, 0, 0, 0, 0, 15,
297 121, 120, 115, 197, 116, 117, 118, 119, 110, 111,
298 112, 113, 114, 0, 0, 122, 0, 0, 0, 0,
299 27, 0, 33, 0, 326, 121, 120, 115, 197, 116,
300 117, 118, 119, 110, 111, 112, 113, 114, 0, 0,
301 122, 142, 146, 147, 143, 144, 145, 148, 140, 325,
302 121, 120, 115, 197, 116, 117, 118, 119, 110, 111,
303 112, 113, 114, 0, 0, 122, 0, 0, 0, 0,
304 0, 0, 0, 0, 324, 121, 120, 115, 197, 116,
305 117, 118, 119, 110, 111, 112, 113, 114, 0, 0,
306 122, 141, 0, 0, 0, 0, 0, 0, 0, 297,
307 121, 120, 115, 197, 116, 117, 118, 119, 110, 111,
308 112, 113, 114, 0, 0, 122, 0, 0, 0, 0,
309 0, 0, 0, 0, 294, 121, 120, 115, 197, 116,
310 117, 118, 119, 110, 111, 112, 113, 114, 0, 0,
311 122, 0, 0, 0, 0, 0, 0, 0, 0, 292,
312 121, 120, 115, 197, 116, 117, 118, 119, 110, 111,
313 112, 113, 114, 0, 0, 122, 0, 0, 0, 0,
314 0, 0, 0, 0, 291, 121, 120, 115, 197, 116,
315 117, 118, 119, 110, 111, 112, 113, 114, 0, 0,
316 122, 0, 0, 0, 0, 0, 0, 0, 0, 290,
317 121, 120, 115, 197, 116, 117, 118, 119, 110, 111,
318 112, 113, 114, 0, 109, 122, 0, 0, 0, 0,
319 0, 0, 0, 0, 289, 121, 120, 115, 197, 116,
320 117, 118, 119, 110, 111, 112, 113, 114, 109, 0,
321 122, 0, 0, 0, 0, 0, 0, 0, 106, 229,
322 121, 120, 115, 108, 116, 117, 118, 119, 110, 111,
323 112, 113, 114, 0, 0, 122, 0, 0, 107, 0,
324 0, 0, 0, 0, 121, 120, 115, 108, 116, 117,
325 118, 119, 110, 111, 112, 113, 114, 0, 0, 122,
326 0, 0, 107, 121, 120, 115, 197, 116, 117, 118,
327 119, 110, 111, 112, 113, 114, 0, 0, 122, 0,
328 0, 296, 121, 120, 115, 197, 116, 117, 118, 119,
329 110, 111, 112, 113, 114, 0, 0, 122, 0, 0,
330 295, 121, 120, 115, 197, 116, 117, 118, 119, 110,
331 111, 112, 113, 114, 0, 0, 122, 343, 0, 293,
332 121, 120, 115, 197, 116, 117, 118, 119, 110, 111,
333 112, 113, 114, 342, 0, 122, 0, 0, 279, 121,
334 120, 115, 197, 116, 117, 118, 119, 110, 111, 112,
335 113, 114, 330, 0, 122, 0, 0, 277, 0, 0,
336 0, 0, 0, 0, 0, 0, 329, 0, 328, 0,
337 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
338 0, 0, 327, 0, 121, 120, 115, 197, 116, 117,
339 118, 119, 110, 111, 112, 113, 114, 302, 0, 122,
340 121, 120, 115, 197, 116, 117, 118, 119, 110, 111,
341 112, 113, 114, 0, 0, 122, 0, 0, 0, 121,
342 120, 115, 197, 116, 117, 118, 119, 110, 111, 112,
343 113, 114, 0, 0, 122, 121, 120, 115, 197, 116,
344 117, 118, 119, 110, 111, 112, 113, 114, 0, 0,
345 122, 0, 121, 120, 115, 197, 116, 117, 118, 119,
346 110, 111, 112, 113, 114, 0, 0, 122, 121, 120,
347 115, 197, 116, 117, 118, 119, 110, 111, 112, 113,
348 114, 47, 8, 122, 8, 0, 0, 0, 8, 0,
349 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
350 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,
351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
352 0, 8, 104, 0, 0, 0, 0, 0, 0, 0,
353 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
356 0, 0, 0, 0, 8, 0, 0, 0, 0, 0,
357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
362 860,-1000, 948,-1000,-1000, 16, 948, -51, -25,-1000,
363 522, 212,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
364 -1000,-1000,-1000,-1000, 250,-1000, 948,-1000, -11, 239,
365 196, 511, 149,-1000, 150,-1000, -68,-1000,-1000, 832,
366 339,-1000,1197, 92, 11,-1000, -11,-1000, 327, 327,
367 592, 166, -14,1077, 470, 327, -69, -70, -71, -72,
368 -73, -74, -76, -77, -79, -90, 247,-1000, 113,-1000,
369 55,-1000, 430, 430, 430, 430, 430, 430, 430, 430,
370 430, 149, 801, 327, 239,-1000,-1000, 167, 250, 32,
371 -1000, 257,1445, 41, 327, 166,-1000,-1000, 250,-1000,
372 -1000, 948, 69, -42, -25,1221,-1000, 327, 592, 592,
373 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
374 327, 327, 327,-1000, 719, 661,-1000, -45, -45, -93,
375 58, 885,-1000,-1000,-1000,-1000,-1000,-1000, 263, 112,
376 -57,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, 98,
377 -60,-1000, -45, 327, 327, 327, 327, 327, 327,-110,
378 327, 327, 327, -61, 309, 238,-1000,-1000,-1000,-1000,
379 176,-1000, 327,1445, 327, 592, 592, 592, 592, 580,
380 -1000,-1000,-1000, 327, 327, 650, 327,-1000, 250,-1000,
381 1445,-1000,-1000,-1000, 327, 327, 240, 327, 250, 250,
382 1172, -81,-1000,-1000,1445, 33, -5, 35, -43, -43,
383 -45, -45, -45, -26, -26, -26, -26, -26, -83, 684,
384 -45,1316, 327, 166,1297, 327, 166,-1000, 202,-1000,
385 -1000,-1000,-1000, 244,-1000, 233,1147,1122,1097,1072,
386 1278,1047,-1000,1259,1240,1022, 242,-1000, -62,-1000,
387 -80,-1000,1445,1445, 3, 3, 3, 3, 247, 226,
388 3,1445,1445,1445, -14,1445,-1000,1429, 394,-1000,
389 -26,-1000,-1000,-1000, 327, 592, 592, 327, 910, 327,
390 117,-111, -21, 309, 238,-1000,-1000,-1000,-1000,-1000,
391 -1000,-1000,-1000, 327,-1000, 327, 327,-1000, 223, 203,
392 91, 430, 327, 327, -84,1445, 50, 3,1445, 327,
393 1445, 327,-1000, 997, 972, 947,-1000,1412,1396,-1000,
394 327,-1000, 831, 802,-1000,-1000,-1000, 87,-1000, 87,
395 -1000,1445,-1000,-1000, 327,-1000,-1000,-1000,-1000, 327,
396 1377,1361,-1000,-1000
400 0, 0, 332,1551, 330, 142, 1, 329, 328, 327,
401 326, 325, 267, 266, 29, 324, 311, 23, 5, 282,
402 3, 4, 2, 298, 295, 288, 147, 67, 286, 284
406 0, 23, 23, 23, 13, 13, 12, 12, 12, 12,
407 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
408 12, 24, 24, 24, 24, 3, 10, 25, 25, 26,
409 26, 26, 9, 9, 9, 9, 8, 8, 2, 2,
410 2, 4, 6, 6, 6, 6, 6, 11, 16, 16,
411 16, 16, 16, 16, 16, 16, 16, 16, 28, 16,
412 15, 27, 27, 29, 29, 29, 29, 29, 29, 29,
413 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
414 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
415 19, 19, 20, 20, 20, 5, 5, 5, 7, 7,
416 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
417 14, 14, 17, 17, 17, 17, 17, 17, 17, 17,
418 17, 17, 17, 17, 17, 18, 18, 18, 21, 21,
419 21, 22, 22, 22, 22, 22, 22, 22, 22, 1,
420 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
421 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
422 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
423 1, 1, 1, 1, 1, 1, 1, 1
427 0, 1, 0, 1, 1, 2, 2, 3, 3, 4,
428 4, 2, 1, 3, 3, 3, 3, 1, 1, 1,
429 1, 0, 1, 2, 3, 3, 2, 1, 2, 1,
430 2, 2, 10, 7, 10, 7, 4, 3, 1, 3,
431 3, 1, 1, 1, 1, 1, 0, 1, 2, 2,
432 2, 2, 2, 2, 2, 2, 2, 1, 0, 5,
433 1, 2, 0, 2, 1, 1, 2, 1, 2, 2,
434 2, 2, 2, 3, 4, 2, 1, 1, 1, 2,
435 1, 2, 1, 2, 1, 2, 2, 1, 1, 1,
436 1, 2, 1, 2, 2, 1, 4, 6, 1, 3,
437 1, 3, 3, 5, 5, 7, 7, 3, 3, 5,
438 6, 5, 1, 2, 2, 1, 2, 3, 3, 2,
439 3, 3, 1, 2, 2, 4, 4, 3, 2, 2,
440 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
441 1, 1, 3, 3, 3, 3, 3, 2, 2, 3,
442 2, 2, 2, 2, 2, 3, 4, 4, 3, 3,
443 3, 3, 3, 3, 3, 3, 2, 4, 4, 3,
444 4, 4, 6, 4, 3, 6, 6, 4
448 -1000, -23, -13, 2, -12, -16, -11, 27, -3, 85,
449 17, 18, -10, -9, -8, 91, 4, 7, 8, 9,
450 5, 6, 10, 14, -19, 13, -15, 112, 28, 23,
451 21, 22, -20, 114, -5, 12, 29, -12, 91, -13,
452 110, 91, -1, -14, -5, 74, 28, -3, 102, 101,
453 116, -17, 27, -21, 55, 107, 75, 76, 77, 78,
454 79, 80, 81, 83, 82, 84, 52, 53, -18, 54,
455 -24, 28, -27, -27, -27, -27, -27, -27, -27, -27,
456 -27, -20, -13, 92, -25, -26, -5, 19, 20, -4,
457 28, -2, -1, -5, 116, -17, 32, 32, 116, 109,
458 -12, 91, -14, 27, -3, -1, 91, 111, 96, 57,
459 101, 102, 103, 104, 105, 95, 97, 98, 99, 100,
460 94, 93, 108, 91, 101, 102, 91, -1, -1, -14,
461 -17, -1, 69, 70, 71, 72, 73, 52, 115, -22,
462 11, 54, 4, 7, 8, 9, 5, 6, 10, -22,
463 11, 54, -1, 116, 116, 116, 116, 116, 116, 116,
464 116, 116, 116, 27, -21, 55, -18, 52, 91, 28,
465 111, -29, 31, -1, 85, 37, 38, 39, 40, 41,
466 56, 32, 42, 86, 87, 88, 89, 90, -19, 113,
467 -1, -26, 30, -5, 37, 92, 24, 96, 99, 100,
468 -1, -5, -12, 91, -1, -14, -1, -14, -1, -1,
469 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
470 -1, -1, 116, -17, -1, 116, -17, 117, 111, 117,
471 27, 28, 52, 115, 52, 115, -1, -1, -1, -1,
472 -1, -1, 117, -1, -1, -1, 115, -22, 11, -22,
473 11, 28, -1, -1, -14, -14, -14, -14, 52, 115,
474 -14, -1, -1, -1, 27, -1, -28, -1, -1, 25,
475 -1, -5, -5, 117, 111, 111, 58, 111, -1, 111,
476 -1, -17, 27, -21, 55, 27, 28, 27, 28, 117,
477 117, 117, 117, 111, 117, 111, 111, 117, 115, 115,
478 27, -27, 38, 38, -7, -1, -14, -14, -1, 111,
479 -1, 111, 117, -1, -1, -1, 52, -1, -1, 117,
480 111, 95, -1, -1, 117, 117, 117, 40, 26, 40,
481 26, -1, 117, 117, -6, 101, 102, 103, 104, -6,
486 -2, -2, 1, 3, 4, 0, 0, 0, 0, 12,
487 0, 21, 17, 18, 19, 20, 62, 62, 62, 62,
488 62, 62, 62, 62, 62, 57, 0, 47, 0, 0,
489 0, 0, 90, 60, 92, 95, 0, 5, 6, 0,
490 0, 11, 0, 0, 0, 139, 140, 141, 0, 0,
491 0, 100, 112, 0, 0, 0, 0, 0, 0, 0,
492 0, 0, 0, 0, 0, 0, 0, 115, 122, 130,
493 0, 22, 48, 49, 50, 51, 52, 53, 54, 55,
494 56, 91, 0, 0, 26, 27, 29, 0, 0, 0,
495 41, 0, 38, 0, 0, 0, 94, 93, 0, 7,
496 8, 20, 0, 112, 141, 0, 13, 0, 0, 0,
497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
498 0, 0, 0, 14, 0, 0, 15, 147, 148, 0,
499 100, 0, 150, 151, 152, 153, 154, 113, 0, 116,
500 138, 128, 131, 132, 133, 134, 135, 136, 137, 119,
501 138, 129, 166, 0, 0, 0, 0, 0, 0, 0,
502 0, 0, 0, 114, 0, 0, 124, 123, 16, 23,
503 0, 61, 64, 65, 67, 0, 0, 0, 0, 0,
504 76, 77, 78, 80, 82, 84, 87, 88, 89, 58,
505 25, 28, 30, 31, 0, 0, 37, 0, 0, 0,
506 0, 0, 9, 10, 102, 0, -2, 0, 142, 143,
507 144, 145, 146, -2, -2, -2, -2, -2, 164, 165,
508 169, 0, 0, 107, 0, 0, 108, 101, 0, 149,
509 127, 155, 117, 0, 120, 0, 0, 0, 0, 0,
510 0, 0, 174, 0, 0, 0, 0, 118, 138, 121,
511 138, 24, 63, 66, 68, 69, 70, 71, 72, 0,
512 75, 79, 81, 83, -2, 86, 62, 0, 0, 36,
513 -2, 39, 40, 96, 0, 0, 0, 0, 0, 0,
514 0, 0, 112, 0, 0, 125, 156, 126, 157, 167,
515 168, 170, 171, 0, 173, 0, 0, 177, 0, 0,
516 73, 59, 0, 0, 0, 98, 0, 111, 103, 0,
517 104, 0, 109, 0, 0, 0, 74, 0, 0, 97,
518 0, 110, 0, 0, 172, 175, 176, 46, 33, 46,
519 35, 99, 105, 106, 0, 42, 43, 44, 45, 0,
524 1, 4, 5, 6, 7, 8, 9, 10, 11, 12,
525 13, 14, 15, 16, 0, 0, 0, 0, 0, 0,
526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
527 0, 0, 0, 0, 0, 0, 0, 105, 0, 0,
528 116, 117, 103, 101, 111, 102, 115, 104, 0, 0,
529 0, 0, 0, 0, 0, 0, 0, 0, 110, 0,
530 0, 92, 0, 0, 0, 0, 0, 0, 0, 0,
531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
533 0, 114, 0, 113, 108, 0, 0, 0, 0, 0,
534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
540 2, 3, 0, 0, 0, 0, 0, 0, 0, 0,
541 0, 0, 0, 0, 0, 17, 18, 19, 20, 21,
542 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
543 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
544 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
545 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
546 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
547 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
548 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
549 93, 94, 95, 96, 97, 98, 99, 100, 106, 107
556 #define YYERROR goto yyerrlab
557 #define YYACCEPT return(0)
558 #define YYABORT return(1)
559 #define yyclearin yychar = -1
560 #define yyerrok yyerrflag = 0
566 char* yytoknames
[1]; /* for debugging */
567 char* yystates
[1]; /* for debugging */
570 /* parser for yacc output */
572 int yynerrs
= 0; /* number of errors */
573 int yyerrflag
= 0; /* error recovery flag */
580 if(yyc
> 0 && yyc
<= sizeof(yytoknames
)/sizeof(yytoknames
[0]))
581 if(yytoknames
[yyc
-1])
582 return yytoknames
[yyc
-1];
583 sprintf(x
, "<%d>", yyc
);
592 if(yys
>= 0 && yys
< sizeof(yystates
)/sizeof(yystates
[0]))
594 return yystates
[yys
];
595 sprintf(x
, "<%d>\n", yys
);
611 if(yychar
< sizeof(yytok1
)/sizeof(yytok1
[0])) {
615 if(yychar
>= YYPRIVATE
)
616 if(yychar
< YYPRIVATE
+sizeof(yytok2
)/sizeof(yytok2
[0])) {
617 c
= yytok2
[yychar
-YYPRIVATE
];
620 for(t3p
=yytok3
;; t3p
+=2) {
633 c
= yytok2
[1]; /* unknown char */
635 printf("lex %.4lX %s\n", yychar
, yytokname(c
));
646 } yys
[YYMAXDEPTH
], *yyp
, *yypt
;
648 int yyj
, yym
, yystate
, yyn
, yyg
;
649 YYSTYPE save1
, save2
;
681 /* put a state and value onto the stack */
683 printf("char %s in %s", yytokname(yychar
), yystatname(yystate
));
686 if(yyp
>= &yys
[YYMAXDEPTH
]) {
687 yyerror("yacc stack overflow");
694 yyn
= yypact
[yystate
];
696 goto yydefault
; /* simple state */
700 if(yyn
< 0 || yyn
>= YYLAST
)
703 if(yychk
[yyn
] == yychar
) { /* valid shift */
713 /* default state action */
714 yyn
= yydef
[yystate
];
719 /* look through exception table */
720 for(yyxi
=yyexca
;; yyxi
+=2)
721 if(yyxi
[0] == -1 && yyxi
[1] == yystate
)
723 for(yyxi
+= 2;; yyxi
+= 2) {
725 if(yyn
< 0 || yyn
== yychar
)
733 /* error ... attempt to resume parsing */
735 case 0: /* brand new error */
736 yyerror("syntax error");
738 printf("%s", yystatname(yystate
));
739 printf("saw %s\n", yytokname(yychar
));
745 case 2: /* incompletely recovered error ... try again */
748 /* find a state where "error" is a legal shift action */
750 yyn
= yypact
[yyp
->yys
] + YYERRCODE
;
751 if(yyn
>= 0 && yyn
< YYLAST
) {
752 yystate
= yyact
[yyn
]; /* simulate a shift of "error" */
753 if(yychk
[yystate
] == YYERRCODE
)
757 /* the current yyp has no shift onn "error", pop stack */
759 printf("error recovery pops state %d, uncovers %d\n",
760 yyp
->yys
, (yyp
-1)->yys
);
763 /* there is no state on the stack with an error shift ... abort */
766 case 3: /* no shift yet; clobber input char */
767 if(yydebug
>= YYEOFCODE
)
768 printf("error recovery discards %s\n", yytokname(yychar
));
769 if(yychar
== YYEOFCODE
)
772 goto yynewstate
; /* try again in the same state */
776 /* reduction by production yyn */
778 printf("reduce %d in:\n\t%s", yyn
, yystatname(yystate
));
782 yyval
= (yyp
+1)->yyv
;
785 /* consult goto table to find next state */
788 yyj
= yyg
+ yyp
->yys
+ 1;
790 if(yyj
>= YYLAST
|| yychk
[yystate
=yyact
[yyj
]] != -yyn
)
791 yystate
= yyact
[yyg
];
795 { ERROR
"syntax error" WARNING
; } break;
797 { codegen
= 1; makeiattr(0, 0); } break;
799 { rightthing(yypt
[-2].yyv
.o
, '}'); yyval
.o
= yypt
[-1].yyv
.o
; } break;
801 { y
.o
=yypt
[-0].yyv
.o
; makevar(yypt
[-2].yyv
.p
,PLACENAME
,y
); yyval
.o
= yypt
[-0].yyv
.o
; } break;
803 { y
.o
=yypt
[-0].yyv
.o
; makevar(yypt
[-3].yyv
.p
,PLACENAME
,y
); yyval
.o
= yypt
[-0].yyv
.o
; } break;
805 { y
.o
=yypt
[-1].yyv
.o
; makevar(yypt
[-3].yyv
.p
,PLACENAME
,y
); yyval
.o
= yypt
[-1].yyv
.o
; } break;
807 { y
.f
= yypt
[-1].yyv
.f
; yyval
.o
= y
.o
; yyval
.o
= makenode(PLACE
, 0); } break;
809 { setdir(yypt
[-0].yyv
.i
); yyval
.o
= makenode(PLACE
, 0); } break;
811 { printexpr(yypt
[-1].yyv
.f
); yyval
.o
= makenode(PLACE
, 0); } break;
813 { printpos(yypt
[-1].yyv
.o
); yyval
.o
= makenode(PLACE
, 0); } break;
815 { printf("%s\n", yypt
[-1].yyv
.p
); free(yypt
[-1].yyv
.p
); yyval
.o
= makenode(PLACE
, 0); } break;
817 { resetvar(); makeiattr(0, 0); yyval
.o
= makenode(PLACE
, 0); } break;
819 { makevattr(yypt
[-0].yyv
.p
); } break;
821 { makevattr(yypt
[-0].yyv
.p
); } break;
823 { makevattr(yypt
[-0].yyv
.p
); } break;
825 { yyval
.f
=y
.f
=yypt
[-0].yyv
.f
; makevar(yypt
[-2].yyv
.p
,VARNAME
,y
); checkscale(yypt
[-2].yyv
.p
); } break;
829 { copyfile(yypt
[-0].yyv
.p
); } break;
831 { copydef(yypt
[-0].yyv
.st
); } break;
833 { copyuntil(yypt
[-0].yyv
.p
); } break;
835 { forloop(yypt
[-8].yyv
.p
, yypt
[-6].yyv
.f
, yypt
[-4].yyv
.f
, yypt
[-2].yyv
.i
, yypt
[-1].yyv
.f
, yypt
[-0].yyv
.p
); } break;
837 { forloop(yypt
[-5].yyv
.p
, yypt
[-3].yyv
.f
, yypt
[-1].yyv
.f
, '+', 1.0, yypt
[-0].yyv
.p
); } break;
839 { forloop(yypt
[-8].yyv
.p
, yypt
[-6].yyv
.f
, yypt
[-4].yyv
.f
, yypt
[-2].yyv
.i
, yypt
[-1].yyv
.f
, yypt
[-0].yyv
.p
); } break;
841 { forloop(yypt
[-5].yyv
.p
, yypt
[-3].yyv
.f
, yypt
[-1].yyv
.f
, '+', 1.0, yypt
[-0].yyv
.p
); } break;
843 { ifstat(yypt
[-2].yyv
.f
, yypt
[-1].yyv
.p
, yypt
[-0].yyv
.p
); } break;
845 { ifstat(yypt
[-1].yyv
.f
, yypt
[-0].yyv
.p
, (char *) 0); } break;
847 { yyval
.f
= strcmp(yypt
[-2].yyv
.p
,yypt
[-0].yyv
.p
) == 0; free(yypt
[-2].yyv
.p
); free(yypt
[-0].yyv
.p
); } break;
849 { yyval
.f
= strcmp(yypt
[-2].yyv
.p
,yypt
[-0].yyv
.p
) != 0; free(yypt
[-2].yyv
.p
); free(yypt
[-0].yyv
.p
); } break;
851 { y
.f
= 0; makevar(yypt
[-0].yyv
.p
, VARNAME
, y
); } break;
853 { yyval
.i
= '+'; } break;
855 { yyval
.i
= '-'; } break;
857 { yyval
.i
= '*'; } break;
859 { yyval
.i
= '/'; } break;
861 { yyval
.i
= ' '; } break;
863 { yyval
.o
= leftthing('{'); } break;
865 { yyval
.o
= boxgen(); } break;
867 { yyval
.o
= circgen(yypt
[-1].yyv
.i
); } break;
869 { yyval
.o
= circgen(yypt
[-1].yyv
.i
); } break;
871 { yyval
.o
= arcgen(yypt
[-1].yyv
.i
); } break;
873 { yyval
.o
= linegen(yypt
[-1].yyv
.i
); } break;
875 { yyval
.o
= linegen(yypt
[-1].yyv
.i
); } break;
877 { yyval
.o
= linegen(yypt
[-1].yyv
.i
); } break;
879 { yyval
.o
= movegen(); } break;
881 { yyval
.o
= textgen(); } break;
883 { yyval
.o
= troffgen(yypt
[-0].yyv
.p
); } break;
885 { yyval
.o
=rightthing(yypt
[-2].yyv
.o
,']'); } break;
887 { yyval
.o
= blockgen(yypt
[-4].yyv
.o
, yypt
[-1].yyv
.o
); } break;
889 { yyval
.o
= leftthing('['); } break;
891 { makefattr(yypt
[-1].yyv
.i
, !DEFAULT
, yypt
[-0].yyv
.f
); } break;
893 { makefattr(yypt
[-0].yyv
.i
, DEFAULT
, 0.0); } break;
895 { makefattr(curdir(), !DEFAULT
, yypt
[-0].yyv
.f
); } break;
897 { makefattr(yypt
[-1].yyv
.i
, !DEFAULT
, yypt
[-0].yyv
.f
); } break;
899 { makefattr(yypt
[-0].yyv
.i
, DEFAULT
, 0.0); } break;
901 { makeoattr(yypt
[-1].yyv
.i
, yypt
[-0].yyv
.o
); } break;
903 { makeoattr(yypt
[-1].yyv
.i
, yypt
[-0].yyv
.o
); } break;
905 { makeoattr(yypt
[-1].yyv
.i
, yypt
[-0].yyv
.o
); } break;
907 { makeoattr(yypt
[-1].yyv
.i
, yypt
[-0].yyv
.o
); } break;
909 { makeiattr(WITH
, yypt
[-0].yyv
.i
); } break;
911 { makeoattr(PLACE
, getblock(getlast(1,BLOCK
), yypt
[-0].yyv
.p
)); } break;
913 { makeoattr(PLACE
, getpos(getblock(getlast(1,BLOCK
), yypt
[-1].yyv
.p
), yypt
[-0].yyv
.i
)); } break;
915 { makeoattr(PLACE
, yypt
[-0].yyv
.o
); } break;
917 { makeiattr(SAME
, yypt
[-0].yyv
.i
); } break;
919 { maketattr(yypt
[-0].yyv
.i
, (char *) 0); } break;
921 { makeiattr(HEAD
, yypt
[-0].yyv
.i
); } break;
923 { makefattr(DOT
, !DEFAULT
, yypt
[-0].yyv
.f
); } break;
925 { makefattr(DOT
, DEFAULT
, 0.0); } break;
927 { makefattr(DASH
, !DEFAULT
, yypt
[-0].yyv
.f
); } break;
929 { makefattr(DASH
, DEFAULT
, 0.0); } break;
931 { makefattr(CHOP
, !DEFAULT
, yypt
[-0].yyv
.f
); } break;
933 { makefattr(CHOP
, DEFAULT
, 0.0); } break;
935 { makeattr(CHOP
, PLACENAME
, getvar(yypt
[-0].yyv
.p
)); } break;
937 { makefattr(FILL
, !DEFAULT
, yypt
[-0].yyv
.f
); } break;
939 { makefattr(FILL
, DEFAULT
, 0.0); } break;
941 { makeiattr(NOEDGE
, 0); } break;
943 { maketattr(CENTER
, yypt
[-0].yyv
.p
); } break;
945 { maketattr(yypt
[-0].yyv
.i
, yypt
[-1].yyv
.p
); } break;
947 { addtattr(yypt
[-0].yyv
.i
); } break;
949 { yyval
.p
= sprintgen(yypt
[-1].yyv
.p
); } break;
951 { yyval
.p
= sprintgen(yypt
[-3].yyv
.p
); } break;
953 { exprsave(yypt
[-0].yyv
.f
); yyval
.i
= 0; } break;
955 { exprsave(yypt
[-0].yyv
.f
); } break;
957 { yyval
.o
= yypt
[-1].yyv
.o
; } break;
959 { yyval
.o
= makepos(yypt
[-2].yyv
.f
, yypt
[-0].yyv
.f
); } break;
961 { yyval
.o
= fixpos(yypt
[-4].yyv
.o
, yypt
[-2].yyv
.f
, yypt
[-0].yyv
.f
); } break;
963 { yyval
.o
= fixpos(yypt
[-4].yyv
.o
, -yypt
[-2].yyv
.f
, -yypt
[-0].yyv
.f
); } break;
965 { yyval
.o
= fixpos(yypt
[-6].yyv
.o
, yypt
[-3].yyv
.f
, yypt
[-1].yyv
.f
); } break;
967 { yyval
.o
= fixpos(yypt
[-6].yyv
.o
, -yypt
[-3].yyv
.f
, -yypt
[-1].yyv
.f
); } break;
969 { yyval
.o
= addpos(yypt
[-2].yyv
.o
, yypt
[-0].yyv
.o
); } break;
971 { yyval
.o
= subpos(yypt
[-2].yyv
.o
, yypt
[-0].yyv
.o
); } break;
973 { yyval
.o
= makepos(getcomp(yypt
[-3].yyv
.o
,DOTX
), getcomp(yypt
[-1].yyv
.o
,DOTY
)); } break;
975 { yyval
.o
= makebetween(yypt
[-5].yyv
.f
, yypt
[-3].yyv
.o
, yypt
[-1].yyv
.o
); } break;
977 { yyval
.o
= makebetween(yypt
[-4].yyv
.f
, yypt
[-2].yyv
.o
, yypt
[-0].yyv
.o
); } break;
979 { y
= getvar(yypt
[-0].yyv
.p
); yyval
.o
= y
.o
; } break;
981 { y
= getvar(yypt
[-1].yyv
.p
); yyval
.o
= getpos(y
.o
, yypt
[-0].yyv
.i
); } break;
983 { y
= getvar(yypt
[-0].yyv
.p
); yyval
.o
= getpos(y
.o
, yypt
[-1].yyv
.i
); } break;
985 { yyval
.o
= gethere(); } break;
987 { yyval
.o
= getlast(yypt
[-1].yyv
.i
, yypt
[-0].yyv
.i
); } break;
989 { yyval
.o
= getpos(getlast(yypt
[-2].yyv
.i
, yypt
[-1].yyv
.i
), yypt
[-0].yyv
.i
); } break;
991 { yyval
.o
= getpos(getlast(yypt
[-1].yyv
.i
, yypt
[-0].yyv
.i
), yypt
[-2].yyv
.i
); } break;
993 { yyval
.o
= getfirst(yypt
[-1].yyv
.i
, yypt
[-0].yyv
.i
); } break;
995 { yyval
.o
= getpos(getfirst(yypt
[-2].yyv
.i
, yypt
[-1].yyv
.i
), yypt
[-0].yyv
.i
); } break;
997 { yyval
.o
= getpos(getfirst(yypt
[-1].yyv
.i
, yypt
[-0].yyv
.i
), yypt
[-2].yyv
.i
); } break;
999 { yyval
.o
= getpos(yypt
[-1].yyv
.o
, yypt
[-0].yyv
.i
); } break;
1001 { yyval
.o
= getpos(yypt
[-0].yyv
.o
, yypt
[-1].yyv
.i
); } break;
1003 { yyval
.o
= getblock(getlast(yypt
[-3].yyv
.i
,yypt
[-2].yyv
.i
), yypt
[-0].yyv
.p
); } break;
1005 { yyval
.o
= getblock(getfirst(yypt
[-3].yyv
.i
,yypt
[-2].yyv
.i
), yypt
[-0].yyv
.p
); } break;
1007 { y
= getvar(yypt
[-2].yyv
.p
); yyval
.o
= getblock(y
.o
, yypt
[-0].yyv
.p
); } break;
1009 { yyval
.i
= yypt
[-1].yyv
.i
+ 1; } break;
1011 { yyval
.i
= yypt
[-1].yyv
.i
; } break;
1013 { yyval
.i
= 1; } break;
1015 { yyval
.f
= getfval(yypt
[-0].yyv
.p
); } break;
1017 { yyval
.f
= yypt
[-2].yyv
.f
+ yypt
[-0].yyv
.f
; } break;
1019 { yyval
.f
= yypt
[-2].yyv
.f
- yypt
[-0].yyv
.f
; } break;
1021 { yyval
.f
= yypt
[-2].yyv
.f
* yypt
[-0].yyv
.f
; } break;
1023 { if (yypt
[-0].yyv
.f
== 0.0) {
1024 ERROR
"division by 0" WARNING
; yypt
[-0].yyv
.f
= 1; }
1025 yyval
.f
= yypt
[-2].yyv
.f
/ yypt
[-0].yyv
.f
; } break;
1027 { if ((long)yypt
[-0].yyv
.f
== 0) {
1028 ERROR
"mod division by 0" WARNING
; yypt
[-0].yyv
.f
= 1; }
1029 yyval
.f
= (long)yypt
[-2].yyv
.f
% (long)yypt
[-0].yyv
.f
; } break;
1031 { yyval
.f
= -yypt
[-0].yyv
.f
; } break;
1033 { yyval
.f
= yypt
[-0].yyv
.f
; } break;
1035 { yyval
.f
= yypt
[-1].yyv
.f
; } break;
1037 { yyval
.f
= getcomp(yypt
[-1].yyv
.o
, yypt
[-0].yyv
.i
); } break;
1039 { yyval
.f
= getcomp(yypt
[-1].yyv
.o
, yypt
[-0].yyv
.i
); } break;
1041 { yyval
.f
= getcomp(yypt
[-1].yyv
.o
, yypt
[-0].yyv
.i
); } break;
1043 { yyval
.f
= getcomp(yypt
[-1].yyv
.o
, yypt
[-0].yyv
.i
); } break;
1045 { yyval
.f
= getcomp(yypt
[-1].yyv
.o
, yypt
[-0].yyv
.i
); } break;
1047 { y
= getvar(yypt
[-2].yyv
.p
); yyval
.f
= getblkvar(y
.o
, yypt
[-0].yyv
.p
); } break;
1049 { yyval
.f
= getblkvar(getlast(yypt
[-3].yyv
.i
,yypt
[-2].yyv
.i
), yypt
[-0].yyv
.p
); } break;
1051 { yyval
.f
= getblkvar(getfirst(yypt
[-3].yyv
.i
,yypt
[-2].yyv
.i
), yypt
[-0].yyv
.p
); } break;
1053 { yyval
.f
= yypt
[-2].yyv
.f
> yypt
[-0].yyv
.f
; } break;
1055 { yyval
.f
= yypt
[-2].yyv
.f
< yypt
[-0].yyv
.f
; } break;
1057 { yyval
.f
= yypt
[-2].yyv
.f
<= yypt
[-0].yyv
.f
; } break;
1059 { yyval
.f
= yypt
[-2].yyv
.f
>= yypt
[-0].yyv
.f
; } break;
1061 { yyval
.f
= yypt
[-2].yyv
.f
== yypt
[-0].yyv
.f
; } break;
1063 { yyval
.f
= yypt
[-2].yyv
.f
!= yypt
[-0].yyv
.f
; } break;
1065 { yyval
.f
= yypt
[-2].yyv
.f
&& yypt
[-0].yyv
.f
; } break;
1067 { yyval
.f
= yypt
[-2].yyv
.f
|| yypt
[-0].yyv
.f
; } break;
1069 { yyval
.f
= !(yypt
[-0].yyv
.f
); } break;
1071 { yyval
.f
= Log10(yypt
[-1].yyv
.f
); } break;
1073 { yyval
.f
= Exp(yypt
[-1].yyv
.f
* log(10.0)); } break;
1075 { yyval
.f
= pow(yypt
[-2].yyv
.f
, yypt
[-0].yyv
.f
); } break;
1077 { yyval
.f
= sin(yypt
[-1].yyv
.f
); } break;
1079 { yyval
.f
= cos(yypt
[-1].yyv
.f
); } break;
1081 { yyval
.f
= atan2(yypt
[-3].yyv
.f
, yypt
[-1].yyv
.f
); } break;
1083 { yyval
.f
= Sqrt(yypt
[-1].yyv
.f
); } break;
1085 { yyval
.f
= (float)rand() / 32767.0; /* might be 2^31-1 */ } break;
1087 { yyval
.f
= yypt
[-3].yyv
.f
>= yypt
[-1].yyv
.f
? yypt
[-3].yyv
.f
: yypt
[-1].yyv
.f
; } break;
1089 { yyval
.f
= yypt
[-3].yyv
.f
<= yypt
[-1].yyv
.f
? yypt
[-3].yyv
.f
: yypt
[-1].yyv
.f
; } break;
1091 { yyval
.f
= (long) yypt
[-1].yyv
.f
; } break;
1093 goto yystack
; /* stack new state and value */