2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
49 /*drl added 11/27/2001*/
52 /*drl added 12/11/2002*/
55 /* < end of bison.head > */
57 /* A Bison parser, made from cgrammar.y
60 #define YYBISON 1 /* Identify Bison output. */
64 # define CTOK_ELIPSIS 259
88 # define TAMPERSAND 283
102 # define CALIGNOF 297
104 # define ARROW_OP 299
105 # define CTYPEDEF 300
106 # define COFFSETOF 301
110 # define RIGHT_OP 305
117 # define MUL_ASSIGN 312
118 # define DIV_ASSIGN 313
119 # define MOD_ASSIGN 314
120 # define ADD_ASSIGN 315
121 # define SUB_ASSIGN 316
122 # define LEFT_ASSIGN 317
123 # define RIGHT_ASSIGN 318
124 # define AND_ASSIGN 319
125 # define XOR_ASSIGN 320
126 # define OR_ASSIGN 321
133 # define QGLOBALS 328
134 # define QMODIFIES 329
136 # define QCONSTANT 331
137 # define QFUNCTION 332
139 # define QDEFINES 334
141 # define QALLOCATES 336
143 # define QRELEASES 338
144 # define QPRECLAUSE 339
145 # define QPOSTCLAUSE 340
146 # define QINVARIANT 341
150 # define QENDMACRO 345
152 # define LLMACROITER 347
153 # define LLMACROEND 348
154 # define TENDMACRO 349
155 # define QSWITCHBREAK 350
156 # define QLOOPBREAK 351
157 # define QINNERBREAK 352
158 # define QSAFEBREAK 353
159 # define QINNERCONTINUE 354
160 # define QFALLTHROUGH 355
161 # define QLINTNOTREACHED 356
162 # define QLINTFALLTHROUGH 357
163 # define QLINTFALLTHRU 358
164 # define QARGSUSED 359
165 # define QPRINTFLIKE 360
166 # define QLINTPRINTFLIKE 361
167 # define QSCANFLIKE 362
168 # define QMESSAGELIKE 363
169 # define QNOTREACHED 364
171 # define QRESTRICT 366
172 # define QVOLATILE 367
174 # define QEXTENSION 369
178 # define QREGISTER 373
187 # define QCHECKED 382
188 # define QUNCHECKED 383
189 # define QCHECKEDSTRICT 384
190 # define QCHECKMOD 385
193 # define QPARTIAL 388
194 # define QSPECIAL 389
196 # define QDEPENDENT 391
197 # define QRETURNED 392
198 # define QEXPOSED 393
200 # define QOBSERVER 395
203 # define QMAYEXIT 398
204 # define QNEVEREXIT 399
205 # define QTRUEEXIT 400
206 # define QFALSEEXIT 401
209 # define QUNSIGNED 404
213 # define QNOTNULL 408
214 # define QRELNULL 409
215 # define QABSTRACT 410
216 # define QNUMABSTRACT 411
217 # define QCONCRETE 412
218 # define QMUTABLE 413
219 # define QIMMUTABLE 414
220 # define QTRUENULL 415
221 # define QFALSENULL 416
222 # define QEXTERNAL 417
223 # define QREFCOUNTED 418
226 # define QTEMPREF 421
227 # define QKILLREF 422
235 # define QANYTYPE 430
236 # define QINTEGRALTYPE 431
237 # define QUNSIGNEDINTEGRALTYPE 432
238 # define QSIGNEDINTEGRALTYPE 433
239 # define QNULLTERMINATED 434
240 # define QSETBUFFERSIZE 435
241 # define QSETSTRINGLENGTH 436
243 # define QMAXREAD 438
244 # define QTESTINRANGE 439
246 # define IDENTIFIER 441
247 # define NEW_IDENTIFIER 442
248 # define TYPE_NAME_OR_ID 443
249 # define CANNOTATION 444
250 # define CCONSTANT 445
251 # define ITER_NAME 446
252 # define ITER_ENDNAME 447
253 # define TYPE_NAME 448
254 # define METASTATE_NAME 449
261 ** Yacc/Bison grammar for extended ANSI C used by Splint.
263 ** original grammar by Nate Osgood ---
264 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
266 ** changes for Splint --- handle typedef names correctly
267 ** fix struct/union parsing bug (empty struct is accepted)
268 ** add productions to handle macros --- require
269 ** error correction --- main source of conflicts in grammar.
270 ** need to process initializations sequentially, L->R
272 ** production names are cryptic, so more productions fit on one line
274 ** conflicts: 87 shift/reduce, 18 reduce/reduce
275 ** most of these are due to handling macros
276 ** a few are due to handling type expressions
282 extern void yyerror (char *);
284 # include "splintMacros.nf"
286 # include "cscanner.h"
287 # include "cscannerHelp.h"
288 # include "cgrammar.h"
289 # include "exprChecks.h"
294 # define SHOWCSYM FALSE
297 ** This is necessary, or else when the bison-generated code #include's malloc.h,
298 ** there will be a parse error.
300 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
301 ** in bison-generated files under Win32.
311 #ifndef cgrammar_YYSTYPE
319 /*@dependent@*/ sRef sr;
322 /*@only@*/ functionClauseList funcclauselist;
323 /*@only@*/ functionClause funcclause;
324 /*@only@*/ flagSpec flagspec;
325 /*@only@*/ globalsClause globsclause;
326 /*@only@*/ modifiesClause modsclause;
327 /*@only@*/ warnClause warnclause;
328 /*@only@*/ stateClause stateclause;
329 /*@only@*/ pointers pointers;
330 /*@only@*/ functionConstraint fcnconstraint;
332 /*@only@*/ metaStateConstraint msconstraint;
333 /*@only@*/ metaStateSpecifier msspec;
334 /*@only@*/ metaStateExpression msexpr;
335 /*@observer@*/ metaStateInfo msinfo;
337 /*@only@*/ sRefList srlist;
338 /*@only@*/ globSet globset;
339 /*@only@*/ qtype qtyp;
340 /*@only@*/ cstring cname;
341 /*@observer@*/ annotationInfo annotation;
342 /*@only@*/ idDecl ntyp;
343 /*@only@*/ idDeclList ntyplist;
344 /*@only@*/ uentryList flist;
345 /*@owned@*/ uentryList entrylist;
346 /*@observer@*/ /*@dependent@*/ uentry entry;
347 /*@only@*/ uentry oentry;
348 /*@only@*/ exprNode expr;
349 /*@only@*/ enumNameList enumnamelist;
350 /*@only@*/ exprNodeList exprlist;
351 /*@only@*/ sRefSet srset;
352 /*@only@*/ cstringList cstringlist;
362 # define cgrammar_YYSTYPE yystype
363 # define cgrammar_YYSTYPE_IS_TRIVIAL 1
372 #define YYFLAG -32768
375 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
376 #define YYTRANSLATE(x) ((unsigned)(x) <= 449 ? yytranslate[x] : 464)
378 /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
379 static const short yytranslate[] =
381 0, 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, 2, 2, 2, 2, 2,
402 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
403 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
404 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
405 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
406 2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
407 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
408 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
409 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
410 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
411 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
412 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
413 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
414 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
415 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
416 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
417 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
418 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
419 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
420 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
421 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
422 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
423 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
424 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
425 186, 187, 188, 189, 190, 191, 192, 193, 194, 195
429 static const short yyprhs[] =
431 0, 0, 1, 3, 5, 8, 11, 13, 15, 17,
432 19, 21, 23, 25, 34, 46, 47, 53, 55, 59,
433 61, 64, 66, 73, 77, 84, 85, 92, 93, 101,
434 103, 110, 114, 121, 122, 129, 130, 138, 139, 140,
435 151, 155, 159, 163, 166, 168, 172, 173, 178, 179,
436 184, 186, 190, 192, 194, 196, 200, 202, 206, 208,
437 210, 212, 214, 216, 218, 223, 229, 231, 233, 235,
438 237, 241, 246, 249, 253, 257, 261, 263, 265, 267,
439 268, 271, 272, 275, 277, 279, 281, 283, 285, 287,
440 289, 291, 293, 295, 297, 299, 302, 303, 308, 310,
441 313, 314, 318, 320, 324, 326, 328, 329, 332, 336,
442 339, 341, 345, 348, 349, 352, 354, 356, 358, 360,
443 362, 364, 366, 368, 370, 372, 374, 376, 378, 380,
444 382, 384, 388, 389, 393, 394, 395, 400, 403, 406,
445 408, 410, 412, 414, 418, 423, 426, 430, 434, 438,
446 440, 442, 444, 448, 450, 452, 456, 461, 464, 468,
447 472, 476, 477, 479, 481, 485, 487, 489, 491, 495,
448 497, 499, 500, 505, 507, 512, 516, 521, 528, 534,
449 540, 543, 546, 554, 556, 560, 562, 565, 568, 571,
450 574, 577, 580, 583, 586, 588, 590, 594, 599, 601,
451 611, 612, 616, 621, 624, 629, 632, 634, 639, 641,
452 645, 649, 653, 655, 659, 663, 665, 669, 673, 675,
453 679, 683, 687, 691, 693, 697, 701, 703, 707, 709,
454 713, 715, 719, 721, 722, 727, 729, 730, 735, 737,
455 738, 739, 747, 749, 753, 757, 761, 765, 769, 773,
456 777, 781, 785, 789, 793, 795, 799, 800, 802, 804,
457 806, 808, 810, 814, 815, 825, 826, 838, 840, 842,
458 845, 846, 853, 854, 863, 868, 873, 874, 875, 878,
459 880, 885, 888, 890, 895, 896, 901, 903, 907, 912,
460 915, 918, 921, 923, 926, 930, 933, 935, 939, 941,
461 943, 945, 947, 949, 952, 953, 960, 963, 966, 967,
462 974, 975, 981, 983, 985, 987, 989, 991, 993, 995,
463 997, 999, 1001, 1003, 1005, 1007, 1009, 1011, 1013, 1015,
464 1017, 1019, 1021, 1023, 1025, 1027, 1029, 1031, 1033, 1035,
465 1037, 1039, 1041, 1043, 1045, 1047, 1049, 1051, 1053, 1055,
466 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071, 1073, 1075,
467 1077, 1079, 1081, 1083, 1085, 1087, 1090, 1093, 1096, 1099,
468 1102, 1105, 1108, 1111, 1114, 1117, 1120, 1123, 1126, 1129,
469 1132, 1135, 1138, 1141, 1144, 1147, 1150, 1153, 1156, 1159,
470 1162, 1165, 1169, 1171, 1176, 1178, 1182, 1185, 1188, 1191,
471 1192, 1194, 1195, 1196, 1197, 1210, 1211, 1212, 1224, 1231,
472 1238, 1239, 1240, 1251, 1252, 1253, 1264, 1270, 1276, 1281,
473 1286, 1287, 1289, 1291, 1294, 1300, 1304, 1307, 1312, 1314,
474 1318, 1323, 1330, 1331, 1340, 1345, 1347, 1351, 1354, 1356,
475 1361, 1363, 1365, 1368, 1371, 1373, 1376, 1378, 1381, 1383,
476 1385, 1387, 1389, 1392, 1394, 1397, 1400, 1404, 1406, 1410,
477 1412, 1416, 1418, 1420, 1424, 1425, 1428, 1429, 1434, 1439,
478 1441, 1443, 1446, 1448, 1450, 1453, 1454, 1456, 1462, 1465,
479 1469, 1473, 1478, 1482, 1487, 1492, 1498, 1500, 1502, 1504,
480 1506, 1508, 1510, 1512, 1514, 1516, 1518, 1520, 1522, 1525,
481 1528, 1536, 1543, 1546, 1547, 1548, 1559, 1560, 1567, 1569,
482 1571, 1573, 1575, 1578, 1580, 1582, 1584, 1586, 1588, 1590,
483 1592, 1596, 1598, 1599, 1603, 1606, 1609, 1611, 1613, 1615,
484 1617, 1619, 1621, 1623, 1625, 1627, 1629, 1633, 1635, 1637,
485 1640, 1643, 1644, 1647, 1648, 1653, 1654, 1661, 1662, 1666,
486 1667, 1673, 1677, 1680, 1684, 1685, 1686, 1687, 1688, 1689,
487 1691, 1694, 1697, 1701, 1704, 1708, 1712, 1717, 1720, 1723,
488 1727, 1731, 1736, 1738, 1741, 1743, 1746, 1748, 1752, 1754,
489 1759, 1761, 1764, 1766, 1769, 1771, 1774, 1776, 1781, 1784,
490 1785, 1791, 1792, 1799, 1804, 1809, 1810, 1811, 1822, 1824,
491 1825, 1830, 1832, 1834, 1836, 1838, 1840, 1843, 1845, 1849,
492 1851, 1856, 1860, 1865, 1872, 1878, 1884, 1887, 1890, 1892,
493 1895, 1898, 1901, 1904, 1907, 1910, 1913, 1916, 1918, 1920,
494 1925, 1927, 1931, 1935, 1939, 1941, 1945, 1949, 1951, 1955,
495 1959, 1961, 1965, 1969, 1973, 1977, 1979, 1983, 1987, 1989,
496 1993, 1995, 1999, 2001, 2005, 2007, 2011, 2013, 2017, 2019,
497 2020, 2021, 2029, 2031, 2035, 2039, 2043, 2047, 2051, 2055,
498 2059, 2063, 2067, 2071, 2075, 2077, 2078, 2080, 2083, 2091,
499 2094, 2097, 2105, 2112, 2115, 2119, 2122, 2126, 2129, 2133,
500 2137, 2141, 2145, 2148, 2152, 2153, 2155, 2156, 2158, 2160,
501 2162, 2164, 2166, 2168, 2170, 2172, 2174, 2179
503 static const short yyrhs[] =
505 -1, 197, 0, 198, 0, 197, 198, 0, 259, 459,
506 0, 199, 0, 200, 0, 210, 0, 213, 0, 297,
507 0, 18, 0, 1, 0, 77, 341, 355, 365, 355,
508 459, 306, 91, 0, 77, 341, 355, 365, 355, 23,
509 306, 313, 312, 459, 91, 0, 0, 78, 201, 202,
510 459, 91, 0, 203, 0, 341, 355, 203, 0, 207,
511 0, 369, 207, 0, 462, 0, 306, 24, 355, 365,
512 306, 25, 0, 204, 26, 27, 0, 204, 26, 306,
513 296, 27, 355, 0, 0, 204, 307, 24, 25, 205,
514 231, 0, 0, 204, 307, 24, 366, 25, 206, 231,
515 0, 462, 0, 306, 24, 355, 203, 306, 25, 0,
516 207, 26, 27, 0, 207, 26, 306, 296, 27, 355,
517 0, 0, 207, 307, 24, 25, 208, 232, 0, 0,
518 207, 307, 24, 366, 25, 209, 232, 0, 0, 0,
519 79, 462, 24, 366, 25, 211, 232, 212, 459, 91,
520 0, 92, 396, 95, 0, 93, 382, 95, 0, 94,
521 383, 95, 0, 92, 95, 0, 254, 0, 216, 23,
522 219, 0, 0, 228, 217, 22, 220, 0, 0, 5,
523 218, 22, 220, 0, 216, 0, 216, 40, 219, 0,
524 195, 0, 186, 0, 56, 0, 223, 221, 222, 0,
525 223, 0, 226, 225, 226, 0, 183, 0, 184, 0,
526 53, 0, 52, 0, 54, 0, 227, 0, 229, 24,
527 226, 25, 0, 24, 226, 230, 226, 25, 0, 228,
528 0, 191, 0, 461, 0, 188, 0, 228, 26, 27,
529 0, 228, 26, 191, 27, 0, 34, 228, 0, 24,
530 228, 25, 0, 228, 28, 462, 0, 228, 45, 462,
531 0, 224, 0, 33, 0, 32, 0, 0, 233, 231,
532 0, 0, 234, 232, 0, 235, 0, 239, 0, 238,
533 0, 319, 0, 322, 0, 245, 0, 236, 0, 240,
534 0, 238, 0, 320, 0, 324, 0, 246, 0, 236,
535 91, 0, 0, 74, 237, 247, 459, 0, 76, 0,
536 240, 91, 0, 0, 75, 241, 260, 0, 243, 0,
537 243, 40, 242, 0, 188, 0, 245, 0, 0, 246,
538 91, 0, 73, 242, 435, 0, 73, 242, 0, 248,
539 0, 247, 21, 248, 0, 249, 250, 0, 0, 251,
540 249, 0, 461, 0, 188, 0, 297, 0, 89, 0,
541 90, 0, 120, 0, 121, 0, 134, 0, 80, 0,
542 81, 0, 82, 0, 83, 0, 84, 0, 85, 0,
543 86, 0, 365, 0, 341, 355, 365, 0, 0, 19,
544 256, 413, 0, 0, 0, 257, 417, 258, 406, 0,
545 214, 255, 0, 263, 459, 0, 459, 0, 461, 0,
546 188, 0, 189, 0, 261, 26, 27, 0, 261, 26,
547 262, 27, 0, 34, 261, 0, 24, 261, 25, 0,
548 261, 28, 462, 0, 261, 45, 462, 0, 261, 0,
549 435, 0, 261, 0, 263, 21, 261, 0, 461, 0,
550 188, 0, 264, 26, 27, 0, 264, 26, 262, 27,
551 0, 34, 264, 0, 24, 264, 25, 0, 264, 28,
552 462, 0, 264, 45, 462, 0, 0, 266, 0, 264,
553 0, 266, 21, 264, 0, 461, 0, 188, 0, 435,
554 0, 24, 294, 25, 0, 189, 0, 115, 0, 0,
555 24, 268, 406, 25, 0, 267, 0, 269, 26, 294,
556 27, 0, 269, 24, 25, 0, 269, 24, 270, 25,
557 0, 71, 24, 293, 21, 377, 25, 0, 269, 355,
558 28, 462, 306, 0, 269, 355, 45, 462, 306, 0,
559 269, 48, 0, 269, 49, 0, 24, 377, 25, 19,
560 418, 460, 20, 0, 293, 0, 270, 21, 293, 0,
561 269, 0, 48, 271, 0, 49, 271, 0, 29, 277,
562 0, 34, 277, 0, 33, 277, 0, 32, 277, 0,
563 31, 277, 0, 30, 277, 0, 274, 0, 273, 0,
564 272, 28, 462, 0, 272, 26, 294, 27, 0, 462,
565 0, 47, 306, 24, 377, 355, 21, 272, 25, 306,
566 0, 0, 306, 275, 276, 0, 42, 24, 377, 25,
567 0, 42, 271, 0, 43, 24, 377, 25, 0, 43,
568 271, 0, 271, 0, 24, 377, 25, 277, 0, 277,
569 0, 278, 34, 277, 0, 278, 35, 277, 0, 278,
570 36, 277, 0, 278, 0, 279, 33, 278, 0, 279,
571 32, 278, 0, 279, 0, 280, 50, 279, 0, 280,
572 51, 279, 0, 280, 0, 281, 37, 280, 0, 281,
573 38, 280, 0, 281, 52, 280, 0, 281, 53, 280,
574 0, 281, 0, 282, 54, 281, 0, 282, 55, 281,
575 0, 282, 0, 283, 29, 282, 0, 283, 0, 284,
576 39, 283, 0, 284, 0, 285, 40, 284, 0, 285,
577 0, 0, 286, 56, 287, 285, 0, 286, 0, 0,
578 288, 57, 289, 286, 0, 288, 0, 0, 0, 288,
579 41, 291, 294, 22, 292, 290, 0, 290, 0, 271,
580 23, 293, 0, 271, 58, 293, 0, 271, 59, 293,
581 0, 271, 60, 293, 0, 271, 61, 293, 0, 271,
582 62, 293, 0, 271, 63, 293, 0, 271, 64, 293,
583 0, 271, 65, 293, 0, 271, 66, 293, 0, 271,
584 67, 293, 0, 293, 0, 294, 21, 293, 0, 0,
585 294, 0, 290, 0, 298, 0, 72, 0, 304, 0,
586 341, 306, 18, 0, 0, 341, 355, 365, 355, 299,
587 306, 312, 18, 306, 0, 0, 341, 355, 365, 355,
588 23, 300, 306, 313, 312, 18, 306, 0, 302, 0,
589 194, 0, 365, 355, 0, 0, 365, 355, 23, 303,
590 306, 313, 0, 0, 46, 341, 305, 355, 310, 306,
591 244, 18, 0, 46, 341, 306, 18, 0, 46, 308,
592 306, 18, 0, 0, 0, 309, 306, 0, 302, 0,
593 308, 21, 355, 302, 0, 311, 306, 0, 301, 0,
594 310, 21, 355, 301, 0, 0, 312, 21, 355, 302,
595 0, 293, 0, 19, 317, 20, 0, 19, 317, 21,
596 20, 0, 314, 313, 0, 315, 23, 0, 462, 22,
597 0, 316, 0, 315, 316, 0, 26, 296, 27, 0,
598 28, 462, 0, 313, 0, 317, 21, 313, 0, 116,
599 0, 114, 0, 117, 0, 118, 0, 119, 0, 320,
600 91, 0, 0, 252, 355, 321, 266, 459, 306, 0,
601 324, 91, 0, 253, 355, 0, 0, 323, 330, 325,
602 265, 459, 306, 0, 0, 323, 326, 327, 459, 306,
603 0, 222, 0, 215, 0, 143, 0, 144, 0, 146,
604 0, 147, 0, 145, 0, 128, 0, 131, 0, 129,
605 0, 130, 0, 136, 0, 137, 0, 122, 0, 124,
606 0, 123, 0, 132, 0, 133, 0, 125, 0, 127,
607 0, 140, 0, 142, 0, 155, 0, 154, 0, 139,
608 0, 141, 0, 180, 0, 190, 0, 138, 0, 153,
609 0, 152, 0, 163, 0, 161, 0, 162, 0, 156,
610 0, 157, 0, 158, 0, 159, 0, 160, 0, 164,
611 0, 165, 0, 168, 0, 169, 0, 166, 0, 167,
612 0, 151, 0, 148, 0, 149, 0, 150, 0, 120,
613 0, 121, 0, 134, 0, 135, 0, 111, 306, 0,
614 113, 306, 0, 112, 306, 0, 337, 306, 0, 330,
615 306, 0, 328, 306, 0, 331, 306, 0, 329, 306,
616 0, 333, 306, 0, 332, 306, 0, 334, 306, 0,
617 335, 306, 0, 170, 355, 0, 172, 355, 0, 171,
618 355, 0, 173, 355, 0, 174, 355, 0, 175, 355,
619 0, 176, 355, 0, 177, 355, 0, 178, 355, 0,
620 179, 355, 0, 463, 355, 0, 346, 355, 0, 360,
621 355, 0, 336, 355, 0, 306, 341, 306, 0, 343,
622 0, 343, 88, 342, 91, 0, 377, 0, 377, 21,
623 342, 0, 318, 344, 0, 338, 344, 0, 339, 344,
624 0, 0, 341, 0, 0, 0, 0, 355, 68, 462,
625 306, 19, 347, 410, 356, 411, 348, 20, 345, 0,
626 0, 0, 355, 69, 462, 306, 19, 349, 410, 356,
627 411, 350, 20, 0, 355, 68, 462, 306, 19, 20,
628 0, 355, 69, 462, 306, 19, 20, 0, 0, 0,
629 355, 68, 306, 19, 351, 410, 356, 411, 352, 20,
630 0, 0, 0, 355, 69, 306, 19, 353, 410, 356,
631 411, 354, 20, 0, 355, 68, 306, 19, 20, 0,
632 355, 69, 306, 19, 20, 0, 355, 68, 462, 355,
633 0, 355, 69, 462, 355, 0, 0, 357, 0, 213,
634 0, 356, 357, 0, 341, 355, 358, 306, 18, 0,
635 341, 306, 18, 0, 359, 355, 0, 358, 21, 359,
636 355, 0, 365, 0, 22, 306, 296, 0, 365, 22,
637 306, 296, 0, 355, 70, 19, 362, 20, 306, 0,
638 0, 355, 70, 462, 19, 361, 362, 20, 306, 0,
639 355, 70, 462, 306, 0, 363, 0, 362, 21, 363,
640 0, 362, 21, 0, 462, 0, 462, 23, 306, 296,
641 0, 204, 0, 379, 0, 369, 194, 0, 369, 364,
642 0, 204, 0, 369, 204, 0, 372, 0, 355, 370,
643 0, 111, 0, 112, 0, 113, 0, 367, 0, 368,
644 367, 0, 34, 0, 34, 368, 0, 34, 369, 0,
645 34, 368, 369, 0, 371, 0, 371, 21, 5, 0,
646 462, 0, 371, 21, 462, 0, 5, 0, 373, 0,
647 373, 21, 5, 0, 0, 374, 376, 0, 0, 373,
648 21, 375, 376, 0, 306, 341, 364, 306, 0, 462,
649 0, 340, 0, 340, 378, 0, 369, 0, 380, 0,
650 369, 380, 0, 0, 380, 0, 306, 24, 355, 378,
651 25, 0, 26, 27, 0, 26, 296, 27, 0, 380,
652 26, 27, 0, 380, 26, 296, 27, 0, 306, 24,
653 25, 0, 306, 24, 372, 25, 0, 380, 306, 24,
654 25, 0, 380, 306, 24, 372, 25, 0, 398, 0,
655 400, 0, 403, 0, 406, 0, 421, 0, 424, 0,
656 456, 0, 429, 0, 458, 0, 384, 0, 382, 0,
657 391, 0, 384, 391, 0, 428, 384, 0, 455, 397,
658 11, 24, 294, 25, 18, 0, 455, 397, 11, 24,
659 294, 25, 0, 386, 391, 0, 0, 0, 13, 24,
660 295, 18, 295, 18, 387, 295, 388, 25, 0, 0,
661 192, 408, 24, 390, 432, 25, 0, 193, 0, 398,
662 0, 400, 0, 403, 0, 394, 417, 0, 394, 0,
663 395, 0, 421, 0, 392, 0, 385, 0, 389, 0,
664 458, 0, 24, 391, 25, 0, 1, 0, 0, 423,
665 393, 391, 0, 408, 19, 0, 412, 20, 0, 397,
666 0, 416, 0, 398, 0, 400, 0, 403, 0, 407,
667 0, 422, 0, 424, 0, 429, 0, 457, 0, 24,
668 397, 25, 0, 458, 0, 1, 0, 462, 22, 0,
669 110, 381, 0, 0, 101, 399, 0, 0, 6, 296,
670 401, 22, 0, 0, 101, 399, 6, 296, 402, 22,
671 0, 0, 7, 404, 22, 0, 0, 101, 399, 7,
672 405, 22, 0, 24, 406, 25, 0, 408, 414, 0,
673 408, 415, 409, 0, 0, 0, 0, 0, 0, 20,
674 0, 110, 20, 0, 420, 20, 0, 420, 110, 20,
675 0, 417, 20, 0, 417, 110, 20, 0, 417, 420,
676 20, 0, 417, 420, 110, 20, 0, 19, 413, 0,
677 19, 20, 0, 19, 416, 20, 0, 19, 417, 20,
678 0, 19, 417, 420, 20, 0, 397, 0, 416, 397,
679 0, 297, 0, 417, 297, 0, 419, 0, 418, 21,
680 419, 0, 293, 0, 19, 418, 460, 20, 0, 381,
681 0, 420, 381, 0, 18, 0, 294, 18, 0, 18,
682 0, 294, 18, 0, 294, 0, 8, 24, 294, 25,
683 0, 423, 381, 0, 0, 423, 381, 9, 425, 381,
684 0, 0, 10, 24, 294, 426, 25, 381, 0, 11,
685 24, 294, 25, 0, 11, 24, 294, 25, 0, 0,
686 0, 192, 430, 408, 24, 431, 432, 25, 406, 454,
687 409, 0, 434, 0, 0, 432, 433, 21, 434, 0,
688 453, 0, 461, 0, 189, 0, 188, 0, 191, 0,
689 435, 191, 0, 435, 0, 24, 294, 25, 0, 436,
690 0, 269, 26, 294, 27, 0, 269, 24, 25, 0,
691 269, 24, 270, 25, 0, 71, 24, 293, 21, 377,
692 25, 0, 269, 355, 28, 462, 306, 0, 269, 355,
693 45, 462, 306, 0, 269, 48, 0, 269, 49, 0,
694 437, 0, 48, 271, 0, 49, 271, 0, 29, 277,
695 0, 34, 277, 0, 33, 277, 0, 32, 277, 0,
696 31, 277, 0, 30, 277, 0, 274, 0, 438, 0,
697 24, 377, 25, 277, 0, 439, 0, 278, 34, 277,
698 0, 278, 35, 277, 0, 278, 36, 277, 0, 440,
699 0, 279, 33, 278, 0, 279, 32, 278, 0, 441,
700 0, 280, 50, 279, 0, 280, 51, 279, 0, 442,
701 0, 281, 37, 280, 0, 281, 38, 280, 0, 281,
702 52, 280, 0, 281, 53, 280, 0, 443, 0, 282,
703 54, 281, 0, 282, 55, 281, 0, 444, 0, 283,
704 29, 282, 0, 445, 0, 284, 39, 283, 0, 446,
705 0, 285, 40, 284, 0, 447, 0, 286, 56, 285,
706 0, 448, 0, 288, 57, 286, 0, 449, 0, 0,
707 0, 288, 41, 451, 294, 22, 452, 290, 0, 450,
708 0, 271, 23, 293, 0, 271, 58, 293, 0, 271,
709 59, 293, 0, 271, 60, 293, 0, 271, 61, 293,
710 0, 271, 62, 293, 0, 271, 63, 293, 0, 271,
711 64, 293, 0, 271, 65, 293, 0, 271, 66, 293,
712 0, 271, 67, 293, 0, 193, 0, 0, 12, 0,
713 427, 381, 0, 455, 381, 11, 24, 294, 25, 18,
714 0, 386, 381, 0, 427, 397, 0, 455, 397, 11,
715 24, 294, 25, 18, 0, 455, 397, 11, 24, 294,
716 25, 0, 386, 397, 0, 14, 462, 18, 0, 15,
717 18, 0, 100, 15, 18, 0, 16, 18, 0, 96,
718 16, 18, 0, 97, 16, 18, 0, 98, 16, 18,
719 0, 99, 16, 18, 0, 17, 18, 0, 17, 294,
720 18, 0, 0, 18, 0, 0, 21, 0, 187, 0,
721 188, 0, 192, 0, 193, 0, 461, 0, 189, 0,
722 194, 0, 189, 0, 44, 24, 294, 25, 0, 44,
729 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
730 static const short yyrline[] =
732 0, 325, 326, 330, 331, 335, 336, 337, 338, 339,
733 340, 341, 342, 346, 348, 353, 353, 362, 368, 373,
734 374, 379, 380, 382, 384, 401, 401, 432, 432, 462,
735 463, 465, 469, 486, 486, 498, 498, 512, 512, 512,
736 521, 522, 523, 524, 528, 532, 537, 537, 542, 542,
737 550, 551, 555, 561, 562, 566, 567, 571, 577, 578,
738 582, 583, 584, 588, 589, 590, 596, 597, 601, 603,
739 605, 607, 616, 618, 620, 622, 639, 643, 644, 651,
740 652, 661, 663, 668, 669, 670, 671, 672, 673, 677,
741 678, 679, 680, 681, 682, 686, 690, 690, 699, 703,
742 707, 707, 722, 724, 729, 733, 734, 738, 742, 748,
743 753, 754, 758, 762, 763, 767, 768, 769, 773, 774,
744 775, 776, 777, 781, 782, 783, 784, 785, 789, 790,
745 794, 801, 806, 806, 812, 812, 812, 823, 834, 835,
746 839, 840, 841, 842, 843, 844, 845, 846, 847, 851,
747 852, 857, 858, 862, 864, 866, 867, 868, 869, 870,
748 872, 877, 878, 882, 886, 899, 900, 901, 902, 903,
749 904, 905, 905, 911, 912, 913, 914, 915, 916, 917,
750 918, 919, 920, 925, 926, 930, 931, 932, 933, 934,
751 935, 936, 937, 938, 939, 940, 944, 945, 947, 951,
752 957, 957, 962, 963, 964, 965, 969, 970, 975, 976,
753 977, 978, 982, 983, 984, 988, 989, 990, 994, 995,
754 996, 997, 998, 1002, 1003, 1004, 1008, 1009, 1013, 1014,
755 1018, 1019, 1023, 1024, 1024, 1036, 1037, 1037, 1050, 1051,
756 1051, 1051, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064,
757 1065, 1066, 1067, 1068, 1072, 1073, 1077, 1078, 1082, 1088,
758 1089, 1090, 1094, 1108, 1108, 1119, 1119, 1128, 1129, 1133,
759 1138, 1138, 1143, 1143, 1146, 1147, 1151, 1155, 1159, 1163,
760 1164, 1168, 1172, 1173, 1177, 1178, 1182, 1183, 1184, 1185,
761 1193, 1194, 1199, 1200, 1204, 1205, 1209, 1211, 1221, 1222,
762 1223, 1224, 1225, 1229, 1233, 1233, 1249, 1253, 1257, 1257,
763 1271, 1271, 1303, 1304, 1308, 1309, 1310, 1311, 1312, 1316,
764 1317, 1318, 1319, 1323, 1324, 1325, 1326, 1327, 1328, 1329,
765 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339,
766 1343, 1344, 1348, 1349, 1353, 1354, 1358, 1359, 1360, 1361,
767 1362, 1366, 1367, 1368, 1369, 1370, 1371, 1375, 1376, 1377,
768 1378, 1382, 1383, 1384, 1385, 1389, 1390, 1391, 1392, 1393,
769 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1408, 1409, 1410,
770 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420,
771 1421, 1425, 1430, 1431, 1436, 1437, 1442, 1443, 1444, 1448,
772 1449, 1453, 1460, 1460, 1460, 1466, 1466, 1466, 1471, 1473,
773 1475, 1475, 1475, 1480, 1480, 1480, 1485, 1487, 1489, 1490,
774 1494, 1498, 1499, 1500, 1504, 1506, 1511, 1513, 1518, 1519,
775 1520, 1525, 1527, 1527, 1529, 1533, 1535, 1537, 1541, 1546,
776 1554, 1555, 1556, 1562, 1567, 1568, 1573, 1574, 1578, 1579,
777 1580, 1584, 1585, 1589, 1590, 1591, 1592, 1596, 1597, 1601,
778 1602, 1606, 1607, 1608, 1612, 1612, 1613, 1613, 1618, 1630,
779 1647, 1648, 1652, 1653, 1654, 1658, 1659, 1663, 1665, 1666,
780 1668, 1669, 1671, 1673, 1675, 1677, 1684, 1685, 1686, 1687,
781 1688, 1689, 1690, 1691, 1692, 1697, 1701, 1705, 1706, 1711,
782 1713, 1715, 1717, 1722, 1722, 1722, 1730, 1730, 1734, 1738,
783 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748,
784 1749, 1750, 1754, 1754, 1761, 1765, 1769, 1770, 1774, 1775,
785 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1788,
786 1789, 1797, 1798, 1805, 1805, 1807, 1807, 1812, 1812, 1814,
787 1814, 1819, 1820, 1825, 1829, 1833, 1837, 1841, 1845, 1849,
788 1850, 1851, 1852, 1854, 1855, 1857, 1859, 1866, 1871, 1873,
789 1875, 1877, 1882, 1883, 1887, 1888, 1892, 1893, 1897, 1898,
790 1902, 1903, 1907, 1908, 1912, 1913, 1914, 1918, 1932, 1937,
791 1937, 1942, 1942, 1947, 1953, 1957, 1957, 1957, 1968, 1969,
792 1969, 1974, 1975, 1976, 1987, 1995, 1996, 2000, 2001, 2005,
793 2006, 2007, 2008, 2009, 2011, 2012, 2013, 2014, 2018, 2019,
794 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2031, 2032,
795 2036, 2037, 2038, 2039, 2043, 2044, 2045, 2049, 2050, 2051,
796 2055, 2056, 2057, 2058, 2059, 2063, 2064, 2065, 2069, 2070,
797 2074, 2075, 2079, 2080, 2084, 2085, 2089, 2090, 2094, 2095,
798 2095, 2095, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108,
799 2109, 2110, 2111, 2112, 2116, 2117, 2121, 2125, 2127, 2129,
800 2134, 2135, 2137, 2139, 2143, 2144, 2145, 2147, 2148, 2149,
801 2150, 2151, 2152, 2153, 2157, 2158, 2162, 2163, 2167, 2171,
802 2172, 2173, 2174, 2175, 2179, 2180, 2181, 2182
807 #if (YYDEBUG) || defined YYERROR_VERBOSE
809 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
810 static const char *const yytname[] =
812 "$", "error", "$undefined.", "BADTOK", "SKIPTOK", "CTOK_ELIPSIS", "CASE",
813 "DEFAULT", "CIF", "CELSE", "SWITCH", "WHILE", "DO", "CFOR", "GOTO",
814 "CONTINUE", "BREAK", "RETURN", "TSEMI", "TLBRACE", "TRBRACE", "TCOMMA",
815 "TCOLON", "TASSIGN", "TLPAREN", "TRPAREN", "TLSQBR", "TRSQBR", "TDOT",
816 "TAMPERSAND", "TEXCL", "TTILDE", "TMINUS", "TPLUS", "TMULT", "TDIV",
817 "TPERCENT", "TLT", "TGT", "TCIRC", "TBAR", "TQUEST", "CSIZEOF",
818 "CALIGNOF", "CTYPEOF", "ARROW_OP", "CTYPEDEF", "COFFSETOF", "INC_OP",
819 "DEC_OP", "LEFT_OP", "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP",
820 "AND_OP", "OR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN",
821 "ADD_ASSIGN", "SUB_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN",
822 "XOR_ASSIGN", "OR_ASSIGN", "CSTRUCT", "CUNION", "CENUM", "VA_ARG",
823 "VA_DCL", "QWARN", "QGLOBALS", "QMODIFIES", "QNOMODS", "QCONSTANT",
824 "QFUNCTION", "QITER", "QDEFINES", "QUSES", "QALLOCATES", "QSETS",
825 "QRELEASES", "QPRECLAUSE", "QPOSTCLAUSE", "QINVARIANT", "QALT",
826 "QUNDEF", "QKILLED", "QENDMACRO", "LLMACRO", "LLMACROITER",
827 "LLMACROEND", "TENDMACRO", "QSWITCHBREAK", "QLOOPBREAK", "QINNERBREAK",
828 "QSAFEBREAK", "QINNERCONTINUE", "QFALLTHROUGH", "QLINTNOTREACHED",
829 "QLINTFALLTHROUGH", "QLINTFALLTHRU", "QARGSUSED", "QPRINTFLIKE",
830 "QLINTPRINTFLIKE", "QSCANFLIKE", "QMESSAGELIKE", "QNOTREACHED",
831 "QCONST", "QRESTRICT", "QVOLATILE", "QINLINE", "QEXTENSION", "QEXTERN",
832 "QSTATIC", "QAUTO", "QREGISTER", "QOUT", "QIN", "QYIELD", "QONLY",
833 "QTEMP", "QSHARED", "QREF", "QUNIQUE", "QCHECKED", "QUNCHECKED",
834 "QCHECKEDSTRICT", "QCHECKMOD", "QKEEP", "QKEPT", "QPARTIAL", "QSPECIAL",
835 "QOWNED", "QDEPENDENT", "QRETURNED", "QEXPOSED", "QNULL", "QOBSERVER",
836 "QISNULL", "QEXITS", "QMAYEXIT", "QNEVEREXIT", "QTRUEEXIT",
837 "QFALSEEXIT", "QLONG", "QSIGNED", "QUNSIGNED", "QSHORT", "QUNUSED",
838 "QSEF", "QNOTNULL", "QRELNULL", "QABSTRACT", "QNUMABSTRACT",
839 "QCONCRETE", "QMUTABLE", "QIMMUTABLE", "QTRUENULL", "QFALSENULL",
840 "QEXTERNAL", "QREFCOUNTED", "QREFS", "QNEWREF", "QTEMPREF", "QKILLREF",
841 "QRELDEF", "CGCHAR", "CBOOL", "CINT", "CGFLOAT", "CDOUBLE", "CVOID",
842 "QANYTYPE", "QINTEGRALTYPE", "QUNSIGNEDINTEGRALTYPE",
843 "QSIGNEDINTEGRALTYPE", "QNULLTERMINATED", "QSETBUFFERSIZE",
844 "QSETSTRINGLENGTH", "QMAXSET", "QMAXREAD", "QTESTINRANGE", "TCAND",
845 "IDENTIFIER", "NEW_IDENTIFIER", "TYPE_NAME_OR_ID", "CANNOTATION",
846 "CCONSTANT", "ITER_NAME", "ITER_ENDNAME", "TYPE_NAME", "METASTATE_NAME",
847 "file", "externalDefs", "externalDef", "constantDecl", "fcnDecl", "@1",
848 "plainFcn", "plainNamedDecl", "namedDeclBase", "@2", "@3",
849 "plainNamedDeclBase", "@4", "@5", "iterDecl", "@6", "@7", "macroDef",
850 "fcnDefHdr", "metaStateConstraint", "metaStateSpecifier", "@8", "@9",
851 "metaStateExpression", "metaStateName", "constraintSeperator",
852 "BufConstraintList", "BufConstraint", "bufferModifier", "relationalOp",
853 "BufConstraintExpr", "BufConstraintTerm", "BufConstraintSrefExpr",
854 "BufUnaryOp", "BufBinaryOp", "functionClauses", "functionClausesPlain",
855 "functionClause", "functionClausePlain", "globalsClause",
856 "globalsClausePlain", "@10", "nomodsClause", "modifiesClause",
857 "modifiesClausePlain", "@11", "flagSpec", "flagId", "optWarnClause",
858 "warnClause", "warnClausePlain", "globIdList", "globIdListExpr",
859 "optGlobQuals", "globId", "globQual", "stateTag", "conditionTag",
860 "fcnDefHdrAux", "fcnBody", "@12", "@13", "@14", "fcnDef", "locModifies",
861 "modListExpr", "mExpr", "modList", "specClauseListExpr",
862 "optSpecClauseList", "specClauseList", "primaryExpr", "@15",
863 "postfixExpr", "argumentExprList", "unaryExpr", "fieldDesignator",
864 "offsetofExpr", "sizeofExpr", "@16", "sizeofExprAux", "castExpr",
865 "timesExpr", "plusExpr", "shiftExpr", "relationalExpr", "equalityExpr",
866 "bitandExpr", "xorExpr", "bitorExpr", "andExpr", "@17", "orExpr", "@18",
867 "conditionalExpr", "@19", "@20", "assignExpr", "expr", "optExpr",
868 "constantExpr", "initializer", "instanceDecl", "@21", "@22",
869 "namedInitializerType", "namedInitializer", "@23", "typeDecl", "@24",
870 "IsType", "PushType", "namedInitializerList", "namedInitializerListAux",
871 "namedInitializerTypeList", "namedInitializerTypeListAux",
872 "optDeclarators", "init", "designation", "designatorList", "designator",
873 "initList", "storageSpecifier", "stateClause", "stateClausePlain",
874 "@25", "conditionClause", "startConditionClause",
875 "conditionClausePlain", "@26", "@27", "functionConstraint",
876 "exitsQualifier", "checkQualifier", "stateQualifier", "paramQualifier",
877 "visibilityQualifier", "returnQualifier", "typedefQualifier",
878 "refcountQualifier", "typeModifier", "definedQualifier",
879 "typeQualifier", "typeSpecifier", "completeType",
880 "completeTypeSpecifier", "altType", "completeTypeSpecifierAux",
881 "optCompleteType", "optStructInvariant", "suSpc", "@28", "@29", "@30",
882 "@31", "@32", "@33", "@34", "@35", "NotType", "structDeclList",
883 "structDecl", "structNamedDeclList", "structNamedDecl", "enumSpc",
884 "@36", "enumeratorList", "enumerator", "optNamedDecl", "namedDecl",
885 "genericParamList", "innerMods", "innerModsList", "pointers",
886 "paramIdList", "idList", "paramTypeList", "paramList", "@37", "@38",
887 "paramDecl", "typeExpression", "abstractDecl", "optAbstractDeclBase",
888 "abstractDeclBase", "stmt", "iterBody", "endBody", "iterDefStmtList",
889 "iterDefIterationStmt", "forPred", "@39", "@40", "partialIterStmt",
890 "@41", "iterDefStmt", "iterSelectionStmt", "@42", "openScope",
891 "closeScope", "macroBody", "stmtErr", "labeledStmt",
892 "optExtraFallThroughs", "caseStmt", "@43", "@44", "defaultStmt", "@45",
893 "@46", "compoundStmt", "compoundStmtErr", "CreateInnerScope",
894 "DeleteInnerScope", "CreateStructInnerScope", "DeleteStructInnerScope",
895 "DeleteInnerScopeSafe", "compoundStmtRest", "compoundStmtAux",
896 "compoundStmtAuxErr", "stmtListErr", "initializerList",
897 "typeInitializerList", "typeInitializer", "stmtList", "expressionStmt",
898 "expressionStmtErr", "ifPred", "selectionStmt", "@47", "@48",
899 "whilePred", "iterWhilePred", "iterStmt", "@49", "@50", "iterArgList",
900 "@51", "iterArgExpr", "cconstantExpr", "primaryIterExpr",
901 "postfixIterExpr", "unaryIterExpr", "castIterExpr", "timesIterExpr",
902 "plusIterExpr", "shiftIterExpr", "relationalIterExpr",
903 "equalityIterExpr", "bitandIterExpr", "xorIterExpr", "bitorIterExpr",
904 "andIterExpr", "orIterExpr", "conditionalIterExpr", "@52", "@53",
905 "assignIterExpr", "endIter", "doHeader", "iterationStmt",
906 "iterationStmtErr", "jumpStmt", "optSemi", "optComma", "id", "newId",
911 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
912 static const short yyr1[] =
914 0, 196, 196, 197, 197, 198, 198, 198, 198, 198,
915 198, 198, 198, 199, 199, 201, 200, 202, 202, 203,
916 203, 204, 204, 204, 204, 205, 204, 206, 204, 207,
917 207, 207, 207, 208, 207, 209, 207, 211, 212, 210,
918 213, 213, 213, 213, 214, 215, 217, 216, 218, 216,
919 219, 219, 220, 221, 221, 222, 222, 223, 224, 224,
920 225, 225, 225, 226, 226, 226, 227, 227, 228, 228,
921 228, 228, 228, 228, 228, 228, 229, 230, 230, 231,
922 231, 232, 232, 233, 233, 233, 233, 233, 233, 234,
923 234, 234, 234, 234, 234, 235, 237, 236, 238, 239,
924 241, 240, 242, 242, 243, 244, 244, 245, 246, 246,
925 247, 247, 248, 249, 249, 250, 250, 250, 251, 251,
926 251, 251, 251, 252, 252, 252, 252, 252, 253, 253,
927 254, 254, 256, 255, 257, 258, 255, 259, 260, 260,
928 261, 261, 261, 261, 261, 261, 261, 261, 261, 262,
929 262, 263, 263, 264, 264, 264, 264, 264, 264, 264,
930 264, 265, 265, 266, 266, 267, 267, 267, 267, 267,
931 267, 268, 267, 269, 269, 269, 269, 269, 269, 269,
932 269, 269, 269, 270, 270, 271, 271, 271, 271, 271,
933 271, 271, 271, 271, 271, 271, 272, 272, 272, 273,
934 275, 274, 276, 276, 276, 276, 277, 277, 278, 278,
935 278, 278, 279, 279, 279, 280, 280, 280, 281, 281,
936 281, 281, 281, 282, 282, 282, 283, 283, 284, 284,
937 285, 285, 286, 287, 286, 288, 289, 288, 290, 291,
938 292, 290, 293, 293, 293, 293, 293, 293, 293, 293,
939 293, 293, 293, 293, 294, 294, 295, 295, 296, 297,
940 297, 297, 298, 299, 298, 300, 298, 301, 301, 302,
941 303, 302, 305, 304, 304, 304, 306, 307, 308, 309,
942 309, 310, 311, 311, 312, 312, 313, 313, 313, 313,
943 314, 314, 315, 315, 316, 316, 317, 317, 318, 318,
944 318, 318, 318, 319, 321, 320, 322, 323, 325, 324,
945 326, 324, 327, 327, 328, 328, 328, 328, 328, 329,
946 329, 329, 329, 330, 330, 330, 330, 330, 330, 330,
947 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
948 331, 331, 332, 332, 333, 333, 334, 334, 334, 334,
949 334, 335, 335, 335, 335, 335, 335, 336, 336, 336,
950 336, 337, 337, 337, 337, 338, 338, 338, 338, 338,
951 338, 338, 338, 338, 338, 338, 338, 339, 339, 339,
952 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
953 339, 340, 341, 341, 342, 342, 343, 343, 343, 344,
954 344, 345, 347, 348, 346, 349, 350, 346, 346, 346,
955 351, 352, 346, 353, 354, 346, 346, 346, 346, 346,
956 355, 356, 356, 356, 357, 357, 358, 358, 359, 359,
957 359, 360, 361, 360, 360, 362, 362, 362, 363, 363,
958 364, 364, 364, 364, 365, 365, 366, 366, 367, 367,
959 367, 368, 368, 369, 369, 369, 369, 370, 370, 371,
960 371, 372, 372, 372, 374, 373, 375, 373, 376, 376,
961 377, 377, 378, 378, 378, 379, 379, 380, 380, 380,
962 380, 380, 380, 380, 380, 380, 381, 381, 381, 381,
963 381, 381, 381, 381, 381, 382, 383, 384, 384, 385,
964 385, 385, 385, 387, 388, 386, 390, 389, 389, 391,
965 391, 391, 391, 391, 391, 391, 391, 391, 391, 391,
966 391, 391, 393, 392, 394, 395, 396, 396, 397, 397,
967 397, 397, 397, 397, 397, 397, 397, 397, 397, 398,
968 398, 399, 399, 401, 400, 402, 400, 404, 403, 405,
969 403, 406, 406, 407, 408, 409, 410, 411, 412, 413,
970 413, 413, 413, 413, 413, 413, 413, 414, 415, 415,
971 415, 415, 416, 416, 417, 417, 418, 418, 419, 419,
972 420, 420, 421, 421, 422, 422, 422, 423, 424, 425,
973 424, 426, 424, 427, 428, 430, 431, 429, 432, 433,
974 432, 434, 434, 434, 434, 435, 435, 436, 436, 437,
975 437, 437, 437, 437, 437, 437, 437, 437, 438, 438,
976 438, 438, 438, 438, 438, 438, 438, 438, 439, 439,
977 440, 440, 440, 440, 441, 441, 441, 442, 442, 442,
978 443, 443, 443, 443, 443, 444, 444, 444, 445, 445,
979 446, 446, 447, 447, 448, 448, 449, 449, 450, 451,
980 452, 450, 453, 453, 453, 453, 453, 453, 453, 453,
981 453, 453, 453, 453, 454, 454, 455, 456, 456, 456,
982 457, 457, 457, 457, 458, 458, 458, 458, 458, 458,
983 458, 458, 458, 458, 459, 459, 460, 460, 461, 462,
984 462, 462, 462, 462, 463, 463, 463, 463
987 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
988 static const short yyr2[] =
990 0, 0, 1, 1, 2, 2, 1, 1, 1, 1,
991 1, 1, 1, 8, 11, 0, 5, 1, 3, 1,
992 2, 1, 6, 3, 6, 0, 6, 0, 7, 1,
993 6, 3, 6, 0, 6, 0, 7, 0, 0, 10,
994 3, 3, 3, 2, 1, 3, 0, 4, 0, 4,
995 1, 3, 1, 1, 1, 3, 1, 3, 1, 1,
996 1, 1, 1, 1, 4, 5, 1, 1, 1, 1,
997 3, 4, 2, 3, 3, 3, 1, 1, 1, 0,
998 2, 0, 2, 1, 1, 1, 1, 1, 1, 1,
999 1, 1, 1, 1, 1, 2, 0, 4, 1, 2,
1000 0, 3, 1, 3, 1, 1, 0, 2, 3, 2,
1001 1, 3, 2, 0, 2, 1, 1, 1, 1, 1,
1002 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1003 1, 3, 0, 3, 0, 0, 4, 2, 2, 1,
1004 1, 1, 1, 3, 4, 2, 3, 3, 3, 1,
1005 1, 1, 3, 1, 1, 3, 4, 2, 3, 3,
1006 3, 0, 1, 1, 3, 1, 1, 1, 3, 1,
1007 1, 0, 4, 1, 4, 3, 4, 6, 5, 5,
1008 2, 2, 7, 1, 3, 1, 2, 2, 2, 2,
1009 2, 2, 2, 2, 1, 1, 3, 4, 1, 9,
1010 0, 3, 4, 2, 4, 2, 1, 4, 1, 3,
1011 3, 3, 1, 3, 3, 1, 3, 3, 1, 3,
1012 3, 3, 3, 1, 3, 3, 1, 3, 1, 3,
1013 1, 3, 1, 0, 4, 1, 0, 4, 1, 0,
1014 0, 7, 1, 3, 3, 3, 3, 3, 3, 3,
1015 3, 3, 3, 3, 1, 3, 0, 1, 1, 1,
1016 1, 1, 3, 0, 9, 0, 11, 1, 1, 2,
1017 0, 6, 0, 8, 4, 4, 0, 0, 2, 1,
1018 4, 2, 1, 4, 0, 4, 1, 3, 4, 2,
1019 2, 2, 1, 2, 3, 2, 1, 3, 1, 1,
1020 1, 1, 1, 2, 0, 6, 2, 2, 0, 6,
1021 0, 5, 1, 1, 1, 1, 1, 1, 1, 1,
1022 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1023 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1024 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1025 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1026 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
1027 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1028 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1029 2, 3, 1, 4, 1, 3, 2, 2, 2, 0,
1030 1, 0, 0, 0, 12, 0, 0, 11, 6, 6,
1031 0, 0, 10, 0, 0, 10, 5, 5, 4, 4,
1032 0, 1, 1, 2, 5, 3, 2, 4, 1, 3,
1033 4, 6, 0, 8, 4, 1, 3, 2, 1, 4,
1034 1, 1, 2, 2, 1, 2, 1, 2, 1, 1,
1035 1, 1, 2, 1, 2, 2, 3, 1, 3, 1,
1036 3, 1, 1, 3, 0, 2, 0, 4, 4, 1,
1037 1, 2, 1, 1, 2, 0, 1, 5, 2, 3,
1038 3, 4, 3, 4, 4, 5, 1, 1, 1, 1,
1039 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
1040 7, 6, 2, 0, 0, 10, 0, 6, 1, 1,
1041 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
1042 3, 1, 0, 3, 2, 2, 1, 1, 1, 1,
1043 1, 1, 1, 1, 1, 1, 3, 1, 1, 2,
1044 2, 0, 2, 0, 4, 0, 6, 0, 3, 0,
1045 5, 3, 2, 3, 0, 0, 0, 0, 0, 1,
1046 2, 2, 3, 2, 3, 3, 4, 2, 2, 3,
1047 3, 4, 1, 2, 1, 2, 1, 3, 1, 4,
1048 1, 2, 1, 2, 1, 2, 1, 4, 2, 0,
1049 5, 0, 6, 4, 4, 0, 0, 10, 1, 0,
1050 4, 1, 1, 1, 1, 1, 2, 1, 3, 1,
1051 4, 3, 4, 6, 5, 5, 2, 2, 1, 2,
1052 2, 2, 2, 2, 2, 2, 2, 1, 1, 4,
1053 1, 3, 3, 3, 1, 3, 3, 1, 3, 3,
1054 1, 3, 3, 3, 3, 1, 3, 3, 1, 3,
1055 1, 3, 1, 3, 1, 3, 1, 3, 1, 0,
1056 0, 7, 1, 3, 3, 3, 3, 3, 3, 3,
1057 3, 3, 3, 3, 1, 0, 1, 2, 7, 2,
1058 2, 7, 6, 2, 3, 2, 3, 2, 3, 3,
1059 3, 3, 2, 3, 0, 1, 0, 1, 1, 1,
1060 1, 1, 1, 1, 1, 1, 4, 4
1063 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
1064 doesn't specify something else to do. Zero means the default is an
1066 static const short yydefact[] =
1068 0, 12, 11, 453, 0, 420, 260, 420, 15, 0,
1069 0, 0, 0, 276, 276, 276, 299, 298, 300, 301,
1070 302, 361, 362, 325, 327, 326, 330, 331, 319, 321,
1071 322, 320, 328, 329, 363, 364, 323, 324, 340, 336,
1072 332, 337, 333, 314, 315, 318, 316, 317, 358, 359,
1073 360, 357, 342, 341, 335, 334, 346, 347, 348, 349,
1074 350, 344, 345, 343, 351, 352, 355, 356, 353, 354,
1075 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
1076 338, 698, 699, 703, 339, 700, 701, 704, 0, 3,
1077 6, 7, 444, 8, 9, 134, 44, 694, 10, 259,
1078 261, 0, 399, 276, 276, 276, 276, 276, 276, 276,
1079 276, 420, 276, 399, 399, 420, 392, 420, 0, 420,
1080 130, 276, 702, 21, 420, 448, 449, 450, 451, 454,
1081 455, 276, 279, 276, 276, 272, 420, 705, 420, 420,
1082 703, 0, 538, 276, 547, 0, 0, 0, 676, 0,
1083 0, 0, 0, 276, 584, 0, 276, 276, 276, 276,
1084 276, 276, 276, 276, 276, 0, 43, 0, 0, 0,
1085 0, 0, 541, 276, 170, 166, 169, 605, 595, 173,
1086 185, 206, 195, 194, 208, 212, 215, 218, 223, 226,
1087 228, 230, 232, 235, 238, 242, 254, 586, 200, 0,
1088 0, 572, 528, 529, 530, 531, 0, 0, 532, 276,
1089 533, 0, 534, 167, 0, 535, 537, 165, 0, 521,
1090 0, 582, 0, 554, 508, 0, 0, 0, 517, 0,
1091 518, 497, 516, 513, 514, 509, 510, 511, 0, 0,
1092 515, 522, 0, 0, 519, 496, 0, 365, 367, 366,
1093 377, 379, 378, 380, 381, 382, 383, 384, 385, 386,
1094 4, 276, 0, 132, 137, 420, 695, 5, 420, 400,
1095 396, 370, 372, 369, 371, 374, 373, 375, 376, 390,
1096 368, 397, 398, 0, 276, 276, 388, 276, 276, 0,
1097 389, 445, 387, 452, 456, 276, 166, 169, 0, 420,
1098 470, 0, 165, 420, 0, 278, 420, 0, 269, 276,
1099 694, 17, 19, 0, 420, 276, 29, 464, 206, 258,
1100 543, 0, 276, 276, 276, 276, 0, 685, 687, 692,
1101 0, 554, 0, 0, 0, 188, 193, 192, 191, 190,
1102 189, 0, 276, 186, 187, 276, 0, 0, 0, 0,
1103 0, 541, 0, 276, 540, 276, 486, 487, 488, 489,
1104 0, 490, 491, 276, 493, 276, 492, 494, 554, 276,
1105 276, 180, 181, 0, 276, 276, 276, 276, 276, 276,
1106 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
1107 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
1108 276, 233, 239, 236, 585, 276, 0, 683, 40, 0,
1109 555, 573, 588, 680, 606, 0, 539, 276, 0, 0,
1110 0, 583, 41, 498, 502, 574, 420, 512, 524, 525,
1111 0, 0, 0, 42, 23, 276, 464, 420, 420, 276,
1112 262, 131, 420, 0, 394, 0, 420, 0, 420, 0,
1113 276, 0, 706, 276, 276, 0, 472, 471, 473, 707,
1114 276, 275, 276, 274, 270, 420, 0, 276, 0, 420,
1115 276, 20, 461, 0, 0, 446, 462, 276, 0, 548,
1116 0, 591, 0, 257, 0, 684, 693, 554, 0, 168,
1117 276, 536, 276, 0, 0, 688, 689, 690, 691, 686,
1118 542, 276, 549, 0, 679, 420, 552, 677, 0, 0,
1119 175, 0, 183, 0, 0, 0, 243, 244, 245, 246,
1120 247, 248, 249, 250, 251, 252, 253, 209, 210, 211,
1121 214, 213, 216, 217, 219, 220, 221, 222, 224, 225,
1122 227, 229, 231, 276, 276, 276, 255, 276, 276, 201,
1123 568, 705, 572, 0, 420, 553, 589, 0, 0, 520,
1124 506, 276, 575, 523, 0, 0, 25, 0, 559, 276,
1125 580, 133, 420, 276, 554, 276, 263, 393, 276, 410,
1126 0, 418, 413, 0, 419, 0, 435, 438, 432, 434,
1127 391, 478, 0, 464, 474, 276, 0, 280, 268, 282,
1128 267, 276, 276, 276, 694, 16, 31, 276, 464, 276,
1129 18, 447, 457, 459, 37, 466, 420, 465, 469, 544,
1130 587, 0, 593, 276, 172, 276, 207, 420, 0, 276,
1131 545, 0, 551, 567, 0, 596, 276, 176, 174, 276,
1132 276, 234, 0, 237, 276, 203, 276, 205, 569, 570,
1133 276, 276, 276, 594, 276, 420, 276, 420, 79, 27,
1134 560, 563, 276, 276, 561, 276, 581, 136, 0, 265,
1135 276, 395, 416, 556, 402, 417, 556, 405, 276, 437,
1136 276, 0, 479, 482, 276, 0, 480, 0, 464, 420,
1137 106, 281, 276, 276, 276, 0, 33, 0, 276, 0,
1138 81, 463, 276, 475, 276, 0, 276, 578, 696, 576,
1139 0, 0, 0, 550, 276, 276, 184, 178, 179, 240,
1140 0, 0, 571, 590, 0, 276, 276, 276, 276, 276,
1141 276, 276, 276, 276, 0, 166, 169, 185, 206, 194,
1142 212, 215, 218, 223, 226, 228, 230, 232, 235, 0,
1143 599, 598, 167, 609, 618, 628, 630, 634, 637, 640,
1144 645, 648, 650, 652, 654, 656, 658, 662, 601, 165,
1145 0, 24, 0, 96, 100, 98, 123, 124, 125, 126,
1146 127, 128, 129, 26, 79, 83, 0, 85, 84, 0,
1147 88, 0, 420, 420, 86, 0, 87, 310, 0, 79,
1148 564, 565, 276, 562, 22, 276, 284, 420, 408, 556,
1149 420, 409, 556, 431, 436, 276, 0, 0, 483, 481,
1150 484, 0, 276, 0, 105, 276, 276, 0, 286, 271,
1151 276, 0, 292, 0, 276, 0, 420, 81, 35, 0,
1152 458, 460, 38, 81, 89, 91, 90, 94, 92, 93,
1153 467, 440, 0, 276, 475, 441, 476, 592, 503, 696,
1154 276, 0, 0, 177, 546, 0, 599, 276, 202, 204,
1155 682, 0, 0, 188, 193, 192, 191, 190, 189, 186,
1156 187, 276, 276, 276, 180, 181, 0, 276, 276, 276,
1157 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
1158 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
1159 276, 276, 276, 276, 233, 659, 236, 507, 0, 501,
1160 104, 109, 102, 113, 694, 80, 95, 99, 107, 304,
1161 307, 303, 0, 308, 306, 28, 566, 276, 0, 422,
1162 420, 420, 421, 420, 420, 420, 439, 276, 477, 485,
1163 283, 273, 296, 0, 0, 295, 289, 290, 293, 291,
1164 284, 13, 32, 34, 81, 30, 694, 82, 464, 468,
1165 442, 443, 276, 0, 577, 182, 0, 198, 0, 554,
1166 241, 681, 168, 276, 0, 175, 0, 0, 0, 0,
1167 663, 664, 665, 666, 667, 668, 669, 670, 671, 672,
1168 673, 209, 210, 211, 214, 213, 216, 217, 219, 220,
1169 221, 222, 224, 225, 227, 229, 231, 655, 276, 657,
1170 276, 500, 108, 0, 118, 119, 120, 121, 122, 694,
1171 110, 420, 113, 0, 0, 141, 142, 101, 151, 694,
1172 139, 140, 0, 48, 0, 0, 58, 59, 69, 67,
1173 313, 0, 312, 56, 76, 0, 63, 66, 0, 694,
1174 68, 161, 284, 276, 420, 0, 276, 423, 411, 420,
1175 414, 420, 433, 287, 276, 294, 694, 36, 0, 276,
1176 504, 579, 276, 276, 0, 678, 675, 207, 276, 176,
1177 174, 276, 276, 0, 600, 103, 113, 97, 116, 112,
1178 117, 115, 114, 0, 145, 0, 0, 0, 0, 138,
1179 0, 0, 154, 163, 694, 153, 0, 0, 66, 0,
1180 72, 0, 54, 53, 0, 61, 60, 62, 0, 0,
1181 0, 0, 0, 0, 276, 694, 162, 0, 264, 276,
1182 425, 276, 276, 420, 428, 0, 403, 0, 406, 288,
1183 297, 0, 39, 276, 0, 199, 0, 196, 674, 555,
1184 0, 178, 179, 660, 111, 146, 143, 149, 0, 150,
1185 147, 148, 152, 0, 157, 0, 0, 0, 0, 276,
1186 0, 78, 77, 0, 73, 0, 50, 45, 46, 55,
1187 66, 57, 70, 0, 74, 75, 0, 0, 311, 276,
1188 276, 285, 276, 276, 0, 426, 276, 412, 0, 415,
1189 0, 14, 505, 197, 597, 177, 276, 144, 158, 155,
1190 0, 159, 160, 164, 305, 52, 49, 0, 0, 71,
1191 47, 64, 309, 266, 429, 420, 424, 276, 401, 407,
1192 661, 156, 65, 51, 427, 430, 404, 0, 0, 0
1195 static const short yydefgoto[] =
1197 1247, 88, 89, 90, 91, 139, 310, 311, 92, 658,
1198 799, 312, 837, 964, 93, 700, 966, 939, 95, 1050,
1199 1186, 1132, 1116, 1187, 1226, 1124, 1052, 1053, 1054, 1128,
1200 1055, 1056, 1190, 1058, 1183, 783, 842, 784, 843, 785,
1201 844, 923, 845, 788, 846, 924, 921, 922, 823, 790,
1202 791, 1029, 1030, 1031, 1099, 1032, 792, 793, 96, 264,
1203 437, 265, 574, 97, 1037, 1167, 1168, 1039, 1113, 1135,
1204 1114, 179, 331, 180, 511, 181, 976, 182, 183, 406,
1205 549, 184, 185, 186, 187, 188, 189, 190, 191, 192,
1206 193, 543, 194, 545, 195, 544, 867, 196, 225, 484,
1207 320, 425, 99, 670, 805, 599, 600, 603, 100, 306,
1208 198, 262, 133, 134, 601, 602, 938, 829, 830, 831,
1209 832, 953, 102, 794, 848, 1042, 796, 797, 849, 1061,
1210 932, 1059, 103, 104, 105, 106, 107, 108, 109, 110,
1211 111, 112, 113, 114, 300, 426, 443, 116, 270, 1246,
1212 117, 809, 1208, 812, 1210, 673, 1145, 676, 1147, 118,
1213 941, 942, 1142, 1143, 119, 681, 585, 586, 853, 136,
1214 474, 128, 129, 121, 611, 612, 475, 476, 477, 702,
1215 617, 333, 817, 855, 458, 354, 226, 246, 227, 228,
1216 355, 972, 1154, 230, 654, 231, 232, 430, 233, 234,
1217 200, 411, 356, 352, 357, 478, 712, 358, 321, 631,
1218 359, 205, 360, 555, 807, 1068, 239, 571, 506, 410,
1219 207, 572, 708, 709, 573, 361, 208, 209, 362, 651,
1220 621, 363, 242, 364, 368, 715, 750, 918, 751, 213,
1221 753, 754, 755, 756, 757, 758, 759, 760, 761, 762,
1222 763, 764, 765, 766, 767, 1018, 1216, 768, 1159, 365,
1223 366, 215, 367, 267, 861, 302, 218, 124
1226 static const short yypact[] =
1228 2083,-32768,-32768, 36, 34, 5460,-32768, 6775,-32768, 759,
1229 3247, 3669, 3669,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1230 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1231 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1232 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1233 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1234 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1235 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1236 -32768,-32768,-32768, 305,-32768,-32768,-32768,-32768, 2264,-32768,
1237 -32768,-32768, 300,-32768,-32768, 80,-32768, 90,-32768,-32768,
1238 -32768, 95, 6364,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1239 -32768,-32768,-32768, 6364, 6364, 151, 114,-32768, 406,-32768,
1240 -32768, 759,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 36,
1241 -32768, 5706,-32768, 159,-32768, 151,-32768,-32768,-32768, 5460,
1242 -32768, 188,-32768, 5706,-32768, 195, 206, 230,-32768, 251,
1243 759, 285, 318, 925,-32768, 2648, 5706, 5706, 5706, 5706,
1244 5706, 5706,-32768, 5738, 5738, 320,-32768, 341, 364, 370,
1245 392, 403, 321, 4946,-32768, 423, 441,-32768, 462,-32768,
1246 825, 1387,-32768,-32768,-32768, 682, 108, 190, 615, 296,
1247 472, 452, 467, 457, 127,-32768,-32768, 111,-32768, 3775,
1248 430, 446,-32768,-32768,-32768,-32768, 499, 3353,-32768, 4946,
1249 -32768, 3775,-32768, 355, 3775,-32768,-32768, 541, 570,-32768,
1250 600,-32768, 2842, 462, 617, 432, 563, 3458,-32768, 3669,
1251 -32768,-32768,-32768, 6090,-32768,-32768,-32768,-32768, 686, 704,
1252 -32768,-32768, 3669, 3775,-32768,-32768, 646,-32768,-32768,-32768,
1253 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1254 -32768, 716, 724,-32768,-32768, 6638,-32768,-32768,-32768,-32768,
1255 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1256 -32768,-32768,-32768, 739, 861,-32768,-32768, 759, 759, 254,
1257 -32768, 300,-32768,-32768,-32768, 3413,-32768,-32768, 106, 5953,
1258 221, 740,-32768,-32768, 749,-32768,-32768, 761, 754, 861,
1259 90,-32768, 338, 775,-32768, 759,-32768, 160,-32768,-32768,
1260 -32768, 787, 5706, 5706, 5706, 1979, 771,-32768,-32768,-32768,
1261 589, 797, 265, 786, 798,-32768,-32768,-32768,-32768,-32768,
1262 -32768, 804, 3413,-32768,-32768, 5706, 828, 832, 840, 850,
1263 863, 321, 426, 3624,-32768, 4946,-32768,-32768,-32768,-32768,
1264 833,-32768,-32768, 4946,-32768, 4946,-32768,-32768,-32768, 5631,
1265 5706,-32768,-32768, 41, 5706, 5706, 5706, 5706, 5706, 5706,
1266 5706, 5706, 5706, 5706, 5706, 5706, 5706, 5706, 5706, 5706,
1267 5706, 5706, 5706, 5706, 5706, 5706, 5706, 5706, 5706, 5706,
1268 5706,-32768,-32768,-32768,-32768, 5706, 360,-32768,-32768, 2454,
1269 -32768,-32768, 884,-32768,-32768, 923,-32768, 5706, 498, 920,
1270 929,-32768,-32768,-32768,-32768,-32768, 151, 6090,-32768,-32768,
1271 3669, 3141, 953,-32768,-32768, 5706, 113, 3881, 5029, 861,
1272 -32768, 580, 6775, 928, 964, 968, 1038, 1058, 1038, 759,
1273 1070, 256,-32768,-32768, 5642, 1027, 654,-32768, 671,-32768,
1274 861,-32768, 1044,-32768,-32768,-32768, 1007, 1082, 1071,-32768,
1275 861, 338,-32768, 759, 1090,-32768, 1102, 759, 1100,-32768,
1276 358, 1105, 444, 1105, 1114,-32768,-32768, 797, 1109,-32768,
1277 5357,-32768,-32768, 1110, 1116,-32768,-32768,-32768,-32768,-32768,
1278 -32768, 5706,-32768, 1113,-32768, 3881,-32768,-32768, 1129, 1120,
1279 -32768, 464,-32768, 292, 759, 759,-32768,-32768,-32768,-32768,
1280 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1281 682, 682, 108, 108, 190, 190, 190, 190, 615, 615,
1282 296, 472, 452, 5706, 5706, 5706,-32768, 5764, 5842,-32768,
1283 -32768, 3036,-32768, 3564, 4070,-32768,-32768, 1123, 481,-32768,
1284 -32768, 861,-32768,-32768, 1132, 1125,-32768, 1134,-32768, 4448,
1285 -32768,-32768, 4259, 4493, 797,-32768, 1139,-32768,-32768, 1137,
1286 1146,-32768, 1148, 1152,-32768, 536,-32768, 1163,-32768,-32768,
1287 -32768,-32768, 1161, 936, 671, 5674, 1165,-32768,-32768,-32768,
1288 -32768, 1169,-32768,-32768, 149,-32768,-32768, 5706, 581, 861,
1289 -32768,-32768, 1170,-32768,-32768, 1187, 6775,-32768,-32768,-32768,
1290 -32768, 1168,-32768, 1979,-32768, 5378,-32768,-32768, 1175,-32768,
1291 -32768, 1174,-32768,-32768, 1173,-32768, 5706,-32768,-32768,-32768,
1292 -32768, 467, 555, 457, 3413,-32768, 3413,-32768,-32768,-32768,
1293 4599, 4946, 5706,-32768, 5872,-32768, 5706,-32768, 1607,-32768,
1294 -32768,-32768, 4644, 4750,-32768, 4795,-32768,-32768, 1177,-32768,
1295 -32768,-32768,-32768,-32768, 1178,-32768,-32768, 1185,-32768, 759,
1296 -32768, 759,-32768,-32768, 64, 1182,-32768, 1183, 86,-32768,
1297 1136,-32768, 1868,-32768,-32768, 1184,-32768, 1194,-32768, 223,
1298 1607,-32768, 759, 790, 4946, 1196, 5378,-32768, 1191,-32768,
1299 1197, 1200, 1207,-32768, 5706, 5872,-32768,-32768,-32768,-32768,
1300 1209, 1217,-32768,-32768, 539, 3413, 5706, 5706, 5706, 5706,
1301 5706, 5706, 5738, 5738, 1198, 598, 649, 1101, 1527, 702,
1302 1068, 656, 562, 853, 676, 1214, 1206, 1204, 1190, 136,
1303 1223,-32768, 29,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1304 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 712,
1305 715,-32768, 1061,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1306 -32768,-32768,-32768,-32768, 1607,-32768, 1159,-32768,-32768, 1160,
1307 -32768, 1162,-32768,-32768,-32768, 1164,-32768, 1531, 1166, 1607,
1308 -32768,-32768, 4901,-32768,-32768,-32768,-32768, 6501,-32768,-32768,
1309 6501,-32768,-32768,-32768,-32768, 5706, 902, 1229,-32768,-32768,
1310 -32768, 1231, 1044, 1240,-32768, 1868, 5706, 759,-32768,-32768,
1311 1868, 397,-32768, 1237, 1868, 1171,-32768, 1607,-32768, 1238,
1312 -32768,-32768,-32768, 1607,-32768,-32768,-32768,-32768,-32768,-32768,
1313 -32768, 300, 1241,-32768, 721,-32768, 671,-32768,-32768, 1191,
1314 3096, 1246, 759,-32768,-32768, 733, 1243, 5706, 1175, 1175,
1315 1251, 765, 1247, 820, 834, 842, 844, 855, 875, 891,
1316 896, 5706, 5663, 5706, 908, 950, 134, 5706, 5706, 5706,
1317 5706, 5706, 5706, 5706, 5706, 5706, 5706, 5706, 5706, 5706,
1318 5706, 5706, 5706, 5706, 5706, 5706, 5706, 5706, 5706, 5706,
1319 5706, 5706, 5706, 5706, 5706,-32768, 5706,-32768, 1250, 1255,
1320 -32768, 1083, 1236, -18, 395,-32768,-32768,-32768,-32768,-32768,
1321 -32768,-32768, 701,-32768,-32768,-32768,-32768, 1868, 623,-32768,
1322 151, 5190,-32768, 6501, 5190, 6501,-32768,-32768,-32768,-32768,
1323 -32768,-32768,-32768, 919, 1252,-32768,-32768,-32768,-32768,-32768,
1324 -32768,-32768,-32768,-32768, 1607,-32768, 90,-32768, 402,-32768,
1325 -32768,-32768, 5695, 1257,-32768,-32768, 621,-32768, 1260, 797,
1326 -32768,-32768, 955, 5357, 1259, 965, 980, 302, 759, 759,
1327 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1328 -32768, 990, 1003, 1005, 762, 1205, 886, 970, 92, 431,
1329 546, 792, 634, 767, 413, 579, 375, 467, 5706, 457,
1330 5872,-32768, 355, 1061,-32768,-32768,-32768,-32768,-32768, 689,
1331 -32768, 6227, -18, 427, 427,-32768,-32768,-32768, 345, 773,
1332 -32768,-32768, 70,-32768, 695, 120,-32768,-32768,-32768,-32768,
1333 -32768, 1261,-32768, -10,-32768, 1128,-32768, 100, 1263, 90,
1334 -32768, 70,-32768,-32768,-32768, 1265, 710,-32768,-32768, 5190,
1335 -32768, 5190,-32768,-32768, 1581,-32768, 839,-32768, 1199, 894,
1336 -32768,-32768,-32768, 5706, 759,-32768, 1096, 1016,-32768, 1018,
1337 1035,-32768,-32768, 971,-32768,-32768, -18,-32768,-32768,-32768,
1338 -32768,-32768,-32768, 286, 345, 1145, 759, 759, 427,-32768,
1339 70, 70,-32768, 350, 995,-32768, 1269, 1032, 540, 120,
1340 484, 51,-32768,-32768, 695,-32768,-32768,-32768, 695, -8,
1341 759, 759, 1270, 695,-32768, 90, 1272, 1000,-32768, 861,
1342 -32768,-32768, 1273,-32768, 1291, 1294,-32768, 1295,-32768,-32768,
1343 -32768, 1228,-32768, 738, 1298,-32768, 307,-32768,-32768,-32768,
1344 1299, 1037, 1069,-32768,-32768,-32768,-32768, 345, 1293, 355,
1345 -32768,-32768, 345, 972, 350, 1193, 759, 759, 70,-32768,
1346 1130,-32768,-32768, 695,-32768, 540, 1289,-32768, 484,-32768,
1347 484,-32768,-32768, 1304,-32768,-32768, 1130, 1310,-32768,-32768,
1348 -32768,-32768, 5706, 710, 1319,-32768,-32768,-32768, 1320,-32768,
1349 1321,-32768,-32768,-32768,-32768, 1076, 5706,-32768,-32768,-32768,
1350 1312,-32768,-32768, 350,-32768,-32768,-32768, 1318, 51,-32768,
1351 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 5706,-32768,-32768,
1352 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1346, 1349,-32768
1355 static const short yypgoto[] =
1357 -32768,-32768, 1264,-32768,-32768,-32768,-32768, -427, -115,-32768,
1358 -32768, 1039,-32768,-32768,-32768,-32768,-32768, 78,-32768,-32768,
1359 424,-32768,-32768, 129, 163,-32768, 231,-32768,-32768,-32768,
1360 -1008,-32768, -887,-32768,-32768, -722, -763,-32768,-32768,-32768,
1361 -603,-32768, -574,-32768, -566,-32768, 339,-32768,-32768, 677,
1362 -684,-32768, 272, 329,-32768,-32768,-32768,-32768,-32768,-32768,
1363 -32768,-32768,-32768,-32768,-32768, -882, 194,-32768, -1004,-32768,
1364 309,-32768,-32768, -622, 489, 912,-32768,-32768, -615,-32768,
1365 -32768, 109, -375, -356, -327, -359, -380, -395, -393, -520,
1366 -517,-32768, -614,-32768, -117,-32768,-32768, 1099, 1053, -598,
1367 -371, 21,-32768,-32768,-32768, 550, -3,-32768,-32768,-32768,
1368 82, -271,-32768,-32768,-32768,-32768, -929, -777,-32768,-32768,
1369 548,-32768,-32768,-32768, -553,-32768,-32768,-32768, -535,-32768,
1370 -32768,-32768,-32768,-32768, 586,-32768,-32768,-32768,-32768,-32768,
1371 -32768,-32768,-32768,-32768,-32768, 22, 807,-32768, 1004,-32768,
1372 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 558,
1373 -737, -583,-32768, 183,-32768,-32768, 706, 711, 537, 1,
1374 -403, 1268,-32768, 17,-32768,-32768, -576,-32768,-32768,-32768,
1375 687, -107, 1092,-32768, -453, 396, 1381,-32768, 1156,-32768,
1376 1131,-32768,-32768,-32768,-32768, -178,-32768,-32768,-32768,-32768,
1377 -32768, 344, 1189, 1050, 1306,-32768,-32768, 1316,-32768,-32768,
1378 -323,-32768, 49, 245, -513, -682,-32768, 900,-32768,-32768,
1379 999, -186, 703, 554, -491, 103,-32768, 282, 161,-32768,
1380 -32768, 535,-32768, 601,-32768,-32768, 700,-32768, 399, -639,
1381 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1382 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1353,
1383 -32768,-32768, 1639, -258, 561, 0, 333,-32768
1390 static const short yytable[] =
1392 122, 120, 132, 594, 541, 122, 291, 542, 488, 122,
1393 217, 217, 217, 530, 531, 752, 847, 685, 540, 1192,
1394 130, 98, 115, 641, 301, 705, 319, 135, 643, 138,
1395 503, 1076, 737, 567, 532, 533, 1117, 538, 539, 739,
1396 749, 468, 1038, 610, 419, 1057, 1122, 427, 952, 423,
1397 -607, 424, 466, 956, -607, 786, 1043, 960, 131, 206,
1398 238, 238, 925, 650, 565, 534, 535, 536, 537, 514,
1399 3, 1024, 1025, 944, 963, 1119, 752, 935, 94, 438,
1400 967, 663, 101, 592, 787, 1045, 515, 101, 122, 120,
1401 454, 472, 789, 737, 1110, 247, 248, 249, 3, 263,
1402 739, 749, 1026, 1027, 1111, 795, 1173, 1174, 266, 98,
1403 115, 820, 821, -641, 240, 240, 1028, -641, 472, 268,
1404 1191, 122, -46, 798, 269, 1197, 1129, 405, 1130, 404,
1405 630, 452, 405, 1137, 747, 269, 269, 748, 566, 122,
1406 388, 389, 390, 391, 1119, 1131, 294, 125, 126, 127,
1407 122, 1103, 1104, 847, 1045, 217, 315, 1118, 1120, 847,
1408 1062, 314, 988, 810, 503, 472, 94, 266, 402, -276,
1409 101, 210, 693, 217, 1223, 1227, 1123, 915, 444, 989,
1410 303, 786, 698, 1193, 403, 271, 272, 273, 274, 275,
1411 276, 277, 278, 916, 280, 747, 786, 283, 748, 217,
1412 468, 1077, 285, 101, 206, 697, 1069, 217, 1071, 217,
1413 787, 217, 317, 299, 217, 304, 305, 307, 789, 322,
1414 414, 313, 217, 554, 687, 787, 1172, 217, 840, 217,
1415 323, 795, 1185, 789, 1188, 493, 695, 299, 81, 1048,
1416 390, 391, 217, 217, 341, -276, 795, 454, 206, 798,
1417 856, 667, 563, 423, 324, 3, 206, 81, 1112, 745,
1418 206, 746, 1070, 206, 798, 335, 336, 337, 338, 339,
1419 340, 238, 420, 449, 744, 325, 238, 405, 238, 740,
1420 847, 489, 1022, 404, 122, 441, 405, 122, 122, 122,
1421 489, 238, 206, 241, 241, 743, 943, 1150, 741, 945,
1422 -420, -420, -420, 327, 299, -420, -420, 81, 1048, 122,
1423 465, 1165, 1105, 405, 1106, 122, 210, 456, 319, 638,
1424 745, 453, 746, 405, -277, 240, 261, 742, 405, 1090,
1425 240, 1107, 240, 123, 1213, 744, 328, 319, 123, -705,
1426 740, 1188, 141, 435, 345, 240, 694, -420, -420, -420,
1427 396, 397, -420, -420, 201, 217, 743, 346, 1067, 741,
1428 210, 1067, -277, 217, 467, 217, 101, 442, 210, 445,
1429 447, 1105, 210, 1106, 1080, 210, 1175, 299, 1176, 405,
1430 347, 752, 455, 620, 319, 627, 348, 1146, 742, 1148,
1431 1107, 101, 685, -705, 1017, 1177, -653, 313, 737, 1019,
1432 -653, 856, 547, 548, 210, 739, 749, 472, 349, 217,
1433 81, 82, 140, 266, 399, 85, 86, 509, 350, 1033,
1434 957, 123, 351, 826, 299, 827, -420, 683, -420, 1034,
1435 217, 217, 501, 502, -649, 299, -420, 217, -649, 122,
1436 575, 81, 82, 140, 946, -699, 85, 86, 562, 122,
1437 421, 1033, -642, 405, 123, 954, -642, 597, 206, 562,
1438 122, 1034, 122, -703, 453, 405, 1169, 396, 397, 622,
1439 122, 444, 316, 122, 287, 288, 289, 122, 319, 238,
1440 238, 390, 391, 326, -700, 636, 1067, 315, 1067, 637,
1441 319, 399, -705, -705, 527, 528, 529, -705, -705, 334,
1442 747, 398, 405, 748, 241, 217, 653, 400, 283, 241,
1443 1129, 241, 1130, 401, 122, 122, 421, 1015, 409, 405,
1444 1016, 101, 711, 489, 241, 408, 1004, 1005, 580, 1131,
1445 583, 1014, 589, 240, 240, 590, 1169, 720, 455, 721,
1446 596, -526, 101, 407, 101, 211, 414, 1006, 1007, 607,
1447 1012, 1013, 313, 217, 217, 413, 678, 679, 415, 616,
1448 405, 122, 655, -702, 870, 1184, 1129, -643, 1130, 217,
1449 210, -643, 217, 217, 442, 562, 405, 719, 1008, 1009,
1450 1010, 1011, 81, 1035, 1036, 1131, 472, 432, 851, -420,
1451 -420, -420, 416, 562, -420, -420, 390, 391, -420, 626,
1452 -651, -420, 206, -420, -651, 412, 696, 486, 398, 122,
1453 405, 212, 903, 904, 81, 1035, 1036, 123, 872, -604,
1454 446, 448, 450, -604, 417, 745, 315, 746, 250, 251,
1455 252, 253, 254, 255, 256, 257, 258, 259, 703, -701,
1456 744, 1063, 123, 101, 1064, 740, 1082, 1083, 316, 1084,
1457 217, 217, 392, 393, 769, -646, 1086, 668, 422, -646,
1458 442, 743, 217, 217, 741, 217, 1040, 394, 395, 279,
1459 -603, 392, 393, 284, -603, 286, 596, 290, -276, 122,
1460 454, 122, 292, 690, 691, 692, 394, 395, 901, 902,
1461 211, 313, 217, 742, 308, -276, 309, 595, 319, 122,
1462 594, 456, 122, 122, 217, 428, 1043, 266, 1078, 319,
1463 1096, 442, 241, 241, 210, 769, 385, 386, 387, 1044,
1464 854, 717, 718, -627, 429, 1044, 299, -627, 299, 1045,
1465 909, 910, 1141, -602, 211, 1045, 405, -602, 373, 851,
1466 919, 433, 211, 434, 3, -276, 211, 454, 436, 211,
1467 980, 504, 806, 552, 405, 3, 212, 440, 978, 507,
1468 813, 508, 815, -472, 454, 459, 455, 461, -420, -420,
1469 -420, 1097, 123, -420, -420, 834, 835, 464, 211, 463,
1470 839, 1109, 587, -636, 616, 852, 405, -636, -647, 485,
1471 982, 266, -647, 123, 1108, 123, 385, 386, 387, 469,
1472 212, 1134, 217, 316, 392, 393, 613, 299, 212, 479,
1473 618, 490, 212, -644, -276, 212, 454, -644, 1151, 394,
1474 395, 487, 122, 491, 3, 217, 439, 122, 492, 940,
1475 217, 1234, 940, 570, 217, 873, 874, 875, 876, 877,
1476 878, -621, 390, 391, 212, -621, 495, 639, 640, 369,
1477 496, 370, 505, -420, 122, -626, 1179, 266, 497, -626,
1478 1064, 460, 122, -625, 462, -624, 1245, -625, 498, -624,
1479 -420, 854, 470, 371, 372, 473, -623, 1199, 1046, 1047,
1480 -623, 499, 81, 1048, 1046, 1047, 1049, 937, 81, 1048,
1481 905, 906, 1049, 556, 123, 3, -622, 81, 82, 140,
1482 -622, 570, 85, 86, 101, 907, 908, -638, 81, 82,
1483 140, -638, -619, 85, 86, 970, -619, -620, 388, 389,
1484 454, -620, 947, 679, 1041, 81, 82, 140, 3, -616,
1485 85, 86, 1060, -616, 557, 969, 852, 217, 596, 1073,
1486 1074, 472, 316, 329, 211, 559, 81, 82, 140, 295,
1487 570, 85, 86, 560, 156, 157, 158, 159, 160, 161,
1488 -420, 683, -420, 940, 564, 940, 940, 940, 570, 666,
1489 -420, -617, 162, 163, 164, -617, -608, 81, 82, 140,
1490 -608, 1160, 85, 86, 561, 578, -611, 579, 122, 122,
1491 -611, -639, 405, 1163, 473, -639, 165, 1218, 1175, 576,
1492 1176, 636, 388, 389, 581, 1089, 584, 1001, 1002, 1003,
1493 212, -631, 587, 266, 587, -631, 1178, 1177, 1200, 577,
1494 769, 1064, 1065, 604, -632, 833, -633, 609, -632, 1072,
1495 -633, 1101, 841, 1041, 1041, 618, 123, -629, 291, -612,
1496 174, -629, 1115, -612, 1060, 1060, 666, 723, 81, 82,
1497 140, 593, 1100, 85, 86, 318, -610, -276, -614, 666,
1498 -610, 1115, -614, 197, 1181, 1182, 122, 1144, 318, 318,
1499 318, 318, 318, 318, 217, 343, 344, 582, 3, 122,
1500 575, 81, 82, 140, 122, 319, 85, 86, 211, 588,
1501 -615, 940, 1087, 940, -615, 608, 1153, -613, 605, 1240,
1502 857, -613, 898, 899, 900, 1041, 122, 122, 1041, 606,
1503 1115, 1115, 81, 296, 297, 614, 177, 281, 282, 1060,
1504 319, 1060, 619, 615, 1060, 882, 405, 883, 1060, -420,
1505 122, 122, 623, 1060, 624, 628, 1201, 629, 632, 122,
1506 634, 199, 229, 229, 635, 1138, -420, 652, 101, 884,
1507 885, 684, 657, 122, 212, 123, 656, 672, 833, 659,
1508 955, 852, 669, 833, 1155, 674, 473, 833, 675, 1033,
1509 442, 677, 1166, 1161, 1162, 1041, 122, 122, 1115, 1034,
1510 1125, 1126, 1127, 1060, 298, 710, 680, 123, 682, 688,
1511 689, 699, 701, 704, 625, 977, 713, 714, 808, 202,
1512 235, 235, 804, 122, 1144, 811, 330, 818, 332, 772,
1513 819, 836, 860, 576, 858, 771, 1198, 1033, 862, 838,
1514 1219, 101, 881, 1202, 1204, 863, -635, 1034, 1060, 864,
1515 -635, 81, 82, 140, 868, 852, 85, 86, 598, 385,
1516 386, 387, 869, 911, 913, 912, 914, 822, 917, 920,
1517 926, 927, 197, 928, 948, 931, 949, 934, 951, 959,
1518 197, 1224, 961, 965, 197, 968, 975, 197, 979, 981,
1519 833, 1020, 983, 1021, 177, 418, 1023, 1081, 1085, 1075,
1520 1088, 1232, 1233, 1140, 1121, 101, 199, 1133, 1237, 1158,
1521 1152, 1180, 1196, 1178, 1203, 886, 197, 318, 318, 318,
1522 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
1523 318, 318, 318, 1206, 1207, 1209, 203, 236, 236, 1211,
1524 1217, 1091, 1092, 1212, 1215, 1225, 204, 237, 237, 1228,
1525 199, 1229, 81, 1035, 1036, 1231, 177, 1236, 199, 1241,
1526 1238, 1239, 199, 1242, 202, 199, 1248, 318, 451, 1249,
1527 929, 930, 260, 229, 471, 1189, 1051, 1243, 229, 1230,
1528 229, 1102, 1095, 214, 243, 243, 318, 824, 1164, 1220,
1529 1136, 986, 950, 229, 199, 480, 481, 482, 483, 958,
1530 81, 1035, 1036, 933, 177, 671, 1235, 816, 202, 850,
1531 814, 971, 457, 245, 962, 451, 202, 293, 431, 123,
1532 202, 500, 318, 202, 1214, 633, 451, 833, 553, 859,
1533 374, 235, 123, 318, 974, 866, 235, 1157, 235, 1094,
1534 973, 0, 0, 513, 0, 0, 0, 0, 0, 0,
1535 0, 235, 202, 0, 0, 0, 0, 0, 0, 1170,
1536 1171, 0, 0, 0, 494, 375, 376, 377, 378, 379,
1537 380, 381, 382, 383, 384, 318, 0, 318, 0, 645,
1538 647, 203, 197, 1194, 1195, 0, 0, 0, 512, 0,
1539 558, 204, 123, 516, 517, 518, 519, 520, 521, 522,
1540 523, 524, 525, 526, 0, 0, 123, 0, 0, 0,
1541 0, 0, 0, 0, 0, 0, 0, 0, 1066, 0,
1542 0, 0, 0, 0, 546, 203, 0, 318, 214, 1221,
1543 1222, 0, 0, 203, 0, 204, 0, 203, 0, 318,
1544 203, 0, 0, 204, 0, 0, 1079, 204, 236, 0,
1545 204, 0, 0, 236, 0, 236, 123, 0, 237, 0,
1546 199, 0, 0, 237, 0, 237, 0, 0, 236, 203,
1547 887, 0, 214, 0, 0, 0, 0, 0, 237, 204,
1548 214, 229, 229, 0, 214, 0, 738, 214, 0, 0,
1549 0, 0, 0, 0, 0, 243, 0, 0, 0, 0,
1550 243, 0, 243, 0, 0, 888, 889, 890, 891, 892,
1551 893, 894, 895, 896, 897, 243, 214, 642, 202, 0,
1552 825, 1149, 0, 0, 0, 295, 197, 826, 0, 827,
1553 156, 157, 158, 159, 160, 161, 0, 0, 0, 235,
1554 235, 0, 1139, 0, 0, 0, 0, 738, 162, 163,
1555 164, 0, 0, 0, 0, 0, 0, 0, 318, 318,
1556 318, 318, 318, 318, 879, 880, 0, 0, 0, 216,
1557 244, 244, 165, 23, 24, 25, 26, 0, 27, 0,
1558 0, 0, 0, 32, 33, 0, 0, 36, 37, 0,
1559 39, 40, 41, 42, 0, 0, 483, 0, 0, 0,
1560 772, 773, 774, 775, 199, 54, 55, 776, 777, 778,
1561 779, 780, 781, 782, 0, 0, 174, 451, 0, 451,
1562 0, 1205, 0, 0, 0, 724, 0, 0, 0, 770,
1563 0, 80, 0, 0, 0, 203, 0, 0, 0, 0,
1564 0, 84, 0, 0, 707, 204, 0, 318, 0, 0,
1565 0, 0, 0, 0, 0, 716, 236, 236, 318, 0,
1566 0, 0, 202, 0, 0, 0, 237, 237, 0, 0,
1567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1568 0, 0, 214, 0, 0, 0, 0, 865, 81, 175,
1569 176, 0, 177, 85, 86, 0, 0, 0, 871, 318,
1570 0, 0, 0, 243, 243, 0, 0, 0, 0, 0,
1571 0, 828, 0, 1244, 216, 0, 0, 0, 0, 0,
1572 0, 0, 0, 0, 0, 707, 0, 0, 0, 0,
1573 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
1574 318, 318, 318, 318, 318, 318, 318, 0, 318, 0,
1575 0, 0, 0, 0, 0, 0, 0, 0, 216, 0,
1576 0, 0, 0, 0, 0, 0, 216, 0, 0, 0,
1577 216, 0, 0, 216, 0, 0, 0, 0, 0, 203,
1578 0, 244, 0, 0, 0, 0, 244, 0, 244, 204,
1579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1580 0, 244, 216, 0, 0, 0, 0, 825, 0, 0,
1581 0, 0, 295, 0, 826, 318, 827, 156, 157, 158,
1582 159, 160, 161, 0, 0, 0, 214, 0, 0, 0,
1583 0, 0, 0, 0, 0, 162, 163, 164, 0, 0,
1584 0, 0, 0, 0, 828, 0, 0, 0, 0, 828,
1585 0, 0, 738, 828, 0, 0, 987, 0, 0, 165,
1586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1587 0, 0, 0, 0, 0, 0, 0, 0, 0, 707,
1588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1590 984, 512, 0, 174, 0, 0, 990, 991, 992, 993,
1591 994, 995, 996, 997, 998, 999, 1000, -256, 0, 0,
1592 0, 0, 0, 295, 0, 0, 0, 0, 156, 157,
1593 158, 159, 160, 161, 0, 0, 0, 0, 0, 0,
1594 0, 0, 0, 0, 0, 483, 162, 163, 164, 0,
1595 0, 0, 0, 0, 0, 0, 828, 0, 0, 0,
1596 0, 0, 0, 0, 0, 0, 0, 0, 216, 0,
1597 165, 0, 0, 0, 0, 81, 175, 176, 0, 177,
1598 85, 86, 0, 0, 0, 0, 0, 0, 0, 244,
1599 244, 1093, 0, 0, 0, 0, 0, 0, 0, 0,
1600 0, 0, 0, -1, 1, 0, 0, 0, 0, 0,
1601 0, 0, 0, 0, 174, 0, 0, 0, 0, 0,
1602 0, 2, 0, 0, 0, 0, 0, -276, 0, 0,
1603 0, 0, 0, 0, 318, 0, 0, 3, 0, 0,
1604 0, 0, 0, 0, 0, 0, 0, 4, 318, 5,
1605 0, 0, 0, 0, 0, 0, 1156, 0, 0, 0,
1606 0, 0, 0, 0, 0, 0, 0, 0, 0, 318,
1607 0, -420, -420, -420, 0, 6, 0, 0, 0, 0,
1608 7, 8, 9, 0, 0, 0, 81, 296, 297, 0,
1609 177, 0, 0, 828, 0, 10, 11, 12, 0, 0,
1610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1611 0, 0, 216, 0, 13, 14, 15, 16, 0, 17,
1612 18, 19, 20, 21, 22, 23, 24, 25, 26, 0,
1613 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1614 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1615 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1616 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1617 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1618 77, 78, 79, 80, -2, 1, 0, 0, 0, 0,
1619 81, 82, 83, 84, 0, 85, 86, 87, 0, 0,
1620 0, 0, 2, 0, 0, 0, 0, 0, -276, 0,
1621 0, 0, 0, 0, 0, 0, 0, 0, 3, 0,
1622 0, 0, 0, 0, 0, 0, 0, 0, 4, 0,
1623 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1625 0, 0, -420, -420, -420, 0, 6, 0, 0, 0,
1626 0, 7, 8, 9, 0, 0, 0, 0, 0, 0,
1627 0, 0, 0, 0, 0, 0, 10, 11, 12, 0,
1628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1629 0, 0, 0, 0, 0, 13, 14, 15, 16, 0,
1630 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1631 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1632 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1633 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1634 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1635 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1636 76, 77, 78, 79, 80, 0, 0, 0, 0, 0,
1637 0, 81, 82, 83, 84, 142, 85, 86, 87, 0,
1638 143, 144, 145, 0, 146, 147, 148, 149, 150, 151,
1639 152, 153, 154, -554, 550, 0, 0, 0, 155, 0,
1640 0, 0, 0, 156, 157, 158, 159, 160, 161, 0,
1641 0, 0, 0, 0, 0, 0, -276, -276, 4, 0,
1642 5, 162, 163, 164, 0, 0, 0, 0, 0, 0,
1643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1644 0, 0, -420, -420, -420, 165, 6, 0, 0, 0,
1645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1647 167, 168, 169, 170, 171, 172, 0, 0, 0, 0,
1648 0, 0, 0, 0, 173, 13, 14, 15, 16, 174,
1649 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1650 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1651 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1652 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1653 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1654 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1655 76, 77, 78, 79, 80, 0, 0, 0, 0, 0,
1656 0, 81, 175, 551, 84, 177, 178, 86, 87, 142,
1657 0, 0, 0, 0, 143, 144, 145, 0, 146, 147,
1658 148, 149, 150, 151, 152, 153, 154, -171, 0, 0,
1659 0, 0, 155, 0, 0, 0, 0, 156, 157, 158,
1660 159, 160, 161, 0, 0, 0, 0, 0, 0, 0,
1661 -276, -276, -276, 0, 0, 162, 163, 164, 0, 0,
1662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1663 0, 0, 0, 0, 0, 0, -276, -276, -276, 165,
1664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666 0, 0, 0, 0, 167, 168, 169, 170, 171, 172,
1667 0, 0, 0, 0, 0, 0, 0, 0, 173, -276,
1668 -276, -276, -276, 174, -276, -276, -276, -276, -276, -276,
1669 -276, -276, -276, -276, 0, -276, -276, -276, -276, -276,
1670 -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1671 -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1672 -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1673 -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1674 -276, -276, -276, -276, -276, -276, -276, -276, -276, 0,
1675 0, 0, 0, 0, 0, 81, 175, 176, -276, 177,
1676 178, 86, -276, 219, 0, 0, 0, 0, 143, 144,
1677 145, 0, 0, 220, 148, 149, 150, 151, 152, 153,
1678 221, -171, -558, 0, 0, 0, 222, 0, 0, 0,
1679 0, 156, 157, 158, 159, 160, 161, 0, 0, 0,
1680 0, 0, 0, 0, -276, -276, -276, 0, 0, 162,
1681 163, 164, 0, 0, 0, 0, 0, 0, 0, 0,
1682 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1683 -276, -276, -276, 165, 0, 0, 0, 0, 0, 0,
1684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1685 0, 0, 0, 0, 0, 0, 0, 0, 167, 168,
1686 169, 170, 171, 172, 0, 0, 0, 0, 0, 0,
1687 0, 0, 173, -276, -276, -276, -276, 174, -276, -276,
1688 -276, -276, -276, -276, -276, -276, -276, -276, 0, -276,
1689 -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1690 -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1691 -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1692 -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1693 -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1694 -276, -276, -276, 0, 0, 0, 0, 0, 0, 81,
1695 175, 176, -276, 177, 223, 224, -276, -169, 0, 0,
1696 0, 0, -169, -169, -169, 0, -169, -169, -169, -169,
1697 -169, -169, -169, -169, -169, -169, -169, -169, -703, -169,
1698 -169, 0, -169, 0, -169, -169, -169, -169, -169, -169,
1699 -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
1700 0, -169, 0, -169, -169, -169, -169, -169, -169, -169,
1701 -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
1702 -169, -169, -169, -169, 0, 0, 0, -169, 0, 0,
1703 0, 0, 0, 0, 0, 706, -697, 0, 0, 0,
1704 295, 0, 0, 0, 0, 156, 157, 158, 159, 160,
1705 161, 0, -169, -169, -169, -169, -169, -169, 0, 0,
1706 0, 0, 219, 162, 163, 164, -169, 143, 144, 145,
1707 0, -169, 220, 148, 149, 150, 151, 152, 153, 221,
1708 -499, -499, 0, 0, 0, 222, -499, 165, 0, 0,
1709 156, 157, 158, 159, 160, 161, 0, 0, 0, 0,
1710 0, 0, 0, -276, -276, 0, 0, 0, 162, 163,
1711 164, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1713 0, 174, 165, 0, 0, 0, 0, 0, 0, 0,
1714 0, 0, 0, -169, -169, -169, 0, -169, -169, -169,
1715 0, 0, 0, 0, 0, 0, -499, 167, 168, 169,
1716 170, 171, 172, 0, 0, 0, 0, 0, 142, 0,
1717 0, 173, 0, 143, 144, 145, 174, 146, 147, 148,
1718 149, 150, 151, 152, 153, 154, -554, 0, 0, 0,
1719 0, 155, 0, 0, 0, 0, 156, 157, 158, 159,
1720 160, 161, 0, 81, 296, 297, 0, 177, 0, -276,
1721 -276, 0, 0, 0, 162, 163, 164, 0, 0, 0,
1722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1723 0, 0, 0, 0, 0, 0, 0, 0, 165, 0,
1724 0, 0, 0, 0, 0, 0, 0, 0, 81, 175,
1725 176, 0, 177, 223, 224, 0, 0, 0, 0, 0,
1726 0, 0, 166, 167, 168, 169, 170, 171, 172, 0,
1727 0, 0, 0, 0, 142, 0, 0, 173, 0, 143,
1728 144, 145, 174, 146, 147, 148, 149, 150, 151, 152,
1729 153, 154, -554, 0, 0, 0, 0, 155, 0, 0,
1730 0, 0, 156, 157, 158, 159, 160, 161, 0, 0,
1731 0, 0, 0, 0, 0, -276, -276, 0, 0, 0,
1732 162, 163, 164, 0, 0, 0, 0, 0, 0, 0,
1733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1734 0, 0, 0, 0, 165, 0, 0, 0, 0, 0,
1735 0, 0, -171, 0, 81, 175, 176, 295, 177, 178,
1736 86, 0, 156, 157, 158, 159, 160, 161, -527, 167,
1737 168, 169, 170, 171, 172, 0, 0, 0, 0, 219,
1738 162, 163, 164, 173, 143, 144, 145, 0, 174, 220,
1739 148, 149, 150, 151, 152, 153, 221, -554, -558, 0,
1740 0, 0, 222, 0, 165, 0, 0, 156, 157, 158,
1741 159, 160, 161, 0, 0, 0, 0, 0, 0, 0,
1742 -276, -276, 0, 0, 0, 162, 163, 164, 0, 0,
1743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1744 0, 0, 0, 0, 0, 0, 0, 0, 174, 165,
1745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746 81, 175, 176, 0, 177, 178, 86, 0, 0, 0,
1747 0, 0, 0, -495, 167, 168, 169, 170, 171, 172,
1748 0, 0, 0, 0, 0, 142, 0, 0, 173, 0,
1749 143, 144, 145, 174, 146, 147, 148, 149, 150, 151,
1750 152, 153, 154, -554, 648, 0, 0, 0, 155, 0,
1751 0, 0, 0, 156, 157, 158, 159, 160, 161, 0,
1752 81, 296, 297, 0, 177, 0, -276, -276, 0, 0,
1753 0, 162, 163, 164, 0, 0, 0, 0, 0, 0,
1754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755 0, 0, 0, 0, 0, 165, 0, 0, 0, 0,
1756 0, 0, 0, -171, 0, 81, 175, 176, 353, 177,
1757 223, 224, 0, 156, 157, 158, 159, 160, 161, 0,
1758 167, 168, 169, 170, 171, 172, 0, 0, 0, 0,
1759 219, 162, 163, 164, 173, 143, 144, 145, 0, 174,
1760 220, 148, 149, 150, 151, 152, 153, 221, -554, -558,
1761 0, 0, 0, 222, 0, 165, 0, 0, 156, 157,
1762 158, 159, 160, 161, 0, 0, 0, 0, 0, 0,
1763 0, -276, -276, 0, 0, 0, 162, 163, 164, 0,
1764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1765 0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
1766 165, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1767 0, 81, 175, 176, 0, 177, 178, 86, 0, 0,
1768 0, 0, 0, 0, 0, 167, 168, 169, 170, 171,
1769 172, 0, 0, 0, 0, 0, 142, 0, 0, 173,
1770 0, 143, 144, 145, 174, 146, 147, 148, 149, 150,
1771 151, 152, 153, 154, -554, 0, 0, 0, 0, 155,
1772 0, 0, 0, 0, 156, 157, 158, 159, 160, 161,
1773 0, 81, 296, 297, 0, 177, 0, -276, -276, 0,
1774 0, 0, 162, 163, 164, 0, 0, 0, 0, 0,
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1776 0, 0, 0, 0, 0, 0, 165, 0, 0, 0,
1777 0, 0, 0, 0, 0, 0, 81, 175, 176, 0,
1778 177, 223, 224, 0, 0, 0, 0, 0, 0, 0,
1779 0, 167, 168, 169, 170, 171, 172, 0, 0, 0,
1780 0, 0, 0, 0, 0, 173, 0, 143, 144, 145,
1781 174, 146, 147, 148, 149, 150, 151, 152, 153, 221,
1782 -554, 568, 0, 0, 0, 353, 0, 0, 0, 0,
1783 156, 157, 158, 159, 160, 161, 0, 0, 0, 0,
1784 0, 0, 0, -276, -276, 4, 0, 5, 162, 163,
1785 164, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1787 0, 0, 165, 6, 0, 0, 0, 0, 0, 0,
1788 0, 0, 81, 175, 176, 0, 177, 178, 86, 0,
1789 0, 0, 0, 0, 0, 0, 0, 167, 168, 169,
1790 170, 171, 172, 0, 0, 0, 0, 0, 0, 0,
1791 0, 569, 13, 14, 15, 16, 174, 17, 18, 19,
1792 20, 21, 22, 23, 24, 25, 26, 0, 27, 28,
1793 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1794 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1795 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1796 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1797 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1798 79, 80, 0, 0, 0, 0, 0, 0, 81, 175,
1799 551, 84, 177, 178, 86, 87, 143, 144, 145, 0,
1800 146, 147, 148, 149, 150, 151, 152, 153, 221, -554,
1801 649, 0, 0, 0, 353, 0, 0, 0, 0, 156,
1802 157, 158, 159, 160, 161, 0, 0, 0, 0, 0,
1803 0, 0, -276, -276, 4, 0, 5, 162, 163, 164,
1804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1806 0, 165, 6, 0, 0, 0, 0, 0, 0, 0,
1807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1808 0, 0, 0, 0, 0, 0, 167, 168, 169, 170,
1809 171, 172, 0, 0, 0, 0, 0, 0, 0, 0,
1810 173, 13, 14, 15, 16, 174, 17, 18, 19, 20,
1811 21, 22, 23, 24, 25, 26, 0, 27, 28, 29,
1812 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1813 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1814 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1815 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1816 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1817 80, 0, 0, 0, 0, 0, 0, 81, 175, 551,
1818 84, 177, 178, 86, 87, 143, 144, 145, 0, 146,
1819 147, 148, 149, 150, 151, 152, 153, 221, -554, 661,
1820 0, 0, 0, 353, 0, 0, 0, 0, 156, 157,
1821 158, 159, 160, 161, 0, 0, 0, 0, 0, 0,
1822 0, -276, -276, 4, 0, 5, 162, 163, 164, 0,
1823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1825 165, 6, 0, 0, 0, 0, 0, 0, 0, 0,
1826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1827 0, 0, 0, 0, 0, 167, 168, 169, 170, 171,
1828 172, 0, 0, 0, 0, 0, 0, 0, 0, 662,
1829 13, 14, 15, 16, 174, 17, 18, 19, 20, 21,
1830 22, 23, 24, 25, 26, 0, 27, 28, 29, 30,
1831 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1832 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1833 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1834 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1835 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1836 0, 0, 0, 0, 0, 0, 81, 175, 551, 84,
1837 177, 178, 86, 87, 143, 144, 145, 0, 146, 147,
1838 148, 149, 150, 151, 152, 153, 221, -554, 660, 0,
1839 0, 0, 353, 0, 0, 0, 0, 156, 157, 158,
1840 159, 160, 161, 0, 0, 0, 0, 0, 0, 0,
1841 0, 0, 0, 0, 0, 162, 163, 164, 0, 143,
1842 144, 145, 0, 146, 147, 148, 149, 150, 151, 152,
1843 153, 221, -554, 664, 0, 0, 0, 353, 0, 165,
1844 0, 0, 156, 157, 158, 159, 160, 161, 0, 0,
1845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1846 162, 163, 164, 0, 167, 168, 169, 170, 171, 172,
1847 0, 0, 0, 0, 0, 0, 0, 0, 173, 0,
1848 0, 0, 0, 174, 165, 0, 0, 0, 0, 0,
1849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 0, 0, 0, 0, 0, 0, 0, 0, 167,
1851 168, 169, 170, 171, 172, 0, 0, 0, 0, 0,
1852 0, 0, 0, 665, 0, 143, 144, 145, 174, 146,
1853 147, 148, 149, 150, 151, 152, 153, 221, -554, 722,
1854 0, 0, 0, 353, 0, 0, 0, 0, 156, 157,
1855 158, 159, 160, 161, 0, 81, 175, 176, 0, 177,
1856 178, 86, 0, 0, 0, 0, 162, 163, 164, 0,
1857 143, 144, 145, 0, 146, 147, 148, 149, 150, 151,
1858 152, 153, 221, -554, 800, 0, 0, 0, 353, 0,
1859 165, 0, 0, 156, 157, 158, 159, 160, 161, 0,
1860 81, 175, 176, 0, 177, 178, 86, 0, 0, 0,
1861 0, 162, 163, 164, 0, 167, 168, 169, 170, 171,
1862 172, 0, 0, 0, 0, 0, 0, 0, 0, 173,
1863 0, 0, 0, 0, 174, 165, 0, 0, 0, 0,
1864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1866 167, 168, 169, 170, 171, 172, 0, 0, 0, 0,
1867 0, 0, 0, 0, 173, 0, 143, 144, 145, 174,
1868 146, 147, 148, 149, 150, 151, 152, 153, 221, -554,
1869 801, 0, 0, 0, 353, 0, 0, 0, 0, 156,
1870 157, 158, 159, 160, 161, 0, 81, 175, 176, 0,
1871 177, 178, 86, 0, 0, 0, 0, 162, 163, 164,
1872 0, 143, 144, 145, 0, 146, 147, 148, 149, 150,
1873 151, 152, 153, 221, -554, 803, 0, 0, 0, 353,
1874 0, 165, 0, 0, 156, 157, 158, 159, 160, 161,
1875 0, 81, 175, 176, 0, 177, 178, 86, 0, 0,
1876 0, 0, 162, 163, 164, 0, 167, 168, 169, 170,
1877 171, 172, 0, 0, 0, 0, 0, 0, 0, 0,
1878 802, 0, 0, 0, 0, 174, 165, 0, 0, 0,
1879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1881 0, 167, 168, 169, 170, 171, 172, 0, 0, 0,
1882 0, 0, 0, 0, 0, 173, 0, 143, 144, 145,
1883 174, 146, 147, 148, 149, 150, 151, 152, 153, 221,
1884 -554, 936, 0, 0, 0, 353, 0, 0, 0, 0,
1885 156, 157, 158, 159, 160, 161, 0, 81, 175, 176,
1886 0, 177, 178, 86, 0, 0, 0, 0, 162, 163,
1887 164, 0, 143, 144, 145, 0, 146, 147, 148, 149,
1888 150, 151, 152, 153, 221, -554, 0, 0, 0, 0,
1889 353, 0, 165, 0, 0, 156, 157, 158, 159, 160,
1890 161, 0, 81, 175, 176, 0, 177, 178, 86, 0,
1891 0, 0, 0, 162, 163, 164, 0, 167, 168, 169,
1892 170, 171, 172, 0, 0, 0, 0, 0, 0, 0,
1893 0, 173, 0, 0, 0, 0, 174, 165, 0, 0,
1894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1896 0, 0, 167, 168, 169, 170, 171, 172, -135, 0,
1897 0, 0, 0, -135, 0, 0, 173, 0, 0, 0,
1898 0, 174, 0, 0, 0, 0, 0, 0, 0, 0,
1899 0, 0, 0, 4, 0, 5, 0, 0, 0, 0,
1900 0, 0, 0, 0, 0, 0, 0, 0, 81, 175,
1901 176, 0, 177, 178, 86, 0, 0, 0, 0, 0,
1902 0, 6, 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, 0, 0,
1905 0, 0, 0, 81, 175, 176, 0, 177, 178, 86,
1906 13, 14, 15, 16, 0, 17, 18, 19, 20, 21,
1907 22, 23, 24, 25, 26, 0, 27, 28, 29, 30,
1908 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1909 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1910 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1911 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1912 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1913 -557, 0, 0, 0, 0, 0, 0, 0, 137, 84,
1914 0, 0, 0, 87, 0, 0, 0, 0, 0, 0,
1915 0, 0, 0, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1922 0, 13, 14, 15, 16, 0, 17, 18, 19, 20,
1923 21, 22, 23, 24, 25, 26, 0, 27, 28, 29,
1924 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1925 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1926 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1927 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1928 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1929 80, 0, 0, 0, 0, 0, 625, 0, 0, 137,
1930 84, 295, 0, 0, 87, 0, 156, 157, 158, 159,
1931 160, 161, 0, 0, 0, 0, 0, 706, 0, 0,
1932 0, 0, 295, 0, 162, 163, 164, 156, 157, 158,
1933 159, 160, 161, 0, 0, 0, 0, 0, 0, 0,
1934 0, 0, 0, 0, 0, 162, 163, 164, 165, 0,
1935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1936 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
1937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1939 0, 0, 174, 0, 0, 0, 0, 0, 0, 0,
1940 0, 0, 0, 0, -276, 0, 0, 0, 0, 0,
1941 0, 0, 0, 174, 3, 0, 0, 0, 0, 0,
1942 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
1943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1944 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1945 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1946 0, 0, 0, 0, 81, 296, 297, 0, 177, 0,
1947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1948 0, 0, 0, 0, 0, 81, 296, 297, 0, 177,
1949 0, 13, 14, 15, 16, 0, 17, 18, 19, 20,
1950 21, 22, 23, 24, 25, 26, 0, 27, 28, 29,
1951 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1952 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1953 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1954 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1955 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1956 80, 0, 0, 0, 0, 0, 0, 81, 82, 83,
1957 84, 0, 85, 86, 87, 295, 510, 0, 0, 0,
1958 156, 157, 158, 159, 160, 161, 295, 0, 0, 591,
1959 0, 156, 157, 158, 159, 160, 161, 0, 162, 163,
1960 164, 0, 0, 0, 0, 0, 0, 295, 985, 162,
1961 163, 164, 156, 157, 158, 159, 160, 161, 295, 0,
1962 0, 686, 165, 156, 157, 158, 159, 160, 161, 0,
1963 162, 163, 164, 165, 0, 0, 0, 0, 0, 295,
1964 -256, 162, 163, 164, 156, 157, 158, 159, 160, 161,
1965 295, 0, 0, 0, 165, 156, 157, 158, 159, 160,
1966 161, 0, 162, 163, 164, 165, 174, 0, 0, 0,
1967 0, 0, 0, 162, 163, 164, 0, 174, 0, 0,
1968 0, 0, 342, 0, 0, 0, 165, 156, 157, 158,
1969 159, 160, 161, 0, 0, 0, 0, 165, 174, 0,
1970 0, 0, 0, 0, 0, 162, 163, 164, 644, 174,
1971 0, 0, 0, 156, 157, 158, 159, 160, 161, 0,
1972 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
1973 174, 162, 163, 164, 0, 0, 0, 0, 81, 296,
1974 297, 174, 177, 0, 0, 0, 0, 0, 0, 81,
1975 296, 297, 0, 177, 0, 165, 0, 0, 0, 0,
1976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1977 81, 296, 297, 174, 177, 0, 0, 0, 0, 0,
1978 0, 81, 296, 297, 0, 177, 646, 0, 0, 0,
1979 0, 156, 157, 158, 159, 160, 161, 0, 0, 174,
1980 0, 0, 81, 296, 297, 0, 177, 0, 0, 162,
1981 163, 164, 0, 81, 296, 297, 725, 177, 0, 0,
1982 0, 726, 727, 728, 729, 730, 731, 0, 0, 0,
1983 0, 0, 0, 165, 0, 0, 0, 0, 0, 162,
1984 732, 733, 0, 0, 0, 81, 296, 297, 0, 177,
1985 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1986 0, 0, 0, 734, 0, 0, 0, 0, 0, 0,
1987 0, 81, 296, 297, 0, 177, 0, 174, 0, 0,
1988 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1990 0, 0, 0, 0, 0, 0, 0, 174, 0, 0,
1991 0, 0, 0, 0, 0, -200, -200, 4, 0, 0,
1992 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1993 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1994 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,
1995 296, 297, 0, 177, 0, 0, 0, 0, 0, 0,
1996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1997 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,
1998 735, 736, 0, 177, 13, 14, 15, 16, 0, 17,
1999 18, 19, 20, 21, 22, 23, 24, 25, 26, 0,
2000 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
2001 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2002 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2003 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
2004 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
2005 77, 78, 79, 80, 4, 0, 5, 0, 0, 0,
2006 0, 0, 137, 84, 0, 0, 0, 87, 0, 0,
2007 0, 0, 0, 0, 0, 0, 0, 0, -420, -420,
2008 -420, 0, 6, 0, 0, 0, 0, 0, 0, 0,
2009 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2010 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2011 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2012 0, 13, 14, 15, 16, 0, 17, 18, 19, 20,
2013 21, 22, 23, 24, 25, 26, 0, 27, 28, 29,
2014 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2015 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2016 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2017 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2018 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2019 80, 4, 0, 5, 0, 0, 0, 0, 0, 137,
2020 84, 0, 0, 0, 87, 0, 0, 0, 0, 0,
2021 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
2022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2024 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2025 0, 0, 0, 0, 0, 0, 0, 0, 13, 14,
2026 15, 16, 0, 17, 18, 19, 20, 21, 22, 23,
2027 24, 25, 26, 0, 27, 28, 29, 30, 31, 32,
2028 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
2029 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2030 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2031 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
2032 73, 74, 75, 76, 77, 78, 79, 80, 4, 0,
2033 0, 0, 0, 0, 81, 1098, 137, 84, 0, 0,
2034 0, 87, 0, 0, 0, 0, 0, 0, 0, 0,
2035 0, 0, -420, -420, -420, 0, 0, 0, 0, 0,
2036 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2039 0, 0, 0, 0, 0, 13, 14, 15, 16, 0,
2040 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2041 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2042 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2043 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2044 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
2045 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2046 76, 77, 78, 79, 80, 4, 0, 0, 0, 0,
2047 0, 0, 0, 137, 84, 0, 0, 0, 87, 0,
2048 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2050 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2051 0, 0, 0, 10, 11, 12, 0, 0, 0, 0,
2052 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2053 0, 0, 13, 14, 15, 16, 0, 17, 18, 19,
2054 20, 21, 22, 23, 24, 25, 26, 0, 27, 28,
2055 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2056 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
2057 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2058 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
2059 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
2060 79, 80, 4, 0, 5, 0, 0, 0, 0, 0,
2061 137, 84, 0, 0, 0, 87, 0, 0, 0, 0,
2062 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2063 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2066 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
2067 14, 15, 16, 0, 17, 18, 19, 20, 21, 22,
2068 23, 24, 25, 26, 0, 27, 28, 29, 30, 31,
2069 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2070 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2071 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
2072 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2073 72, 73, 74, 75, 76, 77, 78, 79, 80, 4,
2074 0, 0, 0, 0, 0, 0, 0, 137, 84, 0,
2075 0, 0, 87, 0, 0, 0, 0, 0, 0, 0,
2076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2078 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2079 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2080 0, 0, 0, 0, 0, 0, 13, 14, 15, 16,
2081 0, 17, 18, 19, 20, 21, 22, 23, 24, 25,
2082 26, 0, 27, 28, 29, 30, 31, 32, 33, 34,
2083 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2084 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2085 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2086 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2087 75, 76, 77, 78, 79, 80, 0, 0, 0, 0,
2088 0, 0, 0, 0, 137, 84, 0, 0, 0, 87
2091 static const short yycheck[] =
2093 0, 0, 5, 456, 399, 5, 121, 400, 331, 9,
2094 10, 11, 12, 388, 389, 654, 700, 593, 398, 27,
2095 3, 0, 0, 543, 131, 623, 143, 5, 545, 7,
2096 353, 960, 654, 436, 390, 391, 1044, 396, 397, 654,
2097 654, 312, 924, 470, 222, 932, 56, 233, 825, 227,
2098 21, 229, 310, 830, 25, 658, 5, 834, 24, 10,
2099 11, 12, 784, 554, 435, 392, 393, 394, 395, 28,
2100 34, 89, 90, 810, 837, 24, 715, 799, 0, 265,
2101 843, 572, 0, 454, 658, 34, 45, 5, 88, 88,
2102 26, 5, 658, 715, 24, 13, 14, 15, 34, 19,
2103 715, 715, 120, 121, 34, 658, 1110, 1111, 18, 88,
2104 88, 25, 688, 21, 11, 12, 134, 25, 5, 24,
2105 1128, 121, 22, 658, 102, 1133, 26, 21, 28, 18,
2106 501, 25, 21, 1062, 654, 113, 114, 654, 25, 139,
2107 32, 33, 50, 51, 24, 45, 129, 111, 112, 113,
2108 150, 1033, 1034, 837, 34, 155, 139, 1044, 1045, 843,
2109 937, 139, 28, 676, 487, 5, 88, 18, 41, 18,
2110 88, 10, 23, 173, 1178, 1183, 186, 41, 285, 45,
2111 21, 784, 609, 191, 57, 103, 104, 105, 106, 107,
2112 108, 109, 110, 57, 112, 715, 799, 115, 715, 199,
2113 471, 964, 88, 121, 155, 608, 943, 207, 945, 209,
2114 784, 211, 24, 131, 214, 133, 134, 135, 784, 24,
2115 191, 139, 222, 409, 595, 799, 1108, 227, 5, 229,
2116 24, 784, 1119, 799, 1121, 342, 607, 155, 187, 188,
2117 50, 51, 242, 243, 162, 24, 799, 26, 199, 784,
2118 703, 574, 430, 431, 24, 34, 207, 187, 188, 654,
2119 211, 654, 944, 214, 799, 156, 157, 158, 159, 160,
2120 161, 222, 223, 19, 654, 24, 227, 21, 229, 654,
2121 964, 25, 921, 18, 284, 284, 21, 287, 288, 289,
2122 25, 242, 243, 11, 12, 654, 809, 1074, 654, 812,
2123 187, 188, 189, 18, 222, 192, 193, 187, 188, 309,
2124 309, 25, 26, 21, 28, 315, 155, 300, 435, 27,
2125 715, 299, 715, 21, 24, 222, 26, 654, 21, 27,
2126 227, 45, 229, 0, 27, 715, 18, 454, 5, 34,
2127 715, 1228, 9, 261, 24, 242, 604, 187, 188, 189,
2128 54, 55, 192, 193, 10, 355, 715, 16, 941, 715,
2129 199, 944, 24, 363, 26, 365, 284, 285, 207, 287,
2130 288, 26, 211, 28, 972, 214, 26, 295, 28, 21,
2131 16, 1020, 300, 25, 501, 492, 16, 1069, 715, 1071,
2132 45, 309, 968, 88, 914, 45, 21, 315, 1020, 916,
2133 25, 854, 42, 43, 243, 1020, 1020, 5, 16, 409,
2134 187, 188, 189, 18, 39, 192, 193, 368, 15, 24,
2135 23, 88, 101, 26, 342, 28, 24, 25, 26, 34,
2136 430, 431, 6, 7, 21, 353, 34, 437, 25, 439,
2137 439, 187, 188, 189, 815, 22, 192, 193, 427, 449,
2138 18, 24, 21, 21, 121, 826, 25, 460, 409, 438,
2139 460, 34, 462, 22, 442, 21, 1105, 54, 55, 25,
2140 470, 578, 139, 473, 68, 69, 70, 477, 595, 430,
2141 431, 50, 51, 150, 22, 21, 1069, 470, 1071, 25,
2142 607, 39, 187, 188, 385, 386, 387, 192, 193, 155,
2143 1020, 29, 21, 1020, 222, 505, 25, 40, 426, 227,
2144 26, 229, 28, 56, 514, 515, 18, 912, 19, 21,
2145 913, 439, 629, 25, 242, 95, 901, 902, 446, 45,
2146 448, 911, 450, 430, 431, 453, 1175, 644, 456, 646,
2147 458, 95, 460, 199, 462, 10, 191, 903, 904, 467,
2148 909, 910, 470, 553, 554, 211, 20, 21, 214, 477,
2149 21, 561, 561, 22, 25, 25, 26, 21, 28, 569,
2150 409, 25, 572, 573, 492, 554, 21, 22, 905, 906,
2151 907, 908, 187, 188, 189, 45, 5, 243, 703, 187,
2152 188, 189, 22, 572, 192, 193, 50, 51, 18, 490,
2153 21, 21, 553, 23, 25, 209, 25, 18, 29, 609,
2154 21, 10, 50, 51, 187, 188, 189, 284, 725, 21,
2155 287, 288, 289, 25, 24, 1020, 609, 1020, 70, 71,
2156 72, 73, 74, 75, 76, 77, 78, 79, 616, 22,
2157 1020, 18, 309, 561, 21, 1020, 25, 26, 315, 28,
2158 650, 651, 37, 38, 654, 21, 979, 575, 95, 25,
2159 578, 1020, 662, 663, 1020, 665, 924, 52, 53, 111,
2160 21, 37, 38, 115, 25, 117, 594, 119, 24, 679,
2161 26, 681, 124, 601, 602, 603, 52, 53, 32, 33,
2162 155, 609, 692, 1020, 136, 24, 138, 26, 815, 699,
2163 1153, 684, 702, 703, 704, 19, 5, 18, 966, 826,
2164 21, 629, 430, 431, 553, 715, 34, 35, 36, 24,
2165 703, 639, 640, 21, 20, 24, 644, 25, 646, 34,
2166 54, 55, 22, 21, 199, 34, 21, 25, 180, 854,
2167 25, 95, 207, 27, 34, 24, 211, 26, 24, 214,
2168 867, 355, 670, 409, 21, 34, 155, 18, 25, 363,
2169 678, 365, 680, 25, 26, 25, 684, 18, 187, 188,
2170 189, 1029, 439, 192, 193, 693, 694, 23, 243, 18,
2171 698, 1039, 449, 21, 702, 703, 21, 25, 21, 18,
2172 25, 18, 25, 460, 21, 462, 34, 35, 36, 24,
2173 199, 1059, 802, 470, 37, 38, 473, 725, 207, 22,
2174 477, 25, 211, 21, 24, 214, 26, 25, 1076, 52,
2175 53, 24, 822, 25, 34, 825, 268, 827, 24, 807,
2176 830, 1202, 810, 437, 834, 726, 727, 728, 729, 730,
2177 731, 21, 50, 51, 243, 25, 18, 514, 515, 24,
2178 18, 26, 19, 28, 854, 21, 1114, 18, 18, 25,
2179 21, 303, 862, 21, 306, 21, 1237, 25, 18, 25,
2180 45, 854, 314, 48, 49, 317, 21, 1135, 183, 184,
2181 25, 18, 187, 188, 183, 184, 191, 805, 187, 188,
2182 37, 38, 191, 9, 561, 34, 21, 187, 188, 189,
2183 25, 505, 192, 193, 822, 52, 53, 21, 187, 188,
2184 189, 25, 21, 192, 193, 194, 25, 21, 32, 33,
2185 26, 25, 20, 21, 924, 187, 188, 189, 34, 21,
2186 192, 193, 932, 25, 11, 853, 854, 937, 856, 20,
2187 21, 5, 609, 18, 409, 25, 187, 188, 189, 24,
2188 554, 192, 193, 24, 29, 30, 31, 32, 33, 34,
2189 24, 25, 26, 941, 11, 943, 944, 945, 572, 573,
2190 34, 21, 47, 48, 49, 25, 21, 187, 188, 189,
2191 25, 1088, 192, 193, 426, 21, 21, 19, 988, 989,
2192 25, 21, 21, 22, 436, 25, 71, 25, 26, 441,
2193 28, 21, 32, 33, 446, 25, 448, 898, 899, 900,
2194 409, 21, 679, 18, 681, 25, 21, 45, 18, 91,
2195 1020, 21, 940, 465, 21, 692, 21, 469, 25, 947,
2196 25, 1031, 699, 1033, 1034, 702, 703, 21, 1153, 21,
2197 115, 25, 1042, 25, 1044, 1045, 650, 651, 187, 188,
2198 189, 24, 1031, 192, 193, 143, 21, 19, 21, 663,
2199 25, 1061, 25, 10, 32, 33, 1066, 1066, 156, 157,
2200 158, 159, 160, 161, 1074, 163, 164, 19, 34, 1079,
2201 1079, 187, 188, 189, 1084, 1202, 192, 193, 553, 19,
2202 21, 1069, 983, 1071, 25, 24, 1079, 21, 91, 1216,
2203 704, 25, 34, 35, 36, 1105, 1106, 1107, 1108, 27,
2204 1110, 1111, 187, 188, 189, 25, 191, 113, 114, 1119,
2205 1237, 1121, 22, 21, 1124, 24, 21, 26, 1128, 28,
2206 1130, 1131, 18, 1133, 25, 25, 1139, 21, 25, 1139,
2207 11, 10, 11, 12, 24, 1063, 45, 24, 1066, 48,
2208 49, 593, 27, 1153, 553, 822, 24, 20, 825, 25,
2209 827, 1079, 23, 830, 1082, 19, 608, 834, 20, 24,
2210 1088, 19, 27, 1091, 1092, 1175, 1176, 1177, 1178, 34,
2211 52, 53, 54, 1183, 131, 627, 23, 854, 27, 24,
2212 21, 21, 5, 25, 19, 862, 22, 24, 20, 10,
2213 11, 12, 25, 1203, 1203, 20, 153, 25, 155, 73,
2214 27, 27, 21, 655, 18, 657, 1134, 24, 21, 25,
2215 27, 1139, 24, 1141, 1142, 25, 21, 34, 1228, 22,
2216 25, 187, 188, 189, 25, 1153, 192, 193, 194, 34,
2217 35, 36, 25, 29, 40, 39, 56, 689, 25, 188,
2218 91, 91, 199, 91, 25, 91, 25, 91, 18, 22,
2219 207, 1179, 91, 25, 211, 24, 20, 214, 25, 18,
2220 937, 21, 25, 18, 191, 222, 40, 20, 18, 27,
2221 21, 1199, 1200, 18, 23, 1203, 155, 24, 1206, 193,
2222 91, 22, 22, 21, 21, 737, 243, 385, 386, 387,
2223 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
2224 398, 399, 400, 22, 20, 20, 10, 11, 12, 91,
2225 27, 988, 989, 25, 25, 195, 10, 11, 12, 40,
2226 199, 27, 187, 188, 189, 25, 191, 18, 207, 27,
2227 20, 20, 211, 25, 155, 214, 0, 435, 295, 0,
2228 792, 793, 88, 222, 315, 1124, 932, 1228, 227, 1196,
2229 229, 1032, 1023, 10, 11, 12, 454, 690, 1096, 1175,
2230 1061, 882, 822, 242, 243, 322, 323, 324, 325, 831,
2231 187, 188, 189, 797, 191, 578, 1203, 681, 199, 702,
2232 679, 854, 300, 12, 836, 342, 207, 129, 242, 1066,
2233 211, 351, 490, 214, 1159, 505, 353, 1074, 409, 706,
2234 23, 222, 1079, 501, 860, 715, 227, 1084, 229, 1020,
2235 859, -1, -1, 370, -1, -1, -1, -1, -1, -1,
2236 -1, 242, 243, -1, -1, -1, -1, -1, -1, 1106,
2237 1107, -1, -1, -1, 345, 58, 59, 60, 61, 62,
2238 63, 64, 65, 66, 67, 543, -1, 545, -1, 547,
2239 548, 155, 409, 1130, 1131, -1, -1, -1, 369, -1,
2240 417, 155, 1139, 374, 375, 376, 377, 378, 379, 380,
2241 381, 382, 383, 384, -1, -1, 1153, -1, -1, -1,
2242 -1, -1, -1, -1, -1, -1, -1, -1, 940, -1,
2243 -1, -1, -1, -1, 405, 199, -1, 595, 155, 1176,
2244 1177, -1, -1, 207, -1, 199, -1, 211, -1, 607,
2245 214, -1, -1, 207, -1, -1, 968, 211, 222, -1,
2246 214, -1, -1, 227, -1, 229, 1203, -1, 222, -1,
2247 409, -1, -1, 227, -1, 229, -1, -1, 242, 243,
2248 23, -1, 199, -1, -1, -1, -1, -1, 242, 243,
2249 207, 430, 431, -1, 211, -1, 654, 214, -1, -1,
2250 -1, -1, -1, -1, -1, 222, -1, -1, -1, -1,
2251 227, -1, 229, -1, -1, 58, 59, 60, 61, 62,
2252 63, 64, 65, 66, 67, 242, 243, 544, 409, -1,
2253 19, 20, -1, -1, -1, 24, 553, 26, -1, 28,
2254 29, 30, 31, 32, 33, 34, -1, -1, -1, 430,
2255 431, -1, 1064, -1, -1, -1, -1, 715, 47, 48,
2256 49, -1, -1, -1, -1, -1, -1, -1, 726, 727,
2257 728, 729, 730, 731, 732, 733, -1, -1, -1, 10,
2258 11, 12, 71, 122, 123, 124, 125, -1, 127, -1,
2259 -1, -1, -1, 132, 133, -1, -1, 136, 137, -1,
2260 139, 140, 141, 142, -1, -1, 623, -1, -1, -1,
2261 73, 74, 75, 76, 553, 154, 155, 80, 81, 82,
2262 83, 84, 85, 86, -1, -1, 115, 644, -1, 646,
2263 -1, 1143, -1, -1, -1, 652, -1, -1, -1, 656,
2264 -1, 180, -1, -1, -1, 409, -1, -1, -1, -1,
2265 -1, 190, -1, -1, 625, 409, -1, 815, -1, -1,
2266 -1, -1, -1, -1, -1, 636, 430, 431, 826, -1,
2267 -1, -1, 553, -1, -1, -1, 430, 431, -1, -1,
2268 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2269 -1, -1, 409, -1, -1, -1, -1, 714, 187, 188,
2270 189, -1, 191, 192, 193, -1, -1, -1, 725, 867,
2271 -1, -1, -1, 430, 431, -1, -1, -1, -1, -1,
2272 -1, 692, -1, 1235, 155, -1, -1, -1, -1, -1,
2273 -1, -1, -1, -1, -1, 706, -1, -1, -1, -1,
2274 898, 899, 900, 901, 902, 903, 904, 905, 906, 907,
2275 908, 909, 910, 911, 912, 913, 914, -1, 916, -1,
2276 -1, -1, -1, -1, -1, -1, -1, -1, 199, -1,
2277 -1, -1, -1, -1, -1, -1, 207, -1, -1, -1,
2278 211, -1, -1, 214, -1, -1, -1, -1, -1, 553,
2279 -1, 222, -1, -1, -1, -1, 227, -1, 229, 553,
2280 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2281 -1, 242, 243, -1, -1, -1, -1, 19, -1, -1,
2282 -1, -1, 24, -1, 26, 983, 28, 29, 30, 31,
2283 32, 33, 34, -1, -1, -1, 553, -1, -1, -1,
2284 -1, -1, -1, -1, -1, 47, 48, 49, -1, -1,
2285 -1, -1, -1, -1, 825, -1, -1, -1, -1, 830,
2286 -1, -1, 1020, 834, -1, -1, 883, -1, -1, 71,
2287 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2288 -1, -1, -1, -1, -1, -1, -1, -1, -1, 860,
2289 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2290 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2291 881, 882, -1, 115, -1, -1, 887, 888, 889, 890,
2292 891, 892, 893, 894, 895, 896, 897, 18, -1, -1,
2293 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2294 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2295 -1, -1, -1, -1, -1, 972, 47, 48, 49, -1,
2296 -1, -1, -1, -1, -1, -1, 937, -1, -1, -1,
2297 -1, -1, -1, -1, -1, -1, -1, -1, 409, -1,
2298 71, -1, -1, -1, -1, 187, 188, 189, -1, 191,
2299 192, 193, -1, -1, -1, -1, -1, -1, -1, 430,
2300 431, 1018, -1, -1, -1, -1, -1, -1, -1, -1,
2301 -1, -1, -1, 0, 1, -1, -1, -1, -1, -1,
2302 -1, -1, -1, -1, 115, -1, -1, -1, -1, -1,
2303 -1, 18, -1, -1, -1, -1, -1, 24, -1, -1,
2304 -1, -1, -1, -1, 1202, -1, -1, 34, -1, -1,
2305 -1, -1, -1, -1, -1, -1, -1, 44, 1216, 46,
2306 -1, -1, -1, -1, -1, -1, 1083, -1, -1, -1,
2307 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1237,
2308 -1, 68, 69, 70, -1, 72, -1, -1, -1, -1,
2309 77, 78, 79, -1, -1, -1, 187, 188, 189, -1,
2310 191, -1, -1, 1074, -1, 92, 93, 94, -1, -1,
2311 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2312 -1, -1, 553, -1, 111, 112, 113, 114, -1, 116,
2313 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
2314 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2315 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2316 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2317 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2318 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2319 177, 178, 179, 180, 0, 1, -1, -1, -1, -1,
2320 187, 188, 189, 190, -1, 192, 193, 194, -1, -1,
2321 -1, -1, 18, -1, -1, -1, -1, -1, 24, -1,
2322 -1, -1, -1, -1, -1, -1, -1, -1, 34, -1,
2323 -1, -1, -1, -1, -1, -1, -1, -1, 44, -1,
2324 46, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2325 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2326 -1, -1, 68, 69, 70, -1, 72, -1, -1, -1,
2327 -1, 77, 78, 79, -1, -1, -1, -1, -1, -1,
2328 -1, -1, -1, -1, -1, -1, 92, 93, 94, -1,
2329 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2330 -1, -1, -1, -1, -1, 111, 112, 113, 114, -1,
2331 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2332 -1, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2333 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2334 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2335 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2336 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2337 176, 177, 178, 179, 180, -1, -1, -1, -1, -1,
2338 -1, 187, 188, 189, 190, 1, 192, 193, 194, -1,
2339 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2340 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2341 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2342 -1, -1, -1, -1, -1, -1, 42, 43, 44, -1,
2343 46, 47, 48, 49, -1, -1, -1, -1, -1, -1,
2344 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2345 -1, -1, 68, 69, 70, 71, 72, -1, -1, -1,
2346 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2347 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2348 96, 97, 98, 99, 100, 101, -1, -1, -1, -1,
2349 -1, -1, -1, -1, 110, 111, 112, 113, 114, 115,
2350 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2351 -1, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2352 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2353 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2354 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2355 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2356 176, 177, 178, 179, 180, -1, -1, -1, -1, -1,
2357 -1, 187, 188, 189, 190, 191, 192, 193, 194, 1,
2358 -1, -1, -1, -1, 6, 7, 8, -1, 10, 11,
2359 12, 13, 14, 15, 16, 17, 18, 19, -1, -1,
2360 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2361 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2362 42, 43, 44, -1, -1, 47, 48, 49, -1, -1,
2363 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2364 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
2365 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2366 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2367 -1, -1, -1, -1, 96, 97, 98, 99, 100, 101,
2368 -1, -1, -1, -1, -1, -1, -1, -1, 110, 111,
2369 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2370 122, 123, 124, 125, -1, 127, 128, 129, 130, 131,
2371 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2372 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2373 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2374 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2375 172, 173, 174, 175, 176, 177, 178, 179, 180, -1,
2376 -1, -1, -1, -1, -1, 187, 188, 189, 190, 191,
2377 192, 193, 194, 1, -1, -1, -1, -1, 6, 7,
2378 8, -1, -1, 11, 12, 13, 14, 15, 16, 17,
2379 18, 19, 20, -1, -1, -1, 24, -1, -1, -1,
2380 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2381 -1, -1, -1, -1, 42, 43, 44, -1, -1, 47,
2382 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2383 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2384 68, 69, 70, 71, -1, -1, -1, -1, -1, -1,
2385 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2386 -1, -1, -1, -1, -1, -1, -1, -1, 96, 97,
2387 98, 99, 100, 101, -1, -1, -1, -1, -1, -1,
2388 -1, -1, 110, 111, 112, 113, 114, 115, 116, 117,
2389 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
2390 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2391 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2392 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2393 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2394 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2395 178, 179, 180, -1, -1, -1, -1, -1, -1, 187,
2396 188, 189, 190, 191, 192, 193, 194, 1, -1, -1,
2397 -1, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2398 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2399 24, -1, 26, -1, 28, 29, 30, 31, 32, 33,
2400 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2401 -1, 45, -1, 47, 48, 49, 50, 51, 52, 53,
2402 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2403 64, 65, 66, 67, -1, -1, -1, 71, -1, -1,
2404 -1, -1, -1, -1, -1, 19, 20, -1, -1, -1,
2405 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2406 34, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2407 -1, -1, 1, 47, 48, 49, 110, 6, 7, 8,
2408 -1, 115, 11, 12, 13, 14, 15, 16, 17, 18,
2409 19, 20, -1, -1, -1, 24, 25, 71, -1, -1,
2410 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2411 -1, -1, -1, 42, 43, -1, -1, -1, 47, 48,
2412 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2413 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2414 -1, 115, 71, -1, -1, -1, -1, -1, -1, -1,
2415 -1, -1, -1, 187, 188, 189, -1, 191, 192, 193,
2416 -1, -1, -1, -1, -1, -1, 95, 96, 97, 98,
2417 99, 100, 101, -1, -1, -1, -1, -1, 1, -1,
2418 -1, 110, -1, 6, 7, 8, 115, 10, 11, 12,
2419 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2420 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2421 33, 34, -1, 187, 188, 189, -1, 191, -1, 42,
2422 43, -1, -1, -1, 47, 48, 49, -1, -1, -1,
2423 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2424 -1, -1, -1, -1, -1, -1, -1, -1, 71, -1,
2425 -1, -1, -1, -1, -1, -1, -1, -1, 187, 188,
2426 189, -1, 191, 192, 193, -1, -1, -1, -1, -1,
2427 -1, -1, 95, 96, 97, 98, 99, 100, 101, -1,
2428 -1, -1, -1, -1, 1, -1, -1, 110, -1, 6,
2429 7, 8, 115, 10, 11, 12, 13, 14, 15, 16,
2430 17, 18, 19, -1, -1, -1, -1, 24, -1, -1,
2431 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2432 -1, -1, -1, -1, -1, 42, 43, -1, -1, -1,
2433 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
2434 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2435 -1, -1, -1, -1, 71, -1, -1, -1, -1, -1,
2436 -1, -1, 19, -1, 187, 188, 189, 24, 191, 192,
2437 193, -1, 29, 30, 31, 32, 33, 34, 95, 96,
2438 97, 98, 99, 100, 101, -1, -1, -1, -1, 1,
2439 47, 48, 49, 110, 6, 7, 8, -1, 115, 11,
2440 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2441 -1, -1, 24, -1, 71, -1, -1, 29, 30, 31,
2442 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2443 42, 43, -1, -1, -1, 47, 48, 49, -1, -1,
2444 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2445 -1, -1, -1, -1, -1, -1, -1, -1, 115, 71,
2446 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2447 187, 188, 189, -1, 191, 192, 193, -1, -1, -1,
2448 -1, -1, -1, 95, 96, 97, 98, 99, 100, 101,
2449 -1, -1, -1, -1, -1, 1, -1, -1, 110, -1,
2450 6, 7, 8, 115, 10, 11, 12, 13, 14, 15,
2451 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2452 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2453 187, 188, 189, -1, 191, -1, 42, 43, -1, -1,
2454 -1, 47, 48, 49, -1, -1, -1, -1, -1, -1,
2455 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2456 -1, -1, -1, -1, -1, 71, -1, -1, -1, -1,
2457 -1, -1, -1, 19, -1, 187, 188, 189, 24, 191,
2458 192, 193, -1, 29, 30, 31, 32, 33, 34, -1,
2459 96, 97, 98, 99, 100, 101, -1, -1, -1, -1,
2460 1, 47, 48, 49, 110, 6, 7, 8, -1, 115,
2461 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2462 -1, -1, -1, 24, -1, 71, -1, -1, 29, 30,
2463 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2464 -1, 42, 43, -1, -1, -1, 47, 48, 49, -1,
2465 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2466 -1, -1, -1, -1, -1, -1, -1, -1, -1, 115,
2467 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2468 -1, 187, 188, 189, -1, 191, 192, 193, -1, -1,
2469 -1, -1, -1, -1, -1, 96, 97, 98, 99, 100,
2470 101, -1, -1, -1, -1, -1, 1, -1, -1, 110,
2471 -1, 6, 7, 8, 115, 10, 11, 12, 13, 14,
2472 15, 16, 17, 18, 19, -1, -1, -1, -1, 24,
2473 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2474 -1, 187, 188, 189, -1, 191, -1, 42, 43, -1,
2475 -1, -1, 47, 48, 49, -1, -1, -1, -1, -1,
2476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2477 -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
2478 -1, -1, -1, -1, -1, -1, 187, 188, 189, -1,
2479 191, 192, 193, -1, -1, -1, -1, -1, -1, -1,
2480 -1, 96, 97, 98, 99, 100, 101, -1, -1, -1,
2481 -1, -1, -1, -1, -1, 110, -1, 6, 7, 8,
2482 115, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2483 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2484 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2485 -1, -1, -1, 42, 43, 44, -1, 46, 47, 48,
2486 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2488 -1, -1, 71, 72, -1, -1, -1, -1, -1, -1,
2489 -1, -1, 187, 188, 189, -1, 191, 192, 193, -1,
2490 -1, -1, -1, -1, -1, -1, -1, 96, 97, 98,
2491 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
2492 -1, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2493 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
2494 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2495 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2496 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2497 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2498 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2499 179, 180, -1, -1, -1, -1, -1, -1, 187, 188,
2500 189, 190, 191, 192, 193, 194, 6, 7, 8, -1,
2501 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2502 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2503 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2504 -1, -1, 42, 43, 44, -1, 46, 47, 48, 49,
2505 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2506 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2507 -1, 71, 72, -1, -1, -1, -1, -1, -1, -1,
2508 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2509 -1, -1, -1, -1, -1, -1, 96, 97, 98, 99,
2510 100, 101, -1, -1, -1, -1, -1, -1, -1, -1,
2511 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2512 120, 121, 122, 123, 124, 125, -1, 127, 128, 129,
2513 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2514 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2515 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2516 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2517 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2518 180, -1, -1, -1, -1, -1, -1, 187, 188, 189,
2519 190, 191, 192, 193, 194, 6, 7, 8, -1, 10,
2520 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2521 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2522 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2523 -1, 42, 43, 44, -1, 46, 47, 48, 49, -1,
2524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2525 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2526 71, 72, -1, -1, -1, -1, -1, -1, -1, -1,
2527 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2528 -1, -1, -1, -1, -1, 96, 97, 98, 99, 100,
2529 101, -1, -1, -1, -1, -1, -1, -1, -1, 110,
2530 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2531 121, 122, 123, 124, 125, -1, 127, 128, 129, 130,
2532 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2533 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2534 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2535 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2536 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
2537 -1, -1, -1, -1, -1, -1, 187, 188, 189, 190,
2538 191, 192, 193, 194, 6, 7, 8, -1, 10, 11,
2539 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2540 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2541 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2542 -1, -1, -1, -1, -1, 47, 48, 49, -1, 6,
2543 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2544 17, 18, 19, 20, -1, -1, -1, 24, -1, 71,
2545 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2546 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2547 47, 48, 49, -1, 96, 97, 98, 99, 100, 101,
2548 -1, -1, -1, -1, -1, -1, -1, -1, 110, -1,
2549 -1, -1, -1, 115, 71, -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, 96,
2552 97, 98, 99, 100, 101, -1, -1, -1, -1, -1,
2553 -1, -1, -1, 110, -1, 6, 7, 8, 115, 10,
2554 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2555 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2556 31, 32, 33, 34, -1, 187, 188, 189, -1, 191,
2557 192, 193, -1, -1, -1, -1, 47, 48, 49, -1,
2558 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2559 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2560 71, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2561 187, 188, 189, -1, 191, 192, 193, -1, -1, -1,
2562 -1, 47, 48, 49, -1, 96, 97, 98, 99, 100,
2563 101, -1, -1, -1, -1, -1, -1, -1, -1, 110,
2564 -1, -1, -1, -1, 115, 71, -1, -1, -1, -1,
2565 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2566 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2567 96, 97, 98, 99, 100, 101, -1, -1, -1, -1,
2568 -1, -1, -1, -1, 110, -1, 6, 7, 8, 115,
2569 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2570 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2571 30, 31, 32, 33, 34, -1, 187, 188, 189, -1,
2572 191, 192, 193, -1, -1, -1, -1, 47, 48, 49,
2573 -1, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2574 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2575 -1, 71, -1, -1, 29, 30, 31, 32, 33, 34,
2576 -1, 187, 188, 189, -1, 191, 192, 193, -1, -1,
2577 -1, -1, 47, 48, 49, -1, 96, 97, 98, 99,
2578 100, 101, -1, -1, -1, -1, -1, -1, -1, -1,
2579 110, -1, -1, -1, -1, 115, 71, -1, -1, -1,
2580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2581 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2582 -1, 96, 97, 98, 99, 100, 101, -1, -1, -1,
2583 -1, -1, -1, -1, -1, 110, -1, 6, 7, 8,
2584 115, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2585 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2586 29, 30, 31, 32, 33, 34, -1, 187, 188, 189,
2587 -1, 191, 192, 193, -1, -1, -1, -1, 47, 48,
2588 49, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2589 14, 15, 16, 17, 18, 19, -1, -1, -1, -1,
2590 24, -1, 71, -1, -1, 29, 30, 31, 32, 33,
2591 34, -1, 187, 188, 189, -1, 191, 192, 193, -1,
2592 -1, -1, -1, 47, 48, 49, -1, 96, 97, 98,
2593 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
2594 -1, 110, -1, -1, -1, -1, 115, 71, -1, -1,
2595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2596 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2597 -1, -1, 96, 97, 98, 99, 100, 101, 19, -1,
2598 -1, -1, -1, 24, -1, -1, 110, -1, -1, -1,
2599 -1, 115, -1, -1, -1, -1, -1, -1, -1, -1,
2600 -1, -1, -1, 44, -1, 46, -1, -1, -1, -1,
2601 -1, -1, -1, -1, -1, -1, -1, -1, 187, 188,
2602 189, -1, 191, 192, 193, -1, -1, -1, -1, -1,
2603 -1, 72, -1, -1, -1, -1, -1, -1, -1, -1,
2604 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2605 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2606 -1, -1, -1, 187, 188, 189, -1, 191, 192, 193,
2607 111, 112, 113, 114, -1, 116, 117, 118, 119, 120,
2608 121, 122, 123, 124, 125, -1, 127, 128, 129, 130,
2609 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2610 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2611 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2612 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2613 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
2614 20, -1, -1, -1, -1, -1, -1, -1, 189, 190,
2615 -1, -1, -1, 194, -1, -1, -1, -1, -1, -1,
2616 -1, -1, -1, -1, 44, -1, -1, -1, -1, -1,
2617 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2618 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2619 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2620 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2621 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2622 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2623 -1, 111, 112, 113, 114, -1, 116, 117, 118, 119,
2624 120, 121, 122, 123, 124, 125, -1, 127, 128, 129,
2625 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2626 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2627 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2628 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2629 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2630 180, -1, -1, -1, -1, -1, 19, -1, -1, 189,
2631 190, 24, -1, -1, 194, -1, 29, 30, 31, 32,
2632 33, 34, -1, -1, -1, -1, -1, 19, -1, -1,
2633 -1, -1, 24, -1, 47, 48, 49, 29, 30, 31,
2634 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2635 -1, -1, -1, -1, -1, 47, 48, 49, 71, -1,
2636 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2637 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2638 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2639 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2640 -1, -1, 115, -1, -1, -1, -1, -1, -1, -1,
2641 -1, -1, -1, -1, 24, -1, -1, -1, -1, -1,
2642 -1, -1, -1, 115, 34, -1, -1, -1, -1, -1,
2643 -1, -1, -1, -1, 44, -1, -1, -1, -1, -1,
2644 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2645 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2646 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2647 -1, -1, -1, -1, 187, 188, 189, -1, 191, -1,
2648 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2649 -1, -1, -1, -1, -1, 187, 188, 189, -1, 191,
2650 -1, 111, 112, 113, 114, -1, 116, 117, 118, 119,
2651 120, 121, 122, 123, 124, 125, -1, 127, 128, 129,
2652 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2653 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2654 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2655 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2656 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2657 180, -1, -1, -1, -1, -1, -1, 187, 188, 189,
2658 190, -1, 192, 193, 194, 24, 25, -1, -1, -1,
2659 29, 30, 31, 32, 33, 34, 24, -1, -1, 27,
2660 -1, 29, 30, 31, 32, 33, 34, -1, 47, 48,
2661 49, -1, -1, -1, -1, -1, -1, 24, 25, 47,
2662 48, 49, 29, 30, 31, 32, 33, 34, 24, -1,
2663 -1, 27, 71, 29, 30, 31, 32, 33, 34, -1,
2664 47, 48, 49, 71, -1, -1, -1, -1, -1, 24,
2665 25, 47, 48, 49, 29, 30, 31, 32, 33, 34,
2666 24, -1, -1, -1, 71, 29, 30, 31, 32, 33,
2667 34, -1, 47, 48, 49, 71, 115, -1, -1, -1,
2668 -1, -1, -1, 47, 48, 49, -1, 115, -1, -1,
2669 -1, -1, 24, -1, -1, -1, 71, 29, 30, 31,
2670 32, 33, 34, -1, -1, -1, -1, 71, 115, -1,
2671 -1, -1, -1, -1, -1, 47, 48, 49, 24, 115,
2672 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2673 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2674 115, 47, 48, 49, -1, -1, -1, -1, 187, 188,
2675 189, 115, 191, -1, -1, -1, -1, -1, -1, 187,
2676 188, 189, -1, 191, -1, 71, -1, -1, -1, -1,
2677 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2678 187, 188, 189, 115, 191, -1, -1, -1, -1, -1,
2679 -1, 187, 188, 189, -1, 191, 24, -1, -1, -1,
2680 -1, 29, 30, 31, 32, 33, 34, -1, -1, 115,
2681 -1, -1, 187, 188, 189, -1, 191, -1, -1, 47,
2682 48, 49, -1, 187, 188, 189, 24, 191, -1, -1,
2683 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2684 -1, -1, -1, 71, -1, -1, -1, -1, -1, 47,
2685 48, 49, -1, -1, -1, 187, 188, 189, -1, 191,
2686 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2687 -1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2688 -1, 187, 188, 189, -1, 191, -1, 115, -1, -1,
2689 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2690 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2691 -1, -1, -1, -1, -1, -1, -1, 115, -1, -1,
2692 -1, -1, -1, -1, -1, 42, 43, 44, -1, -1,
2693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2694 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2695 -1, -1, -1, -1, -1, -1, -1, -1, -1, 187,
2696 188, 189, -1, 191, -1, -1, -1, -1, -1, -1,
2697 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2698 -1, -1, -1, -1, -1, -1, -1, -1, -1, 187,
2699 188, 189, -1, 191, 111, 112, 113, 114, -1, 116,
2700 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
2701 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2702 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2703 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2704 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2705 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2706 177, 178, 179, 180, 44, -1, 46, -1, -1, -1,
2707 -1, -1, 189, 190, -1, -1, -1, 194, -1, -1,
2708 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
2709 70, -1, 72, -1, -1, -1, -1, -1, -1, -1,
2710 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2711 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2712 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2713 -1, 111, 112, 113, 114, -1, 116, 117, 118, 119,
2714 120, 121, 122, 123, 124, 125, -1, 127, 128, 129,
2715 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2716 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2717 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2718 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2719 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2720 180, 44, -1, 46, -1, -1, -1, -1, -1, 189,
2721 190, -1, -1, -1, 194, -1, -1, -1, -1, -1,
2722 -1, -1, -1, -1, -1, -1, -1, -1, -1, 72,
2723 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2724 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2725 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2726 -1, -1, -1, -1, -1, -1, -1, -1, 111, 112,
2727 113, 114, -1, 116, 117, 118, 119, 120, 121, 122,
2728 123, 124, 125, -1, 127, 128, 129, 130, 131, 132,
2729 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2730 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2731 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2732 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2733 173, 174, 175, 176, 177, 178, 179, 180, 44, -1,
2734 -1, -1, -1, -1, 187, 188, 189, 190, -1, -1,
2735 -1, 194, -1, -1, -1, -1, -1, -1, -1, -1,
2736 -1, -1, 68, 69, 70, -1, -1, -1, -1, -1,
2737 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2738 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2739 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2740 -1, -1, -1, -1, -1, 111, 112, 113, 114, -1,
2741 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2742 -1, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2743 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2744 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2745 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2746 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2747 176, 177, 178, 179, 180, 44, -1, -1, -1, -1,
2748 -1, -1, -1, 189, 190, -1, -1, -1, 194, -1,
2749 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2750 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2751 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2752 -1, -1, -1, 92, 93, 94, -1, -1, -1, -1,
2753 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2754 -1, -1, 111, 112, 113, 114, -1, 116, 117, 118,
2755 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
2756 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2757 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2758 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2759 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2760 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2761 179, 180, 44, -1, 46, -1, -1, -1, -1, -1,
2762 189, 190, -1, -1, -1, 194, -1, -1, -1, -1,
2763 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2764 72, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2765 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2766 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2767 -1, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2768 112, 113, 114, -1, 116, 117, 118, 119, 120, 121,
2769 122, 123, 124, 125, -1, 127, 128, 129, 130, 131,
2770 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2771 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2772 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2773 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2774 172, 173, 174, 175, 176, 177, 178, 179, 180, 44,
2775 -1, -1, -1, -1, -1, -1, -1, 189, 190, -1,
2776 -1, -1, 194, -1, -1, -1, -1, -1, -1, -1,
2777 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2778 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2779 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2780 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2781 -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
2782 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2783 125, -1, 127, 128, 129, 130, 131, 132, 133, 134,
2784 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2785 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2786 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2787 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2788 175, 176, 177, 178, 179, 180, -1, -1, -1, -1,
2789 -1, -1, -1, -1, 189, 190, -1, -1, -1, 194
2791 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2793 /* Skeleton output parser for bison,
2795 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
2798 This program is free software; you can redistribute it and/or modify
2799 it under the terms of the GNU General Public License as published by
2800 the Free Software Foundation; either version 2, or (at your option)
2803 This program is distributed in the hope that it will be useful,
2804 but WITHOUT ANY WARRANTY; without even the implied warranty of
2805 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2806 GNU General Public License for more details.
2808 You should have received a copy of the GNU General Public License
2809 along with this program; if not, write to the Free Software
2810 Foundation, Inc., 59 Temple Place - Suite 330,
2811 Boston, MA 02111-1307, USA. */
2813 /* As a special exception, when this file is copied by Bison into a
2814 Bison output file, you may use that output file without restriction.
2815 This special exception was added by the Free Software Foundation
2816 in version 1.24 of Bison. */
2818 /* This is the parser code that is written into each bison parser when
2819 the %semantic_parser declaration is not specified in the grammar.
2820 It was written by Richard Stallman by simplifying the hairy parser
2821 used when %semantic_parser is specified. */
2823 /* All symbols defined below should begin with yy or YY, to avoid
2824 infringing on user name space. This should be done even for local
2825 variables, as they might otherwise be expanded by user macros.
2826 There are some unavoidable exceptions within include files to
2827 define necessary library symbols; they are noted "INFRINGES ON
2828 USER NAME SPACE" below. */
2830 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
2832 /* The parser invokes alloca or malloc; define the necessary symbols. */
2834 # if YYSTACK_USE_ALLOCA
2835 # define YYSTACK_ALLOC alloca
2837 # ifndef YYSTACK_USE_ALLOCA
2838 # if defined (alloca) || defined (_ALLOCA_H)
2839 # define YYSTACK_ALLOC alloca
2842 # define YYSTACK_ALLOC __builtin_alloca
2848 # ifdef YYSTACK_ALLOC
2849 /* Pacify GCC's `empty if-body' warning. */
2850 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
2852 # if defined (__STDC__) || defined (__cplusplus)
2853 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
2854 # define YYSIZE_T size_t
2856 # define YYSTACK_ALLOC malloc
2857 # define YYSTACK_FREE free
2859 #endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
2862 #if (! defined (yyoverflow) \
2863 && (! defined (__cplusplus) \
2864 || (YYLTYPE_IS_TRIVIAL && cgrammar_YYSTYPE_IS_TRIVIAL)))
2866 /* A type that is properly aligned for any stack member. */
2870 cgrammar_YYSTYPE yyvs;
2876 /* The size of the maximum gap between one aligned stack and the next. */
2877 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
2879 /* The size of an array large to enough to hold all stacks, each with
2882 # define YYSTACK_BYTES(N) \
2883 ((N) * (sizeof (short) + sizeof (cgrammar_YYSTYPE) + sizeof (YYLTYPE)) \
2884 + 2 * YYSTACK_GAP_MAX)
2886 # define YYSTACK_BYTES(N) \
2887 ((N) * (sizeof (short) + sizeof (cgrammar_YYSTYPE)) \
2891 /* Copy COUNT objects from FROM to TO. The source and destination do
2895 # define YYCOPY(To, From, Count) \
2896 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
2898 # define YYCOPY(To, From, Count) \
2901 register YYSIZE_T yyi; \
2902 for (yyi = 0; yyi < (Count); yyi++) \
2903 (To)[yyi] = (From)[yyi]; \
2909 /* Relocate STACK from its old location to the new one. The
2910 local variables YYSIZE and YYSTACKSIZE give the old and new number of
2911 elements in the stack, and YYPTR gives the new location of the
2912 stack. Advance YYPTR to a properly aligned location for the next
2914 # define YYSTACK_RELOCATE(Stack) \
2917 YYSIZE_T yynewbytes; \
2918 YYCOPY (&yyptr->Stack, Stack, yysize); \
2919 Stack = &yyptr->Stack; \
2920 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
2921 yyptr += yynewbytes / sizeof (*yyptr); \
2928 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
2929 # define YYSIZE_T __SIZE_TYPE__
2931 #if ! defined (YYSIZE_T) && defined (size_t)
2932 # define YYSIZE_T size_t
2934 #if ! defined (YYSIZE_T)
2935 # if defined (__STDC__) || defined (__cplusplus)
2936 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
2937 # define YYSIZE_T size_t
2940 #if ! defined (YYSIZE_T)
2941 # define YYSIZE_T unsigned int
2944 #define yyerrok (yyerrstatus = 0)
2945 #define yyclearin (yychar = YYEMPTY)
2948 #define YYACCEPT goto yyacceptlab
2949 #define YYABORT goto yyabortlab
2950 #define YYERROR goto yyerrlab1
2951 /* Like YYERROR except do call yyerror. This remains here temporarily
2952 to ease the transition to the new meaning of YYERROR, for GCC.
2953 Once GCC version 2 has supplanted version 1, this can go. */
2954 #define YYFAIL goto yyerrlab
2955 #define YYRECOVERING() (!!yyerrstatus)
2956 #define YYBACKUP(Token, Value) \
2958 if (yychar == YYEMPTY && yylen == 1) \
2962 yychar1 = YYTRANSLATE (yychar); \
2968 yyerror ("syntax error: cannot back up"); \
2974 #define YYERRCODE 256
2977 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
2980 When YYLLOC_DEFAULT is run, CURRENT is set the location of the
2981 first token. By default, to implement support for ranges, extend
2982 its range to the last symbol. */
2984 #ifndef YYLLOC_DEFAULT
2985 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2986 Current.last_line = Rhs[N].last_line; \
2987 Current.last_column = Rhs[N].last_column;
2991 /* YYLEX -- calling `yylex' with the right arguments. */
2996 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
2998 # define YYLEX yylex (&yylval, &yylloc)
3000 # else /* !YYLSP_NEEDED */
3002 # define YYLEX yylex (&yylval, YYLEX_PARAM)
3004 # define YYLEX yylex (&yylval)
3006 # endif /* !YYLSP_NEEDED */
3008 # define YYLEX yylex ()
3009 #endif /* !YYPURE */
3012 /* Enable debugging if requested. */
3016 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3017 # define YYFPRINTF fprintf
3020 # define YYDPRINTF(Args) \
3025 /* Nonzero means print parse trace. It is left uninitialized so that
3026 multiple parsers can coexist. */
3028 #else /* !YYDEBUG */
3029 # define YYDPRINTF(Args)
3030 #endif /* !YYDEBUG */
3032 /* YYINITDEPTH -- initial size of the parser's stacks. */
3034 # define YYINITDEPTH 200
3037 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3038 if the built-in stack extension method is used).
3040 Do not make this value too large; the results are undefined if
3041 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
3042 evaluated with infinite-precision integer arithmetic. */
3049 # define YYMAXDEPTH 10000
3052 #ifdef YYERROR_VERBOSE
3055 # if defined (__GLIBC__) && defined (_STRING_H)
3056 # define yystrlen strlen
3058 /* Return the length of YYSTR. */
3060 # if defined (__STDC__) || defined (__cplusplus)
3061 yystrlen (const char *yystr)
3067 register const char *yys = yystr;
3069 while (*yys++ != '\0')
3072 return yys - yystr - 1;
3078 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
3079 # define yystpcpy stpcpy
3081 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3084 # if defined (__STDC__) || defined (__cplusplus)
3085 yystpcpy (char *yydest, const char *yysrc)
3087 yystpcpy (yydest, yysrc)
3092 register char *yyd = yydest;
3093 register const char *yys = yysrc;
3095 while ((*yyd++ = *yys++) != '\0')
3106 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
3107 into yyparse. The argument should have type void *.
3108 It should actually point to an object.
3109 Grammar actions can access the variable by casting it
3110 to the proper pointer type. */
3112 #ifdef YYPARSE_PARAM
3113 # if defined (__STDC__) || defined (__cplusplus)
3114 # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
3115 # define YYPARSE_PARAM_DECL
3117 # define YYPARSE_PARAM_ARG YYPARSE_PARAM
3118 # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
3120 #else /* !YYPARSE_PARAM */
3121 # define YYPARSE_PARAM_ARG
3122 # define YYPARSE_PARAM_DECL
3123 #endif /* !YYPARSE_PARAM */
3125 /* Prevent warning if -Wstrict-prototypes. */
3127 # ifdef YYPARSE_PARAM
3128 int yyparse (void *);
3134 /* YY_DECL_VARIABLES -- depending whether we use a pure parser,
3135 variables are global, or local to YYPARSE. */
3137 #define YY_DECL_NON_LSP_VARIABLES \
3138 /* The lookahead symbol. */ \
3141 /* The semantic value of the lookahead symbol. */ \
3142 cgrammar_YYSTYPE yylval; \
3144 /* Number of parse errors so far. */ \
3148 # define YY_DECL_VARIABLES \
3149 YY_DECL_NON_LSP_VARIABLES \
3151 /* Location data for the lookahead symbol. */ \
3154 # define YY_DECL_VARIABLES \
3155 YY_DECL_NON_LSP_VARIABLES
3159 /* If nonreentrant, generate the variables here. */
3163 #endif /* !YYPURE */
3166 yyparse (YYPARSE_PARAM_ARG)
3169 /* If reentrant, generate the variables here. */
3172 #endif /* !YYPURE */
3174 register int yystate;
3177 /* Number of tokens to shift before error messages enabled. */
3179 /* Lookahead token as an internal (translated) token number. */
3182 /* Three stacks and their tools:
3183 `yyss': related to states,
3184 `yyvs': related to semantic values,
3185 `yyls': related to locations.
3187 Refer to the stacks thru separate pointers, to allow yyoverflow
3188 to reallocate them elsewhere. */
3190 /* The state stack. */
3191 short yyssa[YYINITDEPTH];
3192 short *yyss = yyssa;
3193 register short *yyssp;
3195 /* The semantic value stack. */
3196 cgrammar_YYSTYPE yyvsa[YYINITDEPTH];
3197 cgrammar_YYSTYPE *yyvs = yyvsa;
3198 register cgrammar_YYSTYPE *yyvsp;
3201 /* The location stack. */
3202 YYLTYPE yylsa[YYINITDEPTH];
3203 YYLTYPE *yyls = yylsa;
3208 # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
3210 # define YYPOPSTACK (yyvsp--, yyssp--)
3213 YYSIZE_T yystacksize = YYINITDEPTH;
3216 /* The variables used to return semantic value and location from the
3218 cgrammar_YYSTYPE yyval;
3223 /* When reducing, the number of symbols on the RHS of the reduced
3227 YYDPRINTF ((stderr, "Starting parse\n"));
3232 yychar = YYEMPTY; /* Cause a token to be read. */
3234 /* Initialize stack pointers.
3235 Waste one element of value and location stack
3236 so that they stay on the same level as the state stack.
3237 The wasted elements are never initialized. */
3246 /*------------------------------------------------------------.
3247 | yynewstate -- Push a new state, which is found in yystate. |
3248 `------------------------------------------------------------*/
3250 /* In all cases, when you get here, the value and location stacks
3251 have just been pushed. so pushing a state here evens the stacks.
3258 if (yyssp >= yyss + yystacksize - 1)
3260 /* Get the current used size of the three stacks, in elements. */
3261 YYSIZE_T yysize = yyssp - yyss + 1;
3265 /* Give user a chance to reallocate the stack. Use copies of
3266 these so that the &'s don't force the real ones into
3268 cgrammar_YYSTYPE *yyvs1 = yyvs;
3269 short *yyss1 = yyss;
3271 /* Each stack pointer address is followed by the size of the
3272 data in use in that stack, in bytes. */
3274 YYLTYPE *yyls1 = yyls;
3275 /* This used to be a conditional around just the two extra args,
3276 but that might be undefined if yyoverflow is a macro. */
3277 yyoverflow ("parser stack overflow",
3278 &yyss1, yysize * sizeof (*yyssp),
3279 &yyvs1, yysize * sizeof (*yyvsp),
3280 &yyls1, yysize * sizeof (*yylsp),
3284 yyoverflow ("parser stack overflow",
3285 &yyss1, yysize * sizeof (*yyssp),
3286 &yyvs1, yysize * sizeof (*yyvsp),
3292 #else /* no yyoverflow */
3293 # ifndef YYSTACK_RELOCATE
3296 /* Extend the stack our own way. */
3297 if (yystacksize >= YYMAXDEPTH)
3300 if (yystacksize > YYMAXDEPTH)
3301 yystacksize = YYMAXDEPTH;
3304 short *yyss1 = yyss;
3305 union yyalloc *yyptr =
3306 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3309 YYSTACK_RELOCATE (yyss);
3310 YYSTACK_RELOCATE (yyvs);
3312 YYSTACK_RELOCATE (yyls);
3314 # undef YYSTACK_RELOCATE
3316 YYSTACK_FREE (yyss1);
3319 #endif /* no yyoverflow */
3321 yyssp = yyss + yysize - 1;
3322 yyvsp = yyvs + yysize - 1;
3324 yylsp = yyls + yysize - 1;
3327 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3328 (unsigned long int) yystacksize));
3330 if (yyssp >= yyss + yystacksize - 1)
3334 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3344 /* Do appropriate processing given the current state. */
3345 /* Read a lookahead token if we need one and don't already have one. */
3348 /* First try to decide what to do without reference to lookahead token. */
3350 yyn = yypact[yystate];
3354 /* Not known => get a lookahead token if don't already have one. */
3356 /* yychar is either YYEMPTY or YYEOF
3357 or a valid token in external form. */
3359 if (yychar == YYEMPTY)
3361 YYDPRINTF ((stderr, "Reading a token: "));
3365 /* Convert token to internal form (in yychar1) for indexing tables with */
3367 if (yychar <= 0) /* This means end of input. */
3370 yychar = YYEOF; /* Don't call YYLEX any more */
3372 YYDPRINTF ((stderr, "Now at end of input.\n"));
3376 yychar1 = YYTRANSLATE (yychar);
3379 /* We have to keep this `#if YYDEBUG', since we use variables
3380 which are defined only if `YYDEBUG' is set. */
3383 YYFPRINTF (stderr, "Next token is %d (%s",
3384 yychar, yytname[yychar1]);
3385 /* Give the individual parser a way to print the precise
3386 meaning of a token, for further debugging info. */
3388 YYPRINT (stderr, yychar, yylval);
3390 YYFPRINTF (stderr, ")\n");
3396 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3401 /* yyn is what to do for this token type in this state.
3402 Negative => reduce, -yyn is rule number.
3403 Positive => shift, yyn is new state.
3404 New state is final state => don't bother to shift,
3405 just return success.
3406 0, or most negative number => error. */
3421 /* Shift the lookahead token. */
3422 YYDPRINTF ((stderr, "Shifting token %d (%s), ",
3423 yychar, yytname[yychar1]));
3425 /* Discard the token being shifted unless it is eof. */
3426 if (yychar != YYEOF)
3434 /* Count tokens shifted since error; after three, turn off error
3443 /*-----------------------------------------------------------.
3444 | yydefault -- do the default action for the current state. |
3445 `-----------------------------------------------------------*/
3447 yyn = yydefact[yystate];
3453 /*-----------------------------.
3454 | yyreduce -- Do a reduction. |
3455 `-----------------------------*/
3457 /* yyn is the number of a rule to reduce with. */
3460 /* If YYLEN is nonzero, implement the default value of the action:
3463 Otherwise, the following line sets YYVAL to the semantic value of
3464 the lookahead token. This behavior is undocumented and Bison
3465 users should not rely upon it. Assigning to YYVAL
3466 unconditionally makes the parser a bit smaller, and it avoids a
3467 GCC warning that YYVAL may be used uninitialized. */
3468 yyval = yyvsp[1-yylen];
3471 /* Similarly for the default location. Let the user run additional
3472 commands if for instance locations are ranges. */
3473 yyloc = yylsp[1-yylen];
3474 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
3478 /* We have to keep this `#if YYDEBUG', since we use variables which
3479 are defined only if `YYDEBUG' is set. */
3484 YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
3487 /* Print the symbols being reduced, and their result. */
3488 for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
3489 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
3490 YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3497 { context_checkGlobalScope (); ;
3500 { context_checkGlobalScope (); ;
3503 { uentry_clearDecl (); ;
3506 { uentry_clearDecl (); ;
3509 { uentry_clearDecl (); ;
3512 { uentry_clearDecl (); ;
3515 { uentry_clearDecl (); ;
3518 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3521 { uentry_clearDecl (); lltok_free (yyvsp[0].tok); /* evans 2002-02-08: okay to have a null statement */ ;
3524 { uentry_clearDecl (); ;
3527 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); lltok_free2 (yyvsp[-7].tok, yyvsp[0].tok); ;
3530 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr); lltok_free3 (yyvsp[-10].tok, yyvsp[-5].tok, yyvsp[0].tok); ;
3533 { context_enterFunctionHeader (); ;
3537 declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3538 context_exitFunctionHeader ();
3539 lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); /*!*/
3544 qtype qint = qtype_create (ctype_int);
3545 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3550 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3553 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
3556 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3559 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;
3562 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
3566 exprNode_findValue (yyvsp[-2].expr);
3567 idDecl_notExpectingFunction (yyvsp[-5].ntyp);
3569 if (exprNode_hasValue (yyvsp[-2].expr))
3571 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp),
3572 exprNode_getLongValue (yyvsp[-2].expr)));
3576 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-5].ntyp)));
3579 lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
3583 { setCurrentParams (uentryList_missingParams); ;
3586 { /* need to support globals and modifies here! */
3587 functionClauseList fcl;
3588 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3589 uentryList_makeMissingParams ());
3591 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3593 /*drl 7/25/01 added*/
3594 setImplictfcnConstraints();
3596 DPRINTF((message("namedDeclBase PushType TLPAREN TRPAREN...:\n adding implict constraints to functionClause List: %s",
3597 functionClauseList_unparse(yyvsp[0].funcclauselist)
3601 fcl = functionClauseList_setImplictConstraints(yyvsp[0].funcclauselist);
3603 idDecl_addClauses (yyval.ntyp, fcl);
3605 DPRINTF((message("1 added fuctionClause List: %s to the Id",
3606 functionClauseList_unparse(fcl)
3612 lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
3616 { setCurrentParams (yyvsp[-1].entrylist); ;
3620 functionClauseList fcl;
3621 setImplictfcnConstraints ();
3622 clearCurrentParams ();
3623 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3625 DPRINTF((message("namedDeclBase PushType TLPAREN genericParamList TRPAREN...:\n adding implict constraints to functionClause List: %s",
3626 functionClauseList_unparse(yyvsp[0].funcclauselist)
3630 fcl = functionClauseList_setImplictConstraints(yyvsp[0].funcclauselist);
3632 idDecl_addClauses (yyval.ntyp, fcl);
3634 DPRINTF((message("added fuctionClause List: %s to the Id",
3635 functionClauseList_unparse(fcl)
3641 lltok_free2 (yyvsp[-4].tok, yyvsp[-2].tok);
3645 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3648 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;
3651 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp)));
3652 lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok);
3659 if (exprNode_hasValue (yyvsp[-2].expr)
3660 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3662 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3669 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3670 lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
3674 { setCurrentParams (uentryList_missingParams); ;
3678 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3679 uentryList_makeMissingParams ());
3681 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3682 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3684 lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
3688 { setCurrentParams (yyvsp[-1].entrylist); ;
3692 clearCurrentParams ();
3693 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3694 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3696 lltok_free (yyvsp[-4].tok);
3697 /*!! lltok_free2 ($3, $5); */
3701 { setCurrentParams (yyvsp[-1].entrylist); ;
3704 { clearCurrentParams (); ;
3707 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist);
3708 lltok_free3 (yyvsp[-9].tok, yyvsp[-7].tok, yyvsp[-5].tok);
3712 { exprNode_checkMacroBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
3715 { exprNode_checkIterBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
3718 { exprNode_checkIterEnd (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok);;
3721 { exprChecks_checkEmptyMacroBody (); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
3724 { clabstract_declareFunction (yyvsp[0].ntyp); ;
3727 { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;
3730 { cscannerHelp_expectingMetaStateName (); ;
3733 { cscannerHelp_clearExpectingMetaStateName ();
3734 yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo);
3735 lltok_free (yyvsp[-1].tok);
3739 { cscannerHelp_expectingMetaStateName (); ;
3742 { cscannerHelp_clearExpectingMetaStateName ();
3743 yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo);
3744 lltok_free2 (yyvsp[-3].tok, yyvsp[-1].tok);
3748 { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
3751 { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;
3754 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
3757 { yyval.conL = constraintList_single (yyvsp[0].con); ;
3761 yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
3762 DPRINTF(("Done BufConstraint1\n")); ;
3765 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3769 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3770 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3773 { yyval.conE = constraintExpr_makeTermsRef (yyvsp[0].sr);;
3776 { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
3779 { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
3782 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3785 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3791 t = cstring_toCharsSafe (exprNode_unparse($3));
3794 yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
3798 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3801 { yyval.sr = yyvsp[-1].sr; ;
3804 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3807 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3810 { yyval.funcclauselist = functionClauseList_new (); ;
3813 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3816 { yyval.funcclauselist = functionClauseList_new (); ;
3819 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3822 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3825 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3828 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3831 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3834 { yyval.funcclause = yyvsp[0].funcclause; ;
3837 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3840 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3843 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3846 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3849 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3852 { yyval.funcclause = yyvsp[0].funcclause; ;
3855 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3858 { yyval.globsclause = yyvsp[-1].globsclause; ;
3861 { setProcessingGlobalsList (); ;
3865 unsetProcessingGlobals ();
3866 yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset);
3870 { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
3873 { yyval.modsclause = yyvsp[-1].modsclause; ;
3877 context_setProtectVars (); enterParamsTemp ();
3878 sRef_setGlobalScopeSafe ();
3884 sRef_clearGlobalScopeSafe ();
3885 context_releaseVars ();
3886 yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
3890 { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
3893 { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
3896 { yyval.warnclause = warnClause_undefined; ;
3899 { yyval.warnclause = yyvsp[-1].warnclause; ;
3903 llassert (exprNode_knownStringValue (yyvsp[0].expr));
3904 yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr))));
3905 exprNode_free (yyvsp[0].expr);
3909 { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
3912 { yyval.globset = globSet_single (yyvsp[0].sr); ;
3915 { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
3918 { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3921 { yyval.tquallist = qualList_undefined; ;
3924 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3927 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3930 { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
3933 { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
3936 { yyval.typequal = qual_createUndef (); ;
3939 { yyval.typequal = qual_createKilled (); ;
3942 { yyval.typequal = qual_createOut (); ;
3945 { yyval.typequal = qual_createIn (); ;
3948 { yyval.typequal = qual_createPartial (); ;
3952 /**!!! deal with fred; fred (int); declarations! **/
3953 qtype qint = qtype_create (ctype_int);
3954 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3959 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3962 { checkDoneParams (); context_enterInnerContext (); ;
3966 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3967 context_exitInner (yyvsp[0].expr);
3971 { context_enterOldStyleScope (); ;
3974 { oldStyleDoneParams (); context_enterInnerContext (); ;
3978 exprNode_checkFunctionBody (yyvsp[0].expr);
3979 yyval.expr = yyvsp[0].expr; /* oldstyle */
3980 context_exitInner (yyvsp[0].expr);
3985 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3986 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3989 context_exitFunction ();
3993 { yyval.srset = yyvsp[-1].srset; ;
3996 { yyval.srset = sRefSet_new (); ;
3999 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
4002 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
4005 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
4008 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
4011 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
4014 { yyval.sr = modListPointer (yyvsp[0].sr); ;
4017 { yyval.sr = yyvsp[-1].sr; ;
4020 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
4023 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
4026 { yyval.sr = yyvsp[0].sr; ;
4029 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
4032 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
4035 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
4038 { yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
4041 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
4044 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
4047 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
4050 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
4053 { yyval.sr = yyvsp[-1].sr; ;
4056 { cstring_markOwned (yyvsp[0].cname);
4057 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
4060 { cstring_markOwned (yyvsp[0].cname);
4061 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
4064 { yyval.srset = sRefSet_undefined ;
4067 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
4068 else { yyval.srset = sRefSet_undefined; }
4072 { if (sRef_isValid (yyvsp[0].sr))
4074 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
4078 yyval.srset = yyvsp[-2].srset;
4083 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
4086 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
4089 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4092 { yyval.expr = exprNode_fromIdentifier (cscannerHelp_coerceId (yyvsp[0].cname)); ;
4095 { yyval.expr = exprNode_makeError (); ;
4098 { exprChecks_inCompoundStatementExpression (); ;
4101 { exprChecks_leaveCompoundStatementExpression (); yyval.expr = exprNode_compoundStatementExpression (yyvsp[-3].tok, yyvsp[-1].expr); ;
4104 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4107 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4110 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
4113 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
4116 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4119 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4122 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4125 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4128 { /* added for C99 */ yyval.expr = exprNode_undefined; /*@i87 no checking */ ;
4131 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4134 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
4137 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4140 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4143 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4146 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4149 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4152 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4155 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4158 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4161 { yyval.expr = yyvsp[0].expr; ;
4164 { yyval.expr = yyvsp[0].expr; ;
4167 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); lltok_free (yyvsp[-1].tok); ;
4170 { yyval.cstringlist = yyvsp[-3].cstringlist; lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
4173 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
4176 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist);
4177 lltok_free3 (yyvsp[-8].tok, yyvsp[-6].tok, yyvsp[-3].tok); lltok_free (yyvsp[-1].tok); ;
4180 { context_setProtectVars (); ;
4183 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
4186 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok); ;
4189 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;
4192 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok); ;
4195 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;
4198 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); lltok_free (yyvsp[-1].tok); ;
4201 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4204 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4207 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4210 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4213 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4216 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4219 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4222 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4225 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4228 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4231 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4234 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4237 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4240 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4243 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4246 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4249 { exprNode_produceGuards (yyvsp[-1].expr);
4250 context_enterAndClause (yyvsp[-1].expr);
4255 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4256 context_exitAndClause (yyval.expr, yyvsp[0].expr);
4261 exprNode_produceGuards (yyvsp[-1].expr);
4262 context_enterOrClause (yyvsp[-1].expr);
4267 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4268 context_exitOrClause (yyval.expr, yyvsp[0].expr);
4272 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4275 { context_enterFalseClause (yyvsp[-4].expr); ;
4278 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
4281 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4284 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4287 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4290 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4293 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4296 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4299 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4302 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4305 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4308 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4311 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4314 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
4317 { yyval.expr = exprNode_undefined; ;
4320 { yyval.expr = yyvsp[0].expr; ;
4323 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
4326 { yyval.expr = exprNode_makeError (); ;
4329 { yyval.expr = exprNode_makeError (); ;
4333 setProcessingVars (yyvsp[-3].qtyp);
4334 processNamedDecl (yyvsp[-1].ntyp);
4339 unsetProcessingVars ();
4340 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp);
4341 DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
4345 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
4348 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
4349 unsetProcessingVars ();
4353 { yyval.expr = yyvsp[0].expr; ;
4356 { yyval.expr = exprNode_fromIdentifier (usymtab_getTypeEntry (ctype_typeId (yyvsp[0].ctyp))); ;
4360 processNamedDecl (yyvsp[-1].ntyp);
4361 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
4365 { processNamedDecl (yyvsp[-2].ntyp); ;
4368 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
4371 { setProcessingTypedef (yyvsp[0].qtyp); ;
4374 { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
4377 { /* in the ANSI grammar, semantics unclear */ ;
4380 { /* in the ANSI grammar, semantics unclear */ ;
4383 { cscannerHelp_setExpectingTypeName (); ;
4386 { cscannerHelp_setExpectingTypeName (); context_pushLoc (); ;
4389 { yyval.exprlist = yyvsp[-1].exprlist; ;
4392 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4395 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4398 { yyval.exprlist = yyvsp[-1].exprlist; ;
4401 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4404 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4407 { yyval.expr = exprNode_makeError (); ;
4410 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4413 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); lltok_free (yyvsp[0].tok); ;
4416 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
4419 { yyval.expr = exprNode_undefined; ;
4422 { yyval.expr = yyvsp[-1].expr; ;
4425 { yyval.expr = exprNode_undefined;
4426 /* gcc extension, obsolete since 2.5 */ ;
4429 { yyval.expr = exprNode_undefined; ;
4432 { yyval.expr = exprNode_undefined; ;
4435 { yyval.expr = exprNode_undefined; ;
4438 { yyval.expr = exprNode_undefined; ;
4441 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4444 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
4447 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4450 { yyval.typequal = qual_createInline (); ;
4453 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4456 { yyval.typequal = qual_createAuto (); ;
4459 { yyval.typequal = qual_createRegister (); ;
4462 { yyval.stateclause = yyvsp[-1].stateclause; ;
4466 context_setProtectVars ();
4468 sRef_setGlobalScopeSafe ();
4474 sRef_clearGlobalScopeSafe ();
4475 context_releaseVars ();
4476 yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
4480 { yyval.funcclause = yyvsp[-1].funcclause; ;
4483 { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
4487 context_exitFunctionHeader ();
4488 context_setProtectVars ();
4490 sRef_setGlobalScopeSafe ();
4496 sRef_clearGlobalScopeSafe ();
4497 context_releaseVars ();
4498 yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
4503 context_setProtectVars ();
4505 sRef_setGlobalScopeSafe ();
4510 context_exitFunctionHeader ();
4512 sRef_clearGlobalScopeSafe ();
4513 context_releaseVars ();
4514 DPRINTF (("done optGlobBufConstraintsAux\n"));
4516 if (lltok_isEnsures (yyvsp[-4].tok))
4518 yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint);
4520 else if (lltok_isRequires (yyvsp[-4].tok))
4522 yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint);
4529 DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
4533 { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
4536 { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
4539 { yyval.typequal = qual_createExits (); ;
4542 { yyval.typequal = qual_createMayExit (); ;
4545 { yyval.typequal = qual_createTrueExit (); ;
4548 { yyval.typequal = qual_createFalseExit (); ;
4551 { yyval.typequal = qual_createNeverExit (); ;
4554 { yyval.typequal = qual_createChecked (); ;
4557 { yyval.typequal = qual_createCheckMod (); ;
4560 { yyval.typequal = qual_createUnchecked (); ;
4563 { yyval.typequal = qual_createCheckedStrict (); ;
4566 { yyval.typequal = qual_createOwned (); ;
4569 { yyval.typequal = qual_createDependent (); ;
4572 { yyval.typequal = qual_createYield (); ;
4575 { yyval.typequal = qual_createTemp (); ;
4578 { yyval.typequal = qual_createOnly (); ;
4581 { yyval.typequal = qual_createKeep (); ;
4584 { yyval.typequal = qual_createKept (); ;
4587 { yyval.typequal = qual_createShared (); ;
4590 { yyval.typequal = qual_createUnique (); ;
4593 { yyval.typequal = qual_createNull (); ;
4596 { yyval.typequal = qual_createIsNull (); ;
4599 { yyval.typequal = qual_createRelNull (); ;
4602 { yyval.typequal = qual_createNotNull (); ;
4605 { yyval.typequal = qual_createExposed (); ;
4608 { yyval.typequal = qual_createObserver (); ;
4611 { yyval.typequal = qual_createNullTerminated (); ;
4614 { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
4617 { yyval.typequal = qual_createReturned (); ;
4620 { yyval.typequal = qual_createSef (); ;
4623 { yyval.typequal = qual_createUnused (); ;
4626 { yyval.typequal = qual_createExternal (); ;
4629 { yyval.typequal = qual_createTrueNull (); ;
4632 { yyval.typequal = qual_createFalseNull (); ;
4635 { yyval.typequal = qual_createAbstract (); ;
4638 { yyval.typequal = qual_createNumAbstract (); ;
4641 { yyval.typequal = qual_createConcrete (); ;
4644 { yyval.typequal = qual_createMutable (); ;
4647 { yyval.typequal = qual_createImmutable (); ;
4650 { yyval.typequal = qual_createRefCounted (); ;
4653 { yyval.typequal = qual_createRefs (); ;
4656 { yyval.typequal = qual_createKillRef (); ;
4659 { yyval.typequal = qual_createRelDef (); ;
4662 { yyval.typequal = qual_createNewRef (); ;
4665 { yyval.typequal = qual_createTempRef (); ;
4668 { yyval.typequal = qual_createShort (); ;
4671 { yyval.typequal = qual_createLong (); ;
4674 { yyval.typequal = qual_createSigned (); ;
4677 { yyval.typequal = qual_createUnsigned (); ;
4680 { yyval.typequal = qual_createOut (); ;
4683 { yyval.typequal = qual_createIn (); ;
4686 { yyval.typequal = qual_createPartial (); ;
4689 { yyval.typequal = qual_createSpecial (); ;
4692 { yyval.typequal = qual_createConst (); ;
4695 { yyval.typequal = qual_createVolatile (); ;
4698 { yyval.typequal = qual_createRestrict (); ;
4701 { yyval.typequal = yyvsp[-1].typequal; ;
4704 { yyval.typequal = yyvsp[-1].typequal; ;
4707 { yyval.typequal = yyvsp[-1].typequal; ;
4710 { yyval.typequal = yyvsp[-1].typequal; ;
4713 { yyval.typequal = yyvsp[-1].typequal; ;
4716 { yyval.typequal = yyvsp[-1].typequal; ;
4719 { yyval.typequal = yyvsp[-1].typequal; ;
4722 { yyval.typequal = yyvsp[-1].typequal; ;
4725 { yyval.typequal = yyvsp[-1].typequal; ;
4728 { yyval.ctyp = ctype_makeAnytype (); ;
4731 { yyval.ctyp = ctype_anyintegral; ;
4734 { yyval.ctyp = ctype_unsignedintegral; ;
4737 { yyval.ctyp = ctype_signedintegral; ;
4740 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4743 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4746 { yyval.qtyp = yyvsp[0].qtyp; ;
4749 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4752 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4755 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4758 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4761 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4764 { yyval.qtyp = qtype_unknown (); ;
4767 { yyval.qtyp = yyvsp[0].qtyp; ;
4770 { yyval.conL = constraintList_undefined; ;
4773 { sRef_setGlobalScopeSafe (); ;
4776 { sRef_clearGlobalScopeSafe (); ;
4779 { ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); context_setGlobalStructInfo(ct, yyvsp[0].conL); yyval.ctyp = ct; ;
4782 { sRef_setGlobalScopeSafe (); ;
4785 { sRef_clearGlobalScopeSafe (); ;
4788 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4791 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4794 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4797 { sRef_setGlobalScopeSafe (); ;
4800 { sRef_clearGlobalScopeSafe (); ;
4803 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4806 { sRef_setGlobalScopeSafe (); ;
4809 { sRef_clearGlobalScopeSafe (); ;
4812 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4815 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4818 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4821 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4824 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4827 { cscannerHelp_clearExpectingTypeName (); ;
4830 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4833 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4836 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4839 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4842 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4845 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4848 { yyval.ntyp = yyvsp[0].ntyp; ;
4851 { yyval.ntyp = idDecl_undefined; ;
4854 { yyval.ntyp = yyvsp[-3].ntyp; ;
4857 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4860 { context_pushLoc (); ;
4863 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4866 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4869 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4872 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4875 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4876 usymtab_supGlobalEntry (ue);
4877 yyval.cname = yyvsp[0].cname;
4881 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4882 usymtab_supGlobalEntry (ue);
4883 yyval.cname = yyvsp[-3].cname;
4887 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4891 qtype qt = qtype_unknown ();
4892 qtype_adjustPointers (yyvsp[-1].pointers, qt);
4893 yyval.ntyp = idDecl_create (cstring_copy (cscannerHelp_observeLastIdentifier ()), qt);
4897 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
4900 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
4903 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4906 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4909 { yyval.typequal = qual_createConst (); ;
4912 { yyval.typequal = qual_createRestrict (); ;
4915 { yyval.typequal = qual_createVolatile (); ;
4918 { yyval.tquallist = qualList_single (yyvsp[0].typequal); ;
4921 { yyval.tquallist = qualList_add (yyvsp[-1].tquallist, yyvsp[0].typequal); ;
4924 { yyval.pointers = pointers_create (yyvsp[0].tok); ;
4927 { yyval.pointers = pointers_createMods (yyvsp[-1].tok, yyvsp[0].tquallist); ;
4930 { yyval.pointers = pointers_extend (pointers_create (yyvsp[-1].tok), yyvsp[0].pointers); ;
4933 { yyval.pointers = pointers_extend (pointers_createMods (yyvsp[-2].tok, yyvsp[-1].tquallist), yyvsp[0].pointers); ;
4936 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4939 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4942 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4945 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4948 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4954 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4960 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4964 if (isFlipOldStyle ())
4966 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4972 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4977 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4981 llparseerror (message ("Inconsistent function parameter syntax: %q",
4982 idDecl_unparse (tparam)));
4986 yyval.oentry = makeCurrentParam (tparam);
4987 idDecl_free (tparam);
4991 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4994 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;
4997 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;
5000 { yyval.ctyp = ctype_unknown; ;
5003 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
5006 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
5009 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
5012 { yyval.ctyp = ctype_makeInnerArray (yyvsp[-2].ctyp); ;
5015 { yyval.ctyp = ctype_makeInnerFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
5018 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
5021 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
5024 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
5027 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
5030 { yyval.expr = yyvsp[0].expr; ;
5033 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5036 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
5039 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
5042 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5045 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
5048 { context_setProtectVars (); ;
5051 { context_sizeofReleaseVars (); ;
5054 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
5055 context_enterForClause (yyvsp[-5].expr); ;
5058 { setProcessingIterVars (yyvsp[-2].entry); ;
5061 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
5064 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
5067 { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
5070 { yyval.expr = yyvsp[-1].expr; ;
5073 { yyval.expr = exprNode_makeError (); ;
5076 { exprNode_checkIfPred (yyvsp[0].expr); ;
5079 { /* don't: context_exitTrueClause ($1, $2); */
5080 yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr);
5084 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5087 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5090 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5093 { yyval.expr = exprNode_makeError (); ;
5096 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
5099 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
5108 { context_enterCaseClause (yyvsp[0].expr); ;
5111 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
5114 { context_enterCaseClause (yyvsp[0].expr); ;
5117 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
5120 { context_enterCaseClause (exprNode_undefined); ;
5123 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
5126 { context_enterCaseClause (exprNode_undefined); ;
5129 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
5132 { yyval.expr = yyvsp[-1].expr; ;
5135 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
5138 { yyval.expr = yyvsp[-1].expr; ;
5141 { context_enterInnerContext (); ;
5144 { context_exitInnerPlain (); ;
5147 { context_enterStructInnerContext (); ;
5150 { context_exitStructInnerContext (); ;
5153 { context_exitInnerSafe (); ;
5156 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5159 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
5162 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5165 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5168 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5171 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5174 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5177 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
5178 lltok_getLoc (yyvsp[-1].tok)));
5182 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
5185 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5188 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5191 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5194 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5197 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5200 { yyval.expr = yyvsp[0].expr; ;
5203 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5206 { yyval.expr = yyvsp[0].expr; ;
5209 { yyval.expr = exprNode_concat (yyvsp[-2].expr, yyvsp[0].expr); ;
5212 { yyval.expr = yyvsp[0].expr; ;
5215 { yyval.expr = yyvsp[-2].expr; ;
5218 { yyval.expr = yyvsp[0].expr; ;
5221 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5224 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5227 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5230 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5233 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5236 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
5240 exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr);
5241 exprNode_checkIfPred (yyvsp[-1].expr);
5242 yyval.expr = yyvsp[-1].expr;
5247 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
5248 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
5252 { context_enterFalseClause (yyvsp[-2].expr); ;
5256 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5257 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5261 { context_enterSwitch (yyvsp[0].expr); ;
5264 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
5267 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
5270 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
5273 { context_enterIterClause (); ;
5276 { setProcessingIterVars (yyvsp[-3].entry); ;
5280 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry);
5285 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
5288 { nextIterParam (); ;
5291 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
5294 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
5297 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
5300 { uentry ue = cscannerHelp_coerceIterId (yyvsp[0].cname);
5302 if (uentry_isValid (ue))
5304 yyval.expr = exprNode_iterId (ue);
5308 yyval.expr = exprNode_iterNewId (cstring_copy (cscannerHelp_observeLastIdentifier ()));
5313 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
5316 { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
5319 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5322 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
5325 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
5328 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
5331 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
5334 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
5337 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
5340 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5343 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5346 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5349 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5352 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5355 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5358 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5361 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5364 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5367 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5370 { yyval.expr = yyvsp[0].expr; ;
5373 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
5376 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5379 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5382 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5385 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5388 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5391 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5394 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5397 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5400 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5403 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5406 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5409 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5412 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5415 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5418 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5421 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5424 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5427 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5430 { context_enterTrueClause (yyvsp[-1].expr); ;
5433 { context_enterFalseClause (yyvsp[-4].expr); ;
5436 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5439 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5442 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5445 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5448 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5451 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5454 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5457 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5460 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5463 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5466 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5469 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5472 { yyval.entry = yyvsp[0].entry; ;
5475 { yyval.entry = uentry_undefined; ;
5478 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5481 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5484 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5487 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5490 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5493 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5496 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5499 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5502 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5505 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5508 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5511 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5514 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5517 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5520 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5523 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5526 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5529 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5538 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5541 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5544 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5547 { yyval.cname = yyvsp[0].cname; ;
5550 { yyval.ctyp = ctype_unknown; ;
5553 { yyval.ctyp = exprNode_getType (yyvsp[-1].expr); exprNode_free (yyvsp[-1].expr); ;
5556 { yyval.ctyp = qtype_getType (yyvsp[-1].qtyp); ;
5571 short *yyssp1 = yyss - 1;
5572 YYFPRINTF (stderr, "state stack now");
5573 while (yyssp1 != yyssp)
5574 YYFPRINTF (stderr, " %d", *++yyssp1);
5575 YYFPRINTF (stderr, "\n");
5584 /* Now `shift' the result of the reduction. Determine what state
5585 that goes to, based on the state we popped back to and the rule
5586 number reduced by. */
5590 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5591 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5592 yystate = yytable[yystate];
5594 yystate = yydefgoto[yyn - YYNTBASE];
5599 /*------------------------------------.
5600 | yyerrlab -- here on detecting error |
5601 `------------------------------------*/
5603 /* If not already recovering from an error, report this error. */
5608 #ifdef YYERROR_VERBOSE
5609 yyn = yypact[yystate];
5611 if (yyn > YYFLAG && yyn < YYLAST)
5613 YYSIZE_T yysize = 0;
5618 /* Start YYX at -YYN if negative to avoid negative indexes in
5620 for (yyx = yyn < 0 ? -yyn : 0;
5621 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
5622 if (yycheck[yyx + yyn] == yyx)
5623 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
5624 yysize += yystrlen ("parse error, unexpected ") + 1;
5625 yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
5626 yymsg = (char *) YYSTACK_ALLOC (yysize);
5629 char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
5630 yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
5635 for (yyx = yyn < 0 ? -yyn : 0;
5636 yyx < (int) (sizeof (yytname) / sizeof (char *));
5638 if (yycheck[yyx + yyn] == yyx)
5640 const char *yyq = ! yycount ? ", expecting " : " or ";
5641 yyp = yystpcpy (yyp, yyq);
5642 yyp = yystpcpy (yyp, yytname[yyx]);
5647 YYSTACK_FREE (yymsg);
5650 yyerror ("parse error; also virtual memory exhausted");
5653 #endif /* defined (YYERROR_VERBOSE) */
5654 yyerror ("parse error");
5659 /*--------------------------------------------------.
5660 | yyerrlab1 -- error raised explicitly by an action |
5661 `--------------------------------------------------*/
5663 if (yyerrstatus == 3)
5665 /* If just tried and failed to reuse lookahead token after an
5666 error, discard it. */
5668 /* return failure if at end of input */
5669 if (yychar == YYEOF)
5671 YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
5672 yychar, yytname[yychar1]));
5676 /* Else will try to reuse lookahead token after shifting the error
5679 yyerrstatus = 3; /* Each real token shifted decrements this */
5684 /*-------------------------------------------------------------------.
5685 | yyerrdefault -- current state does not do anything special for the |
5687 `-------------------------------------------------------------------*/
5690 /* This is wrong; only states that explicitly want error tokens
5691 should shift them. */
5693 /* If its default is to accept any token, ok. Otherwise pop it. */
5694 yyn = yydefact[yystate];
5700 /*---------------------------------------------------------------.
5701 | yyerrpop -- pop the current state because it cannot handle the |
5703 `---------------------------------------------------------------*/
5716 short *yyssp1 = yyss - 1;
5717 YYFPRINTF (stderr, "Error: state stack now");
5718 while (yyssp1 != yyssp)
5719 YYFPRINTF (stderr, " %d", *++yyssp1);
5720 YYFPRINTF (stderr, "\n");
5728 yyn = yypact[yystate];
5733 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5750 YYDPRINTF ((stderr, "Shifting error token, "));
5761 /*-------------------------------------.
5762 | yyacceptlab -- YYACCEPT comes here. |
5763 `-------------------------------------*/
5768 /*-----------------------------------.
5769 | yyabortlab -- YYABORT comes here. |
5770 `-----------------------------------*/
5775 /*---------------------------------------------.
5776 | yyoverflowab -- parser overflow comes here. |
5777 `---------------------------------------------*/
5779 yyerror ("parser stack overflow");
5786 YYSTACK_FREE (yyss);
5792 /*@-redecl@*/ /*@-namechecks@*/
5793 extern char *yytext;
5794 /*@=redecl@*/ /*@=namechecks@*/
5796 # include "bison.reset"
5798 void yyerror (/*@unused@*/ char *s)
5800 static bool givehint = FALSE;
5802 if (context_inIterDef ())
5804 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5805 context_inFunctionName ()));
5807 else if (context_inIterEnd ())
5809 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5810 context_inFunctionName ()));
5812 else if (context_inMacro ())
5814 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5815 context_inFunctionName ()));
5817 if (context_inUnknownMacro ())
5821 llhint (cstring_makeLiteral
5822 ("Precede macro definition with /*@notfunction@*/ "
5823 "to suppress checking and force expansion"));
5828 cscannerHelp_swallowMacro ();
5829 context_exitAllClausesQuiet ();
5833 llparseerror (cstring_undefined);
5849 ** Resets all flags in bison.head
5871 /*@=evalorderuncon@*/
5880 /*@=elseifcomplete@*/
5884 /*@=readonlytrans@*/
5887 /*@=systemunrecog@*/
5888 /*@=dependenttrans@*/
5889 /*@=unqualifiedtrans@*/
5893 /*drl added 11/27/2001*/
5896 /*drl added 12/11/2002*/