2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
45 /* < end of bison.head > */
48 /* A Bison parser, made from cgrammar.y
49 by GNU Bison version 1.28 */
51 #define YYBISON 1 /* Identify Bison output. */
55 #define CTOK_ELIPSIS 259
79 #define TAMPERSAND 283
106 #define MUL_ASSIGN 310
107 #define DIV_ASSIGN 311
108 #define MOD_ASSIGN 312
109 #define ADD_ASSIGN 313
110 #define SUB_ASSIGN 314
111 #define LEFT_ASSIGN 315
112 #define RIGHT_ASSIGN 316
113 #define AND_ASSIGN 317
114 #define XOR_ASSIGN 318
115 #define OR_ASSIGN 319
122 #define QMODIFIES 326
124 #define QCONSTANT 328
125 #define QFUNCTION 329
129 #define QALLOCATES 333
131 #define QRELEASES 335
132 #define QPRECLAUSE 336
133 #define QPOSTCLAUSE 337
137 #define QENDMACRO 341
139 #define LLMACROITER 343
140 #define LLMACROEND 344
141 #define TENDMACRO 345
142 #define QSWITCHBREAK 346
143 #define QLOOPBREAK 347
144 #define QINNERBREAK 348
145 #define QSAFEBREAK 349
146 #define QINNERCONTINUE 350
147 #define QFALLTHROUGH 351
148 #define QLINTNOTREACHED 352
149 #define QLINTFALLTHROUGH 353
150 #define QLINTFALLTHRU 354
151 #define QARGSUSED 355
152 #define QPRINTFLIKE 356
153 #define QLINTPRINTFLIKE 357
154 #define QSCANFLIKE 358
155 #define QMESSAGELIKE 359
156 #define QNOTREACHED 360
158 #define QVOLATILE 362
160 #define QEXTENSION 364
164 #define QREGISTER 368
174 #define QUNCHECKED 378
175 #define QCHECKEDSTRICT 379
176 #define QCHECKMOD 380
182 #define QDEPENDENT 386
183 #define QRETURNED 387
186 #define QOBSERVER 390
190 #define QNEVEREXIT 394
191 #define QTRUEEXIT 395
192 #define QFALSEEXIT 396
195 #define QUNSIGNED 399
201 #define QABSTRACT 405
202 #define QCONCRETE 406
204 #define QIMMUTABLE 408
205 #define QTRUENULL 409
206 #define QFALSENULL 410
207 #define QEXTERNAL 411
208 #define QREFCOUNTED 412
221 #define QINTEGRALTYPE 425
222 #define QUNSIGNEDINTEGRALTYPE 426
223 #define QSIGNEDINTEGRALTYPE 427
224 #define IDENTIFIER 428
225 #define NEW_IDENTIFIER 429
226 #define CCONSTANT 430
227 #define ITER_NAME 431
228 #define ITER_ENDNAME 432
229 #define TYPE_NAME 433
230 #define TYPE_NAME_OR_ID 434
232 #line 19 "cgrammar.y"
238 ** Yacc/Bison grammar for extended ANSI C used by LCLint.
240 ** original grammar by Nate Osgood ---
241 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
243 ** changes for LCLint --- handle typedef names correctly
244 ** fix struct/union parsing bug (empty struct is accepted)
245 ** add productions to handle macros --- require
246 ** error correction --- main source of conflicts in grammar.
247 ** need to process initializations sequentially, L->R
249 ** production names are cryptic, so more productions fit on one line
251 ** conflicts: 87 shift/reduce, 18 reduce/reduce
252 ** most of these are due to handling macros
253 ** a few are due to handling type expressions
259 extern void swallowMacro (void);
261 # include "lclintMacros.nf"
263 # include "cgrammar.h"
264 # include "exprChecks.h"
269 # define SHOWCSYM FALSE
270 void yyerror (char *s);
272 #line 59 "cgrammar.y"
277 specialClauseKind sck;
282 /*@only@*/ qtype qtyp;
283 /*@only@*/ cstring cname;
284 /*@only@*/ idDecl ntyp;
285 /*@only@*/ idDeclList ntyplist;
286 /*@only@*/ uentryList flist;
287 /*@owned@*/ uentryList entrylist;
288 /*@observer@*/ /*@dependent@*/ uentry entry;
289 /*@only@*/ uentry oentry;
290 /*@only@*/ exprNode expr;
291 /*@only@*/ enumNameList enumnamelist;
292 /*@only@*/ exprNodeList alist;
293 /*@only@*/ sRefSet srset;
310 #define YYFLAG -32768
313 #define YYTRANSLATE(x) ((unsigned)(x) <= 434 ? yytranslate[x] : 407)
315 static const short yytranslate[] = { 0,
316 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
317 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
318 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
319 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
321 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
322 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
323 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
325 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
342 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
343 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
344 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
345 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
346 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
347 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
348 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
349 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
350 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
351 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
352 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
353 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
354 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
355 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
356 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
357 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
358 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
363 static const short yyprhs[] = { 0,
364 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
365 21, 23, 32, 44, 45, 51, 53, 57, 59, 62,
366 64, 71, 75, 82, 83, 90, 91, 99, 101, 108,
367 112, 119, 120, 127, 128, 136, 137, 138, 149, 153,
368 157, 161, 164, 166, 167, 170, 171, 174, 176, 179,
369 181, 184, 186, 189, 191, 195, 198, 200, 202, 204,
370 206, 208, 210, 212, 213, 216, 217, 224, 225, 232,
371 234, 236, 237, 238, 244, 245, 251, 253, 255, 256,
372 258, 259, 260, 264, 265, 269, 271, 273, 275, 277,
373 279, 281, 283, 285, 287, 289, 291, 293, 295, 297,
374 299, 301, 303, 304, 312, 313, 322, 324, 328, 329,
375 333, 334, 338, 341, 345, 348, 351, 353, 355, 357,
376 361, 366, 369, 373, 377, 381, 383, 385, 387, 391,
377 393, 395, 399, 404, 407, 411, 415, 419, 421, 425,
378 427, 429, 431, 435, 437, 439, 441, 446, 450, 455,
379 462, 468, 474, 477, 480, 482, 486, 488, 491, 494,
380 497, 500, 503, 506, 509, 512, 514, 516, 526, 527,
381 531, 536, 539, 541, 546, 548, 552, 556, 560, 562,
382 566, 570, 572, 576, 580, 582, 586, 590, 594, 598,
383 600, 604, 608, 610, 614, 616, 620, 622, 626, 628,
384 629, 634, 636, 637, 642, 644, 645, 646, 654, 656,
385 660, 664, 668, 672, 676, 680, 684, 688, 692, 696,
386 700, 702, 706, 707, 709, 711, 713, 715, 717, 721,
387 722, 732, 733, 745, 748, 749, 756, 757, 765, 770,
388 775, 776, 777, 780, 782, 787, 788, 793, 795, 799,
389 804, 806, 810, 812, 814, 816, 818, 820, 823, 826,
390 829, 832, 835, 838, 841, 844, 847, 850, 853, 856,
391 859, 862, 865, 868, 871, 874, 877, 880, 883, 886,
392 889, 892, 895, 898, 901, 904, 907, 910, 913, 916,
393 919, 922, 925, 928, 931, 934, 937, 940, 943, 946,
394 949, 952, 955, 957, 959, 961, 963, 966, 969, 972,
395 975, 978, 981, 984, 987, 990, 993, 996, 999, 1002,
396 1005, 1009, 1011, 1016, 1018, 1022, 1025, 1028, 1031, 1032,
397 1034, 1035, 1036, 1048, 1049, 1050, 1062, 1069, 1076, 1077,
398 1078, 1089, 1090, 1091, 1102, 1108, 1114, 1119, 1124, 1125,
399 1127, 1129, 1132, 1138, 1142, 1145, 1150, 1152, 1155, 1159,
400 1166, 1167, 1176, 1181, 1183, 1187, 1190, 1192, 1197, 1199,
401 1201, 1204, 1207, 1209, 1212, 1214, 1217, 1219, 1221, 1223,
402 1226, 1228, 1231, 1234, 1238, 1240, 1244, 1246, 1250, 1252,
403 1254, 1258, 1259, 1262, 1263, 1268, 1273, 1275, 1277, 1280,
404 1282, 1284, 1287, 1288, 1290, 1296, 1299, 1303, 1307, 1312,
405 1316, 1321, 1326, 1332, 1334, 1336, 1338, 1340, 1342, 1344,
406 1346, 1348, 1350, 1352, 1354, 1356, 1359, 1362, 1370, 1377,
407 1380, 1381, 1382, 1393, 1394, 1401, 1403, 1405, 1407, 1409,
408 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1426, 1430, 1432,
409 1435, 1438, 1441, 1443, 1445, 1447, 1449, 1451, 1453, 1455,
410 1457, 1459, 1461, 1465, 1467, 1469, 1473, 1476, 1477, 1483,
411 1484, 1491, 1492, 1497, 1498, 1504, 1508, 1511, 1515, 1516,
412 1517, 1518, 1519, 1520, 1522, 1525, 1528, 1532, 1535, 1539,
413 1543, 1548, 1551, 1554, 1558, 1562, 1567, 1569, 1572, 1574,
414 1577, 1579, 1582, 1584, 1587, 1589, 1592, 1594, 1599, 1602,
415 1603, 1609, 1610, 1617, 1622, 1627, 1628, 1629, 1640, 1642,
416 1643, 1648, 1650, 1652, 1654, 1656, 1658, 1662, 1664, 1669,
417 1673, 1678, 1685, 1691, 1697, 1700, 1703, 1705, 1708, 1711,
418 1714, 1717, 1720, 1723, 1726, 1729, 1731, 1733, 1738, 1740,
419 1744, 1748, 1752, 1754, 1758, 1762, 1764, 1768, 1772, 1774,
420 1778, 1782, 1786, 1790, 1792, 1796, 1800, 1802, 1806, 1808,
421 1812, 1814, 1818, 1820, 1824, 1826, 1830, 1832, 1833, 1834,
422 1842, 1844, 1848, 1852, 1856, 1860, 1864, 1868, 1872, 1876,
423 1880, 1884, 1888, 1890, 1891, 1893, 1896, 1904, 1907, 1910,
424 1918, 1925, 1928, 1932, 1935, 1939, 1942, 1946, 1950, 1954,
425 1958, 1961, 1965, 1966, 1968, 1970, 1972, 1974, 1976, 1978,
429 static const short yyrhs[] = { -1,
430 182, 0, 183, 0, 182, 183, 0, 235, 403, 0,
431 184, 0, 185, 0, 195, 0, 198, 0, 271, 0,
432 1, 0, 74, 291, 304, 314, 304, 403, 279, 87,
433 0, 74, 291, 304, 314, 304, 23, 279, 284, 283,
434 403, 87, 0, 0, 75, 186, 187, 403, 87, 0,
435 188, 0, 291, 304, 188, 0, 192, 0, 318, 192,
436 0, 405, 0, 279, 24, 304, 314, 279, 25, 0,
437 189, 26, 27, 0, 189, 26, 279, 270, 27, 304,
438 0, 0, 189, 280, 24, 25, 190, 200, 0, 0,
439 189, 280, 24, 315, 25, 191, 200, 0, 405, 0,
440 279, 24, 304, 188, 279, 25, 0, 192, 26, 27,
441 0, 192, 26, 279, 270, 27, 304, 0, 0, 192,
442 280, 24, 25, 193, 202, 0, 0, 192, 280, 24,
443 315, 25, 194, 202, 0, 0, 0, 76, 405, 24,
444 315, 25, 196, 202, 197, 403, 87, 0, 88, 344,
445 91, 0, 89, 331, 91, 0, 90, 332, 91, 0,
446 88, 91, 0, 231, 0, 0, 201, 204, 0, 0,
447 203, 205, 0, 212, 0, 206, 212, 0, 215, 0,
448 206, 215, 0, 228, 0, 228, 206, 0, 208, 0,
449 207, 21, 208, 0, 211, 209, 0, 404, 0, 175,
450 0, 85, 0, 86, 0, 115, 0, 116, 0, 129,
451 0, 0, 210, 211, 0, 0, 71, 213, 364, 403,
452 87, 218, 0, 0, 71, 214, 207, 403, 87, 218,
453 0, 73, 0, 219, 0, 0, 0, 71, 216, 364,
454 403, 218, 0, 0, 71, 217, 207, 403, 218, 0,
455 73, 0, 221, 0, 0, 219, 0, 0, 0, 72,
456 220, 236, 0, 0, 72, 222, 237, 0, 77, 0,
457 78, 0, 79, 0, 80, 0, 81, 0, 87, 0,
458 87, 0, 82, 0, 83, 0, 118, 0, 136, 0,
459 134, 0, 132, 0, 131, 0, 120, 0, 137, 0,
460 149, 0, 0, 223, 304, 229, 242, 403, 225, 279,
461 0, 0, 226, 304, 227, 230, 242, 403, 224, 279,
462 0, 314, 0, 291, 304, 314, 0, 0, 19, 233,
463 360, 0, 0, 364, 234, 353, 0, 199, 232, 0,
464 240, 403, 87, 0, 403, 87, 0, 240, 403, 0,
465 403, 0, 404, 0, 175, 0, 238, 26, 27, 0,
466 238, 26, 239, 27, 0, 34, 238, 0, 24, 238,
467 25, 0, 238, 28, 405, 0, 238, 43, 405, 0,
468 238, 0, 176, 0, 238, 0, 240, 21, 238, 0,
469 404, 0, 175, 0, 241, 26, 27, 0, 241, 26,
470 239, 27, 0, 34, 241, 0, 24, 241, 25, 0,
471 241, 28, 405, 0, 241, 43, 405, 0, 241, 0,
472 242, 21, 241, 0, 404, 0, 175, 0, 176, 0,
473 24, 268, 25, 0, 180, 0, 110, 0, 243, 0,
474 244, 26, 268, 27, 0, 244, 24, 25, 0, 244,
475 24, 245, 25, 0, 69, 24, 267, 21, 326, 25,
476 0, 244, 304, 28, 405, 279, 0, 244, 304, 43,
477 405, 279, 0, 244, 46, 0, 244, 47, 0, 267,
478 0, 245, 21, 267, 0, 244, 0, 46, 246, 0,
479 47, 246, 0, 29, 251, 0, 34, 251, 0, 33,
480 251, 0, 32, 251, 0, 31, 251, 0, 30, 251,
481 0, 248, 0, 247, 0, 45, 279, 24, 326, 304,
482 21, 405, 25, 279, 0, 0, 279, 249, 250, 0,
483 42, 24, 326, 25, 0, 42, 246, 0, 246, 0,
484 24, 326, 25, 251, 0, 251, 0, 252, 34, 251,
485 0, 252, 35, 251, 0, 252, 36, 251, 0, 252,
486 0, 253, 33, 252, 0, 253, 32, 252, 0, 253,
487 0, 254, 48, 253, 0, 254, 49, 253, 0, 254,
488 0, 255, 37, 254, 0, 255, 38, 254, 0, 255,
489 50, 254, 0, 255, 51, 254, 0, 255, 0, 256,
490 52, 255, 0, 256, 53, 255, 0, 256, 0, 257,
491 29, 256, 0, 257, 0, 258, 39, 257, 0, 258,
492 0, 259, 40, 258, 0, 259, 0, 0, 260, 54,
493 261, 259, 0, 260, 0, 0, 262, 55, 263, 260,
494 0, 262, 0, 0, 0, 262, 41, 265, 268, 22,
495 266, 264, 0, 264, 0, 246, 23, 267, 0, 246,
496 56, 267, 0, 246, 57, 267, 0, 246, 58, 267,
497 0, 246, 59, 267, 0, 246, 60, 267, 0, 246,
498 61, 267, 0, 246, 62, 267, 0, 246, 63, 267,
499 0, 246, 64, 267, 0, 246, 65, 267, 0, 267,
500 0, 268, 21, 267, 0, 0, 268, 0, 264, 0,
501 272, 0, 70, 0, 277, 0, 291, 279, 18, 0,
502 0, 291, 304, 314, 304, 273, 279, 283, 18, 279,
503 0, 0, 291, 304, 314, 304, 23, 274, 279, 284,
504 283, 18, 279, 0, 314, 304, 0, 0, 314, 304,
505 23, 276, 279, 284, 0, 0, 44, 291, 278, 304,
506 281, 279, 18, 0, 44, 291, 279, 18, 0, 44,
507 281, 279, 18, 0, 0, 0, 282, 279, 0, 275,
508 0, 281, 21, 304, 275, 0, 0, 283, 21, 304,
509 275, 0, 267, 0, 19, 285, 20, 0, 19, 285,
510 21, 20, 0, 284, 0, 285, 21, 284, 0, 111,
511 0, 109, 0, 112, 0, 113, 0, 114, 0, 107,
512 279, 0, 108, 279, 0, 115, 279, 0, 116, 279,
513 0, 129, 279, 0, 130, 279, 0, 131, 279, 0,
514 132, 279, 0, 117, 279, 0, 119, 279, 0, 118,
515 279, 0, 127, 279, 0, 128, 279, 0, 120, 279,
516 0, 122, 279, 0, 138, 279, 0, 139, 279, 0,
517 141, 279, 0, 142, 279, 0, 140, 279, 0, 135,
518 279, 0, 150, 279, 0, 133, 279, 0, 134, 279,
519 0, 136, 279, 0, 123, 279, 0, 126, 279, 0,
520 124, 279, 0, 125, 279, 0, 155, 279, 0, 156,
521 279, 0, 147, 279, 0, 157, 279, 0, 148, 279,
522 0, 151, 279, 0, 152, 279, 0, 153, 279, 0,
523 154, 279, 0, 149, 279, 0, 158, 279, 0, 159,
524 279, 0, 162, 279, 0, 163, 279, 0, 160, 279,
525 0, 161, 279, 0, 146, 0, 143, 0, 144, 0,
526 145, 0, 164, 304, 0, 166, 304, 0, 165, 304,
527 0, 167, 304, 0, 168, 304, 0, 169, 304, 0,
528 170, 304, 0, 171, 304, 0, 172, 304, 0, 173,
529 304, 0, 406, 304, 0, 295, 304, 0, 309, 304,
530 0, 288, 304, 0, 279, 291, 279, 0, 293, 0,
531 293, 84, 292, 87, 0, 326, 0, 326, 21, 292,
532 0, 286, 294, 0, 287, 294, 0, 289, 294, 0,
533 0, 291, 0, 0, 0, 304, 66, 405, 279, 19,
534 296, 357, 305, 358, 297, 20, 0, 0, 0, 304,
535 67, 405, 279, 19, 298, 357, 305, 358, 299, 20,
536 0, 304, 66, 405, 279, 19, 20, 0, 304, 67,
537 405, 279, 19, 20, 0, 0, 0, 304, 66, 279,
538 19, 300, 357, 305, 358, 301, 20, 0, 0, 0,
539 304, 67, 279, 19, 302, 357, 305, 358, 303, 20,
540 0, 304, 66, 279, 19, 20, 0, 304, 67, 279,
541 19, 20, 0, 304, 66, 405, 304, 0, 304, 67,
542 405, 304, 0, 0, 306, 0, 198, 0, 305, 306,
543 0, 291, 304, 307, 279, 18, 0, 291, 279, 18,
544 0, 308, 304, 0, 307, 21, 308, 304, 0, 314,
545 0, 22, 270, 0, 314, 22, 270, 0, 304, 68,
546 19, 311, 20, 279, 0, 0, 304, 68, 405, 19,
547 310, 311, 20, 279, 0, 304, 68, 405, 279, 0,
548 312, 0, 311, 21, 312, 0, 311, 21, 0, 405,
549 0, 405, 23, 279, 270, 0, 189, 0, 328, 0,
550 318, 179, 0, 318, 313, 0, 189, 0, 318, 189,
551 0, 321, 0, 304, 319, 0, 107, 0, 108, 0,
552 316, 0, 317, 316, 0, 34, 0, 34, 317, 0,
553 34, 318, 0, 34, 317, 318, 0, 320, 0, 320,
554 21, 5, 0, 405, 0, 320, 21, 405, 0, 5,
555 0, 322, 0, 322, 21, 5, 0, 0, 323, 325,
556 0, 0, 322, 21, 324, 325, 0, 279, 291, 313,
557 279, 0, 405, 0, 290, 0, 290, 327, 0, 318,
558 0, 329, 0, 318, 329, 0, 0, 329, 0, 279,
559 24, 304, 327, 25, 0, 26, 27, 0, 26, 270,
560 27, 0, 329, 26, 27, 0, 329, 26, 270, 27,
561 0, 279, 24, 25, 0, 279, 24, 321, 25, 0,
562 329, 279, 24, 25, 0, 329, 279, 24, 321, 25,
563 0, 346, 0, 347, 0, 350, 0, 353, 0, 366,
564 0, 369, 0, 400, 0, 374, 0, 402, 0, 333,
565 0, 331, 0, 340, 0, 333, 340, 0, 373, 333,
566 0, 399, 345, 11, 24, 268, 25, 18, 0, 399,
567 345, 11, 24, 268, 25, 0, 335, 340, 0, 0,
568 0, 13, 24, 269, 18, 269, 18, 336, 269, 337,
569 25, 0, 0, 177, 355, 24, 339, 377, 25, 0,
570 178, 0, 346, 0, 347, 0, 350, 0, 342, 364,
571 0, 342, 0, 343, 0, 366, 0, 341, 0, 334,
572 0, 338, 0, 402, 0, 24, 340, 25, 0, 1,
573 0, 368, 340, 0, 355, 19, 0, 359, 20, 0,
574 345, 0, 363, 0, 346, 0, 347, 0, 350, 0,
575 354, 0, 367, 0, 369, 0, 374, 0, 401, 0,
576 24, 345, 25, 0, 402, 0, 1, 0, 405, 22,
577 330, 0, 106, 330, 0, 0, 6, 270, 348, 22,
578 330, 0, 0, 97, 6, 270, 349, 22, 330, 0,
579 0, 7, 351, 22, 330, 0, 0, 97, 7, 352,
580 22, 330, 0, 24, 353, 25, 0, 355, 361, 0,
581 355, 362, 356, 0, 0, 0, 0, 0, 0, 20,
582 0, 106, 20, 0, 365, 20, 0, 365, 106, 20,
583 0, 364, 20, 0, 364, 106, 20, 0, 364, 365,
584 20, 0, 364, 365, 106, 20, 0, 19, 360, 0,
585 19, 20, 0, 19, 363, 20, 0, 19, 364, 20,
586 0, 19, 364, 365, 20, 0, 345, 0, 363, 345,
587 0, 271, 0, 364, 271, 0, 330, 0, 365, 330,
588 0, 18, 0, 268, 18, 0, 18, 0, 268, 18,
589 0, 268, 0, 8, 24, 268, 25, 0, 368, 330,
590 0, 0, 368, 330, 9, 370, 330, 0, 0, 10,
591 24, 268, 371, 25, 330, 0, 11, 24, 268, 25,
592 0, 11, 24, 268, 25, 0, 0, 0, 177, 375,
593 355, 24, 376, 377, 25, 353, 398, 356, 0, 379,
594 0, 0, 377, 378, 21, 379, 0, 397, 0, 404,
595 0, 180, 0, 175, 0, 176, 0, 24, 268, 25,
596 0, 380, 0, 244, 26, 268, 27, 0, 244, 24,
597 25, 0, 244, 24, 245, 25, 0, 69, 24, 267,
598 21, 326, 25, 0, 244, 304, 28, 405, 279, 0,
599 244, 304, 43, 405, 279, 0, 244, 46, 0, 244,
600 47, 0, 381, 0, 46, 246, 0, 47, 246, 0,
601 29, 251, 0, 34, 251, 0, 33, 251, 0, 32,
602 251, 0, 31, 251, 0, 30, 251, 0, 248, 0,
603 382, 0, 24, 326, 25, 251, 0, 383, 0, 252,
604 34, 251, 0, 252, 35, 251, 0, 252, 36, 251,
605 0, 384, 0, 253, 33, 252, 0, 253, 32, 252,
606 0, 385, 0, 254, 48, 253, 0, 254, 49, 253,
607 0, 386, 0, 255, 37, 254, 0, 255, 38, 254,
608 0, 255, 50, 254, 0, 255, 51, 254, 0, 387,
609 0, 256, 52, 255, 0, 256, 53, 255, 0, 388,
610 0, 257, 29, 256, 0, 389, 0, 258, 39, 257,
611 0, 390, 0, 259, 40, 258, 0, 391, 0, 260,
612 54, 259, 0, 392, 0, 262, 55, 260, 0, 393,
613 0, 0, 0, 262, 41, 395, 268, 22, 396, 264,
614 0, 394, 0, 246, 23, 267, 0, 246, 56, 267,
615 0, 246, 57, 267, 0, 246, 58, 267, 0, 246,
616 59, 267, 0, 246, 60, 267, 0, 246, 61, 267,
617 0, 246, 62, 267, 0, 246, 63, 267, 0, 246,
618 64, 267, 0, 246, 65, 267, 0, 178, 0, 0,
619 12, 0, 372, 330, 0, 399, 330, 11, 24, 268,
620 25, 18, 0, 335, 330, 0, 372, 345, 0, 399,
621 345, 11, 24, 268, 25, 18, 0, 399, 345, 11,
622 24, 268, 25, 0, 335, 345, 0, 14, 405, 18,
623 0, 15, 18, 0, 96, 15, 18, 0, 16, 18,
624 0, 92, 16, 18, 0, 93, 16, 18, 0, 94,
625 16, 18, 0, 95, 16, 18, 0, 17, 18, 0,
626 17, 268, 18, 0, 0, 18, 0, 174, 0, 175,
627 0, 177, 0, 178, 0, 174, 0, 179, 0, 180,
634 static const short yyrline[] = { 0,
635 215, 216, 219, 220, 223, 224, 225, 226, 227, 228,
636 229, 232, 234, 238, 238, 243, 249, 253, 254, 258,
637 259, 261, 263, 279, 283, 290, 294, 300, 301, 303,
638 305, 321, 325, 332, 336, 342, 344, 344, 348, 349,
639 350, 351, 354, 357, 358, 361, 362, 365, 366, 369,
640 370, 373, 374, 377, 378, 381, 384, 385, 388, 389,
641 390, 391, 392, 395, 396, 399, 399, 402, 402, 405,
642 409, 410, 413, 413, 416, 416, 419, 423, 424, 427,
643 428, 431, 437, 444, 450, 457, 458, 459, 460, 461,
644 464, 467, 470, 471, 474, 475, 476, 477, 478, 479,
645 480, 481, 484, 490, 497, 503, 512, 518, 522, 524,
646 528, 531, 538, 546, 547, 550, 551, 554, 555, 556,
647 557, 558, 559, 560, 561, 565, 566, 570, 571, 574,
648 576, 578, 579, 580, 581, 582, 584, 588, 592, 604,
649 605, 606, 607, 608, 609, 612, 613, 614, 615, 616,
650 617, 618, 619, 620, 623, 624, 627, 628, 629, 630,
651 631, 632, 633, 634, 635, 636, 637, 640, 644, 645,
652 648, 649, 652, 653, 657, 658, 659, 660, 663, 664,
653 665, 668, 669, 670, 673, 674, 675, 676, 677, 680,
654 681, 682, 685, 686, 689, 690, 694, 695, 698, 699,
655 704, 710, 711, 717, 723, 724, 724, 726, 729, 730,
656 731, 732, 733, 734, 735, 736, 737, 738, 739, 740,
657 743, 744, 747, 748, 751, 756, 757, 758, 761, 774,
658 778, 779, 782, 787, 788, 788, 793, 794, 795, 796,
659 799, 802, 805, 808, 809, 812, 813, 816, 817, 818,
660 822, 824, 833, 834, 835, 836, 837, 840, 841, 842,
661 843, 844, 845, 846, 847, 848, 849, 850, 851, 852,
662 853, 854, 855, 856, 857, 858, 859, 860, 861, 862,
663 863, 864, 865, 866, 867, 868, 869, 870, 871, 872,
664 873, 874, 875, 876, 877, 878, 879, 880, 881, 882,
665 883, 884, 887, 888, 889, 890, 893, 894, 895, 896,
666 897, 898, 899, 900, 901, 902, 903, 904, 905, 906,
667 909, 913, 914, 918, 919, 923, 924, 925, 928, 929,
668 932, 934, 936, 937, 939, 941, 942, 944, 946, 948,
669 950, 951, 953, 955, 956, 958, 960, 961, 964, 967,
670 968, 969, 972, 974, 978, 980, 984, 985, 986, 989,
671 991, 991, 993, 996, 998, 1000, 1003, 1008, 1015, 1016,
672 1017, 1024, 1028, 1029, 1033, 1034, 1037, 1038, 1041, 1042,
673 1045, 1046, 1047, 1048, 1051, 1052, 1055, 1056, 1059, 1060,
674 1061, 1064, 1064, 1065, 1066, 1069, 1081, 1097, 1098, 1101,
675 1102, 1103, 1106, 1107, 1110, 1112, 1113, 1114, 1115, 1116,
676 1118, 1120, 1122, 1128, 1129, 1130, 1131, 1132, 1133, 1134,
677 1135, 1136, 1139, 1142, 1145, 1146, 1150, 1152, 1154, 1156,
678 1160, 1161, 1163, 1167, 1169, 1171, 1174, 1175, 1176, 1177,
679 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1189,
680 1195, 1198, 1201, 1202, 1205, 1206, 1207, 1208, 1209, 1210,
681 1211, 1212, 1213, 1214, 1215, 1218, 1219, 1225, 1226, 1227,
682 1228, 1231, 1232, 1233, 1234, 1237, 1238, 1242, 1245, 1248,
683 1251, 1254, 1257, 1260, 1261, 1262, 1263, 1265, 1266, 1268,
684 1270, 1277, 1281, 1283, 1285, 1287, 1291, 1292, 1295, 1296,
685 1299, 1300, 1303, 1304, 1307, 1308, 1309, 1312, 1320, 1325,
686 1326, 1330, 1331, 1334, 1339, 1342, 1343, 1344, 1352, 1353,
687 1353, 1357, 1358, 1359, 1370, 1377, 1378, 1381, 1382, 1383,
688 1384, 1385, 1387, 1388, 1389, 1390, 1393, 1394, 1395, 1396,
689 1397, 1398, 1399, 1400, 1401, 1402, 1405, 1406, 1409, 1410,
690 1411, 1412, 1415, 1416, 1417, 1420, 1421, 1422, 1425, 1426,
691 1427, 1428, 1429, 1432, 1433, 1434, 1437, 1438, 1441, 1442,
692 1446, 1447, 1450, 1451, 1454, 1455, 1458, 1459, 1460, 1461,
693 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473,
694 1474, 1475, 1478, 1479, 1482, 1485, 1487, 1489, 1493, 1494,
695 1496, 1498, 1501, 1502, 1503, 1505, 1506, 1507, 1508, 1509,
696 1510, 1511, 1514, 1515, 1518, 1521, 1522, 1523, 1524, 1527,
702 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
704 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
705 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
706 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
707 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
708 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
709 "TBAR","TQUEST","CSIZEOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP","DEC_OP",
710 "LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP","MUL_ASSIGN",
711 "DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN","RIGHT_ASSIGN",
712 "AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM","VA_ARG","VA_DCL",
713 "QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION","QITER","QDEFINES",
714 "QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE","QALT","QUNDEF",
715 "QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND","TENDMACRO","QSWITCHBREAK",
716 "QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE","QFALLTHROUGH","QLINTNOTREACHED",
717 "QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED","QPRINTFLIKE","QLINTPRINTFLIKE",
718 "QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST","QVOLATILE","QINLINE","QEXTENSION",
719 "QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT","QIN","QYIELD","QONLY","QTEMP",
720 "QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED","QCHECKEDSTRICT","QCHECKMOD",
721 "QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED","QDEPENDENT","QRETURNED","QEXPOSED",
722 "QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT","QNEVEREXIT","QTRUEEXIT","QFALSEEXIT",
723 "QLONG","QSIGNED","QUNSIGNED","QSHORT","QUNUSED","QSEF","QNOTNULL","QRELNULL",
724 "QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE","QTRUENULL","QFALSENULL","QEXTERNAL",
725 "QREFCOUNTED","QREFS","QNEWREF","QTEMPREF","QKILLREF","QRELDEF","CGCHAR","CBOOL",
726 "CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE","QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE",
727 "QSIGNEDINTEGRALTYPE","IDENTIFIER","NEW_IDENTIFIER","CCONSTANT","ITER_NAME",
728 "ITER_ENDNAME","TYPE_NAME","TYPE_NAME_OR_ID","file","externalDefs","externalDef",
729 "constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2",
730 "@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
731 "optGlobMods","@8","optPlainGlobMods","@9","optGlobModsRest","optPlainGlobModsRest",
732 "specialClauses","globIdList","globIdListExpr","globId","globQual","optGlobQuals",
733 "optGlobModsAux","@10","@11","optPlainGlobModsAux","@12","@13","optMods","fcnMods",
734 "@14","fcnPlainMods","@15","specialTag","endStateTag","endSpecialTag","stateSpecialClause",
735 "specialClauseType","specialClause","@16","@17","fcnDefHdrAux","fcnBody","@18",
736 "@19","fcnDef","locModifies","locPlainModifies","modListExpr","mExpr","modList",
737 "specClauseListExpr","specClauseList","primaryExpr","postfixExpr","argumentExprList",
738 "unaryExpr","offsetofExpr","sizeofExpr","@20","sizeofExprAux","castExpr","timesExpr",
739 "plusExpr","shiftExpr","relationalExpr","equalityExpr","bitandExpr","xorExpr",
740 "bitorExpr","andExpr","@21","orExpr","@22","conditionalExpr","@23","@24","assignExpr",
741 "expr","optExpr","constantExpr","initializer","instanceDecl","@25","@26","namedInitializer",
742 "@27","typeDecl","@28","IsType","PushType","namedInitializerList","namedInitializerListAux",
743 "optDeclarators","init","initList","storageSpecifier","typeQualifier","typeModifier",
744 "typeSpecifier","completeType","completeTypeSpecifier","altType","completeTypeSpecifierAux",
745 "optCompleteType","suSpc","@29","@30","@31","@32","@33","@34","@35","@36","NotType",
746 "structDeclList","structDecl","structNamedDeclList","structNamedDecl","enumSpc",
747 "@37","enumeratorList","enumerator","optNamedDecl","namedDecl","genericParamList",
748 "innerMods","innerModsList","pointers","paramIdList","idList","paramTypeList",
749 "paramList","@38","@39","paramDecl","typeExpression","abstractDecl","optAbstractDeclBase",
750 "abstractDeclBase","stmt","iterBody","endBody","iterDefStmtList","iterDefIterationStmt",
751 "forPred","@40","@41","partialIterStmt","@42","iterDefStmt","iterSelectionStmt",
752 "openScope","closeScope","macroBody","stmtErr","labeledStmt","caseStmt","@43",
753 "@44","defaultStmt","@45","@46","compoundStmt","compoundStmtErr","CreateInnerScope",
754 "DeleteInnerScope","CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe",
755 "compoundStmtRest","compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList",
756 "stmtList","expressionStmt","expressionStmtErr","ifPred","selectionStmt","@47",
757 "@48","whilePred","iterWhilePred","iterStmt","@49","@50","iterArgList","@51",
758 "iterArgExpr","primaryIterExpr","postfixIterExpr","unaryIterExpr","castIterExpr",
759 "timesIterExpr","plusIterExpr","shiftIterExpr","relationalIterExpr","equalityIterExpr",
760 "bitandIterExpr","xorIterExpr","bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr",
761 "@52","@53","assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr",
762 "jumpStmt","optSemi","id","newId","typeName", NULL
766 static const short yyr1[] = { 0,
767 181, 181, 182, 182, 183, 183, 183, 183, 183, 183,
768 183, 184, 184, 186, 185, 187, 187, 188, 188, 189,
769 189, 189, 189, 190, 189, 191, 189, 192, 192, 192,
770 192, 193, 192, 194, 192, 196, 197, 195, 198, 198,
771 198, 198, 199, 201, 200, 203, 202, 204, 204, 205,
772 205, 206, 206, 207, 207, 208, 209, 209, 210, 210,
773 210, 210, 210, 211, 211, 213, 212, 214, 212, 212,
774 212, 212, 216, 215, 217, 215, 215, 215, 215, 218,
775 218, 220, 219, 222, 221, 223, 223, 223, 223, 223,
776 224, 225, 226, 226, 227, 227, 227, 227, 227, 227,
777 227, 227, 229, 228, 230, 228, 231, 231, 233, 232,
778 234, 232, 235, 236, 236, 237, 237, 238, 238, 238,
779 238, 238, 238, 238, 238, 239, 239, 240, 240, 241,
780 241, 241, 241, 241, 241, 241, 241, 242, 242, 243,
781 243, 243, 243, 243, 243, 244, 244, 244, 244, 244,
782 244, 244, 244, 244, 245, 245, 246, 246, 246, 246,
783 246, 246, 246, 246, 246, 246, 246, 247, 249, 248,
784 250, 250, 251, 251, 252, 252, 252, 252, 253, 253,
785 253, 254, 254, 254, 255, 255, 255, 255, 255, 256,
786 256, 256, 257, 257, 258, 258, 259, 259, 260, 261,
787 260, 262, 263, 262, 264, 265, 266, 264, 267, 267,
788 267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
789 268, 268, 269, 269, 270, 271, 271, 271, 272, 273,
790 272, 274, 272, 275, 276, 275, 278, 277, 277, 277,
791 279, 280, 281, 282, 282, 283, 283, 284, 284, 284,
792 285, 285, 286, 286, 286, 286, 286, 287, 287, 287,
793 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
794 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
795 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
796 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
797 287, 287, 288, 288, 288, 288, 289, 289, 289, 289,
798 289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
799 290, 291, 291, 292, 292, 293, 293, 293, 294, 294,
800 296, 297, 295, 298, 299, 295, 295, 295, 300, 301,
801 295, 302, 303, 295, 295, 295, 295, 295, 304, 305,
802 305, 305, 306, 306, 307, 307, 308, 308, 308, 309,
803 310, 309, 309, 311, 311, 311, 312, 312, 313, 313,
804 313, 313, 314, 314, 315, 315, 316, 316, 317, 317,
805 318, 318, 318, 318, 319, 319, 320, 320, 321, 321,
806 321, 323, 322, 324, 322, 325, 325, 326, 326, 327,
807 327, 327, 328, 328, 329, 329, 329, 329, 329, 329,
808 329, 329, 329, 330, 330, 330, 330, 330, 330, 330,
809 330, 330, 331, 332, 333, 333, 334, 334, 334, 334,
810 336, 337, 335, 339, 338, 338, 340, 340, 340, 340,
811 340, 340, 340, 340, 340, 340, 340, 340, 340, 341,
812 342, 343, 344, 344, 345, 345, 345, 345, 345, 345,
813 345, 345, 345, 345, 345, 346, 346, 348, 347, 349,
814 347, 351, 350, 352, 350, 353, 353, 354, 355, 356,
815 357, 358, 359, 360, 360, 360, 360, 360, 360, 360,
816 360, 361, 362, 362, 362, 362, 363, 363, 364, 364,
817 365, 365, 366, 366, 367, 367, 367, 368, 369, 370,
818 369, 371, 369, 372, 373, 375, 376, 374, 377, 378,
819 377, 379, 379, 379, 379, 380, 380, 381, 381, 381,
820 381, 381, 381, 381, 381, 381, 382, 382, 382, 382,
821 382, 382, 382, 382, 382, 382, 383, 383, 384, 384,
822 384, 384, 385, 385, 385, 386, 386, 386, 387, 387,
823 387, 387, 387, 388, 388, 388, 389, 389, 390, 390,
824 391, 391, 392, 392, 393, 393, 394, 395, 396, 394,
825 397, 397, 397, 397, 397, 397, 397, 397, 397, 397,
826 397, 397, 398, 398, 399, 400, 400, 400, 401, 401,
827 401, 401, 402, 402, 402, 402, 402, 402, 402, 402,
828 402, 402, 403, 403, 404, 405, 405, 405, 405, 406,
832 static const short yyr2[] = { 0,
833 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
834 1, 8, 11, 0, 5, 1, 3, 1, 2, 1,
835 6, 3, 6, 0, 6, 0, 7, 1, 6, 3,
836 6, 0, 6, 0, 7, 0, 0, 10, 3, 3,
837 3, 2, 1, 0, 2, 0, 2, 1, 2, 1,
838 2, 1, 2, 1, 3, 2, 1, 1, 1, 1,
839 1, 1, 1, 0, 2, 0, 6, 0, 6, 1,
840 1, 0, 0, 5, 0, 5, 1, 1, 0, 1,
841 0, 0, 3, 0, 3, 1, 1, 1, 1, 1,
842 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
843 1, 1, 0, 7, 0, 8, 1, 3, 0, 3,
844 0, 3, 2, 3, 2, 2, 1, 1, 1, 3,
845 4, 2, 3, 3, 3, 1, 1, 1, 3, 1,
846 1, 3, 4, 2, 3, 3, 3, 1, 3, 1,
847 1, 1, 3, 1, 1, 1, 4, 3, 4, 6,
848 5, 5, 2, 2, 1, 3, 1, 2, 2, 2,
849 2, 2, 2, 2, 2, 1, 1, 9, 0, 3,
850 4, 2, 1, 4, 1, 3, 3, 3, 1, 3,
851 3, 1, 3, 3, 1, 3, 3, 3, 3, 1,
852 3, 3, 1, 3, 1, 3, 1, 3, 1, 0,
853 4, 1, 0, 4, 1, 0, 0, 7, 1, 3,
854 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
855 1, 3, 0, 1, 1, 1, 1, 1, 3, 0,
856 9, 0, 11, 2, 0, 6, 0, 7, 4, 4,
857 0, 0, 2, 1, 4, 0, 4, 1, 3, 4,
858 1, 3, 1, 1, 1, 1, 1, 2, 2, 2,
859 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
860 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
861 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
862 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
863 2, 2, 1, 1, 1, 1, 2, 2, 2, 2,
864 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
865 3, 1, 4, 1, 3, 2, 2, 2, 0, 1,
866 0, 0, 11, 0, 0, 11, 6, 6, 0, 0,
867 10, 0, 0, 10, 5, 5, 4, 4, 0, 1,
868 1, 2, 5, 3, 2, 4, 1, 2, 3, 6,
869 0, 8, 4, 1, 3, 2, 1, 4, 1, 1,
870 2, 2, 1, 2, 1, 2, 1, 1, 1, 2,
871 1, 2, 2, 3, 1, 3, 1, 3, 1, 1,
872 3, 0, 2, 0, 4, 4, 1, 1, 2, 1,
873 1, 2, 0, 1, 5, 2, 3, 3, 4, 3,
874 4, 4, 5, 1, 1, 1, 1, 1, 1, 1,
875 1, 1, 1, 1, 1, 2, 2, 7, 6, 2,
876 0, 0, 10, 0, 6, 1, 1, 1, 1, 2,
877 1, 1, 1, 1, 1, 1, 1, 3, 1, 2,
878 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
879 1, 1, 3, 1, 1, 3, 2, 0, 5, 0,
880 6, 0, 4, 0, 5, 3, 2, 3, 0, 0,
881 0, 0, 0, 1, 2, 2, 3, 2, 3, 3,
882 4, 2, 2, 3, 3, 4, 1, 2, 1, 2,
883 1, 2, 1, 2, 1, 2, 1, 4, 2, 0,
884 5, 0, 6, 4, 4, 0, 0, 10, 1, 0,
885 4, 1, 1, 1, 1, 1, 3, 1, 4, 3,
886 4, 6, 5, 5, 2, 2, 1, 2, 2, 2,
887 2, 2, 2, 2, 2, 1, 1, 4, 1, 3,
888 3, 3, 1, 3, 3, 1, 3, 3, 1, 3,
889 3, 3, 3, 1, 3, 3, 1, 3, 1, 3,
890 1, 3, 1, 3, 1, 3, 1, 0, 0, 7,
891 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
892 3, 3, 1, 0, 1, 2, 7, 2, 2, 7,
893 6, 2, 3, 2, 3, 2, 3, 3, 3, 3,
894 2, 3, 0, 1, 1, 1, 1, 1, 1, 1,
898 static const short yydefact[] = { 0,
899 11, 381, 349, 227, 349, 14, 0, 0, 0, 0,
900 241, 241, 254, 253, 255, 256, 257, 241, 241, 241,
901 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
902 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
903 241, 241, 241, 304, 305, 306, 303, 241, 241, 241,
904 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
905 241, 241, 241, 241, 349, 349, 349, 349, 349, 349,
906 349, 349, 349, 349, 619, 616, 617, 618, 620, 621,
907 0, 3, 6, 7, 373, 8, 9, 349, 43, 613,
908 10, 226, 228, 0, 329, 329, 349, 329, 349, 322,
909 349, 0, 349, 107, 241, 20, 349, 377, 378, 379,
910 382, 383, 244, 241, 241, 237, 349, 349, 349, 0,
911 465, 241, 472, 0, 0, 0, 595, 0, 0, 0,
912 0, 241, 505, 0, 241, 241, 241, 241, 241, 241,
913 241, 241, 241, 0, 42, 0, 0, 0, 0, 0,
914 0, 241, 145, 615, 141, 142, 516, 144, 146, 157,
915 173, 167, 166, 175, 179, 182, 185, 190, 193, 195,
916 197, 199, 202, 205, 209, 221, 507, 169, 0, 0,
917 497, 455, 456, 457, 458, 0, 0, 459, 241, 460,
918 0, 461, 0, 462, 464, 140, 0, 449, 0, 503,
919 0, 479, 436, 0, 0, 0, 445, 0, 446, 425,
920 444, 441, 442, 437, 438, 439, 0, 0, 443, 0,
921 0, 0, 447, 424, 0, 258, 259, 260, 261, 266,
922 268, 267, 271, 272, 283, 285, 286, 284, 269, 270,
923 262, 263, 264, 265, 280, 281, 278, 282, 273, 274,
924 277, 275, 276, 289, 291, 296, 279, 292, 293, 294,
925 295, 287, 288, 290, 297, 298, 301, 302, 299, 300,
926 307, 309, 308, 310, 311, 312, 313, 314, 315, 316,
927 4, 241, 0, 109, 113, 499, 349, 349, 614, 5,
928 349, 330, 326, 327, 320, 328, 0, 241, 241, 318,
929 241, 241, 0, 319, 374, 317, 380, 384, 349, 0,
930 243, 349, 0, 234, 241, 613, 16, 18, 0, 349,
931 241, 28, 392, 241, 615, 141, 173, 225, 468, 0,
932 241, 241, 241, 223, 0, 604, 606, 611, 0, 0,
933 349, 398, 0, 0, 160, 165, 164, 163, 162, 161,
934 0, 241, 158, 159, 241, 0, 0, 0, 0, 0,
935 241, 474, 241, 467, 241, 414, 415, 416, 417, 0,
936 418, 419, 241, 421, 241, 420, 422, 479, 241, 241,
937 153, 154, 0, 241, 241, 241, 241, 241, 241, 241,
938 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
939 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
940 200, 206, 203, 506, 241, 0, 602, 39, 0, 480,
941 498, 509, 599, 0, 241, 241, 0, 0, 0, 504,
942 40, 426, 430, 440, 451, 452, 450, 0, 0, 41,
943 22, 241, 392, 349, 241, 479, 500, 241, 229, 108,
944 349, 0, 324, 0, 349, 0, 349, 0, 241, 241,
945 240, 241, 239, 235, 349, 0, 241, 0, 349, 241,
946 19, 389, 0, 0, 375, 390, 241, 0, 0, 241,
947 0, 512, 0, 224, 0, 603, 612, 143, 241, 241,
948 0, 400, 399, 401, 241, 463, 241, 0, 607, 608,
949 609, 610, 605, 470, 0, 0, 598, 349, 477, 596,
950 0, 0, 148, 0, 155, 0, 0, 0, 210, 211,
951 212, 213, 214, 215, 216, 217, 218, 219, 220, 176,
952 177, 178, 181, 180, 183, 184, 186, 187, 188, 189,
953 191, 192, 194, 196, 198, 241, 241, 241, 222, 241,
954 170, 493, 144, 497, 0, 349, 478, 510, 0, 466,
955 0, 448, 434, 0, 0, 24, 0, 484, 241, 501,
956 110, 349, 241, 349, 479, 112, 241, 230, 323, 241,
957 339, 0, 347, 342, 0, 348, 0, 364, 367, 361,
958 363, 245, 241, 241, 613, 15, 30, 241, 392, 241,
959 17, 376, 385, 387, 36, 394, 349, 393, 397, 241,
960 473, 508, 0, 514, 223, 321, 406, 0, 392, 402,
961 241, 0, 174, 349, 241, 0, 241, 476, 492, 0,
962 517, 241, 149, 147, 241, 241, 201, 0, 204, 241,
963 172, 494, 495, 241, 241, 241, 515, 241, 241, 349,
964 44, 26, 485, 488, 241, 241, 486, 241, 502, 0,
965 232, 241, 325, 345, 481, 331, 346, 481, 334, 241,
966 366, 241, 0, 0, 241, 241, 241, 0, 32, 0,
967 241, 0, 46, 391, 241, 403, 469, 241, 0, 407,
968 410, 241, 0, 408, 0, 392, 0, 0, 241, 475,
969 241, 241, 156, 151, 152, 207, 0, 496, 511, 0,
970 241, 241, 241, 241, 241, 241, 241, 241, 241, 0,
971 141, 142, 144, 157, 173, 166, 179, 182, 185, 190,
972 193, 195, 197, 199, 202, 0, 520, 519, 528, 537,
973 547, 549, 553, 556, 559, 564, 567, 569, 571, 573,
974 575, 577, 581, 522, 140, 0, 23, 25, 72, 44,
975 489, 490, 241, 487, 21, 241, 246, 349, 337, 481,
976 349, 338, 481, 360, 365, 241, 0, 238, 241, 248,
977 236, 241, 0, 349, 46, 34, 0, 386, 388, 37,
978 79, 395, 369, 0, 241, 403, 370, 404, 513, 431,
979 0, 411, 409, 412, 0, 0, 150, 471, 0, 520,
980 241, 171, 601, 0, 0, 160, 165, 164, 163, 162,
981 161, 158, 159, 241, 241, 241, 153, 154, 0, 241,
982 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
983 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
984 241, 241, 241, 241, 241, 241, 200, 578, 203, 435,
985 0, 429, 66, 82, 70, 86, 87, 88, 89, 90,
986 93, 94, 45, 72, 48, 71, 349, 349, 52, 27,
987 491, 241, 0, 351, 349, 349, 350, 349, 349, 349,
988 368, 241, 251, 0, 246, 12, 31, 33, 46, 29,
989 613, 73, 84, 77, 47, 79, 50, 78, 392, 396,
990 371, 372, 223, 405, 413, 0, 0, 479, 208, 600,
991 143, 241, 0, 148, 0, 0, 0, 0, 582, 583,
992 584, 585, 586, 587, 588, 589, 590, 591, 592, 176,
993 177, 178, 181, 180, 183, 184, 186, 187, 188, 189,
994 191, 192, 194, 196, 198, 574, 241, 576, 241, 428,
995 349, 64, 613, 49, 103, 0, 53, 246, 241, 349,
996 0, 241, 352, 340, 349, 343, 349, 362, 249, 241,
997 613, 35, 0, 349, 64, 613, 51, 241, 432, 241,
998 597, 594, 174, 241, 149, 147, 241, 241, 0, 521,
999 349, 59, 60, 61, 62, 63, 613, 54, 64, 0,
1000 0, 0, 119, 83, 128, 613, 0, 118, 0, 95,
1001 100, 99, 98, 97, 96, 101, 102, 105, 0, 231,
1002 241, 354, 241, 241, 349, 357, 0, 332, 0, 335,
1003 250, 252, 0, 38, 613, 613, 85, 613, 117, 241,
1004 0, 168, 593, 480, 0, 151, 152, 579, 0, 64,
1005 0, 65, 58, 56, 57, 0, 122, 0, 0, 0,
1006 0, 0, 115, 0, 0, 131, 138, 613, 130, 0,
1007 241, 247, 358, 241, 0, 355, 241, 341, 0, 344,
1008 0, 13, 81, 81, 116, 433, 518, 150, 241, 81,
1009 55, 81, 123, 120, 127, 126, 0, 124, 125, 129,
1010 114, 0, 134, 0, 0, 0, 0, 0, 613, 233,
1011 349, 353, 359, 333, 336, 74, 80, 76, 580, 67,
1012 69, 121, 135, 132, 0, 136, 137, 139, 92, 241,
1013 0, 356, 133, 104, 91, 241, 106, 0, 0, 0
1016 static const short yydefgoto[] = { 1148,
1017 81, 82, 83, 84, 119, 316, 317, 85, 651, 760,
1018 318, 785, 899, 86, 683, 901, 884, 88, 758, 759,
1019 790, 791, 873, 905, 874, 1007, 1008, 1064, 1009, 1010,
1020 875, 961, 962, 907, 984, 985, 1126, 1127, 963, 908,
1021 986, 877, 1146, 1140, 878, 1028, 879, 1019, 1080, 89,
1022 285, 444, 446, 90, 1014, 1047, 1015, 1107, 1016, 1077,
1023 1078, 159, 160, 514, 161, 162, 163, 416, 551, 164,
1024 165, 166, 167, 168, 169, 170, 171, 172, 173, 546,
1025 174, 548, 175, 547, 811, 176, 204, 485, 329, 286,
1026 92, 662, 766, 113, 594, 93, 312, 178, 283, 114,
1027 115, 883, 781, 894, 95, 96, 97, 98, 342, 287,
1028 452, 100, 293, 101, 770, 1089, 773, 1091, 665, 1037,
1029 668, 1039, 102, 886, 887, 1034, 1035, 103, 673, 587,
1030 588, 795, 117, 474, 110, 111, 105, 602, 603, 475,
1031 476, 477, 685, 608, 343, 801, 797, 494, 364, 205,
1032 225, 206, 207, 365, 913, 1051, 209, 648, 210, 211,
1033 212, 213, 180, 421, 366, 367, 479, 626, 368, 330,
1034 505, 369, 185, 370, 557, 768, 974, 218, 571, 509,
1035 420, 187, 572, 573, 371, 188, 189, 372, 645, 613,
1036 373, 221, 374, 378, 702, 737, 861, 738, 739, 740,
1037 741, 742, 743, 744, 745, 746, 747, 748, 749, 750,
1038 751, 752, 753, 957, 1099, 754, 1054, 375, 376, 194,
1039 377, 290, 196, 197, 107
1042 static const short yypact[] = { 1812,
1043 -32768, 148, 5048,-32768, 6116,-32768, 432, 2708, 3070, 3070,
1044 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1045 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1046 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1047 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1048 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1049 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1050 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1051 1993,-32768,-32768,-32768, 236,-32768,-32768, 4898,-32768, 67,
1052 -32768,-32768,-32768, 71, 5848, 5848,-32768, 5848, 89, 104,
1053 -32768, 1025,-32768,-32768, 432,-32768,-32768,-32768,-32768,-32768,
1054 148,-32768,-32768, 178,-32768, 89,-32768,-32768, 5048, 183,
1055 -32768, 5313,-32768, 221, 281, 290,-32768, 299, 432, 177,
1056 311, 755,-32768, 2348, 5313, 5313, 5313, 5313, 5313, 5313,
1057 -32768, 5338, 5338, 362,-32768, 376, 388, 416, 422, 434,
1058 171, 4350,-32768, 436, 444,-32768, 464,-32768,-32768, 734,
1059 844,-32768,-32768,-32768, 1072, 197, 248, 637, 315, 472,
1060 470, 481, 483, 210,-32768,-32768, 132,-32768, 3112, 459,
1061 485,-32768,-32768,-32768,-32768, 525, 2750,-32768, 4350,-32768,
1062 3112,-32768, 3112,-32768,-32768,-32768, 539,-32768, 566,-32768,
1063 2528, 464, 562, 405, 517, 2889,-32768, 3070,-32768,-32768,
1064 -32768, 5610,-32768,-32768,-32768,-32768, 597, 621,-32768, 3070,
1065 3070, 3112,-32768,-32768, 558,-32768,-32768,-32768,-32768,-32768,
1066 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1067 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1068 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1069 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1070 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1071 -32768, 629, 640,-32768,-32768,-32768, 89, 4743,-32768,-32768,
1072 -32768,-32768,-32768,-32768,-32768,-32768, 665, 381,-32768,-32768,
1073 432, 432, 223,-32768, 236,-32768,-32768,-32768,-32768, 671,
1074 -32768,-32768, 700, 701, 381, 67,-32768, 656, 703,-32768,
1075 432,-32768, 169, 5313,-32768,-32768,-32768,-32768,-32768, 712,
1076 5313, 5313, 5313, 5200, 719,-32768,-32768,-32768, 453, 506,
1077 5480, 491, 720, 726,-32768,-32768,-32768,-32768,-32768,-32768,
1078 735, 5313,-32768,-32768, 5313, 753, 786, 791, 794, 797,
1079 5313,-32768, 1381,-32768, 4350,-32768,-32768,-32768,-32768, 810,
1080 -32768,-32768, 4350,-32768, 4350,-32768,-32768,-32768, 5219, 5313,
1081 -32768,-32768, 112, 5313, 5313, 5313, 5313, 5313, 5313, 5313,
1082 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313,
1083 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313,
1084 -32768,-32768,-32768,-32768, 5313, 776,-32768,-32768, 2168,-32768,
1085 -32768, 831,-32768, 852, 4350, 5313, 603, 833, 853,-32768,
1086 -32768,-32768,-32768, 5610,-32768,-32768,-32768, 1684, 861,-32768,
1087 -32768, 5313, 253, 3249, 381, 862,-32768, 381,-32768, 530,
1088 6116, 808, 905, 908, 915, 917, 915, 432, 926, 381,
1089 -32768, 381,-32768,-32768,-32768, 877, 919, 924,-32768, 381,
1090 656,-32768, 432, 946,-32768, 952, 432, 393, 954, 4350,
1091 642, 963, 648, 963, 968,-32768,-32768,-32768,-32768, 5244,
1092 967, 686,-32768, 691, 5313,-32768,-32768, 971,-32768,-32768,
1093 -32768,-32768,-32768,-32768, 989, 976,-32768, 3249,-32768,-32768,
1094 1008, 1009,-32768, 670,-32768, 115, 432, 432,-32768,-32768,
1095 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1096 -32768,-32768, 1072, 1072, 197, 197, 248, 248, 248, 248,
1097 637, 637, 315, 472, 470, 5313, 5313, 5313,-32768, 5381,
1098 -32768,-32768, 5956,-32768, 2931, 3424,-32768,-32768, 1012,-32768,
1099 727,-32768,-32768, 1028, 998,-32768, 1013,-32768, 3774,-32768,
1100 -32768, 3599, 3816,-32768, 862,-32768,-32768, 1049,-32768,-32768,
1101 1035, 1052,-32768, 1062, 1064,-32768, 358,-32768, 1067,-32768,
1102 -32768,-32768, 178,-32768, 327,-32768,-32768, 5313, 259, 381,
1103 -32768,-32768, 1077,-32768,-32768, 1080, 6116,-32768,-32768, 4350,
1104 -32768,-32768, 1079,-32768, 5200,-32768,-32768, 1070, 704, 691,
1105 5269, 1088,-32768,-32768,-32768, 1095, 4350,-32768,-32768, 1098,
1106 -32768, 5313,-32768,-32768,-32768,-32768, 481, 451, 483, 5313,
1107 -32768,-32768,-32768, 3952, 4350, 5313,-32768, 5406, 5313,-32768,
1108 -32768,-32768,-32768,-32768, 3994, 4130,-32768, 4172,-32768, 1101,
1109 -32768,-32768,-32768,-32768,-32768, 1081,-32768,-32768, 1082,-32768,
1110 432,-32768, 432, 1109, 4770,-32768,-32768, 1102,-32768, 1103,
1111 -32768, 305,-32768,-32768, 432, 548,-32768, 4350, 1112,-32768,
1112 -32768, 103, 1106,-32768, 1107, 107, 1114, 1108, 4350,-32768,
1113 5313, 5406,-32768,-32768,-32768,-32768, 1116,-32768,-32768, 740,
1114 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5338, 5338, 1119,
1115 747, 772, 778, 847, 1282, 806, 1075, 668, 799, 795,
1116 730, 1110, 1105, 1111, 1091, 275, 1125,-32768,-32768,-32768,
1117 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1118 -32768,-32768,-32768,-32768, 809, 814,-32768,-32768, 1076,-32768,
1119 -32768,-32768, 4308,-32768,-32768,-32768,-32768, 6042,-32768,-32768,
1120 6042,-32768,-32768,-32768,-32768, 5313, 840,-32768, 4770,-32768,
1121 -32768, 4770, 1074,-32768,-32768,-32768, 1137,-32768,-32768,-32768,
1122 1142,-32768, 236, 1140,-32768, 325,-32768, 691,-32768,-32768,
1123 1157,-32768,-32768,-32768, 1160, 432,-32768,-32768, 817, 1161,
1124 5313,-32768, 1147, 845, 1162, 857, 858, 859, 866, 912,
1125 935, 937, 938, 5313, 5294, 5313, 960, 962, 117, 5313,
1126 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313,
1127 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313,
1128 5313, 5313, 5313, 5313, 5313, 5313, 5313,-32768, 5313,-32768,
1129 1168, 1173, 95,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1130 -32768,-32768,-32768, 1043,-32768,-32768,-32768,-32768, 997,-32768,
1131 -32768, 4770, 477,-32768, 89, 4972,-32768, 6042, 4972, 6042,
1132 -32768,-32768,-32768, 848,-32768,-32768,-32768,-32768,-32768,-32768,
1133 67, 105,-32768,-32768,-32768, 1048,-32768,-32768, 266,-32768,
1134 -32768,-32768, 5200,-32768,-32768, 1167, 1175, 862,-32768,-32768,
1135 979, 5313, 1174, 982, 987, 191, 432, 432,-32768,-32768,
1136 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 999,
1137 1001, 1014, 907, 1007, 443, 594, 76, 521, 617, 742,
1138 609, 669, 570, 749, 313, 481, 5313, 483, 5406,-32768,
1139 5740, 502, 120,-32768,-32768, 674,-32768,-32768,-32768,-32768,
1140 1178, 62,-32768,-32768, 4972,-32768, 4972,-32768,-32768, 920,
1141 542,-32768, 1113, 5740, 502, 120,-32768, 57,-32768,-32768,
1142 -32768, 1019, 1023,-32768, 1024, 1026,-32768,-32768, 867,-32768,
1143 4586,-32768,-32768,-32768,-32768,-32768, 550,-32768, 502, 723,
1144 74, 74,-32768,-32768, 382, 560, 1117,-32768, 93,-32768,
1145 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 571,-32768,
1146 381,-32768, 5313, 1177,-32768, 1179, 1183,-32768, 1185,-32768,
1147 -32768,-32768, 1120,-32768, 4430, 550,-32768, 560,-32768, 310,
1148 1181,-32768,-32768,-32768, 1184, 1032, 1039,-32768, 1121, 502,
1149 1123,-32768,-32768,-32768,-32768, 283, 382, 186, 432, 432,
1150 74, 1139,-32768, 93, 93,-32768, 396, 580,-32768, 93,
1151 -32768,-32768,-32768, 62, 1217,-32768, 5313,-32768, 1216,-32768,
1152 1218,-32768, 1165, 1165,-32768,-32768,-32768, 1041, 5313, 1165,
1153 -32768, 1165,-32768,-32768,-32768, 382, 1213,-32768,-32768, 382,
1154 -32768, 486, 396, 331, 432, 432, 93, 1154, 580,-32768,
1155 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1156 -32768,-32768,-32768,-32768, 1215,-32768,-32768, 396,-32768,-32768,
1157 1156,-32768,-32768,-32768,-32768,-32768,-32768, 1244, 1245,-32768
1160 static const short yypgoto[] = {-32768,
1161 -32768, 1169,-32768,-32768,-32768,-32768, -453, -103,-32768,-32768,
1162 925,-32768,-32768,-32768,-32768,-32768, 80,-32768, 488,-32768,
1163 -707,-32768,-32768,-32768, -703, 267, 196,-32768,-32768, 245,
1164 384,-32768,-32768, 353,-32768,-32768, -648, -689,-32768,-32768,
1165 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1166 -32768,-32768,-32768,-32768,-32768,-32768, -860, 146, 277, -858,
1167 184,-32768, -602, 442, 515,-32768, -556,-32768,-32768, 137,
1168 -326, -311, -246, -330, -363, -362, -395, -530, -469,-32768,
1169 -554,-32768, -78,-32768,-32768, 787, 836, -607, -355, 1,
1170 -32768,-32768,-32768, -456,-32768,-32768,-32768, 0, -244, 811,
1171 -32768, -782, -676,-32768,-32768,-32768,-32768,-32768,-32768, 128,
1172 690,-32768, 644,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1173 -32768,-32768, 97, -669, -512,-32768, 188,-32768,-32768, 601,
1174 607, 487, 5, -374, 1176,-32768, 11,-32768,-32768, -553,
1175 -32768,-32768,-32768, 600, -292, 947,-32768, -483, 1022, 1278,
1176 -32768, 1069,-32768, 1060,-32768,-32768,-32768,-32768, -97,-32768,
1177 -32768,-32768,-32768, 317, 1078, 1115,-32768,-32768, 1267,-32768,
1178 -32768, -353,-32768, 635, 238, -529, -714,-32768, 785,-32768,
1179 -32768, 876, -23, -446, 111,-32768, 174, 59,-32768,-32768,
1180 194,-32768, 220,-32768,-32768, 595,-32768, 337,-32768,-32768,
1181 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1182 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1321,-32768,-32768,
1183 1367, -302, -255, 68,-32768
1190 static const short yytable[] = { 94,
1191 91, 305, 94, 592, 104, 504, 453, 689, 620, 506,
1192 226, 227, 112, 466, 545, 637, 601, 228, 229, 230,
1193 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
1194 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
1195 251, 252, 253, 328, 543, 724, 544, 254, 255, 256,
1196 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
1197 267, 268, 269, 270, 288, 693, 190, 106, 567, 876,
1198 106, 533, 534, 468, 120, 541, 542, 898, 639, 87,
1199 94, 91, 490, 1033, 289, 104, 565, 906, 535, 536,
1200 2, 726, 576, 736, 291, 2, -560, 1011, 297, 724,
1201 -560, 889, 893, 428, 94, 895, -241, 1012, 432, 644,
1202 433, 472, 981, 310, 311, 313, 1074, 734, 319, 219,
1203 219, 308, 437, 400, 401, 656, 1075, 99, 490, 321,
1204 116, 804, 118, 341, 618, 415, 2, 289, 771, 517,
1205 351, 634, 805, 1011, 927, 726, 681, 736, 106, 414,
1206 1066, 1067, 415, 1012, 518, 537, 538, 539, 540, 928,
1207 87, 271, 272, 273, 274, 275, 276, 277, 278, 279,
1208 280, 734, 106, 472, 976, 967, 361, 362, 735, -68,
1209 -68, 2, 220, 220, 876, 1029, 322, 299, 434, -75,
1210 -75, 982, 190, 295, 336, 298, 335, 300, 309, 304,
1211 341, 191, 798, 306, 624, 968, 323, 1106, 99, 1011,
1212 1110, 415, 1104, 314, 315, 1112, 1113, 996, 975, 1012,
1213 977, 506, 292, 292, 680, 292, 468, 192, 398, 399,
1214 75, 76, 735, 77, 78, 75, 76, 190, 77, 78,
1215 888, 458, 678, 890, 331, 190, 320, 325, 1013, 190,
1216 412, 190, 733, 1106, 108, 109, 383, 472, 1138, -242,
1217 1038, 282, 1040, 472, 413, 695, 325, 1076, -68, -68,
1218 472, 345, 346, 347, 348, 349, 350, 566, -75, -75,
1219 190, 442, 328, 679, 731, 732, 297, 453, 447, -349,
1220 691, -349, 677, 325, 1013, 400, 401, 94, 451, -349,
1221 454, 456, 450, 1042, 332, 989, 733, 1103, 1068, 788,
1222 1069, 219, 798, 333, 94, 858, 219, 730, 219, 465,
1223 319, 727, 334, 341, 181, 1070, 956, 191, 337, 859,
1224 219, 219, 698, -572, -400, 490, 728, -572, 731, 732,
1225 432, 491, -349, -349, 289, -349, -349, 707, -241, 676,
1226 490, 409, 492, 192, 1011, 693, 724, 1134, 2, 325,
1227 1013, 1105, 341, 328, 1012, 106, 406, 407, 455, 457,
1228 459, 730, 191, 973, 220, 727, 973, 670, 671, 220,
1229 191, 220, 106, 445, 191, 355, 191, 448, 322, 958,
1230 728, 356, 755, 220, 220, 556, 75, 76, 192, 77,
1231 78, 729, 726, 357, 736, 460, 192, 1068, 462, 1069,
1232 192, 328, 192, 415, 2, 191, 470, 488, 815, 473,
1233 891, 1114, 430, 1115, 1070, 415, -349, -349, 734, -349,
1234 -349, 358, -349, -349, 447, -349, -349, 359, 1116, -349,
1235 -349, 192, -349, -349, 94, 1128, 755, 94, 360, 574,
1236 344, 1130, 577, 1131, 582, 729, 585, -619, 591, 94,
1237 955, 94, 973, -557, 973, -616, 598, -557, 489, 319,
1238 487, 415, 706, 415, 398, 399, 607, 190, 75, 76,
1239 321, 77, 78, 75, 76, -617, 77, 78, 616, 735,
1240 953, 491, 954, 622, 969, 417, 451, 970, 75, 76,
1241 408, 77, 78, 911, 325, 1013, 1105, 423, 409, 424,
1242 1133, 1114, 106, 1115, -241, 106, 490, 943, 944, 328,
1243 410, 951, 952, 414, 2, 589, 415, 106, 1116, 106,
1244 488, 530, 531, 532, 945, 946, 411, 322, 439, 473,
1245 604, -561, 328, 419, 609, -561, 578, -349, 219, 418,
1246 -349, 583, -349, 586, 75, 76, 447, 77, 78, 289,
1247 425, 595, 970, 733, 992, 600, 620, 289, 400, 401,
1248 1060, -241, 447, 490, 1082, -453, 660, 289, 489, 451,
1249 1071, 2, 793, -618, 635, 636, 1002, 1003, 1081, 426,
1250 -568, 970, 674, 675, -568, 731, 732, 289, 983, 319,
1251 1117, 947, 948, 949, 950, 75, 76, 431, 77, 78,
1252 321, 220, 191, 190, -558, 435, 1004, 1005, -558, 622,
1253 430, 406, 407, 415, 451, 398, 399, 488, 730, -565,
1254 1006, 623, 727, -565, 704, 705, 327, -562, 192, 341,
1255 436, -562, 186, 217, 217, 402, 403, 728, 440, 327,
1256 327, 327, 327, 327, 327, 441, 353, 354, 404, 405,
1257 1017, 767, 415, 443, 400, 401, 612, 322, 415, 774,
1258 578, 776, 614, 402, 403, 782, 783, 1083, 1043, -242,
1259 787, 467, 449, 1049, 607, 794, 404, 405, 461, -566,
1260 632, 491, 793, -566, 633, 473, 796, 328, 1059, 844,
1261 845, 1055, 492, 755, 1061, 402, 403, 1018, 472, -241,
1262 341, 490, 729, 1072, -241, 692, 621, 463, 404, 405,
1263 697, 75, 76, 464, 77, 78, 469, -349, 691, -349,
1264 1018, 1123, 919, 480, 686, 554, 486, -349, 589, 294,
1265 589, 296, 1093, 1094, 495, 1095, 757, 415, 191, 789,
1266 496, 647, 609, 106, 1065, 1018, 1018, 379, 497, 380,
1267 415, -349, -563, 1079, 813, 882, -563, -525, 186, -570,
1268 499, -525, 338, -570, 192, 1118, -349, 408, 324, 381,
1269 382, 852, 853, 135, 136, 137, 138, 139, 140, 400,
1270 401, 1020, -526, 1021, 910, 794, -526, 622, -524, 141,
1271 142, 143, -524, 500, 1022, 1023, 796, 1024, 501, 1025,
1272 1026, 502, 1018, 186, 503, 1018, 1141, 550, 1079, 1079,
1273 829, 186, 1027, 144, 1079, 186, -546, 186, 508, -523,
1274 -546, 848, 849, -523, 415, 217, 429, 415, 862, 558,
1275 217, 917, 217, 177, 850, 851, 846, 847, 816, 817,
1276 818, 819, 820, 821, 217, 217, 186, 562, 1018, 892,
1277 671, 1079, 559, 106, 153, 415, 384, 979, 980, 921,
1278 825, 564, 826, 916, -349, 327, 563, -540, -545, -544,
1279 897, -540, -545, -544, 971, 575, -543, 415, 1058, -349,
1280 -543, 978, 827, 828, 579, 885, 325, 1063, 885, 385,
1281 386, 387, 388, 389, 390, 391, 392, 393, 394, 327,
1282 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
1283 327, 327, 327, 327, 327, 580, 581, -555, 325, 326,
1284 156, -555, -542, -241, 158, 584, -542, 1001, 779, 1041,
1285 395, 396, 397, 324, 590, 597, 305, 599, 135, 136,
1286 137, 138, 139, 140, 328, -541, 327, -538, -539, -541,
1287 1045, -538, -539, 596, 141, 142, 143, 339, 1030, 340,
1288 605, 94, 606, 965, 966, 610, 1036, 940, 941, 942,
1289 -535, 972, -536, 415, -535, 615, -536, 794, 144, 1052,
1290 619, 625, 577, 451, 997, 998, 1056, 1057, 1050, -527,
1291 628, 447, -530, -527, 327, 988, -530, 632, 328, 327,
1292 627, 995, 512, 885, 177, 885, 885, 885, 630, -550,
1293 1129, -551, 177, -550, 650, -551, 177, -554, 177, 153,
1294 94, -554, 631, 1085, -552, 646, 427, 652, -552, 106,
1295 395, 396, 397, -548, -531, 447, -529, -548, -531, 794,
1296 -529, 649, -533, 186, 664, 106, -533, 177, 993, -534,
1297 327, -532, 327, -534, 641, -532, 1031, 179, 208, 208,
1298 666, 661, 217, 866, 867, 868, 869, 870, 871, 872,
1299 1120, 667, 669, 94, 684, 182, 214, 214, 1036, 672,
1300 301, 302, 303, 325, 326, 156, 690, 682, 106, 158,
1301 769, 772, 885, 688, 885, 395, 396, 397, 841, 842,
1302 843, 696, 327, 863, 864, 865, 699, 106, 902, 903,
1303 904, 701, 183, 215, 215, 765, 778, 786, 784, 800,
1304 802, 1086, 807, 803, 806, 327, 1108, 1109, 854, 1144,
1305 812, 498, 824, 855, 857, 1147, 863, 864, 865, 860,
1306 856, 106, 866, 867, 868, 869, 870, 871, 872, 478,
1307 896, 900, 725, 909, 920, 515, 481, 482, 483, 484,
1308 519, 520, 521, 522, 523, 524, 525, 526, 527, 528,
1309 529, 914, 1136, 1137, 915, 918, 922, 478, 959, 186,
1310 960, 990, 991, 179, 994, 1032, 1053, 1084, 478, 1044,
1311 1087, 549, 1088, 1073, 1090, 1096, 1092, 1100, 1098, 1102,
1312 422, 182, 902, 903, 904, 516, 725, 1142, 866, 867,
1313 868, 869, 870, 871, 872, 1111, 327, 327, 327, 327,
1314 327, 327, 822, 823, 1122, 1124, 864, 1125, 179, 1132,
1315 1139, 1143, 1145, 1149, 1150, 471, 179, 880, 183, 281,
1316 179, 1046, 179, 1062, 177, 1101, 182, 964, 987, 1135,
1317 208, 561, 1048, 1119, 182, 208, 925, 208, 182, 663,
1318 182, 1121, 593, 777, 184, 216, 216, 775, 214, 208,
1319 208, 179, 912, 214, 792, 214, 307, 224, 493, 438,
1320 327, 1097, 629, 183, 555, 1000, 810, 214, 214, 182,
1321 0, 183, 0, 0, 830, 183, 0, 183, 0, 0,
1322 0, 0, 0, 0, 0, 215, 0, 0, 0, 0,
1323 215, 0, 215, 0, 0, 327, 0, 0, 193, 222,
1324 222, 0, 0, 0, 215, 215, 183, 831, 832, 833,
1325 834, 835, 836, 837, 838, 839, 840, 0, 0, 0,
1326 0, 0, 0, 0, 0, 327, 327, 327, 327, 327,
1327 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
1328 327, 327, 0, 327, 195, 223, 223, 0, 0, 0,
1329 0, 0, 638, 0, 0, 0, 507, 0, 0, 0,
1330 177, 0, 0, 0, 510, 0, 511, 0, 0, -479,
1331 184, 0, 0, 0, 363, 0, 0, 0, 0, 135,
1332 136, 137, 138, 139, 140, 0, 0, 0, 703, 0,
1333 0, 0, 0, 0, 0, 141, 142, 143, 0, 0,
1334 0, 0, 0, 0, 0, 0, 327, 0, 0, 0,
1335 0, 0, 0, 0, 0, 184, 560, 0, 0, 144,
1336 484, 0, 0, 184, 193, 0, 0, 184, 0, 184,
1337 0, 780, 0, 0, 0, 570, 0, 216, 0, 0,
1338 0, 0, 216, 725, 216, 478, 0, 0, 179, 0,
1339 0, 710, 0, 0, 756, 0, 216, 216, 184, 0,
1340 153, 0, 0, 0, 0, 0, 182, 208, 0, 193,
1341 195, 611, 0, 0, 0, 0, 0, 193, 0, 0,
1342 0, 193, 0, 193, 0, 214, 0, 0, 0, 0,
1343 0, 222, 0, 0, 0, 0, 222, 0, 222, 570,
1344 0, 0, 0, 183, 0, 0, 809, 0, 0, 0,
1345 222, 222, 193, 0, 0, 195, 814, 327, 0, 0,
1346 0, 0, 215, 195, 325, 326, 156, 195, 0, 195,
1347 158, 0, 0, 0, 0, 780, 0, 223, 780, 0,
1348 0, 0, 223, 0, 223, 0, 0, 570, 0, 0,
1349 0, 0, 0, 0, 0, 0, 223, 223, 195, 0,
1350 0, 0, 0, 570, 659, 0, 0, 0, 0, 0,
1351 0, 327, 0, 0, 0, 0, 0, 0, 0, 0,
1352 923, 515, 0, 327, 179, 0, 929, 930, 931, 932,
1353 933, 934, 935, 936, 937, 938, 939, 0, 0, 0,
1354 0, 687, 182, 0, 0, 0, 0, 0, 0, 0,
1355 0, 0, 0, 0, 0, 0, 0, 0, 700, 0,
1356 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1357 0, 926, 0, 0, 0, 659, 709, 0, 780, 183,
1358 0, 0, 0, 0, 0, 0, 0, 659, 0, 0,
1359 0, 0, 0, 0, 198, 184, 0, 0, 0, 122,
1360 123, 124, 0, 0, 199, 127, 128, 129, 130, 131,
1361 132, 200, -427, -427, 216, 0, 0, 201, -427, 799,
1362 0, 0, 135, 136, 137, 138, 139, 140, 0, 0,
1363 808, 0, 0, 0, 0, -241, 0, 0, 141, 142,
1364 143, 0, 0, 0, 0, 0, 0, 0, 0, 193,
1365 0, 0, 0, 0, 0, 0, 0, 0, 484, 0,
1366 0, 0, 144, 0, 0, 0, 0, 0, 222, 0,
1367 0, 0, 0, 0, 0, 0, 780, 0, 0, 0,
1368 0, 0, 0, 0, -427, 146, 147, 148, 149, 150,
1369 151, 0, 0, 0, 0, 195, 0, 0, 0, 152,
1370 0, 0, 999, 153, 0, 0, 0, 0, 0, 0,
1371 0, 0, 0, 0, 223, 0, 0, 0, 0, 0,
1372 0, -1, 1, 0, 0, 0, 0, 0, 0, 0,
1373 0, 184, 0, 0, 0, 0, 0, 0, 0, 0,
1374 0, 0, 0, 0, 0, -241, 0, 0, 0, 0,
1375 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
1376 0, 0, 0, 0, 0, 3, 0, 154, 155, 156,
1377 202, 203, 0, 158, 0, 0, 0, 0, 0, 0,
1378 0, 0, 0, 0, 0, 193, 0, -349, -349, -349,
1379 0, 4, 0, 0, 0, 5, 6, 7, 0, 0,
1380 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
1381 9, 10, 0, 0, 0, 0, 0, 0, 0, 0,
1382 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1383 13, 195, 14, 15, 16, 17, 18, 19, 20, 21,
1384 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1385 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1386 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1387 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1388 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1389 70, 71, 72, 73, 74, 75, 76, 0, 77, 78,
1390 79, 80, -2, 1, 0, 0, 0, 0, 0, 0,
1391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1392 0, 0, 0, 0, 0, 0, -241, 0, 0, 0,
1393 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
1394 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
1395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1396 0, 0, 0, 0, 0, 0, 0, 0, -349, -349,
1397 -349, 0, 4, 0, 0, 0, 5, 6, 7, 0,
1398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1399 8, 9, 10, 0, 0, 0, 0, 0, 0, 0,
1400 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
1401 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1402 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1403 30, 31, 32, 33, 34, 35, 36, 37, 38, 0,
1404 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1405 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1406 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1407 69, 70, 71, 72, 73, 74, 75, 76, 121, 77,
1408 78, 79, 80, 122, 123, 124, 0, 125, 126, 127,
1409 128, 129, 130, 131, 132, 133, -479, 552, 0, 0,
1410 0, 134, 0, 0, 0, 0, 135, 136, 137, 138,
1411 139, 140, 0, 0, 0, 0, 0, 0, 0, -241,
1412 0, 3, 141, 142, 143, 0, 0, 0, 0, 0,
1413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1414 0, 0, 0, -349, -349, -349, 144, 4, 0, 0,
1415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1416 0, 0, 0, 0, 0, 0, 0, 0, 0, 146,
1417 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
1418 0, 0, 0, 152, 11, 12, 13, 153, 14, 15,
1419 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1420 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1421 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1422 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1423 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1424 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1425 74, 154, 155, 156, 157, 78, 79, 553, 121, 0,
1426 0, 0, 0, 122, 123, 124, 0, 125, 126, 127,
1427 128, 129, 130, 131, 132, 133, -479, 0, 0, 0,
1428 0, 134, 0, 0, 0, 0, 135, 136, 137, 138,
1429 139, 140, 0, 0, 0, 0, 0, 0, 0, -241,
1430 0, 0, 141, 142, 143, 0, 0, 0, 0, 0,
1431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1432 0, 0, 0, -241, -241, -241, 144, 0, 0, 0,
1433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1434 0, 0, 0, 0, 0, 0, 0, 0, 0, 146,
1435 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
1436 0, 0, 0, 152, -241, -241, -241, 153, -241, -241,
1437 -241, -241, -241, -241, -241, -241, -241, -241, 0, -241,
1438 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1439 -241, -241, -241, -241, 0, -241, -241, -241, -241, -241,
1440 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1441 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1442 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1443 -241, 154, 155, 156, 157, 78, -241, 158, 198, 0,
1444 0, 0, 0, 122, 123, 124, 0, 0, 199, 127,
1445 128, 129, 130, 131, 132, 200, -479, -483, 0, 0,
1446 0, 201, 0, 0, 0, 0, 135, 136, 137, 138,
1447 139, 140, 0, 0, 0, 0, 0, 0, 0, -241,
1448 0, 0, 141, 142, 143, 0, 0, 0, 0, 0,
1449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 0, -241, -241, -241, 144, 0, 0, 0,
1451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1452 0, 0, 0, 0, 0, 0, 0, 0, 0, 146,
1453 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
1454 0, 0, 0, 152, -241, -241, -241, 153, -241, -241,
1455 -241, -241, -241, -241, -241, -241, -241, -241, 0, -241,
1456 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1457 -241, -241, -241, -241, 0, -241, -241, -241, -241, -241,
1458 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1459 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1460 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1461 -241, 154, 155, 156, 202, 203, -241, 158, 121, 0,
1462 0, 0, 0, 122, 123, 124, 0, 125, 126, 127,
1463 128, 129, 130, 131, 132, 133, -479, 0, 0, 0,
1464 0, 134, 0, 0, 0, 0, 135, 136, 137, 138,
1465 139, 140, 0, 0, 0, 0, 0, 0, 0, -241,
1466 121, 0, 141, 142, 143, 122, 123, 124, 0, 125,
1467 126, 127, 128, 129, 130, 131, 132, 133, -479, 0,
1468 0, 0, 0, 134, 0, 0, 144, 0, 135, 136,
1469 137, 138, 139, 140, 0, 0, 0, 0, 0, 0,
1470 0, -241, 0, 0, 141, 142, 143, 0, 145, 146,
1471 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
1472 0, 0, 0, 152, 0, 0, 0, 153, 144, 0,
1473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1475 -454, 146, 147, 148, 149, 150, 151, 0, 0, 0,
1476 0, 0, 0, 0, 0, 152, 0, 0, 0, 153,
1477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1479 0, 154, 155, 156, 157, 78, 0, 158, 0, 198,
1480 0, 0, 0, 0, 122, 123, 124, 0, 0, 199,
1481 127, 128, 129, 130, 131, 132, 200, -479, -483, 0,
1482 0, 0, 201, 0, 0, 0, 0, 135, 136, 137,
1483 138, 139, 140, 154, 155, 156, 157, 78, 0, 158,
1484 -241, 121, 0, 141, 142, 143, 122, 123, 124, 0,
1485 125, 126, 127, 128, 129, 130, 131, 132, 133, -479,
1486 642, 0, 0, 0, 134, 0, 0, 144, 0, 135,
1487 136, 137, 138, 139, 140, 0, 0, 0, 0, 0,
1488 0, 0, -241, 0, 0, 141, 142, 143, 0, -423,
1489 146, 147, 148, 149, 150, 151, 0, 0, 0, 0,
1490 0, 0, 0, 0, 152, 0, 0, 0, 153, 144,
1491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493 0, 0, 146, 147, 148, 149, 150, 151, 0, 0,
1494 0, 0, 0, 0, 0, 0, 152, 0, 0, 0,
1495 153, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1497 0, 0, 154, 155, 156, 202, 203, 0, 158, 0,
1498 198, 0, 0, 0, 0, 122, 123, 124, 0, 0,
1499 199, 127, 128, 129, 130, 131, 132, 200, -479, -483,
1500 0, 0, 0, 201, 0, 0, 0, 0, 135, 136,
1501 137, 138, 139, 140, 154, 155, 156, 157, 78, 0,
1502 158, -241, 121, 0, 141, 142, 143, 122, 123, 124,
1503 0, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1504 -479, 0, 0, 0, 0, 134, 0, 0, 144, 0,
1505 135, 136, 137, 138, 139, 140, 0, 0, 0, 0,
1506 0, 0, 0, -241, 0, 0, 141, 142, 143, 0,
1507 0, 146, 147, 148, 149, 150, 151, 0, 0, 0,
1508 0, 0, 0, 0, 0, 152, 0, 0, 0, 153,
1509 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1511 0, 0, 0, 146, 147, 148, 149, 150, 151, 0,
1512 0, 0, 0, 0, 0, 0, 0, 152, 0, 0,
1513 0, 153, 0, 0, 0, 0, 0, 0, 0, 0,
1514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 154, 155, 156, 202, 203, 0, 158,
1516 0, 0, 0, 0, 122, 123, 124, 0, 125, 126,
1517 127, 128, 129, 130, 131, 132, 200, -479, 568, 0,
1518 0, 0, 363, 0, 0, 0, 0, 135, 136, 137,
1519 138, 139, 140, 0, 0, 154, 155, 156, 157, 78,
1520 -241, 158, 3, 141, 142, 143, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1522 0, 0, 0, 0, 0, 0, 0, 144, 4, 0,
1523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1525 146, 147, 148, 149, 150, 151, 0, 0, 0, 0,
1526 0, 0, 0, 0, 569, 11, 12, 13, 153, 14,
1527 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1528 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1529 34, 35, 36, 37, 38, 0, 39, 40, 41, 42,
1530 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1531 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1532 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1533 73, 74, 154, 155, 156, 157, 78, 79, 553, 122,
1534 123, 124, 0, 125, 126, 127, 128, 129, 130, 131,
1535 132, 200, -479, 643, 0, 0, 0, 363, 0, 0,
1536 0, 0, 135, 136, 137, 138, 139, 140, 0, 0,
1537 0, 0, 0, 0, 0, -241, 0, 3, 141, 142,
1538 143, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 144, 4, 0, 0, 0, 0, 0, 0,
1541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1542 0, 0, 0, 0, 0, 146, 147, 148, 149, 150,
1543 151, 0, 0, 0, 0, 0, 0, 0, 0, 152,
1544 11, 12, 13, 153, 14, 15, 16, 17, 18, 19,
1545 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1546 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1547 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1548 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1549 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1550 68, 69, 70, 71, 72, 73, 74, 154, 155, 156,
1551 157, 78, 79, 553, 122, 123, 124, 0, 125, 126,
1552 127, 128, 129, 130, 131, 132, 200, -479, 654, 0,
1553 0, 0, 363, 0, 0, 0, 0, 135, 136, 137,
1554 138, 139, 140, 0, 0, 0, 0, 0, 0, 0,
1555 -241, 0, 3, 141, 142, 143, 0, 0, 0, 0,
1556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1557 0, 0, 0, 0, 0, 0, 0, 144, 4, 0,
1558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1560 146, 147, 148, 149, 150, 151, 0, 0, 0, 0,
1561 0, 0, 0, 0, 655, 11, 12, 13, 153, 14,
1562 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1563 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1564 34, 35, 36, 37, 38, 0, 39, 40, 41, 42,
1565 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1566 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1567 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1568 73, 74, 154, 155, 156, 157, 78, 79, 553, 122,
1569 123, 124, 0, 125, 126, 127, 128, 129, 130, 131,
1570 132, 200, -479, 653, 0, 0, 0, 363, 0, 0,
1571 0, 0, 135, 136, 137, 138, 139, 140, 0, 0,
1572 0, 0, 0, 0, 0, 0, 0, 0, 141, 142,
1573 143, 122, 123, 124, 0, 125, 126, 127, 128, 129,
1574 130, 131, 132, 200, -479, 657, 0, 0, 0, 363,
1575 0, 0, 144, 0, 135, 136, 137, 138, 139, 140,
1576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1577 141, 142, 143, 0, 0, 146, 147, 148, 149, 150,
1578 151, 0, 0, 0, 0, 0, 0, 0, 0, 152,
1579 0, 0, 0, 153, 144, 0, 0, 0, 0, 0,
1580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1581 0, 0, 0, 0, 0, 0, 0, 146, 147, 148,
1582 149, 150, 151, 0, 0, 0, 0, 0, 0, 0,
1583 0, 658, 0, 0, 0, 153, 0, 0, 0, 0,
1584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1585 0, 0, 0, 0, 0, 0, 0, 154, 155, 156,
1586 157, 78, 0, 158, 0, 0, 0, 122, 123, 124,
1587 0, 125, 126, 127, 128, 129, 130, 131, 132, 200,
1588 -479, 708, 0, 0, 0, 363, 0, 0, 0, 0,
1589 135, 136, 137, 138, 139, 140, 0, 0, 0, 154,
1590 155, 156, 157, 78, 0, 158, 141, 142, 143, 122,
1591 123, 124, 0, 125, 126, 127, 128, 129, 130, 131,
1592 132, 200, -479, 761, 0, 0, 0, 363, 0, 0,
1593 144, 0, 135, 136, 137, 138, 139, 140, 0, 0,
1594 0, 0, 0, 0, 0, 0, 0, 0, 141, 142,
1595 143, 0, 0, 146, 147, 148, 149, 150, 151, 0,
1596 0, 0, 0, 0, 0, 0, 0, 152, 0, 0,
1597 0, 153, 144, 0, 0, 0, 0, 0, 0, 0,
1598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 0, 0, 0, 146, 147, 148, 149, 150,
1600 151, 0, 0, 0, 0, 0, 0, 0, 0, 152,
1601 0, 0, 0, 153, 0, 0, 0, 0, 0, 0,
1602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1603 0, 0, 0, 0, 0, 154, 155, 156, 157, 78,
1604 0, 158, 0, 0, 0, 122, 123, 124, 0, 125,
1605 126, 127, 128, 129, 130, 131, 132, 200, -479, 762,
1606 0, 0, 0, 363, 0, 0, 0, 0, 135, 136,
1607 137, 138, 139, 140, 0, 0, 0, 154, 155, 156,
1608 157, 78, 0, 158, 141, 142, 143, 122, 123, 124,
1609 0, 125, 126, 127, 128, 129, 130, 131, 132, 200,
1610 -479, 764, 0, 0, 0, 363, 0, 0, 144, 0,
1611 135, 136, 137, 138, 139, 140, 0, 0, 0, 0,
1612 0, 0, 0, 0, 0, 0, 141, 142, 143, 0,
1613 0, 146, 147, 148, 149, 150, 151, 0, 0, 0,
1614 0, 0, 0, 0, 0, 763, 0, 0, 0, 153,
1615 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1617 0, 0, 0, 146, 147, 148, 149, 150, 151, 0,
1618 0, 0, 0, 0, 0, 0, 0, 152, 0, 0,
1619 0, 153, 0, 0, 0, 0, 0, 0, 0, 0,
1620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1621 0, 0, 0, 154, 155, 156, 157, 78, 0, 158,
1622 0, 0, 0, 122, 123, 124, 0, 125, 126, 127,
1623 128, 129, 130, 131, 132, 200, -479, 881, 0, 0,
1624 0, 363, 0, 0, 0, 0, 135, 136, 137, 138,
1625 139, 140, 0, 0, 0, 154, 155, 156, 157, 78,
1626 0, 158, 141, 142, 143, 122, 123, 124, 0, 125,
1627 126, 127, 128, 129, 130, 131, 132, 200, -479, 0,
1628 0, 0, 0, 363, 0, 0, 144, 0, 135, 136,
1629 137, 138, 139, 140, 0, 0, 0, 0, 0, 0,
1630 0, 0, 0, 0, 141, 142, 143, 0, 0, 146,
1631 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
1632 0, 0, 0, 152, 0, 0, 0, 153, 144, 0,
1633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1634 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1635 0, 146, 147, 148, 149, 150, 151, 289, 0, 0,
1636 0, 0, 0, 0, 0, 152, 0, 0, 0, 153,
1637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1638 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
1639 0, 154, 155, 156, 157, 78, 0, 158, 0, 0,
1640 0, 0, 0, 0, 0, -349, -349, -349, 0, 4,
1641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1643 0, 0, 0, 154, 155, 156, 157, 78, 0, 158,
1644 0, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1645 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1646 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1647 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1648 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1649 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1650 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1651 72, 73, 74, 289, 0, 0, 0, 0, 79, 80,
1652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1653 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,
1654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1656 0, 0, 0, 0, 0, 4, 0, 0, 0, 0,
1657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1658 0, 0, -613, 0, 0, 0, 0, 0, 0, 0,
1659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1660 0, 0, 11, 12, 13, 0, 14, 15, 16, 17,
1661 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1662 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1663 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1664 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1665 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1666 66, 67, 68, 69, 70, 71, 72, 73, 74, 0,
1667 0, -111, 0, 0, 79, 80, -111, 0, 0, 0,
1668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1669 0, 0, 0, 0, 0, 0, 3, 0, 779, 0,
1670 0, 0, 0, 324, 0, 0, 0, 0, 135, 136,
1671 137, 138, 139, 140, 0, 0, 0, 0, 0, 0,
1672 0, 0, 4, 0, 141, 142, 143, 0, 0, 0,
1673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1674 0, 0, 0, 0, 0, 0, 0, 0, 144, 0,
1675 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
1676 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1677 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1678 30, 31, 32, 33, 34, 35, 36, 37, 38, 153,
1679 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1680 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1681 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1682 69, 70, 71, 72, 73, 74, 284, 0, 0, 0,
1683 0, 79, 80, 0, 0, 0, 0, 0, 0, 0,
1684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1685 0, 3, 0, 325, 326, 156, 0, 0, 0, 158,
1686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1687 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,
1688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1690 0, -482, 0, 0, 0, 0, 0, 0, 0, 0,
1691 0, 0, 0, 0, 11, 12, 13, 0, 14, 15,
1692 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1693 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1694 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1695 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1696 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1697 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1698 74, -241, 0, 0, 0, 0, 79, 80, 11, 12,
1699 13, 2, 14, 15, 16, 17, 18, 19, 20, 21,
1700 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1701 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1702 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1703 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1704 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1705 70, 71, 72, 73, 74, 0, 0, 0, 0, 0,
1706 79, 80, 0, 0, 11, 12, 13, 0, 14, 15,
1707 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1708 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1709 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1710 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1711 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1712 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1713 74, 75, 76, 324, 77, 78, 79, 80, 135, 136,
1714 137, 138, 139, 140, 0, 0, 0, 0, 0, 0,
1715 0, -241, 324, 513, 141, 142, 143, 135, 136, 137,
1716 138, 139, 140, 0, 0, 0, 0, 0, 0, 0,
1717 0, 0, 0, 141, 142, 143, 0, 324, 144, 0,
1718 617, 0, 135, 136, 137, 138, 139, 140, 0, 0,
1719 0, 0, 0, 0, 0, 0, 0, 144, 141, 142,
1720 143, 0, 324, 0, 0, 694, 0, 135, 136, 137,
1721 138, 139, 140, 0, 0, 0, 0, 0, 0, 153,
1722 0, 0, 144, 141, 142, 143, 0, 324, 924, 0,
1723 0, 0, 135, 136, 137, 138, 139, 140, 153, 0,
1724 0, 0, 0, 0, 0, 0, 324, 144, 141, 142,
1725 143, 135, 136, 137, 138, 139, 140, 0, 0, 0,
1726 0, 0, 0, 153, 0, 0, 0, 141, 142, 143,
1727 0, 352, 144, 0, 0, 0, 135, 136, 137, 138,
1728 139, 140, 0, 325, 326, 156, 0, 0, 153, 158,
1729 0, 144, 141, 142, 143, 0, 0, 0, 0, 0,
1730 0, 0, 325, 326, 156, 0, 0, 0, 158, 0,
1731 0, 0, 0, 153, 640, 0, 144, 0, 0, 135,
1732 136, 137, 138, 139, 140, 0, 0, 325, 326, 156,
1733 0, 0, 153, 158, 0, 141, 142, 143, 0, 711,
1734 0, 0, 0, 0, 712, 713, 714, 715, 716, 717,
1735 0, 0, 325, 326, 156, 0, 0, 153, 158, 144,
1736 141, 718, 719, 0, 0, 0, 0, 0, 0, 0,
1737 0, 0, 0, 0, 0, 0, 0, 325, 326, 156,
1738 0, 0, 0, 158, 720, 0, 0, 0, 0, 0,
1739 0, 0, 0, 0, 0, 0, 325, 326, 156, 0,
1740 153, 0, 158, 0, 0, 0, 0, 0, 0, 0,
1741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742 0, 325, 326, 156, 0, 153, 0, 158, 0, 0,
1743 0, -169, 0, 0, 0, 0, 0, 0, 0, 0,
1744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746 0, 0, 0, 0, 325, 326, 156, 0, 0, 0,
1747 158, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1748 0, 0, 0, 0, 0, 0, 0, 0, 0, 325,
1749 721, 722, 0, 0, 0, 723, 11, 12, 13, 0,
1750 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1751 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1752 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1753 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1754 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1755 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1756 72, 73, 74, 3, 0, 0, 0, 0, 79, 80,
1757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1758 0, 0, 0, 0, 0, -349, -349, -349, 0, 4,
1759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1762 0, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1763 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1764 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1765 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1766 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1767 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1768 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1769 72, 73, 74, 3, 0, 0, 0, 0, 79, 80,
1770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1771 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
1772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1775 0, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1776 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1777 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1778 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1779 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1780 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1781 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1782 72, 73, 74, -349, -349, -349, 0, 0, 79, 80,
1783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1786 0, 0, 0, 0, 11, 12, 13, 0, 14, 15,
1787 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1788 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1789 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1790 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1791 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1792 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1793 74, -621, -621, -621, 0, 0, 79, 80, 0, 0,
1794 0, 0, 0, 0, 0, 0, 0, 0, 0, -621,
1795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1797 0, 0, -621, -621, -621, 0, -621, -621, -621, -621,
1798 -621, -621, -621, -621, -621, -621, 0, -621, -621, -621,
1799 -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
1800 -621, -621, 0, -621, -621, -621, -621, -621, -621, -621,
1801 -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
1802 -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
1803 -621, -621, -621, -621, -621, -621, -621, -621, -621, 8,
1804 9, 10, 0, 0, -621, 0, 0, 0, 0, 0,
1805 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1806 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1807 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1808 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1809 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1810 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1811 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1812 70, 71, 72, 73, 74, 0, 0, 0, 0, 0,
1813 79, 80, 11, 12, 13, 0, 14, 15, 16, 17,
1814 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1815 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1816 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1817 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1818 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1819 66, 67, 68, 69, 70, 71, 72, 73, 74, 0,
1823 static const short yycheck[] = { 0,
1824 0, 105, 3, 460, 0, 361, 299, 615, 492, 363,
1825 11, 12, 2, 316, 410, 546, 470, 18, 19, 20,
1826 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1827 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1828 41, 42, 43, 122, 408, 648, 409, 48, 49, 50,
1829 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1830 61, 62, 63, 64, 88, 619, 8, 0, 443, 759,
1831 3, 398, 399, 318, 7, 406, 407, 785, 548, 0,
1832 81, 81, 26, 22, 18, 81, 442, 791, 400, 401,
1833 34, 648, 446, 648, 24, 34, 21, 24, 99, 702,
1834 25, 771, 779, 201, 105, 782, 18, 34, 206, 556,
1835 208, 5, 895, 114, 115, 116, 24, 648, 119, 9,
1836 10, 111, 220, 48, 49, 572, 34, 0, 26, 119,
1837 3, 25, 5, 134, 490, 21, 34, 18, 668, 28,
1838 141, 27, 696, 24, 28, 702, 600, 702, 81, 18,
1839 1011, 1012, 21, 34, 43, 402, 403, 404, 405, 43,
1840 81, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1841 74, 702, 105, 5, 889, 879, 6, 7, 648, 85,
1842 86, 34, 9, 10, 874, 968, 119, 84, 212, 85,
1843 86, 899, 134, 97, 18, 99, 129, 101, 21, 103,
1844 201, 8, 686, 107, 497, 882, 24, 1068, 81, 24,
1845 1071, 21, 27, 117, 118, 1074, 1075, 27, 888, 34,
1846 890, 575, 95, 96, 599, 98, 471, 8, 32, 33,
1847 174, 175, 702, 177, 178, 174, 175, 179, 177, 178,
1848 770, 19, 598, 773, 24, 187, 119, 174, 175, 191,
1849 41, 193, 648, 1114, 107, 108, 160, 5, 1117, 24,
1850 975, 26, 977, 5, 55, 621, 174, 175, 174, 175,
1851 5, 135, 136, 137, 138, 139, 140, 25, 174, 175,
1852 222, 282, 361, 25, 648, 648, 287, 580, 288, 24,
1853 25, 26, 595, 174, 175, 48, 49, 298, 299, 34,
1854 301, 302, 298, 980, 24, 913, 702, 25, 26, 5,
1855 28, 201, 796, 24, 315, 41, 206, 648, 208, 315,
1856 321, 648, 24, 324, 8, 43, 857, 134, 18, 55,
1857 220, 221, 625, 21, 25, 26, 648, 25, 702, 702,
1858 438, 342, 174, 175, 18, 177, 178, 640, 24, 23,
1859 26, 39, 342, 134, 24, 909, 959, 27, 34, 174,
1860 175, 176, 363, 442, 34, 298, 52, 53, 301, 302,
1861 303, 702, 179, 886, 201, 702, 889, 20, 21, 206,
1862 187, 208, 315, 287, 191, 24, 193, 291, 321, 859,
1863 702, 16, 648, 220, 221, 419, 174, 175, 179, 177,
1864 178, 648, 959, 16, 959, 309, 187, 26, 312, 28,
1865 191, 490, 193, 21, 34, 222, 320, 25, 711, 323,
1866 776, 26, 18, 28, 43, 21, 174, 175, 959, 177,
1867 178, 16, 174, 175, 434, 177, 178, 16, 43, 174,
1868 175, 222, 177, 178, 445, 1094, 702, 448, 15, 445,
1869 134, 1100, 448, 1102, 455, 702, 457, 22, 459, 460,
1870 856, 462, 975, 21, 977, 22, 467, 25, 341, 470,
1871 18, 21, 22, 21, 32, 33, 477, 419, 174, 175,
1872 470, 177, 178, 174, 175, 22, 177, 178, 489, 959,
1873 854, 492, 855, 494, 18, 179, 497, 21, 174, 175,
1874 29, 177, 178, 179, 174, 175, 176, 191, 39, 193,
1875 25, 26, 445, 28, 24, 448, 26, 844, 845, 598,
1876 40, 852, 853, 18, 34, 458, 21, 460, 43, 462,
1877 25, 395, 396, 397, 846, 847, 54, 470, 222, 443,
1878 473, 21, 621, 19, 477, 25, 450, 18, 438, 91,
1879 21, 455, 23, 457, 174, 175, 556, 177, 178, 18,
1880 22, 465, 21, 959, 918, 469, 1050, 18, 48, 49,
1881 21, 24, 572, 26, 1031, 91, 577, 18, 451, 580,
1882 21, 34, 686, 22, 517, 518, 85, 86, 18, 24,
1883 21, 21, 593, 594, 25, 959, 959, 18, 901, 600,
1884 21, 848, 849, 850, 851, 174, 175, 91, 177, 178,
1885 600, 438, 419, 555, 21, 19, 115, 116, 25, 620,
1886 18, 52, 53, 21, 625, 32, 33, 25, 959, 21,
1887 129, 495, 959, 25, 635, 636, 122, 21, 419, 640,
1888 20, 25, 8, 9, 10, 37, 38, 959, 91, 135,
1889 136, 137, 138, 139, 140, 27, 142, 143, 50, 51,
1890 963, 662, 21, 24, 48, 49, 25, 600, 21, 670,
1891 574, 672, 25, 37, 38, 676, 677, 1033, 981, 24,
1892 681, 26, 18, 986, 685, 686, 50, 51, 18, 21,
1893 21, 692, 796, 25, 25, 599, 686, 776, 1001, 32,
1894 33, 994, 692, 959, 1007, 37, 38, 963, 5, 24,
1895 711, 26, 959, 1016, 24, 619, 26, 18, 50, 51,
1896 624, 174, 175, 23, 177, 178, 24, 24, 25, 26,
1897 986, 1087, 811, 22, 607, 419, 18, 34, 671, 96,
1898 673, 98, 1045, 1046, 25, 1048, 650, 21, 555, 682,
1899 25, 25, 685, 686, 1010, 1011, 1012, 24, 24, 26,
1900 21, 28, 21, 1019, 25, 766, 25, 21, 134, 21,
1901 18, 25, 18, 25, 555, 1078, 43, 29, 24, 46,
1902 47, 52, 53, 29, 30, 31, 32, 33, 34, 48,
1903 49, 118, 21, 120, 795, 796, 25, 798, 21, 45,
1904 46, 47, 25, 18, 131, 132, 796, 134, 18, 136,
1905 137, 18, 1068, 179, 18, 1071, 1119, 42, 1074, 1075,
1906 724, 187, 149, 69, 1080, 191, 21, 193, 19, 21,
1907 25, 37, 38, 25, 21, 201, 202, 21, 25, 9,
1908 206, 25, 208, 8, 50, 51, 48, 49, 712, 713,
1909 714, 715, 716, 717, 220, 221, 222, 25, 1114, 20,
1910 21, 1117, 11, 796, 110, 21, 23, 20, 21, 25,
1911 24, 11, 26, 806, 28, 361, 24, 21, 21, 21,
1912 784, 25, 25, 25, 885, 24, 21, 21, 22, 43,
1913 25, 892, 46, 47, 87, 768, 174, 175, 771, 56,
1914 57, 58, 59, 60, 61, 62, 63, 64, 65, 395,
1915 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
1916 406, 407, 408, 409, 410, 21, 19, 21, 174, 175,
1917 176, 25, 21, 19, 180, 19, 25, 961, 19, 20,
1918 34, 35, 36, 24, 19, 27, 1050, 24, 29, 30,
1919 31, 32, 33, 34, 1033, 21, 442, 21, 21, 25,
1920 984, 25, 25, 87, 45, 46, 47, 132, 969, 134,
1921 25, 972, 21, 877, 878, 22, 972, 841, 842, 843,
1922 21, 885, 21, 21, 25, 18, 25, 988, 69, 990,
1923 24, 21, 988, 994, 927, 928, 997, 998, 988, 21,
1924 25, 1001, 21, 25, 490, 909, 25, 21, 1087, 495,
1925 22, 25, 378, 886, 179, 888, 889, 890, 11, 21,
1926 1099, 21, 187, 25, 27, 25, 191, 21, 193, 110,
1927 1031, 25, 24, 1034, 21, 24, 201, 25, 25, 972,
1928 34, 35, 36, 21, 21, 1045, 21, 25, 25, 1050,
1929 25, 24, 21, 419, 20, 988, 25, 222, 922, 21,
1930 546, 21, 548, 25, 550, 25, 970, 8, 9, 10,
1931 19, 23, 438, 77, 78, 79, 80, 81, 82, 83,
1932 1081, 20, 19, 1084, 5, 8, 9, 10, 1084, 23,
1933 66, 67, 68, 174, 175, 176, 27, 21, 1031, 180,
1934 20, 20, 975, 25, 977, 34, 35, 36, 34, 35,
1935 36, 24, 598, 71, 72, 73, 22, 1050, 71, 72,
1936 73, 24, 8, 9, 10, 25, 18, 25, 27, 18,
1937 25, 1035, 25, 27, 21, 621, 1069, 1070, 29, 1140,
1938 25, 355, 24, 39, 54, 1146, 71, 72, 73, 25,
1939 40, 1084, 77, 78, 79, 80, 81, 82, 83, 324,
1940 87, 25, 648, 24, 18, 379, 331, 332, 333, 334,
1941 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
1942 394, 25, 1115, 1116, 25, 25, 25, 352, 21, 555,
1943 18, 25, 18, 134, 21, 18, 178, 21, 363, 87,
1944 22, 415, 20, 87, 20, 25, 87, 87, 25, 87,
1945 189, 134, 71, 72, 73, 380, 702, 1121, 77, 78,
1946 79, 80, 81, 82, 83, 87, 712, 713, 714, 715,
1947 716, 717, 718, 719, 18, 20, 72, 20, 179, 27,
1948 87, 27, 87, 0, 0, 321, 187, 760, 134, 81,
1949 191, 985, 193, 1009, 419, 1060, 179, 874, 906, 1114,
1950 201, 426, 986, 1080, 187, 206, 825, 208, 191, 580,
1951 193, 1084, 462, 673, 8, 9, 10, 671, 201, 220,
1952 221, 222, 796, 206, 685, 208, 111, 10, 342, 221,
1953 776, 1054, 508, 179, 419, 959, 702, 220, 221, 222,
1954 -1, 187, -1, -1, 23, 191, -1, 193, -1, -1,
1955 -1, -1, -1, -1, -1, 201, -1, -1, -1, -1,
1956 206, -1, 208, -1, -1, 811, -1, -1, 8, 9,
1957 10, -1, -1, -1, 220, 221, 222, 56, 57, 58,
1958 59, 60, 61, 62, 63, 64, 65, -1, -1, -1,
1959 -1, -1, -1, -1, -1, 841, 842, 843, 844, 845,
1960 846, 847, 848, 849, 850, 851, 852, 853, 854, 855,
1961 856, 857, -1, 859, 8, 9, 10, -1, -1, -1,
1962 -1, -1, 547, -1, -1, -1, 365, -1, -1, -1,
1963 555, -1, -1, -1, 373, -1, 375, -1, -1, 19,
1964 134, -1, -1, -1, 24, -1, -1, -1, -1, 29,
1965 30, 31, 32, 33, 34, -1, -1, -1, 632, -1,
1966 -1, -1, -1, -1, -1, 45, 46, 47, -1, -1,
1967 -1, -1, -1, -1, -1, -1, 922, -1, -1, -1,
1968 -1, -1, -1, -1, -1, 179, 425, -1, -1, 69,
1969 615, -1, -1, 187, 134, -1, -1, 191, -1, 193,
1970 -1, 675, -1, -1, -1, 444, -1, 201, -1, -1,
1971 -1, -1, 206, 959, 208, 640, -1, -1, 419, -1,
1972 -1, 646, -1, -1, 649, -1, 220, 221, 222, -1,
1973 110, -1, -1, -1, -1, -1, 419, 438, -1, 179,
1974 134, 480, -1, -1, -1, -1, -1, 187, -1, -1,
1975 -1, 191, -1, 193, -1, 438, -1, -1, -1, -1,
1976 -1, 201, -1, -1, -1, -1, 206, -1, 208, 508,
1977 -1, -1, -1, 419, -1, -1, 701, -1, -1, -1,
1978 220, 221, 222, -1, -1, 179, 711, 1033, -1, -1,
1979 -1, -1, 438, 187, 174, 175, 176, 191, -1, 193,
1980 180, -1, -1, -1, -1, 779, -1, 201, 782, -1,
1981 -1, -1, 206, -1, 208, -1, -1, 556, -1, -1,
1982 -1, -1, -1, -1, -1, -1, 220, 221, 222, -1,
1983 -1, -1, -1, 572, 573, -1, -1, -1, -1, -1,
1984 -1, 1087, -1, -1, -1, -1, -1, -1, -1, -1,
1985 824, 825, -1, 1099, 555, -1, 830, 831, 832, 833,
1986 834, 835, 836, 837, 838, 839, 840, -1, -1, -1,
1987 -1, 610, 555, -1, -1, -1, -1, -1, -1, -1,
1988 -1, -1, -1, -1, -1, -1, -1, -1, 627, -1,
1989 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1990 -1, 826, -1, -1, -1, 644, 645, -1, 882, 555,
1991 -1, -1, -1, -1, -1, -1, -1, 656, -1, -1,
1992 -1, -1, -1, -1, 1, 419, -1, -1, -1, 6,
1993 7, 8, -1, -1, 11, 12, 13, 14, 15, 16,
1994 17, 18, 19, 20, 438, -1, -1, 24, 25, 688,
1995 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
1996 699, -1, -1, -1, -1, 42, -1, -1, 45, 46,
1997 47, -1, -1, -1, -1, -1, -1, -1, -1, 419,
1998 -1, -1, -1, -1, -1, -1, -1, -1, 913, -1,
1999 -1, -1, 69, -1, -1, -1, -1, -1, 438, -1,
2000 -1, -1, -1, -1, -1, -1, 980, -1, -1, -1,
2001 -1, -1, -1, -1, 91, 92, 93, 94, 95, 96,
2002 97, -1, -1, -1, -1, 419, -1, -1, -1, 106,
2003 -1, -1, 957, 110, -1, -1, -1, -1, -1, -1,
2004 -1, -1, -1, -1, 438, -1, -1, -1, -1, -1,
2005 -1, 0, 1, -1, -1, -1, -1, -1, -1, -1,
2006 -1, 555, -1, -1, -1, -1, -1, -1, -1, -1,
2007 -1, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2008 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
2009 -1, -1, -1, -1, -1, 44, -1, 174, 175, 176,
2010 177, 178, -1, 180, -1, -1, -1, -1, -1, -1,
2011 -1, -1, -1, -1, -1, 555, -1, 66, 67, 68,
2012 -1, 70, -1, -1, -1, 74, 75, 76, -1, -1,
2013 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2014 89, 90, -1, -1, -1, -1, -1, -1, -1, -1,
2015 -1, -1, -1, -1, -1, -1, -1, -1, 107, 108,
2016 109, 555, 111, 112, 113, 114, 115, 116, 117, 118,
2017 119, 120, -1, 122, 123, 124, 125, 126, 127, 128,
2018 129, 130, 131, 132, 133, 134, 135, 136, -1, 138,
2019 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2020 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2021 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2022 169, 170, 171, 172, 173, 174, 175, -1, 177, 178,
2023 179, 180, 0, 1, -1, -1, -1, -1, -1, -1,
2024 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2025 -1, -1, -1, -1, -1, -1, 24, -1, -1, -1,
2026 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
2027 -1, -1, -1, -1, -1, -1, 44, -1, -1, -1,
2028 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2029 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
2030 68, -1, 70, -1, -1, -1, 74, 75, 76, -1,
2031 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2032 88, 89, 90, -1, -1, -1, -1, -1, -1, -1,
2033 -1, -1, -1, -1, -1, -1, -1, -1, -1, 107,
2034 108, 109, -1, 111, 112, 113, 114, 115, 116, 117,
2035 118, 119, 120, -1, 122, 123, 124, 125, 126, 127,
2036 128, 129, 130, 131, 132, 133, 134, 135, 136, -1,
2037 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2038 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2039 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2040 168, 169, 170, 171, 172, 173, 174, 175, 1, 177,
2041 178, 179, 180, 6, 7, 8, -1, 10, 11, 12,
2042 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2043 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2044 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2045 -1, 44, 45, 46, 47, -1, -1, -1, -1, -1,
2046 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2047 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
2048 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2049 -1, -1, -1, -1, -1, -1, -1, -1, -1, 92,
2050 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2051 -1, -1, -1, 106, 107, 108, 109, 110, 111, 112,
2052 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2053 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2054 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2055 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2056 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2057 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2058 173, 174, 175, 176, 177, 178, 179, 180, 1, -1,
2059 -1, -1, -1, 6, 7, 8, -1, 10, 11, 12,
2060 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2061 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2062 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2063 -1, -1, 45, 46, 47, -1, -1, -1, -1, -1,
2064 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2065 -1, -1, -1, 66, 67, 68, 69, -1, -1, -1,
2066 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2067 -1, -1, -1, -1, -1, -1, -1, -1, -1, 92,
2068 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2069 -1, -1, -1, 106, 107, 108, 109, 110, 111, 112,
2070 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2071 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2072 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2073 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2074 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2075 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2076 173, 174, 175, 176, 177, 178, 179, 180, 1, -1,
2077 -1, -1, -1, 6, 7, 8, -1, -1, 11, 12,
2078 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2079 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2080 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2081 -1, -1, 45, 46, 47, -1, -1, -1, -1, -1,
2082 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2083 -1, -1, -1, 66, 67, 68, 69, -1, -1, -1,
2084 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2085 -1, -1, -1, -1, -1, -1, -1, -1, -1, 92,
2086 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2087 -1, -1, -1, 106, 107, 108, 109, 110, 111, 112,
2088 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2089 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2090 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2091 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2092 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2093 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2094 173, 174, 175, 176, 177, 178, 179, 180, 1, -1,
2095 -1, -1, -1, 6, 7, 8, -1, 10, 11, 12,
2096 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2097 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2098 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2099 1, -1, 45, 46, 47, 6, 7, 8, -1, 10,
2100 11, 12, 13, 14, 15, 16, 17, 18, 19, -1,
2101 -1, -1, -1, 24, -1, -1, 69, -1, 29, 30,
2102 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2103 -1, 42, -1, -1, 45, 46, 47, -1, 91, 92,
2104 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2105 -1, -1, -1, 106, -1, -1, -1, 110, 69, -1,
2106 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2107 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2108 91, 92, 93, 94, 95, 96, 97, -1, -1, -1,
2109 -1, -1, -1, -1, -1, 106, -1, -1, -1, 110,
2110 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2111 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2112 -1, 174, 175, 176, 177, 178, -1, 180, -1, 1,
2113 -1, -1, -1, -1, 6, 7, 8, -1, -1, 11,
2114 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2115 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2116 32, 33, 34, 174, 175, 176, 177, 178, -1, 180,
2117 42, 1, -1, 45, 46, 47, 6, 7, 8, -1,
2118 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2119 20, -1, -1, -1, 24, -1, -1, 69, -1, 29,
2120 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2121 -1, -1, 42, -1, -1, 45, 46, 47, -1, 91,
2122 92, 93, 94, 95, 96, 97, -1, -1, -1, -1,
2123 -1, -1, -1, -1, 106, -1, -1, -1, 110, 69,
2124 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2125 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2126 -1, -1, 92, 93, 94, 95, 96, 97, -1, -1,
2127 -1, -1, -1, -1, -1, -1, 106, -1, -1, -1,
2128 110, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2129 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2130 -1, -1, 174, 175, 176, 177, 178, -1, 180, -1,
2131 1, -1, -1, -1, -1, 6, 7, 8, -1, -1,
2132 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2133 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2134 31, 32, 33, 34, 174, 175, 176, 177, 178, -1,
2135 180, 42, 1, -1, 45, 46, 47, 6, 7, 8,
2136 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2137 19, -1, -1, -1, -1, 24, -1, -1, 69, -1,
2138 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2139 -1, -1, -1, 42, -1, -1, 45, 46, 47, -1,
2140 -1, 92, 93, 94, 95, 96, 97, -1, -1, -1,
2141 -1, -1, -1, -1, -1, 106, -1, -1, -1, 110,
2142 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2143 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2144 -1, -1, -1, 92, 93, 94, 95, 96, 97, -1,
2145 -1, -1, -1, -1, -1, -1, -1, 106, -1, -1,
2146 -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
2147 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2148 -1, -1, -1, 174, 175, 176, 177, 178, -1, 180,
2149 -1, -1, -1, -1, 6, 7, 8, -1, 10, 11,
2150 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2151 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2152 32, 33, 34, -1, -1, 174, 175, 176, 177, 178,
2153 42, 180, 44, 45, 46, 47, -1, -1, -1, -1,
2154 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2155 -1, -1, -1, -1, -1, -1, -1, 69, 70, -1,
2156 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2157 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2158 92, 93, 94, 95, 96, 97, -1, -1, -1, -1,
2159 -1, -1, -1, -1, 106, 107, 108, 109, 110, 111,
2160 112, 113, 114, 115, 116, 117, 118, 119, 120, -1,
2161 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2162 132, 133, 134, 135, 136, -1, 138, 139, 140, 141,
2163 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2164 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2165 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2166 172, 173, 174, 175, 176, 177, 178, 179, 180, 6,
2167 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2168 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2169 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2170 -1, -1, -1, -1, -1, 42, -1, 44, 45, 46,
2171 47, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2172 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2173 -1, -1, 69, 70, -1, -1, -1, -1, -1, -1,
2174 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2175 -1, -1, -1, -1, -1, 92, 93, 94, 95, 96,
2176 97, -1, -1, -1, -1, -1, -1, -1, -1, 106,
2177 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2178 117, 118, 119, 120, -1, 122, 123, 124, 125, 126,
2179 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2180 -1, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2181 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2182 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2183 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2184 177, 178, 179, 180, 6, 7, 8, -1, 10, 11,
2185 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2186 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2187 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2188 42, -1, 44, 45, 46, 47, -1, -1, -1, -1,
2189 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2190 -1, -1, -1, -1, -1, -1, -1, 69, 70, -1,
2191 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2192 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2193 92, 93, 94, 95, 96, 97, -1, -1, -1, -1,
2194 -1, -1, -1, -1, 106, 107, 108, 109, 110, 111,
2195 112, 113, 114, 115, 116, 117, 118, 119, 120, -1,
2196 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2197 132, 133, 134, 135, 136, -1, 138, 139, 140, 141,
2198 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2199 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2200 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2201 172, 173, 174, 175, 176, 177, 178, 179, 180, 6,
2202 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2203 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2204 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2205 -1, -1, -1, -1, -1, -1, -1, -1, 45, 46,
2206 47, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2207 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2208 -1, -1, 69, -1, 29, 30, 31, 32, 33, 34,
2209 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2210 45, 46, 47, -1, -1, 92, 93, 94, 95, 96,
2211 97, -1, -1, -1, -1, -1, -1, -1, -1, 106,
2212 -1, -1, -1, 110, 69, -1, -1, -1, -1, -1,
2213 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2214 -1, -1, -1, -1, -1, -1, -1, 92, 93, 94,
2215 95, 96, 97, -1, -1, -1, -1, -1, -1, -1,
2216 -1, 106, -1, -1, -1, 110, -1, -1, -1, -1,
2217 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2218 -1, -1, -1, -1, -1, -1, -1, 174, 175, 176,
2219 177, 178, -1, 180, -1, -1, -1, 6, 7, 8,
2220 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2221 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2222 29, 30, 31, 32, 33, 34, -1, -1, -1, 174,
2223 175, 176, 177, 178, -1, 180, 45, 46, 47, 6,
2224 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2225 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2226 69, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2227 -1, -1, -1, -1, -1, -1, -1, -1, 45, 46,
2228 47, -1, -1, 92, 93, 94, 95, 96, 97, -1,
2229 -1, -1, -1, -1, -1, -1, -1, 106, -1, -1,
2230 -1, 110, 69, -1, -1, -1, -1, -1, -1, -1,
2231 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2232 -1, -1, -1, -1, -1, 92, 93, 94, 95, 96,
2233 97, -1, -1, -1, -1, -1, -1, -1, -1, 106,
2234 -1, -1, -1, 110, -1, -1, -1, -1, -1, -1,
2235 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2236 -1, -1, -1, -1, -1, 174, 175, 176, 177, 178,
2237 -1, 180, -1, -1, -1, 6, 7, 8, -1, 10,
2238 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2239 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2240 31, 32, 33, 34, -1, -1, -1, 174, 175, 176,
2241 177, 178, -1, 180, 45, 46, 47, 6, 7, 8,
2242 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2243 19, 20, -1, -1, -1, 24, -1, -1, 69, -1,
2244 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2245 -1, -1, -1, -1, -1, -1, 45, 46, 47, -1,
2246 -1, 92, 93, 94, 95, 96, 97, -1, -1, -1,
2247 -1, -1, -1, -1, -1, 106, -1, -1, -1, 110,
2248 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2249 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2250 -1, -1, -1, 92, 93, 94, 95, 96, 97, -1,
2251 -1, -1, -1, -1, -1, -1, -1, 106, -1, -1,
2252 -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
2253 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2254 -1, -1, -1, 174, 175, 176, 177, 178, -1, 180,
2255 -1, -1, -1, 6, 7, 8, -1, 10, 11, 12,
2256 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2257 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2258 33, 34, -1, -1, -1, 174, 175, 176, 177, 178,
2259 -1, 180, 45, 46, 47, 6, 7, 8, -1, 10,
2260 11, 12, 13, 14, 15, 16, 17, 18, 19, -1,
2261 -1, -1, -1, 24, -1, -1, 69, -1, 29, 30,
2262 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2263 -1, -1, -1, -1, 45, 46, 47, -1, -1, 92,
2264 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2265 -1, -1, -1, 106, -1, -1, -1, 110, 69, -1,
2266 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2267 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2268 -1, 92, 93, 94, 95, 96, 97, 18, -1, -1,
2269 -1, -1, -1, -1, -1, 106, -1, -1, -1, 110,
2270 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2271 -1, -1, -1, 44, -1, -1, -1, -1, -1, -1,
2272 -1, 174, 175, 176, 177, 178, -1, 180, -1, -1,
2273 -1, -1, -1, -1, -1, 66, 67, 68, -1, 70,
2274 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2275 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2276 -1, -1, -1, 174, 175, 176, 177, 178, -1, 180,
2277 -1, -1, -1, -1, -1, -1, 107, 108, 109, -1,
2278 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2279 -1, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2280 131, 132, 133, 134, 135, 136, -1, 138, 139, 140,
2281 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2282 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2283 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2284 171, 172, 173, 18, -1, -1, -1, -1, 179, 180,
2285 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2286 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
2287 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2288 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2289 -1, -1, -1, -1, -1, 70, -1, -1, -1, -1,
2290 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2291 -1, -1, 87, -1, -1, -1, -1, -1, -1, -1,
2292 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2293 -1, -1, 107, 108, 109, -1, 111, 112, 113, 114,
2294 115, 116, 117, 118, 119, 120, -1, 122, 123, 124,
2295 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2296 135, 136, -1, 138, 139, 140, 141, 142, 143, 144,
2297 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2298 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2299 165, 166, 167, 168, 169, 170, 171, 172, 173, -1,
2300 -1, 19, -1, -1, 179, 180, 24, -1, -1, -1,
2301 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2302 -1, -1, -1, -1, -1, -1, 44, -1, 19, -1,
2303 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2304 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2305 -1, -1, 70, -1, 45, 46, 47, -1, -1, -1,
2306 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2307 -1, -1, -1, -1, -1, -1, -1, -1, 69, -1,
2308 -1, -1, -1, -1, -1, -1, -1, -1, -1, 107,
2309 108, 109, -1, 111, 112, 113, 114, 115, 116, 117,
2310 118, 119, 120, -1, 122, 123, 124, 125, 126, 127,
2311 128, 129, 130, 131, 132, 133, 134, 135, 136, 110,
2312 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2313 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2314 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2315 168, 169, 170, 171, 172, 173, 19, -1, -1, -1,
2316 -1, 179, 180, -1, -1, -1, -1, -1, -1, -1,
2317 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2318 -1, 44, -1, 174, 175, 176, -1, -1, -1, 180,
2319 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2320 -1, -1, -1, -1, -1, -1, -1, 70, -1, -1,
2321 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2322 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2323 -1, 20, -1, -1, -1, -1, -1, -1, -1, -1,
2324 -1, -1, -1, -1, 107, 108, 109, -1, 111, 112,
2325 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2326 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2327 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2328 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2329 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2330 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2331 173, 24, -1, -1, -1, -1, 179, 180, 107, 108,
2332 109, 34, 111, 112, 113, 114, 115, 116, 117, 118,
2333 119, 120, -1, 122, 123, 124, 125, 126, 127, 128,
2334 129, 130, 131, 132, 133, 134, 135, 136, -1, 138,
2335 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2336 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2337 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2338 169, 170, 171, 172, 173, -1, -1, -1, -1, -1,
2339 179, 180, -1, -1, 107, 108, 109, -1, 111, 112,
2340 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2341 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2342 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2343 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2344 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2345 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2346 173, 174, 175, 24, 177, 178, 179, 180, 29, 30,
2347 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2348 -1, 42, 24, 25, 45, 46, 47, 29, 30, 31,
2349 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2350 -1, -1, -1, 45, 46, 47, -1, 24, 69, -1,
2351 27, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2352 -1, -1, -1, -1, -1, -1, -1, 69, 45, 46,
2353 47, -1, 24, -1, -1, 27, -1, 29, 30, 31,
2354 32, 33, 34, -1, -1, -1, -1, -1, -1, 110,
2355 -1, -1, 69, 45, 46, 47, -1, 24, 25, -1,
2356 -1, -1, 29, 30, 31, 32, 33, 34, 110, -1,
2357 -1, -1, -1, -1, -1, -1, 24, 69, 45, 46,
2358 47, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2359 -1, -1, -1, 110, -1, -1, -1, 45, 46, 47,
2360 -1, 24, 69, -1, -1, -1, 29, 30, 31, 32,
2361 33, 34, -1, 174, 175, 176, -1, -1, 110, 180,
2362 -1, 69, 45, 46, 47, -1, -1, -1, -1, -1,
2363 -1, -1, 174, 175, 176, -1, -1, -1, 180, -1,
2364 -1, -1, -1, 110, 24, -1, 69, -1, -1, 29,
2365 30, 31, 32, 33, 34, -1, -1, 174, 175, 176,
2366 -1, -1, 110, 180, -1, 45, 46, 47, -1, 24,
2367 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2368 -1, -1, 174, 175, 176, -1, -1, 110, 180, 69,
2369 45, 46, 47, -1, -1, -1, -1, -1, -1, -1,
2370 -1, -1, -1, -1, -1, -1, -1, 174, 175, 176,
2371 -1, -1, -1, 180, 69, -1, -1, -1, -1, -1,
2372 -1, -1, -1, -1, -1, -1, 174, 175, 176, -1,
2373 110, -1, 180, -1, -1, -1, -1, -1, -1, -1,
2374 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2375 -1, 174, 175, 176, -1, 110, -1, 180, -1, -1,
2376 -1, 42, -1, -1, -1, -1, -1, -1, -1, -1,
2377 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2378 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2379 -1, -1, -1, -1, 174, 175, 176, -1, -1, -1,
2380 180, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2381 -1, -1, -1, -1, -1, -1, -1, -1, -1, 174,
2382 175, 176, -1, -1, -1, 180, 107, 108, 109, -1,
2383 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2384 -1, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2385 131, 132, 133, 134, 135, 136, -1, 138, 139, 140,
2386 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2387 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2388 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2389 171, 172, 173, 44, -1, -1, -1, -1, 179, 180,
2390 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2391 -1, -1, -1, -1, -1, 66, 67, 68, -1, 70,
2392 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2393 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2394 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2395 -1, -1, -1, -1, -1, -1, 107, 108, 109, -1,
2396 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2397 -1, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2398 131, 132, 133, 134, 135, 136, -1, 138, 139, 140,
2399 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2400 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2401 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2402 171, 172, 173, 44, -1, -1, -1, -1, 179, 180,
2403 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2404 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2405 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2406 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2407 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2408 -1, -1, -1, -1, -1, -1, 107, 108, 109, -1,
2409 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2410 -1, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2411 131, 132, 133, 134, 135, 136, -1, 138, 139, 140,
2412 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2413 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2414 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2415 171, 172, 173, 66, 67, 68, -1, -1, 179, 180,
2416 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2417 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2418 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2419 -1, -1, -1, -1, 107, 108, 109, -1, 111, 112,
2420 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2421 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2422 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2423 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2424 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2425 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2426 173, 66, 67, 68, -1, -1, 179, 180, -1, -1,
2427 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
2428 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2429 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2430 -1, -1, 107, 108, 109, -1, 111, 112, 113, 114,
2431 115, 116, 117, 118, 119, 120, -1, 122, 123, 124,
2432 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2433 135, 136, -1, 138, 139, 140, 141, 142, 143, 144,
2434 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2435 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2436 165, 166, 167, 168, 169, 170, 171, 172, 173, 88,
2437 89, 90, -1, -1, 179, -1, -1, -1, -1, -1,
2438 -1, -1, -1, -1, -1, -1, -1, -1, 107, 108,
2439 109, -1, 111, 112, 113, 114, 115, 116, 117, 118,
2440 119, 120, -1, 122, 123, 124, 125, 126, 127, 128,
2441 129, 130, 131, 132, 133, 134, 135, 136, -1, 138,
2442 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2443 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2444 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2445 169, 170, 171, 172, 173, -1, -1, -1, -1, -1,
2446 179, 180, 107, 108, 109, -1, 111, 112, 113, 114,
2447 115, 116, 117, 118, 119, 120, -1, 122, 123, 124,
2448 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2449 135, 136, -1, 138, 139, 140, 141, 142, 143, 144,
2450 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2451 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2452 165, 166, 167, 168, 169, 170, 171, 172, 173, -1,
2453 -1, -1, -1, -1, 179, 180
2455 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2456 #line 3 "/af9/evans/bison-1.28/share/bison.simple"
2457 /* This file comes from bison-1.28. */
2459 /* Skeleton output parser for bison,
2460 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2462 This program is free software; you can redistribute it and/or modify
2463 it under the terms of the GNU General Public License as published by
2464 the Free Software Foundation; either version 2, or (at your option)
2467 This program is distributed in the hope that it will be useful,
2468 but WITHOUT ANY WARRANTY; without even the implied warranty of
2469 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2470 GNU General Public License for more details.
2472 You should have received a copy of the GNU General Public License
2473 along with this program; if not, write to the Free Software
2474 Foundation, Inc., 59 Temple Place - Suite 330,
2475 Boston, MA 02111-1307, USA. */
2477 /* As a special exception, when this file is copied by Bison into a
2478 Bison output file, you may use that output file without restriction.
2479 This special exception was added by the Free Software Foundation
2480 in version 1.24 of Bison. */
2482 /* This is the parser code that is written into each bison parser
2483 when the %semantic_parser declaration is not specified in the grammar.
2484 It was written by Richard Stallman by simplifying the hairy parser
2485 used when %semantic_parser is specified. */
2487 #ifndef YYSTACK_USE_ALLOCA
2489 #define YYSTACK_USE_ALLOCA
2490 #else /* alloca not defined */
2492 #define YYSTACK_USE_ALLOCA
2493 #define alloca __builtin_alloca
2494 #else /* not GNU C. */
2495 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
2496 #define YYSTACK_USE_ALLOCA
2498 #else /* not sparc */
2499 /* We think this test detects Watcom and Microsoft C. */
2500 /* This used to test MSDOS, but that is a bad idea
2501 since that symbol is in the user namespace. */
2502 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
2503 #if 0 /* No need for malloc.h, which pollutes the namespace;
2504 instead, just don't use alloca. */
2507 #else /* not MSDOS, or __TURBOC__ */
2509 /* I don't know what this was needed for, but it pollutes the namespace.
2510 So I turned it off. rms, 2 May 1997. */
2511 /* #include <malloc.h> */
2513 #define YYSTACK_USE_ALLOCA
2514 #else /* not MSDOS, or __TURBOC__, or _AIX */
2516 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
2517 and on HPUX 10. Eventually we can turn this on. */
2518 #define YYSTACK_USE_ALLOCA
2519 #define alloca __builtin_alloca
2522 #endif /* not _AIX */
2523 #endif /* not MSDOS, or __TURBOC__ */
2524 #endif /* not sparc */
2525 #endif /* not GNU C */
2526 #endif /* alloca not defined */
2527 #endif /* YYSTACK_USE_ALLOCA not defined */
2529 #ifdef YYSTACK_USE_ALLOCA
2530 #define YYSTACK_ALLOC alloca
2532 #define YYSTACK_ALLOC malloc
2535 /* Note: there must be only one dollar sign in this file.
2536 It is replaced by the list of actions, each action
2537 as one case of the switch. */
2539 #define yyerrok (yyerrstatus = 0)
2540 #define yyclearin (yychar = YYEMPTY)
2543 #define YYACCEPT goto yyacceptlab
2544 #define YYABORT goto yyabortlab
2545 #define YYERROR goto yyerrlab1
2546 /* Like YYERROR except do call yyerror.
2547 This remains here temporarily to ease the
2548 transition to the new meaning of YYERROR, for GCC.
2549 Once GCC version 2 has supplanted version 1, this can go. */
2550 #define YYFAIL goto yyerrlab
2551 #define YYRECOVERING() (!!yyerrstatus)
2552 #define YYBACKUP(token, value) \
2554 if (yychar == YYEMPTY && yylen == 1) \
2555 { yychar = (token), yylval = (value); \
2556 yychar1 = YYTRANSLATE (yychar); \
2561 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2565 #define YYERRCODE 256
2568 #define YYLEX yylex()
2574 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2576 #define YYLEX yylex(&yylval, &yylloc)
2578 #else /* not YYLSP_NEEDED */
2580 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2582 #define YYLEX yylex(&yylval)
2584 #endif /* not YYLSP_NEEDED */
2587 /* If nonreentrant, generate the variables here */
2591 int yychar; /* the lookahead symbol */
2592 YYSTYPE yylval; /* the semantic value of the */
2593 /* lookahead symbol */
2596 YYLTYPE yylloc; /* location data for the lookahead */
2600 int yynerrs; /* number of parse errors so far */
2601 #endif /* not YYPURE */
2604 int yydebug; /* nonzero means print parse trace */
2605 /* Since this is uninitialized, it does not stop multiple parsers
2609 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2612 #define YYINITDEPTH 200
2615 /* YYMAXDEPTH is the maximum size the stacks can grow to
2616 (effective only if the built-in stack extension method is used). */
2623 #define YYMAXDEPTH 10000
2626 /* Define __yy_memcpy. Note that the size argument
2627 should be passed with type unsigned int, because that is what the non-GCC
2628 definitions require. With GCC, __builtin_memcpy takes an arg
2629 of type size_t, but it can handle unsigned int. */
2631 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2632 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2633 #else /* not GNU C or C++ */
2636 /* This is the most reliable way to avoid incompatibilities
2637 in available built-in functions on various systems. */
2639 __yy_memcpy (to, from, count)
2644 register char *f = from;
2645 register char *t = to;
2646 register int i = count;
2652 #else /* __cplusplus */
2654 /* This is the most reliable way to avoid incompatibilities
2655 in available built-in functions on various systems. */
2657 __yy_memcpy (char *to, char *from, unsigned int count)
2659 register char *t = to;
2660 register char *f = from;
2661 register int i = count;
2670 #line 217 "/af9/evans/bison-1.28/share/bison.simple"
2672 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2673 into yyparse. The argument should have type void *.
2674 It should actually point to an object.
2675 Grammar actions can access the variable by casting it
2676 to the proper pointer type. */
2678 #ifdef YYPARSE_PARAM
2680 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2681 #define YYPARSE_PARAM_DECL
2682 #else /* not __cplusplus */
2683 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2684 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2685 #endif /* not __cplusplus */
2686 #else /* not YYPARSE_PARAM */
2687 #define YYPARSE_PARAM_ARG
2688 #define YYPARSE_PARAM_DECL
2689 #endif /* not YYPARSE_PARAM */
2691 /* Prevent warning if -Wstrict-prototypes. */
2693 #ifdef YYPARSE_PARAM
2694 int yyparse (void *);
2701 yyparse(YYPARSE_PARAM_ARG)
2704 register int yystate;
2706 register short *yyssp;
2707 register YYSTYPE *yyvsp;
2708 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2709 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2711 short yyssa[YYINITDEPTH]; /* the state stack */
2712 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2714 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2715 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2718 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2719 YYLTYPE *yyls = yylsa;
2722 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2724 #define YYPOPSTACK (yyvsp--, yyssp--)
2727 int yystacksize = YYINITDEPTH;
2728 int yyfree_stacks = 0;
2739 YYSTYPE yyval; /* the variable used to return */
2740 /* semantic values from the action */
2747 fprintf(stderr, "Starting parse\n");
2753 yychar = YYEMPTY; /* Cause a token to be read. */
2755 /* Initialize stack pointers.
2756 Waste one element of value and location stack
2757 so that they stay on the same level as the state stack.
2758 The wasted elements are never initialized. */
2766 /* Push a new state, which is found in yystate . */
2767 /* In all cases, when you get here, the value and location stacks
2768 have just been pushed. so pushing a state here evens the stacks. */
2773 if (yyssp >= yyss + yystacksize - 1)
2775 /* Give user a chance to reallocate the stack */
2776 /* Use copies of these so that the &'s don't force the real ones into memory. */
2777 YYSTYPE *yyvs1 = yyvs;
2778 short *yyss1 = yyss;
2780 YYLTYPE *yyls1 = yyls;
2783 /* Get the current used size of the three stacks, in elements. */
2784 int size = yyssp - yyss + 1;
2787 /* Each stack pointer address is followed by the size of
2788 the data in use in that stack, in bytes. */
2790 /* This used to be a conditional around just the two extra args,
2791 but that might be undefined if yyoverflow is a macro. */
2792 yyoverflow("parser stack overflow",
2793 &yyss1, size * sizeof (*yyssp),
2794 &yyvs1, size * sizeof (*yyvsp),
2795 &yyls1, size * sizeof (*yylsp),
2798 yyoverflow("parser stack overflow",
2799 &yyss1, size * sizeof (*yyssp),
2800 &yyvs1, size * sizeof (*yyvsp),
2804 yyss = yyss1; yyvs = yyvs1;
2808 #else /* no yyoverflow */
2809 /* Extend the stack our own way. */
2810 if (yystacksize >= YYMAXDEPTH)
2812 yyerror("parser stack overflow");
2824 if (yystacksize > YYMAXDEPTH)
2825 yystacksize = YYMAXDEPTH;
2826 #ifndef YYSTACK_USE_ALLOCA
2829 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
2830 __yy_memcpy ((char *)yyss, (char *)yyss1,
2831 size * (unsigned int) sizeof (*yyssp));
2832 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
2833 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
2834 size * (unsigned int) sizeof (*yyvsp));
2836 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
2837 __yy_memcpy ((char *)yyls, (char *)yyls1,
2838 size * (unsigned int) sizeof (*yylsp));
2840 #endif /* no yyoverflow */
2842 yyssp = yyss + size - 1;
2843 yyvsp = yyvs + size - 1;
2845 yylsp = yyls + size - 1;
2850 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2853 if (yyssp >= yyss + yystacksize - 1)
2859 fprintf(stderr, "Entering state %d\n", yystate);
2865 /* Do appropriate processing given the current state. */
2866 /* Read a lookahead token if we need one and don't already have one. */
2869 /* First try to decide what to do without reference to lookahead token. */
2871 yyn = yypact[yystate];
2875 /* Not known => get a lookahead token if don't already have one. */
2877 /* yychar is either YYEMPTY or YYEOF
2878 or a valid token in external form. */
2880 if (yychar == YYEMPTY)
2884 fprintf(stderr, "Reading a token: ");
2889 /* Convert token to internal form (in yychar1) for indexing tables with */
2891 if (yychar <= 0) /* This means end of input. */
2894 yychar = YYEOF; /* Don't call YYLEX any more */
2898 fprintf(stderr, "Now at end of input.\n");
2903 yychar1 = YYTRANSLATE(yychar);
2908 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2909 /* Give the individual parser a way to print the precise meaning
2910 of a token, for further debugging info. */
2912 YYPRINT (stderr, yychar, yylval);
2914 fprintf (stderr, ")\n");
2920 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2925 /* yyn is what to do for this token type in this state.
2926 Negative => reduce, -yyn is rule number.
2927 Positive => shift, yyn is new state.
2928 New state is final state => don't bother to shift,
2929 just return success.
2930 0, or most negative number => error. */
2945 /* Shift the lookahead token. */
2949 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2952 /* Discard the token being shifted unless it is eof. */
2953 if (yychar != YYEOF)
2961 /* count tokens shifted since error; after three, turn off error status. */
2962 if (yyerrstatus) yyerrstatus--;
2967 /* Do the default action for the current state. */
2970 yyn = yydefact[yystate];
2974 /* Do a reduction. yyn is the number of a rule to reduce with. */
2978 yyval = yyvsp[1-yylen]; /* implement default value of the action */
2985 fprintf (stderr, "Reducing via rule %d (line %d), ",
2988 /* Print the symbols being reduced, and their result. */
2989 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2990 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2991 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2999 #line 223 "cgrammar.y"
3000 { uentry_clearDecl (); ;
3003 #line 224 "cgrammar.y"
3004 { uentry_clearDecl (); ;
3007 #line 225 "cgrammar.y"
3008 { uentry_clearDecl (); ;
3011 #line 226 "cgrammar.y"
3012 { uentry_clearDecl (); ;
3015 #line 227 "cgrammar.y"
3016 { uentry_clearDecl (); ;
3019 #line 228 "cgrammar.y"
3020 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3023 #line 229 "cgrammar.y"
3024 { uentry_clearDecl (); ;
3027 #line 233 "cgrammar.y"
3028 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3031 #line 235 "cgrammar.y"
3032 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3035 #line 238 "cgrammar.y"
3036 { context_enterFunctionDecl (); ;
3039 #line 239 "cgrammar.y"
3040 { declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3041 context_exitFunctionDecl (); ;
3044 #line 244 "cgrammar.y"
3046 qtype qint = qtype_create (ctype_int);
3047 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3052 #line 250 "cgrammar.y"
3053 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3056 #line 255 "cgrammar.y"
3057 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3060 #line 258 "cgrammar.y"
3061 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3064 #line 260 "cgrammar.y"
3065 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3068 #line 262 "cgrammar.y"
3069 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3072 #line 264 "cgrammar.y"
3076 if (exprNode_hasValue (yyvsp[-2].expr)
3077 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3079 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3086 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3090 #line 280 "cgrammar.y"
3091 { setCurrentParams (uentryList_missingParams);
3095 #line 283 "cgrammar.y"
3096 { /* need to support globals and modifies here! */
3097 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3098 uentryList_makeMissingParams ());
3100 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3105 #line 291 "cgrammar.y"
3106 { setCurrentParams (yyvsp[-1].entrylist);
3110 #line 294 "cgrammar.y"
3111 { clearCurrentParams ();
3112 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3117 #line 300 "cgrammar.y"
3118 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3121 #line 302 "cgrammar.y"
3122 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3125 #line 304 "cgrammar.y"
3126 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3129 #line 306 "cgrammar.y"
3133 if (exprNode_hasValue (yyvsp[-2].expr)
3134 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3136 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3143 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3147 #line 322 "cgrammar.y"
3148 { setCurrentParams (uentryList_missingParams);
3152 #line 325 "cgrammar.y"
3153 { /* need to support globals and modifies here! */
3154 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3155 uentryList_makeMissingParams ());
3157 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3162 #line 333 "cgrammar.y"
3163 { setCurrentParams (yyvsp[-1].entrylist);
3167 #line 336 "cgrammar.y"
3168 { clearCurrentParams ();
3169 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3174 #line 343 "cgrammar.y"
3175 { setCurrentParams (yyvsp[-1].entrylist); ;
3178 #line 344 "cgrammar.y"
3179 { clearCurrentParams (); ;
3182 #line 345 "cgrammar.y"
3183 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3186 #line 348 "cgrammar.y"
3187 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3190 #line 349 "cgrammar.y"
3191 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3194 #line 350 "cgrammar.y"
3195 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3198 #line 351 "cgrammar.y"
3199 { exprChecks_checkEmptyMacroBody (); ;
3202 #line 354 "cgrammar.y"
3203 { declareFunction (yyvsp[0].ntyp); ;
3206 #line 357 "cgrammar.y"
3207 { setProcessingGlobMods (); ;
3210 #line 358 "cgrammar.y"
3211 { clearProcessingGlobMods (); ;
3214 #line 361 "cgrammar.y"
3215 { setProcessingGlobMods (); ;
3218 #line 362 "cgrammar.y"
3219 { clearProcessingGlobMods (); ;
3222 #line 377 "cgrammar.y"
3226 #line 378 "cgrammar.y"
3230 #line 381 "cgrammar.y"
3231 { globListAdd (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3234 #line 384 "cgrammar.y"
3235 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3238 #line 385 "cgrammar.y"
3239 { yyval.sr = globListUnrecognized (yyvsp[0].cname); ;
3242 #line 388 "cgrammar.y"
3243 { yyval.typequal = qual_createUndef (); ;
3246 #line 389 "cgrammar.y"
3247 { yyval.typequal = qual_createKilled (); ;
3250 #line 390 "cgrammar.y"
3251 { yyval.typequal = qual_createOut (); ;
3254 #line 391 "cgrammar.y"
3255 { yyval.typequal = qual_createIn (); ;
3258 #line 392 "cgrammar.y"
3259 { yyval.typequal = qual_createPartial (); ;
3262 #line 395 "cgrammar.y"
3263 { yyval.tquallist = qualList_undefined; ;
3266 #line 396 "cgrammar.y"
3267 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3270 #line 399 "cgrammar.y"
3271 { setProcessingGlobalsList (); ;
3274 #line 401 "cgrammar.y"
3275 { unsetProcessingGlobals (); ;
3278 #line 402 "cgrammar.y"
3279 { setProcessingGlobalsList (); ;
3282 #line 404 "cgrammar.y"
3283 { unsetProcessingGlobals (); ;
3286 #line 406 "cgrammar.y"
3287 { setFunctionNoGlobals ();
3288 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3292 #line 413 "cgrammar.y"
3293 { setProcessingGlobalsList (); ;
3296 #line 415 "cgrammar.y"
3297 { unsetProcessingGlobals (); ;
3300 #line 416 "cgrammar.y"
3301 { setProcessingGlobalsList (); ;
3304 #line 418 "cgrammar.y"
3305 { unsetProcessingGlobals (); ;
3308 #line 420 "cgrammar.y"
3309 { setFunctionNoGlobals ();
3310 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3314 #line 432 "cgrammar.y"
3316 context_setProtectVars (); enterParamsTemp ();
3317 sRef_setGlobalScopeSafe ();
3321 #line 437 "cgrammar.y"
3323 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3324 sRef_clearGlobalScopeSafe ();
3325 context_releaseVars ();
3329 #line 445 "cgrammar.y"
3331 context_setProtectVars (); enterParamsTemp ();
3332 sRef_setGlobalScopeSafe ();
3336 #line 450 "cgrammar.y"
3338 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3339 sRef_clearGlobalScopeSafe ();
3340 context_releaseVars ();
3344 #line 474 "cgrammar.y"
3345 { yyval.sck = SP_ISONLY; ;
3348 #line 475 "cgrammar.y"
3349 { yyval.sck = SP_ISOBSERVER; ;
3352 #line 476 "cgrammar.y"
3353 { yyval.sck = SP_ISEXPOSED; ;
3356 #line 477 "cgrammar.y"
3357 { yyval.sck = SP_ISDEPENDENT; ;
3360 #line 478 "cgrammar.y"
3361 { yyval.sck = SP_ISOWNED; ;
3364 #line 479 "cgrammar.y"
3365 { yyval.sck = SP_ISSHARED; ;
3368 #line 480 "cgrammar.y"
3369 { yyval.sck = SP_ISNULL; ;
3372 #line 481 "cgrammar.y"
3373 { yyval.sck = SP_ISNOTNULL; ;
3376 #line 485 "cgrammar.y"
3378 context_setProtectVars ();
3380 sRef_setGlobalScopeSafe ();
3384 #line 491 "cgrammar.y"
3386 setFunctionSpecialClause (yyvsp[-6].tok, yyvsp[-3].srset, yyvsp[-1].tok);
3388 sRef_clearGlobalScopeSafe ();
3389 context_releaseVars ();
3393 #line 498 "cgrammar.y"
3395 context_setProtectVars ();
3397 sRef_setGlobalScopeSafe ();
3401 #line 504 "cgrammar.y"
3403 setFunctionStateSpecialClause (yyvsp[-7].tok, yyvsp[-5].sck, yyvsp[-3].srset, yyvsp[-1].tok);
3405 sRef_clearGlobalScopeSafe ();
3406 context_releaseVars ();
3410 #line 513 "cgrammar.y"
3412 qtype qint = qtype_create (ctype_int);
3413 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3418 #line 519 "cgrammar.y"
3419 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3422 #line 522 "cgrammar.y"
3423 { checkDoneParams (); context_enterInnerContext (); ;
3426 #line 524 "cgrammar.y"
3428 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3429 context_exitInner (yyvsp[0].expr);
3433 #line 529 "cgrammar.y"
3434 { doneParams (); context_enterInnerContext (); ;
3437 #line 531 "cgrammar.y"
3439 context_exitInner (yyvsp[0].expr);
3440 exprNode_checkFunctionBody (yyvsp[0].expr);
3441 yyval.expr = yyvsp[0].expr; /* old style */
3445 #line 539 "cgrammar.y"
3447 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3448 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3449 context_exitFunction ();
3453 #line 546 "cgrammar.y"
3454 { yyval.srset = yyvsp[-2].srset; ;
3457 #line 547 "cgrammar.y"
3458 { yyval.srset = sRefSet_new (); ;
3461 #line 550 "cgrammar.y"
3462 { yyval.srset = yyvsp[-1].srset; ;
3465 #line 551 "cgrammar.y"
3466 { yyval.srset = sRefSet_new (); ;
3469 #line 554 "cgrammar.y"
3470 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3473 #line 555 "cgrammar.y"
3474 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3477 #line 556 "cgrammar.y"
3478 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3481 #line 557 "cgrammar.y"
3482 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3485 #line 558 "cgrammar.y"
3486 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3489 #line 559 "cgrammar.y"
3490 { yyval.sr = yyvsp[-1].sr; ;
3493 #line 560 "cgrammar.y"
3494 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3497 #line 561 "cgrammar.y"
3498 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3501 #line 565 "cgrammar.y"
3502 { yyval.sr = yyvsp[0].sr; ;
3505 #line 566 "cgrammar.y"
3506 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3509 #line 570 "cgrammar.y"
3510 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3513 #line 571 "cgrammar.y"
3514 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3517 #line 575 "cgrammar.y"
3518 { yyval.sr = checkSpecClausesId (yyvsp[0].entry); ;
3521 #line 577 "cgrammar.y"
3522 { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
3525 #line 578 "cgrammar.y"
3526 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3529 #line 579 "cgrammar.y"
3530 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3533 #line 580 "cgrammar.y"
3534 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3537 #line 581 "cgrammar.y"
3538 { yyval.sr = yyvsp[-1].sr; ;
3541 #line 582 "cgrammar.y"
3542 { cstring_markOwned (yyvsp[0].cname);
3543 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3546 #line 584 "cgrammar.y"
3547 { cstring_markOwned (yyvsp[0].cname);
3548 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3551 #line 589 "cgrammar.y"
3552 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3553 else { yyval.srset = sRefSet_undefined; }
3557 #line 593 "cgrammar.y"
3558 { if (sRef_isValid (yyvsp[0].sr))
3560 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3564 yyval.srset = yyvsp[-2].srset;
3569 #line 604 "cgrammar.y"
3570 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3573 #line 605 "cgrammar.y"
3574 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3577 #line 607 "cgrammar.y"
3578 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3581 #line 608 "cgrammar.y"
3582 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].ctyp)); ;
3585 #line 609 "cgrammar.y"
3586 { yyval.expr = exprNode_makeError (); ;
3589 #line 613 "cgrammar.y"
3590 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3593 #line 614 "cgrammar.y"
3594 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3597 #line 615 "cgrammar.y"
3598 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
3601 #line 616 "cgrammar.y"
3602 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3605 #line 617 "cgrammar.y"
3606 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3609 #line 618 "cgrammar.y"
3610 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3613 #line 619 "cgrammar.y"
3614 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3617 #line 620 "cgrammar.y"
3618 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3621 #line 623 "cgrammar.y"
3622 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
3625 #line 624 "cgrammar.y"
3626 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
3629 #line 628 "cgrammar.y"
3630 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3633 #line 629 "cgrammar.y"
3634 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3637 #line 630 "cgrammar.y"
3638 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3641 #line 631 "cgrammar.y"
3642 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3645 #line 632 "cgrammar.y"
3646 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3649 #line 633 "cgrammar.y"
3650 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3653 #line 634 "cgrammar.y"
3654 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3657 #line 635 "cgrammar.y"
3658 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3661 #line 636 "cgrammar.y"
3662 { yyval.expr = yyvsp[0].expr; ;
3665 #line 637 "cgrammar.y"
3666 { yyval.expr = yyvsp[0].expr; ;
3669 #line 641 "cgrammar.y"
3670 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cname); ;
3673 #line 644 "cgrammar.y"
3674 { context_setProtectVars (); ;
3677 #line 645 "cgrammar.y"
3678 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3681 #line 648 "cgrammar.y"
3682 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3685 #line 649 "cgrammar.y"
3686 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3689 #line 654 "cgrammar.y"
3690 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3693 #line 658 "cgrammar.y"
3694 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3697 #line 659 "cgrammar.y"
3698 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3701 #line 660 "cgrammar.y"
3702 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3705 #line 664 "cgrammar.y"
3706 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3709 #line 665 "cgrammar.y"
3710 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3713 #line 669 "cgrammar.y"
3714 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3717 #line 670 "cgrammar.y"
3718 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3721 #line 674 "cgrammar.y"
3722 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3725 #line 675 "cgrammar.y"
3726 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3729 #line 676 "cgrammar.y"
3730 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3733 #line 677 "cgrammar.y"
3734 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3737 #line 681 "cgrammar.y"
3738 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3741 #line 682 "cgrammar.y"
3742 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3745 #line 686 "cgrammar.y"
3746 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3749 #line 690 "cgrammar.y"
3750 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3753 #line 695 "cgrammar.y"
3754 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3757 #line 700 "cgrammar.y"
3758 { exprNode_produceGuards (yyvsp[-1].expr);
3759 context_enterAndClause (yyvsp[-1].expr);
3763 #line 704 "cgrammar.y"
3765 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3766 context_exitAndClause (yyval.expr, yyvsp[0].expr);
3770 #line 712 "cgrammar.y"
3772 exprNode_produceGuards (yyvsp[-1].expr);
3773 context_enterOrClause (yyvsp[-1].expr);
3777 #line 717 "cgrammar.y"
3779 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3780 context_exitOrClause (yyval.expr, yyvsp[0].expr);
3784 #line 724 "cgrammar.y"
3785 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3788 #line 725 "cgrammar.y"
3789 { context_enterFalseClause (yyvsp[-4].expr); ;
3792 #line 726 "cgrammar.y"
3793 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
3796 #line 730 "cgrammar.y"
3797 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3800 #line 731 "cgrammar.y"
3801 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3804 #line 732 "cgrammar.y"
3805 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3808 #line 733 "cgrammar.y"
3809 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3812 #line 734 "cgrammar.y"
3813 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3816 #line 735 "cgrammar.y"
3817 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3820 #line 736 "cgrammar.y"
3821 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3824 #line 737 "cgrammar.y"
3825 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3828 #line 738 "cgrammar.y"
3829 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3832 #line 739 "cgrammar.y"
3833 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3836 #line 740 "cgrammar.y"
3837 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3840 #line 744 "cgrammar.y"
3841 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
3844 #line 747 "cgrammar.y"
3845 { yyval.expr = exprNode_undefined; ;
3848 #line 756 "cgrammar.y"
3849 { yyval.expr = yyvsp[0].expr; ;
3852 #line 757 "cgrammar.y"
3853 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
3856 #line 758 "cgrammar.y"
3857 { yyval.expr = exprNode_makeError (); ;
3860 #line 761 "cgrammar.y"
3861 { yyval.expr = exprNode_makeError (); ;
3864 #line 775 "cgrammar.y"
3866 setProcessingVars (yyvsp[-3].qtyp);
3867 processNamedDecl (yyvsp[-1].ntyp); ;
3870 #line 778 "cgrammar.y"
3871 { unsetProcessingVars (); yyval.expr = yyvsp[-2].expr; ;
3874 #line 780 "cgrammar.y"
3875 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp);
3879 #line 783 "cgrammar.y"
3880 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
3881 unsetProcessingVars ();
3885 #line 787 "cgrammar.y"
3886 { processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeError (); ;
3889 #line 788 "cgrammar.y"
3890 { processNamedDecl (yyvsp[-2].ntyp); ;
3893 #line 789 "cgrammar.y"
3894 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
3897 #line 793 "cgrammar.y"
3898 { setProcessingTypedef (yyvsp[0].qtyp); ;
3901 #line 794 "cgrammar.y"
3902 { unsetProcessingTypedef (); ;
3905 #line 795 "cgrammar.y"
3906 { /* in the ANSI grammar, semantics unclear */ ;
3909 #line 796 "cgrammar.y"
3910 { /* in the ANSI grammar, semantics unclear */ ;
3913 #line 799 "cgrammar.y"
3914 { g_expectingTypeName = TRUE; ;
3917 #line 802 "cgrammar.y"
3918 { g_expectingTypeName = TRUE; context_pushLoc (); ;
3921 #line 805 "cgrammar.y"
3925 #line 808 "cgrammar.y"
3929 #line 809 "cgrammar.y"
3933 #line 812 "cgrammar.y"
3934 { yyval.expr = exprNode_makeError (); ;
3937 #line 813 "cgrammar.y"
3938 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
3941 #line 817 "cgrammar.y"
3942 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].alist); ;
3945 #line 818 "cgrammar.y"
3946 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].alist); ;
3949 #line 823 "cgrammar.y"
3950 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
3953 #line 825 "cgrammar.y"
3954 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
3957 #line 833 "cgrammar.y"
3958 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
3961 #line 834 "cgrammar.y"
3962 { yyval.typequal = qual_createInline (); ;
3965 #line 835 "cgrammar.y"
3966 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
3969 #line 836 "cgrammar.y"
3970 { yyval.typequal = qual_createAuto (); ;
3973 #line 837 "cgrammar.y"
3974 { yyval.typequal = qual_createRegister (); ;
3977 #line 840 "cgrammar.y"
3978 { yyval.typequal = qual_createConst (); ;
3981 #line 841 "cgrammar.y"
3982 { yyval.typequal = qual_createVolatile (); ;
3985 #line 842 "cgrammar.y"
3986 { yyval.typequal = qual_createOut (); ;
3989 #line 843 "cgrammar.y"
3990 { yyval.typequal = qual_createIn (); ;
3993 #line 844 "cgrammar.y"
3994 { yyval.typequal = qual_createPartial (); ;
3997 #line 845 "cgrammar.y"
3998 { yyval.typequal = qual_createSpecial (); ;
4001 #line 846 "cgrammar.y"
4002 { yyval.typequal = qual_createOwned (); ;
4005 #line 847 "cgrammar.y"
4006 { yyval.typequal = qual_createDependent (); ;
4009 #line 848 "cgrammar.y"
4010 { yyval.typequal = qual_createYield (); ;
4013 #line 849 "cgrammar.y"
4014 { yyval.typequal = qual_createTemp (); ;
4017 #line 850 "cgrammar.y"
4018 { yyval.typequal = qual_createOnly (); ;
4021 #line 851 "cgrammar.y"
4022 { yyval.typequal = qual_createKeep (); ;
4025 #line 852 "cgrammar.y"
4026 { yyval.typequal = qual_createKept (); ;
4029 #line 853 "cgrammar.y"
4030 { yyval.typequal = qual_createShared (); ;
4033 #line 854 "cgrammar.y"
4034 { yyval.typequal = qual_createUnique (); ;
4037 #line 855 "cgrammar.y"
4038 { yyval.typequal = qual_createExits (); ;
4041 #line 856 "cgrammar.y"
4042 { yyval.typequal = qual_createMayExit (); ;
4045 #line 857 "cgrammar.y"
4046 { yyval.typequal = qual_createTrueExit (); ;
4049 #line 858 "cgrammar.y"
4050 { yyval.typequal = qual_createFalseExit (); ;
4053 #line 859 "cgrammar.y"
4054 { yyval.typequal = qual_createNeverExit (); ;
4057 #line 860 "cgrammar.y"
4058 { yyval.typequal = qual_createNull (); ;
4061 #line 861 "cgrammar.y"
4062 { yyval.typequal = qual_createRelNull (); ;
4065 #line 862 "cgrammar.y"
4066 { yyval.typequal = qual_createReturned (); ;
4069 #line 863 "cgrammar.y"
4070 { yyval.typequal = qual_createExposed (); ;
4073 #line 864 "cgrammar.y"
4074 { yyval.typequal = qual_createObserver (); ;
4077 #line 865 "cgrammar.y"
4078 { yyval.typequal = qual_createChecked (); ;
4081 #line 866 "cgrammar.y"
4082 { yyval.typequal = qual_createCheckMod (); ;
4085 #line 867 "cgrammar.y"
4086 { yyval.typequal = qual_createUnchecked (); ;
4089 #line 868 "cgrammar.y"
4090 { yyval.typequal = qual_createCheckedStrict (); ;
4093 #line 869 "cgrammar.y"
4094 { yyval.typequal = qual_createTrueNull (); ;
4097 #line 870 "cgrammar.y"
4098 { yyval.typequal = qual_createFalseNull (); ;
4101 #line 871 "cgrammar.y"
4102 { yyval.typequal = qual_createUnused (); ;
4105 #line 872 "cgrammar.y"
4106 { yyval.typequal = qual_createExternal (); ;
4109 #line 873 "cgrammar.y"
4110 { yyval.typequal = qual_createSef (); ;
4113 #line 874 "cgrammar.y"
4114 { yyval.typequal = qual_createAbstract (); ;
4117 #line 875 "cgrammar.y"
4118 { yyval.typequal = qual_createConcrete (); ;
4121 #line 876 "cgrammar.y"
4122 { yyval.typequal = qual_createMutable (); ;
4125 #line 877 "cgrammar.y"
4126 { yyval.typequal = qual_createImmutable (); ;
4129 #line 878 "cgrammar.y"
4130 { yyval.typequal = qual_createNotNull (); ;
4133 #line 879 "cgrammar.y"
4134 { yyval.typequal = qual_createRefCounted (); ;
4137 #line 880 "cgrammar.y"
4138 { yyval.typequal = qual_createRefs (); ;
4141 #line 881 "cgrammar.y"
4142 { yyval.typequal = qual_createKillRef (); ;
4145 #line 882 "cgrammar.y"
4146 { yyval.typequal = qual_createRelDef (); ;
4149 #line 883 "cgrammar.y"
4150 { yyval.typequal = qual_createNewRef (); ;
4153 #line 884 "cgrammar.y"
4154 { yyval.typequal = qual_createTempRef (); ;
4157 #line 887 "cgrammar.y"
4158 { yyval.typequal = qual_createShort (); ;
4161 #line 888 "cgrammar.y"
4162 { yyval.typequal = qual_createLong (); ;
4165 #line 889 "cgrammar.y"
4166 { yyval.typequal = qual_createSigned (); ;
4169 #line 890 "cgrammar.y"
4170 { yyval.typequal = qual_createUnsigned (); ;
4173 #line 899 "cgrammar.y"
4174 { yyval.ctyp = ctype_unknown; ;
4177 #line 900 "cgrammar.y"
4178 { yyval.ctyp = ctype_anyintegral; ;
4181 #line 901 "cgrammar.y"
4182 { yyval.ctyp = ctype_unsignedintegral; ;
4185 #line 902 "cgrammar.y"
4186 { yyval.ctyp = ctype_signedintegral; ;
4189 #line 906 "cgrammar.y"
4190 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4193 #line 910 "cgrammar.y"
4194 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4197 #line 913 "cgrammar.y"
4198 { yyval.qtyp = yyvsp[0].qtyp; ;
4201 #line 915 "cgrammar.y"
4202 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4205 #line 920 "cgrammar.y"
4206 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4209 #line 923 "cgrammar.y"
4210 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4213 #line 924 "cgrammar.y"
4214 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4217 #line 925 "cgrammar.y"
4218 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4221 #line 928 "cgrammar.y"
4222 { yyval.qtyp = qtype_unknown (); ;
4225 #line 929 "cgrammar.y"
4226 { yyval.qtyp = yyvsp[0].qtyp; ;
4229 #line 932 "cgrammar.y"
4230 { sRef_setGlobalScopeSafe (); ;
4233 #line 934 "cgrammar.y"
4234 { sRef_clearGlobalScopeSafe (); ;
4237 #line 936 "cgrammar.y"
4238 { yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ;
4241 #line 937 "cgrammar.y"
4242 { sRef_setGlobalScopeSafe (); ;
4245 #line 939 "cgrammar.y"
4246 { sRef_clearGlobalScopeSafe (); ;
4249 #line 941 "cgrammar.y"
4250 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4253 #line 943 "cgrammar.y"
4254 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4257 #line 945 "cgrammar.y"
4258 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4261 #line 946 "cgrammar.y"
4262 { sRef_setGlobalScopeSafe (); ;
4265 #line 948 "cgrammar.y"
4266 { sRef_clearGlobalScopeSafe (); ;
4269 #line 950 "cgrammar.y"
4270 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4273 #line 951 "cgrammar.y"
4274 { sRef_setGlobalScopeSafe (); ;
4277 #line 953 "cgrammar.y"
4278 { sRef_clearGlobalScopeSafe (); ;
4281 #line 955 "cgrammar.y"
4282 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4285 #line 957 "cgrammar.y"
4286 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4289 #line 959 "cgrammar.y"
4290 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4293 #line 960 "cgrammar.y"
4294 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4297 #line 961 "cgrammar.y"
4298 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4301 #line 964 "cgrammar.y"
4302 { g_expectingTypeName = FALSE; ;
4305 #line 968 "cgrammar.y"
4306 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4309 #line 969 "cgrammar.y"
4310 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4313 #line 973 "cgrammar.y"
4314 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4317 #line 975 "cgrammar.y"
4318 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4321 #line 979 "cgrammar.y"
4322 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4325 #line 981 "cgrammar.y"
4326 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4329 #line 984 "cgrammar.y"
4330 { yyval.ntyp = yyvsp[0].ntyp; ;
4333 #line 985 "cgrammar.y"
4334 { yyval.ntyp = idDecl_undefined; ;
4337 #line 986 "cgrammar.y"
4338 { yyval.ntyp = yyvsp[-2].ntyp; ;
4341 #line 990 "cgrammar.y"
4342 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4345 #line 991 "cgrammar.y"
4346 { context_pushLoc (); ;
4349 #line 992 "cgrammar.y"
4350 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4353 #line 993 "cgrammar.y"
4354 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4357 #line 997 "cgrammar.y"
4358 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4361 #line 999 "cgrammar.y"
4362 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4365 #line 1004 "cgrammar.y"
4366 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4367 usymtab_supGlobalEntry (ue);
4368 yyval.cname = yyvsp[0].cname;
4372 #line 1009 "cgrammar.y"
4373 { uentry ue = uentry_makeEnumConstant (yyvsp[-3].cname, ctype_unknown);
4374 usymtab_supGlobalEntry (ue);
4375 yyval.cname = yyvsp[-3].cname;
4379 #line 1016 "cgrammar.y"
4380 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4383 #line 1018 "cgrammar.y"
4385 qtype qt = qtype_unknown ();
4387 qtype_adjustPointers (yyvsp[-1].count, qt);
4388 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4392 #line 1025 "cgrammar.y"
4393 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4396 #line 1030 "cgrammar.y"
4397 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4400 #line 1033 "cgrammar.y"
4401 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4404 #line 1034 "cgrammar.y"
4405 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4408 #line 1037 "cgrammar.y"
4409 { /* ignored for now */; ;
4412 #line 1038 "cgrammar.y"
4416 #line 1041 "cgrammar.y"
4420 #line 1042 "cgrammar.y"
4424 #line 1045 "cgrammar.y"
4425 { yyval.count = 1; ;
4428 #line 1046 "cgrammar.y"
4429 { yyval.count = 1; ;
4432 #line 1047 "cgrammar.y"
4433 { yyval.count = 1 + yyvsp[0].count; ;
4436 #line 1048 "cgrammar.y"
4437 { yyval.count = 1 + yyvsp[0].count; ;
4440 #line 1052 "cgrammar.y"
4441 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4444 #line 1055 "cgrammar.y"
4445 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4448 #line 1056 "cgrammar.y"
4449 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4452 #line 1059 "cgrammar.y"
4453 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4456 #line 1061 "cgrammar.y"
4457 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4460 #line 1064 "cgrammar.y"
4464 #line 1064 "cgrammar.y"
4465 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4468 #line 1065 "cgrammar.y"
4472 #line 1066 "cgrammar.y"
4473 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4476 #line 1070 "cgrammar.y"
4478 if (isFlipOldStyle ())
4480 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4486 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4490 #line 1082 "cgrammar.y"
4492 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4496 llparseerror (message ("Inconsistent function parameter syntax: %q",
4497 idDecl_unparse (tparam)));
4501 yyval.oentry = makeCurrentParam (tparam);
4502 idDecl_free (tparam);
4506 #line 1098 "cgrammar.y"
4507 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4510 #line 1101 "cgrammar.y"
4511 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4514 #line 1103 "cgrammar.y"
4515 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4518 #line 1106 "cgrammar.y"
4519 { yyval.ctyp = ctype_unknown; ;
4522 #line 1111 "cgrammar.y"
4523 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4526 #line 1112 "cgrammar.y"
4527 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4530 #line 1113 "cgrammar.y"
4531 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4534 #line 1114 "cgrammar.y"
4535 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4538 #line 1115 "cgrammar.y"
4539 { yyval.ctyp = ctype_makeArray (yyvsp[-3].ctyp); ;
4542 #line 1117 "cgrammar.y"
4543 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4546 #line 1119 "cgrammar.y"
4547 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4550 #line 1121 "cgrammar.y"
4551 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4554 #line 1123 "cgrammar.y"
4555 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4558 #line 1139 "cgrammar.y"
4559 { yyval.expr = yyvsp[0].expr; ;
4562 #line 1147 "cgrammar.y"
4563 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4566 #line 1151 "cgrammar.y"
4567 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4570 #line 1153 "cgrammar.y"
4571 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4574 #line 1155 "cgrammar.y"
4575 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4578 #line 1157 "cgrammar.y"
4579 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4582 #line 1161 "cgrammar.y"
4583 { context_setProtectVars (); ;
4586 #line 1161 "cgrammar.y"
4587 { context_sizeofReleaseVars (); ;
4590 #line 1163 "cgrammar.y"
4591 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4592 context_enterForClause (yyvsp[-5].expr); ;
4595 #line 1168 "cgrammar.y"
4596 { setProcessingIterVars (yyvsp[-2].entry); ;
4599 #line 1170 "cgrammar.y"
4600 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].alist); ;
4603 #line 1171 "cgrammar.y"
4604 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4607 #line 1177 "cgrammar.y"
4608 { yyval.expr = yyvsp[0].expr; ;
4611 #line 1185 "cgrammar.y"
4612 { yyval.expr = yyvsp[-1].expr; ;
4615 #line 1186 "cgrammar.y"
4616 { yyval.expr = exprNode_makeError (); ;
4619 #line 1190 "cgrammar.y"
4620 { /* don't: context_exitTrueClause ($1, $2); */
4621 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4625 #line 1195 "cgrammar.y"
4626 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4629 #line 1198 "cgrammar.y"
4630 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4633 #line 1213 "cgrammar.y"
4634 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4637 #line 1215 "cgrammar.y"
4638 { yyval.expr = exprNode_makeError (); ;
4641 #line 1218 "cgrammar.y"
4642 { yyval.expr = exprNode_labelStatement (yyvsp[-2].cname, yyvsp[0].expr); ;
4645 #line 1219 "cgrammar.y"
4646 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4649 #line 1225 "cgrammar.y"
4650 { context_enterCaseClause (yyvsp[0].expr); ;
4653 #line 1226 "cgrammar.y"
4654 { yyval.expr = exprNode_caseStatement (yyvsp[-3].expr, yyvsp[0].expr, FALSE); ;
4657 #line 1227 "cgrammar.y"
4658 { context_enterCaseClause (yyvsp[0].expr); ;
4661 #line 1228 "cgrammar.y"
4662 { yyval.expr = exprNode_caseStatement (yyvsp[-3].expr, yyvsp[0].expr, TRUE); ;
4665 #line 1231 "cgrammar.y"
4666 { context_enterCaseClause (exprNode_undefined); ;
4669 #line 1232 "cgrammar.y"
4670 { yyval.expr = exprNode_defaultStatement (yyvsp[-3].tok, yyvsp[0].expr, FALSE); ;
4673 #line 1233 "cgrammar.y"
4674 { context_enterCaseClause (exprNode_undefined); ;
4677 #line 1234 "cgrammar.y"
4678 { yyval.expr = exprNode_defaultStatement (yyvsp[-3].tok, yyvsp[0].expr, TRUE); ;
4681 #line 1237 "cgrammar.y"
4682 { yyval.expr = yyvsp[-1].expr; ;
4685 #line 1239 "cgrammar.y"
4686 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4689 #line 1242 "cgrammar.y"
4690 { yyval.expr = yyvsp[-1].expr; ;
4693 #line 1245 "cgrammar.y"
4694 { context_enterInnerContext (); ;
4697 #line 1248 "cgrammar.y"
4698 { context_exitInnerPlain (); ;
4701 #line 1251 "cgrammar.y"
4702 { context_enterStructInnerContext (); ;
4705 #line 1254 "cgrammar.y"
4706 { context_exitStructInnerContext (); ;
4709 #line 1257 "cgrammar.y"
4710 { context_exitInnerSafe (); ;
4713 #line 1260 "cgrammar.y"
4714 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4717 #line 1261 "cgrammar.y"
4718 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4721 #line 1262 "cgrammar.y"
4722 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4725 #line 1264 "cgrammar.y"
4726 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4729 #line 1265 "cgrammar.y"
4730 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4733 #line 1267 "cgrammar.y"
4734 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4737 #line 1269 "cgrammar.y"
4738 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4741 #line 1271 "cgrammar.y"
4742 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
4743 lltok_getLoc (yyvsp[-1].tok)));
4747 #line 1278 "cgrammar.y"
4748 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
4751 #line 1282 "cgrammar.y"
4752 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4755 #line 1284 "cgrammar.y"
4756 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4759 #line 1286 "cgrammar.y"
4760 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4763 #line 1288 "cgrammar.y"
4764 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4767 #line 1292 "cgrammar.y"
4768 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4771 #line 1295 "cgrammar.y"
4772 { yyval.expr = yyvsp[0].expr; ;
4775 #line 1296 "cgrammar.y"
4776 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4779 #line 1299 "cgrammar.y"
4780 { yyval.expr = yyvsp[0].expr; ;
4783 #line 1300 "cgrammar.y"
4784 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4787 #line 1303 "cgrammar.y"
4788 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4791 #line 1304 "cgrammar.y"
4792 { yyval.expr = exprNode_statement (yyvsp[-1].expr); ;
4795 #line 1307 "cgrammar.y"
4796 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4799 #line 1308 "cgrammar.y"
4800 { yyval.expr = exprNode_statement (yyvsp[-1].expr); ;
4803 #line 1309 "cgrammar.y"
4804 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
4807 #line 1313 "cgrammar.y"
4808 { yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4811 #line 1321 "cgrammar.y"
4813 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
4814 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4818 #line 1325 "cgrammar.y"
4819 { context_enterFalseClause (yyvsp[-2].expr); ;
4822 #line 1326 "cgrammar.y"
4824 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4825 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4829 #line 1330 "cgrammar.y"
4830 { context_enterSwitch (yyvsp[0].expr); ;
4833 #line 1331 "cgrammar.y"
4834 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
4837 #line 1335 "cgrammar.y"
4838 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
4841 #line 1339 "cgrammar.y"
4842 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
4845 #line 1342 "cgrammar.y"
4846 { context_enterIterClause (); ;
4849 #line 1343 "cgrammar.y"
4850 { setProcessingIterVars (yyvsp[-3].entry); ;
4853 #line 1346 "cgrammar.y"
4855 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].alist, yyvsp[-2].expr, yyvsp[-1].entry);
4860 #line 1352 "cgrammar.y"
4861 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
4864 #line 1353 "cgrammar.y"
4865 { nextIterParam (); ;
4868 #line 1354 "cgrammar.y"
4869 { yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ;
4872 #line 1357 "cgrammar.y"
4873 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
4876 #line 1358 "cgrammar.y"
4877 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
4880 #line 1359 "cgrammar.y"
4881 { uentry ue = coerceIterId (yyvsp[0].ctyp);
4883 if (uentry_isValid (ue))
4885 yyval.expr = exprNode_iterId (ue);
4889 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
4894 #line 1370 "cgrammar.y"
4895 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
4898 #line 1378 "cgrammar.y"
4899 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4902 #line 1382 "cgrammar.y"
4903 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4906 #line 1383 "cgrammar.y"
4907 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4910 #line 1384 "cgrammar.y"
4911 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
4914 #line 1386 "cgrammar.y"
4915 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
4918 #line 1387 "cgrammar.y"
4919 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
4922 #line 1388 "cgrammar.y"
4923 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
4926 #line 1389 "cgrammar.y"
4927 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4930 #line 1390 "cgrammar.y"
4931 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4934 #line 1394 "cgrammar.y"
4935 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4938 #line 1395 "cgrammar.y"
4939 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4942 #line 1396 "cgrammar.y"
4943 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4946 #line 1397 "cgrammar.y"
4947 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4950 #line 1398 "cgrammar.y"
4951 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4954 #line 1399 "cgrammar.y"
4955 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4958 #line 1400 "cgrammar.y"
4959 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4962 #line 1401 "cgrammar.y"
4963 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4966 #line 1402 "cgrammar.y"
4967 { yyval.expr = yyvsp[0].expr; ;
4970 #line 1406 "cgrammar.y"
4971 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
4974 #line 1410 "cgrammar.y"
4975 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4978 #line 1411 "cgrammar.y"
4979 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4982 #line 1412 "cgrammar.y"
4983 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4986 #line 1416 "cgrammar.y"
4987 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4990 #line 1417 "cgrammar.y"
4991 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4994 #line 1421 "cgrammar.y"
4995 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4998 #line 1422 "cgrammar.y"
4999 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5002 #line 1426 "cgrammar.y"
5003 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5006 #line 1427 "cgrammar.y"
5007 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5010 #line 1428 "cgrammar.y"
5011 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5014 #line 1429 "cgrammar.y"
5015 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5018 #line 1433 "cgrammar.y"
5019 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5022 #line 1434 "cgrammar.y"
5023 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5026 #line 1438 "cgrammar.y"
5027 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5030 #line 1442 "cgrammar.y"
5031 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5034 #line 1447 "cgrammar.y"
5035 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5038 #line 1451 "cgrammar.y"
5039 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5042 #line 1455 "cgrammar.y"
5043 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5046 #line 1459 "cgrammar.y"
5047 { context_enterTrueClause (yyvsp[-1].expr); ;
5050 #line 1460 "cgrammar.y"
5051 { context_enterFalseClause (yyvsp[-4].expr); ;
5054 #line 1461 "cgrammar.y"
5055 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5058 #line 1465 "cgrammar.y"
5059 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5062 #line 1466 "cgrammar.y"
5063 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5066 #line 1467 "cgrammar.y"
5067 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5070 #line 1468 "cgrammar.y"
5071 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5074 #line 1469 "cgrammar.y"
5075 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5078 #line 1470 "cgrammar.y"
5079 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5082 #line 1471 "cgrammar.y"
5083 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5086 #line 1472 "cgrammar.y"
5087 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5090 #line 1473 "cgrammar.y"
5091 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5094 #line 1474 "cgrammar.y"
5095 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5098 #line 1475 "cgrammar.y"
5099 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5102 #line 1478 "cgrammar.y"
5103 { yyval.entry = yyvsp[0].entry; ;
5106 #line 1479 "cgrammar.y"
5107 { yyval.entry = uentry_undefined; ;
5110 #line 1482 "cgrammar.y"
5111 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5114 #line 1486 "cgrammar.y"
5115 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5118 #line 1488 "cgrammar.y"
5119 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ;
5122 #line 1490 "cgrammar.y"
5123 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5126 #line 1493 "cgrammar.y"
5127 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5130 #line 1495 "cgrammar.y"
5131 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ;
5134 #line 1497 "cgrammar.y"
5135 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5138 #line 1498 "cgrammar.y"
5139 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5142 #line 1501 "cgrammar.y"
5143 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5146 #line 1502 "cgrammar.y"
5147 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5150 #line 1504 "cgrammar.y"
5151 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5154 #line 1505 "cgrammar.y"
5155 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5158 #line 1506 "cgrammar.y"
5159 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5162 #line 1507 "cgrammar.y"
5163 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5166 #line 1508 "cgrammar.y"
5167 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5170 #line 1509 "cgrammar.y"
5171 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5174 #line 1510 "cgrammar.y"
5175 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5178 #line 1511 "cgrammar.y"
5179 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5182 #line 1515 "cgrammar.y"
5186 #line 1522 "cgrammar.y"
5187 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5190 #line 1523 "cgrammar.y"
5191 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5194 #line 1524 "cgrammar.y"
5195 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5198 /* the action file gets copied in in place of this dollarsign */
5199 #line 543 "/af9/evans/bison-1.28/share/bison.simple"
5210 short *ssp1 = yyss - 1;
5211 fprintf (stderr, "state stack now");
5212 while (ssp1 != yyssp)
5213 fprintf (stderr, " %d", *++ssp1);
5214 fprintf (stderr, "\n");
5224 yylsp->first_line = yylloc.first_line;
5225 yylsp->first_column = yylloc.first_column;
5226 yylsp->last_line = (yylsp-1)->last_line;
5227 yylsp->last_column = (yylsp-1)->last_column;
5232 yylsp->last_line = (yylsp+yylen-1)->last_line;
5233 yylsp->last_column = (yylsp+yylen-1)->last_column;
5237 /* Now "shift" the result of the reduction.
5238 Determine what state that goes to,
5239 based on the state we popped back to
5240 and the rule number reduced by. */
5244 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5245 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5246 yystate = yytable[yystate];
5248 yystate = yydefgoto[yyn - YYNTBASE];
5252 yyerrlab: /* here on detecting error */
5255 /* If not already recovering from an error, report this error. */
5259 #ifdef YYERROR_VERBOSE
5260 yyn = yypact[yystate];
5262 if (yyn > YYFLAG && yyn < YYLAST)
5269 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5270 for (x = (yyn < 0 ? -yyn : 0);
5271 x < (sizeof(yytname) / sizeof(char *)); x++)
5272 if (yycheck[x + yyn] == x)
5273 size += strlen(yytname[x]) + 15, count++;
5274 msg = (char *) malloc(size + 15);
5277 strcpy(msg, "parse error");
5282 for (x = (yyn < 0 ? -yyn : 0);
5283 x < (sizeof(yytname) / sizeof(char *)); x++)
5284 if (yycheck[x + yyn] == x)
5286 strcat(msg, count == 0 ? ", expecting `" : " or `");
5287 strcat(msg, yytname[x]);
5296 yyerror ("parse error; also virtual memory exceeded");
5299 #endif /* YYERROR_VERBOSE */
5300 yyerror("parse error");
5304 yyerrlab1: /* here on error raised explicitly by an action */
5306 if (yyerrstatus == 3)
5308 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5310 /* return failure if at end of input */
5311 if (yychar == YYEOF)
5316 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5322 /* Else will try to reuse lookahead token
5323 after shifting the error token. */
5325 yyerrstatus = 3; /* Each real token shifted decrements this */
5329 yyerrdefault: /* current state does not do anything special for the error token. */
5332 /* This is wrong; only states that explicitly want error tokens
5333 should shift them. */
5334 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5335 if (yyn) goto yydefault;
5338 yyerrpop: /* pop the current state because it cannot handle the error token */
5340 if (yyssp == yyss) YYABORT;
5350 short *ssp1 = yyss - 1;
5351 fprintf (stderr, "Error: state stack now");
5352 while (ssp1 != yyssp)
5353 fprintf (stderr, " %d", *++ssp1);
5354 fprintf (stderr, "\n");
5360 yyn = yypact[yystate];
5365 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5384 fprintf(stderr, "Shifting error token, ");
5396 /* YYACCEPT comes here. */
5408 /* YYABORT comes here. */
5419 #line 1530 "cgrammar.y"
5423 extern char *yytext;
5426 # include "bison.reset"
5428 void yyerror (/*@unused@*/ char *s)
5430 static bool givehint = FALSE;
5432 if (context_inIterDef ())
5434 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5435 context_inFunctionName ()));
5437 else if (context_inIterEnd ())
5439 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5440 context_inFunctionName ()));
5442 else if (context_inMacro ())
5444 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5445 context_inFunctionName ()));
5447 if (context_inMacroUnknown ())
5451 llhint (cstring_makeLiteral
5452 ("Precede macro definition with /*@notfunction@*/ "
5453 "to suppress checking and force expansion"));
5462 llparseerror (cstring_undefined);