2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
49 /*drl added 11/27/2001*/
51 /* < end of bison.head > */
54 /* A Bison parser, made from cgrammar.y
55 by GNU Bison version 1.28 */
57 #define YYBISON 1 /* Identify Bison output. */
61 #define CTOK_ELIPSIS 259
85 #define TAMPERSAND 283
102 #define COFFSETOF 300
113 #define MUL_ASSIGN 311
114 #define DIV_ASSIGN 312
115 #define MOD_ASSIGN 313
116 #define ADD_ASSIGN 314
117 #define SUB_ASSIGN 315
118 #define LEFT_ASSIGN 316
119 #define RIGHT_ASSIGN 317
120 #define AND_ASSIGN 318
121 #define XOR_ASSIGN 319
122 #define OR_ASSIGN 320
130 #define QMODIFIES 328
132 #define QCONSTANT 330
133 #define QFUNCTION 331
137 #define QALLOCATES 335
139 #define QRELEASES 337
140 #define QPRECLAUSE 338
141 #define QPOSTCLAUSE 339
142 #define QINVARIANT 340
146 #define QENDMACRO 344
148 #define LLMACROITER 346
149 #define LLMACROEND 347
150 #define TENDMACRO 348
151 #define QSWITCHBREAK 349
152 #define QLOOPBREAK 350
153 #define QINNERBREAK 351
154 #define QSAFEBREAK 352
155 #define QINNERCONTINUE 353
156 #define QFALLTHROUGH 354
157 #define QLINTNOTREACHED 355
158 #define QLINTFALLTHROUGH 356
159 #define QLINTFALLTHRU 357
160 #define QARGSUSED 358
161 #define QPRINTFLIKE 359
162 #define QLINTPRINTFLIKE 360
163 #define QSCANFLIKE 361
164 #define QMESSAGELIKE 362
165 #define QNOTREACHED 363
167 #define QVOLATILE 365
169 #define QEXTENSION 367
173 #define QREGISTER 371
183 #define QUNCHECKED 381
184 #define QCHECKEDSTRICT 382
185 #define QCHECKMOD 383
191 #define QDEPENDENT 389
192 #define QRETURNED 390
195 #define QOBSERVER 393
199 #define QNEVEREXIT 397
200 #define QTRUEEXIT 398
201 #define QFALSEEXIT 399
204 #define QUNSIGNED 402
210 #define QABSTRACT 408
211 #define QCONCRETE 409
213 #define QIMMUTABLE 411
214 #define QTRUENULL 412
215 #define QFALSENULL 413
216 #define QEXTERNAL 414
217 #define QREFCOUNTED 415
230 #define QINTEGRALTYPE 428
231 #define QUNSIGNEDINTEGRALTYPE 429
232 #define QSIGNEDINTEGRALTYPE 430
233 #define QNULLTERMINATED 431
234 #define QSETBUFFERSIZE 432
235 #define QSETSTRINGLENGTH 433
238 #define QTESTINRANGE 436
240 #define IDENTIFIER 438
241 #define NEW_IDENTIFIER 439
242 #define TYPE_NAME_OR_ID 440
243 #define CANNOTATION 441
244 #define CCONSTANT 442
245 #define ITER_NAME 443
246 #define ITER_ENDNAME 444
247 #define TYPE_NAME 445
248 #define METASTATE_NAME 446
255 ** Yacc/Bison grammar for extended ANSI C used by Splint.
257 ** original grammar by Nate Osgood ---
258 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
260 ** changes for Splint --- handle typedef names correctly
261 ** fix struct/union parsing bug (empty struct is accepted)
262 ** add productions to handle macros --- require
263 ** error correction --- main source of conflicts in grammar.
264 ** need to process initializations sequentially, L->R
266 ** production names are cryptic, so more productions fit on one line
268 ** conflicts: 87 shift/reduce, 18 reduce/reduce
269 ** most of these are due to handling macros
270 ** a few are due to handling type expressions
276 extern void swallowMacro (void);
277 extern void yyerror (char *);
279 # include "splintMacros.nf"
281 # include "cscanner.h"
282 # include "cgrammar.h"
283 # include "exprChecks.h"
288 # define SHOWCSYM FALSE
291 ** This is necessary, or else when the bison-generated code #include's malloc.h,
292 ** there will be a parse error.
294 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
295 ** in bison-generated files under Win32.
312 /*@dependent@*/ sRef sr;
315 /*@only@*/ functionClauseList funcclauselist;
316 /*@only@*/ functionClause funcclause;
317 /*@only@*/ flagSpec flagspec;
318 /*@only@*/ globalsClause globsclause;
319 /*@only@*/ modifiesClause modsclause;
320 /*@only@*/ warnClause warnclause;
321 /*@only@*/ stateClause stateclause;
323 /*@only@*/ functionConstraint fcnconstraint;
325 /*@only@*/ metaStateConstraint msconstraint;
326 /*@only@*/ metaStateSpecifier msspec;
327 /*@only@*/ metaStateExpression msexpr;
328 /*@observer@*/ metaStateInfo msinfo;
330 /*@only@*/ sRefList srlist;
331 /*@only@*/ globSet globset;
332 /*@only@*/ qtype qtyp;
333 /*@only@*/ cstring cname;
334 /*@observer@*/ annotationInfo annotation;
335 /*@only@*/ idDecl ntyp;
336 /*@only@*/ idDeclList ntyplist;
337 /*@only@*/ uentryList flist;
338 /*@owned@*/ uentryList entrylist;
339 /*@observer@*/ /*@dependent@*/ uentry entry;
340 /*@only@*/ uentry oentry;
341 /*@only@*/ exprNode expr;
342 /*@only@*/ enumNameList enumnamelist;
343 /*@only@*/ exprNodeList exprlist;
344 /*@only@*/ sRefSet srset;
345 /*@only@*/ cstringList cstringlist;
370 #define YYFLAG -32768
373 #define YYTRANSLATE(x) ((unsigned)(x) <= 446 ? yytranslate[x] : 451)
375 static const short yytranslate[] = { 0,
376 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
377 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
378 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
379 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
380 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
381 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
382 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
383 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
384 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
385 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
386 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
387 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
388 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
389 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
390 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
391 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
392 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
393 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
394 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
395 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
396 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
397 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
398 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
399 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
400 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
401 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
402 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
403 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
404 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
405 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
406 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
407 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
408 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
409 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
410 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
411 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
412 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
413 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
414 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
415 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
416 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
417 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
418 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
419 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
420 187, 188, 189, 190, 191, 192
424 static const short yyprhs[] = { 0,
425 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
426 21, 23, 32, 44, 45, 51, 53, 57, 59, 62,
427 64, 71, 75, 82, 83, 90, 91, 99, 101, 108,
428 112, 119, 120, 127, 128, 136, 137, 138, 149, 153,
429 157, 161, 164, 166, 170, 171, 176, 177, 182, 184,
430 188, 190, 192, 194, 198, 200, 204, 206, 208, 210,
431 212, 214, 216, 221, 227, 229, 231, 233, 235, 239,
432 244, 247, 251, 255, 259, 261, 263, 265, 266, 269,
433 270, 273, 275, 277, 279, 281, 283, 285, 287, 289,
434 291, 293, 295, 297, 300, 301, 306, 308, 311, 312,
435 316, 318, 322, 324, 326, 327, 330, 334, 337, 339,
436 343, 346, 347, 350, 352, 354, 356, 358, 360, 362,
437 364, 366, 368, 370, 372, 374, 376, 378, 380, 382,
438 386, 387, 391, 392, 393, 398, 401, 404, 406, 408,
439 410, 414, 419, 422, 426, 430, 434, 436, 438, 440,
440 444, 446, 448, 452, 457, 460, 464, 468, 472, 473,
441 475, 477, 481, 483, 485, 487, 491, 493, 495, 497,
442 502, 506, 511, 518, 524, 530, 533, 536, 538, 542,
443 544, 547, 550, 553, 556, 559, 562, 565, 568, 570,
444 572, 576, 578, 588, 589, 593, 598, 601, 606, 609,
445 611, 616, 618, 622, 626, 630, 632, 636, 640, 642,
446 646, 650, 652, 656, 660, 664, 668, 670, 674, 678,
447 680, 684, 686, 690, 692, 696, 698, 699, 704, 706,
448 707, 712, 714, 715, 716, 724, 726, 730, 734, 738,
449 742, 746, 750, 754, 758, 762, 766, 770, 772, 776,
450 777, 779, 781, 783, 785, 787, 791, 792, 802, 803,
451 815, 818, 819, 826, 827, 836, 841, 846, 847, 848,
452 851, 853, 858, 859, 864, 866, 870, 875, 877, 881,
453 883, 885, 887, 889, 891, 894, 897, 898, 905, 908,
454 911, 912, 919, 920, 926, 928, 930, 932, 934, 936,
455 938, 940, 942, 944, 946, 948, 950, 952, 954, 956,
456 958, 960, 962, 964, 966, 968, 970, 972, 974, 976,
457 978, 980, 982, 984, 986, 988, 990, 992, 994, 996,
458 998, 1000, 1002, 1004, 1006, 1008, 1010, 1012, 1014, 1016,
459 1018, 1020, 1022, 1024, 1026, 1028, 1030, 1033, 1036, 1039,
460 1042, 1045, 1048, 1051, 1054, 1057, 1060, 1063, 1066, 1069,
461 1072, 1075, 1078, 1081, 1084, 1087, 1090, 1093, 1096, 1099,
462 1102, 1105, 1109, 1111, 1116, 1118, 1122, 1125, 1128, 1131,
463 1132, 1134, 1135, 1136, 1137, 1150, 1151, 1152, 1164, 1171,
464 1178, 1179, 1180, 1191, 1192, 1193, 1204, 1210, 1216, 1221,
465 1226, 1227, 1229, 1231, 1234, 1240, 1244, 1247, 1252, 1254,
466 1258, 1263, 1270, 1271, 1280, 1285, 1287, 1291, 1294, 1296,
467 1301, 1303, 1305, 1308, 1311, 1313, 1316, 1318, 1321, 1323,
468 1325, 1327, 1330, 1332, 1335, 1338, 1342, 1344, 1348, 1350,
469 1354, 1356, 1358, 1362, 1363, 1366, 1367, 1372, 1377, 1379,
470 1381, 1384, 1386, 1388, 1391, 1392, 1394, 1400, 1403, 1407,
471 1411, 1416, 1420, 1425, 1430, 1436, 1438, 1440, 1442, 1444,
472 1446, 1448, 1450, 1452, 1454, 1456, 1458, 1460, 1463, 1466,
473 1474, 1481, 1484, 1485, 1486, 1497, 1498, 1505, 1507, 1509,
474 1511, 1513, 1516, 1518, 1520, 1522, 1524, 1526, 1528, 1530,
475 1534, 1536, 1537, 1541, 1544, 1547, 1549, 1551, 1553, 1555,
476 1557, 1559, 1561, 1563, 1565, 1567, 1571, 1573, 1575, 1578,
477 1581, 1582, 1585, 1586, 1591, 1592, 1599, 1600, 1604, 1605,
478 1611, 1615, 1618, 1622, 1623, 1624, 1625, 1626, 1627, 1629,
479 1632, 1635, 1639, 1642, 1646, 1650, 1655, 1658, 1661, 1665,
480 1669, 1674, 1676, 1679, 1681, 1684, 1686, 1689, 1691, 1694,
481 1696, 1699, 1701, 1706, 1709, 1710, 1716, 1717, 1724, 1729,
482 1734, 1735, 1736, 1747, 1749, 1750, 1755, 1757, 1759, 1761,
483 1763, 1765, 1768, 1770, 1774, 1776, 1781, 1785, 1790, 1797,
484 1803, 1809, 1812, 1815, 1817, 1820, 1823, 1826, 1829, 1832,
485 1835, 1838, 1841, 1843, 1845, 1850, 1852, 1856, 1860, 1864,
486 1866, 1870, 1874, 1876, 1880, 1884, 1886, 1890, 1894, 1898,
487 1902, 1904, 1908, 1912, 1914, 1918, 1920, 1924, 1926, 1930,
488 1932, 1936, 1938, 1942, 1944, 1945, 1946, 1954, 1956, 1960,
489 1964, 1968, 1972, 1976, 1980, 1984, 1988, 1992, 1996, 2000,
490 2002, 2003, 2005, 2008, 2016, 2019, 2022, 2030, 2037, 2040,
491 2044, 2047, 2051, 2054, 2058, 2062, 2066, 2070, 2073, 2077,
492 2078, 2080, 2082, 2084, 2086, 2088, 2090, 2092, 2094
495 static const short yyrhs[] = { -1,
496 194, 0, 195, 0, 194, 195, 0, 256, 447, 0,
497 196, 0, 197, 0, 207, 0, 210, 0, 293, 0,
498 1, 0, 76, 331, 345, 355, 345, 447, 301, 90,
499 0, 76, 331, 345, 355, 345, 23, 301, 306, 305,
500 447, 90, 0, 0, 77, 198, 199, 447, 90, 0,
501 200, 0, 331, 345, 200, 0, 204, 0, 359, 204,
502 0, 449, 0, 301, 24, 345, 355, 301, 25, 0,
503 201, 26, 27, 0, 201, 26, 301, 292, 27, 345,
504 0, 0, 201, 302, 24, 25, 202, 228, 0, 0,
505 201, 302, 24, 356, 25, 203, 228, 0, 449, 0,
506 301, 24, 345, 200, 301, 25, 0, 204, 26, 27,
507 0, 204, 26, 301, 292, 27, 345, 0, 0, 204,
508 302, 24, 25, 205, 229, 0, 0, 204, 302, 24,
509 356, 25, 206, 229, 0, 0, 0, 78, 449, 24,
510 356, 25, 208, 229, 209, 447, 90, 0, 91, 386,
511 94, 0, 92, 372, 94, 0, 93, 373, 94, 0,
512 91, 94, 0, 251, 0, 213, 23, 216, 0, 0,
513 225, 214, 22, 217, 0, 0, 5, 215, 22, 217,
514 0, 213, 0, 213, 40, 216, 0, 192, 0, 183,
515 0, 55, 0, 220, 218, 219, 0, 220, 0, 223,
516 222, 223, 0, 180, 0, 181, 0, 52, 0, 51,
517 0, 53, 0, 224, 0, 226, 24, 223, 25, 0,
518 24, 223, 227, 223, 25, 0, 225, 0, 188, 0,
519 448, 0, 185, 0, 225, 26, 27, 0, 225, 26,
520 188, 27, 0, 34, 225, 0, 24, 225, 25, 0,
521 225, 28, 449, 0, 225, 44, 449, 0, 221, 0,
522 33, 0, 32, 0, 0, 230, 228, 0, 0, 231,
523 229, 0, 232, 0, 236, 0, 235, 0, 309, 0,
524 312, 0, 242, 0, 233, 0, 237, 0, 235, 0,
525 310, 0, 314, 0, 243, 0, 233, 90, 0, 0,
526 73, 234, 244, 447, 0, 75, 0, 237, 90, 0,
527 0, 74, 238, 257, 0, 240, 0, 240, 40, 239,
528 0, 185, 0, 242, 0, 0, 243, 90, 0, 72,
529 239, 423, 0, 72, 239, 0, 245, 0, 244, 21,
530 245, 0, 246, 247, 0, 0, 248, 246, 0, 448,
531 0, 185, 0, 293, 0, 88, 0, 89, 0, 118,
532 0, 119, 0, 132, 0, 79, 0, 80, 0, 81,
533 0, 82, 0, 83, 0, 84, 0, 85, 0, 355,
534 0, 331, 345, 355, 0, 0, 19, 253, 403, 0,
535 0, 0, 254, 407, 255, 396, 0, 211, 252, 0,
536 260, 447, 0, 447, 0, 448, 0, 185, 0, 258,
537 26, 27, 0, 258, 26, 259, 27, 0, 34, 258,
538 0, 24, 258, 25, 0, 258, 28, 449, 0, 258,
539 44, 449, 0, 258, 0, 423, 0, 258, 0, 260,
540 21, 258, 0, 448, 0, 185, 0, 261, 26, 27,
541 0, 261, 26, 259, 27, 0, 34, 261, 0, 24,
542 261, 25, 0, 261, 28, 449, 0, 261, 44, 449,
543 0, 0, 263, 0, 261, 0, 263, 21, 261, 0,
544 448, 0, 185, 0, 423, 0, 24, 290, 25, 0,
545 186, 0, 113, 0, 264, 0, 265, 26, 290, 27,
546 0, 265, 24, 25, 0, 265, 24, 266, 25, 0,
547 70, 24, 289, 21, 367, 25, 0, 265, 345, 28,
548 449, 301, 0, 265, 345, 44, 449, 301, 0, 265,
549 47, 0, 265, 48, 0, 289, 0, 266, 21, 289,
550 0, 265, 0, 47, 267, 0, 48, 267, 0, 29,
551 273, 0, 34, 273, 0, 33, 273, 0, 32, 273,
552 0, 31, 273, 0, 30, 273, 0, 270, 0, 269,
553 0, 268, 28, 449, 0, 449, 0, 46, 301, 24,
554 367, 345, 21, 268, 25, 301, 0, 0, 301, 271,
555 272, 0, 42, 24, 367, 25, 0, 42, 267, 0,
556 43, 24, 367, 25, 0, 43, 267, 0, 267, 0,
557 24, 367, 25, 273, 0, 273, 0, 274, 34, 273,
558 0, 274, 35, 273, 0, 274, 36, 273, 0, 274,
559 0, 275, 33, 274, 0, 275, 32, 274, 0, 275,
560 0, 276, 49, 275, 0, 276, 50, 275, 0, 276,
561 0, 277, 37, 276, 0, 277, 38, 276, 0, 277,
562 51, 276, 0, 277, 52, 276, 0, 277, 0, 278,
563 53, 277, 0, 278, 54, 277, 0, 278, 0, 279,
564 29, 278, 0, 279, 0, 280, 39, 279, 0, 280,
565 0, 281, 40, 280, 0, 281, 0, 0, 282, 55,
566 283, 281, 0, 282, 0, 0, 284, 56, 285, 282,
567 0, 284, 0, 0, 0, 284, 41, 287, 290, 22,
568 288, 286, 0, 286, 0, 267, 23, 289, 0, 267,
569 57, 289, 0, 267, 58, 289, 0, 267, 59, 289,
570 0, 267, 60, 289, 0, 267, 61, 289, 0, 267,
571 62, 289, 0, 267, 63, 289, 0, 267, 64, 289,
572 0, 267, 65, 289, 0, 267, 66, 289, 0, 289,
573 0, 290, 21, 289, 0, 0, 290, 0, 286, 0,
574 294, 0, 71, 0, 299, 0, 331, 301, 18, 0,
575 0, 331, 345, 355, 345, 295, 301, 305, 18, 301,
576 0, 0, 331, 345, 355, 345, 23, 296, 301, 306,
577 305, 18, 301, 0, 355, 345, 0, 0, 355, 345,
578 23, 298, 301, 306, 0, 0, 45, 331, 300, 345,
579 303, 301, 241, 18, 0, 45, 331, 301, 18, 0,
580 45, 303, 301, 18, 0, 0, 0, 304, 301, 0,
581 297, 0, 303, 21, 345, 297, 0, 0, 305, 21,
582 345, 297, 0, 289, 0, 19, 307, 20, 0, 19,
583 307, 21, 20, 0, 306, 0, 307, 21, 306, 0,
584 114, 0, 112, 0, 115, 0, 116, 0, 117, 0,
585 177, 301, 0, 310, 90, 0, 0, 249, 345, 311,
586 263, 447, 301, 0, 314, 90, 0, 250, 345, 0,
587 0, 313, 320, 315, 262, 447, 301, 0, 0, 313,
588 316, 317, 447, 301, 0, 219, 0, 212, 0, 141,
589 0, 142, 0, 144, 0, 145, 0, 143, 0, 126,
590 0, 129, 0, 127, 0, 128, 0, 134, 0, 135,
591 0, 120, 0, 122, 0, 121, 0, 130, 0, 131,
592 0, 123, 0, 125, 0, 138, 0, 140, 0, 153,
593 0, 152, 0, 137, 0, 139, 0, 177, 0, 187,
594 0, 136, 0, 151, 0, 150, 0, 160, 0, 158,
595 0, 159, 0, 154, 0, 155, 0, 156, 0, 157,
596 0, 161, 0, 162, 0, 165, 0, 166, 0, 163,
597 0, 164, 0, 149, 0, 146, 0, 147, 0, 148,
598 0, 118, 0, 119, 0, 132, 0, 133, 0, 110,
599 301, 0, 111, 301, 0, 327, 301, 0, 320, 301,
600 0, 318, 301, 0, 321, 301, 0, 319, 301, 0,
601 323, 301, 0, 322, 301, 0, 324, 301, 0, 325,
602 301, 0, 167, 345, 0, 169, 345, 0, 168, 345,
603 0, 170, 345, 0, 171, 345, 0, 172, 345, 0,
604 173, 345, 0, 174, 345, 0, 175, 345, 0, 176,
605 345, 0, 450, 345, 0, 336, 345, 0, 350, 345,
606 0, 326, 345, 0, 301, 331, 301, 0, 333, 0,
607 333, 87, 332, 90, 0, 367, 0, 367, 21, 332,
608 0, 308, 334, 0, 328, 334, 0, 329, 334, 0,
609 0, 331, 0, 0, 0, 0, 345, 67, 449, 301,
610 19, 337, 400, 346, 401, 338, 20, 335, 0, 0,
611 0, 345, 68, 449, 301, 19, 339, 400, 346, 401,
612 340, 20, 0, 345, 67, 449, 301, 19, 20, 0,
613 345, 68, 449, 301, 19, 20, 0, 0, 0, 345,
614 67, 301, 19, 341, 400, 346, 401, 342, 20, 0,
615 0, 0, 345, 68, 301, 19, 343, 400, 346, 401,
616 344, 20, 0, 345, 67, 301, 19, 20, 0, 345,
617 68, 301, 19, 20, 0, 345, 67, 449, 345, 0,
618 345, 68, 449, 345, 0, 0, 347, 0, 210, 0,
619 346, 347, 0, 331, 345, 348, 301, 18, 0, 331,
620 301, 18, 0, 349, 345, 0, 348, 21, 349, 345,
621 0, 355, 0, 22, 301, 292, 0, 355, 22, 301,
622 292, 0, 345, 69, 19, 352, 20, 301, 0, 0,
623 345, 69, 449, 19, 351, 352, 20, 301, 0, 345,
624 69, 449, 301, 0, 353, 0, 352, 21, 353, 0,
625 352, 21, 0, 449, 0, 449, 23, 301, 292, 0,
626 201, 0, 369, 0, 359, 191, 0, 359, 354, 0,
627 201, 0, 359, 201, 0, 362, 0, 345, 360, 0,
628 110, 0, 111, 0, 357, 0, 358, 357, 0, 34,
629 0, 34, 358, 0, 34, 359, 0, 34, 358, 359,
630 0, 361, 0, 361, 21, 5, 0, 449, 0, 361,
631 21, 449, 0, 5, 0, 363, 0, 363, 21, 5,
632 0, 0, 364, 366, 0, 0, 363, 21, 365, 366,
633 0, 301, 331, 354, 301, 0, 449, 0, 330, 0,
634 330, 368, 0, 359, 0, 370, 0, 359, 370, 0,
635 0, 370, 0, 301, 24, 345, 368, 25, 0, 26,
636 27, 0, 26, 292, 27, 0, 370, 26, 27, 0,
637 370, 26, 292, 27, 0, 301, 24, 25, 0, 301,
638 24, 362, 25, 0, 370, 301, 24, 25, 0, 370,
639 301, 24, 362, 25, 0, 388, 0, 390, 0, 393,
640 0, 396, 0, 409, 0, 412, 0, 444, 0, 417,
641 0, 446, 0, 374, 0, 372, 0, 381, 0, 374,
642 381, 0, 416, 374, 0, 443, 387, 11, 24, 290,
643 25, 18, 0, 443, 387, 11, 24, 290, 25, 0,
644 376, 381, 0, 0, 0, 13, 24, 291, 18, 291,
645 18, 377, 291, 378, 25, 0, 0, 189, 398, 24,
646 380, 420, 25, 0, 190, 0, 388, 0, 390, 0,
647 393, 0, 384, 407, 0, 384, 0, 385, 0, 409,
648 0, 382, 0, 375, 0, 379, 0, 446, 0, 24,
649 381, 25, 0, 1, 0, 0, 411, 383, 381, 0,
650 398, 19, 0, 402, 20, 0, 387, 0, 406, 0,
651 388, 0, 390, 0, 393, 0, 397, 0, 410, 0,
652 412, 0, 417, 0, 445, 0, 24, 387, 25, 0,
653 446, 0, 1, 0, 449, 22, 0, 109, 371, 0,
654 0, 100, 389, 0, 0, 6, 292, 391, 22, 0,
655 0, 100, 389, 6, 292, 392, 22, 0, 0, 7,
656 394, 22, 0, 0, 100, 389, 7, 395, 22, 0,
657 24, 396, 25, 0, 398, 404, 0, 398, 405, 399,
658 0, 0, 0, 0, 0, 0, 20, 0, 109, 20,
659 0, 408, 20, 0, 408, 109, 20, 0, 407, 20,
660 0, 407, 109, 20, 0, 407, 408, 20, 0, 407,
661 408, 109, 20, 0, 19, 403, 0, 19, 20, 0,
662 19, 406, 20, 0, 19, 407, 20, 0, 19, 407,
663 408, 20, 0, 387, 0, 406, 387, 0, 293, 0,
664 407, 293, 0, 371, 0, 408, 371, 0, 18, 0,
665 290, 18, 0, 18, 0, 290, 18, 0, 290, 0,
666 8, 24, 290, 25, 0, 411, 371, 0, 0, 411,
667 371, 9, 413, 371, 0, 0, 10, 24, 290, 414,
668 25, 371, 0, 11, 24, 290, 25, 0, 11, 24,
669 290, 25, 0, 0, 0, 189, 418, 398, 24, 419,
670 420, 25, 396, 442, 399, 0, 422, 0, 0, 420,
671 421, 21, 422, 0, 441, 0, 448, 0, 186, 0,
672 185, 0, 188, 0, 423, 188, 0, 423, 0, 24,
673 290, 25, 0, 424, 0, 265, 26, 290, 27, 0,
674 265, 24, 25, 0, 265, 24, 266, 25, 0, 70,
675 24, 289, 21, 367, 25, 0, 265, 345, 28, 449,
676 301, 0, 265, 345, 44, 449, 301, 0, 265, 47,
677 0, 265, 48, 0, 425, 0, 47, 267, 0, 48,
678 267, 0, 29, 273, 0, 34, 273, 0, 33, 273,
679 0, 32, 273, 0, 31, 273, 0, 30, 273, 0,
680 270, 0, 426, 0, 24, 367, 25, 273, 0, 427,
681 0, 274, 34, 273, 0, 274, 35, 273, 0, 274,
682 36, 273, 0, 428, 0, 275, 33, 274, 0, 275,
683 32, 274, 0, 429, 0, 276, 49, 275, 0, 276,
684 50, 275, 0, 430, 0, 277, 37, 276, 0, 277,
685 38, 276, 0, 277, 51, 276, 0, 277, 52, 276,
686 0, 431, 0, 278, 53, 277, 0, 278, 54, 277,
687 0, 432, 0, 279, 29, 278, 0, 433, 0, 280,
688 39, 279, 0, 434, 0, 281, 40, 280, 0, 435,
689 0, 282, 55, 281, 0, 436, 0, 284, 56, 282,
690 0, 437, 0, 0, 0, 284, 41, 439, 290, 22,
691 440, 286, 0, 438, 0, 267, 23, 289, 0, 267,
692 57, 289, 0, 267, 58, 289, 0, 267, 59, 289,
693 0, 267, 60, 289, 0, 267, 61, 289, 0, 267,
694 62, 289, 0, 267, 63, 289, 0, 267, 64, 289,
695 0, 267, 65, 289, 0, 267, 66, 289, 0, 190,
696 0, 0, 12, 0, 415, 371, 0, 443, 371, 11,
697 24, 290, 25, 18, 0, 376, 371, 0, 415, 387,
698 0, 443, 387, 11, 24, 290, 25, 18, 0, 443,
699 387, 11, 24, 290, 25, 0, 376, 387, 0, 14,
700 449, 18, 0, 15, 18, 0, 99, 15, 18, 0,
701 16, 18, 0, 95, 16, 18, 0, 96, 16, 18,
702 0, 97, 16, 18, 0, 98, 16, 18, 0, 17,
703 18, 0, 17, 290, 18, 0, 0, 18, 0, 184,
704 0, 185, 0, 189, 0, 190, 0, 448, 0, 186,
711 static const short yyrline[] = { 0,
712 325, 326, 329, 330, 333, 334, 335, 336, 337, 338,
713 339, 342, 344, 348, 348, 355, 361, 365, 366, 370,
714 371, 373, 375, 387, 390, 400, 403, 411, 412, 414,
715 416, 432, 435, 443, 446, 454, 456, 456, 460, 461,
716 462, 463, 466, 469, 473, 473, 476, 476, 481, 482,
717 485, 490, 491, 494, 495, 498, 503, 504, 507, 508,
718 509, 512, 513, 514, 519, 520, 523, 525, 527, 529,
719 538, 540, 542, 544, 560, 564, 565, 572, 573, 581,
720 583, 587, 588, 589, 590, 591, 592, 595, 596, 597,
721 598, 599, 600, 603, 606, 607, 614, 617, 620, 626,
722 634, 636, 640, 643, 644, 647, 650, 656, 660, 661,
723 664, 667, 668, 671, 672, 673, 676, 677, 678, 679,
724 680, 683, 684, 685, 686, 687, 690, 691, 694, 700,
725 704, 706, 710, 711, 713, 720, 730, 731, 734, 735,
726 736, 737, 738, 739, 740, 741, 745, 746, 750, 751,
727 754, 756, 758, 759, 760, 761, 762, 764, 768, 769,
728 772, 776, 788, 789, 790, 791, 792, 793, 796, 797,
729 798, 799, 800, 801, 802, 803, 804, 807, 808, 811,
730 812, 813, 814, 815, 816, 817, 818, 819, 820, 821,
731 824, 825, 828, 832, 833, 836, 837, 838, 839, 842,
732 843, 847, 848, 849, 850, 853, 854, 855, 858, 859,
733 860, 863, 864, 865, 866, 867, 870, 871, 872, 875,
734 876, 879, 880, 884, 885, 888, 889, 894, 900, 901,
735 907, 913, 914, 914, 916, 919, 920, 921, 922, 923,
736 924, 925, 926, 927, 928, 929, 930, 933, 934, 937,
737 938, 941, 946, 947, 948, 951, 965, 970, 976, 978,
738 984, 989, 989, 993, 994, 996, 997, 1000, 1003, 1006,
739 1009, 1010, 1013, 1014, 1017, 1018, 1019, 1023, 1025, 1034,
740 1035, 1036, 1037, 1038, 1040, 1044, 1047, 1053, 1062, 1065,
741 1068, 1075, 1082, 1088, 1113, 1114, 1117, 1118, 1119, 1120,
742 1121, 1124, 1125, 1126, 1127, 1130, 1131, 1132, 1133, 1134,
743 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144,
744 1145, 1146, 1150, 1151, 1154, 1155, 1158, 1159, 1162, 1163,
745 1164, 1165, 1168, 1169, 1170, 1171, 1172, 1173, 1176, 1177,
746 1178, 1179, 1182, 1183, 1184, 1185, 1188, 1189, 1190, 1191,
747 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1205, 1206, 1207,
748 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217,
749 1218, 1221, 1225, 1226, 1230, 1231, 1235, 1236, 1237, 1240,
750 1241, 1245, 1252, 1254, 1256, 1257, 1259, 1261, 1262, 1264,
751 1266, 1268, 1270, 1271, 1272, 1275, 1276, 1278, 1280, 1281,
752 1284, 1287, 1288, 1289, 1292, 1294, 1298, 1300, 1304, 1305,
753 1306, 1310, 1312, 1312, 1314, 1317, 1319, 1321, 1324, 1329,
754 1336, 1337, 1338, 1345, 1349, 1350, 1354, 1355, 1358, 1359,
755 1362, 1363, 1366, 1367, 1368, 1369, 1372, 1373, 1376, 1377,
756 1380, 1381, 1382, 1385, 1385, 1386, 1387, 1390, 1402, 1418,
757 1419, 1422, 1423, 1424, 1427, 1428, 1431, 1433, 1434, 1436,
758 1437, 1439, 1441, 1443, 1445, 1451, 1452, 1453, 1454, 1455,
759 1456, 1457, 1458, 1459, 1463, 1466, 1469, 1470, 1474, 1476,
760 1478, 1480, 1484, 1485, 1487, 1491, 1493, 1495, 1498, 1499,
761 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509,
762 1510, 1513, 1514, 1519, 1522, 1525, 1526, 1529, 1530, 1531,
763 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1542, 1543,
764 1550, 1551, 1557, 1558, 1559, 1560, 1563, 1564, 1565, 1566,
765 1569, 1570, 1574, 1577, 1580, 1583, 1586, 1589, 1592, 1593,
766 1594, 1595, 1597, 1598, 1600, 1602, 1608, 1612, 1614, 1616,
767 1618, 1622, 1623, 1626, 1627, 1630, 1631, 1634, 1635, 1638,
768 1639, 1640, 1643, 1656, 1661, 1662, 1666, 1667, 1670, 1675,
769 1678, 1679, 1680, 1688, 1689, 1689, 1693, 1694, 1695, 1706,
770 1713, 1714, 1717, 1718, 1721, 1722, 1723, 1724, 1725, 1727,
771 1728, 1729, 1730, 1733, 1734, 1735, 1736, 1737, 1738, 1739,
772 1740, 1741, 1742, 1745, 1746, 1749, 1750, 1751, 1752, 1755,
773 1756, 1757, 1760, 1761, 1762, 1765, 1766, 1767, 1768, 1769,
774 1772, 1773, 1774, 1777, 1778, 1781, 1782, 1786, 1787, 1790,
775 1791, 1794, 1795, 1798, 1799, 1800, 1801, 1804, 1805, 1806,
776 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1818,
777 1819, 1822, 1825, 1827, 1829, 1833, 1834, 1836, 1838, 1841,
778 1842, 1843, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1854,
779 1855, 1858, 1861, 1862, 1863, 1864, 1865, 1868, 1869
784 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
786 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
787 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
788 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
789 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
790 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
791 "TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP",
792 "DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP",
793 "MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
794 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
795 "VA_ARG","VA_DCL","QWARN","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION",
796 "QITER","QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
797 "QINVARIANT","QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND",
798 "TENDMACRO","QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE",
799 "QFALLTHROUGH","QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED",
800 "QPRINTFLIKE","QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST",
801 "QVOLATILE","QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT",
802 "QIN","QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED",
803 "QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED",
804 "QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT",
805 "QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT",
806 "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE",
807 "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF",
808 "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE",
809 "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED",
810 "QSETBUFFERSIZE","QSETSTRINGLENGTH","QMAXSET","QMAXREAD","QTESTINRANGE","TCAND",
811 "IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID","CANNOTATION","CCONSTANT","ITER_NAME",
812 "ITER_ENDNAME","TYPE_NAME","METASTATE_NAME","file","externalDefs","externalDef",
813 "constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2",
814 "@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
815 "metaStateConstraint","metaStateSpecifier","@8","@9","metaStateExpression","metaStateName",
816 "constraintSeperator","BufConstraintList","BufConstraint","bufferModifier","relationalOp",
817 "BufConstraintExpr","BufConstraintTerm","BufConstraintSrefExpr","BufUnaryOp",
818 "BufBinaryOp","functionClauses","functionClausesPlain","functionClause","functionClausePlain",
819 "globalsClause","globalsClausePlain","@10","nomodsClause","modifiesClause","modifiesClausePlain",
820 "@11","flagSpec","flagId","optWarnClause","warnClause","warnClausePlain","globIdList",
821 "globIdListExpr","optGlobQuals","globId","globQual","stateTag","conditionTag",
822 "fcnDefHdrAux","fcnBody","@12","@13","@14","fcnDef","locModifies","modListExpr",
823 "mExpr","modList","specClauseListExpr","optSpecClauseList","specClauseList",
824 "primaryExpr","postfixExpr","argumentExprList","unaryExpr","fieldDesignator",
825 "offsetofExpr","sizeofExpr","@15","sizeofExprAux","castExpr","timesExpr","plusExpr",
826 "shiftExpr","relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr",
827 "andExpr","@16","orExpr","@17","conditionalExpr","@18","@19","assignExpr","expr",
828 "optExpr","constantExpr","initializer","instanceDecl","@20","@21","namedInitializer",
829 "@22","typeDecl","@23","IsType","PushType","namedInitializerList","namedInitializerListAux",
830 "optDeclarators","init","initList","storageSpecifier","stateClause","stateClausePlain",
831 "@24","conditionClause","startConditionClause","conditionClausePlain","@25",
832 "@26","functionConstraint","exitsQualifier","checkQualifier","stateQualifier",
833 "paramQualifier","visibilityQualifier","returnQualifier","typedefQualifier",
834 "refcountQualifier","typeModifier","definedQualifier","typeQualifier","typeSpecifier",
835 "completeType","completeTypeSpecifier","altType","completeTypeSpecifierAux",
836 "optCompleteType","optStructInvariant","suSpc","@27","@28","@29","@30","@31",
837 "@32","@33","@34","NotType","structDeclList","structDecl","structNamedDeclList",
838 "structNamedDecl","enumSpc","@35","enumeratorList","enumerator","optNamedDecl",
839 "namedDecl","genericParamList","innerMods","innerModsList","pointers","paramIdList",
840 "idList","paramTypeList","paramList","@36","@37","paramDecl","typeExpression",
841 "abstractDecl","optAbstractDeclBase","abstractDeclBase","stmt","iterBody","endBody",
842 "iterDefStmtList","iterDefIterationStmt","forPred","@38","@39","partialIterStmt",
843 "@40","iterDefStmt","iterSelectionStmt","@41","openScope","closeScope","macroBody",
844 "stmtErr","labeledStmt","optExtraFallThroughs","caseStmt","@42","@43","defaultStmt",
845 "@44","@45","compoundStmt","compoundStmtErr","CreateInnerScope","DeleteInnerScope",
846 "CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe","compoundStmtRest",
847 "compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList","stmtList",
848 "expressionStmt","expressionStmtErr","ifPred","selectionStmt","@46","@47","whilePred",
849 "iterWhilePred","iterStmt","@48","@49","iterArgList","@50","iterArgExpr","cconstantExpr",
850 "primaryIterExpr","postfixIterExpr","unaryIterExpr","castIterExpr","timesIterExpr",
851 "plusIterExpr","shiftIterExpr","relationalIterExpr","equalityIterExpr","bitandIterExpr",
852 "xorIterExpr","bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr",
853 "@51","@52","assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr",
854 "jumpStmt","optSemi","id","newId","typeName", NULL
858 static const short yyr1[] = { 0,
859 193, 193, 194, 194, 195, 195, 195, 195, 195, 195,
860 195, 196, 196, 198, 197, 199, 199, 200, 200, 201,
861 201, 201, 201, 202, 201, 203, 201, 204, 204, 204,
862 204, 205, 204, 206, 204, 208, 209, 207, 210, 210,
863 210, 210, 211, 212, 214, 213, 215, 213, 216, 216,
864 217, 218, 218, 219, 219, 220, 221, 221, 222, 222,
865 222, 223, 223, 223, 224, 224, 225, 225, 225, 225,
866 225, 225, 225, 225, 226, 227, 227, 228, 228, 229,
867 229, 230, 230, 230, 230, 230, 230, 231, 231, 231,
868 231, 231, 231, 232, 234, 233, 235, 236, 238, 237,
869 239, 239, 240, 241, 241, 242, 243, 243, 244, 244,
870 245, 246, 246, 247, 247, 247, 248, 248, 248, 248,
871 248, 249, 249, 249, 249, 249, 250, 250, 251, 251,
872 253, 252, 254, 255, 252, 256, 257, 257, 258, 258,
873 258, 258, 258, 258, 258, 258, 259, 259, 260, 260,
874 261, 261, 261, 261, 261, 261, 261, 261, 262, 262,
875 263, 263, 264, 264, 264, 264, 264, 264, 265, 265,
876 265, 265, 265, 265, 265, 265, 265, 266, 266, 267,
877 267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
878 268, 268, 269, 271, 270, 272, 272, 272, 272, 273,
879 273, 274, 274, 274, 274, 275, 275, 275, 276, 276,
880 276, 277, 277, 277, 277, 277, 278, 278, 278, 279,
881 279, 280, 280, 281, 281, 282, 283, 282, 284, 285,
882 284, 286, 287, 288, 286, 289, 289, 289, 289, 289,
883 289, 289, 289, 289, 289, 289, 289, 290, 290, 291,
884 291, 292, 293, 293, 293, 294, 295, 294, 296, 294,
885 297, 298, 297, 300, 299, 299, 299, 301, 302, 303,
886 304, 304, 305, 305, 306, 306, 306, 307, 307, 308,
887 308, 308, 308, 308, -1, 309, 311, 310, 312, 313,
888 315, 314, 316, 314, 317, 317, 318, 318, 318, 318,
889 318, 319, 319, 319, 319, 320, 320, 320, 320, 320,
890 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
891 320, 320, 321, 321, 322, 322, 323, 323, 324, 324,
892 324, 324, 325, 325, 325, 325, 325, 325, 326, 326,
893 326, 326, 327, 327, 327, 327, 328, 328, 328, 328,
894 328, 328, 328, 328, 328, 328, 328, 329, 329, 329,
895 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
896 329, 330, 331, 331, 332, 332, 333, 333, 333, 334,
897 334, 335, 337, 338, 336, 339, 340, 336, 336, 336,
898 341, 342, 336, 343, 344, 336, 336, 336, 336, 336,
899 345, 346, 346, 346, 347, 347, 348, 348, 349, 349,
900 349, 350, 351, 350, 350, 352, 352, 352, 353, 353,
901 354, 354, 354, 354, 355, 355, 356, 356, 357, 357,
902 358, 358, 359, 359, 359, 359, 360, 360, 361, 361,
903 362, 362, 362, 364, 363, 365, 363, 366, 366, 367,
904 367, 368, 368, 368, 369, 369, 370, 370, 370, 370,
905 370, 370, 370, 370, 370, 371, 371, 371, 371, 371,
906 371, 371, 371, 371, 372, 373, 374, 374, 375, 375,
907 375, 375, 377, 378, 376, 380, 379, 379, 381, 381,
908 381, 381, 381, 381, 381, 381, 381, 381, 381, 381,
909 381, 383, 382, 384, 385, 386, 386, 387, 387, 387,
910 387, 387, 387, 387, 387, 387, 387, 387, 388, 388,
911 389, 389, 391, 390, 392, 390, 394, 393, 395, 393,
912 396, 396, 397, 398, 399, 400, 401, 402, 403, 403,
913 403, 403, 403, 403, 403, 403, 404, 405, 405, 405,
914 405, 406, 406, 407, 407, 408, 408, 409, 409, 410,
915 410, 410, 411, 412, 413, 412, 414, 412, 415, 416,
916 418, 419, 417, 420, 421, 420, 422, 422, 422, 422,
917 423, 423, 424, 424, 425, 425, 425, 425, 425, 425,
918 425, 425, 425, 426, 426, 426, 426, 426, 426, 426,
919 426, 426, 426, 427, 427, 428, 428, 428, 428, 429,
920 429, 429, 430, 430, 430, 431, 431, 431, 431, 431,
921 432, 432, 432, 433, 433, 434, 434, 435, 435, 436,
922 436, 437, 437, 438, 439, 440, 438, 441, 441, 441,
923 441, 441, 441, 441, 441, 441, 441, 441, 441, 442,
924 442, 443, 444, 444, 444, 445, 445, 445, 445, 446,
925 446, 446, 446, 446, 446, 446, 446, 446, 446, 447,
926 447, 448, 449, 449, 449, 449, 449, 450, 450
929 static const short yyr2[] = { 0,
930 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
931 1, 8, 11, 0, 5, 1, 3, 1, 2, 1,
932 6, 3, 6, 0, 6, 0, 7, 1, 6, 3,
933 6, 0, 6, 0, 7, 0, 0, 10, 3, 3,
934 3, 2, 1, 3, 0, 4, 0, 4, 1, 3,
935 1, 1, 1, 3, 1, 3, 1, 1, 1, 1,
936 1, 1, 4, 5, 1, 1, 1, 1, 3, 4,
937 2, 3, 3, 3, 1, 1, 1, 0, 2, 0,
938 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
939 1, 1, 1, 2, 0, 4, 1, 2, 0, 3,
940 1, 3, 1, 1, 0, 2, 3, 2, 1, 3,
941 2, 0, 2, 1, 1, 1, 1, 1, 1, 1,
942 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
943 0, 3, 0, 0, 4, 2, 2, 1, 1, 1,
944 3, 4, 2, 3, 3, 3, 1, 1, 1, 3,
945 1, 1, 3, 4, 2, 3, 3, 3, 0, 1,
946 1, 3, 1, 1, 1, 3, 1, 1, 1, 4,
947 3, 4, 6, 5, 5, 2, 2, 1, 3, 1,
948 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
949 3, 1, 9, 0, 3, 4, 2, 4, 2, 1,
950 4, 1, 3, 3, 3, 1, 3, 3, 1, 3,
951 3, 1, 3, 3, 3, 3, 1, 3, 3, 1,
952 3, 1, 3, 1, 3, 1, 0, 4, 1, 0,
953 4, 1, 0, 0, 7, 1, 3, 3, 3, 3,
954 3, 3, 3, 3, 3, 3, 3, 1, 3, 0,
955 1, 1, 1, 1, 1, 3, 0, 9, 0, 11,
956 2, 0, 6, 0, 8, 4, 4, 0, 0, 2,
957 1, 4, 0, 4, 1, 3, 4, 1, 3, 1,
958 1, 1, 1, 1, 2, 2, 0, 6, 2, 2,
959 0, 6, 0, 5, 1, 1, 1, 1, 1, 1,
960 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
961 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
962 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
963 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
964 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
965 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
966 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
967 2, 3, 1, 4, 1, 3, 2, 2, 2, 0,
968 1, 0, 0, 0, 12, 0, 0, 11, 6, 6,
969 0, 0, 10, 0, 0, 10, 5, 5, 4, 4,
970 0, 1, 1, 2, 5, 3, 2, 4, 1, 3,
971 4, 6, 0, 8, 4, 1, 3, 2, 1, 4,
972 1, 1, 2, 2, 1, 2, 1, 2, 1, 1,
973 1, 2, 1, 2, 2, 3, 1, 3, 1, 3,
974 1, 1, 3, 0, 2, 0, 4, 4, 1, 1,
975 2, 1, 1, 2, 0, 1, 5, 2, 3, 3,
976 4, 3, 4, 4, 5, 1, 1, 1, 1, 1,
977 1, 1, 1, 1, 1, 1, 1, 2, 2, 7,
978 6, 2, 0, 0, 10, 0, 6, 1, 1, 1,
979 1, 2, 1, 1, 1, 1, 1, 1, 1, 3,
980 1, 0, 3, 2, 2, 1, 1, 1, 1, 1,
981 1, 1, 1, 1, 1, 3, 1, 1, 2, 2,
982 0, 2, 0, 4, 0, 6, 0, 3, 0, 5,
983 3, 2, 3, 0, 0, 0, 0, 0, 1, 2,
984 2, 3, 2, 3, 3, 4, 2, 2, 3, 3,
985 4, 1, 2, 1, 2, 1, 2, 1, 2, 1,
986 2, 1, 4, 2, 0, 5, 0, 6, 4, 4,
987 0, 0, 10, 1, 0, 4, 1, 1, 1, 1,
988 1, 2, 1, 3, 1, 4, 3, 4, 6, 5,
989 5, 2, 2, 1, 2, 2, 2, 2, 2, 2,
990 2, 2, 1, 1, 4, 1, 3, 3, 3, 1,
991 3, 3, 1, 3, 3, 1, 3, 3, 3, 3,
992 1, 3, 3, 1, 3, 1, 3, 1, 3, 1,
993 3, 1, 3, 1, 0, 0, 7, 1, 3, 3,
994 3, 3, 3, 3, 3, 3, 3, 3, 3, 1,
995 0, 1, 2, 7, 2, 2, 7, 6, 2, 3,
996 2, 3, 2, 3, 3, 3, 3, 2, 3, 0,
997 1, 1, 1, 1, 1, 1, 1, 1, 1
1000 static const short yydefact[] = { 0,
1001 11, 433, 401, 254, 401, 14, 0, 0, 0, 0,
1002 268, 268, 281, 280, 282, 283, 284, 343, 344, 308,
1003 310, 309, 313, 314, 302, 304, 305, 303, 311, 312,
1004 345, 346, 306, 307, 323, 319, 315, 320, 316, 297,
1005 298, 301, 299, 300, 340, 341, 342, 339, 325, 324,
1006 318, 317, 329, 330, 331, 332, 327, 328, 326, 333,
1007 334, 337, 338, 335, 336, 401, 401, 401, 401, 401,
1008 401, 401, 401, 401, 401, 321, 672, 673, 677, 322,
1009 674, 675, 678, 0, 3, 6, 7, 425, 8, 9,
1010 133, 43, 670, 10, 253, 255, 0, 380, 268, 268,
1011 268, 268, 268, 268, 268, 268, 401, 268, 380, 380,
1012 401, 373, 401, 0, 401, 129, 268, 676, 20, 401,
1013 429, 430, 431, 434, 435, 271, 268, 268, 264, 401,
1014 679, 401, 401, 677, 0, 518, 268, 527, 0, 0,
1015 0, 652, 0, 0, 0, 0, 268, 560, 0, 268,
1016 268, 268, 268, 268, 268, 268, 268, 268, 0, 42,
1017 0, 0, 0, 0, 0, 521, 268, 168, 164, 167,
1018 581, 571, 169, 180, 200, 190, 189, 202, 206, 209,
1019 212, 217, 220, 222, 224, 226, 229, 232, 236, 248,
1020 562, 194, 0, 0, 552, 508, 509, 510, 511, 0,
1021 0, 512, 268, 513, 0, 514, 165, 0, 515, 517,
1022 163, 0, 501, 0, 558, 0, 534, 488, 0, 0,
1023 0, 497, 0, 498, 477, 496, 493, 494, 489, 490,
1024 491, 0, 0, 495, 502, 0, 0, 499, 476, 0,
1025 347, 348, 358, 360, 359, 361, 362, 363, 364, 365,
1026 366, 367, 4, 268, 0, 131, 136, 401, 671, 5,
1027 401, 381, 377, 351, 353, 350, 352, 355, 354, 356,
1028 357, 371, 349, 378, 379, 0, 268, 268, 369, 268,
1029 268, 0, 370, 426, 368, 432, 436, 401, 0, 270,
1030 401, 0, 261, 268, 670, 16, 18, 0, 401, 268,
1031 28, 444, 268, 164, 167, 200, 252, 523, 163, 0,
1032 268, 268, 268, 268, 0, 661, 663, 668, 0, 0,
1033 401, 450, 0, 0, 183, 188, 187, 186, 185, 184,
1034 0, 268, 181, 182, 268, 0, 0, 0, 0, 0,
1035 521, 0, 268, 520, 268, 466, 467, 468, 469, 0,
1036 470, 471, 268, 473, 268, 472, 474, 534, 268, 268,
1037 176, 177, 0, 268, 268, 268, 268, 268, 268, 268,
1038 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
1039 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
1040 227, 233, 230, 561, 268, 0, 659, 39, 0, 535,
1041 553, 564, 656, 582, 0, 519, 268, 0, 0, 0,
1042 559, 40, 478, 482, 554, 401, 492, 504, 505, 0,
1043 0, 0, 41, 22, 268, 444, 401, 401, 268, 256,
1044 130, 401, 0, 375, 0, 401, 0, 401, 0, 268,
1045 268, 267, 268, 266, 262, 401, 0, 268, 0, 401,
1046 268, 19, 441, 0, 0, 427, 442, 268, 0, 0,
1047 528, 0, 567, 0, 251, 0, 660, 669, 166, 268,
1048 268, 0, 452, 451, 453, 268, 516, 268, 0, 664,
1049 665, 666, 667, 662, 522, 268, 529, 0, 655, 401,
1050 532, 653, 0, 0, 171, 0, 178, 0, 0, 0,
1051 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
1052 247, 203, 204, 205, 208, 207, 210, 211, 213, 214,
1053 215, 216, 218, 219, 221, 223, 225, 268, 268, 268,
1054 249, 268, 268, 195, 548, 167, 552, 0, 401, 533,
1055 565, 0, 0, 500, 486, 268, 555, 503, 0, 0,
1056 24, 0, 539, 268, 556, 132, 401, 268, 534, 268,
1057 257, 374, 268, 391, 0, 399, 394, 0, 400, 0,
1058 416, 419, 413, 415, 272, 268, 268, 670, 15, 30,
1059 268, 444, 268, 17, 428, 437, 439, 36, 446, 401,
1060 445, 449, 524, 563, 0, 569, 268, 372, 458, 0,
1061 444, 454, 268, 0, 201, 401, 268, 525, 0, 531,
1062 547, 0, 572, 268, 172, 170, 268, 268, 228, 0,
1063 231, 268, 197, 268, 199, 549, 550, 268, 268, 268,
1064 570, 268, 401, 268, 401, 78, 26, 540, 543, 268,
1065 268, 541, 268, 557, 534, 135, 0, 259, 268, 376,
1066 397, 536, 383, 398, 536, 386, 268, 418, 268, 0,
1067 105, 268, 268, 268, 0, 32, 0, 268, 0, 80,
1068 443, 268, 455, 268, 0, 459, 462, 268, 0, 460,
1069 0, 444, 0, 0, 0, 530, 268, 268, 179, 174,
1070 175, 234, 0, 0, 551, 566, 0, 268, 268, 268,
1071 268, 268, 268, 268, 268, 268, 0, 164, 167, 180,
1072 200, 189, 206, 209, 212, 217, 220, 222, 224, 226,
1073 229, 0, 575, 574, 165, 585, 594, 604, 606, 610,
1074 613, 616, 621, 624, 626, 628, 630, 632, 634, 638,
1075 577, 163, 0, 23, 0, 95, 99, 97, 122, 123,
1076 124, 125, 126, 127, 128, 25, 78, 82, 0, 84,
1077 83, 0, 87, 0, 401, 401, 85, 0, 86, 293,
1078 0, 78, 544, 545, 268, 542, 21, 268, 273, 401,
1079 389, 536, 401, 390, 536, 412, 417, 268, 0, 0,
1080 104, 268, 275, 263, 268, 0, 401, 80, 34, 0,
1081 438, 440, 37, 80, 88, 90, 89, 93, 91, 92,
1082 447, 421, 0, 268, 455, 422, 456, 568, 483, 0,
1083 463, 461, 464, 0, 0, 173, 526, 0, 575, 268,
1084 196, 198, 658, 0, 0, 183, 188, 187, 186, 185,
1085 184, 181, 182, 268, 268, 268, 176, 177, 0, 268,
1086 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
1087 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
1088 268, 268, 268, 268, 268, 268, 227, 635, 230, 487,
1089 0, 481, 103, 108, 101, 112, 670, 79, 94, 98,
1090 106, 287, 290, 286, 0, 291, 289, 27, 546, 268,
1091 0, 403, 401, 401, 402, 401, 401, 401, 420, 268,
1092 265, 278, 0, 273, 12, 31, 33, 80, 29, 670,
1093 81, 444, 448, 423, 424, 268, 457, 465, 0, 192,
1094 0, 534, 235, 657, 166, 268, 0, 171, 0, 0,
1095 0, 0, 639, 640, 641, 642, 643, 644, 645, 646,
1096 647, 648, 649, 203, 204, 205, 208, 207, 210, 211,
1097 213, 214, 215, 216, 218, 219, 221, 223, 225, 631,
1098 268, 633, 268, 480, 107, 0, 117, 118, 119, 120,
1099 121, 670, 109, 401, 112, 0, 0, 140, 100, 149,
1100 670, 138, 139, 0, 47, 0, 0, 57, 58, 68,
1101 66, 296, 0, 295, 55, 75, 0, 62, 65, 0,
1102 670, 67, 159, 273, 268, 401, 0, 268, 404, 392,
1103 401, 395, 401, 414, 276, 268, 670, 35, 0, 268,
1104 484, 268, 0, 654, 651, 201, 268, 172, 170, 268,
1105 268, 0, 576, 102, 112, 96, 115, 111, 116, 114,
1106 113, 0, 143, 0, 0, 0, 0, 137, 0, 0,
1107 152, 161, 670, 151, 0, 0, 65, 0, 71, 0,
1108 53, 52, 0, 60, 59, 61, 0, 0, 0, 0,
1109 0, 0, 268, 670, 160, 0, 258, 268, 406, 268,
1110 268, 401, 409, 0, 384, 0, 387, 277, 279, 0,
1111 38, 268, 0, 193, 191, 650, 535, 0, 174, 175,
1112 636, 110, 144, 141, 147, 0, 148, 145, 146, 150,
1113 0, 155, 0, 0, 0, 0, 268, 0, 77, 76,
1114 0, 72, 0, 49, 44, 45, 54, 65, 56, 69,
1115 0, 73, 74, 0, 0, 294, 268, 268, 274, 268,
1116 268, 0, 407, 268, 393, 0, 396, 0, 13, 485,
1117 573, 173, 268, 142, 156, 153, 0, 157, 158, 162,
1118 288, 51, 48, 0, 0, 70, 46, 63, 292, 260,
1119 410, 401, 405, 268, 382, 388, 637, 154, 64, 50,
1120 408, 411, 385, 0, 0, 0
1123 static const short yydefgoto[] = { 1194,
1124 84, 85, 86, 87, 133, 295, 296, 88, 636, 772,
1125 297, 798, 918, 89, 670, 920, 902, 91, 1002, 1134,
1126 1081, 1065, 1135, 1173, 1073, 1004, 1005, 1006, 1077, 1007,
1127 1008, 1138, 1010, 1131, 756, 803, 757, 804, 758, 805,
1128 886, 806, 761, 807, 887, 884, 885, 790, 763, 764,
1129 982, 983, 984, 1048, 985, 765, 766, 92, 257, 427,
1130 258, 559, 93, 989, 1115, 1116, 991, 1062, 1084, 1063,
1131 173, 174, 496, 175, 929, 176, 177, 396, 534, 178,
1132 179, 180, 181, 182, 183, 184, 185, 186, 187, 528,
1133 188, 530, 189, 529, 830, 190, 219, 466, 308, 415,
1134 95, 649, 778, 126, 577, 96, 291, 192, 255, 127,
1135 128, 901, 794, 913, 98, 767, 809, 994, 769, 770,
1136 810, 1013, 895, 1011, 99, 100, 101, 102, 103, 104,
1137 105, 106, 107, 108, 109, 110, 322, 416, 433, 112,
1138 263, 1193, 113, 782, 1156, 785, 1158, 652, 1094, 655,
1139 1096, 114, 904, 905, 1091, 1092, 115, 660, 570, 571,
1140 814, 130, 455, 123, 124, 117, 585, 586, 456, 457,
1141 458, 672, 591, 323, 820, 816, 475, 344, 220, 240,
1142 221, 222, 345, 926, 1103, 224, 632, 225, 226, 420,
1143 227, 228, 194, 401, 346, 342, 347, 460, 685, 348,
1144 310, 609, 349, 199, 350, 540, 780, 1020, 233, 556,
1145 491, 400, 201, 557, 558, 351, 202, 203, 352, 629,
1146 595, 353, 236, 354, 358, 688, 723, 881, 724, 207,
1147 726, 727, 728, 729, 730, 731, 732, 733, 734, 735,
1148 736, 737, 738, 739, 740, 971, 1163, 741, 1107, 355,
1149 356, 209, 357, 260, 309, 212, 120
1152 static const short yypact[] = { 2060,
1153 -32768, 48, 5211,-32768, 6258,-32768, 337, 3056, 3442, 3442,
1154 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1155 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1156 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1157 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1158 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1159 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1160 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 297,-32768,
1161 -32768,-32768,-32768, 2252,-32768,-32768,-32768, 408,-32768,-32768,
1162 46,-32768, 78,-32768,-32768,-32768, 83, 6093,-32768,-32768,
1163 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 6093, 6093,
1164 186, 154,-32768, 588,-32768,-32768, 337,-32768,-32768,-32768,
1165 -32768,-32768,-32768, 48,-32768,-32768, 267,-32768, 186,-32768,
1166 -32768,-32768, 5211,-32768, 273,-32768, 1635,-32768, 290, 314,
1167 363,-32768, 372, 337, 397, 478, 1549,-32768, 2630, 1635,
1168 1635, 1635, 1635, 1635, 1635,-32768, 5427, 5427, 482,-32768,
1169 488, 512, 517, 532, 545, 481, 4741,-32768, 570, 586,
1170 -32768, 591,-32768, 716, 1169,-32768,-32768,-32768, 864, 483,
1171 595, 542, 693, 573, 597, 599, 608, 59,-32768,-32768,
1172 121,-32768, 3591, 577, 604,-32768,-32768,-32768,-32768, 649,
1173 3205,-32768, 4741,-32768, 3591,-32768, 505, 3591,-32768,-32768,
1174 679, 690,-32768, 698,-32768, 2821, 591, 692, 161, 643,
1175 3249,-32768, 3442,-32768,-32768,-32768, 5716,-32768,-32768,-32768,
1176 -32768, 735, 739,-32768,-32768, 3442, 3591,-32768,-32768, 678,
1177 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1178 -32768,-32768,-32768, 747, 755,-32768,-32768, 5982,-32768,-32768,
1179 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1180 -32768,-32768,-32768,-32768,-32768, 801, 761,-32768,-32768, 337,
1181 337, 29,-32768, 408,-32768,-32768,-32768,-32768, 804,-32768,
1182 -32768, 813, 783, 761, 78,-32768, 450, 810,-32768, 337,
1183 -32768, 143, 1635,-32768,-32768,-32768,-32768,-32768,-32768, 817,
1184 1635, 1635, 1635, 1582, 833,-32768,-32768,-32768, 302, 669,
1185 5583, 426, 829, 837,-32768,-32768,-32768,-32768,-32768,-32768,
1186 851, 1635,-32768,-32768, 1635, 874, 891, 893, 919, 931,
1187 481, 778, 1903,-32768, 4741,-32768,-32768,-32768,-32768, 903,
1188 -32768,-32768, 4741,-32768, 4741,-32768,-32768,-32768, 3547, 1635,
1189 -32768,-32768, 85, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
1190 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
1191 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
1192 -32768,-32768,-32768,-32768, 1635, 842,-32768,-32768, 2439,-32768,
1193 -32768, 949,-32768,-32768, 964,-32768, 1635, 688, 981, 965,
1194 -32768,-32768,-32768,-32768,-32768, 186, 5716,-32768,-32768, 3442,
1195 3012, 998,-32768,-32768, 1635, 294, 3695, 4823, 761,-32768,
1196 321, 6258, 922, 993, 1008, 1010, 1016, 1010, 337, 1028,
1197 761,-32768, 761,-32768,-32768,-32768, 958, 1023, 1027,-32768,
1198 761, 450,-32768, 337, 1036,-32768, 1031, 337, 204, 1042,
1199 -32768, 236, 1032, 281, 1032, 1047,-32768,-32768,-32768,-32768,
1200 5222, 1043, 768,-32768, 820, 1635,-32768,-32768, 1045,-32768,
1201 -32768,-32768,-32768,-32768,-32768, 1635,-32768, 1044,-32768, 3695,
1202 -32768,-32768, 1060, 1048,-32768, 316,-32768, 98, 337, 337,
1203 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1204 -32768,-32768,-32768,-32768, 864, 864, 483, 483, 595, 595,
1205 595, 595, 542, 542, 693, 573, 597, 1635, 1635, 1635,
1206 -32768, 5447, 5472,-32768,-32768, 5057,-32768, 3398, 3881,-32768,
1207 -32768, 1050, 333,-32768,-32768, 761,-32768,-32768, 1051, 1049,
1208 -32768, 1053,-32768, 4253,-32768,-32768, 4067, 4297, 1057,-32768,
1209 1062,-32768,-32768, 1063, 1067,-32768, 1069, 1068,-32768, 962,
1210 -32768, 1070,-32768,-32768,-32768, 267,-32768, 188,-32768,-32768,
1211 1635, 366, 761,-32768,-32768, 1071,-32768,-32768, 1085, 6258,
1212 -32768,-32768,-32768,-32768, 1066,-32768, 1582,-32768,-32768, 1073,
1213 127, 820, 5385, 1074,-32768,-32768,-32768,-32768, 1072,-32768,
1214 -32768, 1077,-32768, 1635,-32768,-32768,-32768,-32768, 599, 979,
1215 608, 1635,-32768, 1635,-32768,-32768,-32768, 4401, 4741, 1635,
1216 -32768, 5504,-32768, 1635,-32768, 1677,-32768,-32768,-32768, 4445,
1217 4549,-32768, 4593,-32768, 1057,-32768, 1078,-32768,-32768,-32768,
1218 -32768,-32768, 1075,-32768,-32768, 1084,-32768, 337,-32768, 337,
1219 1025, 1960,-32768,-32768, 1079,-32768, 1080,-32768, 280, 1677,
1220 -32768, 337, 592, 4741, 1093,-32768,-32768, 249, 1087,-32768,
1221 1083, 89, 1095, 1088, 1096,-32768, 1635, 5504,-32768,-32768,
1222 -32768,-32768, 1089, 1094,-32768,-32768, 355, 1635, 1635, 1635,
1223 1635, 1635, 1635, 1635, 5427, 5427, 1103, 412, 436, 742,
1224 1405, 442, 900, 971, 961, 627, 972, 1091, 1090, 1098,
1225 1081, 87, 1105,-32768, 32,-32768,-32768,-32768,-32768,-32768,
1226 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1227 -32768, 452, 580,-32768, 932,-32768,-32768,-32768,-32768,-32768,
1228 -32768,-32768,-32768,-32768,-32768,-32768, 1677,-32768, 1054,-32768,
1229 -32768, 1058,-32768, 1065,-32768,-32768,-32768, 1086,-32768, 1116,
1230 1097, 1677,-32768,-32768, 4697,-32768,-32768,-32768,-32768, 6180,
1231 -32768,-32768, 6180,-32768,-32768,-32768,-32768, 1635, 1003, 1114,
1232 -32768, 1960,-32768,-32768, 1960, 1104,-32768, 1677,-32768, 1108,
1233 -32768,-32768,-32768, 1677,-32768,-32768,-32768,-32768,-32768,-32768,
1234 -32768, 408, 1110,-32768, 717,-32768, 820,-32768,-32768, 1118,
1235 -32768,-32768,-32768, 1128, 337,-32768,-32768, 617, 1131, 1635,
1236 -32768,-32768, 1123, 702, 1145, 711, 732, 746, 748, 788,
1237 799, 808, 815, 1635, 5396, 1635, 828, 852, 112, 1635,
1238 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
1239 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
1240 1635, 1635, 1635, 1635, 1635, 1635, 1635,-32768, 1635,-32768,
1241 1150, 1160,-32768, 991, 1142, 317, 84,-32768,-32768,-32768,
1242 -32768,-32768,-32768,-32768, 54,-32768,-32768,-32768,-32768, 1960,
1243 368,-32768, 186, 4901,-32768, 6180, 4901, 6180,-32768,-32768,
1244 -32768,-32768, 1017,-32768,-32768,-32768,-32768, 1677,-32768, 78,
1245 -32768, 378,-32768,-32768,-32768, 5416,-32768,-32768, 382,-32768,
1246 1163, 1057,-32768,-32768, 855, 1635, 1162, 861, 872, 139,
1247 337, 337,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1248 -32768,-32768,-32768, 889, 943, 944, 683, 927, 376, 836,
1249 367, 464, 524, 574, 610, 645, 144, 352, 62, 599,
1250 1635, 608, 5504,-32768, 505, 932,-32768,-32768,-32768,-32768,
1251 -32768, 470,-32768, 5849, 317, 86, 86,-32768,-32768, 110,
1252 480,-32768,-32768, 107,-32768, 657, 123,-32768,-32768,-32768,
1253 -32768,-32768, 1161,-32768, 17,-32768, 904,-32768, 556, 1164,
1254 78,-32768, 107,-32768,-32768,-32768, 1167, 425,-32768,-32768,
1255 4901,-32768, 4901,-32768,-32768, 1835, 554,-32768, 1106, 754,
1256 -32768,-32768, 337,-32768, 996, 945,-32768, 946, 953,-32768,
1257 -32768, 1018,-32768,-32768, 317,-32768,-32768,-32768,-32768,-32768,
1258 -32768, 515, 110, 728, 337, 337, 86,-32768, 107, 107,
1259 -32768, 147, 601,-32768, 1171, 1011, 786, 123, 396, 75,
1260 -32768,-32768, 657,-32768,-32768,-32768, 657, 4, 337, 337,
1261 1173, 657,-32768, 78, 1168, 609,-32768, 761,-32768,-32768,
1262 1177,-32768, 1178, 1181,-32768, 1182,-32768,-32768,-32768, 1119,
1263 -32768, 544, 1179,-32768,-32768,-32768,-32768, 1183, 960, 967,
1264 -32768,-32768,-32768,-32768, 110, 1184, 505,-32768,-32768, 110,
1265 846, 147, 832, 337, 337, 107,-32768, 1014,-32768,-32768,
1266 657,-32768, 786, 1170,-32768, 396,-32768, 396,-32768,-32768,
1267 1186,-32768,-32768, 1014, 1189,-32768,-32768,-32768,-32768, 1635,
1268 425, 1197,-32768,-32768,-32768, 1196,-32768, 1198,-32768,-32768,
1269 -32768, 970, 1635,-32768,-32768,-32768, 1192,-32768,-32768, 147,
1270 -32768,-32768,-32768, 1195, 75,-32768,-32768,-32768,-32768,-32768,
1271 -32768,-32768,-32768, 1635,-32768,-32768,-32768,-32768,-32768,-32768,
1272 -32768,-32768,-32768, 1223, 1225,-32768
1275 static const short yypgoto[] = {-32768,
1276 -32768, 1156,-32768,-32768,-32768,-32768, -388, -112,-32768,-32768,
1277 942,-32768,-32768,-32768,-32768,-32768, 71,-32768,-32768, 348,
1278 -32768,-32768, 69, 105,-32768, 179,-32768,-32768,-32768, -687,
1279 -32768, -825,-32768,-32768, -627, -709,-32768,-32768,-32768, -550,
1280 -32768, -524,-32768, -499,-32768, 282,-32768,-32768, 596, -602,
1281 -32768, 215, 276,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1282 -32768,-32768,-32768,-32768, -806, 140,-32768, -956,-32768, 251,
1283 -32768, -612, 420, 1174,-32768,-32768, -611,-32768,-32768, -113,
1284 -353, -348, -339, -336, -377, -367, -366, -498, -511,-32768,
1285 -609,-32768, -135,-32768,-32768, 559, 1141, -561, -419, 14,
1286 -32768,-32768,-32768, -429,-32768,-32768,-32768, 699, -222, 824,
1287 -32768, -850, -737,-32768,-32768,-32768, -447,-32768,-32768,-32768,
1288 -442,-32768,-32768,-32768,-32768,-32768, 500,-32768,-32768,-32768,
1289 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 13, 708,-32768,
1290 936,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1291 -32768, 1092, -656, -479,-32768, 122,-32768,-32768, 612, 616,
1292 462, 1, -333, 1154,-32768, 2,-32768,-32768, -566,-32768,
1293 -32768,-32768, 607, -250, 959,-32768, -456, 331, 1270,-32768,
1294 1055,-32768, 484,-32768,-32768,-32768,-32768, -167,-32768,-32768,
1295 -32768,-32768,-32768, 19, 642, 948, 1099,-32768,-32768, 1289,
1296 -32768,-32768, -328,-32768, 177, 176, -481, -845,-32768, 794,
1297 -32768,-32768, 886, -153, -433, 51,-32768, 82, 39,-32768,
1298 -32768, 218,-32768, 659,-32768,-32768, 598,-32768, 322, -598,
1299 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1300 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1417,
1301 -32768,-32768, 1703, -266, 0, 66,-32768
1308 static const short yytable[] = { 118,
1309 116, 307, 118, 125, 284, 550, 118, 211, 211, 211,
1310 525, 575, 111, 94, 488, 129, 602, 132, 621, 710,
1311 712, 526, 722, 527, 515, 516, 195, 434, 447, 619,
1312 1140, 517, 518, 725, 679, 675, 325, 326, 327, 328,
1313 329, 330, 519, 520, 521, 522, 204, 439, 409, 523,
1314 524, 600, -583, 413, 912, 414, -583, 914, 995, 234,
1315 234, 1022, 584, 1027, 256, 119, 608, 808, 119, 1009,
1316 90, 1071, 135, 417, 449, 710, 712, 996, 722, 995,
1317 990, 2, -629, 118, 116, 759, -629, 997, 917, 725,
1318 235, 235, 552, 453, 921, 259, 111, 94, 1068, 392,
1319 389, 259, 1121, 1122, 428, 628, 261, 986, 997, 986,
1320 262, 760, 499, 823, 393, 824, 118, 987, 395, 987,
1321 721, 262, 262, 641, 616, 287, 907, 878, 500, 888,
1322 1059, 453, 118, 720, 300, 1054, 762, 1055, 394, 941,
1323 1060, 395, 879, 118, 898, 299, 1068, 453, 211, 119,
1324 -401, 677, -401, 1056, 90, 942, 997, 121, 122, 395,
1325 -401, 665, 1014, 1086, -625, 1039, 211, 324, -625, 1170,
1326 1067, 1069, 1123, 783, 1124, 1095, 721, 1097, 411, 1052,
1327 1053, 395, 119, 681, 200, 232, 232, 204, 768, 720,
1328 1125, 1141, 211, 771, 668, 808, 386, 387, 301, 1072,
1329 211, 808, 211, -268, 211, 259, 759, 211, 1028, 315,
1330 663, 397, 77, 78, 134, 211, 817, 81, 82, 404,
1331 211, 759, 211, 403, 395, 205, 405, 606, 469, 449,
1332 646, 204, 760, 998, 999, 211, 211, 77, 1000, 204,
1333 278, 1001, 1133, 204, 1136, 539, 204, 760, 667, 1021,
1334 1120, 1023, 548, 413, 717, 422, 395, 762, 77, 1000,
1335 594, 512, 513, 514, 718, 719, 234, 77, 988, 77,
1336 988, 234, 762, 234, 471, 204, 118, 431, 713, 118,
1337 118, 118, 2, 714, 801, 975, 234, 288, 1099, 307,
1338 77, 1061, 715, 118, 446, 716, 302, 235, 453, 118,
1339 906, 395, 235, 908, 235, 596, 77, 1000, 1066, 768,
1340 717, 664, 434, 311, 771, 808, 488, 235, 551, 468,
1341 718, 719, 395, 473, 768, 200, -401, -401, -401, 771,
1342 -679, -401, -401, 470, 713, 307, 614, 312, -401, 714,
1343 615, -401, 119, -401, 211, 436, 438, 440, 715, 1136,
1344 307, 716, 211, 395, 211, 679, 684, 631, 817, 119,
1345 710, 712, 605, 722, 1031, 301, 205, 972, 909, 200,
1346 453, 693, -627, 694, 725, 395, -627, 200, 970, 833,
1347 388, 200, 453, -679, 200, 1015, 313, -617, 1016, 1139,
1348 666, -617, 232, 410, 1145, 314, -614, 232, 211, 232,
1349 -614, -401, 677, -401, 977, 978, 1032, 378, 379, 1033,
1350 205, -401, 232, 200, 316, 380, 381, 537, 205, 211,
1351 211, 1078, 205, 1079, 1019, 205, 211, 1019, 118, 560,
1352 547, -269, -580, 254, 979, 980, -580, 204, 118, 1080,
1353 118, 547, 118, 1174, 470, 307, 1090, 835, 981, -268,
1354 118, 471, 300, 118, 205, 1117, -579, 118, 2, 2,
1355 -579, 721, -603, 77, 78, 134, -603, 307, 81, 82,
1356 234, 234, -578, -269, 720, 448, -578, -401, -401, -401,
1357 -679, -679, -401, -401, -618, -679, -679, 259, -618, 211,
1358 1045, 193, 223, 223, 119, 317, 967, 259, 118, 118,
1359 1057, 235, 235, 336, 572, 335, 119, 968, 119, 969,
1360 957, 958, 380, 381, 378, 379, 301, 959, 960, 587,
1361 77, 78, 134, 592, 1117, 81, 82, 337, 961, 962,
1362 963, 964, 338, 402, 494, 965, 966, 211, 211, 1113,
1363 1054, 1019, 1055, 1019, -619, 118, 633, 339, -619, -401,
1364 -401, -401, 547, 211, -401, -401, 211, 211, 1056, 340,
1365 812, -401, -401, -401, 617, 618, -401, -401, -452, 471,
1366 547, 259, 380, 381, 1016, 200, 204, -45, 382, 383,
1367 341, 1078, 118, 1079, 300, 836, 837, 838, 839, 840,
1368 841, -673, 384, 385, -620, 717, 232, 232, -620, 1080,
1369 395, 388, 673, 1035, 882, 718, 719, -677, 77, 78,
1370 134, 119, -674, 81, 82, -268, 205, 471, 259, 713,
1371 992, 1126, 380, 381, 714, 2, 1148, 211, 211, 1016,
1372 -622, 742, 193, 715, -622, 389, 716, 395, 390, 211,
1373 211, 931, 211, 380, 381, 602, 382, 383, 301, 196,
1374 229, 229, 307, 1029, 280, 281, 282, 118, 1149, 118,
1375 384, 385, 391, 868, 869, -623, 206, 399, 118, -623,
1376 398, 118, 118, 211, 815, 489, 193, 870, 871, 473,
1377 996, 382, 383, 492, 193, 493, 394, 742, 193, 395,
1378 997, 193, 404, 469, 933, 384, 385, -506, 97, 223,
1379 -676, 97, 812, -612, 223, 411, 223, -612, 395, 241,
1380 242, 406, 469, -675, 200, 1046, 375, 376, 377, 223,
1381 193, 407, 395, 572, 1058, 572, 935, 77, 78, 134,
1382 1181, -597, 81, 82, 802, -597, 412, 592, 119, 359,
1383 -268, 360, 471, -401, 1083, 386, 387, 954, 955, 956,
1384 2, 986, -602, 418, 1114, 205, -602, 555, 419, -401,
1385 1100, 987, 361, 362, 1192, 845, -601, 846, -600, -401,
1386 -601, 423, -600, 424, 211, 77, 78, 134, 426, 471,
1387 81, 82, 97, 486, 487, -401, 1108, 2, 847, 848,
1388 196, -268, 903, 471, 2, 903, 1127, 264, 265, 266,
1389 267, 268, 269, 270, 271, 445, 273, 206, -599, 276,
1390 1132, 1078, -599, 1079, 118, 97, 815, 1147, 430, -598,
1391 555, 442, 1036, -598, 118, 289, 290, 292, -595, 1080,
1392 444, 298, -595, 450, 196, -596, 998, 999, 461, -596,
1393 77, 1000, 196, -268, 1001, 603, 196, 321, -592, 196,
1394 467, 206, -592, 476, 331, 986, -615, 229, 1166, 206,
1395 -615, 477, 229, 206, 229, 987, 206, 378, 379, 555,
1396 1165, 1123, -593, 1124, 478, -584, -593, 229, 196, -584,
1397 119, -587, 193, 532, 533, -587, 993, 555, 644, 1125,
1398 930, 480, 614, 479, 1012, 206, 1038, 375, 376, 377,
1399 77, 78, 134, 223, 223, 81, 82, 924, 481, -607,
1400 482, 77, 988, -607, 321, 171, 903, 497, 903, 903,
1401 903, 490, 501, 502, 503, 504, 505, 506, 507, 508,
1402 509, 510, 511, 861, 862, 863, 483, 77, 78, 134,
1403 118, 118, 81, 82, 77, 78, 134, -611, 484, 81,
1404 82, -611, 425, 531, 1074, 1075, 1076, 541, 644, 696,
1405 375, 376, 377, -608, -609, -605, -588, -608, -609, -605,
1406 -588, 644, 742, -586, 542, 97, 432, -586, 435, 437,
1407 -590, 657, 658, 1050, -590, 993, 993, -591, 545, 284,
1408 -589, -591, 97, 1064, -589, 1012, 1012, 1049, 298, 395,
1409 692, 321, 864, 865, 818, 544, 1040, 1041, 549, 866,
1410 867, 562, 1064, 563, 307, 77, 988, 118, 1093, 171,
1411 472, 193, 910, 658, 872, 873, 564, 1187, -268, 118,
1412 560, 1102, 118, 903, 567, 903, 1025, 1026, 395, 1111,
1413 196, 321, 1129, 1130, 274, 275, 573, 579, 307, 580,
1414 582, 589, 395, 993, 118, 118, 993, 206, 1064, 1064,
1415 588, 229, 229, 593, 597, 607, 601, 1012, 610, 1012,
1416 612, 613, 1012, 630, 634, 635, 1012, 637, 118, 118,
1417 645, 1012, 651, 119, 648, 653, 656, 118, 654, 671,
1418 674, 669, 659, 686, 781, 119, 745, 682, 1105, 676,
1419 687, 118, 777, 784, 799, 797, 197, 230, 230, 822,
1420 819, 821, 826, 831, 276, 825, 883, 827, 832, 874,
1421 1118, 1119, 993, 118, 118, 1064, 844, 97, 875, 880,
1422 1012, 911, 919, 922, 565, 877, 568, 876, 574, 97,
1423 934, 97, 927, 889, 1142, 1143, 581, 890, 191, 298,
1424 118, 1093, 928, 119, 891, 932, 590, 243, 244, 245,
1425 246, 247, 248, 249, 250, 251, 252, 119, 598, 936,
1426 973, 472, 689, 604, 1012, 894, 432, 974, 171, 196,
1427 1034, 976, 1037, 1070, 1089, 1106, 897, 1082, 1126, 1168,
1428 1169, 364, 1128, 915, 1144, 1101, 206, 1151, 272, 1154,
1429 1155, 1157, 277, 1160, 279, 1172, 283, 1162, 1159, 1175,
1430 1164, 285, 1176, 1178, 1183, 1185, 119, 1186, 1188, 1189,
1431 793, 293, 1195, 294, 1196, 365, 366, 367, 368, 369,
1432 370, 371, 372, 373, 374, 20, 21, 22, 23, 253,
1433 24, 452, 1003, 1190, 97, 29, 30, 197, 1177, 33,
1434 34, 1137, 36, 37, 38, 39, 791, 1044, 647, 1112,
1435 1051, 432, 1167, 1085, 939, 363, 576, 51, 52, 896,
1436 650, 789, 1182, 787, 661, 662, 925, 286, 811, 239,
1437 474, 298, 1161, 611, 538, 829, 0, 319, 485, 320,
1438 421, 197, 76, 0, 1043, 0, 198, 231, 231, 197,
1439 604, 0, 80, 197, 0, 432, 197, 0, 0, 0,
1440 306, 0, 0, 0, 230, 690, 691, 0, 0, 230,
1441 321, 230, 321, 306, 306, 306, 306, 306, 306, 0,
1442 333, 334, 0, 191, 230, 197, 0, 0, 0, 0,
1443 0, 191, 0, 0, 0, 191, 0, 779, 191, 0,
1444 793, 0, 429, 793, 0, 786, 408, 788, 0, 0,
1445 0, 795, 796, 0, 0, 0, 800, 0, 0, 0,
1446 590, 813, 0, 0, 0, 0, 472, 191, 0, 441,
1447 0, 0, 443, 0, 0, 0, 0, 0, 0, 0,
1448 451, 0, 0, 454, 0, 0, 321, 0, 0, 0,
1449 0, 0, 937, 497, 0, 0, 0, 0, 943, 944,
1450 945, 946, 947, 948, 949, 950, 951, 952, 953, 0,
1451 0, 0, 0, 0, 208, 237, 237, 850, 0, 0,
1452 0, 0, 0, 0, 0, 0, 0, 198, 0, 0,
1453 0, 0, 0, 459, 0, 0, 0, 0, 0, 0,
1454 0, 462, 463, 464, 465, 0, 0, 0, 793, 0,
1455 0, 851, 852, 853, 854, 855, 856, 857, 858, 859,
1456 860, 0, 459, 0, 0, 0, 900, 0, 0, 0,
1457 0, 198, 0, 459, 0, 0, 0, 0, 0, 198,
1458 0, 0, 0, 198, 0, 0, 198, 197, 0, 0,
1459 498, 0, 0, 0, 231, 0, 0, 546, 0, 231,
1460 0, 231, 923, 813, 0, 604, 0, 454, 230, 230,
1461 0, 0, 561, 0, 231, 198, 0, 566, 0, 569,
1462 0, 0, 0, 0, 0, 0, 0, 578, 0, 191,
1463 0, 583, 0, 0, 0, 0, 0, 543, 306, 306,
1464 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
1465 306, 306, 306, 306, 0, 208, 318, 0, 0, 0,
1466 0, 0, 303, 0, 0, 0, 0, 150, 151, 152,
1467 153, 154, 155, 0, 793, 0, 0, 0, 0, 0,
1468 0, 0, 0, 0, 156, 157, 158, 0, 306, -250,
1469 0, 1017, 0, 0, 0, 303, 0, 0, 1024, 208,
1470 150, 151, 152, 153, 154, 155, 0, 208, 159, 0,
1471 0, 208, 0, 0, 208, 0, 0, 156, 157, 158,
1472 0, 0, 237, 0, 0, 0, 197, 237, 0, 237,
1473 0, 0, 0, 0, 306, 0, 0, 0, 0, 306,
1474 0, 159, 237, 208, 0, 0, 0, 0, 303, 306,
1475 0, 168, 0, 150, 151, 152, 153, 154, 155, 620,
1476 0, 0, 0, 454, 0, 0, 0, 0, 191, 0,
1477 156, 157, 158, 0, 0, 0, 0, 198, 0, 0,
1478 0, 0, 678, 0, 168, 0, 0, 683, 0, 0,
1479 0, 306, 0, 306, 159, 623, 625, 0, 231, 231,
1480 210, 238, 238, 1087, 0, 0, 97, 0, 0, 0,
1481 0, 0, 0, 0, 561, 0, 744, 0, 813, 0,
1482 1104, 0, 77, 304, 305, 432, 171, 465, 1109, 1110,
1483 0, 0, 0, 0, 0, 0, 0, 168, 745, 746,
1484 747, 748, 0, 0, 306, 749, 750, 751, 752, 753,
1485 754, 755, 459, 0, 459, 77, 304, 305, 0, 171,
1486 697, 0, 0, 0, 743, 0, 306, 0, 0, 0,
1487 0, 1146, 0, 0, 0, 0, 97, 0, 1150, 1152,
1488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1489 813, 849, 0, 0, 0, 711, 0, 0, 0, 0,
1490 0, 0, 0, 0, 0, 208, 0, 0, 77, 304,
1491 305, 0, 171, 0, 0, 1171, 198, 828, 0, 0,
1492 0, 0, 0, 0, 0, 0, 237, 237, 834, 0,
1493 0, 0, 0, 0, 0, 1179, 1180, 0, 0, 97,
1494 0, 210, 1184, 792, 1098, 0, 892, 893, 303, 0,
1495 0, 711, 0, 150, 151, 152, 153, 154, 155, 0,
1496 0, 0, 306, 306, 306, 306, 306, 306, 842, 843,
1497 156, 157, 158, 0, 0, 0, 0, 0, 916, 0,
1498 0, 0, 0, 0, 0, 210, 0, 0, 0, 0,
1499 0, 0, 0, 210, 159, 0, 0, 210, 0, 0,
1500 210, 0, 0, 0, 0, 0, 0, 0, 238, 0,
1501 0, -534, 0, 238, 0, 238, 343, 0, 0, 0,
1502 0, 150, 151, 152, 153, 154, 155, 0, 238, 210,
1503 0, 0, 0, 0, 0, 0, 0, 168, 156, 157,
1504 158, 0, 0, 0, 208, 0, 0, 0, 0, 0,
1505 0, 306, 0, 0, 0, 0, 0, 0, 0, 0,
1506 0, 0, 159, 0, 0, 0, 0, 0, 792, 0,
1507 0, 0, 0, 303, 0, 0, 940, 0, 150, 151,
1508 152, 153, 154, 155, 1018, 0, 0, 0, 0, 0,
1509 0, 0, 0, 306, 0, 156, 157, 158, 0, 0,
1510 0, 0, 0, 1030, 0, 168, 0, 0, 77, 304,
1511 305, 0, 171, 0, 0, 0, 0, 0, 0, 159,
1512 0, 0, 0, 0, 306, 306, 306, 306, 306, 306,
1513 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
1514 306, 0, 306, 0, 0, 0, 0, 0, 0, -1,
1515 1, 0, 0, 0, 0, 0, 465, 0, 0, 0,
1516 0, 0, 168, 0, 0, 0, 0, 0, 0, 0,
1517 0, 0, 0, -268, 0, 0, 77, 304, 305, 0,
1518 171, 0, 0, 2, 0, 0, 0, 0, 0, 0,
1519 0, 210, 0, 0, 3, 0, 0, 1088, 0, 306,
1520 0, 1042, 0, 0, 0, 0, 0, 0, 0, 0,
1521 0, 0, 238, 238, 0, 0, -401, -401, -401, 0,
1522 4, 0, 0, 0, 0, 5, 6, 7, 0, 0,
1523 0, 0, 0, 77, 304, 305, 711, 171, 0, 0,
1524 8, 9, 10, 0, 0, 0, 0, 0, 0, 0,
1525 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
1526 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1527 21, 22, 23, 1153, 24, 25, 26, 27, 28, 29,
1528 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1529 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1530 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1531 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1532 70, 71, 72, 73, 74, 75, 76, 0, 0, 0,
1533 210, 0, 0, 77, 78, 79, 80, 0, 81, 82,
1534 83, -2, 1, 0, 0, 0, 0, 0, 0, 0,
1535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1536 0, 0, 0, 1191, 0, -268, 0, 0, 0, 0,
1537 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
1538 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 0, 0, -401, -401,
1541 -401, 0, 4, 306, 0, 0, 0, 5, 6, 7,
1542 0, 0, 0, 0, 0, 0, 306, 0, 0, 0,
1543 0, 0, 8, 9, 10, 0, 0, 0, 0, 0,
1544 0, 0, 0, 0, 0, 0, 0, 306, 0, 0,
1545 0, 11, 12, 13, 0, 14, 15, 16, 17, 18,
1546 19, 20, 21, 22, 23, 0, 24, 25, 26, 27,
1547 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1548 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1549 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1550 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1551 68, 69, 70, 71, 72, 73, 74, 75, 76, 0,
1552 0, 0, 0, 0, 0, 77, 78, 79, 80, 136,
1553 81, 82, 83, 0, 137, 138, 139, 0, 140, 141,
1554 142, 143, 144, 145, 146, 147, 148, -534, 535, 0,
1555 0, 0, 149, 0, 0, 0, 0, 150, 151, 152,
1556 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1557 -268, -268, 0, 3, 156, 157, 158, 0, 0, 0,
1558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1559 0, 0, 0, 0, 0, -401, -401, -401, 159, 4,
1560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1562 0, 0, 0, 161, 162, 163, 164, 165, 166, 0,
1563 0, 0, 0, 0, 0, 0, 0, 167, 11, 12,
1564 13, 168, 14, 15, 16, 17, 18, 19, 20, 21,
1565 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1566 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1567 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1568 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1569 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1570 71, 72, 73, 74, 75, 76, 0, 0, 0, 0,
1571 0, 0, 77, 169, 536, 80, 171, 172, 82, 83,
1572 136, 0, 0, 0, 0, 137, 138, 139, 0, 140,
1573 141, 142, 143, 144, 145, 146, 147, 148, -534, 0,
1574 0, 0, 0, 149, 0, 0, 0, 0, 150, 151,
1575 152, 153, 154, 155, 0, 0, 0, 0, 0, 0,
1576 0, -268, -268, 0, 0, 156, 157, 158, 0, 0,
1577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1578 0, 0, 0, 0, 0, 0, -268, -268, -268, 159,
1579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1581 0, 0, 0, 0, 161, 162, 163, 164, 165, 166,
1582 0, 0, 0, 0, 0, 0, 0, 0, 167, -268,
1583 -268, -268, 168, -268, -268, -268, -268, -268, -268, -268,
1584 -268, -268, -268, 0, -268, -268, -268, -268, -268, -268,
1585 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1586 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1587 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1588 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1589 -268, -268, -268, -268, -268, -268, -268, 0, 0, 0,
1590 0, 0, 0, 77, 169, 170, -268, 171, 172, 82,
1591 -268, 213, 0, 0, 0, 0, 137, 138, 139, 0,
1592 0, 214, 142, 143, 144, 145, 146, 147, 215, -534,
1593 -538, 0, 0, 0, 216, 0, 0, 0, 0, 150,
1594 151, 152, 153, 154, 155, 0, 0, 0, 0, 0,
1595 0, 0, -268, -268, 0, 0, 156, 157, 158, 0,
1596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1597 0, 0, 0, 0, 0, 0, 0, -268, -268, -268,
1598 159, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1600 0, 0, 0, 0, 0, 161, 162, 163, 164, 165,
1601 166, 0, 0, 0, 0, 0, 0, 0, 0, 167,
1602 -268, -268, -268, 168, -268, -268, -268, -268, -268, -268,
1603 -268, -268, -268, -268, 0, -268, -268, -268, -268, -268,
1604 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1605 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1606 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1607 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1608 -268, -268, -268, -268, -268, -268, -268, -268, 0, 0,
1609 0, 0, 0, 0, 77, 169, 170, -268, 171, 217,
1610 218, -268, 213, 0, 0, 0, 0, 137, 138, 139,
1611 0, 0, 214, 142, 143, 144, 145, 146, 147, 215,
1612 -479, -479, 0, 0, 0, 216, -479, 0, 0, 0,
1613 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1614 0, 0, 0, -268, -268, 0, 136, 156, 157, 158,
1615 0, 137, 138, 139, 0, 140, 141, 142, 143, 144,
1616 145, 146, 147, 148, -534, 0, 0, 0, 0, 149,
1617 0, 159, 0, 0, 150, 151, 152, 153, 154, 155,
1618 0, 0, 0, 0, 0, 0, 0, -268, -268, 0,
1619 0, 156, 157, 158, 0, -479, 161, 162, 163, 164,
1620 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1621 167, 0, 0, 0, 168, 159, 0, 0, 0, 0,
1622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1623 0, 0, 0, 0, 0, 0, 0, 0, 0, 160,
1624 161, 162, 163, 164, 165, 166, 0, 0, 0, 0,
1625 0, 0, 0, 0, 167, 0, 0, 0, 168, 0,
1626 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1628 0, 0, 0, 0, 0, 77, 169, 170, 0, 171,
1629 217, 218, 0, 0, 0, 136, 0, 0, 0, 0,
1630 137, 138, 139, 0, 140, 141, 142, 143, 144, 145,
1631 146, 147, 148, -534, 0, 0, 0, 0, 149, 0,
1632 0, 0, 0, 150, 151, 152, 153, 154, 155, 77,
1633 169, 170, 0, 171, 172, 82, -268, -268, 0, 213,
1634 156, 157, 158, 0, 137, 138, 139, 0, 0, 214,
1635 142, 143, 144, 145, 146, 147, 215, -534, -538, 0,
1636 0, 0, 216, 0, 159, 0, 0, 150, 151, 152,
1637 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1638 -268, -268, 0, 0, 156, 157, 158, 0, -507, 161,
1639 162, 163, 164, 165, 166, 0, 0, 0, 0, 0,
1640 0, 0, 0, 167, 0, 0, 0, 168, 159, 0,
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, -475, 161, 162, 163, 164, 165, 166, 0,
1644 0, 0, 0, 0, 0, 0, 0, 167, 0, 0,
1645 0, 168, 0, 0, 0, 0, 0, 0, 0, 0,
1646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1647 0, 0, 0, 0, 0, 0, 0, 0, 77, 169,
1648 170, 0, 171, 172, 82, 0, 0, 0, 136, 0,
1649 0, 0, 0, 137, 138, 139, 0, 140, 141, 142,
1650 143, 144, 145, 146, 147, 148, -534, 626, 0, 0,
1651 0, 149, 0, 0, 0, 0, 150, 151, 152, 153,
1652 154, 155, 77, 169, 170, 0, 171, 217, 218, -268,
1653 -268, 0, 213, 156, 157, 158, 0, 137, 138, 139,
1654 0, 0, 214, 142, 143, 144, 145, 146, 147, 215,
1655 -534, -538, 0, 0, 0, 216, 0, 159, 0, 0,
1656 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1657 0, 0, 0, -268, -268, 0, 0, 156, 157, 158,
1658 0, 0, 161, 162, 163, 164, 165, 166, 0, 0,
1659 0, 0, 0, 0, 0, 0, 167, 0, 0, 0,
1660 168, 159, 0, 0, 0, 0, 0, 0, 0, 0,
1661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1662 0, 0, 0, 0, 0, 0, 161, 162, 163, 164,
1663 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1664 167, 0, 0, 0, 168, 0, 0, 0, 0, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666 303, 495, 0, 0, 0, 150, 151, 152, 153, 154,
1667 155, 77, 169, 170, 0, 171, 172, 82, 0, 0,
1668 0, 136, 156, 157, 158, 0, 137, 138, 139, 0,
1669 140, 141, 142, 143, 144, 145, 146, 147, 148, -534,
1670 0, 0, 0, 0, 149, 0, 159, 0, 0, 150,
1671 151, 152, 153, 154, 155, 77, 169, 170, 0, 171,
1672 217, 218, -268, -268, 0, 0, 156, 157, 158, 0,
1673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1674 0, 0, 0, 0, 0, 0, 0, 0, 0, 168,
1675 159, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1677 0, 0, 0, 0, 0, 161, 162, 163, 164, 165,
1678 166, 0, 0, 0, 0, 0, 0, 0, 0, 167,
1679 137, 138, 139, 168, 140, 141, 142, 143, 144, 145,
1680 146, 147, 215, -534, 553, 0, 0, 0, 343, 0,
1681 0, 0, 0, 150, 151, 152, 153, 154, 155, 0,
1682 77, 304, 305, 0, 171, 0, -268, -268, 0, 3,
1683 156, 157, 158, 0, 0, 0, 0, 0, 0, 0,
1684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1685 0, 0, 0, 0, 159, 4, 0, 0, 0, 0,
1686 0, 0, 0, 0, 77, 169, 170, 0, 171, 172,
1687 82, 0, 0, 0, 0, 0, 0, 0, 0, 161,
1688 162, 163, 164, 165, 166, 0, 0, 0, 0, 0,
1689 0, 0, 0, 554, 11, 12, 13, 168, 14, 15,
1690 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1691 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1692 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1693 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1694 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1695 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1696 75, 76, 0, 0, 0, 0, 0, 0, 77, 169,
1697 536, 80, 171, 172, 82, 83, 137, 138, 139, 0,
1698 140, 141, 142, 143, 144, 145, 146, 147, 215, -534,
1699 627, 0, 0, 0, 343, 0, 0, 0, 0, 150,
1700 151, 152, 153, 154, 155, 0, 0, 0, 0, 0,
1701 0, 0, -268, -268, 0, 3, 156, 157, 158, 0,
1702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1704 159, 4, 0, 0, 0, 0, 0, 0, 0, 0,
1705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1706 0, 0, 0, 0, 0, 161, 162, 163, 164, 165,
1707 166, 0, 0, 0, 0, 0, 0, 0, 0, 167,
1708 11, 12, 13, 168, 14, 15, 16, 17, 18, 19,
1709 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1710 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1711 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1712 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1713 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1714 69, 70, 71, 72, 73, 74, 75, 76, 0, 0,
1715 0, 0, 0, 0, 77, 169, 536, 80, 171, 172,
1716 82, 83, 137, 138, 139, 0, 140, 141, 142, 143,
1717 144, 145, 146, 147, 215, -534, 639, 0, 0, 0,
1718 343, 0, 0, 0, 0, 150, 151, 152, 153, 154,
1719 155, 0, 0, 0, 0, 0, 0, 0, -268, -268,
1720 0, 3, 156, 157, 158, 0, 0, 0, 0, 0,
1721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1722 0, 0, 0, 0, 0, 0, 159, 4, 0, 0,
1723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725 0, 161, 162, 163, 164, 165, 166, 0, 0, 0,
1726 0, 0, 0, 0, 0, 640, 11, 12, 13, 168,
1727 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1728 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1729 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1730 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1731 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1732 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1733 73, 74, 75, 76, 0, 0, 0, 0, 0, 0,
1734 77, 169, 536, 80, 171, 172, 82, 83, 137, 138,
1735 139, 0, 140, 141, 142, 143, 144, 145, 146, 147,
1736 215, -534, 638, 0, 0, 0, 343, 0, 0, 0,
1737 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1738 0, 0, 0, 0, 0, 0, 0, 0, 156, 157,
1739 158, 0, 137, 138, 139, 0, 140, 141, 142, 143,
1740 144, 145, 146, 147, 215, -534, 642, 0, 0, 0,
1741 343, 0, 159, 0, 0, 150, 151, 152, 153, 154,
1742 155, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 0, 156, 157, 158, 0, 0, 161, 162, 163,
1744 164, 165, 166, 0, 0, 0, 0, 0, 0, 0,
1745 0, 167, 0, 0, 0, 168, 159, 0, 0, 0,
1746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1748 0, 161, 162, 163, 164, 165, 166, 0, 0, 0,
1749 0, 0, 0, 0, 0, 643, 137, 138, 139, 168,
1750 140, 141, 142, 143, 144, 145, 146, 147, 215, -534,
1751 695, 0, 0, 0, 343, 0, 0, 0, 0, 150,
1752 151, 152, 153, 154, 155, 0, 77, 169, 170, 0,
1753 171, 172, 82, 0, 0, 0, 156, 157, 158, 0,
1754 137, 138, 139, 0, 140, 141, 142, 143, 144, 145,
1755 146, 147, 215, -534, 773, 0, 0, 0, 343, 0,
1756 159, 0, 0, 150, 151, 152, 153, 154, 155, 0,
1757 77, 169, 170, 0, 171, 172, 82, 0, 0, 0,
1758 156, 157, 158, 0, 0, 161, 162, 163, 164, 165,
1759 166, 0, 0, 0, 0, 0, 0, 0, 0, 167,
1760 0, 0, 0, 168, 159, 0, 0, 0, 0, 0,
1761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1762 0, 0, 0, 0, 0, 0, 0, 0, 0, 161,
1763 162, 163, 164, 165, 166, 0, 0, 0, 0, 0,
1764 0, 0, 0, 167, 137, 138, 139, 168, 140, 141,
1765 142, 143, 144, 145, 146, 147, 215, -534, 774, 0,
1766 0, 0, 343, 0, 0, 0, 0, 150, 151, 152,
1767 153, 154, 155, 0, 77, 169, 170, 0, 171, 172,
1768 82, 0, 0, 0, 156, 157, 158, 0, 137, 138,
1769 139, 0, 140, 141, 142, 143, 144, 145, 146, 147,
1770 215, -534, 776, 0, 0, 0, 343, 0, 159, 0,
1771 0, 150, 151, 152, 153, 154, 155, 0, 77, 169,
1772 170, 0, 171, 172, 82, 0, 0, 0, 156, 157,
1773 158, 0, 0, 161, 162, 163, 164, 165, 166, 0,
1774 0, 0, 0, 0, 0, 0, 0, 775, 0, 0,
1775 0, 168, 159, 0, 0, 0, 0, 0, 0, 0,
1776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1777 0, 0, 0, 0, 0, 0, 0, 161, 162, 163,
1778 164, 165, 166, 0, 0, 0, 0, 0, 0, 0,
1779 0, 167, 137, 138, 139, 168, 140, 141, 142, 143,
1780 144, 145, 146, 147, 215, -534, 899, 0, 0, 0,
1781 343, 0, 0, 0, 0, 150, 151, 152, 153, 154,
1782 155, 0, 77, 169, 170, 0, 171, 172, 82, 0,
1783 0, 0, 156, 157, 158, 0, 137, 138, 139, 0,
1784 140, 141, 142, 143, 144, 145, 146, 147, 215, -534,
1785 0, 0, 0, 0, 343, 0, 159, 0, 0, 150,
1786 151, 152, 153, 154, 155, 0, 77, 169, 170, 0,
1787 171, 172, 82, 0, 0, 0, 156, 157, 158, 0,
1788 0, 161, 162, 163, 164, 165, 166, 0, 0, 0,
1789 0, 0, 0, 0, 0, 167, 0, 0, 0, 168,
1790 159, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1792 0, 0, 0, 0, 0, 161, 162, 163, 164, 165,
1793 166, -134, 0, 0, 0, 0, -134, 0, 0, 167,
1794 0, 0, 0, 168, 0, 0, 0, 0, 0, 0,
1795 0, 0, 0, 0, 0, 0, 0, 3, 0, 0,
1796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1797 77, 169, 170, 0, 171, 172, 82, 0, 0, 0,
1798 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801 -537, 0, 0, 0, 77, 169, 170, 0, 171, 172,
1802 82, 0, 11, 12, 13, 0, 14, 15, 16, 17,
1803 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1804 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1805 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1806 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1807 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1808 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1809 0, 0, 0, 0, 0, 0, 0, 0, 131, 80,
1810 11, 12, 13, 83, 14, 15, 16, 17, 18, 19,
1811 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1812 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1813 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1814 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1815 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1816 69, 70, 71, 72, 73, 74, 75, 76, -677, 0,
1817 0, 0, 0, 0, 0, 0, 131, 80, 0, 0,
1818 0, 83, 0, 0, 0, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1821 0, 0, 0, -679, -679, -679, 0, 0, 0, 0,
1822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1823 0, 0, 0, -679, 0, 0, 0, 0, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1825 0, 0, 0, 0, 0, 0, -679, -679, -679, 0,
1826 -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
1827 0, -679, -679, -679, -679, -679, -679, -679, -679, -679,
1828 -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
1829 -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
1830 -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
1831 -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
1832 -679, -679, -679, -679, -268, 0, 0, 0, 0, 0,
1833 0, 0, 0, -679, 2, 303, 0, -679, 599, 0,
1834 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1835 0, 0, 0, 0, 0, 0, 0, 156, 157, 158,
1836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838 0, 159, 0, 0, 0, 0, 0, 0, 0, 0,
1839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1841 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1842 20, 21, 22, 23, 168, 24, 25, 26, 27, 28,
1843 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1844 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1845 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1846 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1847 69, 70, 71, 72, 73, 74, 75, 76, 0, 0,
1848 0, 0, 0, 0, 77, 78, 79, 80, 0, 81,
1849 82, 83, 0, 0, 0, 77, 304, 305, 303, 171,
1850 0, 680, 0, 150, 151, 152, 153, 154, 155, 303,
1851 938, 0, 0, 0, 150, 151, 152, 153, 154, 155,
1852 156, 157, 158, 0, 0, 0, 0, 0, 0, 303,
1853 -250, 156, 157, 158, 150, 151, 152, 153, 154, 155,
1854 332, 0, 0, 0, 159, 150, 151, 152, 153, 154,
1855 155, 156, 157, 158, 0, 159, 0, 0, 0, 0,
1856 622, 0, 156, 157, 158, 150, 151, 152, 153, 154,
1857 155, 0, 0, 0, 0, 159, 0, 0, 0, 0,
1858 0, 0, 156, 157, 158, 624, 159, 168, 0, 0,
1859 150, 151, 152, 153, 154, 155, 0, 0, 168, 0,
1860 0, 0, 0, 0, 0, 0, 159, 156, 157, 158,
1861 0, 0, 0, 0, 0, 0, 0, 698, 168, 0,
1862 0, 0, 699, 700, 701, 702, 703, 704, 0, 168,
1863 0, 159, 0, 0, 0, 0, 0, 0, 0, 156,
1864 705, 706, 0, 0, 0, 0, 0, 0, 0, 168,
1865 0, 0, 0, 0, 0, 0, 0, 0, 77, 304,
1866 305, 0, 171, 707, 0, 0, 0, 0, 0, 77,
1867 304, 305, 0, 171, 168, 0, 0, 0, 0, 0,
1868 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,
1869 304, 305, 0, 171, 0, 0, 0, 0, 0, 0,
1870 77, 304, 305, 0, 171, 0, 168, 0, 0, 0,
1871 0, 0, 0, 0, -194, -194, 0, 0, 0, 0,
1872 77, 304, 305, 0, 171, 0, 0, 0, 0, 0,
1873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1874 0, 0, 0, 0, 0, 77, 304, 305, 0, 171,
1875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1877 0, 0, 0, 0, 0, 0, 0, 77, 708, 709,
1878 0, 171, 11, 12, 13, 0, 14, 15, 16, 17,
1879 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1880 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1881 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1882 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1883 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1884 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1885 3, 0, 0, 0, 0, 0, 0, 0, 131, 80,
1886 0, 0, 0, 83, 0, 0, 0, 0, 0, 0,
1887 0, 0, -401, -401, -401, 0, 4, 0, 0, 0,
1888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1891 0, 0, 0, 0, 0, 11, 12, 13, 0, 14,
1892 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1893 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1894 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1895 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1896 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1897 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1898 74, 75, 76, 3, 0, 0, 0, 0, 0, 0,
1899 0, 131, 80, 0, 0, 0, 83, 0, 0, 0,
1900 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
1901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1904 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1905 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1906 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1907 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1908 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1909 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1910 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1911 71, 72, 73, 74, 75, 76, 3, 0, 0, 0,
1912 0, 0, 77, 1047, 131, 80, 0, 0, 0, 83,
1913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1914 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
1915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1918 0, 11, 12, 13, 0, 14, 15, 16, 17, 18,
1919 19, 20, 21, 22, 23, 0, 24, 25, 26, 27,
1920 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1921 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1922 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1923 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1924 68, 69, 70, 71, 72, 73, 74, 75, 76, -401,
1925 -401, -401, 0, 0, 0, 0, 0, 131, 80, 0,
1926 0, 0, 83, 0, 0, 0, 0, 0, 0, 0,
1927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1929 0, 0, 11, 12, 13, 0, 14, 15, 16, 17,
1930 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1931 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1932 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1933 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1934 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1935 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1936 8, 9, 10, 0, 0, 0, 0, 0, 131, 80,
1937 0, 0, 0, 83, 0, 0, 0, 0, 0, 11,
1938 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1939 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1940 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1941 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1942 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1943 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1944 70, 71, 72, 73, 74, 75, 76, 0, 0, 0,
1945 0, 0, 0, 0, 0, 131, 80, 11, 12, 13,
1946 83, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1947 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1948 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1949 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1950 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1951 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1952 72, 73, 74, 75, 76, 0, 0, 0, 0, 0,
1953 0, 0, 0, 131, 80, 0, 0, 0, 83
1956 static const short yycheck[] = { 0,
1957 0, 137, 3, 2, 117, 425, 7, 8, 9, 10,
1958 388, 441, 0, 0, 343, 3, 473, 5, 530, 632,
1959 632, 389, 632, 390, 378, 379, 8, 278, 295, 528,
1960 27, 380, 381, 632, 601, 597, 150, 151, 152, 153,
1961 154, 155, 382, 383, 384, 385, 8, 19, 216, 386,
1962 387, 471, 21, 221, 792, 223, 25, 795, 5, 9,
1963 10, 907, 451, 914, 19, 0, 486, 670, 3, 895,
1964 0, 55, 7, 227, 297, 688, 688, 24, 688, 5,
1965 887, 34, 21, 84, 84, 636, 25, 34, 798, 688,
1966 9, 10, 426, 5, 804, 18, 84, 84, 24, 41,
1967 39, 18, 1059, 1060, 258, 539, 24, 24, 34, 24,
1968 98, 636, 28, 25, 56, 682, 117, 34, 21, 34,
1969 632, 109, 110, 557, 27, 124, 783, 41, 44, 757,
1970 24, 5, 133, 632, 133, 26, 636, 28, 18, 28,
1971 34, 21, 56, 144, 772, 133, 24, 5, 149, 84,
1972 24, 25, 26, 44, 84, 44, 34, 110, 111, 21,
1973 34, 581, 900, 1014, 21, 27, 167, 149, 25, 1126,
1974 996, 997, 26, 655, 28, 1021, 688, 1023, 18, 986,
1975 987, 21, 117, 603, 8, 9, 10, 149, 636, 688,
1976 44, 188, 193, 636, 583, 798, 53, 54, 133, 183,
1977 201, 804, 203, 18, 205, 18, 757, 208, 918, 144,
1978 23, 193, 184, 185, 186, 216, 673, 189, 190, 188,
1979 221, 772, 223, 205, 21, 8, 208, 478, 25, 452,
1980 559, 193, 757, 180, 181, 236, 237, 184, 185, 201,
1981 87, 188, 1068, 205, 1070, 399, 208, 772, 582, 906,
1982 1057, 908, 420, 421, 632, 237, 21, 757, 184, 185,
1983 25, 375, 376, 377, 632, 632, 216, 184, 185, 184,
1984 185, 221, 772, 223, 26, 237, 277, 277, 632, 280,
1985 281, 282, 34, 632, 5, 884, 236, 21, 1026, 425,
1986 184, 185, 632, 294, 294, 632, 24, 216, 5, 300,
1987 782, 21, 221, 785, 223, 25, 184, 185, 996, 757,
1988 688, 578, 563, 24, 757, 918, 645, 236, 25, 18,
1989 688, 688, 21, 322, 772, 149, 184, 185, 186, 772,
1990 34, 189, 190, 321, 688, 471, 21, 24, 18, 688,
1991 25, 21, 277, 23, 345, 280, 281, 282, 688, 1175,
1992 486, 688, 353, 21, 355, 922, 607, 25, 815, 294,
1993 973, 973, 476, 973, 926, 300, 149, 879, 788, 193,
1994 5, 622, 21, 624, 973, 21, 25, 201, 877, 25,
1995 29, 205, 5, 87, 208, 18, 24, 21, 21, 1077,
1996 25, 25, 216, 217, 1082, 24, 21, 221, 399, 223,
1997 25, 24, 25, 26, 88, 89, 25, 32, 33, 28,
1998 193, 34, 236, 237, 18, 49, 50, 399, 201, 420,
1999 421, 26, 205, 28, 904, 208, 427, 907, 429, 429,
2000 417, 24, 21, 26, 118, 119, 25, 399, 439, 44,
2001 441, 428, 443, 1131, 432, 581, 22, 698, 132, 24,
2002 451, 26, 451, 454, 237, 1054, 21, 458, 34, 34,
2003 25, 973, 21, 184, 185, 186, 25, 603, 189, 190,
2004 420, 421, 21, 24, 973, 26, 25, 184, 185, 186,
2005 184, 185, 189, 190, 21, 189, 190, 18, 25, 490,
2006 21, 8, 9, 10, 429, 18, 874, 18, 499, 500,
2007 21, 420, 421, 16, 439, 24, 441, 875, 443, 876,
2008 864, 865, 49, 50, 32, 33, 451, 866, 867, 454,
2009 184, 185, 186, 458, 1123, 189, 190, 16, 868, 869,
2010 870, 871, 16, 203, 358, 872, 873, 538, 539, 25,
2011 26, 1021, 28, 1023, 21, 546, 546, 16, 25, 184,
2012 185, 186, 539, 554, 189, 190, 557, 558, 44, 15,
2013 673, 184, 185, 186, 499, 500, 189, 190, 25, 26,
2014 557, 18, 49, 50, 21, 399, 538, 22, 37, 38,
2015 100, 26, 583, 28, 583, 699, 700, 701, 702, 703,
2016 704, 22, 51, 52, 21, 973, 420, 421, 25, 44,
2017 21, 29, 590, 932, 25, 973, 973, 22, 184, 185,
2018 186, 546, 22, 189, 190, 24, 399, 26, 18, 973,
2019 887, 21, 49, 50, 973, 34, 18, 628, 629, 21,
2020 21, 632, 149, 973, 25, 39, 973, 21, 40, 640,
2021 641, 25, 643, 49, 50, 1102, 37, 38, 583, 8,
2022 9, 10, 788, 920, 67, 68, 69, 658, 1088, 660,
2023 51, 52, 55, 37, 38, 21, 8, 19, 669, 25,
2024 94, 672, 673, 674, 673, 345, 193, 51, 52, 678,
2025 24, 37, 38, 353, 201, 355, 18, 688, 205, 21,
2026 34, 208, 188, 25, 830, 51, 52, 94, 0, 216,
2027 22, 3, 815, 21, 221, 18, 223, 25, 21, 11,
2028 12, 22, 25, 22, 538, 982, 34, 35, 36, 236,
2029 237, 24, 21, 658, 991, 660, 25, 184, 185, 186,
2030 1150, 21, 189, 190, 669, 25, 94, 672, 673, 24,
2031 24, 26, 26, 28, 1011, 53, 54, 861, 862, 863,
2032 34, 24, 21, 19, 27, 538, 25, 427, 20, 44,
2033 1027, 34, 47, 48, 1184, 24, 21, 26, 21, 28,
2034 25, 94, 25, 27, 775, 184, 185, 186, 24, 26,
2035 189, 190, 84, 6, 7, 44, 1037, 34, 47, 48,
2036 149, 24, 780, 26, 34, 783, 1063, 99, 100, 101,
2037 102, 103, 104, 105, 106, 23, 108, 149, 21, 111,
2038 25, 26, 25, 28, 815, 117, 815, 1084, 18, 21,
2039 490, 18, 936, 25, 825, 127, 128, 129, 21, 44,
2040 18, 133, 25, 24, 193, 21, 180, 181, 22, 25,
2041 184, 185, 201, 24, 188, 26, 205, 149, 21, 208,
2042 18, 193, 25, 25, 156, 24, 21, 216, 27, 201,
2043 25, 25, 221, 205, 223, 34, 208, 32, 33, 539,
2044 25, 26, 21, 28, 24, 21, 25, 236, 237, 25,
2045 815, 21, 399, 42, 43, 25, 887, 557, 558, 44,
2046 825, 18, 21, 335, 895, 237, 25, 34, 35, 36,
2047 184, 185, 186, 420, 421, 189, 190, 191, 18, 21,
2048 18, 184, 185, 25, 216, 188, 904, 359, 906, 907,
2049 908, 19, 364, 365, 366, 367, 368, 369, 370, 371,
2050 372, 373, 374, 34, 35, 36, 18, 184, 185, 186,
2051 941, 942, 189, 190, 184, 185, 186, 21, 18, 189,
2052 190, 25, 254, 395, 51, 52, 53, 9, 628, 629,
2053 34, 35, 36, 21, 21, 21, 21, 25, 25, 25,
2054 25, 641, 973, 21, 11, 277, 278, 25, 280, 281,
2055 21, 20, 21, 984, 25, 986, 987, 21, 24, 1102,
2056 21, 25, 294, 994, 25, 996, 997, 984, 300, 21,
2057 22, 303, 32, 33, 674, 25, 941, 942, 11, 49,
2058 50, 90, 1013, 21, 1150, 184, 185, 1018, 1018, 188,
2059 322, 538, 20, 21, 53, 54, 19, 1163, 19, 1030,
2060 1030, 1030, 1033, 1021, 19, 1023, 20, 21, 21, 22,
2061 399, 343, 32, 33, 109, 110, 19, 90, 1184, 27,
2062 24, 21, 21, 1054, 1055, 1056, 1057, 399, 1059, 1060,
2063 25, 420, 421, 22, 18, 21, 24, 1068, 25, 1070,
2064 11, 24, 1073, 24, 24, 27, 1077, 25, 1079, 1080,
2065 24, 1082, 20, 1018, 23, 19, 19, 1088, 20, 5,
2066 25, 21, 23, 22, 20, 1030, 72, 24, 1033, 27,
2067 24, 1102, 25, 20, 25, 27, 8, 9, 10, 27,
2068 18, 25, 25, 25, 416, 21, 185, 22, 25, 29,
2069 1055, 1056, 1123, 1124, 1125, 1126, 24, 429, 39, 25,
2070 1131, 18, 25, 24, 436, 55, 438, 40, 440, 441,
2071 18, 443, 25, 90, 1079, 1080, 448, 90, 8, 451,
2072 1151, 1151, 25, 1088, 90, 25, 458, 66, 67, 68,
2073 69, 70, 71, 72, 73, 74, 75, 1102, 470, 25,
2074 21, 473, 614, 475, 1175, 90, 478, 18, 188, 538,
2075 18, 40, 21, 23, 18, 190, 90, 24, 21, 1124,
2076 1125, 23, 22, 90, 22, 90, 538, 21, 107, 22,
2077 20, 20, 111, 25, 113, 192, 115, 25, 90, 40,
2078 27, 120, 27, 25, 18, 20, 1151, 20, 27, 25,
2079 662, 130, 0, 132, 0, 57, 58, 59, 60, 61,
2080 62, 63, 64, 65, 66, 120, 121, 122, 123, 84,
2081 125, 300, 895, 1175, 546, 130, 131, 149, 1144, 134,
2082 135, 1073, 137, 138, 139, 140, 661, 976, 560, 1045,
2083 985, 563, 1123, 1013, 845, 174, 443, 152, 153, 770,
2084 563, 660, 1151, 658, 576, 577, 815, 124, 672, 10,
2085 322, 583, 1107, 490, 399, 688, -1, 147, 341, 149,
2086 236, 193, 177, -1, 973, -1, 8, 9, 10, 201,
2087 602, -1, 187, 205, -1, 607, 208, -1, -1, -1,
2088 137, -1, -1, -1, 216, 617, 618, -1, -1, 221,
2089 622, 223, 624, 150, 151, 152, 153, 154, 155, -1,
2090 157, 158, -1, 193, 236, 237, -1, -1, -1, -1,
2091 -1, 201, -1, -1, -1, 205, -1, 649, 208, -1,
2092 792, -1, 261, 795, -1, 657, 216, 659, -1, -1,
2093 -1, 663, 664, -1, -1, -1, 668, -1, -1, -1,
2094 672, 673, -1, -1, -1, -1, 678, 237, -1, 288,
2095 -1, -1, 291, -1, -1, -1, -1, -1, -1, -1,
2096 299, -1, -1, 302, -1, -1, 698, -1, -1, -1,
2097 -1, -1, 844, 845, -1, -1, -1, -1, 850, 851,
2098 852, 853, 854, 855, 856, 857, 858, 859, 860, -1,
2099 -1, -1, -1, -1, 8, 9, 10, 23, -1, -1,
2100 -1, -1, -1, -1, -1, -1, -1, 149, -1, -1,
2101 -1, -1, -1, 303, -1, -1, -1, -1, -1, -1,
2102 -1, 311, 312, 313, 314, -1, -1, -1, 900, -1,
2103 -1, 57, 58, 59, 60, 61, 62, 63, 64, 65,
2104 66, -1, 332, -1, -1, -1, 778, -1, -1, -1,
2105 -1, 193, -1, 343, -1, -1, -1, -1, -1, 201,
2106 -1, -1, -1, 205, -1, -1, 208, 399, -1, -1,
2107 360, -1, -1, -1, 216, -1, -1, 416, -1, 221,
2108 -1, 223, 814, 815, -1, 817, -1, 426, 420, 421,
2109 -1, -1, 431, -1, 236, 237, -1, 436, -1, 438,
2110 -1, -1, -1, -1, -1, -1, -1, 446, -1, 399,
2111 -1, 450, -1, -1, -1, -1, -1, 407, 375, 376,
2112 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
2113 387, 388, 389, 390, -1, 149, 18, -1, -1, -1,
2114 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2115 32, 33, 34, -1, 1026, -1, -1, -1, -1, -1,
2116 -1, -1, -1, -1, 46, 47, 48, -1, 425, 18,
2117 -1, 903, -1, -1, -1, 24, -1, -1, 910, 193,
2118 29, 30, 31, 32, 33, 34, -1, 201, 70, -1,
2119 -1, 205, -1, -1, 208, -1, -1, 46, 47, 48,
2120 -1, -1, 216, -1, -1, -1, 538, 221, -1, 223,
2121 -1, -1, -1, -1, 471, -1, -1, -1, -1, 476,
2122 -1, 70, 236, 237, -1, -1, -1, -1, 24, 486,
2123 -1, 113, -1, 29, 30, 31, 32, 33, 34, 529,
2124 -1, -1, -1, 582, -1, -1, -1, -1, 538, -1,
2125 46, 47, 48, -1, -1, -1, -1, 399, -1, -1,
2126 -1, -1, 601, -1, 113, -1, -1, 606, -1, -1,
2127 -1, 528, -1, 530, 70, 532, 533, -1, 420, 421,
2128 8, 9, 10, 1015, -1, -1, 1018, -1, -1, -1,
2129 -1, -1, -1, -1, 633, -1, 635, -1, 1030, -1,
2130 1032, -1, 184, 185, 186, 1037, 188, 597, 1040, 1041,
2131 -1, -1, -1, -1, -1, -1, -1, 113, 72, 73,
2132 74, 75, -1, -1, 581, 79, 80, 81, 82, 83,
2133 84, 85, 622, -1, 624, 184, 185, 186, -1, 188,
2134 630, -1, -1, -1, 634, -1, 603, -1, -1, -1,
2135 -1, 1083, -1, -1, -1, -1, 1088, -1, 1090, 1091,
2136 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2137 1102, 710, -1, -1, -1, 632, -1, -1, -1, -1,
2138 -1, -1, -1, -1, -1, 399, -1, -1, 184, 185,
2139 186, -1, 188, -1, -1, 1127, 538, 687, -1, -1,
2140 -1, -1, -1, -1, -1, -1, 420, 421, 698, -1,
2141 -1, -1, -1, -1, -1, 1147, 1148, -1, -1, 1151,
2142 -1, 149, 1154, 19, 20, -1, 765, 766, 24, -1,
2143 -1, 688, -1, 29, 30, 31, 32, 33, 34, -1,
2144 -1, -1, 699, 700, 701, 702, 703, 704, 705, 706,
2145 46, 47, 48, -1, -1, -1, -1, -1, 797, -1,
2146 -1, -1, -1, -1, -1, 193, -1, -1, -1, -1,
2147 -1, -1, -1, 201, 70, -1, -1, 205, -1, -1,
2148 208, -1, -1, -1, -1, -1, -1, -1, 216, -1,
2149 -1, 19, -1, 221, -1, 223, 24, -1, -1, -1,
2150 -1, 29, 30, 31, 32, 33, 34, -1, 236, 237,
2151 -1, -1, -1, -1, -1, -1, -1, 113, 46, 47,
2152 48, -1, -1, -1, 538, -1, -1, -1, -1, -1,
2153 -1, 788, -1, -1, -1, -1, -1, -1, -1, -1,
2154 -1, -1, 70, -1, -1, -1, -1, -1, 19, -1,
2155 -1, -1, -1, 24, -1, -1, 846, -1, 29, 30,
2156 31, 32, 33, 34, 903, -1, -1, -1, -1, -1,
2157 -1, -1, -1, 830, -1, 46, 47, 48, -1, -1,
2158 -1, -1, -1, 922, -1, 113, -1, -1, 184, 185,
2159 186, -1, 188, -1, -1, -1, -1, -1, -1, 70,
2160 -1, -1, -1, -1, 861, 862, 863, 864, 865, 866,
2161 867, 868, 869, 870, 871, 872, 873, 874, 875, 876,
2162 877, -1, 879, -1, -1, -1, -1, -1, -1, 0,
2163 1, -1, -1, -1, -1, -1, 926, -1, -1, -1,
2164 -1, -1, 113, -1, -1, -1, -1, -1, -1, -1,
2165 -1, -1, -1, 24, -1, -1, 184, 185, 186, -1,
2166 188, -1, -1, 34, -1, -1, -1, -1, -1, -1,
2167 -1, 399, -1, -1, 45, -1, -1, 1016, -1, 936,
2168 -1, 971, -1, -1, -1, -1, -1, -1, -1, -1,
2169 -1, -1, 420, 421, -1, -1, 67, 68, 69, -1,
2170 71, -1, -1, -1, -1, 76, 77, 78, -1, -1,
2171 -1, -1, -1, 184, 185, 186, 973, 188, -1, -1,
2172 91, 92, 93, -1, -1, -1, -1, -1, -1, -1,
2173 -1, -1, -1, -1, -1, -1, -1, -1, -1, 110,
2174 111, 112, -1, 114, 115, 116, 117, 118, 119, 120,
2175 121, 122, 123, 1092, 125, 126, 127, 128, 129, 130,
2176 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2177 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2178 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2179 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2180 171, 172, 173, 174, 175, 176, 177, -1, -1, -1,
2181 538, -1, -1, 184, 185, 186, 187, -1, 189, 190,
2182 191, 0, 1, -1, -1, -1, -1, -1, -1, -1,
2183 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2184 -1, -1, -1, 1182, -1, 24, -1, -1, -1, -1,
2185 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
2186 -1, -1, -1, -1, -1, -1, 45, -1, -1, -1,
2187 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2188 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
2189 69, -1, 71, 1150, -1, -1, -1, 76, 77, 78,
2190 -1, -1, -1, -1, -1, -1, 1163, -1, -1, -1,
2191 -1, -1, 91, 92, 93, -1, -1, -1, -1, -1,
2192 -1, -1, -1, -1, -1, -1, -1, 1184, -1, -1,
2193 -1, 110, 111, 112, -1, 114, 115, 116, 117, 118,
2194 119, 120, 121, 122, 123, -1, 125, 126, 127, 128,
2195 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2196 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2197 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2198 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2199 169, 170, 171, 172, 173, 174, 175, 176, 177, -1,
2200 -1, -1, -1, -1, -1, 184, 185, 186, 187, 1,
2201 189, 190, 191, -1, 6, 7, 8, -1, 10, 11,
2202 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2203 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2204 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2205 42, 43, -1, 45, 46, 47, 48, -1, -1, -1,
2206 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2207 -1, -1, -1, -1, -1, 67, 68, 69, 70, 71,
2208 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2209 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2210 -1, -1, -1, 95, 96, 97, 98, 99, 100, -1,
2211 -1, -1, -1, -1, -1, -1, -1, 109, 110, 111,
2212 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2213 122, 123, -1, 125, 126, 127, 128, 129, 130, 131,
2214 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2215 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2216 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2217 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2218 172, 173, 174, 175, 176, 177, -1, -1, -1, -1,
2219 -1, -1, 184, 185, 186, 187, 188, 189, 190, 191,
2220 1, -1, -1, -1, -1, 6, 7, 8, -1, 10,
2221 11, 12, 13, 14, 15, 16, 17, 18, 19, -1,
2222 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2223 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2224 -1, 42, 43, -1, -1, 46, 47, 48, -1, -1,
2225 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2226 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
2227 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2228 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2229 -1, -1, -1, -1, 95, 96, 97, 98, 99, 100,
2230 -1, -1, -1, -1, -1, -1, -1, -1, 109, 110,
2231 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2232 121, 122, 123, -1, 125, 126, 127, 128, 129, 130,
2233 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2234 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2235 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2236 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2237 171, 172, 173, 174, 175, 176, 177, -1, -1, -1,
2238 -1, -1, -1, 184, 185, 186, 187, 188, 189, 190,
2239 191, 1, -1, -1, -1, -1, 6, 7, 8, -1,
2240 -1, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2241 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2242 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2243 -1, -1, 42, 43, -1, -1, 46, 47, 48, -1,
2244 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2245 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
2246 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2247 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2248 -1, -1, -1, -1, -1, 95, 96, 97, 98, 99,
2249 100, -1, -1, -1, -1, -1, -1, -1, -1, 109,
2250 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2251 120, 121, 122, 123, -1, 125, 126, 127, 128, 129,
2252 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2253 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2254 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2255 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2256 170, 171, 172, 173, 174, 175, 176, 177, -1, -1,
2257 -1, -1, -1, -1, 184, 185, 186, 187, 188, 189,
2258 190, 191, 1, -1, -1, -1, -1, 6, 7, 8,
2259 -1, -1, 11, 12, 13, 14, 15, 16, 17, 18,
2260 19, 20, -1, -1, -1, 24, 25, -1, -1, -1,
2261 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2262 -1, -1, -1, 42, 43, -1, 1, 46, 47, 48,
2263 -1, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2264 15, 16, 17, 18, 19, -1, -1, -1, -1, 24,
2265 -1, 70, -1, -1, 29, 30, 31, 32, 33, 34,
2266 -1, -1, -1, -1, -1, -1, -1, 42, 43, -1,
2267 -1, 46, 47, 48, -1, 94, 95, 96, 97, 98,
2268 99, 100, -1, -1, -1, -1, -1, -1, -1, -1,
2269 109, -1, -1, -1, 113, 70, -1, -1, -1, -1,
2270 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2271 -1, -1, -1, -1, -1, -1, -1, -1, -1, 94,
2272 95, 96, 97, 98, 99, 100, -1, -1, -1, -1,
2273 -1, -1, -1, -1, 109, -1, -1, -1, 113, -1,
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, -1, -1, 184, 185, 186, -1, 188,
2277 189, 190, -1, -1, -1, 1, -1, -1, -1, -1,
2278 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2279 16, 17, 18, 19, -1, -1, -1, -1, 24, -1,
2280 -1, -1, -1, 29, 30, 31, 32, 33, 34, 184,
2281 185, 186, -1, 188, 189, 190, 42, 43, -1, 1,
2282 46, 47, 48, -1, 6, 7, 8, -1, -1, 11,
2283 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2284 -1, -1, 24, -1, 70, -1, -1, 29, 30, 31,
2285 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2286 42, 43, -1, -1, 46, 47, 48, -1, 94, 95,
2287 96, 97, 98, 99, 100, -1, -1, -1, -1, -1,
2288 -1, -1, -1, 109, -1, -1, -1, 113, 70, -1,
2289 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2290 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2291 -1, -1, 94, 95, 96, 97, 98, 99, 100, -1,
2292 -1, -1, -1, -1, -1, -1, -1, 109, -1, -1,
2293 -1, 113, -1, -1, -1, -1, -1, -1, -1, -1,
2294 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2295 -1, -1, -1, -1, -1, -1, -1, -1, 184, 185,
2296 186, -1, 188, 189, 190, -1, -1, -1, 1, -1,
2297 -1, -1, -1, 6, 7, 8, -1, 10, 11, 12,
2298 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2299 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2300 33, 34, 184, 185, 186, -1, 188, 189, 190, 42,
2301 43, -1, 1, 46, 47, 48, -1, 6, 7, 8,
2302 -1, -1, 11, 12, 13, 14, 15, 16, 17, 18,
2303 19, 20, -1, -1, -1, 24, -1, 70, -1, -1,
2304 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2305 -1, -1, -1, 42, 43, -1, -1, 46, 47, 48,
2306 -1, -1, 95, 96, 97, 98, 99, 100, -1, -1,
2307 -1, -1, -1, -1, -1, -1, 109, -1, -1, -1,
2308 113, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2309 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2310 -1, -1, -1, -1, -1, -1, 95, 96, 97, 98,
2311 99, 100, -1, -1, -1, -1, -1, -1, -1, -1,
2312 109, -1, -1, -1, 113, -1, -1, -1, -1, -1,
2313 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2314 24, 25, -1, -1, -1, 29, 30, 31, 32, 33,
2315 34, 184, 185, 186, -1, 188, 189, 190, -1, -1,
2316 -1, 1, 46, 47, 48, -1, 6, 7, 8, -1,
2317 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2318 -1, -1, -1, -1, 24, -1, 70, -1, -1, 29,
2319 30, 31, 32, 33, 34, 184, 185, 186, -1, 188,
2320 189, 190, 42, 43, -1, -1, 46, 47, 48, -1,
2321 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2322 -1, -1, -1, -1, -1, -1, -1, -1, -1, 113,
2323 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2324 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2325 -1, -1, -1, -1, -1, 95, 96, 97, 98, 99,
2326 100, -1, -1, -1, -1, -1, -1, -1, -1, 109,
2327 6, 7, 8, 113, 10, 11, 12, 13, 14, 15,
2328 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2329 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2330 184, 185, 186, -1, 188, -1, 42, 43, -1, 45,
2331 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2332 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2333 -1, -1, -1, -1, 70, 71, -1, -1, -1, -1,
2334 -1, -1, -1, -1, 184, 185, 186, -1, 188, 189,
2335 190, -1, -1, -1, -1, -1, -1, -1, -1, 95,
2336 96, 97, 98, 99, 100, -1, -1, -1, -1, -1,
2337 -1, -1, -1, 109, 110, 111, 112, 113, 114, 115,
2338 116, 117, 118, 119, 120, 121, 122, 123, -1, 125,
2339 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2340 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2341 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2342 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2343 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2344 176, 177, -1, -1, -1, -1, -1, -1, 184, 185,
2345 186, 187, 188, 189, 190, 191, 6, 7, 8, -1,
2346 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2347 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2348 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2349 -1, -1, 42, 43, -1, 45, 46, 47, 48, -1,
2350 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2351 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2352 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2353 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2354 -1, -1, -1, -1, -1, 95, 96, 97, 98, 99,
2355 100, -1, -1, -1, -1, -1, -1, -1, -1, 109,
2356 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2357 120, 121, 122, 123, -1, 125, 126, 127, 128, 129,
2358 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2359 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2360 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2361 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2362 170, 171, 172, 173, 174, 175, 176, 177, -1, -1,
2363 -1, -1, -1, -1, 184, 185, 186, 187, 188, 189,
2364 190, 191, 6, 7, 8, -1, 10, 11, 12, 13,
2365 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2366 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2367 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
2368 -1, 45, 46, 47, 48, -1, -1, -1, -1, -1,
2369 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2370 -1, -1, -1, -1, -1, -1, 70, 71, -1, -1,
2371 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2372 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2373 -1, 95, 96, 97, 98, 99, 100, -1, -1, -1,
2374 -1, -1, -1, -1, -1, 109, 110, 111, 112, 113,
2375 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2376 -1, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2377 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2378 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2379 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2380 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2381 174, 175, 176, 177, -1, -1, -1, -1, -1, -1,
2382 184, 185, 186, 187, 188, 189, 190, 191, 6, 7,
2383 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2384 18, 19, 20, -1, -1, -1, 24, -1, -1, -1,
2385 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2386 -1, -1, -1, -1, -1, -1, -1, -1, 46, 47,
2387 48, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2388 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2389 24, -1, 70, -1, -1, 29, 30, 31, 32, 33,
2390 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2391 -1, -1, 46, 47, 48, -1, -1, 95, 96, 97,
2392 98, 99, 100, -1, -1, -1, -1, -1, -1, -1,
2393 -1, 109, -1, -1, -1, 113, 70, -1, -1, -1,
2394 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2395 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2396 -1, 95, 96, 97, 98, 99, 100, -1, -1, -1,
2397 -1, -1, -1, -1, -1, 109, 6, 7, 8, 113,
2398 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2399 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2400 30, 31, 32, 33, 34, -1, 184, 185, 186, -1,
2401 188, 189, 190, -1, -1, -1, 46, 47, 48, -1,
2402 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2403 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2404 70, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2405 184, 185, 186, -1, 188, 189, 190, -1, -1, -1,
2406 46, 47, 48, -1, -1, 95, 96, 97, 98, 99,
2407 100, -1, -1, -1, -1, -1, -1, -1, -1, 109,
2408 -1, -1, -1, 113, 70, -1, -1, -1, -1, -1,
2409 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2410 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
2411 96, 97, 98, 99, 100, -1, -1, -1, -1, -1,
2412 -1, -1, -1, 109, 6, 7, 8, 113, 10, 11,
2413 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2414 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2415 32, 33, 34, -1, 184, 185, 186, -1, 188, 189,
2416 190, -1, -1, -1, 46, 47, 48, -1, 6, 7,
2417 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2418 18, 19, 20, -1, -1, -1, 24, -1, 70, -1,
2419 -1, 29, 30, 31, 32, 33, 34, -1, 184, 185,
2420 186, -1, 188, 189, 190, -1, -1, -1, 46, 47,
2421 48, -1, -1, 95, 96, 97, 98, 99, 100, -1,
2422 -1, -1, -1, -1, -1, -1, -1, 109, -1, -1,
2423 -1, 113, 70, -1, -1, -1, -1, -1, -1, -1,
2424 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2425 -1, -1, -1, -1, -1, -1, -1, 95, 96, 97,
2426 98, 99, 100, -1, -1, -1, -1, -1, -1, -1,
2427 -1, 109, 6, 7, 8, 113, 10, 11, 12, 13,
2428 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2429 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2430 34, -1, 184, 185, 186, -1, 188, 189, 190, -1,
2431 -1, -1, 46, 47, 48, -1, 6, 7, 8, -1,
2432 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2433 -1, -1, -1, -1, 24, -1, 70, -1, -1, 29,
2434 30, 31, 32, 33, 34, -1, 184, 185, 186, -1,
2435 188, 189, 190, -1, -1, -1, 46, 47, 48, -1,
2436 -1, 95, 96, 97, 98, 99, 100, -1, -1, -1,
2437 -1, -1, -1, -1, -1, 109, -1, -1, -1, 113,
2438 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2439 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2440 -1, -1, -1, -1, -1, 95, 96, 97, 98, 99,
2441 100, 19, -1, -1, -1, -1, 24, -1, -1, 109,
2442 -1, -1, -1, 113, -1, -1, -1, -1, -1, -1,
2443 -1, -1, -1, -1, -1, -1, -1, 45, -1, -1,
2444 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2445 184, 185, 186, -1, 188, 189, 190, -1, -1, -1,
2446 -1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2448 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2449 20, -1, -1, -1, 184, 185, 186, -1, 188, 189,
2450 190, -1, 110, 111, 112, -1, 114, 115, 116, 117,
2451 118, 119, 120, 121, 122, 123, -1, 125, 126, 127,
2452 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2453 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2454 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2455 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2456 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2457 -1, -1, -1, -1, -1, -1, -1, -1, 186, 187,
2458 110, 111, 112, 191, 114, 115, 116, 117, 118, 119,
2459 120, 121, 122, 123, -1, 125, 126, 127, 128, 129,
2460 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2461 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2462 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2463 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2464 170, 171, 172, 173, 174, 175, 176, 177, 22, -1,
2465 -1, -1, -1, -1, -1, -1, 186, 187, -1, -1,
2466 -1, 191, -1, -1, -1, -1, -1, -1, -1, -1,
2467 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2468 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2469 -1, -1, -1, 67, 68, 69, -1, -1, -1, -1,
2470 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2471 -1, -1, -1, 87, -1, -1, -1, -1, -1, -1,
2472 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2473 -1, -1, -1, -1, -1, -1, 110, 111, 112, -1,
2474 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2475 -1, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2476 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2477 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2478 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2479 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2480 174, 175, 176, 177, 24, -1, -1, -1, -1, -1,
2481 -1, -1, -1, 187, 34, 24, -1, 191, 27, -1,
2482 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2483 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2484 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2485 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2486 -1, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2488 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2489 110, 111, 112, -1, 114, 115, 116, 117, 118, 119,
2490 120, 121, 122, 123, 113, 125, 126, 127, 128, 129,
2491 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2492 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2493 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2494 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2495 170, 171, 172, 173, 174, 175, 176, 177, -1, -1,
2496 -1, -1, -1, -1, 184, 185, 186, 187, -1, 189,
2497 190, 191, -1, -1, -1, 184, 185, 186, 24, 188,
2498 -1, 27, -1, 29, 30, 31, 32, 33, 34, 24,
2499 25, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2500 46, 47, 48, -1, -1, -1, -1, -1, -1, 24,
2501 25, 46, 47, 48, 29, 30, 31, 32, 33, 34,
2502 24, -1, -1, -1, 70, 29, 30, 31, 32, 33,
2503 34, 46, 47, 48, -1, 70, -1, -1, -1, -1,
2504 24, -1, 46, 47, 48, 29, 30, 31, 32, 33,
2505 34, -1, -1, -1, -1, 70, -1, -1, -1, -1,
2506 -1, -1, 46, 47, 48, 24, 70, 113, -1, -1,
2507 29, 30, 31, 32, 33, 34, -1, -1, 113, -1,
2508 -1, -1, -1, -1, -1, -1, 70, 46, 47, 48,
2509 -1, -1, -1, -1, -1, -1, -1, 24, 113, -1,
2510 -1, -1, 29, 30, 31, 32, 33, 34, -1, 113,
2511 -1, 70, -1, -1, -1, -1, -1, -1, -1, 46,
2512 47, 48, -1, -1, -1, -1, -1, -1, -1, 113,
2513 -1, -1, -1, -1, -1, -1, -1, -1, 184, 185,
2514 186, -1, 188, 70, -1, -1, -1, -1, -1, 184,
2515 185, 186, -1, 188, 113, -1, -1, -1, -1, -1,
2516 -1, -1, -1, -1, -1, -1, -1, -1, -1, 184,
2517 185, 186, -1, 188, -1, -1, -1, -1, -1, -1,
2518 184, 185, 186, -1, 188, -1, 113, -1, -1, -1,
2519 -1, -1, -1, -1, 42, 43, -1, -1, -1, -1,
2520 184, 185, 186, -1, 188, -1, -1, -1, -1, -1,
2521 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2522 -1, -1, -1, -1, -1, 184, 185, 186, -1, 188,
2523 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2525 -1, -1, -1, -1, -1, -1, -1, 184, 185, 186,
2526 -1, 188, 110, 111, 112, -1, 114, 115, 116, 117,
2527 118, 119, 120, 121, 122, 123, -1, 125, 126, 127,
2528 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2529 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2530 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2531 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2532 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2533 45, -1, -1, -1, -1, -1, -1, -1, 186, 187,
2534 -1, -1, -1, 191, -1, -1, -1, -1, -1, -1,
2535 -1, -1, 67, 68, 69, -1, 71, -1, -1, -1,
2536 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2537 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2538 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2539 -1, -1, -1, -1, -1, 110, 111, 112, -1, 114,
2540 115, 116, 117, 118, 119, 120, 121, 122, 123, -1,
2541 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2542 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2543 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2544 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2545 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2546 175, 176, 177, 45, -1, -1, -1, -1, -1, -1,
2547 -1, 186, 187, -1, -1, -1, 191, -1, -1, -1,
2548 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2549 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2550 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2551 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2552 -1, -1, -1, -1, -1, -1, -1, -1, 110, 111,
2553 112, -1, 114, 115, 116, 117, 118, 119, 120, 121,
2554 122, 123, -1, 125, 126, 127, 128, 129, 130, 131,
2555 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2556 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2557 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2558 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2559 172, 173, 174, 175, 176, 177, 45, -1, -1, -1,
2560 -1, -1, 184, 185, 186, 187, -1, -1, -1, 191,
2561 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2562 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
2563 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2564 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2565 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2566 -1, 110, 111, 112, -1, 114, 115, 116, 117, 118,
2567 119, 120, 121, 122, 123, -1, 125, 126, 127, 128,
2568 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2569 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2570 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2571 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2572 169, 170, 171, 172, 173, 174, 175, 176, 177, 67,
2573 68, 69, -1, -1, -1, -1, -1, 186, 187, -1,
2574 -1, -1, 191, -1, -1, -1, -1, -1, -1, -1,
2575 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2576 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2577 -1, -1, 110, 111, 112, -1, 114, 115, 116, 117,
2578 118, 119, 120, 121, 122, 123, -1, 125, 126, 127,
2579 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2580 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2581 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2582 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2583 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2584 91, 92, 93, -1, -1, -1, -1, -1, 186, 187,
2585 -1, -1, -1, 191, -1, -1, -1, -1, -1, 110,
2586 111, 112, -1, 114, 115, 116, 117, 118, 119, 120,
2587 121, 122, 123, -1, 125, 126, 127, 128, 129, 130,
2588 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2589 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2590 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2591 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2592 171, 172, 173, 174, 175, 176, 177, -1, -1, -1,
2593 -1, -1, -1, -1, -1, 186, 187, 110, 111, 112,
2594 191, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2595 123, -1, 125, 126, 127, 128, 129, 130, 131, 132,
2596 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2597 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2598 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2599 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2600 173, 174, 175, 176, 177, -1, -1, -1, -1, -1,
2601 -1, -1, -1, 186, 187, -1, -1, -1, 191
2603 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2605 /* This file comes from bison-1.28. */
2607 /* Skeleton output parser for bison,
2608 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2610 This program is free software; you can redistribute it and/or modify
2611 it under the terms of the GNU General Public License as published by
2612 the Free Software Foundation; either version 2, or (at your option)
2615 This program is distributed in the hope that it will be useful,
2616 but WITHOUT ANY WARRANTY; without even the implied warranty of
2617 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2618 GNU General Public License for more details.
2620 You should have received a copy of the GNU General Public License
2621 along with this program; if not, write to the Free Software
2622 Foundation, Inc., 59 Temple Place - Suite 330,
2623 Boston, MA 02111-1307, USA. */
2625 /* As a special exception, when this file is copied by Bison into a
2626 Bison output file, you may use that output file without restriction.
2627 This special exception was added by the Free Software Foundation
2628 in version 1.24 of Bison. */
2630 /* This is the parser code that is written into each bison parser
2631 when the %semantic_parser declaration is not specified in the grammar.
2632 It was written by Richard Stallman by simplifying the hairy parser
2633 used when %semantic_parser is specified. */
2635 #ifndef YYSTACK_USE_ALLOCA
2637 #define YYSTACK_USE_ALLOCA
2638 #else /* alloca not defined */
2640 #define YYSTACK_USE_ALLOCA
2641 #define alloca __builtin_alloca
2642 #else /* not GNU C. */
2643 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
2644 #define YYSTACK_USE_ALLOCA
2646 #else /* not sparc */
2647 /* We think this test detects Watcom and Microsoft C. */
2648 /* This used to test MSDOS, but that is a bad idea
2649 since that symbol is in the user namespace. */
2650 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
2651 #if 0 /* No need for malloc.h, which pollutes the namespace;
2652 instead, just don't use alloca. */
2655 #else /* not MSDOS, or __TURBOC__ */
2657 /* I don't know what this was needed for, but it pollutes the namespace.
2658 So I turned it off. rms, 2 May 1997. */
2659 /* #include <malloc.h> */
2661 #define YYSTACK_USE_ALLOCA
2662 #else /* not MSDOS, or __TURBOC__, or _AIX */
2664 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
2665 and on HPUX 10. Eventually we can turn this on. */
2666 #define YYSTACK_USE_ALLOCA
2667 #define alloca __builtin_alloca
2670 #endif /* not _AIX */
2671 #endif /* not MSDOS, or __TURBOC__ */
2672 #endif /* not sparc */
2673 #endif /* not GNU C */
2674 #endif /* alloca not defined */
2675 #endif /* YYSTACK_USE_ALLOCA not defined */
2677 #ifdef YYSTACK_USE_ALLOCA
2678 #define YYSTACK_ALLOC alloca
2680 #define YYSTACK_ALLOC malloc
2683 /* Note: there must be only one dollar sign in this file.
2684 It is replaced by the list of actions, each action
2685 as one case of the switch. */
2687 #define yyerrok (yyerrstatus = 0)
2688 #define yyclearin (yychar = YYEMPTY)
2691 #define YYACCEPT goto yyacceptlab
2692 #define YYABORT goto yyabortlab
2693 #define YYERROR goto yyerrlab1
2694 /* Like YYERROR except do call yyerror.
2695 This remains here temporarily to ease the
2696 transition to the new meaning of YYERROR, for GCC.
2697 Once GCC version 2 has supplanted version 1, this can go. */
2698 #define YYFAIL goto yyerrlab
2699 #define YYRECOVERING() (!!yyerrstatus)
2700 #define YYBACKUP(token, value) \
2702 if (yychar == YYEMPTY && yylen == 1) \
2703 { yychar = (token), yylval = (value); \
2704 yychar1 = YYTRANSLATE (yychar); \
2709 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2713 #define YYERRCODE 256
2716 #define YYLEX yylex()
2722 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2724 #define YYLEX yylex(&yylval, &yylloc)
2726 #else /* not YYLSP_NEEDED */
2728 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2730 #define YYLEX yylex(&yylval)
2732 #endif /* not YYLSP_NEEDED */
2735 /* If nonreentrant, generate the variables here */
2739 int yychar; /* the lookahead symbol */
2740 YYSTYPE yylval; /* the semantic value of the */
2741 /* lookahead symbol */
2744 YYLTYPE yylloc; /* location data for the lookahead */
2748 int yynerrs; /* number of parse errors so far */
2749 #endif /* not YYPURE */
2752 int yydebug; /* nonzero means print parse trace */
2753 /* Since this is uninitialized, it does not stop multiple parsers
2757 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2760 #define YYINITDEPTH 200
2763 /* YYMAXDEPTH is the maximum size the stacks can grow to
2764 (effective only if the built-in stack extension method is used). */
2771 #define YYMAXDEPTH 10000
2774 /* Define __yy_memcpy. Note that the size argument
2775 should be passed with type unsigned int, because that is what the non-GCC
2776 definitions require. With GCC, __builtin_memcpy takes an arg
2777 of type size_t, but it can handle unsigned int. */
2779 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2780 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2781 #else /* not GNU C or C++ */
2784 /* This is the most reliable way to avoid incompatibilities
2785 in available built-in functions on various systems. */
2787 __yy_memcpy (to, from, count)
2792 register char *f = from;
2793 register char *t = to;
2794 register int i = count;
2800 #else /* __cplusplus */
2802 /* This is the most reliable way to avoid incompatibilities
2803 in available built-in functions on various systems. */
2805 __yy_memcpy (char *to, char *from, unsigned int count)
2807 register char *t = to;
2808 register char *f = from;
2809 register int i = count;
2820 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2821 into yyparse. The argument should have type void *.
2822 It should actually point to an object.
2823 Grammar actions can access the variable by casting it
2824 to the proper pointer type. */
2826 #ifdef YYPARSE_PARAM
2828 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2829 #define YYPARSE_PARAM_DECL
2830 #else /* not __cplusplus */
2831 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2832 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2833 #endif /* not __cplusplus */
2834 #else /* not YYPARSE_PARAM */
2835 #define YYPARSE_PARAM_ARG
2836 #define YYPARSE_PARAM_DECL
2837 #endif /* not YYPARSE_PARAM */
2839 /* Prevent warning if -Wstrict-prototypes. */
2841 #ifdef YYPARSE_PARAM
2842 int yyparse (void *);
2849 yyparse(YYPARSE_PARAM_ARG)
2852 register int yystate;
2854 register short *yyssp;
2855 register YYSTYPE *yyvsp;
2856 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2857 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2859 short yyssa[YYINITDEPTH]; /* the state stack */
2860 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2862 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2863 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2866 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2867 YYLTYPE *yyls = yylsa;
2870 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2872 #define YYPOPSTACK (yyvsp--, yyssp--)
2875 int yystacksize = YYINITDEPTH;
2876 int yyfree_stacks = 0;
2887 YYSTYPE yyval; /* the variable used to return */
2888 /* semantic values from the action */
2895 fprintf(stderr, "Starting parse\n");
2901 yychar = YYEMPTY; /* Cause a token to be read. */
2903 /* Initialize stack pointers.
2904 Waste one element of value and location stack
2905 so that they stay on the same level as the state stack.
2906 The wasted elements are never initialized. */
2914 /* Push a new state, which is found in yystate . */
2915 /* In all cases, when you get here, the value and location stacks
2916 have just been pushed. so pushing a state here evens the stacks. */
2921 if (yyssp >= yyss + yystacksize - 1)
2923 /* Give user a chance to reallocate the stack */
2924 /* Use copies of these so that the &'s don't force the real ones into memory. */
2925 YYSTYPE *yyvs1 = yyvs;
2926 short *yyss1 = yyss;
2928 YYLTYPE *yyls1 = yyls;
2931 /* Get the current used size of the three stacks, in elements. */
2932 int size = yyssp - yyss + 1;
2935 /* Each stack pointer address is followed by the size of
2936 the data in use in that stack, in bytes. */
2938 /* This used to be a conditional around just the two extra args,
2939 but that might be undefined if yyoverflow is a macro. */
2940 yyoverflow("parser stack overflow",
2941 &yyss1, size * sizeof (*yyssp),
2942 &yyvs1, size * sizeof (*yyvsp),
2943 &yyls1, size * sizeof (*yylsp),
2946 yyoverflow("parser stack overflow",
2947 &yyss1, size * sizeof (*yyssp),
2948 &yyvs1, size * sizeof (*yyvsp),
2952 yyss = yyss1; yyvs = yyvs1;
2956 #else /* no yyoverflow */
2957 /* Extend the stack our own way. */
2958 if (yystacksize >= YYMAXDEPTH)
2960 yyerror("parser stack overflow");
2972 if (yystacksize > YYMAXDEPTH)
2973 yystacksize = YYMAXDEPTH;
2974 #ifndef YYSTACK_USE_ALLOCA
2977 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
2978 __yy_memcpy ((char *)yyss, (char *)yyss1,
2979 size * (unsigned int) sizeof (*yyssp));
2980 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
2981 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
2982 size * (unsigned int) sizeof (*yyvsp));
2984 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
2985 __yy_memcpy ((char *)yyls, (char *)yyls1,
2986 size * (unsigned int) sizeof (*yylsp));
2988 #endif /* no yyoverflow */
2990 yyssp = yyss + size - 1;
2991 yyvsp = yyvs + size - 1;
2993 yylsp = yyls + size - 1;
2998 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3001 if (yyssp >= yyss + yystacksize - 1)
3007 fprintf(stderr, "Entering state %d\n", yystate);
3013 /* Do appropriate processing given the current state. */
3014 /* Read a lookahead token if we need one and don't already have one. */
3017 /* First try to decide what to do without reference to lookahead token. */
3019 yyn = yypact[yystate];
3023 /* Not known => get a lookahead token if don't already have one. */
3025 /* yychar is either YYEMPTY or YYEOF
3026 or a valid token in external form. */
3028 if (yychar == YYEMPTY)
3032 fprintf(stderr, "Reading a token: ");
3037 /* Convert token to internal form (in yychar1) for indexing tables with */
3039 if (yychar <= 0) /* This means end of input. */
3042 yychar = YYEOF; /* Don't call YYLEX any more */
3046 fprintf(stderr, "Now at end of input.\n");
3051 yychar1 = YYTRANSLATE(yychar);
3056 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3057 /* Give the individual parser a way to print the precise meaning
3058 of a token, for further debugging info. */
3060 YYPRINT (stderr, yychar, yylval);
3062 fprintf (stderr, ")\n");
3068 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3073 /* yyn is what to do for this token type in this state.
3074 Negative => reduce, -yyn is rule number.
3075 Positive => shift, yyn is new state.
3076 New state is final state => don't bother to shift,
3077 just return success.
3078 0, or most negative number => error. */
3093 /* Shift the lookahead token. */
3097 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3100 /* Discard the token being shifted unless it is eof. */
3101 if (yychar != YYEOF)
3109 /* count tokens shifted since error; after three, turn off error status. */
3110 if (yyerrstatus) yyerrstatus--;
3115 /* Do the default action for the current state. */
3118 yyn = yydefact[yystate];
3122 /* Do a reduction. yyn is the number of a rule to reduce with. */
3126 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3133 fprintf (stderr, "Reducing via rule %d (line %d), ",
3136 /* Print the symbols being reduced, and their result. */
3137 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3138 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3139 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3147 { context_checkGlobalScope (); ;
3150 { context_checkGlobalScope (); ;
3153 { uentry_clearDecl (); ;
3156 { uentry_clearDecl (); ;
3159 { uentry_clearDecl (); ;
3162 { uentry_clearDecl (); ;
3165 { uentry_clearDecl (); ;
3168 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3171 { uentry_clearDecl (); ;
3174 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3177 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3180 { context_enterFunctionHeader (); ;
3184 declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3185 context_exitFunctionHeader ();
3190 qtype qint = qtype_create (ctype_int);
3191 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3196 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3199 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3202 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3205 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3208 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3212 exprNode_findValue(yyvsp[-2].expr);
3213 if (exprNode_hasValue (yyvsp[-2].expr))
3215 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), exprNode_getLongValue (yyvsp[-2].expr)));
3219 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-5].ntyp)));
3224 { setCurrentParams (uentryList_missingParams); ;
3227 { /* need to support globals and modifies here! */
3228 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3229 uentryList_makeMissingParams ());
3231 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3232 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3234 /*drl 7/25/01 added*/
3235 setImplictfcnConstraints();
3239 { setCurrentParams (yyvsp[-1].entrylist); ;
3242 { setImplictfcnConstraints ();
3243 clearCurrentParams ();
3244 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3245 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3250 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3253 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3256 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3262 if (exprNode_hasValue (yyvsp[-2].expr)
3263 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3265 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3272 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3276 { setCurrentParams (uentryList_missingParams); ;
3280 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3281 uentryList_makeMissingParams ());
3283 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3284 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3289 { setCurrentParams (yyvsp[-1].entrylist); ;
3293 clearCurrentParams ();
3294 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3295 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3300 { setCurrentParams (yyvsp[-1].entrylist); ;
3303 { clearCurrentParams (); ;
3306 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3309 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3312 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3315 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3318 { exprChecks_checkEmptyMacroBody (); ;
3321 { clabstract_declareFunction (yyvsp[0].ntyp); ;
3324 { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3327 { cscanner_expectingMetaStateName (); ;
3330 { cscanner_clearExpectingMetaStateName ();
3331 yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo); ;
3334 { cscanner_expectingMetaStateName (); ;
3337 { cscanner_clearExpectingMetaStateName ();
3338 yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo); ;
3341 { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
3344 { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3347 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
3350 { yyval.conL = constraintList_single (yyvsp[0].con); ;
3354 yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
3355 DPRINTF(("Done BufConstraint1\n")); ;
3358 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3362 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3363 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3366 { yyval.conE = constraintExpr_makeTermsRef (yyvsp[0].sr);;
3369 { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
3372 { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
3375 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3378 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3384 t = cstring_toCharsSafe (exprNode_unparse($3));
3387 yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
3391 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3394 { yyval.sr = yyvsp[-1].sr; ;
3397 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3400 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3403 { yyval.funcclauselist = functionClauseList_new (); ;
3406 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3409 { yyval.funcclauselist = functionClauseList_new (); ;
3412 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3415 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3418 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3421 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3424 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3427 { yyval.funcclause = yyvsp[0].funcclause; ;
3430 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3433 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3436 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3439 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3442 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3445 { yyval.funcclause = yyvsp[0].funcclause; ;
3448 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3451 { yyval.globsclause = yyvsp[-1].globsclause; ;
3454 { setProcessingGlobalsList (); ;
3458 unsetProcessingGlobals ();
3459 yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset);
3463 { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
3466 { yyval.modsclause = yyvsp[-1].modsclause; ;
3470 context_setProtectVars (); enterParamsTemp ();
3471 sRef_setGlobalScopeSafe ();
3477 sRef_clearGlobalScopeSafe ();
3478 context_releaseVars ();
3479 yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
3483 { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
3486 { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
3489 { yyval.warnclause = warnClause_undefined; ;
3492 { yyval.warnclause = yyvsp[-1].warnclause; ;
3496 llassert (exprNode_knownStringValue (yyvsp[0].expr));
3497 yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr))));
3498 exprNode_free (yyvsp[0].expr);
3502 { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
3505 { yyval.globset = globSet_single (yyvsp[0].sr); ;
3508 { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
3511 { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3514 { yyval.tquallist = qualList_undefined; ;
3517 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3520 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3523 { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
3526 { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
3529 { yyval.typequal = qual_createUndef (); ;
3532 { yyval.typequal = qual_createKilled (); ;
3535 { yyval.typequal = qual_createOut (); ;
3538 { yyval.typequal = qual_createIn (); ;
3541 { yyval.typequal = qual_createPartial (); ;
3545 qtype qint = qtype_create (ctype_int);
3546 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3551 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3554 { checkDoneParams (); context_enterInnerContext (); ;
3558 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3559 context_exitInner (yyvsp[0].expr);
3563 { context_enterOldStyleScope (); ;
3566 { oldStyleDoneParams (); context_enterInnerContext (); ;
3570 exprNode_checkFunctionBody (yyvsp[0].expr);
3571 yyval.expr = yyvsp[0].expr; /* oldstyle */
3572 context_exitInner (yyvsp[0].expr);
3577 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3578 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3581 context_exitFunction ();
3585 { yyval.srset = yyvsp[-1].srset; ;
3588 { yyval.srset = sRefSet_new (); ;
3591 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3594 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3597 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3600 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3603 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3606 { yyval.sr = yyvsp[-1].sr; ;
3609 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3612 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3615 { yyval.sr = yyvsp[0].sr; ;
3618 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3621 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3624 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3627 { yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
3630 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3633 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3636 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3639 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3642 { yyval.sr = yyvsp[-1].sr; ;
3645 { cstring_markOwned (yyvsp[0].cname);
3646 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3649 { cstring_markOwned (yyvsp[0].cname);
3650 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3653 { yyval.srset = sRefSet_undefined ;
3656 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3657 else { yyval.srset = sRefSet_undefined; }
3661 { if (sRef_isValid (yyvsp[0].sr))
3663 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3667 yyval.srset = yyvsp[-2].srset;
3672 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3675 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3678 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3681 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3684 { yyval.expr = exprNode_makeError (); ;
3687 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3690 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3693 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
3696 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3699 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3702 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3705 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3708 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3711 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3714 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
3717 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3720 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3723 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3726 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3729 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3732 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3735 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3738 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3741 { yyval.expr = yyvsp[0].expr; ;
3744 { yyval.expr = yyvsp[0].expr; ;
3747 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3750 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3753 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3756 { context_setProtectVars (); ;
3759 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3762 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3765 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3768 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3771 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3774 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3777 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3780 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3783 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3786 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3789 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3792 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3795 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3798 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3801 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3804 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3807 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3810 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3813 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3816 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3819 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3822 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3825 { exprNode_produceGuards (yyvsp[-1].expr);
3826 context_enterAndClause (yyvsp[-1].expr);
3831 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3832 context_exitAndClause (yyval.expr, yyvsp[0].expr);
3837 exprNode_produceGuards (yyvsp[-1].expr);
3838 context_enterOrClause (yyvsp[-1].expr);
3843 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3844 context_exitOrClause (yyval.expr, yyvsp[0].expr);
3848 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3851 { context_enterFalseClause (yyvsp[-4].expr); ;
3854 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
3857 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3860 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3863 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3866 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3869 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3872 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3875 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3878 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3881 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3884 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3887 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3890 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
3893 { yyval.expr = exprNode_undefined; ;
3896 { yyval.expr = yyvsp[0].expr; ;
3899 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
3902 { yyval.expr = exprNode_makeError (); ;
3905 { yyval.expr = exprNode_makeError (); ;
3909 setProcessingVars (yyvsp[-3].qtyp);
3910 processNamedDecl (yyvsp[-1].ntyp);
3915 unsetProcessingVars ();
3916 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp);
3917 DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
3921 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
3924 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
3925 unsetProcessingVars ();
3930 processNamedDecl (yyvsp[-1].ntyp);
3931 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
3935 { processNamedDecl (yyvsp[-2].ntyp); ;
3938 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
3941 { setProcessingTypedef (yyvsp[0].qtyp); ;
3944 { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
3947 { /* in the ANSI grammar, semantics unclear */ ;
3950 { /* in the ANSI grammar, semantics unclear */ ;
3953 { g_expectingTypeName = TRUE; ;
3956 { g_expectingTypeName = TRUE; context_pushLoc (); ;
3959 { yyval.exprlist = yyvsp[-1].exprlist; ;
3962 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3965 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
3968 { yyval.expr = exprNode_makeError (); ;
3971 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
3974 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); ;
3977 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); ;
3980 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3983 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
3986 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
3989 { yyval.typequal = qual_createInline (); ;
3992 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
3995 { yyval.typequal = qual_createAuto (); ;
3998 { yyval.typequal = qual_createRegister (); ;
4001 { yyval.typequal = qual_createNullTerminated (); ;
4004 { yyval.stateclause = yyvsp[-1].stateclause; ;
4008 context_setProtectVars ();
4010 sRef_setGlobalScopeSafe ();
4016 sRef_clearGlobalScopeSafe ();
4017 context_releaseVars ();
4018 yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
4022 { yyval.funcclause = yyvsp[-1].funcclause; ;
4025 { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
4029 context_exitFunctionHeader ();
4030 context_setProtectVars ();
4032 sRef_setGlobalScopeSafe ();
4038 sRef_clearGlobalScopeSafe ();
4039 context_releaseVars ();
4040 yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
4045 context_setProtectVars ();
4047 sRef_setGlobalScopeSafe ();
4052 context_exitFunctionHeader ();
4054 sRef_clearGlobalScopeSafe ();
4055 context_releaseVars ();
4056 DPRINTF (("done optGlobBufConstraintsAux\n"));
4058 if (lltok_isEnsures (yyvsp[-4].tok))
4060 yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint);
4062 else if (lltok_isRequires (yyvsp[-4].tok))
4064 yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint);
4071 DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
4075 { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
4078 { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
4081 { yyval.typequal = qual_createExits (); ;
4084 { yyval.typequal = qual_createMayExit (); ;
4087 { yyval.typequal = qual_createTrueExit (); ;
4090 { yyval.typequal = qual_createFalseExit (); ;
4093 { yyval.typequal = qual_createNeverExit (); ;
4096 { yyval.typequal = qual_createChecked (); ;
4099 { yyval.typequal = qual_createCheckMod (); ;
4102 { yyval.typequal = qual_createUnchecked (); ;
4105 { yyval.typequal = qual_createCheckedStrict (); ;
4108 { yyval.typequal = qual_createOwned (); ;
4111 { yyval.typequal = qual_createDependent (); ;
4114 { yyval.typequal = qual_createYield (); ;
4117 { yyval.typequal = qual_createTemp (); ;
4120 { yyval.typequal = qual_createOnly (); ;
4123 { yyval.typequal = qual_createKeep (); ;
4126 { yyval.typequal = qual_createKept (); ;
4129 { yyval.typequal = qual_createShared (); ;
4132 { yyval.typequal = qual_createUnique (); ;
4135 { yyval.typequal = qual_createNull (); ;
4138 { yyval.typequal = qual_createIsNull (); ;
4141 { yyval.typequal = qual_createRelNull (); ;
4144 { yyval.typequal = qual_createNotNull (); ;
4147 { yyval.typequal = qual_createExposed (); ;
4150 { yyval.typequal = qual_createObserver (); ;
4153 { yyval.typequal = qual_createNullTerminated (); ;
4156 { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
4159 { yyval.typequal = qual_createReturned (); ;
4162 { yyval.typequal = qual_createSef (); ;
4165 { yyval.typequal = qual_createUnused (); ;
4168 { yyval.typequal = qual_createExternal (); ;
4171 { yyval.typequal = qual_createTrueNull (); ;
4174 { yyval.typequal = qual_createFalseNull (); ;
4177 { yyval.typequal = qual_createAbstract (); ;
4180 { yyval.typequal = qual_createConcrete (); ;
4183 { yyval.typequal = qual_createMutable (); ;
4186 { yyval.typequal = qual_createImmutable (); ;
4189 { yyval.typequal = qual_createRefCounted (); ;
4192 { yyval.typequal = qual_createRefs (); ;
4195 { yyval.typequal = qual_createKillRef (); ;
4198 { yyval.typequal = qual_createRelDef (); ;
4201 { yyval.typequal = qual_createNewRef (); ;
4204 { yyval.typequal = qual_createTempRef (); ;
4207 { yyval.typequal = qual_createShort (); ;
4210 { yyval.typequal = qual_createLong (); ;
4213 { yyval.typequal = qual_createSigned (); ;
4216 { yyval.typequal = qual_createUnsigned (); ;
4219 { yyval.typequal = qual_createOut (); ;
4222 { yyval.typequal = qual_createIn (); ;
4225 { yyval.typequal = qual_createPartial (); ;
4228 { yyval.typequal = qual_createSpecial (); ;
4231 { yyval.typequal = qual_createConst (); ;
4234 { yyval.typequal = qual_createVolatile (); ;
4237 { yyval.typequal = yyvsp[-1].typequal; ;
4240 { yyval.typequal = yyvsp[-1].typequal; ;
4243 { yyval.typequal = yyvsp[-1].typequal; ;
4246 { yyval.typequal = yyvsp[-1].typequal; ;
4249 { yyval.typequal = yyvsp[-1].typequal; ;
4252 { yyval.typequal = yyvsp[-1].typequal; ;
4255 { yyval.typequal = yyvsp[-1].typequal; ;
4258 { yyval.typequal = yyvsp[-1].typequal; ;
4261 { yyval.typequal = yyvsp[-1].typequal; ;
4264 { yyval.ctyp = ctype_unknown; ;
4267 { yyval.ctyp = ctype_anyintegral; ;
4270 { yyval.ctyp = ctype_unsignedintegral; ;
4273 { yyval.ctyp = ctype_signedintegral; ;
4276 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4279 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4282 { yyval.qtyp = yyvsp[0].qtyp; ;
4285 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4288 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4291 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4294 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4297 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4300 { yyval.qtyp = qtype_unknown (); ;
4303 { yyval.qtyp = yyvsp[0].qtyp; ;
4306 { yyval.conL = constraintList_undefined; ;
4309 { sRef_setGlobalScopeSafe (); ;
4312 { sRef_clearGlobalScopeSafe (); ;
4315 { {ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); /* setGlobalStructInfo(ct, $12);*/ yyval.ctyp = ct;} ;
4318 { sRef_setGlobalScopeSafe (); ;
4321 { sRef_clearGlobalScopeSafe (); ;
4324 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4327 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4330 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4333 { sRef_setGlobalScopeSafe (); ;
4336 { sRef_clearGlobalScopeSafe (); ;
4339 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4342 { sRef_setGlobalScopeSafe (); ;
4345 { sRef_clearGlobalScopeSafe (); ;
4348 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4351 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4354 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4357 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4360 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4363 { g_expectingTypeName = FALSE; ;
4366 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4369 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4372 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4375 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4378 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4381 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4384 { yyval.ntyp = yyvsp[0].ntyp; ;
4387 { yyval.ntyp = idDecl_undefined; ;
4390 { yyval.ntyp = yyvsp[-3].ntyp; ;
4393 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4396 { context_pushLoc (); ;
4399 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4402 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4405 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4408 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4411 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4412 usymtab_supGlobalEntry (ue);
4413 yyval.cname = yyvsp[0].cname;
4417 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4418 usymtab_supGlobalEntry (ue);
4419 yyval.cname = yyvsp[-3].cname;
4423 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4427 qtype qt = qtype_unknown ();
4429 qtype_adjustPointers (yyvsp[-1].count, qt);
4430 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4434 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4437 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4440 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4443 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4446 { /* ignored for now */; ;
4458 { yyval.count = 1; ;
4461 { yyval.count = 1; ;
4464 { yyval.count = 1 + yyvsp[0].count; ;
4467 { yyval.count = 1 + yyvsp[0].count; ;
4470 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4473 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4476 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4479 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4482 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4488 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4494 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4498 if (isFlipOldStyle ())
4500 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4506 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4511 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4515 llparseerror (message ("Inconsistent function parameter syntax: %q",
4516 idDecl_unparse (tparam)));
4520 yyval.oentry = makeCurrentParam (tparam);
4521 idDecl_free (tparam);
4525 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4528 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4531 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4534 { yyval.ctyp = ctype_unknown; ;
4537 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4540 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4543 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4546 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4549 { yyval.ctyp = ctype_makeFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4552 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4555 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4558 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4561 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4564 { yyval.expr = yyvsp[0].expr; ;
4567 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4570 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4573 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4576 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4579 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4582 { context_setProtectVars (); ;
4585 { context_sizeofReleaseVars (); ;
4588 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4589 context_enterForClause (yyvsp[-5].expr); ;
4592 { setProcessingIterVars (yyvsp[-2].entry); ;
4595 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
4598 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4601 { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
4604 { yyval.expr = yyvsp[-1].expr; ;
4607 { yyval.expr = exprNode_makeError (); ;
4610 { exprNode_checkIfPred (yyvsp[0].expr); ;
4613 { /* don't: context_exitTrueClause ($1, $2); */
4614 yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr);
4618 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4621 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4624 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4627 { yyval.expr = exprNode_makeError (); ;
4630 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
4633 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4642 { context_enterCaseClause (yyvsp[0].expr); ;
4645 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4648 { context_enterCaseClause (yyvsp[0].expr); ;
4651 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4654 { context_enterCaseClause (exprNode_undefined); ;
4657 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
4660 { context_enterCaseClause (exprNode_undefined); ;
4663 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
4666 { yyval.expr = yyvsp[-1].expr; ;
4669 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4672 { yyval.expr = yyvsp[-1].expr; ;
4675 { context_enterInnerContext (); ;
4678 { context_exitInnerPlain (); ;
4681 { context_enterStructInnerContext (); ;
4684 { context_exitStructInnerContext (); ;
4687 { context_exitInnerSafe (); ;
4690 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4693 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4696 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4699 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4702 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4705 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4708 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4711 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
4712 lltok_getLoc (yyvsp[-1].tok)));
4716 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
4719 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4722 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4725 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4728 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4731 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4734 { yyval.expr = yyvsp[0].expr; ;
4737 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4740 { yyval.expr = yyvsp[0].expr; ;
4743 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4746 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4749 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4752 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4755 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4758 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
4762 exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr);
4763 exprNode_checkIfPred (yyvsp[-1].expr);
4764 yyval.expr = yyvsp[-1].expr;
4769 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
4770 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4774 { context_enterFalseClause (yyvsp[-2].expr); ;
4778 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4779 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4783 { context_enterSwitch (yyvsp[0].expr); ;
4786 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
4789 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
4792 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
4795 { context_enterIterClause (); ;
4798 { setProcessingIterVars (yyvsp[-3].entry); ;
4802 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry);
4807 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4810 { nextIterParam (); ;
4813 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4816 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
4819 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
4822 { uentry ue = coerceIterId (yyvsp[0].cname);
4824 if (uentry_isValid (ue))
4826 yyval.expr = exprNode_iterId (ue);
4830 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
4835 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
4838 { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
4841 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4844 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4847 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4850 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
4853 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
4856 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4859 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4862 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4865 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4868 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4871 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4874 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4877 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4880 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4883 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4886 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4889 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4892 { yyval.expr = yyvsp[0].expr; ;
4895 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
4898 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4901 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4904 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4907 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4910 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4913 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4916 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4919 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4922 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4925 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4928 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4931 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4934 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4937 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4940 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4943 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4946 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4949 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4952 { context_enterTrueClause (yyvsp[-1].expr); ;
4955 { context_enterFalseClause (yyvsp[-4].expr); ;
4958 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
4961 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4964 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4967 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4970 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4973 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4976 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4979 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4982 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4985 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4988 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4991 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4994 { yyval.entry = yyvsp[0].entry; ;
4997 { yyval.entry = uentry_undefined; ;
5000 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5003 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5006 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5009 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5012 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5015 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5018 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5021 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5024 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5027 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5030 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5033 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5036 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5039 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5042 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5045 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5048 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5051 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5057 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5060 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5063 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5066 { yyval.cname = yyvsp[0].cname; ;
5069 { yyval.ctyp = ctype_unknown; ;
5072 /* the action file gets copied in in place of this dollarsign */
5084 short *ssp1 = yyss - 1;
5085 fprintf (stderr, "state stack now");
5086 while (ssp1 != yyssp)
5087 fprintf (stderr, " %d", *++ssp1);
5088 fprintf (stderr, "\n");
5098 yylsp->first_line = yylloc.first_line;
5099 yylsp->first_column = yylloc.first_column;
5100 yylsp->last_line = (yylsp-1)->last_line;
5101 yylsp->last_column = (yylsp-1)->last_column;
5106 yylsp->last_line = (yylsp+yylen-1)->last_line;
5107 yylsp->last_column = (yylsp+yylen-1)->last_column;
5111 /* Now "shift" the result of the reduction.
5112 Determine what state that goes to,
5113 based on the state we popped back to
5114 and the rule number reduced by. */
5118 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5119 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5120 yystate = yytable[yystate];
5122 yystate = yydefgoto[yyn - YYNTBASE];
5126 yyerrlab: /* here on detecting error */
5129 /* If not already recovering from an error, report this error. */
5133 #ifdef YYERROR_VERBOSE
5134 yyn = yypact[yystate];
5136 if (yyn > YYFLAG && yyn < YYLAST)
5143 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5144 for (x = (yyn < 0 ? -yyn : 0);
5145 x < (sizeof(yytname) / sizeof(char *)); x++)
5146 if (yycheck[x + yyn] == x)
5147 size += strlen(yytname[x]) + 15, count++;
5148 msg = (char *) malloc(size + 15);
5151 strcpy(msg, "parse error");
5156 for (x = (yyn < 0 ? -yyn : 0);
5157 x < (sizeof(yytname) / sizeof(char *)); x++)
5158 if (yycheck[x + yyn] == x)
5160 strcat(msg, count == 0 ? ", expecting `" : " or `");
5161 strcat(msg, yytname[x]);
5170 yyerror ("parse error; also virtual memory exceeded");
5173 #endif /* YYERROR_VERBOSE */
5174 yyerror("parse error");
5178 yyerrlab1: /* here on error raised explicitly by an action */
5180 if (yyerrstatus == 3)
5182 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5184 /* return failure if at end of input */
5185 if (yychar == YYEOF)
5190 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5196 /* Else will try to reuse lookahead token
5197 after shifting the error token. */
5199 yyerrstatus = 3; /* Each real token shifted decrements this */
5203 yyerrdefault: /* current state does not do anything special for the error token. */
5206 /* This is wrong; only states that explicitly want error tokens
5207 should shift them. */
5208 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5209 if (yyn) goto yydefault;
5212 yyerrpop: /* pop the current state because it cannot handle the error token */
5214 if (yyssp == yyss) YYABORT;
5224 short *ssp1 = yyss - 1;
5225 fprintf (stderr, "Error: state stack now");
5226 while (ssp1 != yyssp)
5227 fprintf (stderr, " %d", *++ssp1);
5228 fprintf (stderr, "\n");
5234 yyn = yypact[yystate];
5239 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5258 fprintf(stderr, "Shifting error token, ");
5270 /* YYACCEPT comes here. */
5282 /* YYABORT comes here. */
5295 /*@-redecl@*/ /*@-namechecks@*/
5296 extern char *yytext;
5297 /*@=redecl@*/ /*@=namechecks@*/
5299 # include "bison.reset"
5301 void yyerror (/*@unused@*/ char *s)
5303 static bool givehint = FALSE;
5305 if (context_inIterDef ())
5307 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5308 context_inFunctionName ()));
5310 else if (context_inIterEnd ())
5312 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5313 context_inFunctionName ()));
5315 else if (context_inMacro ())
5317 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5318 context_inFunctionName ()));
5320 if (context_inUnknownMacro ())
5324 llhint (cstring_makeLiteral
5325 ("Precede macro definition with /*@notfunction@*/ "
5326 "to suppress checking and force expansion"));
5332 context_exitAllClausesQuiet ();
5336 llparseerror (cstring_undefined);
5352 ** Resets all flags in bison.head
5374 /*@=evalorderuncon@*/
5383 /*@=elseifcomplete@*/
5387 /*@=readonlytrans@*/
5390 /*@=systemunrecog@*/
5391 /*@=dependenttrans@*/
5392 /*@=unqualifiedtrans@*/
5396 /*drl added 11/27/2001*/