2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
49 /*drl added 11/27/2001*/
51 /* < end of bison.head > */
53 /* A Bison parser, made from cgrammar.y
56 #define YYBISON 1 /* Identify Bison output. */
60 # define CTOK_ELIPSIS 259
84 # define TAMPERSAND 283
100 # define ARROW_OP 299
101 # define CTYPEDEF 300
102 # define COFFSETOF 301
106 # define RIGHT_OP 305
113 # define MUL_ASSIGN 312
114 # define DIV_ASSIGN 313
115 # define MOD_ASSIGN 314
116 # define ADD_ASSIGN 315
117 # define SUB_ASSIGN 316
118 # define LEFT_ASSIGN 317
119 # define RIGHT_ASSIGN 318
120 # define AND_ASSIGN 319
121 # define XOR_ASSIGN 320
122 # define OR_ASSIGN 321
129 # define QGLOBALS 328
130 # define QMODIFIES 329
132 # define QCONSTANT 331
133 # define QFUNCTION 332
135 # define QDEFINES 334
137 # define QALLOCATES 336
139 # define QRELEASES 338
140 # define QPRECLAUSE 339
141 # define QPOSTCLAUSE 340
142 # define QINVARIANT 341
146 # define QENDMACRO 345
148 # define LLMACROITER 347
149 # define LLMACROEND 348
150 # define TENDMACRO 349
151 # define QSWITCHBREAK 350
152 # define QLOOPBREAK 351
153 # define QINNERBREAK 352
154 # define QSAFEBREAK 353
155 # define QINNERCONTINUE 354
156 # define QFALLTHROUGH 355
157 # define QLINTNOTREACHED 356
158 # define QLINTFALLTHROUGH 357
159 # define QLINTFALLTHRU 358
160 # define QARGSUSED 359
161 # define QPRINTFLIKE 360
162 # define QLINTPRINTFLIKE 361
163 # define QSCANFLIKE 362
164 # define QMESSAGELIKE 363
165 # define QNOTREACHED 364
167 # define QRESTRICT 366
168 # define QVOLATILE 367
170 # define QEXTENSION 369
174 # define QREGISTER 373
183 # define QCHECKED 382
184 # define QUNCHECKED 383
185 # define QCHECKEDSTRICT 384
186 # define QCHECKMOD 385
189 # define QPARTIAL 388
190 # define QSPECIAL 389
192 # define QDEPENDENT 391
193 # define QRETURNED 392
194 # define QEXPOSED 393
196 # define QOBSERVER 395
199 # define QMAYEXIT 398
200 # define QNEVEREXIT 399
201 # define QTRUEEXIT 400
202 # define QFALSEEXIT 401
205 # define QUNSIGNED 404
209 # define QNOTNULL 408
210 # define QRELNULL 409
211 # define QABSTRACT 410
212 # define QCONCRETE 411
213 # define QMUTABLE 412
214 # define QIMMUTABLE 413
215 # define QTRUENULL 414
216 # define QFALSENULL 415
217 # define QEXTERNAL 416
218 # define QREFCOUNTED 417
221 # define QTEMPREF 420
222 # define QKILLREF 421
230 # define QANYTYPE 429
231 # define QINTEGRALTYPE 430
232 # define QUNSIGNEDINTEGRALTYPE 431
233 # define QSIGNEDINTEGRALTYPE 432
234 # define QNULLTERMINATED 433
235 # define QSETBUFFERSIZE 434
236 # define QSETSTRINGLENGTH 435
238 # define QMAXREAD 437
239 # define QTESTINRANGE 438
241 # define IDENTIFIER 440
242 # define NEW_IDENTIFIER 441
243 # define TYPE_NAME_OR_ID 442
244 # define CANNOTATION 443
245 # define CCONSTANT 444
246 # define ITER_NAME 445
247 # define ITER_ENDNAME 446
248 # define TYPE_NAME 447
249 # define METASTATE_NAME 448
256 ** Yacc/Bison grammar for extended ANSI C used by Splint.
258 ** original grammar by Nate Osgood ---
259 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
261 ** changes for Splint --- handle typedef names correctly
262 ** fix struct/union parsing bug (empty struct is accepted)
263 ** add productions to handle macros --- require
264 ** error correction --- main source of conflicts in grammar.
265 ** need to process initializations sequentially, L->R
267 ** production names are cryptic, so more productions fit on one line
269 ** conflicts: 87 shift/reduce, 18 reduce/reduce
270 ** most of these are due to handling macros
271 ** a few are due to handling type expressions
277 extern void yyerror (char *);
279 # include "splintMacros.nf"
281 # include "cscanner.h"
282 # include "cgrammar.h"
283 # include "exprChecks.h"
288 # define SHOWCSYM FALSE
291 ** This is necessary, or else when the bison-generated code #include's malloc.h,
292 ** there will be a parse error.
294 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
295 ** in bison-generated files under Win32.
305 #ifndef cgrammar_YYSTYPE
313 /*@dependent@*/ sRef sr;
316 /*@only@*/ functionClauseList funcclauselist;
317 /*@only@*/ functionClause funcclause;
318 /*@only@*/ flagSpec flagspec;
319 /*@only@*/ globalsClause globsclause;
320 /*@only@*/ modifiesClause modsclause;
321 /*@only@*/ warnClause warnclause;
322 /*@only@*/ stateClause stateclause;
323 /*@only@*/ pointers pointers;
324 /*@only@*/ functionConstraint fcnconstraint;
326 /*@only@*/ metaStateConstraint msconstraint;
327 /*@only@*/ metaStateSpecifier msspec;
328 /*@only@*/ metaStateExpression msexpr;
329 /*@observer@*/ metaStateInfo msinfo;
331 /*@only@*/ sRefList srlist;
332 /*@only@*/ globSet globset;
333 /*@only@*/ qtype qtyp;
334 /*@only@*/ cstring cname;
335 /*@observer@*/ annotationInfo annotation;
336 /*@only@*/ idDecl ntyp;
337 /*@only@*/ idDeclList ntyplist;
338 /*@only@*/ uentryList flist;
339 /*@owned@*/ uentryList entrylist;
340 /*@observer@*/ /*@dependent@*/ uentry entry;
341 /*@only@*/ uentry oentry;
342 /*@only@*/ exprNode expr;
343 /*@only@*/ enumNameList enumnamelist;
344 /*@only@*/ exprNodeList exprlist;
345 /*@only@*/ sRefSet srset;
346 /*@only@*/ cstringList cstringlist;
356 # define cgrammar_YYSTYPE yystype
357 # define cgrammar_YYSTYPE_IS_TRIVIAL 1
366 #define YYFLAG -32768
369 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
370 #define YYTRANSLATE(x) ((unsigned)(x) <= 448 ? yytranslate[x] : 460)
372 /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
373 static const short yytranslate[] =
375 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
376 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
377 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
378 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
379 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
380 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
381 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
382 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
383 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
384 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
385 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
386 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
387 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
388 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
389 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
390 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
391 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
392 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
393 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
394 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
395 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
396 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
397 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
398 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
399 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
400 2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
401 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
402 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
403 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
404 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
405 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
406 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
407 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
408 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
409 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
410 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
411 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
412 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
413 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
414 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
415 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
416 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
417 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
418 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
419 186, 187, 188, 189, 190, 191, 192, 193, 194
423 static const short yyprhs[] =
425 0, 0, 1, 3, 5, 8, 11, 13, 15, 17,
426 19, 21, 23, 25, 34, 46, 47, 53, 55, 59,
427 61, 64, 66, 73, 77, 84, 85, 92, 93, 101,
428 103, 110, 114, 121, 122, 129, 130, 138, 139, 140,
429 151, 155, 159, 163, 166, 168, 172, 173, 178, 179,
430 184, 186, 190, 192, 194, 196, 200, 202, 206, 208,
431 210, 212, 214, 216, 218, 223, 229, 231, 233, 235,
432 237, 241, 246, 249, 253, 257, 261, 263, 265, 267,
433 268, 271, 272, 275, 277, 279, 281, 283, 285, 287,
434 289, 291, 293, 295, 297, 299, 302, 303, 308, 310,
435 313, 314, 318, 320, 324, 326, 328, 329, 332, 336,
436 339, 341, 345, 348, 349, 352, 354, 356, 358, 360,
437 362, 364, 366, 368, 370, 372, 374, 376, 378, 380,
438 382, 384, 388, 389, 393, 394, 395, 400, 403, 406,
439 408, 410, 412, 414, 418, 423, 426, 430, 434, 438,
440 440, 442, 444, 448, 450, 452, 456, 461, 464, 468,
441 472, 476, 477, 479, 481, 485, 487, 489, 491, 495,
442 497, 499, 500, 505, 507, 512, 516, 521, 528, 534,
443 540, 543, 546, 554, 556, 560, 562, 565, 568, 571,
444 574, 577, 580, 583, 586, 588, 590, 594, 599, 601,
445 611, 612, 616, 621, 624, 629, 632, 634, 639, 641,
446 645, 649, 653, 655, 659, 663, 665, 669, 673, 675,
447 679, 683, 687, 691, 693, 697, 701, 703, 707, 709,
448 713, 715, 719, 721, 722, 727, 729, 730, 735, 737,
449 738, 739, 747, 749, 753, 757, 761, 765, 769, 773,
450 777, 781, 785, 789, 793, 795, 799, 800, 802, 804,
451 806, 808, 810, 814, 815, 825, 826, 838, 841, 842,
452 849, 850, 859, 864, 869, 870, 871, 874, 876, 881,
453 882, 887, 889, 893, 898, 901, 904, 907, 909, 912,
454 916, 919, 921, 925, 927, 929, 931, 933, 935, 938,
455 939, 946, 949, 952, 953, 960, 961, 967, 969, 971,
456 973, 975, 977, 979, 981, 983, 985, 987, 989, 991,
457 993, 995, 997, 999, 1001, 1003, 1005, 1007, 1009, 1011,
458 1013, 1015, 1017, 1019, 1021, 1023, 1025, 1027, 1029, 1031,
459 1033, 1035, 1037, 1039, 1041, 1043, 1045, 1047, 1049, 1051,
460 1053, 1055, 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071,
461 1074, 1077, 1080, 1083, 1086, 1089, 1092, 1095, 1098, 1101,
462 1104, 1107, 1110, 1113, 1116, 1119, 1122, 1125, 1128, 1131,
463 1134, 1137, 1140, 1143, 1146, 1149, 1153, 1155, 1160, 1162,
464 1166, 1169, 1172, 1175, 1176, 1178, 1179, 1180, 1181, 1194,
465 1195, 1196, 1208, 1215, 1222, 1223, 1224, 1235, 1236, 1237,
466 1248, 1254, 1260, 1265, 1270, 1271, 1273, 1275, 1278, 1284,
467 1288, 1291, 1296, 1298, 1302, 1307, 1314, 1315, 1324, 1329,
468 1331, 1335, 1338, 1340, 1345, 1347, 1349, 1352, 1355, 1357,
469 1360, 1362, 1365, 1367, 1369, 1371, 1373, 1376, 1378, 1381,
470 1384, 1388, 1390, 1394, 1396, 1400, 1402, 1404, 1408, 1409,
471 1412, 1413, 1418, 1423, 1425, 1427, 1430, 1432, 1434, 1437,
472 1438, 1440, 1446, 1449, 1453, 1457, 1462, 1466, 1471, 1476,
473 1482, 1484, 1486, 1488, 1490, 1492, 1494, 1496, 1498, 1500,
474 1502, 1504, 1506, 1509, 1512, 1520, 1527, 1530, 1531, 1532,
475 1543, 1544, 1551, 1553, 1555, 1557, 1559, 1562, 1564, 1566,
476 1568, 1570, 1572, 1574, 1576, 1580, 1582, 1583, 1587, 1590,
477 1593, 1595, 1597, 1599, 1601, 1603, 1605, 1607, 1609, 1611,
478 1613, 1617, 1619, 1621, 1624, 1627, 1628, 1631, 1632, 1637,
479 1638, 1645, 1646, 1650, 1651, 1657, 1661, 1664, 1668, 1669,
480 1670, 1671, 1672, 1673, 1675, 1678, 1681, 1685, 1688, 1692,
481 1696, 1701, 1704, 1707, 1711, 1715, 1720, 1722, 1725, 1727,
482 1730, 1732, 1736, 1738, 1743, 1745, 1748, 1750, 1753, 1755,
483 1758, 1760, 1765, 1768, 1769, 1775, 1776, 1783, 1788, 1793,
484 1794, 1795, 1806, 1808, 1809, 1814, 1816, 1818, 1820, 1822,
485 1824, 1827, 1829, 1833, 1835, 1840, 1844, 1849, 1856, 1862,
486 1868, 1871, 1874, 1876, 1879, 1882, 1885, 1888, 1891, 1894,
487 1897, 1900, 1902, 1904, 1909, 1911, 1915, 1919, 1923, 1925,
488 1929, 1933, 1935, 1939, 1943, 1945, 1949, 1953, 1957, 1961,
489 1963, 1967, 1971, 1973, 1977, 1979, 1983, 1985, 1989, 1991,
490 1995, 1997, 2001, 2003, 2004, 2005, 2013, 2015, 2019, 2023,
491 2027, 2031, 2035, 2039, 2043, 2047, 2051, 2055, 2059, 2061,
492 2062, 2064, 2067, 2075, 2078, 2081, 2089, 2096, 2099, 2103,
493 2106, 2110, 2113, 2117, 2121, 2125, 2129, 2132, 2136, 2137,
494 2139, 2140, 2142, 2144, 2146, 2148, 2150, 2152, 2154, 2156,
497 static const short yyrhs[] =
499 -1, 196, 0, 197, 0, 196, 197, 0, 258, 455,
500 0, 198, 0, 199, 0, 209, 0, 212, 0, 296,
501 0, 18, 0, 1, 0, 77, 337, 351, 361, 351,
502 455, 304, 91, 0, 77, 337, 351, 361, 351, 23,
503 304, 309, 308, 455, 91, 0, 0, 78, 200, 201,
504 455, 91, 0, 202, 0, 337, 351, 202, 0, 206,
505 0, 365, 206, 0, 458, 0, 304, 24, 351, 361,
506 304, 25, 0, 203, 26, 27, 0, 203, 26, 304,
507 295, 27, 351, 0, 0, 203, 305, 24, 25, 204,
508 230, 0, 0, 203, 305, 24, 362, 25, 205, 230,
509 0, 458, 0, 304, 24, 351, 202, 304, 25, 0,
510 206, 26, 27, 0, 206, 26, 304, 295, 27, 351,
511 0, 0, 206, 305, 24, 25, 207, 231, 0, 0,
512 206, 305, 24, 362, 25, 208, 231, 0, 0, 0,
513 79, 458, 24, 362, 25, 210, 231, 211, 455, 91,
514 0, 92, 392, 95, 0, 93, 378, 95, 0, 94,
515 379, 95, 0, 92, 95, 0, 253, 0, 215, 23,
516 218, 0, 0, 227, 216, 22, 219, 0, 0, 5,
517 217, 22, 219, 0, 215, 0, 215, 40, 218, 0,
518 194, 0, 185, 0, 56, 0, 222, 220, 221, 0,
519 222, 0, 225, 224, 225, 0, 182, 0, 183, 0,
520 53, 0, 52, 0, 54, 0, 226, 0, 228, 24,
521 225, 25, 0, 24, 225, 229, 225, 25, 0, 227,
522 0, 190, 0, 457, 0, 187, 0, 227, 26, 27,
523 0, 227, 26, 190, 27, 0, 34, 227, 0, 24,
524 227, 25, 0, 227, 28, 458, 0, 227, 45, 458,
525 0, 223, 0, 33, 0, 32, 0, 0, 232, 230,
526 0, 0, 233, 231, 0, 234, 0, 238, 0, 237,
527 0, 315, 0, 318, 0, 244, 0, 235, 0, 239,
528 0, 237, 0, 316, 0, 320, 0, 245, 0, 235,
529 91, 0, 0, 74, 236, 246, 455, 0, 76, 0,
530 239, 91, 0, 0, 75, 240, 259, 0, 242, 0,
531 242, 40, 241, 0, 187, 0, 244, 0, 0, 245,
532 91, 0, 73, 241, 431, 0, 73, 241, 0, 247,
533 0, 246, 21, 247, 0, 248, 249, 0, 0, 250,
534 248, 0, 457, 0, 187, 0, 296, 0, 89, 0,
535 90, 0, 120, 0, 121, 0, 134, 0, 80, 0,
536 81, 0, 82, 0, 83, 0, 84, 0, 85, 0,
537 86, 0, 361, 0, 337, 351, 361, 0, 0, 19,
538 255, 409, 0, 0, 0, 256, 413, 257, 402, 0,
539 213, 254, 0, 262, 455, 0, 455, 0, 457, 0,
540 187, 0, 188, 0, 260, 26, 27, 0, 260, 26,
541 261, 27, 0, 34, 260, 0, 24, 260, 25, 0,
542 260, 28, 458, 0, 260, 45, 458, 0, 260, 0,
543 431, 0, 260, 0, 262, 21, 260, 0, 457, 0,
544 187, 0, 263, 26, 27, 0, 263, 26, 261, 27,
545 0, 34, 263, 0, 24, 263, 25, 0, 263, 28,
546 458, 0, 263, 45, 458, 0, 0, 265, 0, 263,
547 0, 265, 21, 263, 0, 457, 0, 187, 0, 431,
548 0, 24, 293, 25, 0, 188, 0, 115, 0, 0,
549 24, 267, 402, 25, 0, 266, 0, 268, 26, 293,
550 27, 0, 268, 24, 25, 0, 268, 24, 269, 25,
551 0, 71, 24, 292, 21, 373, 25, 0, 268, 351,
552 28, 458, 304, 0, 268, 351, 45, 458, 304, 0,
553 268, 48, 0, 268, 49, 0, 24, 373, 25, 19,
554 414, 456, 20, 0, 292, 0, 269, 21, 292, 0,
555 268, 0, 48, 270, 0, 49, 270, 0, 29, 276,
556 0, 34, 276, 0, 33, 276, 0, 32, 276, 0,
557 31, 276, 0, 30, 276, 0, 273, 0, 272, 0,
558 271, 28, 458, 0, 271, 26, 293, 27, 0, 458,
559 0, 47, 304, 24, 373, 351, 21, 271, 25, 304,
560 0, 0, 304, 274, 275, 0, 42, 24, 373, 25,
561 0, 42, 270, 0, 43, 24, 373, 25, 0, 43,
562 270, 0, 270, 0, 24, 373, 25, 276, 0, 276,
563 0, 277, 34, 276, 0, 277, 35, 276, 0, 277,
564 36, 276, 0, 277, 0, 278, 33, 277, 0, 278,
565 32, 277, 0, 278, 0, 279, 50, 278, 0, 279,
566 51, 278, 0, 279, 0, 280, 37, 279, 0, 280,
567 38, 279, 0, 280, 52, 279, 0, 280, 53, 279,
568 0, 280, 0, 281, 54, 280, 0, 281, 55, 280,
569 0, 281, 0, 282, 29, 281, 0, 282, 0, 283,
570 39, 282, 0, 283, 0, 284, 40, 283, 0, 284,
571 0, 0, 285, 56, 286, 284, 0, 285, 0, 0,
572 287, 57, 288, 285, 0, 287, 0, 0, 0, 287,
573 41, 290, 293, 22, 291, 289, 0, 289, 0, 270,
574 23, 292, 0, 270, 58, 292, 0, 270, 59, 292,
575 0, 270, 60, 292, 0, 270, 61, 292, 0, 270,
576 62, 292, 0, 270, 63, 292, 0, 270, 64, 292,
577 0, 270, 65, 292, 0, 270, 66, 292, 0, 270,
578 67, 292, 0, 292, 0, 293, 21, 292, 0, 0,
579 293, 0, 289, 0, 297, 0, 72, 0, 302, 0,
580 337, 304, 18, 0, 0, 337, 351, 361, 351, 298,
581 304, 308, 18, 304, 0, 0, 337, 351, 361, 351,
582 23, 299, 304, 309, 308, 18, 304, 0, 361, 351,
583 0, 0, 361, 351, 23, 301, 304, 309, 0, 0,
584 46, 337, 303, 351, 306, 304, 243, 18, 0, 46,
585 337, 304, 18, 0, 46, 306, 304, 18, 0, 0,
586 0, 307, 304, 0, 300, 0, 306, 21, 351, 300,
587 0, 0, 308, 21, 351, 300, 0, 292, 0, 19,
588 313, 20, 0, 19, 313, 21, 20, 0, 310, 309,
589 0, 311, 23, 0, 458, 22, 0, 312, 0, 311,
590 312, 0, 26, 295, 27, 0, 28, 458, 0, 309,
591 0, 313, 21, 309, 0, 116, 0, 114, 0, 117,
592 0, 118, 0, 119, 0, 316, 91, 0, 0, 251,
593 351, 317, 265, 455, 304, 0, 320, 91, 0, 252,
594 351, 0, 0, 319, 326, 321, 264, 455, 304, 0,
595 0, 319, 322, 323, 455, 304, 0, 221, 0, 214,
596 0, 143, 0, 144, 0, 146, 0, 147, 0, 145,
597 0, 128, 0, 131, 0, 129, 0, 130, 0, 136,
598 0, 137, 0, 122, 0, 124, 0, 123, 0, 132,
599 0, 133, 0, 125, 0, 127, 0, 140, 0, 142,
600 0, 155, 0, 154, 0, 139, 0, 141, 0, 179,
601 0, 189, 0, 138, 0, 153, 0, 152, 0, 162,
602 0, 160, 0, 161, 0, 156, 0, 157, 0, 158,
603 0, 159, 0, 163, 0, 164, 0, 167, 0, 168,
604 0, 165, 0, 166, 0, 151, 0, 148, 0, 149,
605 0, 150, 0, 120, 0, 121, 0, 134, 0, 135,
606 0, 111, 304, 0, 113, 304, 0, 112, 304, 0,
607 333, 304, 0, 326, 304, 0, 324, 304, 0, 327,
608 304, 0, 325, 304, 0, 329, 304, 0, 328, 304,
609 0, 330, 304, 0, 331, 304, 0, 169, 351, 0,
610 171, 351, 0, 170, 351, 0, 172, 351, 0, 173,
611 351, 0, 174, 351, 0, 175, 351, 0, 176, 351,
612 0, 177, 351, 0, 178, 351, 0, 459, 351, 0,
613 342, 351, 0, 356, 351, 0, 332, 351, 0, 304,
614 337, 304, 0, 339, 0, 339, 88, 338, 91, 0,
615 373, 0, 373, 21, 338, 0, 314, 340, 0, 334,
616 340, 0, 335, 340, 0, 0, 337, 0, 0, 0,
617 0, 351, 68, 458, 304, 19, 343, 406, 352, 407,
618 344, 20, 341, 0, 0, 0, 351, 69, 458, 304,
619 19, 345, 406, 352, 407, 346, 20, 0, 351, 68,
620 458, 304, 19, 20, 0, 351, 69, 458, 304, 19,
621 20, 0, 0, 0, 351, 68, 304, 19, 347, 406,
622 352, 407, 348, 20, 0, 0, 0, 351, 69, 304,
623 19, 349, 406, 352, 407, 350, 20, 0, 351, 68,
624 304, 19, 20, 0, 351, 69, 304, 19, 20, 0,
625 351, 68, 458, 351, 0, 351, 69, 458, 351, 0,
626 0, 353, 0, 212, 0, 352, 353, 0, 337, 351,
627 354, 304, 18, 0, 337, 304, 18, 0, 355, 351,
628 0, 354, 21, 355, 351, 0, 361, 0, 22, 304,
629 295, 0, 361, 22, 304, 295, 0, 351, 70, 19,
630 358, 20, 304, 0, 0, 351, 70, 458, 19, 357,
631 358, 20, 304, 0, 351, 70, 458, 304, 0, 359,
632 0, 358, 21, 359, 0, 358, 21, 0, 458, 0,
633 458, 23, 304, 295, 0, 203, 0, 375, 0, 365,
634 193, 0, 365, 360, 0, 203, 0, 365, 203, 0,
635 368, 0, 351, 366, 0, 111, 0, 112, 0, 113,
636 0, 363, 0, 364, 363, 0, 34, 0, 34, 364,
637 0, 34, 365, 0, 34, 364, 365, 0, 367, 0,
638 367, 21, 5, 0, 458, 0, 367, 21, 458, 0,
639 5, 0, 369, 0, 369, 21, 5, 0, 0, 370,
640 372, 0, 0, 369, 21, 371, 372, 0, 304, 337,
641 360, 304, 0, 458, 0, 336, 0, 336, 374, 0,
642 365, 0, 376, 0, 365, 376, 0, 0, 376, 0,
643 304, 24, 351, 374, 25, 0, 26, 27, 0, 26,
644 295, 27, 0, 376, 26, 27, 0, 376, 26, 295,
645 27, 0, 304, 24, 25, 0, 304, 24, 368, 25,
646 0, 376, 304, 24, 25, 0, 376, 304, 24, 368,
647 25, 0, 394, 0, 396, 0, 399, 0, 402, 0,
648 417, 0, 420, 0, 452, 0, 425, 0, 454, 0,
649 380, 0, 378, 0, 387, 0, 380, 387, 0, 424,
650 380, 0, 451, 393, 11, 24, 293, 25, 18, 0,
651 451, 393, 11, 24, 293, 25, 0, 382, 387, 0,
652 0, 0, 13, 24, 294, 18, 294, 18, 383, 294,
653 384, 25, 0, 0, 191, 404, 24, 386, 428, 25,
654 0, 192, 0, 394, 0, 396, 0, 399, 0, 390,
655 413, 0, 390, 0, 391, 0, 417, 0, 388, 0,
656 381, 0, 385, 0, 454, 0, 24, 387, 25, 0,
657 1, 0, 0, 419, 389, 387, 0, 404, 19, 0,
658 408, 20, 0, 393, 0, 412, 0, 394, 0, 396,
659 0, 399, 0, 403, 0, 418, 0, 420, 0, 425,
660 0, 453, 0, 24, 393, 25, 0, 454, 0, 1,
661 0, 458, 22, 0, 110, 377, 0, 0, 101, 395,
662 0, 0, 6, 295, 397, 22, 0, 0, 101, 395,
663 6, 295, 398, 22, 0, 0, 7, 400, 22, 0,
664 0, 101, 395, 7, 401, 22, 0, 24, 402, 25,
665 0, 404, 410, 0, 404, 411, 405, 0, 0, 0,
666 0, 0, 0, 20, 0, 110, 20, 0, 416, 20,
667 0, 416, 110, 20, 0, 413, 20, 0, 413, 110,
668 20, 0, 413, 416, 20, 0, 413, 416, 110, 20,
669 0, 19, 409, 0, 19, 20, 0, 19, 412, 20,
670 0, 19, 413, 20, 0, 19, 413, 416, 20, 0,
671 393, 0, 412, 393, 0, 296, 0, 413, 296, 0,
672 415, 0, 414, 21, 415, 0, 292, 0, 19, 414,
673 456, 20, 0, 377, 0, 416, 377, 0, 18, 0,
674 293, 18, 0, 18, 0, 293, 18, 0, 293, 0,
675 8, 24, 293, 25, 0, 419, 377, 0, 0, 419,
676 377, 9, 421, 377, 0, 0, 10, 24, 293, 422,
677 25, 377, 0, 11, 24, 293, 25, 0, 11, 24,
678 293, 25, 0, 0, 0, 191, 426, 404, 24, 427,
679 428, 25, 402, 450, 405, 0, 430, 0, 0, 428,
680 429, 21, 430, 0, 449, 0, 457, 0, 188, 0,
681 187, 0, 190, 0, 431, 190, 0, 431, 0, 24,
682 293, 25, 0, 432, 0, 268, 26, 293, 27, 0,
683 268, 24, 25, 0, 268, 24, 269, 25, 0, 71,
684 24, 292, 21, 373, 25, 0, 268, 351, 28, 458,
685 304, 0, 268, 351, 45, 458, 304, 0, 268, 48,
686 0, 268, 49, 0, 433, 0, 48, 270, 0, 49,
687 270, 0, 29, 276, 0, 34, 276, 0, 33, 276,
688 0, 32, 276, 0, 31, 276, 0, 30, 276, 0,
689 273, 0, 434, 0, 24, 373, 25, 276, 0, 435,
690 0, 277, 34, 276, 0, 277, 35, 276, 0, 277,
691 36, 276, 0, 436, 0, 278, 33, 277, 0, 278,
692 32, 277, 0, 437, 0, 279, 50, 278, 0, 279,
693 51, 278, 0, 438, 0, 280, 37, 279, 0, 280,
694 38, 279, 0, 280, 52, 279, 0, 280, 53, 279,
695 0, 439, 0, 281, 54, 280, 0, 281, 55, 280,
696 0, 440, 0, 282, 29, 281, 0, 441, 0, 283,
697 39, 282, 0, 442, 0, 284, 40, 283, 0, 443,
698 0, 285, 56, 284, 0, 444, 0, 287, 57, 285,
699 0, 445, 0, 0, 0, 287, 41, 447, 293, 22,
700 448, 289, 0, 446, 0, 270, 23, 292, 0, 270,
701 58, 292, 0, 270, 59, 292, 0, 270, 60, 292,
702 0, 270, 61, 292, 0, 270, 62, 292, 0, 270,
703 63, 292, 0, 270, 64, 292, 0, 270, 65, 292,
704 0, 270, 66, 292, 0, 270, 67, 292, 0, 192,
705 0, 0, 12, 0, 423, 377, 0, 451, 377, 11,
706 24, 293, 25, 18, 0, 382, 377, 0, 423, 393,
707 0, 451, 393, 11, 24, 293, 25, 18, 0, 451,
708 393, 11, 24, 293, 25, 0, 382, 393, 0, 14,
709 458, 18, 0, 15, 18, 0, 100, 15, 18, 0,
710 16, 18, 0, 96, 16, 18, 0, 97, 16, 18,
711 0, 98, 16, 18, 0, 99, 16, 18, 0, 17,
712 18, 0, 17, 293, 18, 0, 0, 18, 0, 0,
713 21, 0, 186, 0, 187, 0, 191, 0, 192, 0,
714 457, 0, 188, 0, 193, 0, 188, 0, 44, 24,
715 293, 25, 0, 44, 24, 373, 25, 0
721 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
722 static const short yyrline[] =
724 0, 324, 325, 329, 330, 334, 335, 336, 337, 338,
725 339, 340, 341, 345, 347, 352, 352, 361, 367, 372,
726 373, 378, 379, 381, 383, 400, 400, 418, 418, 433,
727 434, 436, 440, 457, 457, 469, 469, 483, 483, 483,
728 492, 493, 494, 495, 499, 503, 508, 508, 513, 513,
729 521, 522, 526, 532, 533, 537, 538, 542, 548, 549,
730 553, 554, 555, 559, 560, 561, 567, 568, 572, 574,
731 576, 578, 587, 589, 591, 593, 610, 614, 615, 622,
732 623, 632, 634, 639, 640, 641, 642, 643, 644, 648,
733 649, 650, 651, 652, 653, 657, 661, 661, 670, 674,
734 678, 678, 693, 695, 700, 704, 705, 709, 713, 719,
735 724, 725, 729, 733, 734, 738, 739, 740, 744, 745,
736 746, 747, 748, 752, 753, 754, 755, 756, 760, 761,
737 765, 772, 777, 777, 783, 783, 783, 794, 805, 806,
738 810, 811, 812, 813, 814, 815, 816, 817, 818, 822,
739 823, 828, 829, 833, 835, 837, 838, 839, 840, 841,
740 843, 848, 849, 853, 857, 870, 871, 872, 873, 874,
741 875, 876, 876, 882, 883, 884, 885, 886, 887, 888,
742 889, 890, 891, 896, 897, 901, 902, 903, 904, 905,
743 906, 907, 908, 909, 910, 911, 915, 916, 918, 922,
744 928, 928, 933, 934, 935, 936, 940, 941, 946, 947,
745 948, 949, 953, 954, 955, 959, 960, 961, 965, 966,
746 967, 968, 969, 973, 974, 975, 979, 980, 984, 985,
747 989, 990, 994, 995, 995, 1007, 1008, 1008, 1021, 1022,
748 1022, 1022, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035,
749 1036, 1037, 1038, 1039, 1043, 1044, 1048, 1049, 1053, 1059,
750 1060, 1061, 1065, 1079, 1079, 1090, 1090, 1099, 1104, 1104,
751 1109, 1109, 1112, 1113, 1117, 1121, 1125, 1129, 1130, 1134,
752 1135, 1139, 1140, 1141, 1142, 1150, 1151, 1156, 1157, 1161,
753 1162, 1166, 1168, 1178, 1179, 1180, 1181, 1182, 1186, 1190,
754 1190, 1206, 1210, 1214, 1214, 1228, 1228, 1260, 1261, 1265,
755 1266, 1267, 1268, 1269, 1273, 1274, 1275, 1276, 1280, 1281,
756 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291,
757 1292, 1293, 1294, 1295, 1296, 1300, 1301, 1305, 1306, 1310,
758 1311, 1315, 1316, 1317, 1318, 1322, 1323, 1324, 1325, 1326,
759 1327, 1331, 1332, 1333, 1334, 1338, 1339, 1340, 1341, 1345,
760 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355,
761 1356, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372,
762 1373, 1374, 1375, 1376, 1377, 1381, 1386, 1387, 1392, 1393,
763 1398, 1399, 1400, 1404, 1405, 1409, 1416, 1416, 1416, 1422,
764 1422, 1422, 1427, 1429, 1431, 1431, 1431, 1436, 1436, 1436,
765 1441, 1443, 1445, 1446, 1450, 1454, 1455, 1456, 1460, 1462,
766 1467, 1469, 1474, 1475, 1476, 1481, 1483, 1483, 1485, 1489,
767 1491, 1493, 1497, 1502, 1510, 1511, 1512, 1518, 1523, 1524,
768 1529, 1530, 1534, 1535, 1536, 1540, 1541, 1545, 1546, 1547,
769 1548, 1552, 1553, 1557, 1558, 1562, 1563, 1564, 1568, 1568,
770 1569, 1569, 1574, 1586, 1603, 1604, 1608, 1609, 1610, 1614,
771 1615, 1619, 1621, 1622, 1624, 1625, 1627, 1629, 1631, 1633,
772 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1653,
773 1657, 1661, 1662, 1667, 1669, 1671, 1673, 1678, 1678, 1678,
774 1686, 1686, 1690, 1694, 1695, 1696, 1697, 1698, 1699, 1700,
775 1701, 1702, 1703, 1704, 1705, 1706, 1710, 1710, 1717, 1721,
776 1725, 1726, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737,
777 1738, 1739, 1740, 1744, 1745, 1753, 1754, 1761, 1761, 1763,
778 1763, 1768, 1768, 1770, 1770, 1775, 1776, 1781, 1785, 1789,
779 1793, 1797, 1801, 1805, 1806, 1807, 1808, 1810, 1811, 1813,
780 1815, 1822, 1827, 1829, 1831, 1833, 1838, 1839, 1843, 1844,
781 1848, 1849, 1853, 1854, 1858, 1859, 1863, 1864, 1868, 1869,
782 1870, 1874, 1888, 1893, 1893, 1898, 1898, 1903, 1909, 1913,
783 1913, 1913, 1924, 1925, 1925, 1930, 1931, 1932, 1943, 1951,
784 1952, 1956, 1957, 1961, 1962, 1963, 1964, 1965, 1967, 1968,
785 1969, 1970, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981,
786 1982, 1983, 1987, 1988, 1992, 1993, 1994, 1995, 1999, 2000,
787 2001, 2005, 2006, 2007, 2011, 2012, 2013, 2014, 2015, 2019,
788 2020, 2021, 2025, 2026, 2030, 2031, 2035, 2036, 2040, 2041,
789 2045, 2046, 2050, 2051, 2051, 2051, 2057, 2058, 2059, 2060,
790 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2072, 2073,
791 2077, 2081, 2083, 2085, 2090, 2091, 2093, 2095, 2099, 2100,
792 2101, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2113, 2114,
793 2118, 2119, 2123, 2127, 2128, 2129, 2130, 2131, 2135, 2136,
799 #if (YYDEBUG) || defined YYERROR_VERBOSE
801 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
802 static const char *const yytname[] =
804 "$", "error", "$undefined.", "BADTOK", "SKIPTOK", "CTOK_ELIPSIS", "CASE",
805 "DEFAULT", "CIF", "CELSE", "SWITCH", "WHILE", "DO", "CFOR", "GOTO",
806 "CONTINUE", "BREAK", "RETURN", "TSEMI", "TLBRACE", "TRBRACE", "TCOMMA",
807 "TCOLON", "TASSIGN", "TLPAREN", "TRPAREN", "TLSQBR", "TRSQBR", "TDOT",
808 "TAMPERSAND", "TEXCL", "TTILDE", "TMINUS", "TPLUS", "TMULT", "TDIV",
809 "TPERCENT", "TLT", "TGT", "TCIRC", "TBAR", "TQUEST", "CSIZEOF",
810 "CALIGNOF", "CTYPEOF", "ARROW_OP", "CTYPEDEF", "COFFSETOF", "INC_OP",
811 "DEC_OP", "LEFT_OP", "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP",
812 "AND_OP", "OR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN",
813 "ADD_ASSIGN", "SUB_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN",
814 "XOR_ASSIGN", "OR_ASSIGN", "CSTRUCT", "CUNION", "CENUM", "VA_ARG",
815 "VA_DCL", "QWARN", "QGLOBALS", "QMODIFIES", "QNOMODS", "QCONSTANT",
816 "QFUNCTION", "QITER", "QDEFINES", "QUSES", "QALLOCATES", "QSETS",
817 "QRELEASES", "QPRECLAUSE", "QPOSTCLAUSE", "QINVARIANT", "QALT",
818 "QUNDEF", "QKILLED", "QENDMACRO", "LLMACRO", "LLMACROITER",
819 "LLMACROEND", "TENDMACRO", "QSWITCHBREAK", "QLOOPBREAK", "QINNERBREAK",
820 "QSAFEBREAK", "QINNERCONTINUE", "QFALLTHROUGH", "QLINTNOTREACHED",
821 "QLINTFALLTHROUGH", "QLINTFALLTHRU", "QARGSUSED", "QPRINTFLIKE",
822 "QLINTPRINTFLIKE", "QSCANFLIKE", "QMESSAGELIKE", "QNOTREACHED",
823 "QCONST", "QRESTRICT", "QVOLATILE", "QINLINE", "QEXTENSION", "QEXTERN",
824 "QSTATIC", "QAUTO", "QREGISTER", "QOUT", "QIN", "QYIELD", "QONLY",
825 "QTEMP", "QSHARED", "QREF", "QUNIQUE", "QCHECKED", "QUNCHECKED",
826 "QCHECKEDSTRICT", "QCHECKMOD", "QKEEP", "QKEPT", "QPARTIAL", "QSPECIAL",
827 "QOWNED", "QDEPENDENT", "QRETURNED", "QEXPOSED", "QNULL", "QOBSERVER",
828 "QISNULL", "QEXITS", "QMAYEXIT", "QNEVEREXIT", "QTRUEEXIT",
829 "QFALSEEXIT", "QLONG", "QSIGNED", "QUNSIGNED", "QSHORT", "QUNUSED",
830 "QSEF", "QNOTNULL", "QRELNULL", "QABSTRACT", "QCONCRETE", "QMUTABLE",
831 "QIMMUTABLE", "QTRUENULL", "QFALSENULL", "QEXTERNAL", "QREFCOUNTED",
832 "QREFS", "QNEWREF", "QTEMPREF", "QKILLREF", "QRELDEF", "CGCHAR",
833 "CBOOL", "CINT", "CGFLOAT", "CDOUBLE", "CVOID", "QANYTYPE",
834 "QINTEGRALTYPE", "QUNSIGNEDINTEGRALTYPE", "QSIGNEDINTEGRALTYPE",
835 "QNULLTERMINATED", "QSETBUFFERSIZE", "QSETSTRINGLENGTH", "QMAXSET",
836 "QMAXREAD", "QTESTINRANGE", "TCAND", "IDENTIFIER", "NEW_IDENTIFIER",
837 "TYPE_NAME_OR_ID", "CANNOTATION", "CCONSTANT", "ITER_NAME",
838 "ITER_ENDNAME", "TYPE_NAME", "METASTATE_NAME", "file", "externalDefs",
839 "externalDef", "constantDecl", "fcnDecl", "@1", "plainFcn",
840 "plainNamedDecl", "namedDeclBase", "@2", "@3", "plainNamedDeclBase",
841 "@4", "@5", "iterDecl", "@6", "@7", "macroDef", "fcnDefHdr",
842 "metaStateConstraint", "metaStateSpecifier", "@8", "@9",
843 "metaStateExpression", "metaStateName", "constraintSeperator",
844 "BufConstraintList", "BufConstraint", "bufferModifier", "relationalOp",
845 "BufConstraintExpr", "BufConstraintTerm", "BufConstraintSrefExpr",
846 "BufUnaryOp", "BufBinaryOp", "functionClauses", "functionClausesPlain",
847 "functionClause", "functionClausePlain", "globalsClause",
848 "globalsClausePlain", "@10", "nomodsClause", "modifiesClause",
849 "modifiesClausePlain", "@11", "flagSpec", "flagId", "optWarnClause",
850 "warnClause", "warnClausePlain", "globIdList", "globIdListExpr",
851 "optGlobQuals", "globId", "globQual", "stateTag", "conditionTag",
852 "fcnDefHdrAux", "fcnBody", "@12", "@13", "@14", "fcnDef", "locModifies",
853 "modListExpr", "mExpr", "modList", "specClauseListExpr",
854 "optSpecClauseList", "specClauseList", "primaryExpr", "@15",
855 "postfixExpr", "argumentExprList", "unaryExpr", "fieldDesignator",
856 "offsetofExpr", "sizeofExpr", "@16", "sizeofExprAux", "castExpr",
857 "timesExpr", "plusExpr", "shiftExpr", "relationalExpr", "equalityExpr",
858 "bitandExpr", "xorExpr", "bitorExpr", "andExpr", "@17", "orExpr", "@18",
859 "conditionalExpr", "@19", "@20", "assignExpr", "expr", "optExpr",
860 "constantExpr", "initializer", "instanceDecl", "@21", "@22",
861 "namedInitializer", "@23", "typeDecl", "@24", "IsType", "PushType",
862 "namedInitializerList", "namedInitializerListAux", "optDeclarators",
863 "init", "designation", "designatorList", "designator", "initList",
864 "storageSpecifier", "stateClause", "stateClausePlain", "@25",
865 "conditionClause", "startConditionClause", "conditionClausePlain",
866 "@26", "@27", "functionConstraint", "exitsQualifier", "checkQualifier",
867 "stateQualifier", "paramQualifier", "visibilityQualifier",
868 "returnQualifier", "typedefQualifier", "refcountQualifier",
869 "typeModifier", "definedQualifier", "typeQualifier", "typeSpecifier",
870 "completeType", "completeTypeSpecifier", "altType",
871 "completeTypeSpecifierAux", "optCompleteType", "optStructInvariant",
872 "suSpc", "@28", "@29", "@30", "@31", "@32", "@33", "@34", "@35",
873 "NotType", "structDeclList", "structDecl", "structNamedDeclList",
874 "structNamedDecl", "enumSpc", "@36", "enumeratorList", "enumerator",
875 "optNamedDecl", "namedDecl", "genericParamList", "innerMods",
876 "innerModsList", "pointers", "paramIdList", "idList", "paramTypeList",
877 "paramList", "@37", "@38", "paramDecl", "typeExpression",
878 "abstractDecl", "optAbstractDeclBase", "abstractDeclBase", "stmt",
879 "iterBody", "endBody", "iterDefStmtList", "iterDefIterationStmt",
880 "forPred", "@39", "@40", "partialIterStmt", "@41", "iterDefStmt",
881 "iterSelectionStmt", "@42", "openScope", "closeScope", "macroBody",
882 "stmtErr", "labeledStmt", "optExtraFallThroughs", "caseStmt", "@43",
883 "@44", "defaultStmt", "@45", "@46", "compoundStmt", "compoundStmtErr",
884 "CreateInnerScope", "DeleteInnerScope", "CreateStructInnerScope",
885 "DeleteStructInnerScope", "DeleteInnerScopeSafe", "compoundStmtRest",
886 "compoundStmtAux", "compoundStmtAuxErr", "stmtListErr",
887 "initializerList", "typeInitializerList", "typeInitializer", "stmtList",
888 "expressionStmt", "expressionStmtErr", "ifPred", "selectionStmt", "@47",
889 "@48", "whilePred", "iterWhilePred", "iterStmt", "@49", "@50",
890 "iterArgList", "@51", "iterArgExpr", "cconstantExpr", "primaryIterExpr",
891 "postfixIterExpr", "unaryIterExpr", "castIterExpr", "timesIterExpr",
892 "plusIterExpr", "shiftIterExpr", "relationalIterExpr",
893 "equalityIterExpr", "bitandIterExpr", "xorIterExpr", "bitorIterExpr",
894 "andIterExpr", "orIterExpr", "conditionalIterExpr", "@52", "@53",
895 "assignIterExpr", "endIter", "doHeader", "iterationStmt",
896 "iterationStmtErr", "jumpStmt", "optSemi", "optComma", "id", "newId",
901 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
902 static const short yyr1[] =
904 0, 195, 195, 196, 196, 197, 197, 197, 197, 197,
905 197, 197, 197, 198, 198, 200, 199, 201, 201, 202,
906 202, 203, 203, 203, 203, 204, 203, 205, 203, 206,
907 206, 206, 206, 207, 206, 208, 206, 210, 211, 209,
908 212, 212, 212, 212, 213, 214, 216, 215, 217, 215,
909 218, 218, 219, 220, 220, 221, 221, 222, 223, 223,
910 224, 224, 224, 225, 225, 225, 226, 226, 227, 227,
911 227, 227, 227, 227, 227, 227, 228, 229, 229, 230,
912 230, 231, 231, 232, 232, 232, 232, 232, 232, 233,
913 233, 233, 233, 233, 233, 234, 236, 235, 237, 238,
914 240, 239, 241, 241, 242, 243, 243, 244, 245, 245,
915 246, 246, 247, 248, 248, 249, 249, 249, 250, 250,
916 250, 250, 250, 251, 251, 251, 251, 251, 252, 252,
917 253, 253, 255, 254, 256, 257, 254, 258, 259, 259,
918 260, 260, 260, 260, 260, 260, 260, 260, 260, 261,
919 261, 262, 262, 263, 263, 263, 263, 263, 263, 263,
920 263, 264, 264, 265, 265, 266, 266, 266, 266, 266,
921 266, 267, 266, 268, 268, 268, 268, 268, 268, 268,
922 268, 268, 268, 269, 269, 270, 270, 270, 270, 270,
923 270, 270, 270, 270, 270, 270, 271, 271, 271, 272,
924 274, 273, 275, 275, 275, 275, 276, 276, 277, 277,
925 277, 277, 278, 278, 278, 279, 279, 279, 280, 280,
926 280, 280, 280, 281, 281, 281, 282, 282, 283, 283,
927 284, 284, 285, 286, 285, 287, 288, 287, 289, 290,
928 291, 289, 292, 292, 292, 292, 292, 292, 292, 292,
929 292, 292, 292, 292, 293, 293, 294, 294, 295, 296,
930 296, 296, 297, 298, 297, 299, 297, 300, 301, 300,
931 303, 302, 302, 302, 304, 305, 306, 307, 307, 308,
932 308, 309, 309, 309, 309, 310, 310, 311, 311, 312,
933 312, 313, 313, 314, 314, 314, 314, 314, 315, 317,
934 316, 318, 319, 321, 320, 322, 320, 323, 323, 324,
935 324, 324, 324, 324, 325, 325, 325, 325, 326, 326,
936 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
937 326, 326, 326, 326, 326, 327, 327, 328, 328, 329,
938 329, 330, 330, 330, 330, 331, 331, 331, 331, 331,
939 331, 332, 332, 332, 332, 333, 333, 333, 333, 334,
940 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
941 334, 335, 335, 335, 335, 335, 335, 335, 335, 335,
942 335, 335, 335, 335, 335, 336, 337, 337, 338, 338,
943 339, 339, 339, 340, 340, 341, 343, 344, 342, 345,
944 346, 342, 342, 342, 347, 348, 342, 349, 350, 342,
945 342, 342, 342, 342, 351, 352, 352, 352, 353, 353,
946 354, 354, 355, 355, 355, 356, 357, 356, 356, 358,
947 358, 358, 359, 359, 360, 360, 360, 360, 361, 361,
948 362, 362, 363, 363, 363, 364, 364, 365, 365, 365,
949 365, 366, 366, 367, 367, 368, 368, 368, 370, 369,
950 371, 369, 372, 372, 373, 373, 374, 374, 374, 375,
951 375, 376, 376, 376, 376, 376, 376, 376, 376, 376,
952 377, 377, 377, 377, 377, 377, 377, 377, 377, 378,
953 379, 380, 380, 381, 381, 381, 381, 383, 384, 382,
954 386, 385, 385, 387, 387, 387, 387, 387, 387, 387,
955 387, 387, 387, 387, 387, 387, 389, 388, 390, 391,
956 392, 392, 393, 393, 393, 393, 393, 393, 393, 393,
957 393, 393, 393, 394, 394, 395, 395, 397, 396, 398,
958 396, 400, 399, 401, 399, 402, 402, 403, 404, 405,
959 406, 407, 408, 409, 409, 409, 409, 409, 409, 409,
960 409, 410, 411, 411, 411, 411, 412, 412, 413, 413,
961 414, 414, 415, 415, 416, 416, 417, 417, 418, 418,
962 418, 419, 420, 421, 420, 422, 420, 423, 424, 426,
963 427, 425, 428, 429, 428, 430, 430, 430, 430, 431,
964 431, 432, 432, 433, 433, 433, 433, 433, 433, 433,
965 433, 433, 434, 434, 434, 434, 434, 434, 434, 434,
966 434, 434, 435, 435, 436, 436, 436, 436, 437, 437,
967 437, 438, 438, 438, 439, 439, 439, 439, 439, 440,
968 440, 440, 441, 441, 442, 442, 443, 443, 444, 444,
969 445, 445, 446, 447, 448, 446, 449, 449, 449, 449,
970 449, 449, 449, 449, 449, 449, 449, 449, 450, 450,
971 451, 452, 452, 452, 453, 453, 453, 453, 454, 454,
972 454, 454, 454, 454, 454, 454, 454, 454, 455, 455,
973 456, 456, 457, 458, 458, 458, 458, 458, 459, 459,
977 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
978 static const short yyr2[] =
980 0, 0, 1, 1, 2, 2, 1, 1, 1, 1,
981 1, 1, 1, 8, 11, 0, 5, 1, 3, 1,
982 2, 1, 6, 3, 6, 0, 6, 0, 7, 1,
983 6, 3, 6, 0, 6, 0, 7, 0, 0, 10,
984 3, 3, 3, 2, 1, 3, 0, 4, 0, 4,
985 1, 3, 1, 1, 1, 3, 1, 3, 1, 1,
986 1, 1, 1, 1, 4, 5, 1, 1, 1, 1,
987 3, 4, 2, 3, 3, 3, 1, 1, 1, 0,
988 2, 0, 2, 1, 1, 1, 1, 1, 1, 1,
989 1, 1, 1, 1, 1, 2, 0, 4, 1, 2,
990 0, 3, 1, 3, 1, 1, 0, 2, 3, 2,
991 1, 3, 2, 0, 2, 1, 1, 1, 1, 1,
992 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
993 1, 3, 0, 3, 0, 0, 4, 2, 2, 1,
994 1, 1, 1, 3, 4, 2, 3, 3, 3, 1,
995 1, 1, 3, 1, 1, 3, 4, 2, 3, 3,
996 3, 0, 1, 1, 3, 1, 1, 1, 3, 1,
997 1, 0, 4, 1, 4, 3, 4, 6, 5, 5,
998 2, 2, 7, 1, 3, 1, 2, 2, 2, 2,
999 2, 2, 2, 2, 1, 1, 3, 4, 1, 9,
1000 0, 3, 4, 2, 4, 2, 1, 4, 1, 3,
1001 3, 3, 1, 3, 3, 1, 3, 3, 1, 3,
1002 3, 3, 3, 1, 3, 3, 1, 3, 1, 3,
1003 1, 3, 1, 0, 4, 1, 0, 4, 1, 0,
1004 0, 7, 1, 3, 3, 3, 3, 3, 3, 3,
1005 3, 3, 3, 3, 1, 3, 0, 1, 1, 1,
1006 1, 1, 3, 0, 9, 0, 11, 2, 0, 6,
1007 0, 8, 4, 4, 0, 0, 2, 1, 4, 0,
1008 4, 1, 3, 4, 2, 2, 2, 1, 2, 3,
1009 2, 1, 3, 1, 1, 1, 1, 1, 2, 0,
1010 6, 2, 2, 0, 6, 0, 5, 1, 1, 1,
1011 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1012 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1013 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1014 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1015 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1016 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1017 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1018 2, 2, 2, 2, 2, 3, 1, 4, 1, 3,
1019 2, 2, 2, 0, 1, 0, 0, 0, 12, 0,
1020 0, 11, 6, 6, 0, 0, 10, 0, 0, 10,
1021 5, 5, 4, 4, 0, 1, 1, 2, 5, 3,
1022 2, 4, 1, 3, 4, 6, 0, 8, 4, 1,
1023 3, 2, 1, 4, 1, 1, 2, 2, 1, 2,
1024 1, 2, 1, 1, 1, 1, 2, 1, 2, 2,
1025 3, 1, 3, 1, 3, 1, 1, 3, 0, 2,
1026 0, 4, 4, 1, 1, 2, 1, 1, 2, 0,
1027 1, 5, 2, 3, 3, 4, 3, 4, 4, 5,
1028 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1029 1, 1, 2, 2, 7, 6, 2, 0, 0, 10,
1030 0, 6, 1, 1, 1, 1, 2, 1, 1, 1,
1031 1, 1, 1, 1, 3, 1, 0, 3, 2, 2,
1032 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1033 3, 1, 1, 2, 2, 0, 2, 0, 4, 0,
1034 6, 0, 3, 0, 5, 3, 2, 3, 0, 0,
1035 0, 0, 0, 1, 2, 2, 3, 2, 3, 3,
1036 4, 2, 2, 3, 3, 4, 1, 2, 1, 2,
1037 1, 3, 1, 4, 1, 2, 1, 2, 1, 2,
1038 1, 4, 2, 0, 5, 0, 6, 4, 4, 0,
1039 0, 10, 1, 0, 4, 1, 1, 1, 1, 1,
1040 2, 1, 3, 1, 4, 3, 4, 6, 5, 5,
1041 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
1042 2, 1, 1, 4, 1, 3, 3, 3, 1, 3,
1043 3, 1, 3, 3, 1, 3, 3, 3, 3, 1,
1044 3, 3, 1, 3, 1, 3, 1, 3, 1, 3,
1045 1, 3, 1, 0, 0, 7, 1, 3, 3, 3,
1046 3, 3, 3, 3, 3, 3, 3, 3, 1, 0,
1047 1, 2, 7, 2, 2, 7, 6, 2, 3, 2,
1048 3, 2, 3, 3, 3, 3, 2, 3, 0, 1,
1049 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1053 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
1054 doesn't specify something else to do. Zero means the default is an
1056 static const short yydefact[] =
1058 0, 12, 11, 447, 0, 414, 260, 414, 15, 0,
1059 0, 0, 0, 274, 274, 274, 294, 293, 295, 296,
1060 297, 355, 356, 320, 322, 321, 325, 326, 314, 316,
1061 317, 315, 323, 324, 357, 358, 318, 319, 335, 331,
1062 327, 332, 328, 309, 310, 313, 311, 312, 352, 353,
1063 354, 351, 337, 336, 330, 329, 341, 342, 343, 344,
1064 339, 340, 338, 345, 346, 349, 350, 347, 348, 414,
1065 414, 414, 414, 414, 414, 414, 414, 414, 414, 333,
1066 692, 693, 697, 334, 694, 695, 698, 0, 3, 6,
1067 7, 438, 8, 9, 134, 44, 688, 10, 259, 261,
1068 0, 393, 274, 274, 274, 274, 274, 274, 274, 274,
1069 414, 274, 393, 393, 414, 386, 414, 0, 414, 130,
1070 274, 696, 21, 414, 442, 443, 444, 445, 448, 449,
1071 274, 277, 274, 274, 270, 414, 699, 414, 414, 697,
1072 0, 532, 274, 541, 0, 0, 0, 670, 0, 0,
1073 0, 0, 274, 578, 0, 274, 274, 274, 274, 274,
1074 274, 274, 274, 274, 0, 43, 0, 0, 0, 0,
1075 0, 535, 274, 170, 166, 169, 599, 589, 173, 185,
1076 206, 195, 194, 208, 212, 215, 218, 223, 226, 228,
1077 230, 232, 235, 238, 242, 254, 580, 200, 0, 0,
1078 566, 522, 523, 524, 525, 0, 0, 526, 274, 527,
1079 0, 528, 167, 0, 529, 531, 165, 0, 515, 0,
1080 576, 0, 548, 502, 0, 0, 0, 511, 0, 512,
1081 491, 510, 507, 508, 503, 504, 505, 0, 0, 509,
1082 516, 0, 0, 513, 490, 0, 359, 361, 360, 371,
1083 373, 372, 374, 375, 376, 377, 378, 379, 380, 4,
1084 274, 0, 132, 137, 414, 689, 5, 414, 394, 390,
1085 364, 366, 363, 365, 368, 367, 369, 370, 384, 362,
1086 391, 392, 0, 274, 274, 382, 274, 274, 0, 383,
1087 439, 381, 446, 450, 274, 166, 169, 0, 414, 464,
1088 0, 165, 414, 0, 276, 414, 0, 267, 274, 688,
1089 17, 19, 0, 414, 274, 29, 458, 206, 258, 537,
1090 0, 274, 274, 274, 274, 0, 679, 681, 686, 0,
1091 548, 0, 0, 0, 188, 193, 192, 191, 190, 189,
1092 0, 274, 186, 187, 274, 0, 0, 0, 0, 0,
1093 535, 0, 274, 534, 274, 480, 481, 482, 483, 0,
1094 484, 485, 274, 487, 274, 486, 488, 548, 274, 274,
1095 180, 181, 0, 274, 274, 274, 274, 274, 274, 274,
1096 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
1097 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
1098 233, 239, 236, 579, 274, 0, 677, 40, 0, 549,
1099 567, 582, 674, 600, 0, 533, 274, 0, 0, 0,
1100 577, 41, 492, 496, 568, 414, 506, 518, 519, 0,
1101 0, 0, 42, 23, 274, 458, 414, 414, 274, 262,
1102 131, 414, 0, 388, 0, 414, 0, 414, 0, 274,
1103 0, 700, 274, 274, 0, 466, 465, 467, 701, 274,
1104 273, 274, 272, 268, 414, 0, 274, 0, 414, 274,
1105 20, 455, 0, 0, 440, 456, 274, 0, 542, 0,
1106 585, 0, 257, 0, 678, 687, 548, 0, 168, 274,
1107 530, 274, 0, 0, 682, 683, 684, 685, 680, 536,
1108 274, 543, 0, 673, 414, 546, 671, 0, 0, 175,
1109 0, 183, 0, 0, 0, 243, 244, 245, 246, 247,
1110 248, 249, 250, 251, 252, 253, 209, 210, 211, 214,
1111 213, 216, 217, 219, 220, 221, 222, 224, 225, 227,
1112 229, 231, 274, 274, 274, 255, 274, 274, 201, 562,
1113 699, 566, 0, 414, 547, 583, 0, 0, 514, 500,
1114 274, 569, 517, 0, 0, 25, 0, 553, 274, 574,
1115 133, 414, 274, 548, 274, 263, 387, 274, 404, 0,
1116 412, 407, 0, 413, 0, 429, 432, 426, 428, 385,
1117 472, 0, 458, 468, 274, 0, 278, 274, 274, 688,
1118 16, 31, 274, 458, 274, 18, 441, 451, 453, 37,
1119 460, 414, 459, 463, 538, 581, 0, 587, 274, 172,
1120 274, 207, 414, 0, 274, 539, 0, 545, 561, 0,
1121 590, 274, 176, 174, 274, 274, 234, 0, 237, 274,
1122 203, 274, 205, 563, 564, 274, 274, 274, 588, 274,
1123 414, 274, 414, 79, 27, 554, 557, 274, 274, 555,
1124 274, 575, 136, 0, 265, 274, 389, 410, 550, 396,
1125 411, 550, 399, 274, 431, 274, 0, 473, 476, 274,
1126 0, 474, 0, 458, 106, 274, 274, 274, 0, 33,
1127 0, 274, 0, 81, 457, 274, 469, 274, 0, 274,
1128 572, 690, 570, 0, 0, 0, 544, 274, 274, 184,
1129 178, 179, 240, 0, 0, 565, 584, 0, 274, 274,
1130 274, 274, 274, 274, 274, 274, 274, 0, 166, 169,
1131 185, 206, 194, 212, 215, 218, 223, 226, 228, 230,
1132 232, 235, 0, 593, 592, 167, 603, 612, 622, 624,
1133 628, 631, 634, 639, 642, 644, 646, 648, 650, 652,
1134 656, 595, 165, 0, 24, 0, 96, 100, 98, 123,
1135 124, 125, 126, 127, 128, 129, 26, 79, 83, 0,
1136 85, 84, 0, 88, 0, 414, 414, 86, 0, 87,
1137 305, 0, 79, 558, 559, 274, 556, 22, 274, 279,
1138 414, 402, 550, 414, 403, 550, 425, 430, 274, 0,
1139 0, 477, 475, 478, 0, 0, 105, 274, 274, 0,
1140 281, 269, 274, 0, 287, 0, 274, 0, 414, 81,
1141 35, 0, 452, 454, 38, 81, 89, 91, 90, 94,
1142 92, 93, 461, 434, 0, 274, 469, 435, 470, 586,
1143 497, 690, 274, 0, 0, 177, 540, 0, 593, 274,
1144 202, 204, 676, 0, 0, 188, 193, 192, 191, 190,
1145 189, 186, 187, 274, 274, 274, 180, 181, 0, 274,
1146 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
1147 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
1148 274, 274, 274, 274, 274, 274, 233, 653, 236, 501,
1149 0, 495, 104, 109, 102, 113, 688, 80, 95, 99,
1150 107, 299, 302, 298, 0, 303, 301, 28, 560, 274,
1151 0, 416, 414, 414, 415, 414, 414, 414, 433, 274,
1152 471, 479, 271, 291, 0, 0, 290, 284, 285, 288,
1153 286, 279, 13, 32, 34, 81, 30, 688, 82, 458,
1154 462, 436, 437, 274, 0, 571, 182, 0, 198, 0,
1155 548, 241, 675, 168, 274, 0, 175, 0, 0, 0,
1156 0, 657, 658, 659, 660, 661, 662, 663, 664, 665,
1157 666, 667, 209, 210, 211, 214, 213, 216, 217, 219,
1158 220, 221, 222, 224, 225, 227, 229, 231, 649, 274,
1159 651, 274, 494, 108, 0, 118, 119, 120, 121, 122,
1160 688, 110, 414, 113, 0, 0, 141, 142, 101, 151,
1161 688, 139, 140, 0, 48, 0, 0, 58, 59, 69,
1162 67, 308, 0, 307, 56, 76, 0, 63, 66, 0,
1163 688, 68, 161, 279, 274, 414, 0, 274, 417, 405,
1164 414, 408, 414, 427, 282, 274, 289, 688, 36, 0,
1165 274, 498, 573, 274, 274, 0, 672, 669, 207, 274,
1166 176, 174, 274, 274, 0, 594, 103, 113, 97, 116,
1167 112, 117, 115, 114, 0, 145, 0, 0, 0, 0,
1168 138, 0, 0, 154, 163, 688, 153, 0, 0, 66,
1169 0, 72, 0, 54, 53, 0, 61, 60, 62, 0,
1170 0, 0, 0, 0, 0, 274, 688, 162, 0, 264,
1171 274, 419, 274, 274, 414, 422, 0, 397, 0, 400,
1172 283, 292, 0, 39, 274, 0, 199, 0, 196, 668,
1173 549, 0, 178, 179, 654, 111, 146, 143, 149, 0,
1174 150, 147, 148, 152, 0, 157, 0, 0, 0, 0,
1175 274, 0, 78, 77, 0, 73, 0, 50, 45, 46,
1176 55, 66, 57, 70, 0, 74, 75, 0, 0, 306,
1177 274, 274, 280, 274, 274, 0, 420, 274, 406, 0,
1178 409, 0, 14, 499, 197, 591, 177, 274, 144, 158,
1179 155, 0, 159, 160, 164, 300, 52, 49, 0, 0,
1180 71, 47, 64, 304, 266, 423, 414, 418, 274, 395,
1181 401, 655, 156, 65, 51, 421, 424, 398, 0, 0,
1185 static const short yydefgoto[] =
1187 1238, 87, 88, 89, 90, 138, 309, 310, 91, 653,
1188 792, 311, 829, 955, 92, 693, 957, 931, 94, 1041,
1189 1177, 1123, 1107, 1178, 1217, 1115, 1043, 1044, 1045, 1119,
1190 1046, 1047, 1181, 1049, 1174, 776, 834, 777, 835, 778,
1191 836, 915, 837, 781, 838, 916, 913, 914, 815, 783,
1192 784, 1020, 1021, 1022, 1090, 1023, 785, 786, 95, 263,
1193 436, 264, 573, 96, 1028, 1158, 1159, 1030, 1104, 1126,
1194 1105, 178, 330, 179, 510, 180, 967, 181, 182, 405,
1195 548, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1196 192, 542, 193, 544, 194, 543, 859, 195, 224, 483,
1197 319, 424, 98, 665, 798, 131, 598, 99, 305, 197,
1198 261, 132, 133, 930, 821, 822, 823, 824, 944, 101,
1199 787, 840, 1033, 789, 790, 841, 1052, 924, 1050, 102,
1200 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1201 113, 299, 425, 442, 115, 269, 1237, 116, 802, 1199,
1202 805, 1201, 668, 1136, 671, 1138, 117, 933, 934, 1133,
1203 1134, 118, 676, 584, 585, 845, 135, 473, 127, 128,
1204 120, 606, 607, 474, 475, 476, 695, 612, 332, 810,
1205 847, 457, 353, 225, 245, 226, 227, 354, 963, 1145,
1206 229, 649, 230, 231, 429, 232, 233, 199, 410, 355,
1207 351, 356, 477, 705, 357, 320, 626, 358, 204, 359,
1208 554, 800, 1059, 238, 570, 505, 409, 206, 571, 701,
1209 702, 572, 360, 207, 208, 361, 646, 616, 362, 241,
1210 363, 367, 708, 743, 910, 744, 212, 746, 747, 748,
1211 749, 750, 751, 752, 753, 754, 755, 756, 757, 758,
1212 759, 760, 1009, 1207, 761, 1150, 364, 365, 214, 366,
1213 266, 853, 301, 217, 123
1216 static const short yypact[] =
1218 2361,-32768,-32768, 79, 57, 5475,-32768, 6674,-32768, 810,
1219 3354, 3656, 3656,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1220 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1221 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1222 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1223 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1224 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1225 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1226 -32768,-32768, 589,-32768,-32768,-32768,-32768, 2541,-32768,-32768,
1227 -32768, 91,-32768,-32768, 139,-32768, 160,-32768,-32768,-32768,
1228 183, 6266,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1229 -32768,-32768, 6266, 6266, 169, 150,-32768, 594,-32768,-32768,
1230 810,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 79,-32768,
1231 1888,-32768, 206,-32768, 169,-32768,-32768,-32768, 5475,-32768,
1232 281,-32768, 1888,-32768, 287, 337, 355,-32768, 381, 810,
1233 395, 410, 1173,-32768, 2923, 1888, 1888, 1888, 1888, 1888,
1234 1888,-32768, 5688, 5688, 401,-32768, 481, 487, 500, 502,
1235 443, 432, 4885,-32768, 545, 556,-32768, 561,-32768, 860,
1236 954,-32768,-32768,-32768, 878, 219, 282, 412, 270, 530,
1237 559, 548, 570, 125,-32768,-32768, 378,-32768, 3762, 538,
1238 547,-32768,-32768,-32768,-32768, 674, 3460,-32768, 4885,-32768,
1239 3762,-32768, 508, 3762,-32768,-32768, 696, 703,-32768, 709,
1240 -32768, 3116, 561, 726, 588, 658, 3505,-32768, 3656,-32768,
1241 -32768,-32768, 5994,-32768,-32768,-32768,-32768, 720, 751,-32768,
1242 -32768, 3656, 3762,-32768,-32768, 695,-32768,-32768,-32768,-32768,
1243 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1244 774, 779,-32768,-32768, 6538,-32768,-32768,-32768,-32768,-32768,
1245 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1246 -32768,-32768, 816, 644,-32768,-32768, 810, 810, 359,-32768,
1247 91,-32768,-32768,-32768, 5315,-32768,-32768, 347, 5858, 655,
1248 803,-32768,-32768, 839,-32768,-32768, 852, 868, 644, 160,
1249 -32768, 274, 883,-32768, 810,-32768, 156,-32768,-32768,-32768,
1250 904, 1888, 1888, 1888, 4834, 921,-32768,-32768,-32768, 652,
1251 917, 345, 932, 940,-32768,-32768,-32768,-32768,-32768,-32768,
1252 965, 5315,-32768,-32768, 1888, 1011, 1014, 1032, 1043, 1046,
1253 432, 482, 5342,-32768, 4885,-32768,-32768,-32768,-32768, 1015,
1254 -32768,-32768, 4885,-32768, 4885,-32768,-32768,-32768, 1201, 1888,
1255 -32768,-32768, 194, 1888, 1888, 1888, 1888, 1888, 1888, 1888,
1256 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888,
1257 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888,
1258 -32768,-32768,-32768,-32768, 1888, 506,-32768,-32768, 2730,-32768,
1259 -32768, 1044,-32768,-32768, 1057,-32768, 1888, 419, 1069, 1052,
1260 -32768,-32768,-32768,-32768,-32768, 169, 5994,-32768,-32768, 3656,
1261 3309, 1084,-32768,-32768, 1888, 398, 3868, 4968, 644,-32768,
1262 734, 6674, 1009, 1082, 1089, 1095, 1097, 1095, 810, 1098,
1263 389,-32768,-32768, 5374, 1085, 408,-32768, 442,-32768, 644,
1264 -32768, 644,-32768,-32768,-32768, 1036, 1096, 1102,-32768, 644,
1265 274,-32768, 810, 1104,-32768, 1111, 810, 1112,-32768, 477,
1266 1114, 498, 1114, 1115,-32768,-32768, 917, 1113,-32768, 5363,
1267 -32768,-32768, 1116, 1119,-32768,-32768,-32768,-32768,-32768,-32768,
1268 1888,-32768, 1118,-32768, 3868,-32768,-32768, 1125, 1121,-32768,
1269 549,-32768, 158, 810, 810,-32768,-32768,-32768,-32768,-32768,
1270 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 878,
1271 878, 219, 219, 282, 282, 282, 282, 412, 412, 270,
1272 530, 559, 1888, 1888, 1888,-32768, 5709, 5757,-32768,-32768,
1273 2256,-32768, 3611, 4056,-32768,-32768, 1136, 604,-32768,-32768,
1274 644,-32768,-32768, 1138, 1110,-32768, 1139,-32768, 2146,-32768,
1275 -32768, 4244, 4432, 917,-32768, 1140,-32768,-32768, 1145, 1151,
1276 -32768, 1152, 1154,-32768, 599,-32768, 1148,-32768,-32768,-32768,
1277 -32768, 1149, 101, 442, 5645, 1153,-32768, 206,-32768, 49,
1278 -32768,-32768, 1888, 480, 644,-32768,-32768, 1158,-32768,-32768,
1279 1170, 6674,-32768,-32768,-32768,-32768, 1155,-32768, 4834,-32768,
1280 5395,-32768,-32768, 1162,-32768,-32768, 1160,-32768,-32768, 1159,
1281 -32768, 1888,-32768,-32768,-32768,-32768, 548, 742, 570, 5315,
1282 -32768, 5315,-32768,-32768,-32768, 4477, 4885, 1888,-32768, 5778,
1283 -32768, 1888,-32768, 1004,-32768,-32768,-32768, 4583, 4628,-32768,
1284 4734,-32768,-32768, 1161,-32768,-32768,-32768,-32768,-32768, 1164,
1285 -32768,-32768, 1165,-32768, 810,-32768, 810,-32768,-32768, 44,
1286 1167,-32768, 1163, 103, 1120, 1798,-32768,-32768, 1169,-32768,
1287 1175,-32768, 199, 1004,-32768, 810, 689, 4885, 1171, 5395,
1288 -32768, 1166,-32768, 1177, 1183, 1188,-32768, 1888, 5778,-32768,
1289 -32768,-32768,-32768, 1186, 1189,-32768,-32768, 691, 5315, 1888,
1290 1888, 1888, 1888, 1888, 1888, 5688, 5688, 1191, 705, 729,
1291 927, 1090, 748, 1071, 623, 727, 539, 760, 1184, 1178,
1292 1187, 1168, 318, 1193,-32768, 41,-32768,-32768,-32768,-32768,
1293 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1294 -32768,-32768, 762, 775,-32768, 1050,-32768,-32768,-32768,-32768,
1295 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1004,-32768, 1132,
1296 -32768,-32768, 1137,-32768, 1147,-32768,-32768,-32768, 1150,-32768,
1297 4818, 1172, 1004,-32768,-32768, 4779,-32768,-32768,-32768,-32768,
1298 6402,-32768,-32768, 6402,-32768,-32768,-32768,-32768, 1888, 819,
1299 1204,-32768,-32768,-32768, 1211, 1221,-32768, 1798, 1888, 810,
1300 -32768,-32768, 1798, 846,-32768, 1218, 1798, 1174,-32768, 1004,
1301 -32768, 1217,-32768,-32768,-32768, 1004,-32768,-32768,-32768,-32768,
1302 -32768,-32768,-32768, 91, 1219,-32768, 656,-32768, 442,-32768,
1303 -32768, 1166, 5294, 1226, 810,-32768,-32768, 788, 1222, 1888,
1304 1162, 1162, 1237, 808, 1231, 820, 830, 841, 900, 907,
1305 910, 925, 935, 1888, 5656, 1888, 943, 960, 339, 1888,
1306 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888,
1307 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888,
1308 1888, 1888, 1888, 1888, 1888, 1888, 1888,-32768, 1888,-32768,
1309 1236, 1240,-32768, 1070, 1224, 422, 377,-32768,-32768,-32768,
1310 -32768,-32768,-32768,-32768, 520,-32768,-32768,-32768,-32768, 1798,
1311 699,-32768, 169, 5128,-32768, 6402, 5128, 6402,-32768,-32768,
1312 -32768,-32768,-32768,-32768, 913, 1232,-32768,-32768,-32768,-32768,
1313 -32768,-32768,-32768,-32768,-32768, 1004,-32768, 160,-32768, 606,
1314 -32768,-32768,-32768, 5677, 1247,-32768,-32768, 622,-32768, 1244,
1315 917,-32768,-32768, 982, 5363, 1249, 985, 1016, 229, 810,
1316 810,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1317 -32768,-32768, 1018, 1019, 1021, 858, 948, 603, 791, 86,
1318 123, 458, 485, 684, 800, 97, 537, 163, 548, 1888,
1319 570, 5778,-32768, 508, 1050,-32768,-32768,-32768,-32768,-32768,
1320 713,-32768, 6130, 422, 407, 407,-32768,-32768,-32768, 115,
1321 770,-32768,-32768, 60,-32768, 784, 78,-32768,-32768,-32768,
1322 -32768,-32768, 1245,-32768, 15,-32768, 634,-32768, 324, 1250,
1323 160,-32768, 60,-32768,-32768,-32768, 1257, 619,-32768,-32768,
1324 5128,-32768, 5128,-32768,-32768, 1294,-32768, 838,-32768, 1185,
1325 304,-32768,-32768,-32768, 1888, 810,-32768, 1086, 1024,-32768,
1326 1026, 1034,-32768,-32768, 1051,-32768,-32768, 422,-32768,-32768,
1327 -32768,-32768,-32768,-32768, 64, 115, 677, 810, 810, 407,
1328 -32768, 60, 60,-32768, 426, 864,-32768, 1255, 1049, 105,
1329 78, 449, 80,-32768,-32768, 784,-32768,-32768,-32768, 784,
1330 19, 810, 810, 1258, 784,-32768, 160, 1260, 969,-32768,
1331 644,-32768,-32768, 1261,-32768, 1262, 1259,-32768, 1263,-32768,
1332 -32768,-32768, 1194,-32768, 555, 1264,-32768, 275,-32768,-32768,
1333 -32768, 1266, 1035, 1041,-32768,-32768,-32768,-32768, 115, 1265,
1334 508,-32768,-32768, 115, 577, 426, 732, 810, 810, 60,
1335 -32768, 1092,-32768,-32768, 784,-32768, 105, 1253,-32768, 449,
1336 -32768, 449,-32768,-32768, 1268,-32768,-32768, 1092, 1271,-32768,
1337 -32768,-32768,-32768, 1888, 619, 1269,-32768,-32768,-32768, 1277,
1338 -32768, 1278,-32768,-32768,-32768,-32768, 1042, 1888,-32768,-32768,
1339 -32768, 1272,-32768,-32768, 426,-32768,-32768,-32768, 1276, 80,
1340 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1888,-32768,
1341 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1302, 1303,
1345 static const short yypgoto[] =
1347 -32768,-32768, 1220,-32768,-32768,-32768,-32768, -410, -114,-32768,
1348 -32768, 990,-32768,-32768,-32768,-32768,-32768, 76,-32768,-32768,
1349 382,-32768,-32768, 89, 118,-32768, 197,-32768,-32768,-32768,
1350 -955,-32768, -896,-32768,-32768, -486, -719,-32768,-32768,-32768,
1351 -574,-32768, -557,-32768, -548,-32768, 301,-32768,-32768, 633,
1352 -618,-32768, 232, 298,-32768,-32768,-32768,-32768,-32768,-32768,
1353 -32768,-32768,-32768,-32768,-32768, -869, 164,-32768, -1004,-32768,
1354 277,-32768,-32768, -613, 457, 1242,-32768,-32768, -607,-32768,
1355 -32768, -106, -373, -368, -359, -372, -377, -367, -374, -525,
1356 -496,-32768, -585,-32768, -124,-32768,-32768, 1156, 1363, -592,
1357 -426, 16,-32768,-32768,-32768, -455,-32768,-32768,-32768, 313,
1358 -255, 871,-32768, -891, -749,-32768,-32768, 510,-32768,-32768,
1359 -32768, -519,-32768,-32768,-32768, -507,-32768,-32768,-32768,-32768,
1360 -32768, 544,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1361 -32768,-32768, 58, 758,-32768, 979,-32768,-32768,-32768,-32768,
1362 -32768,-32768,-32768,-32768,-32768,-32768, 826, -703, -578,-32768,
1363 142,-32768,-32768, 661, 664, 493, 1, -380, 1212,-32768,
1364 4,-32768,-32768, -562,-32768,-32768,-32768, 650, -117, 1047,
1365 -32768, -453, -165, 1335,-32768, 1107,-32768, 717,-32768,-32768,
1366 -32768,-32768, -135,-32768,-32768,-32768,-32768,-32768, 47, 1299,
1367 999, 1449,-32768,-32768, 1540,-32768,-32768, -311,-32768, 27,
1368 200, -485, -867,-32768, 847,-32768,-32768, 944, -203, 654,
1369 503, -424, 33,-32768, 71, 109,-32768,-32768, 147,-32768,
1370 167,-32768,-32768, 646,-32768, 346, -609,-32768,-32768,-32768,
1371 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1372 -32768,-32768,-32768,-32768,-32768,-32768, 1654,-32768,-32768, 1688,
1373 -306, 505, 0, 740,-32768
1380 static const short yytable[] =
1382 121, 119, 593, 465, 596, 121, 290, 129, 564, 121,
1383 216, 216, 216, 300, 529, 530, 97, 636, 318, 487,
1384 539, 531, 532, 537, 538, 541, 698, 591, 1048, 426,
1385 680, 540, 533, 534, 535, 536, 730, 205, 237, 237,
1386 745, 502, 732, 411, 239, 239, 1183, 1029, 638, 334,
1387 335, 336, 337, 338, 339, 566, 467, 200, 114, 605,
1388 1067, 437, -601, 134, 742, 137, -601, 265, 943, 1061,
1389 453, 1113, 686, 947, 625, 839, 93, 951, 3, 779,
1390 1108, 130, 240, 240, 1101, 1034, 418, 121, 119, 1156,
1391 1096, 422, 1097, 423, 1102, 730, 780, 1164, 1165, 745,
1392 936, 732, 1110, 97, 1110, 782, 471, -635, 471, 1098,
1393 954, -635, 1036, 3, 1036, -275, 958, 260, -643, 209,
1394 121, 814, -643, 742, 740, -414, 678, -414, 813, 645,
1395 1175, 1120, 293, 1121, 788, -414, 389, 390, 121, 1109,
1396 1111, 1096, 314, 1097, -636, 114, 791, 658, -636, 121,
1397 1122, 395, 396, 741, 216, 1094, 1095, 210, 262, 268,
1398 1098, 471, 1128, 93, 1182, 1214, 401, 443, 682, 1188,
1399 268, 268, 216, 389, 390, 502, 688, 211, 265, 404,
1400 1053, 205, 402, 740, -647, 633, 803, -274, -647, 503,
1401 124, 125, 126, 1137, 691, 1139, 313, 506, 216, 507,
1402 1114, 333, 398, 779, 832, 553, 216, 267, 216, 1184,
1403 216, 839, 741, 216, 1176, 467, 1179, 839, 779, 1218,
1404 780, 216, 513, 690, 492, 205, 216, 302, 216, 782,
1405 1163, 413, 1060, 205, 1062, 780, 1068, 205, 284, 514,
1406 205, 216, 216, 848, 782, 406, 80, 1103, 237, 419,
1407 404, 387, 388, 237, 239, 237, 1081, 412, 788, 239,
1408 414, 239, 662, 209, 80, 1039, 80, 1039, 237, 205,
1409 791, 569, 737, 788, 239, 739, 733, 736, 526, 527,
1410 528, 734, 738, 121, 440, 791, 121, 121, 121, 431,
1411 735, 917, 240, 687, 562, 422, 404, 240, -275, 240,
1412 466, 210, 1204, 455, 1013, 316, 927, 209, 121, 464,
1413 318, 321, 240, 100, 121, 209, 1141, 935, 100, 209,
1414 937, 211, 209, 1179, 395, 396, 246, 247, 248, 318,
1415 453, 737, 389, 390, 739, 733, 736, 839, 3, 569,
1416 734, 738, -414, -414, -414, 210, -46, -414, -414, 735,
1417 1120, 209, 1121, 210, 216, 1058, 452, 210, 1058, 907,
1418 210, 322, 216, 403, 216, 211, 404, 979, 404, 1122,
1419 488, 1071, 451, 211, 622, 908, 318, 211, 448, 323,
1420 211, 1008, 938, 621, 980, 80, 81, 139, 569, 210,
1421 84, 85, 945, 848, 508, 265, 403, 680, 730, 404,
1422 100, 1024, 745, 471, 732, 324, 569, 661, 216, 211,
1423 404, 1025, 1010, 326, 488, 270, 271, 272, 273, 274,
1424 275, 276, 277, 565, 279, 344, 742, 282, 327, 216,
1425 216, 1024, -274, 100, 453, 205, 216, 420, 121, 574,
1426 404, 1025, 561, 298, 488, 303, 304, 306, 121, 391,
1427 392, 312, 1166, 561, 1167, 551, 237, 237, 349, 121,
1428 443, 121, 239, 239, 393, 394, -274, 298, 594, 121,
1429 318, 1168, 121, 314, 340, 1120, 121, 1121, 318, -637,
1430 661, 716, 1058, -637, 1058, 471, 740, 1160, 500, 501,
1431 80, 81, 139, 661, 1122, 84, 85, 345, 404, 452,
1432 240, 240, 615, 346, 216, 689, -638, 704, 389, 390,
1433 -638, 1015, 1016, 121, 121, 741, 347, 209, 348, 404,
1434 995, 996, 713, 617, 714, 1034, 1005, 997, 998, 1003,
1435 1004, 1007, 849, 350, 298, 389, 390, 1006, 999, 1000,
1436 1001, 1002, 1017, 1018, 1035, 80, 81, 139, 546, 547,
1437 84, 85, 216, 216, 1036, 210, 1019, 1160, -645, 397,
1438 121, 650, -645, 80, 1026, 1027, 397, -693, 216, 561,
1439 631, 216, 216, 434, 632, 211, 897, 898, -697, 205,
1440 -466, 453, 843, -694, -414, -414, -414, 561, 399, -414,
1441 -414, 899, 900, 80, 1026, 1027, 100, 441, 398, 444,
1442 446, 864, 1209, 1166, 121, 1167, 420, 298, 314, 404,
1443 1031, 471, 454, 865, 866, 867, 868, 869, 870, 673,
1444 674, 100, 1168, -699, -632, 404, 400, 312, -632, 648,
1445 -414, 678, -414, 407, 737, 387, 388, 739, 733, 736,
1446 -414, 1132, -520, 734, 738, 216, 216, 1073, 1074, 762,
1447 1075, 1069, 735, 3, 298, 893, 894, 216, 216, 1077,
1448 216, 209, 286, 287, 288, 298, -414, -414, -414, 696,
1449 485, -414, -414, 404, 121, 1192, 121, -699, 3, -274,
1450 -274, 453, 453, 455, 318, 216, 1116, 1117, 1118, 3,
1451 3, 593, 121, 408, 318, 121, 121, 216, 413, 210,
1452 846, 1024, 1037, 1038, 1157, -640, 80, 1039, 762, -640,
1453 1040, 1025, 404, -274, 1088, 453, 862, 1054, -696, 211,
1454 1055, 391, 392, 3, 1100, 415, -598, 198, 228, 228,
1455 -598, 265, 843, 416, 1087, 971, 393, 394, 282, 427,
1456 122, 80, 81, 139, 1125, 122, 84, 85, -695, 140,
1457 -597, 100, -414, 421, -597, -414, 1024, -414, 579, 1210,
1458 582, 1142, 588, 404, 712, 589, 1025, 1225, 454, -621,
1459 595, 428, 100, -621, 100, -699, -699, 895, 896, 602,
1460 -699, -699, 312, -596, 992, 993, 994, -596, 265, 611,
1461 432, 1099, -414, -414, -414, 216, 404, -414, -414, 1170,
1462 911, 433, 1236, 435, 441, 80, 81, 139, 1035, 404,
1463 84, 85, -633, 969, 901, 902, -633, 216, 1036, 121,
1464 1190, -641, 216, 387, 388, -641, 216, 122, 458, 404,
1465 80, 81, 139, 973, 439, 84, 85, 391, 392, 939,
1466 674, -615, 80, 81, 139, -615, 121, 84, 85, 961,
1467 846, -620, 393, 394, 121, -620, 265, 460, 932, 1055,
1468 122, 932, -619, 80, 1026, 1027, -619, 176, 1078, 948,
1469 462, 198, 818, 100, 819, 80, 81, 139, 315, -630,
1470 84, 85, 265, -630, 368, 1169, 369, 663, -414, 325,
1471 441, 463, 384, 385, 386, 249, 250, 251, 252, 253,
1472 254, 255, 256, 257, 258, -414, 595, 468, 370, 371,
1473 684, 685, 384, 385, 386, 198, 1032, 312, 80, 1026,
1474 1027, -618, 176, 198, 1051, -618, 478, 198, -617, 216,
1475 198, -616, -617, 1064, 1065, -616, 278, 441, 228, 484,
1476 283, 486, 285, 228, 289, 228, -613, 710, 711, 291,
1477 -613, 874, 298, 875, 298, -414, -614, 489, 228, 198,
1478 -614, 307, 1151, 308, -610, 490, 1037, 1038, -610, -629,
1479 80, 1039, -414, -629, 1040, 876, 877, 373, 799, 121,
1480 121, -611, 384, 385, 386, -611, 806, 1191, 808, 491,
1481 1055, 932, 454, 932, 932, 932, 80, 81, 139, 826,
1482 827, 84, 85, -602, 831, 372, -605, -602, 611, 844,
1483 -605, 762, 374, 375, 376, 377, 378, 379, 380, 381,
1484 382, 383, 1092, 122, 1032, 1032, 445, 447, 449, 494,
1485 290, 298, 495, 1106, 504, 1051, 1051, 631, 1091, -625,
1486 -626, 1080, -627, -625, -626, -623, -627, -606, 122, -623,
1487 496, -606, 1106, 555, 315, -604, -608, 121, 1135, -604,
1488 -608, 497, -609, -607, 498, 216, -609, -607, 556, 318,
1489 121, 574, 404, 1154, 1144, 121, 559, 765, 766, 767,
1490 768, 1172, 1173, 1231, 769, 770, 771, 772, 773, 774,
1491 775, 280, 281, 438, 558, 563, 1032, 121, 121, 1032,
1492 576, 1106, 1106, 577, 318, 890, 891, 892, 578, 592,
1493 1051, 929, 1051, 879, -274, 1051, 581, 587, 932, 1051,
1494 932, 121, 121, 601, 1051, 198, 603, 600, 459, 609,
1495 121, 461, 610, 618, 614, 404, 629, 652, 619, 469,
1496 624, 623, 472, 627, 121, 630, 228, 228, 880, 881,
1497 882, 883, 884, 885, 886, 887, 888, 889, 960, 844,
1498 647, 595, 651, 664, 654, 667, 1032, 121, 121, 1106,
1499 669, 675, 670, 672, 1051, 694, 677, 683, 122, 692,
1500 697, 620, 706, 707, 801, 804, 797, 852, 586, 850,
1501 812, 328, 811, 765, 121, 1135, 828, 294, 854, 122,
1502 830, 122, 155, 156, 157, 158, 159, 160, 855, 315,
1503 856, 860, 608, 903, 861, 873, 613, 904, 909, 1051,
1504 161, 162, 163, 918, 906, 294, 509, 905, 919, 940,
1505 155, 156, 157, 158, 159, 160, 941, 912, 920, 942,
1506 950, 923, 956, 959, 164, 1056, 966, 970, 161, 162,
1507 163, 560, 1063, 634, 635, 972, 974, 1011, 1012, 1066,
1508 176, 472, 1076, 926, 1014, 952, 575, 1072, 1112, 198,
1509 1079, 580, 164, 583, 1124, 1131, 1143, 1171, 1149, 1198,
1510 1187, 1169, 1194, 1200, 1197, 1202, 1216, 1227, 173, 1203,
1511 599, 1206, 1208, 1219, 604, 1220, 1222, 1229, 1230, 1232,
1512 122, 1233, 1239, 1240, 470, 1221, 1042, 259, 1234, 201,
1513 234, 234, 1180, 817, 1140, 1086, 173, 816, 294, 1155,
1514 818, 1093, 819, 155, 156, 157, 158, 159, 160, 1127,
1515 1211, 977, 597, 949, 925, 666, 1226, 809, 807, 962,
1516 292, 161, 162, 163, 315, 842, 456, 244, 430, 499,
1517 1205, 628, 552, 851, 858, 965, 964, 1085, 0, 80,
1518 295, 296, 0, 176, 0, 164, 0, 1129, 0, 0,
1519 100, 0, 0, 196, 0, 0, 0, 0, 0, 0,
1520 0, 0, 0, 844, 317, 0, 1146, 80, 295, 296,
1521 0, 176, 441, 0, 0, 1152, 1153, 317, 317, 317,
1522 317, 317, 317, 0, 342, 343, 0, 0, 0, 173,
1523 0, 0, 0, 0, 586, 0, 586, 0, 679, 0,
1524 0, 0, 0, 0, 0, 825, 0, 0, 0, 472,
1525 0, 0, 833, 0, 0, 613, 122, 0, 1189, 0,
1526 0, 0, 0, 100, 0, 1193, 1195, 0, 703, 0,
1527 0, 0, 0, 201, 0, 0, 0, 844, 0, 202,
1528 235, 235, 0, 0, 0, 0, 0, 0, 0, 0,
1529 0, 0, 0, 0, 0, 0, 575, 0, 764, 0,
1530 80, 174, 175, 1215, 176, 84, 85, 0, 0, 0,
1531 0, 0, 0, 297, 0, 0, 0, 201, 0, 0,
1532 493, 0, 0, 1223, 1224, 201, 0, 100, 0, 201,
1533 1228, 0, 201, 0, 0, 329, 0, 331, 0, 0,
1534 234, 0, 0, 0, 511, 234, 0, 234, 0, 515,
1535 516, 517, 518, 519, 520, 521, 522, 523, 524, 525,
1536 234, 201, 0, 0, 0, 0, 0, 0, 0, 0,
1537 203, 236, 236, 0, 0, 0, 878, 825, 0, 946,
1538 545, 196, 825, 0, 0, 0, 825, 0, 0, 196,
1539 0, 0, 0, 196, 0, 0, 196, 0, 0, 0,
1540 0, 0, 0, 0, 417, 0, 122, 0, 0, 0,
1541 0, 0, 0, 0, 968, 0, 0, 0, 0, 0,
1542 0, 0, 0, 202, 0, 196, 0, 0, 0, 0,
1543 0, 921, 922, 0, 0, 0, 0, 0, 0, 0,
1544 0, 0, 0, 0, 0, 0, 317, 317, 317, 317,
1545 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
1546 317, 317, 0, 0, 0, 0, 0, 202, 0, 0,
1547 0, 0, 0, 0, 953, 202, 0, 450, 0, 202,
1548 0, 0, 202, 0, 213, 242, 242, 0, 0, 825,
1549 235, 0, 0, 0, 0, 235, 317, 235, 0, 0,
1550 0, 0, 0, 0, 479, 480, 481, 482, 0, 0,
1551 235, 202, 0, 0, 203, 317, 0, 0, 215, 243,
1552 243, 0, 0, 0, 450, 0, 0, 201, 0, 0,
1553 0, 0, 0, 0, 0, 450, 0, 0, 0, 1082,
1554 1083, 0, 0, 0, 0, 0, 0, 0, 234, 234,
1555 0, 317, 512, 0, 0, 0, 0, 0, 203, 0,
1556 0, 0, 317, 0, 0, 0, 203, 0, 0, 0,
1557 203, 0, 0, 203, 0, 0, 0, 0, 1057, 0,
1558 0, 236, 0, 0, 0, 0, 236, 0, 236, 0,
1559 0, 196, 0, 0, 0, 0, 700, 0, 0, 557,
1560 0, 236, 203, 0, 317, 1070, 317, 709, 640, 642,
1561 0, 0, 0, 0, 0, 0, 0, 122, 0, 0,
1562 0, 0, 0, 0, 0, 825, 0, 0, 213, 0,
1563 122, 0, 0, 0, 0, 1148, 0, 817, 0, 0,
1564 0, 0, 294, 0, 818, 0, 819, 155, 156, 157,
1565 158, 159, 160, 0, 0, 0, 317, 1161, 1162, 0,
1566 0, 820, 215, 0, 317, 161, 162, 163, 0, 0,
1567 0, 201, 213, 0, 0, 700, 0, 202, 0, 0,
1568 213, 1185, 1186, 0, 213, 0, 0, 213, 0, 164,
1569 122, 0, 0, 0, 0, 242, 0, 0, 235, 235,
1570 242, 1130, 242, 0, 122, 0, 215, 0, 0, 0,
1571 0, 731, 0, 0, 215, 242, 213, 0, 215, 0,
1572 0, 215, 0, 0, 0, 0, 637, 1212, 1213, 243,
1573 0, 0, 294, 173, 243, 196, 243, 155, 156, 157,
1574 158, 159, 160, 0, 0, 0, 0, 0, 0, 243,
1575 215, 0, 0, 0, 122, 161, 162, 163, 0, 0,
1576 0, 0, 0, 0, 0, 0, 0, 0, 203, 0,
1577 731, 0, 0, 0, 0, 0, 0, 0, 0, 164,
1578 1196, 317, 317, 317, 317, 317, 317, 871, 872, 236,
1579 236, 0, 0, 820, 0, 0, 0, 0, 820, 0,
1580 0, 482, 820, 0, 80, 174, 175, 0, 176, 84,
1581 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1582 0, 202, 450, 173, 450, 0, 0, 0, 700, 0,
1583 717, 0, 0, 0, 763, 0, 0, 0, 0, 0,
1584 0, 0, 0, 0, 0, 0, 0, 0, 0, 975,
1585 511, 0, 0, 0, 0, 981, 982, 983, 984, 985,
1586 986, 987, 988, 989, 990, 991, 0, 0, 0, 0,
1587 317, 0, 1235, 0, 0, 0, 0, 0, 0, 0,
1588 317, 0, 213, 0, 0, 0, 0, 0, 0, 0,
1589 857, 0, 0, 0, 80, 295, 296, 0, 176, 0,
1590 0, 863, 0, 242, 242, 820, 0, 0, 0, 0,
1591 0, 0, 203, 0, 0, 0, 215, 0, 0, 0,
1592 0, 317, 0, 0, 0, 0, 0, 0, 0, 0,
1593 0, 0, 0, 0, 0, 0, 0, 243, 243, 0,
1594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1595 0, 0, 317, 317, 317, 317, 317, 317, 317, 317,
1596 317, 317, 317, 317, 317, 317, 317, 317, 317, 0,
1597 317, 0, 142, 143, 144, 0, 145, 146, 147, 148,
1598 149, 150, 151, 152, 220, -548, 655, 0, 0, 0,
1599 352, 0, 0, 0, 0, 155, 156, 157, 158, 159,
1600 160, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1601 0, 0, 0, 161, 162, 163, 0, 0, 0, 0,
1602 0, 0, 0, 0, 0, 0, 213, 0, 0, 0,
1603 0, 0, 0, 0, 0, 0, 317, 164, 0, 0,
1604 0, 820, 0, 0, 0, 0, 0, 0, 0, 0,
1605 0, 0, 0, 0, 0, 0, 0, 0, 978, 0,
1606 215, 0, 166, 167, 168, 169, 170, 171, 0, 0,
1607 0, 0, 0, 731, 0, 0, 172, -169, 0, 0,
1608 0, 173, -169, -169, -169, 0, -169, -169, -169, -169,
1609 -169, -169, -169, -169, -169, -169, -169, -169, -697, -169,
1610 -169, 0, -169, 0, -169, -169, -169, -169, -169, -169,
1611 -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
1612 0, -169, 0, -169, -169, -169, -169, -169, -169, -169,
1613 -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
1614 -169, -169, -169, -169, 0, 0, 482, -169, 0, 0,
1615 0, 0, 80, 174, 175, 0, 176, 177, 85, 0,
1616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1617 0, 0, -169, -169, -169, -169, -169, -169, 0, 0,
1618 0, -1, 1, 0, 0, 0, -169, 0, 0, 0,
1619 0, -169, 1084, 0, 0, 0, 0, 0, 0, 2,
1620 0, 0, 0, 0, 0, -274, 0, 0, 0, 0,
1621 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
1622 0, 0, 0, 0, 0, 4, 0, 5, 0, 0,
1623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1624 0, 0, 0, 0, 0, 0, 0, 0, 0, -414,
1625 -414, -414, 0, 6, 0, 317, 0, 1147, 7, 8,
1626 9, 0, -169, -169, -169, 0, -169, -169, -169, 317,
1627 0, 0, 0, 10, 11, 12, 0, 0, 0, 0,
1628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1629 317, 0, 13, 14, 15, 16, 0, 17, 18, 19,
1630 20, 21, 22, 23, 24, 25, 26, 0, 27, 28,
1631 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1632 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1633 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1634 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1635 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1636 79, -2, 1, 0, 0, 0, 0, 80, 81, 82,
1637 83, 0, 84, 85, 86, 0, 0, 0, 0, 2,
1638 0, 0, 0, 0, 0, -274, 0, 0, 0, 0,
1639 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
1640 0, 0, 0, 0, 0, 4, 0, 5, 0, 0,
1641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1642 0, 0, 0, 0, 0, 0, 0, 0, 0, -414,
1643 -414, -414, 0, 6, 0, 0, 0, 0, 7, 8,
1644 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1645 0, 0, 0, 10, 11, 12, 0, 0, 0, 0,
1646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1647 0, 0, 13, 14, 15, 16, 0, 17, 18, 19,
1648 20, 21, 22, 23, 24, 25, 26, 0, 27, 28,
1649 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1650 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1651 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1652 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1653 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1654 79, 0, 0, 0, 0, 0, 0, 80, 81, 82,
1655 83, 141, 84, 85, 86, 0, 142, 143, 144, 0,
1656 145, 146, 147, 148, 149, 150, 151, 152, 153, -548,
1657 549, 0, 0, 0, 154, 0, 0, 0, 0, 155,
1658 156, 157, 158, 159, 160, 0, 0, 0, 0, 0,
1659 0, 0, -274, -274, 4, 0, 5, 161, 162, 163,
1660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1661 0, 0, 0, 0, 0, 0, 0, 0, -414, -414,
1662 -414, 164, 6, 0, 0, 0, 0, 0, 0, 0,
1663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1664 0, 0, 0, 0, 0, 0, 166, 167, 168, 169,
1665 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1666 172, 13, 14, 15, 16, 173, 17, 18, 19, 20,
1667 21, 22, 23, 24, 25, 26, 0, 27, 28, 29,
1668 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1669 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1670 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1671 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1672 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1673 0, 0, 0, 0, 0, 0, 80, 174, 550, 83,
1674 176, 177, 85, 86, 141, 0, 0, 0, 0, 142,
1675 143, 144, 0, 145, 146, 147, 148, 149, 150, 151,
1676 152, 153, -171, 0, 0, 0, 0, 154, 0, 0,
1677 0, 0, 155, 156, 157, 158, 159, 160, 0, 0,
1678 0, 0, 0, 0, 0, -274, -274, -274, 0, 0,
1679 161, 162, 163, 0, 0, 0, 0, 0, 0, 0,
1680 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1681 0, -274, -274, -274, 164, 0, 0, 0, 0, 0,
1682 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1683 0, 0, 0, 0, 0, 0, 0, 0, 0, 166,
1684 167, 168, 169, 170, 171, 0, 0, 0, 0, 0,
1685 0, 0, 0, 172, -274, -274, -274, -274, 173, -274,
1686 -274, -274, -274, -274, -274, -274, -274, -274, -274, 0,
1687 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1688 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1689 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1690 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1691 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1692 -274, -274, -274, 0, 0, 0, 0, 0, 0, 80,
1693 174, 175, -274, 176, 177, 85, -274, 218, 0, 0,
1694 0, 0, 142, 143, 144, 0, 0, 219, 147, 148,
1695 149, 150, 151, 152, 220, -171, -552, 0, 0, 0,
1696 221, 0, 0, 0, 0, 155, 156, 157, 158, 159,
1697 160, 0, 0, 0, 0, 0, 0, 0, -274, -274,
1698 -274, 0, 0, 161, 162, 163, 0, 0, 0, 0,
1699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1700 0, 0, 0, 0, -274, -274, -274, 164, 0, 0,
1701 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1703 0, 0, 166, 167, 168, 169, 170, 171, 0, 0,
1704 0, 0, 0, 0, 0, 0, 172, -274, -274, -274,
1705 -274, 173, -274, -274, -274, -274, -274, -274, -274, -274,
1706 -274, -274, 0, -274, -274, -274, -274, -274, -274, -274,
1707 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1708 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1709 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1710 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1711 -274, -274, -274, -274, -274, -274, 0, 0, 0, 0,
1712 0, 0, 80, 174, 175, -274, 176, 222, 223, -274,
1713 218, 0, 0, 0, 0, 142, 143, 144, 0, 0,
1714 219, 147, 148, 149, 150, 151, 152, 220, -493, -493,
1715 0, 0, 0, 221, -493, 0, 0, 0, 155, 156,
1716 157, 158, 159, 160, 0, 0, 0, 0, 0, 0,
1717 0, -274, -274, 0, 0, 141, 161, 162, 163, 0,
1718 142, 143, 144, 0, 145, 146, 147, 148, 149, 150,
1719 151, 152, 153, -548, 0, 0, 0, 0, 154, 0,
1720 164, 0, 0, 155, 156, 157, 158, 159, 160, 0,
1721 0, 0, 0, 0, 0, 0, -274, -274, 0, 0,
1722 0, 161, 162, 163, -493, 166, 167, 168, 169, 170,
1723 171, 0, 0, 0, 0, 0, 0, 0, 0, 172,
1724 0, 0, 0, 0, 173, 164, 0, 0, 0, 0,
1725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1726 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
1727 166, 167, 168, 169, 170, 171, 0, 0, 0, 0,
1728 0, 141, 0, 0, 172, 0, 142, 143, 144, 173,
1729 145, 146, 147, 148, 149, 150, 151, 152, 153, -548,
1730 0, 0, 0, 0, 154, 0, 0, 0, 0, 155,
1731 156, 157, 158, 159, 160, 80, 174, 175, 0, 176,
1732 222, 223, -274, -274, 0, 0, 218, 161, 162, 163,
1733 0, 142, 143, 144, 0, 0, 219, 147, 148, 149,
1734 150, 151, 152, 220, -548, -552, 0, 0, 0, 221,
1735 0, 164, 0, 0, 155, 156, 157, 158, 159, 160,
1736 80, 174, 175, 0, 176, 177, 85, -274, -274, 0,
1737 0, 0, 161, 162, 163, -521, 166, 167, 168, 169,
1738 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1739 172, 0, 0, 0, 0, 173, 164, 0, 0, 0,
1740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742 -489, 166, 167, 168, 169, 170, 171, 0, 0, 0,
1743 0, 0, 141, 0, 0, 172, 0, 142, 143, 144,
1744 173, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1745 -548, 643, 0, 0, 0, 154, 0, 0, 0, 0,
1746 155, 156, 157, 158, 159, 160, 80, 174, 175, 0,
1747 176, 177, 85, -274, -274, 0, 0, 218, 161, 162,
1748 163, 0, 142, 143, 144, 0, 0, 219, 147, 148,
1749 149, 150, 151, 152, 220, -548, -552, 0, 0, 0,
1750 221, 0, 164, 0, 0, 155, 156, 157, 158, 159,
1751 160, 80, 174, 175, 0, 176, 222, 223, -274, -274,
1752 0, 0, 0, 161, 162, 163, 0, 166, 167, 168,
1753 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
1754 0, 172, 0, 0, 0, 0, 173, 164, 0, 0,
1755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1757 0, 0, 166, 167, 168, 169, 170, 171, 0, 0,
1758 0, 0, 0, 141, 0, 0, 172, 0, 142, 143,
1759 144, 173, 145, 146, 147, 148, 149, 150, 151, 152,
1760 153, -548, 0, 0, 0, 0, 154, 0, 0, 0,
1761 0, 155, 156, 157, 158, 159, 160, 80, 174, 175,
1762 0, 176, 177, 85, -274, -274, 0, 0, 0, 161,
1763 162, 163, 0, 0, 0, 0, 0, 0, 0, 0,
1764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1765 0, 0, 0, 164, 0, 0, 0, 0, 0, 0,
1766 0, 0, 80, 174, 175, 0, 176, 222, 223, 0,
1767 0, 0, 0, 0, 0, 0, 0, 0, 166, 167,
1768 168, 169, 170, 171, 0, 0, 0, 0, 0, 0,
1769 0, 0, 172, 0, 142, 143, 144, 173, 145, 146,
1770 147, 148, 149, 150, 151, 152, 220, -548, 567, 0,
1771 0, 0, 352, 0, 0, 0, 0, 155, 156, 157,
1772 158, 159, 160, 0, 0, 0, 0, 0, 0, 0,
1773 -274, -274, 4, 0, 5, 161, 162, 163, 0, 0,
1774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 164,
1776 6, 0, 0, 0, 0, 0, 0, 0, 80, 174,
1777 175, 0, 176, 177, 85, 0, 0, 0, 0, 0,
1778 0, 0, 0, 0, 166, 167, 168, 169, 170, 171,
1779 0, 0, 0, 0, 0, 0, 0, 0, 568, 13,
1780 14, 15, 16, 173, 17, 18, 19, 20, 21, 22,
1781 23, 24, 25, 26, 0, 27, 28, 29, 30, 31,
1782 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1783 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1784 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1785 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1786 72, 73, 74, 75, 76, 77, 78, 79, 0, 0,
1787 0, 0, 0, 0, 80, 174, 550, 83, 176, 177,
1788 85, 86, 142, 143, 144, 0, 145, 146, 147, 148,
1789 149, 150, 151, 152, 220, -548, 644, 0, 0, 0,
1790 352, 0, 0, 0, 0, 155, 156, 157, 158, 159,
1791 160, 0, 0, 0, 0, 0, 0, 0, -274, -274,
1792 4, 0, 5, 161, 162, 163, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1794 0, 0, 0, 0, 0, 0, 0, 164, 6, 0,
1795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1797 0, 0, 166, 167, 168, 169, 170, 171, 0, 0,
1798 0, 0, 0, 0, 0, 0, 172, 13, 14, 15,
1799 16, 173, 17, 18, 19, 20, 21, 22, 23, 24,
1800 25, 26, 0, 27, 28, 29, 30, 31, 32, 33,
1801 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1802 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1803 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1804 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1805 74, 75, 76, 77, 78, 79, 0, 0, 0, 0,
1806 0, 0, 80, 174, 550, 83, 176, 177, 85, 86,
1807 142, 143, 144, 0, 145, 146, 147, 148, 149, 150,
1808 151, 152, 220, -548, 656, 0, 0, 0, 352, 0,
1809 0, 0, 0, 155, 156, 157, 158, 159, 160, 0,
1810 0, 0, 0, 0, 0, 0, -274, -274, 4, 0,
1811 5, 161, 162, 163, 0, 0, 0, 0, 0, 0,
1812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1813 0, 0, 0, 0, 0, 164, 6, 0, 0, 0,
1814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1816 166, 167, 168, 169, 170, 171, 0, 0, 0, 0,
1817 0, 0, 0, 0, 657, 13, 14, 15, 16, 173,
1818 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1819 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1820 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1821 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1822 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1823 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1824 76, 77, 78, 79, 0, 0, 0, 0, 0, 0,
1825 80, 174, 550, 83, 176, 177, 85, 86, 142, 143,
1826 144, 0, 145, 146, 147, 148, 149, 150, 151, 152,
1827 220, -548, 659, 0, 0, 0, 352, 0, 0, 0,
1828 0, 155, 156, 157, 158, 159, 160, 0, 0, 0,
1829 0, 0, 0, 0, 0, 0, 0, 0, 0, 161,
1830 162, 163, 0, 142, 143, 144, 0, 145, 146, 147,
1831 148, 149, 150, 151, 152, 220, -548, 715, 0, 0,
1832 0, 352, 0, 164, 0, 0, 155, 156, 157, 158,
1833 159, 160, 0, 0, 0, 0, 0, 0, 0, 0,
1834 0, 0, 0, 0, 161, 162, 163, 0, 166, 167,
1835 168, 169, 170, 171, 0, 0, 0, 0, 0, 0,
1836 0, 0, 660, 0, 0, 0, 0, 173, 164, 0,
1837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1839 0, 0, 0, 166, 167, 168, 169, 170, 171, 0,
1840 0, 0, 0, 0, 0, 0, 0, 172, 0, 142,
1841 143, 144, 173, 145, 146, 147, 148, 149, 150, 151,
1842 152, 220, -548, 793, 0, 0, 0, 352, 0, 0,
1843 0, 0, 155, 156, 157, 158, 159, 160, 80, 174,
1844 175, 0, 176, 177, 85, 0, 0, 0, 0, 0,
1845 161, 162, 163, 0, 142, 143, 144, 0, 145, 146,
1846 147, 148, 149, 150, 151, 152, 220, -548, 794, 0,
1847 0, 0, 352, 0, 164, 0, 0, 155, 156, 157,
1848 158, 159, 160, 80, 174, 175, 0, 176, 177, 85,
1849 0, 0, 0, 0, 0, 161, 162, 163, 0, 166,
1850 167, 168, 169, 170, 171, 0, 0, 0, 0, 0,
1851 0, 0, 0, 172, 0, 0, 0, 0, 173, 164,
1852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1854 0, 0, 0, 0, 166, 167, 168, 169, 170, 171,
1855 0, 0, 0, 0, 0, 0, 0, 0, 795, 0,
1856 142, 143, 144, 173, 145, 146, 147, 148, 149, 150,
1857 151, 152, 220, -548, 796, 0, 0, 0, 352, 0,
1858 0, 0, 0, 155, 156, 157, 158, 159, 160, 80,
1859 174, 175, 0, 176, 177, 85, 0, 0, 0, 0,
1860 0, 161, 162, 163, 0, 142, 143, 144, 0, 145,
1861 146, 147, 148, 149, 150, 151, 152, 220, -548, 928,
1862 0, 0, 0, 352, 0, 164, 0, 0, 155, 156,
1863 157, 158, 159, 160, 80, 174, 175, 0, 176, 177,
1864 85, 0, 0, 0, 0, 0, 161, 162, 163, 0,
1865 166, 167, 168, 169, 170, 171, 0, 0, 0, 0,
1866 0, 0, 0, 0, 172, 0, 0, 0, 0, 173,
1867 164, 0, -256, 0, 0, 0, 0, 0, 294, 0,
1868 0, 0, 0, 155, 156, 157, 158, 159, 160, 0,
1869 0, 0, 0, 0, 0, 166, 167, 168, 169, 170,
1870 171, 161, 162, 163, 0, 0, 0, 0, 0, 172,
1871 0, 142, 143, 144, 173, 145, 146, 147, 148, 149,
1872 150, 151, 152, 220, -548, 164, 0, 0, 0, 352,
1873 0, 0, 0, 0, 155, 156, 157, 158, 159, 160,
1874 80, 174, 175, 0, 176, 177, 85, 0, 0, 0,
1875 0, 0, 161, 162, 163, 0, 0, 0, 0, 0,
1876 23, 24, 25, 26, 0, 27, 0, 0, 0, 173,
1877 32, 33, 0, 0, 36, 37, 164, 39, 40, 41,
1878 42, 0, 0, 0, 0, 80, 174, 175, 0, 176,
1879 177, 85, 54, 55, 0, 0, 0, 0, 0, 0,
1880 0, 166, 167, 168, 169, 170, 171, -135, 0, 0,
1881 0, 0, -135, 0, 0, 172, 0, 79, 0, 0,
1882 173, 0, 0, 0, 0, 0, 0, 83, 0, 0,
1883 0, 0, 4, 0, 5, 0, 0, 0, 0, 0,
1884 80, 295, 296, 0, 176, 0, 0, 0, 0, 0,
1885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1886 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1889 0, 80, 174, 175, 0, 176, 177, 85, 0, 13,
1890 14, 15, 16, 0, 17, 18, 19, 20, 21, 22,
1891 23, 24, 25, 26, 0, 27, 28, 29, 30, 31,
1892 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1893 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1894 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1895 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1896 72, 73, 74, 75, 76, 77, 78, 79, -551, 0,
1897 0, 0, 0, 0, 0, 0, 136, 83, 0, 0,
1898 0, 86, 0, 0, 0, 0, 0, 0, 0, 0,
1899 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
1900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1905 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
1906 14, 15, 16, 0, 17, 18, 19, 20, 21, 22,
1907 23, 24, 25, 26, 0, 27, 28, 29, 30, 31,
1908 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1909 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1910 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1911 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1912 72, 73, 74, 75, 76, 77, 78, 79, 0, 0,
1913 0, 0, 0, 699, -691, 0, 136, 83, 294, 0,
1914 0, 86, 0, 155, 156, 157, 158, 159, 160, 0,
1915 0, 0, 0, 0, -171, 0, 0, 0, 0, 294,
1916 0, 161, 162, 163, 155, 156, 157, 158, 159, 160,
1917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1918 0, -171, 161, 162, 163, 164, 352, 0, 0, 0,
1919 0, 155, 156, 157, 158, 159, 160, 0, 0, 0,
1920 0, 0, 620, 0, 0, 0, 164, 294, 0, 161,
1921 162, 163, 155, 156, 157, 158, 159, 160, 294, 0,
1922 0, 590, 0, 155, 156, 157, 158, 159, 160, 173,
1923 161, 162, 163, 164, 699, 0, 0, 0, 0, 294,
1924 0, 161, 162, 163, 155, 156, 157, 158, 159, 160,
1925 173, 0, 0, 0, 164, 0, 0, 0, 0, 0,
1926 0, 0, 161, 162, 163, 164, 0, 0, 0, 0,
1927 0, 0, 0, 0, 0, 0, 0, 173, 0, 0,
1928 0, 0, 0, 0, 0, 0, 164, 0, 0, 0,
1929 0, 0, 0, 0, 0, 0, 0, 0, 173, 0,
1930 80, 295, 296, 0, 176, 0, 0, 0, 0, 173,
1931 0, 0, 0, 0, 0, 0, 0, 0, 0, -274,
1932 0, 80, 295, 296, 0, 176, 0, 0, 0, 3,
1933 173, 0, 0, 0, 0, 0, 0, 0, 0, 4,
1934 0, 0, 0, 0, 0, 0, 0, 0, 80, 295,
1935 296, 0, 176, 0, 0, 0, 0, 0, 0, 0,
1936 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,
1937 295, 296, 0, 176, 0, 0, 0, 0, 0, 0,
1938 80, 295, 296, 0, 176, 0, 0, 0, 0, 0,
1939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1940 0, 80, 295, 296, 0, 176, 13, 14, 15, 16,
1941 0, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1942 26, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1943 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1944 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1945 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1946 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1947 75, 76, 77, 78, 79, 0, 0, 0, 0, 0,
1948 0, 80, 81, 82, 83, 0, 84, 85, 86, 294,
1949 0, 0, 681, 0, 155, 156, 157, 158, 159, 160,
1950 294, 976, 0, 0, 0, 155, 156, 157, 158, 159,
1951 160, 0, 161, 162, 163, 0, 0, 0, 0, 0,
1952 0, 294, -256, 161, 162, 163, 155, 156, 157, 158,
1953 159, 160, 341, 0, 0, 0, 164, 155, 156, 157,
1954 158, 159, 160, 0, 161, 162, 163, 164, 0, 0,
1955 0, 0, 0, 639, 0, 161, 162, 163, 155, 156,
1956 157, 158, 159, 160, 0, 0, 0, 0, 164, 0,
1957 0, 0, 0, 0, 0, 0, 161, 162, 163, 164,
1958 173, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1959 0, 173, 0, 0, 0, 0, 0, 0, 0, 0,
1960 164, 641, 0, 0, 0, 0, 155, 156, 157, 158,
1961 159, 160, 173, 0, 0, 0, 0, 0, 0, 0,
1962 0, 0, 718, 173, 161, 162, 163, 719, 720, 721,
1963 722, 723, 724, 0, 0, 0, 0, 0, 0, 0,
1964 0, 0, 0, 0, 173, 161, 725, 726, 164, 0,
1965 0, 80, 295, 296, 0, 176, 0, 0, 0, 0,
1966 0, 0, 80, 295, 296, 0, 176, 0, 0, 727,
1967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1968 0, 0, 0, 80, 295, 296, 0, 176, 0, 0,
1969 0, 0, 173, 0, 80, 295, 296, 0, 176, 0,
1970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1971 0, 0, 0, 173, 0, 80, 295, 296, 0, 176,
1972 -200, -200, 4, 0, 0, 0, 0, 0, 0, 0,
1973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1976 0, 0, 0, 80, 295, 296, 0, 176, 0, 0,
1977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1978 0, 0, 0, 0, 80, 728, 729, 0, 176, 13,
1979 14, 15, 16, 0, 17, 18, 19, 20, 21, 22,
1980 23, 24, 25, 26, 0, 27, 28, 29, 30, 31,
1981 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1982 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1983 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1984 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1985 72, 73, 74, 75, 76, 77, 78, 79, 4, 0,
1986 5, 0, 0, 0, 0, 0, 136, 83, 0, 0,
1987 0, 86, 0, 0, 0, 0, 0, 0, 0, 0,
1988 0, 0, -414, -414, -414, 0, 6, 0, 0, 0,
1989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1991 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1992 0, 0, 0, 0, 0, 13, 14, 15, 16, 0,
1993 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1994 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1995 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1996 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1997 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1998 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1999 76, 77, 78, 79, 4, 0, 5, 0, 0, 0,
2000 0, 0, 136, 83, 0, 0, 0, 86, 0, 0,
2001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2002 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
2003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2006 0, 13, 14, 15, 16, 0, 17, 18, 19, 20,
2007 21, 22, 23, 24, 25, 26, 0, 27, 28, 29,
2008 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2009 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2010 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2011 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2012 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2013 4, 0, 0, 0, 0, 0, 80, 1089, 136, 83,
2014 0, 0, 0, 86, 0, 0, 0, 0, 0, 0,
2015 0, 0, 0, 0, -414, -414, -414, 0, 0, 0,
2016 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2017 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2019 0, 0, 0, 0, 0, 0, 0, 13, 14, 15,
2020 16, 0, 17, 18, 19, 20, 21, 22, 23, 24,
2021 25, 26, 0, 27, 28, 29, 30, 31, 32, 33,
2022 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2023 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2024 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2025 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2026 74, 75, 76, 77, 78, 79, 4, 0, 0, 0,
2027 0, 0, 0, 0, 136, 83, 0, 0, 0, 86,
2028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2031 0, 0, 0, 0, 10, 11, 12, 0, 0, 0,
2032 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2033 0, 0, 0, 13, 14, 15, 16, 0, 17, 18,
2034 19, 20, 21, 22, 23, 24, 25, 26, 0, 27,
2035 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2036 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2037 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2038 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2039 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2040 78, 79, 4, 0, 5, 0, 0, 0, 0, 0,
2041 136, 83, 0, 0, 0, 86, 0, 0, 0, 0,
2042 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2043 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2044 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2045 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2046 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
2047 14, 15, 16, 0, 17, 18, 19, 20, 21, 22,
2048 23, 24, 25, 26, 0, 27, 28, 29, 30, 31,
2049 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2050 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2051 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
2052 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2053 72, 73, 74, 75, 76, 77, 78, 79, 4, 0,
2054 0, 0, 0, 0, 0, 0, 136, 83, 0, 0,
2055 0, 86, 0, 0, 0, 0, 0, 0, 0, 0,
2056 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2057 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2058 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2059 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2060 0, 0, 0, 0, 0, 13, 14, 15, 16, 0,
2061 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2062 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2063 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2064 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2065 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
2066 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2067 76, 77, 78, 79, 0, 0, 0, 0, 0, 0,
2068 0, 0, 136, 83, 0, 0, 0, 86
2071 static const short yycheck[] =
2073 0, 0, 455, 309, 459, 5, 120, 3, 434, 9,
2074 10, 11, 12, 130, 387, 388, 0, 542, 142, 330,
2075 397, 389, 390, 395, 396, 399, 618, 453, 924, 232,
2076 592, 398, 391, 392, 393, 394, 649, 10, 11, 12,
2077 649, 352, 649, 208, 11, 12, 27, 916, 544, 155,
2078 156, 157, 158, 159, 160, 435, 311, 10, 0, 469,
2079 951, 264, 21, 5, 649, 7, 25, 18, 817, 936,
2080 26, 56, 23, 822, 500, 693, 0, 826, 34, 653,
2081 1035, 24, 11, 12, 24, 5, 221, 87, 87, 25,
2082 26, 226, 28, 228, 34, 708, 653, 1101, 1102, 708,
2083 803, 708, 24, 87, 24, 653, 5, 21, 5, 45,
2084 829, 25, 34, 34, 34, 24, 835, 26, 21, 10,
2085 120, 683, 25, 708, 649, 24, 25, 26, 25, 553,
2086 25, 26, 128, 28, 653, 34, 50, 51, 138, 1035,
2087 1036, 26, 138, 28, 21, 87, 653, 571, 25, 149,
2088 45, 54, 55, 649, 154, 1024, 1025, 10, 19, 101,
2089 45, 5, 1053, 87, 1119, 1169, 41, 284, 594, 1124,
2090 112, 113, 172, 50, 51, 486, 602, 10, 18, 21,
2091 929, 154, 57, 708, 21, 27, 671, 18, 25, 354,
2092 111, 112, 113, 1060, 604, 1062, 138, 362, 198, 364,
2093 185, 154, 39, 777, 5, 408, 206, 24, 208, 190,
2094 210, 829, 708, 213, 1110, 470, 1112, 835, 792, 1174,
2095 777, 221, 28, 603, 341, 198, 226, 21, 228, 777,
2096 1099, 190, 935, 206, 937, 792, 955, 210, 88, 45,
2097 213, 241, 242, 696, 792, 198, 186, 187, 221, 222,
2098 21, 32, 33, 226, 221, 228, 27, 210, 777, 226,
2099 213, 228, 573, 154, 186, 187, 186, 187, 241, 242,
2100 777, 436, 649, 792, 241, 649, 649, 649, 384, 385,
2101 386, 649, 649, 283, 283, 792, 286, 287, 288, 242,
2102 649, 777, 221, 599, 429, 430, 21, 226, 24, 228,
2103 26, 154, 27, 299, 913, 24, 792, 198, 308, 308,
2104 434, 24, 241, 0, 314, 206, 1065, 802, 5, 210,
2105 805, 154, 213, 1219, 54, 55, 13, 14, 15, 453,
2106 26, 708, 50, 51, 708, 708, 708, 955, 34, 504,
2107 708, 708, 186, 187, 188, 198, 22, 191, 192, 708,
2108 26, 242, 28, 206, 354, 933, 298, 210, 936, 41,
2109 213, 24, 362, 18, 364, 198, 21, 28, 21, 45,
2110 25, 963, 25, 206, 491, 57, 500, 210, 19, 24,
2111 213, 906, 808, 489, 45, 186, 187, 188, 553, 242,
2112 191, 192, 818, 846, 367, 18, 18, 959, 1011, 21,
2113 87, 24, 1011, 5, 1011, 24, 571, 572, 408, 242,
2114 21, 34, 908, 18, 25, 102, 103, 104, 105, 106,
2115 107, 108, 109, 25, 111, 24, 1011, 114, 18, 429,
2116 430, 24, 24, 120, 26, 408, 436, 18, 438, 438,
2117 21, 34, 426, 130, 25, 132, 133, 134, 448, 37,
2118 38, 138, 26, 437, 28, 408, 429, 430, 15, 459,
2119 577, 461, 429, 430, 52, 53, 24, 154, 26, 469,
2120 594, 45, 472, 469, 161, 26, 476, 28, 602, 21,
2121 645, 646, 1060, 25, 1062, 5, 1011, 1096, 6, 7,
2122 186, 187, 188, 658, 45, 191, 192, 16, 21, 441,
2123 429, 430, 25, 16, 504, 25, 21, 624, 50, 51,
2124 25, 89, 90, 513, 514, 1011, 16, 408, 16, 21,
2125 893, 894, 639, 25, 641, 5, 903, 895, 896, 901,
2126 902, 905, 697, 101, 221, 50, 51, 904, 897, 898,
2127 899, 900, 120, 121, 24, 186, 187, 188, 42, 43,
2128 191, 192, 552, 553, 34, 408, 134, 1166, 21, 29,
2129 560, 560, 25, 186, 187, 188, 29, 22, 568, 553,
2130 21, 571, 572, 260, 25, 408, 37, 38, 22, 552,
2131 25, 26, 696, 22, 186, 187, 188, 571, 40, 191,
2132 192, 52, 53, 186, 187, 188, 283, 284, 39, 286,
2133 287, 718, 25, 26, 604, 28, 18, 294, 604, 21,
2134 916, 5, 299, 719, 720, 721, 722, 723, 724, 20,
2135 21, 308, 45, 34, 21, 21, 56, 314, 25, 25,
2136 24, 25, 26, 95, 1011, 32, 33, 1011, 1011, 1011,
2137 34, 22, 95, 1011, 1011, 645, 646, 25, 26, 649,
2138 28, 957, 1011, 34, 341, 32, 33, 657, 658, 970,
2139 660, 552, 68, 69, 70, 352, 186, 187, 188, 611,
2140 18, 191, 192, 21, 674, 1130, 676, 88, 34, 24,
2141 24, 26, 26, 679, 808, 685, 52, 53, 54, 34,
2142 34, 1144, 692, 19, 818, 695, 696, 697, 190, 552,
2143 696, 24, 182, 183, 27, 21, 186, 187, 708, 25,
2144 190, 34, 21, 24, 1020, 26, 25, 18, 22, 552,
2145 21, 37, 38, 34, 1030, 22, 21, 10, 11, 12,
2146 25, 18, 846, 24, 21, 859, 52, 53, 425, 19,
2147 0, 186, 187, 188, 1050, 5, 191, 192, 22, 9,
2148 21, 438, 18, 95, 25, 21, 24, 23, 445, 27,
2149 447, 1067, 449, 21, 22, 452, 34, 1193, 455, 21,
2150 457, 20, 459, 25, 461, 186, 187, 50, 51, 466,
2151 191, 192, 469, 21, 890, 891, 892, 25, 18, 476,
2152 95, 21, 186, 187, 188, 795, 21, 191, 192, 1105,
2153 25, 27, 1228, 24, 491, 186, 187, 188, 24, 21,
2154 191, 192, 21, 25, 54, 55, 25, 817, 34, 819,
2155 1126, 21, 822, 32, 33, 25, 826, 87, 25, 21,
2156 186, 187, 188, 25, 18, 191, 192, 37, 38, 20,
2157 21, 21, 186, 187, 188, 25, 846, 191, 192, 193,
2158 846, 21, 52, 53, 854, 25, 18, 18, 800, 21,
2159 120, 803, 21, 186, 187, 188, 25, 190, 974, 23,
2160 18, 154, 26, 560, 28, 186, 187, 188, 138, 21,
2161 191, 192, 18, 25, 24, 21, 26, 574, 28, 149,
2162 577, 23, 34, 35, 36, 69, 70, 71, 72, 73,
2163 74, 75, 76, 77, 78, 45, 593, 24, 48, 49,
2164 597, 598, 34, 35, 36, 198, 916, 604, 186, 187,
2165 188, 21, 190, 206, 924, 25, 22, 210, 21, 929,
2166 213, 21, 25, 20, 21, 25, 110, 624, 221, 18,
2167 114, 24, 116, 226, 118, 228, 21, 634, 635, 123,
2168 25, 24, 639, 26, 641, 28, 21, 25, 241, 242,
2169 25, 135, 1079, 137, 21, 25, 182, 183, 25, 21,
2170 186, 187, 45, 25, 190, 48, 49, 23, 665, 979,
2171 980, 21, 34, 35, 36, 25, 673, 18, 675, 24,
2172 21, 933, 679, 935, 936, 937, 186, 187, 188, 686,
2173 687, 191, 192, 21, 691, 179, 21, 25, 695, 696,
2174 25, 1011, 58, 59, 60, 61, 62, 63, 64, 65,
2175 66, 67, 1022, 283, 1024, 1025, 286, 287, 288, 18,
2176 1144, 718, 18, 1033, 19, 1035, 1036, 21, 1022, 21,
2177 21, 25, 21, 25, 25, 21, 25, 21, 308, 25,
2178 18, 25, 1052, 9, 314, 21, 21, 1057, 1057, 25,
2179 25, 18, 21, 21, 18, 1065, 25, 25, 11, 1193,
2180 1070, 1070, 21, 22, 1070, 1075, 24, 73, 74, 75,
2181 76, 32, 33, 1207, 80, 81, 82, 83, 84, 85,
2182 86, 112, 113, 267, 25, 11, 1096, 1097, 1098, 1099,
2183 91, 1101, 1102, 21, 1228, 34, 35, 36, 19, 24,
2184 1110, 798, 1112, 23, 19, 1115, 19, 19, 1060, 1119,
2185 1062, 1121, 1122, 27, 1124, 408, 24, 91, 302, 25,
2186 1130, 305, 21, 18, 22, 21, 11, 27, 25, 313,
2187 21, 25, 316, 25, 1144, 24, 429, 430, 58, 59,
2188 60, 61, 62, 63, 64, 65, 66, 67, 845, 846,
2189 24, 848, 24, 23, 25, 20, 1166, 1167, 1168, 1169,
2190 19, 23, 20, 19, 1174, 5, 27, 24, 438, 21,
2191 25, 19, 22, 24, 20, 20, 25, 21, 448, 18,
2192 27, 18, 25, 73, 1194, 1194, 27, 24, 21, 459,
2193 25, 461, 29, 30, 31, 32, 33, 34, 25, 469,
2194 22, 25, 472, 29, 25, 24, 476, 39, 25, 1219,
2195 47, 48, 49, 91, 56, 24, 25, 40, 91, 25,
2196 29, 30, 31, 32, 33, 34, 25, 187, 91, 18,
2197 22, 91, 25, 24, 71, 932, 20, 25, 47, 48,
2198 49, 425, 939, 513, 514, 18, 25, 21, 18, 27,
2199 190, 435, 18, 91, 40, 91, 440, 20, 23, 552,
2200 21, 445, 71, 447, 24, 18, 91, 22, 192, 20,
2201 22, 21, 21, 20, 22, 91, 194, 18, 115, 25,
2202 464, 25, 27, 40, 468, 27, 25, 20, 20, 27,
2203 560, 25, 0, 0, 314, 1187, 924, 87, 1219, 10,
2204 11, 12, 1115, 19, 20, 1014, 115, 684, 24, 1087,
2205 26, 1023, 28, 29, 30, 31, 32, 33, 34, 1052,
2206 1166, 874, 461, 823, 790, 577, 1194, 676, 674, 846,
2207 128, 47, 48, 49, 604, 695, 299, 12, 241, 350,
2208 1150, 504, 408, 699, 708, 852, 851, 1011, -1, 186,
2209 187, 188, -1, 190, -1, 71, -1, 1054, -1, -1,
2210 1057, -1, -1, 10, -1, -1, -1, -1, -1, -1,
2211 -1, -1, -1, 1070, 142, -1, 1073, 186, 187, 188,
2212 -1, 190, 1079, -1, -1, 1082, 1083, 155, 156, 157,
2213 158, 159, 160, -1, 162, 163, -1, -1, -1, 115,
2214 -1, -1, -1, -1, 674, -1, 676, -1, 592, -1,
2215 -1, -1, -1, -1, -1, 685, -1, -1, -1, 603,
2216 -1, -1, 692, -1, -1, 695, 696, -1, 1125, -1,
2217 -1, -1, -1, 1130, -1, 1132, 1133, -1, 622, -1,
2218 -1, -1, -1, 154, -1, -1, -1, 1144, -1, 10,
2219 11, 12, -1, -1, -1, -1, -1, -1, -1, -1,
2220 -1, -1, -1, -1, -1, -1, 650, -1, 652, -1,
2221 186, 187, 188, 1170, 190, 191, 192, -1, -1, -1,
2222 -1, -1, -1, 130, -1, -1, -1, 198, -1, -1,
2223 344, -1, -1, 1190, 1191, 206, -1, 1194, -1, 210,
2224 1197, -1, 213, -1, -1, 152, -1, 154, -1, -1,
2225 221, -1, -1, -1, 368, 226, -1, 228, -1, 373,
2226 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
2227 241, 242, -1, -1, -1, -1, -1, -1, -1, -1,
2228 10, 11, 12, -1, -1, -1, 730, 817, -1, 819,
2229 404, 198, 822, -1, -1, -1, 826, -1, -1, 206,
2230 -1, -1, -1, 210, -1, -1, 213, -1, -1, -1,
2231 -1, -1, -1, -1, 221, -1, 846, -1, -1, -1,
2232 -1, -1, -1, -1, 854, -1, -1, -1, -1, -1,
2233 -1, -1, -1, 154, -1, 242, -1, -1, -1, -1,
2234 -1, 785, 786, -1, -1, -1, -1, -1, -1, -1,
2235 -1, -1, -1, -1, -1, -1, 384, 385, 386, 387,
2236 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
2237 398, 399, -1, -1, -1, -1, -1, 198, -1, -1,
2238 -1, -1, -1, -1, 828, 206, -1, 294, -1, 210,
2239 -1, -1, 213, -1, 10, 11, 12, -1, -1, 929,
2240 221, -1, -1, -1, -1, 226, 434, 228, -1, -1,
2241 -1, -1, -1, -1, 321, 322, 323, 324, -1, -1,
2242 241, 242, -1, -1, 154, 453, -1, -1, 10, 11,
2243 12, -1, -1, -1, 341, -1, -1, 408, -1, -1,
2244 -1, -1, -1, -1, -1, 352, -1, -1, -1, 979,
2245 980, -1, -1, -1, -1, -1, -1, -1, 429, 430,
2246 -1, 489, 369, -1, -1, -1, -1, -1, 198, -1,
2247 -1, -1, 500, -1, -1, -1, 206, -1, -1, -1,
2248 210, -1, -1, 213, -1, -1, -1, -1, 932, -1,
2249 -1, 221, -1, -1, -1, -1, 226, -1, 228, -1,
2250 -1, 408, -1, -1, -1, -1, 620, -1, -1, 416,
2251 -1, 241, 242, -1, 542, 959, 544, 631, 546, 547,
2252 -1, -1, -1, -1, -1, -1, -1, 1057, -1, -1,
2253 -1, -1, -1, -1, -1, 1065, -1, -1, 154, -1,
2254 1070, -1, -1, -1, -1, 1075, -1, 19, -1, -1,
2255 -1, -1, 24, -1, 26, -1, 28, 29, 30, 31,
2256 32, 33, 34, -1, -1, -1, 594, 1097, 1098, -1,
2257 -1, 685, 154, -1, 602, 47, 48, 49, -1, -1,
2258 -1, 552, 198, -1, -1, 699, -1, 408, -1, -1,
2259 206, 1121, 1122, -1, 210, -1, -1, 213, -1, 71,
2260 1130, -1, -1, -1, -1, 221, -1, -1, 429, 430,
2261 226, 1055, 228, -1, 1144, -1, 198, -1, -1, -1,
2262 -1, 649, -1, -1, 206, 241, 242, -1, 210, -1,
2263 -1, 213, -1, -1, -1, -1, 543, 1167, 1168, 221,
2264 -1, -1, 24, 115, 226, 552, 228, 29, 30, 31,
2265 32, 33, 34, -1, -1, -1, -1, -1, -1, 241,
2266 242, -1, -1, -1, 1194, 47, 48, 49, -1, -1,
2267 -1, -1, -1, -1, -1, -1, -1, -1, 408, -1,
2268 708, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2269 1134, 719, 720, 721, 722, 723, 724, 725, 726, 429,
2270 430, -1, -1, 817, -1, -1, -1, -1, 822, -1,
2271 -1, 618, 826, -1, 186, 187, 188, -1, 190, 191,
2272 192, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2273 -1, 552, 639, 115, 641, -1, -1, -1, 852, -1,
2274 647, -1, -1, -1, 651, -1, -1, -1, -1, -1,
2275 -1, -1, -1, -1, -1, -1, -1, -1, -1, 873,
2276 874, -1, -1, -1, -1, 879, 880, 881, 882, 883,
2277 884, 885, 886, 887, 888, 889, -1, -1, -1, -1,
2278 808, -1, 1226, -1, -1, -1, -1, -1, -1, -1,
2279 818, -1, 408, -1, -1, -1, -1, -1, -1, -1,
2280 707, -1, -1, -1, 186, 187, 188, -1, 190, -1,
2281 -1, 718, -1, 429, 430, 929, -1, -1, -1, -1,
2282 -1, -1, 552, -1, -1, -1, 408, -1, -1, -1,
2283 -1, 859, -1, -1, -1, -1, -1, -1, -1, -1,
2284 -1, -1, -1, -1, -1, -1, -1, 429, 430, -1,
2285 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2286 -1, -1, 890, 891, 892, 893, 894, 895, 896, 897,
2287 898, 899, 900, 901, 902, 903, 904, 905, 906, -1,
2288 908, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2289 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2290 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2291 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2292 -1, -1, -1, 47, 48, 49, -1, -1, -1, -1,
2293 -1, -1, -1, -1, -1, -1, 552, -1, -1, -1,
2294 -1, -1, -1, -1, -1, -1, 974, 71, -1, -1,
2295 -1, 1065, -1, -1, -1, -1, -1, -1, -1, -1,
2296 -1, -1, -1, -1, -1, -1, -1, -1, 875, -1,
2297 552, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2298 -1, -1, -1, 1011, -1, -1, 110, 1, -1, -1,
2299 -1, 115, 6, 7, 8, -1, 10, 11, 12, 13,
2300 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2301 24, -1, 26, -1, 28, 29, 30, 31, 32, 33,
2302 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2303 -1, 45, -1, 47, 48, 49, 50, 51, 52, 53,
2304 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2305 64, 65, 66, 67, -1, -1, 963, 71, -1, -1,
2306 -1, -1, 186, 187, 188, -1, 190, 191, 192, -1,
2307 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2308 -1, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2309 -1, 0, 1, -1, -1, -1, 110, -1, -1, -1,
2310 -1, 115, 1009, -1, -1, -1, -1, -1, -1, 18,
2311 -1, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2312 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
2313 -1, -1, -1, -1, -1, 44, -1, 46, -1, -1,
2314 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2315 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
2316 69, 70, -1, 72, -1, 1193, -1, 1074, 77, 78,
2317 79, -1, 186, 187, 188, -1, 190, 191, 192, 1207,
2318 -1, -1, -1, 92, 93, 94, -1, -1, -1, -1,
2319 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2320 1228, -1, 111, 112, 113, 114, -1, 116, 117, 118,
2321 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
2322 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2323 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2324 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2325 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2326 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2327 179, 0, 1, -1, -1, -1, -1, 186, 187, 188,
2328 189, -1, 191, 192, 193, -1, -1, -1, -1, 18,
2329 -1, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2330 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
2331 -1, -1, -1, -1, -1, 44, -1, 46, -1, -1,
2332 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2333 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
2334 69, 70, -1, 72, -1, -1, -1, -1, 77, 78,
2335 79, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2336 -1, -1, -1, 92, 93, 94, -1, -1, -1, -1,
2337 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2338 -1, -1, 111, 112, 113, 114, -1, 116, 117, 118,
2339 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
2340 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2341 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2342 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2343 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2344 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2345 179, -1, -1, -1, -1, -1, -1, 186, 187, 188,
2346 189, 1, 191, 192, 193, -1, 6, 7, 8, -1,
2347 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2348 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2349 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2350 -1, -1, 42, 43, 44, -1, 46, 47, 48, 49,
2351 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2352 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
2353 70, 71, 72, -1, -1, -1, -1, -1, -1, -1,
2354 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2355 -1, -1, -1, -1, -1, -1, 96, 97, 98, 99,
2356 100, 101, -1, -1, -1, -1, -1, -1, -1, -1,
2357 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2358 120, 121, 122, 123, 124, 125, -1, 127, 128, 129,
2359 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2360 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2361 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2362 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2363 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2364 -1, -1, -1, -1, -1, -1, 186, 187, 188, 189,
2365 190, 191, 192, 193, 1, -1, -1, -1, -1, 6,
2366 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2367 17, 18, 19, -1, -1, -1, -1, 24, -1, -1,
2368 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2369 -1, -1, -1, -1, -1, 42, 43, 44, -1, -1,
2370 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
2371 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2372 -1, 68, 69, 70, 71, -1, -1, -1, -1, -1,
2373 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2374 -1, -1, -1, -1, -1, -1, -1, -1, -1, 96,
2375 97, 98, 99, 100, 101, -1, -1, -1, -1, -1,
2376 -1, -1, -1, 110, 111, 112, 113, 114, 115, 116,
2377 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
2378 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2379 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2380 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2381 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2382 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2383 177, 178, 179, -1, -1, -1, -1, -1, -1, 186,
2384 187, 188, 189, 190, 191, 192, 193, 1, -1, -1,
2385 -1, -1, 6, 7, 8, -1, -1, 11, 12, 13,
2386 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2387 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2388 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
2389 44, -1, -1, 47, 48, 49, -1, -1, -1, -1,
2390 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2391 -1, -1, -1, -1, 68, 69, 70, 71, -1, -1,
2392 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2393 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2394 -1, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2395 -1, -1, -1, -1, -1, -1, 110, 111, 112, 113,
2396 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2397 124, 125, -1, 127, 128, 129, 130, 131, 132, 133,
2398 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2399 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2400 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2401 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2402 174, 175, 176, 177, 178, 179, -1, -1, -1, -1,
2403 -1, -1, 186, 187, 188, 189, 190, 191, 192, 193,
2404 1, -1, -1, -1, -1, 6, 7, 8, -1, -1,
2405 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2406 -1, -1, -1, 24, 25, -1, -1, -1, 29, 30,
2407 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2408 -1, 42, 43, -1, -1, 1, 47, 48, 49, -1,
2409 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2410 16, 17, 18, 19, -1, -1, -1, -1, 24, -1,
2411 71, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2412 -1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
2413 -1, 47, 48, 49, 95, 96, 97, 98, 99, 100,
2414 101, -1, -1, -1, -1, -1, -1, -1, -1, 110,
2415 -1, -1, -1, -1, 115, 71, -1, -1, -1, -1,
2416 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2417 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
2418 96, 97, 98, 99, 100, 101, -1, -1, -1, -1,
2419 -1, 1, -1, -1, 110, -1, 6, 7, 8, 115,
2420 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2421 -1, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2422 30, 31, 32, 33, 34, 186, 187, 188, -1, 190,
2423 191, 192, 42, 43, -1, -1, 1, 47, 48, 49,
2424 -1, 6, 7, 8, -1, -1, 11, 12, 13, 14,
2425 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2426 -1, 71, -1, -1, 29, 30, 31, 32, 33, 34,
2427 186, 187, 188, -1, 190, 191, 192, 42, 43, -1,
2428 -1, -1, 47, 48, 49, 95, 96, 97, 98, 99,
2429 100, 101, -1, -1, -1, -1, -1, -1, -1, -1,
2430 110, -1, -1, -1, -1, 115, 71, -1, -1, -1,
2431 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2432 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2433 95, 96, 97, 98, 99, 100, 101, -1, -1, -1,
2434 -1, -1, 1, -1, -1, 110, -1, 6, 7, 8,
2435 115, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2436 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2437 29, 30, 31, 32, 33, 34, 186, 187, 188, -1,
2438 190, 191, 192, 42, 43, -1, -1, 1, 47, 48,
2439 49, -1, 6, 7, 8, -1, -1, 11, 12, 13,
2440 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2441 24, -1, 71, -1, -1, 29, 30, 31, 32, 33,
2442 34, 186, 187, 188, -1, 190, 191, 192, 42, 43,
2443 -1, -1, -1, 47, 48, 49, -1, 96, 97, 98,
2444 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
2445 -1, 110, -1, -1, -1, -1, 115, 71, -1, -1,
2446 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2448 -1, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2449 -1, -1, -1, 1, -1, -1, 110, -1, 6, 7,
2450 8, 115, 10, 11, 12, 13, 14, 15, 16, 17,
2451 18, 19, -1, -1, -1, -1, 24, -1, -1, -1,
2452 -1, 29, 30, 31, 32, 33, 34, 186, 187, 188,
2453 -1, 190, 191, 192, 42, 43, -1, -1, -1, 47,
2454 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2455 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2456 -1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2457 -1, -1, 186, 187, 188, -1, 190, 191, 192, -1,
2458 -1, -1, -1, -1, -1, -1, -1, -1, 96, 97,
2459 98, 99, 100, 101, -1, -1, -1, -1, -1, -1,
2460 -1, -1, 110, -1, 6, 7, 8, 115, 10, 11,
2461 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2462 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2463 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2464 42, 43, 44, -1, 46, 47, 48, 49, -1, -1,
2465 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2466 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2467 72, -1, -1, -1, -1, -1, -1, -1, 186, 187,
2468 188, -1, 190, 191, 192, -1, -1, -1, -1, -1,
2469 -1, -1, -1, -1, 96, 97, 98, 99, 100, 101,
2470 -1, -1, -1, -1, -1, -1, -1, -1, 110, 111,
2471 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2472 122, 123, 124, 125, -1, 127, 128, 129, 130, 131,
2473 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2474 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2475 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2476 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2477 172, 173, 174, 175, 176, 177, 178, 179, -1, -1,
2478 -1, -1, -1, -1, 186, 187, 188, 189, 190, 191,
2479 192, 193, 6, 7, 8, -1, 10, 11, 12, 13,
2480 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2481 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2482 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
2483 44, -1, 46, 47, 48, 49, -1, -1, -1, -1,
2484 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2485 -1, -1, -1, -1, -1, -1, -1, 71, 72, -1,
2486 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2488 -1, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2489 -1, -1, -1, -1, -1, -1, 110, 111, 112, 113,
2490 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2491 124, 125, -1, 127, 128, 129, 130, 131, 132, 133,
2492 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2493 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2494 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2495 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2496 174, 175, 176, 177, 178, 179, -1, -1, -1, -1,
2497 -1, -1, 186, 187, 188, 189, 190, 191, 192, 193,
2498 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2499 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2500 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2501 -1, -1, -1, -1, -1, -1, 42, 43, 44, -1,
2502 46, 47, 48, 49, -1, -1, -1, -1, -1, -1,
2503 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2504 -1, -1, -1, -1, -1, 71, 72, -1, -1, -1,
2505 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2506 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2507 96, 97, 98, 99, 100, 101, -1, -1, -1, -1,
2508 -1, -1, -1, -1, 110, 111, 112, 113, 114, 115,
2509 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2510 -1, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2511 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2512 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2513 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2514 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2515 176, 177, 178, 179, -1, -1, -1, -1, -1, -1,
2516 186, 187, 188, 189, 190, 191, 192, 193, 6, 7,
2517 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2518 18, 19, 20, -1, -1, -1, 24, -1, -1, -1,
2519 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2520 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
2521 48, 49, -1, 6, 7, 8, -1, 10, 11, 12,
2522 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2523 -1, 24, -1, 71, -1, -1, 29, 30, 31, 32,
2524 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2525 -1, -1, -1, -1, 47, 48, 49, -1, 96, 97,
2526 98, 99, 100, 101, -1, -1, -1, -1, -1, -1,
2527 -1, -1, 110, -1, -1, -1, -1, 115, 71, -1,
2528 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2530 -1, -1, -1, 96, 97, 98, 99, 100, 101, -1,
2531 -1, -1, -1, -1, -1, -1, -1, 110, -1, 6,
2532 7, 8, 115, 10, 11, 12, 13, 14, 15, 16,
2533 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2534 -1, -1, 29, 30, 31, 32, 33, 34, 186, 187,
2535 188, -1, 190, 191, 192, -1, -1, -1, -1, -1,
2536 47, 48, 49, -1, 6, 7, 8, -1, 10, 11,
2537 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2538 -1, -1, 24, -1, 71, -1, -1, 29, 30, 31,
2539 32, 33, 34, 186, 187, 188, -1, 190, 191, 192,
2540 -1, -1, -1, -1, -1, 47, 48, 49, -1, 96,
2541 97, 98, 99, 100, 101, -1, -1, -1, -1, -1,
2542 -1, -1, -1, 110, -1, -1, -1, -1, 115, 71,
2543 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2544 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2545 -1, -1, -1, -1, 96, 97, 98, 99, 100, 101,
2546 -1, -1, -1, -1, -1, -1, -1, -1, 110, -1,
2547 6, 7, 8, 115, 10, 11, 12, 13, 14, 15,
2548 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2549 -1, -1, -1, 29, 30, 31, 32, 33, 34, 186,
2550 187, 188, -1, 190, 191, 192, -1, -1, -1, -1,
2551 -1, 47, 48, 49, -1, 6, 7, 8, -1, 10,
2552 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2553 -1, -1, -1, 24, -1, 71, -1, -1, 29, 30,
2554 31, 32, 33, 34, 186, 187, 188, -1, 190, 191,
2555 192, -1, -1, -1, -1, -1, 47, 48, 49, -1,
2556 96, 97, 98, 99, 100, 101, -1, -1, -1, -1,
2557 -1, -1, -1, -1, 110, -1, -1, -1, -1, 115,
2558 71, -1, 18, -1, -1, -1, -1, -1, 24, -1,
2559 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2560 -1, -1, -1, -1, -1, 96, 97, 98, 99, 100,
2561 101, 47, 48, 49, -1, -1, -1, -1, -1, 110,
2562 -1, 6, 7, 8, 115, 10, 11, 12, 13, 14,
2563 15, 16, 17, 18, 19, 71, -1, -1, -1, 24,
2564 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2565 186, 187, 188, -1, 190, 191, 192, -1, -1, -1,
2566 -1, -1, 47, 48, 49, -1, -1, -1, -1, -1,
2567 122, 123, 124, 125, -1, 127, -1, -1, -1, 115,
2568 132, 133, -1, -1, 136, 137, 71, 139, 140, 141,
2569 142, -1, -1, -1, -1, 186, 187, 188, -1, 190,
2570 191, 192, 154, 155, -1, -1, -1, -1, -1, -1,
2571 -1, 96, 97, 98, 99, 100, 101, 19, -1, -1,
2572 -1, -1, 24, -1, -1, 110, -1, 179, -1, -1,
2573 115, -1, -1, -1, -1, -1, -1, 189, -1, -1,
2574 -1, -1, 44, -1, 46, -1, -1, -1, -1, -1,
2575 186, 187, 188, -1, 190, -1, -1, -1, -1, -1,
2576 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2577 72, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2578 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2579 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2580 -1, 186, 187, 188, -1, 190, 191, 192, -1, 111,
2581 112, 113, 114, -1, 116, 117, 118, 119, 120, 121,
2582 122, 123, 124, 125, -1, 127, 128, 129, 130, 131,
2583 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2584 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2585 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2586 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2587 172, 173, 174, 175, 176, 177, 178, 179, 20, -1,
2588 -1, -1, -1, -1, -1, -1, 188, 189, -1, -1,
2589 -1, 193, -1, -1, -1, -1, -1, -1, -1, -1,
2590 -1, -1, 44, -1, -1, -1, -1, -1, -1, -1,
2591 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2592 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2593 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2594 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2596 -1, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2597 112, 113, 114, -1, 116, 117, 118, 119, 120, 121,
2598 122, 123, 124, 125, -1, 127, 128, 129, 130, 131,
2599 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2600 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2601 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2602 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2603 172, 173, 174, 175, 176, 177, 178, 179, -1, -1,
2604 -1, -1, -1, 19, 20, -1, 188, 189, 24, -1,
2605 -1, 193, -1, 29, 30, 31, 32, 33, 34, -1,
2606 -1, -1, -1, -1, 19, -1, -1, -1, -1, 24,
2607 -1, 47, 48, 49, 29, 30, 31, 32, 33, 34,
2608 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2609 -1, 19, 47, 48, 49, 71, 24, -1, -1, -1,
2610 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2611 -1, -1, 19, -1, -1, -1, 71, 24, -1, 47,
2612 48, 49, 29, 30, 31, 32, 33, 34, 24, -1,
2613 -1, 27, -1, 29, 30, 31, 32, 33, 34, 115,
2614 47, 48, 49, 71, 19, -1, -1, -1, -1, 24,
2615 -1, 47, 48, 49, 29, 30, 31, 32, 33, 34,
2616 115, -1, -1, -1, 71, -1, -1, -1, -1, -1,
2617 -1, -1, 47, 48, 49, 71, -1, -1, -1, -1,
2618 -1, -1, -1, -1, -1, -1, -1, 115, -1, -1,
2619 -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
2620 -1, -1, -1, -1, -1, -1, -1, -1, 115, -1,
2621 186, 187, 188, -1, 190, -1, -1, -1, -1, 115,
2622 -1, -1, -1, -1, -1, -1, -1, -1, -1, 24,
2623 -1, 186, 187, 188, -1, 190, -1, -1, -1, 34,
2624 115, -1, -1, -1, -1, -1, -1, -1, -1, 44,
2625 -1, -1, -1, -1, -1, -1, -1, -1, 186, 187,
2626 188, -1, 190, -1, -1, -1, -1, -1, -1, -1,
2627 -1, -1, -1, -1, -1, -1, -1, -1, -1, 186,
2628 187, 188, -1, 190, -1, -1, -1, -1, -1, -1,
2629 186, 187, 188, -1, 190, -1, -1, -1, -1, -1,
2630 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2631 -1, 186, 187, 188, -1, 190, 111, 112, 113, 114,
2632 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2633 125, -1, 127, 128, 129, 130, 131, 132, 133, 134,
2634 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2635 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2636 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2637 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2638 175, 176, 177, 178, 179, -1, -1, -1, -1, -1,
2639 -1, 186, 187, 188, 189, -1, 191, 192, 193, 24,
2640 -1, -1, 27, -1, 29, 30, 31, 32, 33, 34,
2641 24, 25, -1, -1, -1, 29, 30, 31, 32, 33,
2642 34, -1, 47, 48, 49, -1, -1, -1, -1, -1,
2643 -1, 24, 25, 47, 48, 49, 29, 30, 31, 32,
2644 33, 34, 24, -1, -1, -1, 71, 29, 30, 31,
2645 32, 33, 34, -1, 47, 48, 49, 71, -1, -1,
2646 -1, -1, -1, 24, -1, 47, 48, 49, 29, 30,
2647 31, 32, 33, 34, -1, -1, -1, -1, 71, -1,
2648 -1, -1, -1, -1, -1, -1, 47, 48, 49, 71,
2649 115, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2650 -1, 115, -1, -1, -1, -1, -1, -1, -1, -1,
2651 71, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2652 33, 34, 115, -1, -1, -1, -1, -1, -1, -1,
2653 -1, -1, 24, 115, 47, 48, 49, 29, 30, 31,
2654 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2655 -1, -1, -1, -1, 115, 47, 48, 49, 71, -1,
2656 -1, 186, 187, 188, -1, 190, -1, -1, -1, -1,
2657 -1, -1, 186, 187, 188, -1, 190, -1, -1, 71,
2658 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2659 -1, -1, -1, 186, 187, 188, -1, 190, -1, -1,
2660 -1, -1, 115, -1, 186, 187, 188, -1, 190, -1,
2661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2662 -1, -1, -1, 115, -1, 186, 187, 188, -1, 190,
2663 42, 43, 44, -1, -1, -1, -1, -1, -1, -1,
2664 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2665 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2667 -1, -1, -1, 186, 187, 188, -1, 190, -1, -1,
2668 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2669 -1, -1, -1, -1, 186, 187, 188, -1, 190, 111,
2670 112, 113, 114, -1, 116, 117, 118, 119, 120, 121,
2671 122, 123, 124, 125, -1, 127, 128, 129, 130, 131,
2672 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2673 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2674 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2675 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2676 172, 173, 174, 175, 176, 177, 178, 179, 44, -1,
2677 46, -1, -1, -1, -1, -1, 188, 189, -1, -1,
2678 -1, 193, -1, -1, -1, -1, -1, -1, -1, -1,
2679 -1, -1, 68, 69, 70, -1, 72, -1, -1, -1,
2680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2681 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2682 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2683 -1, -1, -1, -1, -1, 111, 112, 113, 114, -1,
2684 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2685 -1, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2686 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2687 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2688 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2689 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2690 176, 177, 178, 179, 44, -1, 46, -1, -1, -1,
2691 -1, -1, 188, 189, -1, -1, -1, 193, -1, -1,
2692 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2693 -1, -1, 72, -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, -1,
2696 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2697 -1, 111, 112, 113, 114, -1, 116, 117, 118, 119,
2698 120, 121, 122, 123, 124, 125, -1, 127, 128, 129,
2699 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2700 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2701 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2702 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2703 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2704 44, -1, -1, -1, -1, -1, 186, 187, 188, 189,
2705 -1, -1, -1, 193, -1, -1, -1, -1, -1, -1,
2706 -1, -1, -1, -1, 68, 69, 70, -1, -1, -1,
2707 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2708 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2709 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2710 -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
2711 114, -1, 116, 117, 118, 119, 120, 121, 122, 123,
2712 124, 125, -1, 127, 128, 129, 130, 131, 132, 133,
2713 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2714 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2715 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2716 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2717 174, 175, 176, 177, 178, 179, 44, -1, -1, -1,
2718 -1, -1, -1, -1, 188, 189, -1, -1, -1, 193,
2719 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2720 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2721 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2722 -1, -1, -1, -1, 92, 93, 94, -1, -1, -1,
2723 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2724 -1, -1, -1, 111, 112, 113, 114, -1, 116, 117,
2725 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
2726 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2727 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2728 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2729 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2730 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2731 178, 179, 44, -1, 46, -1, -1, -1, -1, -1,
2732 188, 189, -1, -1, -1, 193, -1, -1, -1, -1,
2733 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2734 72, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2735 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2736 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2737 -1, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2738 112, 113, 114, -1, 116, 117, 118, 119, 120, 121,
2739 122, 123, 124, 125, -1, 127, 128, 129, 130, 131,
2740 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2741 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2742 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2743 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2744 172, 173, 174, 175, 176, 177, 178, 179, 44, -1,
2745 -1, -1, -1, -1, -1, -1, 188, 189, -1, -1,
2746 -1, 193, -1, -1, -1, -1, -1, -1, -1, -1,
2747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2748 -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, 111, 112, 113, 114, -1,
2752 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2753 -1, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2754 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2755 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2756 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2757 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2758 176, 177, 178, 179, -1, -1, -1, -1, -1, -1,
2759 -1, -1, 188, 189, -1, -1, -1, 193
2761 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2763 /* Skeleton output parser for bison,
2765 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
2768 This program is free software; you can redistribute it and/or modify
2769 it under the terms of the GNU General Public License as published by
2770 the Free Software Foundation; either version 2, or (at your option)
2773 This program is distributed in the hope that it will be useful,
2774 but WITHOUT ANY WARRANTY; without even the implied warranty of
2775 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2776 GNU General Public License for more details.
2778 You should have received a copy of the GNU General Public License
2779 along with this program; if not, write to the Free Software
2780 Foundation, Inc., 59 Temple Place - Suite 330,
2781 Boston, MA 02111-1307, USA. */
2783 /* As a special exception, when this file is copied by Bison into a
2784 Bison output file, you may use that output file without restriction.
2785 This special exception was added by the Free Software Foundation
2786 in version 1.24 of Bison. */
2788 /* This is the parser code that is written into each bison parser when
2789 the %semantic_parser declaration is not specified in the grammar.
2790 It was written by Richard Stallman by simplifying the hairy parser
2791 used when %semantic_parser is specified. */
2793 /* All symbols defined below should begin with yy or YY, to avoid
2794 infringing on user name space. This should be done even for local
2795 variables, as they might otherwise be expanded by user macros.
2796 There are some unavoidable exceptions within include files to
2797 define necessary library symbols; they are noted "INFRINGES ON
2798 USER NAME SPACE" below. */
2800 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
2802 /* The parser invokes alloca or malloc; define the necessary symbols. */
2804 # if YYSTACK_USE_ALLOCA
2805 # define YYSTACK_ALLOC alloca
2807 # ifndef YYSTACK_USE_ALLOCA
2808 # if defined (alloca) || defined (_ALLOCA_H)
2809 # define YYSTACK_ALLOC alloca
2812 # define YYSTACK_ALLOC __builtin_alloca
2818 # ifdef YYSTACK_ALLOC
2819 /* Pacify GCC's `empty if-body' warning. */
2820 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
2822 # if defined (__STDC__) || defined (__cplusplus)
2823 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
2824 # define YYSIZE_T size_t
2826 # define YYSTACK_ALLOC malloc
2827 # define YYSTACK_FREE free
2829 #endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
2832 #if (! defined (yyoverflow) \
2833 && (! defined (__cplusplus) \
2834 || (YYLTYPE_IS_TRIVIAL && cgrammar_YYSTYPE_IS_TRIVIAL)))
2836 /* A type that is properly aligned for any stack member. */
2840 cgrammar_YYSTYPE yyvs;
2846 /* The size of the maximum gap between one aligned stack and the next. */
2847 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
2849 /* The size of an array large to enough to hold all stacks, each with
2852 # define YYSTACK_BYTES(N) \
2853 ((N) * (sizeof (short) + sizeof (cgrammar_YYSTYPE) + sizeof (YYLTYPE)) \
2854 + 2 * YYSTACK_GAP_MAX)
2856 # define YYSTACK_BYTES(N) \
2857 ((N) * (sizeof (short) + sizeof (cgrammar_YYSTYPE)) \
2861 /* Copy COUNT objects from FROM to TO. The source and destination do
2865 # define YYCOPY(To, From, Count) \
2866 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
2868 # define YYCOPY(To, From, Count) \
2871 register YYSIZE_T yyi; \
2872 for (yyi = 0; yyi < (Count); yyi++) \
2873 (To)[yyi] = (From)[yyi]; \
2879 /* Relocate STACK from its old location to the new one. The
2880 local variables YYSIZE and YYSTACKSIZE give the old and new number of
2881 elements in the stack, and YYPTR gives the new location of the
2882 stack. Advance YYPTR to a properly aligned location for the next
2884 # define YYSTACK_RELOCATE(Stack) \
2887 YYSIZE_T yynewbytes; \
2888 YYCOPY (&yyptr->Stack, Stack, yysize); \
2889 Stack = &yyptr->Stack; \
2890 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
2891 yyptr += yynewbytes / sizeof (*yyptr); \
2898 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
2899 # define YYSIZE_T __SIZE_TYPE__
2901 #if ! defined (YYSIZE_T) && defined (size_t)
2902 # define YYSIZE_T size_t
2904 #if ! defined (YYSIZE_T)
2905 # if defined (__STDC__) || defined (__cplusplus)
2906 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
2907 # define YYSIZE_T size_t
2910 #if ! defined (YYSIZE_T)
2911 # define YYSIZE_T unsigned int
2914 #define yyerrok (yyerrstatus = 0)
2915 #define yyclearin (yychar = YYEMPTY)
2918 #define YYACCEPT goto yyacceptlab
2919 #define YYABORT goto yyabortlab
2920 #define YYERROR goto yyerrlab1
2921 /* Like YYERROR except do call yyerror. This remains here temporarily
2922 to ease the transition to the new meaning of YYERROR, for GCC.
2923 Once GCC version 2 has supplanted version 1, this can go. */
2924 #define YYFAIL goto yyerrlab
2925 #define YYRECOVERING() (!!yyerrstatus)
2926 #define YYBACKUP(Token, Value) \
2928 if (yychar == YYEMPTY && yylen == 1) \
2932 yychar1 = YYTRANSLATE (yychar); \
2938 yyerror ("syntax error: cannot back up"); \
2944 #define YYERRCODE 256
2947 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
2950 When YYLLOC_DEFAULT is run, CURRENT is set the location of the
2951 first token. By default, to implement support for ranges, extend
2952 its range to the last symbol. */
2954 #ifndef YYLLOC_DEFAULT
2955 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2956 Current.last_line = Rhs[N].last_line; \
2957 Current.last_column = Rhs[N].last_column;
2961 /* YYLEX -- calling `yylex' with the right arguments. */
2966 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
2968 # define YYLEX yylex (&yylval, &yylloc)
2970 # else /* !YYLSP_NEEDED */
2972 # define YYLEX yylex (&yylval, YYLEX_PARAM)
2974 # define YYLEX yylex (&yylval)
2976 # endif /* !YYLSP_NEEDED */
2978 # define YYLEX yylex ()
2979 #endif /* !YYPURE */
2982 /* Enable debugging if requested. */
2986 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2987 # define YYFPRINTF fprintf
2990 # define YYDPRINTF(Args) \
2995 /* Nonzero means print parse trace. It is left uninitialized so that
2996 multiple parsers can coexist. */
2998 #else /* !YYDEBUG */
2999 # define YYDPRINTF(Args)
3000 #endif /* !YYDEBUG */
3002 /* YYINITDEPTH -- initial size of the parser's stacks. */
3004 # define YYINITDEPTH 200
3007 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3008 if the built-in stack extension method is used).
3010 Do not make this value too large; the results are undefined if
3011 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
3012 evaluated with infinite-precision integer arithmetic. */
3019 # define YYMAXDEPTH 10000
3022 #ifdef YYERROR_VERBOSE
3025 # if defined (__GLIBC__) && defined (_STRING_H)
3026 # define yystrlen strlen
3028 /* Return the length of YYSTR. */
3030 # if defined (__STDC__) || defined (__cplusplus)
3031 yystrlen (const char *yystr)
3037 register const char *yys = yystr;
3039 while (*yys++ != '\0')
3042 return yys - yystr - 1;
3048 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
3049 # define yystpcpy stpcpy
3051 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3054 # if defined (__STDC__) || defined (__cplusplus)
3055 yystpcpy (char *yydest, const char *yysrc)
3057 yystpcpy (yydest, yysrc)
3062 register char *yyd = yydest;
3063 register const char *yys = yysrc;
3065 while ((*yyd++ = *yys++) != '\0')
3076 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
3077 into yyparse. The argument should have type void *.
3078 It should actually point to an object.
3079 Grammar actions can access the variable by casting it
3080 to the proper pointer type. */
3082 #ifdef YYPARSE_PARAM
3083 # if defined (__STDC__) || defined (__cplusplus)
3084 # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
3085 # define YYPARSE_PARAM_DECL
3087 # define YYPARSE_PARAM_ARG YYPARSE_PARAM
3088 # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
3090 #else /* !YYPARSE_PARAM */
3091 # define YYPARSE_PARAM_ARG
3092 # define YYPARSE_PARAM_DECL
3093 #endif /* !YYPARSE_PARAM */
3095 /* Prevent warning if -Wstrict-prototypes. */
3097 # ifdef YYPARSE_PARAM
3098 int yyparse (void *);
3104 /* YY_DECL_VARIABLES -- depending whether we use a pure parser,
3105 variables are global, or local to YYPARSE. */
3107 #define YY_DECL_NON_LSP_VARIABLES \
3108 /* The lookahead symbol. */ \
3111 /* The semantic value of the lookahead symbol. */ \
3112 cgrammar_YYSTYPE yylval; \
3114 /* Number of parse errors so far. */ \
3118 # define YY_DECL_VARIABLES \
3119 YY_DECL_NON_LSP_VARIABLES \
3121 /* Location data for the lookahead symbol. */ \
3124 # define YY_DECL_VARIABLES \
3125 YY_DECL_NON_LSP_VARIABLES
3129 /* If nonreentrant, generate the variables here. */
3133 #endif /* !YYPURE */
3136 yyparse (YYPARSE_PARAM_ARG)
3139 /* If reentrant, generate the variables here. */
3142 #endif /* !YYPURE */
3144 register int yystate;
3147 /* Number of tokens to shift before error messages enabled. */
3149 /* Lookahead token as an internal (translated) token number. */
3152 /* Three stacks and their tools:
3153 `yyss': related to states,
3154 `yyvs': related to semantic values,
3155 `yyls': related to locations.
3157 Refer to the stacks thru separate pointers, to allow yyoverflow
3158 to reallocate them elsewhere. */
3160 /* The state stack. */
3161 short yyssa[YYINITDEPTH];
3162 short *yyss = yyssa;
3163 register short *yyssp;
3165 /* The semantic value stack. */
3166 cgrammar_YYSTYPE yyvsa[YYINITDEPTH];
3167 cgrammar_YYSTYPE *yyvs = yyvsa;
3168 register cgrammar_YYSTYPE *yyvsp;
3171 /* The location stack. */
3172 YYLTYPE yylsa[YYINITDEPTH];
3173 YYLTYPE *yyls = yylsa;
3178 # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
3180 # define YYPOPSTACK (yyvsp--, yyssp--)
3183 YYSIZE_T yystacksize = YYINITDEPTH;
3186 /* The variables used to return semantic value and location from the
3188 cgrammar_YYSTYPE yyval;
3193 /* When reducing, the number of symbols on the RHS of the reduced
3197 YYDPRINTF ((stderr, "Starting parse\n"));
3202 yychar = YYEMPTY; /* Cause a token to be read. */
3204 /* Initialize stack pointers.
3205 Waste one element of value and location stack
3206 so that they stay on the same level as the state stack.
3207 The wasted elements are never initialized. */
3216 /*------------------------------------------------------------.
3217 | yynewstate -- Push a new state, which is found in yystate. |
3218 `------------------------------------------------------------*/
3220 /* In all cases, when you get here, the value and location stacks
3221 have just been pushed. so pushing a state here evens the stacks.
3228 if (yyssp >= yyss + yystacksize - 1)
3230 /* Get the current used size of the three stacks, in elements. */
3231 YYSIZE_T yysize = yyssp - yyss + 1;
3235 /* Give user a chance to reallocate the stack. Use copies of
3236 these so that the &'s don't force the real ones into
3238 cgrammar_YYSTYPE *yyvs1 = yyvs;
3239 short *yyss1 = yyss;
3241 /* Each stack pointer address is followed by the size of the
3242 data in use in that stack, in bytes. */
3244 YYLTYPE *yyls1 = yyls;
3245 /* This used to be a conditional around just the two extra args,
3246 but that might be undefined if yyoverflow is a macro. */
3247 yyoverflow ("parser stack overflow",
3248 &yyss1, yysize * sizeof (*yyssp),
3249 &yyvs1, yysize * sizeof (*yyvsp),
3250 &yyls1, yysize * sizeof (*yylsp),
3254 yyoverflow ("parser stack overflow",
3255 &yyss1, yysize * sizeof (*yyssp),
3256 &yyvs1, yysize * sizeof (*yyvsp),
3262 #else /* no yyoverflow */
3263 # ifndef YYSTACK_RELOCATE
3266 /* Extend the stack our own way. */
3267 if (yystacksize >= YYMAXDEPTH)
3270 if (yystacksize > YYMAXDEPTH)
3271 yystacksize = YYMAXDEPTH;
3274 short *yyss1 = yyss;
3275 union yyalloc *yyptr =
3276 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3279 YYSTACK_RELOCATE (yyss);
3280 YYSTACK_RELOCATE (yyvs);
3282 YYSTACK_RELOCATE (yyls);
3284 # undef YYSTACK_RELOCATE
3286 YYSTACK_FREE (yyss1);
3289 #endif /* no yyoverflow */
3291 yyssp = yyss + yysize - 1;
3292 yyvsp = yyvs + yysize - 1;
3294 yylsp = yyls + yysize - 1;
3297 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3298 (unsigned long int) yystacksize));
3300 if (yyssp >= yyss + yystacksize - 1)
3304 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3314 /* Do appropriate processing given the current state. */
3315 /* Read a lookahead token if we need one and don't already have one. */
3318 /* First try to decide what to do without reference to lookahead token. */
3320 yyn = yypact[yystate];
3324 /* Not known => get a lookahead token if don't already have one. */
3326 /* yychar is either YYEMPTY or YYEOF
3327 or a valid token in external form. */
3329 if (yychar == YYEMPTY)
3331 YYDPRINTF ((stderr, "Reading a token: "));
3335 /* Convert token to internal form (in yychar1) for indexing tables with */
3337 if (yychar <= 0) /* This means end of input. */
3340 yychar = YYEOF; /* Don't call YYLEX any more */
3342 YYDPRINTF ((stderr, "Now at end of input.\n"));
3346 yychar1 = YYTRANSLATE (yychar);
3349 /* We have to keep this `#if YYDEBUG', since we use variables
3350 which are defined only if `YYDEBUG' is set. */
3353 YYFPRINTF (stderr, "Next token is %d (%s",
3354 yychar, yytname[yychar1]);
3355 /* Give the individual parser a way to print the precise
3356 meaning of a token, for further debugging info. */
3358 YYPRINT (stderr, yychar, yylval);
3360 YYFPRINTF (stderr, ")\n");
3366 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3371 /* yyn is what to do for this token type in this state.
3372 Negative => reduce, -yyn is rule number.
3373 Positive => shift, yyn is new state.
3374 New state is final state => don't bother to shift,
3375 just return success.
3376 0, or most negative number => error. */
3391 /* Shift the lookahead token. */
3392 YYDPRINTF ((stderr, "Shifting token %d (%s), ",
3393 yychar, yytname[yychar1]));
3395 /* Discard the token being shifted unless it is eof. */
3396 if (yychar != YYEOF)
3404 /* Count tokens shifted since error; after three, turn off error
3413 /*-----------------------------------------------------------.
3414 | yydefault -- do the default action for the current state. |
3415 `-----------------------------------------------------------*/
3417 yyn = yydefact[yystate];
3423 /*-----------------------------.
3424 | yyreduce -- Do a reduction. |
3425 `-----------------------------*/
3427 /* yyn is the number of a rule to reduce with. */
3430 /* If YYLEN is nonzero, implement the default value of the action:
3433 Otherwise, the following line sets YYVAL to the semantic value of
3434 the lookahead token. This behavior is undocumented and Bison
3435 users should not rely upon it. Assigning to YYVAL
3436 unconditionally makes the parser a bit smaller, and it avoids a
3437 GCC warning that YYVAL may be used uninitialized. */
3438 yyval = yyvsp[1-yylen];
3441 /* Similarly for the default location. Let the user run additional
3442 commands if for instance locations are ranges. */
3443 yyloc = yylsp[1-yylen];
3444 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
3448 /* We have to keep this `#if YYDEBUG', since we use variables which
3449 are defined only if `YYDEBUG' is set. */
3454 YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
3457 /* Print the symbols being reduced, and their result. */
3458 for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
3459 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
3460 YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3467 { context_checkGlobalScope (); ;
3470 { context_checkGlobalScope (); ;
3473 { uentry_clearDecl (); ;
3476 { uentry_clearDecl (); ;
3479 { uentry_clearDecl (); ;
3482 { uentry_clearDecl (); ;
3485 { uentry_clearDecl (); ;
3488 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3491 { uentry_clearDecl (); lltok_free (yyvsp[0].tok); /* evans 2002-02-08: okay to have a null statement */ ;
3494 { uentry_clearDecl (); ;
3497 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); lltok_free2 (yyvsp[-7].tok, yyvsp[0].tok); ;
3500 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr); lltok_free3 (yyvsp[-10].tok, yyvsp[-5].tok, yyvsp[0].tok); ;
3503 { context_enterFunctionHeader (); ;
3507 declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3508 context_exitFunctionHeader ();
3509 lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); /*!*/
3514 qtype qint = qtype_create (ctype_int);
3515 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3520 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3523 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
3526 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3529 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;
3532 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
3536 exprNode_findValue (yyvsp[-2].expr);
3537 idDecl_notExpectingFunction (yyvsp[-5].ntyp);
3539 if (exprNode_hasValue (yyvsp[-2].expr))
3541 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp),
3542 exprNode_getLongValue (yyvsp[-2].expr)));
3546 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-5].ntyp)));
3549 lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
3553 { setCurrentParams (uentryList_missingParams); ;
3556 { /* need to support globals and modifies here! */
3557 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3558 uentryList_makeMissingParams ());
3560 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3562 /*drl 7/25/01 added*/
3563 setImplictfcnConstraints();
3565 /* functionClauseList_ImplictConstraints($6); */
3567 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3569 lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
3573 { setCurrentParams (yyvsp[-1].entrylist); ;
3577 setImplictfcnConstraints ();
3578 /* functionClauseList_ImplictConstraints($7);*/
3579 clearCurrentParams ();
3580 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3581 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3583 lltok_free2 (yyvsp[-4].tok, yyvsp[-2].tok);
3587 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3590 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;
3593 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp)));
3594 lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok);
3601 if (exprNode_hasValue (yyvsp[-2].expr)
3602 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3604 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3611 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3612 lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
3616 { setCurrentParams (uentryList_missingParams); ;
3620 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3621 uentryList_makeMissingParams ());
3623 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3624 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3626 lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
3630 { setCurrentParams (yyvsp[-1].entrylist); ;
3634 clearCurrentParams ();
3635 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3636 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3638 lltok_free (yyvsp[-4].tok);
3639 /*!! lltok_free2 ($3, $5); */
3643 { setCurrentParams (yyvsp[-1].entrylist); ;
3646 { clearCurrentParams (); ;
3649 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist);
3650 lltok_free3 (yyvsp[-9].tok, yyvsp[-7].tok, yyvsp[-5].tok);
3654 { exprNode_checkMacroBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
3657 { exprNode_checkIterBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
3660 { exprNode_checkIterEnd (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok);;
3663 { exprChecks_checkEmptyMacroBody (); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
3666 { clabstract_declareFunction (yyvsp[0].ntyp); ;
3669 { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;
3672 { cscanner_expectingMetaStateName (); ;
3675 { cscanner_clearExpectingMetaStateName ();
3676 yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo);
3677 lltok_free (yyvsp[-1].tok);
3681 { cscanner_expectingMetaStateName (); ;
3684 { cscanner_clearExpectingMetaStateName ();
3685 yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo);
3686 lltok_free2 (yyvsp[-3].tok, yyvsp[-1].tok);
3690 { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
3693 { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;
3696 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
3699 { yyval.conL = constraintList_single (yyvsp[0].con); ;
3703 yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
3704 DPRINTF(("Done BufConstraint1\n")); ;
3707 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3711 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3712 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3715 { yyval.conE = constraintExpr_makeTermsRef (yyvsp[0].sr);;
3718 { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
3721 { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
3724 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3727 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3733 t = cstring_toCharsSafe (exprNode_unparse($3));
3736 yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
3740 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3743 { yyval.sr = yyvsp[-1].sr; ;
3746 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3749 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3752 { yyval.funcclauselist = functionClauseList_new (); ;
3755 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3758 { yyval.funcclauselist = functionClauseList_new (); ;
3761 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3764 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3767 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3770 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3773 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3776 { yyval.funcclause = yyvsp[0].funcclause; ;
3779 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3782 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3785 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3788 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3791 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3794 { yyval.funcclause = yyvsp[0].funcclause; ;
3797 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3800 { yyval.globsclause = yyvsp[-1].globsclause; ;
3803 { setProcessingGlobalsList (); ;
3807 unsetProcessingGlobals ();
3808 yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset);
3812 { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
3815 { yyval.modsclause = yyvsp[-1].modsclause; ;
3819 context_setProtectVars (); enterParamsTemp ();
3820 sRef_setGlobalScopeSafe ();
3826 sRef_clearGlobalScopeSafe ();
3827 context_releaseVars ();
3828 yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
3832 { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
3835 { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
3838 { yyval.warnclause = warnClause_undefined; ;
3841 { yyval.warnclause = yyvsp[-1].warnclause; ;
3845 llassert (exprNode_knownStringValue (yyvsp[0].expr));
3846 yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr))));
3847 exprNode_free (yyvsp[0].expr);
3851 { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
3854 { yyval.globset = globSet_single (yyvsp[0].sr); ;
3857 { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
3860 { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3863 { yyval.tquallist = qualList_undefined; ;
3866 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3869 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3872 { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
3875 { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
3878 { yyval.typequal = qual_createUndef (); ;
3881 { yyval.typequal = qual_createKilled (); ;
3884 { yyval.typequal = qual_createOut (); ;
3887 { yyval.typequal = qual_createIn (); ;
3890 { yyval.typequal = qual_createPartial (); ;
3894 /**!!! deal with fred; fred (int); declarations! **/
3895 qtype qint = qtype_create (ctype_int);
3896 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3901 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3904 { checkDoneParams (); context_enterInnerContext (); ;
3908 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3909 context_exitInner (yyvsp[0].expr);
3913 { context_enterOldStyleScope (); ;
3916 { oldStyleDoneParams (); context_enterInnerContext (); ;
3920 exprNode_checkFunctionBody (yyvsp[0].expr);
3921 yyval.expr = yyvsp[0].expr; /* oldstyle */
3922 context_exitInner (yyvsp[0].expr);
3927 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3928 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3931 context_exitFunction ();
3935 { yyval.srset = yyvsp[-1].srset; ;
3938 { yyval.srset = sRefSet_new (); ;
3941 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3944 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3947 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3950 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3953 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3956 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3959 { yyval.sr = yyvsp[-1].sr; ;
3962 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3965 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3968 { yyval.sr = yyvsp[0].sr; ;
3971 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3974 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3977 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3980 { yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
3983 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3986 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3989 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3992 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3995 { yyval.sr = yyvsp[-1].sr; ;
3998 { cstring_markOwned (yyvsp[0].cname);
3999 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
4002 { cstring_markOwned (yyvsp[0].cname);
4003 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
4006 { yyval.srset = sRefSet_undefined ;
4009 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
4010 else { yyval.srset = sRefSet_undefined; }
4014 { if (sRef_isValid (yyvsp[0].sr))
4016 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
4020 yyval.srset = yyvsp[-2].srset;
4025 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
4028 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
4031 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4034 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
4037 { yyval.expr = exprNode_makeError (); ;
4040 { exprChecks_inCompoundStatementExpression (); ;
4043 { exprChecks_leaveCompoundStatementExpression (); yyval.expr = exprNode_compoundStatementExpression (yyvsp[-3].tok, yyvsp[-1].expr); ;
4046 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4049 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4052 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
4055 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
4058 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4061 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4064 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4067 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4070 { /* added for C99 */ yyval.expr = exprNode_undefined; /*@i87 no checking */ ;
4073 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4076 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
4079 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4082 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4085 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4088 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4091 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4094 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4097 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4100 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4103 { yyval.expr = yyvsp[0].expr; ;
4106 { yyval.expr = yyvsp[0].expr; ;
4109 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); lltok_free (yyvsp[-1].tok); ;
4112 { yyval.cstringlist = yyvsp[-3].cstringlist; lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
4115 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
4118 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist);
4119 lltok_free3 (yyvsp[-8].tok, yyvsp[-6].tok, yyvsp[-3].tok); lltok_free (yyvsp[-1].tok); ;
4122 { context_setProtectVars (); ;
4125 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
4128 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok); ;
4131 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;
4134 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok); ;
4137 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;
4140 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); lltok_free (yyvsp[-1].tok); ;
4143 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4146 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4149 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4152 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4155 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4158 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4161 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4164 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4167 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4170 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4173 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4176 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4179 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4182 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4185 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4188 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4191 { exprNode_produceGuards (yyvsp[-1].expr);
4192 context_enterAndClause (yyvsp[-1].expr);
4197 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4198 context_exitAndClause (yyval.expr, yyvsp[0].expr);
4203 exprNode_produceGuards (yyvsp[-1].expr);
4204 context_enterOrClause (yyvsp[-1].expr);
4209 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4210 context_exitOrClause (yyval.expr, yyvsp[0].expr);
4214 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4217 { context_enterFalseClause (yyvsp[-4].expr); ;
4220 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
4223 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4226 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4229 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4232 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4235 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4238 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4241 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4244 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4247 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4250 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4253 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4256 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
4259 { yyval.expr = exprNode_undefined; ;
4262 { yyval.expr = yyvsp[0].expr; ;
4265 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
4268 { yyval.expr = exprNode_makeError (); ;
4271 { yyval.expr = exprNode_makeError (); ;
4275 setProcessingVars (yyvsp[-3].qtyp);
4276 processNamedDecl (yyvsp[-1].ntyp);
4281 unsetProcessingVars ();
4282 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp);
4283 DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
4287 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
4290 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
4291 unsetProcessingVars ();
4296 processNamedDecl (yyvsp[-1].ntyp);
4297 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
4301 { processNamedDecl (yyvsp[-2].ntyp); ;
4304 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
4307 { setProcessingTypedef (yyvsp[0].qtyp); ;
4310 { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
4313 { /* in the ANSI grammar, semantics unclear */ ;
4316 { /* in the ANSI grammar, semantics unclear */ ;
4319 { g_expectingTypeName = TRUE; ;
4322 { g_expectingTypeName = TRUE; context_pushLoc (); ;
4325 { yyval.exprlist = yyvsp[-1].exprlist; ;
4328 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4331 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4334 { yyval.expr = exprNode_makeError (); ;
4337 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4340 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); lltok_free (yyvsp[0].tok); ;
4343 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
4346 { yyval.expr = exprNode_undefined; ;
4349 { yyval.expr = yyvsp[-1].expr; ;
4352 { yyval.expr = exprNode_undefined;
4353 /* gcc extension, obsolete since 2.5 */ ;
4356 { yyval.expr = exprNode_undefined; ;
4359 { yyval.expr = exprNode_undefined; ;
4362 { yyval.expr = exprNode_undefined; ;
4365 { yyval.expr = exprNode_undefined; ;
4368 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4371 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
4374 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4377 { yyval.typequal = qual_createInline (); ;
4380 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4383 { yyval.typequal = qual_createAuto (); ;
4386 { yyval.typequal = qual_createRegister (); ;
4389 { yyval.stateclause = yyvsp[-1].stateclause; ;
4393 context_setProtectVars ();
4395 sRef_setGlobalScopeSafe ();
4401 sRef_clearGlobalScopeSafe ();
4402 context_releaseVars ();
4403 yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
4407 { yyval.funcclause = yyvsp[-1].funcclause; ;
4410 { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
4414 context_exitFunctionHeader ();
4415 context_setProtectVars ();
4417 sRef_setGlobalScopeSafe ();
4423 sRef_clearGlobalScopeSafe ();
4424 context_releaseVars ();
4425 yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
4430 context_setProtectVars ();
4432 sRef_setGlobalScopeSafe ();
4437 context_exitFunctionHeader ();
4439 sRef_clearGlobalScopeSafe ();
4440 context_releaseVars ();
4441 DPRINTF (("done optGlobBufConstraintsAux\n"));
4443 if (lltok_isEnsures (yyvsp[-4].tok))
4445 yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint);
4447 else if (lltok_isRequires (yyvsp[-4].tok))
4449 yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint);
4456 DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
4460 { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
4463 { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
4466 { yyval.typequal = qual_createExits (); ;
4469 { yyval.typequal = qual_createMayExit (); ;
4472 { yyval.typequal = qual_createTrueExit (); ;
4475 { yyval.typequal = qual_createFalseExit (); ;
4478 { yyval.typequal = qual_createNeverExit (); ;
4481 { yyval.typequal = qual_createChecked (); ;
4484 { yyval.typequal = qual_createCheckMod (); ;
4487 { yyval.typequal = qual_createUnchecked (); ;
4490 { yyval.typequal = qual_createCheckedStrict (); ;
4493 { yyval.typequal = qual_createOwned (); ;
4496 { yyval.typequal = qual_createDependent (); ;
4499 { yyval.typequal = qual_createYield (); ;
4502 { yyval.typequal = qual_createTemp (); ;
4505 { yyval.typequal = qual_createOnly (); ;
4508 { yyval.typequal = qual_createKeep (); ;
4511 { yyval.typequal = qual_createKept (); ;
4514 { yyval.typequal = qual_createShared (); ;
4517 { yyval.typequal = qual_createUnique (); ;
4520 { yyval.typequal = qual_createNull (); ;
4523 { yyval.typequal = qual_createIsNull (); ;
4526 { yyval.typequal = qual_createRelNull (); ;
4529 { yyval.typequal = qual_createNotNull (); ;
4532 { yyval.typequal = qual_createExposed (); ;
4535 { yyval.typequal = qual_createObserver (); ;
4538 { yyval.typequal = qual_createNullTerminated (); ;
4541 { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
4544 { yyval.typequal = qual_createReturned (); ;
4547 { yyval.typequal = qual_createSef (); ;
4550 { yyval.typequal = qual_createUnused (); ;
4553 { yyval.typequal = qual_createExternal (); ;
4556 { yyval.typequal = qual_createTrueNull (); ;
4559 { yyval.typequal = qual_createFalseNull (); ;
4562 { yyval.typequal = qual_createAbstract (); ;
4565 { yyval.typequal = qual_createConcrete (); ;
4568 { yyval.typequal = qual_createMutable (); ;
4571 { yyval.typequal = qual_createImmutable (); ;
4574 { yyval.typequal = qual_createRefCounted (); ;
4577 { yyval.typequal = qual_createRefs (); ;
4580 { yyval.typequal = qual_createKillRef (); ;
4583 { yyval.typequal = qual_createRelDef (); ;
4586 { yyval.typequal = qual_createNewRef (); ;
4589 { yyval.typequal = qual_createTempRef (); ;
4592 { yyval.typequal = qual_createShort (); ;
4595 { yyval.typequal = qual_createLong (); ;
4598 { yyval.typequal = qual_createSigned (); ;
4601 { yyval.typequal = qual_createUnsigned (); ;
4604 { yyval.typequal = qual_createOut (); ;
4607 { yyval.typequal = qual_createIn (); ;
4610 { yyval.typequal = qual_createPartial (); ;
4613 { yyval.typequal = qual_createSpecial (); ;
4616 { yyval.typequal = qual_createConst (); ;
4619 { yyval.typequal = qual_createVolatile (); ;
4622 { yyval.typequal = qual_createRestrict (); ;
4625 { yyval.typequal = yyvsp[-1].typequal; ;
4628 { yyval.typequal = yyvsp[-1].typequal; ;
4631 { yyval.typequal = yyvsp[-1].typequal; ;
4634 { yyval.typequal = yyvsp[-1].typequal; ;
4637 { yyval.typequal = yyvsp[-1].typequal; ;
4640 { yyval.typequal = yyvsp[-1].typequal; ;
4643 { yyval.typequal = yyvsp[-1].typequal; ;
4646 { yyval.typequal = yyvsp[-1].typequal; ;
4649 { yyval.typequal = yyvsp[-1].typequal; ;
4652 { yyval.ctyp = ctype_makeAnytype (); ;
4655 { yyval.ctyp = ctype_anyintegral; ;
4658 { yyval.ctyp = ctype_unsignedintegral; ;
4661 { yyval.ctyp = ctype_signedintegral; ;
4664 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4667 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4670 { yyval.qtyp = yyvsp[0].qtyp; ;
4673 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4676 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4679 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4682 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4685 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4688 { yyval.qtyp = qtype_unknown (); ;
4691 { yyval.qtyp = yyvsp[0].qtyp; ;
4694 { yyval.conL = constraintList_undefined; ;
4697 { sRef_setGlobalScopeSafe (); ;
4700 { sRef_clearGlobalScopeSafe (); ;
4703 { ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); setGlobalStructInfo(ct, yyvsp[0].conL); yyval.ctyp = ct; ;
4706 { sRef_setGlobalScopeSafe (); ;
4709 { sRef_clearGlobalScopeSafe (); ;
4712 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4715 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4718 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4721 { sRef_setGlobalScopeSafe (); ;
4724 { sRef_clearGlobalScopeSafe (); ;
4727 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4730 { sRef_setGlobalScopeSafe (); ;
4733 { sRef_clearGlobalScopeSafe (); ;
4736 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4739 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4742 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4745 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4748 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4751 { g_expectingTypeName = FALSE; ;
4754 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4757 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4760 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4763 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4766 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4769 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4772 { yyval.ntyp = yyvsp[0].ntyp; ;
4775 { yyval.ntyp = idDecl_undefined; ;
4778 { yyval.ntyp = yyvsp[-3].ntyp; ;
4781 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4784 { context_pushLoc (); ;
4787 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4790 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4793 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4796 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4799 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4800 usymtab_supGlobalEntry (ue);
4801 yyval.cname = yyvsp[0].cname;
4805 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4806 usymtab_supGlobalEntry (ue);
4807 yyval.cname = yyvsp[-3].cname;
4811 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4815 qtype qt = qtype_unknown ();
4816 qtype_adjustPointers (yyvsp[-1].pointers, qt);
4817 yyval.ntyp = idDecl_create (cstring_copy (cscanner_observeLastIdentifier ()), qt);
4821 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
4824 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
4827 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4830 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4833 { yyval.typequal = qual_createConst (); ;
4836 { yyval.typequal = qual_createRestrict (); ;
4839 { yyval.typequal = qual_createVolatile (); ;
4842 { yyval.tquallist = qualList_single (yyvsp[0].typequal); ;
4845 { yyval.tquallist = qualList_add (yyvsp[-1].tquallist, yyvsp[0].typequal); ;
4848 { yyval.pointers = pointers_create (yyvsp[0].tok); ;
4851 { yyval.pointers = pointers_createMods (yyvsp[-1].tok, yyvsp[0].tquallist); ;
4854 { yyval.pointers = pointers_extend (pointers_create (yyvsp[-1].tok), yyvsp[0].pointers); ;
4857 { yyval.pointers = pointers_extend (pointers_createMods (yyvsp[-2].tok, yyvsp[-1].tquallist), yyvsp[0].pointers); ;
4860 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4863 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4866 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4869 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4872 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4878 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4884 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4888 if (isFlipOldStyle ())
4890 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4896 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4901 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4905 llparseerror (message ("Inconsistent function parameter syntax: %q",
4906 idDecl_unparse (tparam)));
4910 yyval.oentry = makeCurrentParam (tparam);
4911 idDecl_free (tparam);
4915 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4918 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;
4921 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;
4924 { yyval.ctyp = ctype_unknown; ;
4927 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4930 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4933 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4936 { yyval.ctyp = ctype_makeInnerArray (yyvsp[-2].ctyp); ;
4939 { yyval.ctyp = ctype_makeInnerFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4942 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4945 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4948 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4951 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4954 { yyval.expr = yyvsp[0].expr; ;
4957 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4960 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4963 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4966 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4969 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4972 { context_setProtectVars (); ;
4975 { context_sizeofReleaseVars (); ;
4978 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4979 context_enterForClause (yyvsp[-5].expr); ;
4982 { setProcessingIterVars (yyvsp[-2].entry); ;
4985 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
4988 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4991 { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
4994 { yyval.expr = yyvsp[-1].expr; ;
4997 { yyval.expr = exprNode_makeError (); ;
5000 { exprNode_checkIfPred (yyvsp[0].expr); ;
5003 { /* don't: context_exitTrueClause ($1, $2); */
5004 yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr);
5008 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5011 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5014 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5017 { yyval.expr = exprNode_makeError (); ;
5020 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
5023 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
5032 { context_enterCaseClause (yyvsp[0].expr); ;
5035 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
5038 { context_enterCaseClause (yyvsp[0].expr); ;
5041 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
5044 { context_enterCaseClause (exprNode_undefined); ;
5047 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
5050 { context_enterCaseClause (exprNode_undefined); ;
5053 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
5056 { yyval.expr = yyvsp[-1].expr; ;
5059 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
5062 { yyval.expr = yyvsp[-1].expr; ;
5065 { context_enterInnerContext (); ;
5068 { context_exitInnerPlain (); ;
5071 { context_enterStructInnerContext (); ;
5074 { context_exitStructInnerContext (); ;
5077 { context_exitInnerSafe (); ;
5080 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5083 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
5086 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5089 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5092 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5095 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5098 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5101 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
5102 lltok_getLoc (yyvsp[-1].tok)));
5106 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
5109 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5112 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5115 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5118 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5121 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5124 { yyval.expr = yyvsp[0].expr; ;
5127 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5130 { yyval.expr = yyvsp[0].expr; ;
5133 { yyval.expr = exprNode_concat (yyvsp[-2].expr, yyvsp[0].expr); ;
5136 { yyval.expr = yyvsp[0].expr; ;
5139 { yyval.expr = yyvsp[-2].expr; ;
5142 { yyval.expr = yyvsp[0].expr; ;
5145 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5148 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5151 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5154 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5157 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5160 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
5164 exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr);
5165 exprNode_checkIfPred (yyvsp[-1].expr);
5166 yyval.expr = yyvsp[-1].expr;
5171 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
5172 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
5176 { context_enterFalseClause (yyvsp[-2].expr); ;
5180 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5181 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5185 { context_enterSwitch (yyvsp[0].expr); ;
5188 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
5191 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
5194 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
5197 { context_enterIterClause (); ;
5200 { setProcessingIterVars (yyvsp[-3].entry); ;
5204 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry);
5209 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
5212 { nextIterParam (); ;
5215 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
5218 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
5221 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
5224 { uentry ue = coerceIterId (yyvsp[0].cname);
5226 if (uentry_isValid (ue))
5228 yyval.expr = exprNode_iterId (ue);
5232 yyval.expr = exprNode_iterNewId (cstring_copy (cscanner_observeLastIdentifier ()));
5237 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
5240 { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
5243 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5246 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
5249 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
5252 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
5255 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
5258 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
5261 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
5264 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5267 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5270 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5273 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5276 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5279 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5282 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5285 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5288 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5291 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5294 { yyval.expr = yyvsp[0].expr; ;
5297 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
5300 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5303 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5306 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5309 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5312 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5315 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5318 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5321 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5324 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5327 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5330 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5333 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5336 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5339 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5342 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5345 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5348 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5351 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5354 { context_enterTrueClause (yyvsp[-1].expr); ;
5357 { context_enterFalseClause (yyvsp[-4].expr); ;
5360 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5363 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5366 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5369 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5372 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5375 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5378 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5381 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5384 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5387 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5390 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5393 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5396 { yyval.entry = yyvsp[0].entry; ;
5399 { yyval.entry = uentry_undefined; ;
5402 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5405 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5408 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5411 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5414 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5417 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5420 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5423 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5426 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5429 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5432 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5435 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5438 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5441 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5444 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5447 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5450 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5453 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5462 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5465 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5468 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5471 { yyval.cname = yyvsp[0].cname; ;
5474 { yyval.ctyp = ctype_unknown; ;
5477 { yyval.ctyp = exprNode_getType (yyvsp[-1].expr); exprNode_free (yyvsp[-1].expr); ;
5480 { yyval.ctyp = qtype_getType (yyvsp[-1].qtyp); ;
5495 short *yyssp1 = yyss - 1;
5496 YYFPRINTF (stderr, "state stack now");
5497 while (yyssp1 != yyssp)
5498 YYFPRINTF (stderr, " %d", *++yyssp1);
5499 YYFPRINTF (stderr, "\n");
5508 /* Now `shift' the result of the reduction. Determine what state
5509 that goes to, based on the state we popped back to and the rule
5510 number reduced by. */
5514 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5515 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5516 yystate = yytable[yystate];
5518 yystate = yydefgoto[yyn - YYNTBASE];
5523 /*------------------------------------.
5524 | yyerrlab -- here on detecting error |
5525 `------------------------------------*/
5527 /* If not already recovering from an error, report this error. */
5532 #ifdef YYERROR_VERBOSE
5533 yyn = yypact[yystate];
5535 if (yyn > YYFLAG && yyn < YYLAST)
5537 YYSIZE_T yysize = 0;
5542 /* Start YYX at -YYN if negative to avoid negative indexes in
5544 for (yyx = yyn < 0 ? -yyn : 0;
5545 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
5546 if (yycheck[yyx + yyn] == yyx)
5547 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
5548 yysize += yystrlen ("parse error, unexpected ") + 1;
5549 yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
5550 yymsg = (char *) YYSTACK_ALLOC (yysize);
5553 char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
5554 yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
5559 for (yyx = yyn < 0 ? -yyn : 0;
5560 yyx < (int) (sizeof (yytname) / sizeof (char *));
5562 if (yycheck[yyx + yyn] == yyx)
5564 const char *yyq = ! yycount ? ", expecting " : " or ";
5565 yyp = yystpcpy (yyp, yyq);
5566 yyp = yystpcpy (yyp, yytname[yyx]);
5571 YYSTACK_FREE (yymsg);
5574 yyerror ("parse error; also virtual memory exhausted");
5577 #endif /* defined (YYERROR_VERBOSE) */
5578 yyerror ("parse error");
5583 /*--------------------------------------------------.
5584 | yyerrlab1 -- error raised explicitly by an action |
5585 `--------------------------------------------------*/
5587 if (yyerrstatus == 3)
5589 /* If just tried and failed to reuse lookahead token after an
5590 error, discard it. */
5592 /* return failure if at end of input */
5593 if (yychar == YYEOF)
5595 YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
5596 yychar, yytname[yychar1]));
5600 /* Else will try to reuse lookahead token after shifting the error
5603 yyerrstatus = 3; /* Each real token shifted decrements this */
5608 /*-------------------------------------------------------------------.
5609 | yyerrdefault -- current state does not do anything special for the |
5611 `-------------------------------------------------------------------*/
5614 /* This is wrong; only states that explicitly want error tokens
5615 should shift them. */
5617 /* If its default is to accept any token, ok. Otherwise pop it. */
5618 yyn = yydefact[yystate];
5624 /*---------------------------------------------------------------.
5625 | yyerrpop -- pop the current state because it cannot handle the |
5627 `---------------------------------------------------------------*/
5640 short *yyssp1 = yyss - 1;
5641 YYFPRINTF (stderr, "Error: state stack now");
5642 while (yyssp1 != yyssp)
5643 YYFPRINTF (stderr, " %d", *++yyssp1);
5644 YYFPRINTF (stderr, "\n");
5652 yyn = yypact[yystate];
5657 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5674 YYDPRINTF ((stderr, "Shifting error token, "));
5685 /*-------------------------------------.
5686 | yyacceptlab -- YYACCEPT comes here. |
5687 `-------------------------------------*/
5692 /*-----------------------------------.
5693 | yyabortlab -- YYABORT comes here. |
5694 `-----------------------------------*/
5699 /*---------------------------------------------.
5700 | yyoverflowab -- parser overflow comes here. |
5701 `---------------------------------------------*/
5703 yyerror ("parser stack overflow");
5710 YYSTACK_FREE (yyss);
5716 /*@-redecl@*/ /*@-namechecks@*/
5717 extern char *yytext;
5718 /*@=redecl@*/ /*@=namechecks@*/
5720 # include "bison.reset"
5722 void yyerror (/*@unused@*/ char *s)
5724 static bool givehint = FALSE;
5726 if (context_inIterDef ())
5728 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5729 context_inFunctionName ()));
5731 else if (context_inIterEnd ())
5733 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5734 context_inFunctionName ()));
5736 else if (context_inMacro ())
5738 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5739 context_inFunctionName ()));
5741 if (context_inUnknownMacro ())
5745 llhint (cstring_makeLiteral
5746 ("Precede macro definition with /*@notfunction@*/ "
5747 "to suppress checking and force expansion"));
5752 cscanner_swallowMacro ();
5753 context_exitAllClausesQuiet ();
5757 llparseerror (cstring_undefined);
5773 ** Resets all flags in bison.head
5795 /*@=evalorderuncon@*/
5804 /*@=elseifcomplete@*/
5808 /*@=readonlytrans@*/
5811 /*@=systemunrecog@*/
5812 /*@=dependenttrans@*/
5813 /*@=unqualifiedtrans@*/
5817 /*drl added 11/27/2001*/