2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
49 /*drl added 11/27/2001*/
52 /*drl added 12/11/2002*/
55 /* < end of bison.head > */
57 /* A Bison parser, made from cgrammar.y
60 #define YYBISON 1 /* Identify Bison output. */
64 # define CTOK_ELIPSIS 259
88 # define TAMPERSAND 283
102 # define CALIGNOF 297
104 # define ARROW_OP 299
105 # define CTYPEDEF 300
106 # define COFFSETOF 301
110 # define RIGHT_OP 305
117 # define MUL_ASSIGN 312
118 # define DIV_ASSIGN 313
119 # define MOD_ASSIGN 314
120 # define ADD_ASSIGN 315
121 # define SUB_ASSIGN 316
122 # define LEFT_ASSIGN 317
123 # define RIGHT_ASSIGN 318
124 # define AND_ASSIGN 319
125 # define XOR_ASSIGN 320
126 # define OR_ASSIGN 321
133 # define QGLOBALS 328
134 # define QMODIFIES 329
136 # define QCONSTANT 331
137 # define QFUNCTION 332
139 # define QDEFINES 334
141 # define QALLOCATES 336
143 # define QRELEASES 338
144 # define QPRECLAUSE 339
145 # define QPOSTCLAUSE 340
146 # define QINVARIANT 341
150 # define QENDMACRO 345
152 # define LLMACROITER 347
153 # define LLMACROEND 348
154 # define TENDMACRO 349
155 # define QSWITCHBREAK 350
156 # define QLOOPBREAK 351
157 # define QINNERBREAK 352
158 # define QSAFEBREAK 353
159 # define QINNERCONTINUE 354
160 # define QFALLTHROUGH 355
161 # define QLINTNOTREACHED 356
162 # define QLINTFALLTHROUGH 357
163 # define QLINTFALLTHRU 358
164 # define QARGSUSED 359
165 # define QPRINTFLIKE 360
166 # define QLINTPRINTFLIKE 361
167 # define QSCANFLIKE 362
168 # define QMESSAGELIKE 363
169 # define QNOTREACHED 364
171 # define QRESTRICT 366
172 # define QVOLATILE 367
174 # define QEXTENSION 369
178 # define QREGISTER 373
187 # define QCHECKED 382
188 # define QUNCHECKED 383
189 # define QCHECKEDSTRICT 384
190 # define QCHECKMOD 385
193 # define QPARTIAL 388
194 # define QSPECIAL 389
196 # define QDEPENDENT 391
197 # define QRETURNED 392
198 # define QEXPOSED 393
200 # define QOBSERVER 395
203 # define QMAYEXIT 398
204 # define QNEVEREXIT 399
205 # define QTRUEEXIT 400
206 # define QFALSEEXIT 401
209 # define QUNSIGNED 404
213 # define QNOTNULL 408
214 # define QRELNULL 409
215 # define QABSTRACT 410
216 # define QCONCRETE 411
217 # define QMUTABLE 412
218 # define QIMMUTABLE 413
219 # define QTRUENULL 414
220 # define QFALSENULL 415
221 # define QEXTERNAL 416
222 # define QREFCOUNTED 417
225 # define QTEMPREF 420
226 # define QKILLREF 421
234 # define QANYTYPE 429
235 # define QINTEGRALTYPE 430
236 # define QUNSIGNEDINTEGRALTYPE 431
237 # define QSIGNEDINTEGRALTYPE 432
238 # define QNULLTERMINATED 433
239 # define QSETBUFFERSIZE 434
240 # define QSETSTRINGLENGTH 435
242 # define QMAXREAD 437
243 # define QTESTINRANGE 438
245 # define IDENTIFIER 440
246 # define NEW_IDENTIFIER 441
247 # define TYPE_NAME_OR_ID 442
248 # define CANNOTATION 443
249 # define CCONSTANT 444
250 # define ITER_NAME 445
251 # define ITER_ENDNAME 446
252 # define TYPE_NAME 447
253 # define METASTATE_NAME 448
260 ** Yacc/Bison grammar for extended ANSI C used by Splint.
262 ** original grammar by Nate Osgood ---
263 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
265 ** changes for Splint --- handle typedef names correctly
266 ** fix struct/union parsing bug (empty struct is accepted)
267 ** add productions to handle macros --- require
268 ** error correction --- main source of conflicts in grammar.
269 ** need to process initializations sequentially, L->R
271 ** production names are cryptic, so more productions fit on one line
273 ** conflicts: 87 shift/reduce, 18 reduce/reduce
274 ** most of these are due to handling macros
275 ** a few are due to handling type expressions
281 extern void yyerror (char *);
283 # include "splintMacros.nf"
285 # include "cscanner.h"
286 # include "cgrammar.h"
287 # include "exprChecks.h"
292 # define SHOWCSYM FALSE
295 ** This is necessary, or else when the bison-generated code #include's malloc.h,
296 ** there will be a parse error.
298 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
299 ** in bison-generated files under Win32.
309 #ifndef cgrammar_YYSTYPE
317 /*@dependent@*/ sRef sr;
320 /*@only@*/ functionClauseList funcclauselist;
321 /*@only@*/ functionClause funcclause;
322 /*@only@*/ flagSpec flagspec;
323 /*@only@*/ globalsClause globsclause;
324 /*@only@*/ modifiesClause modsclause;
325 /*@only@*/ warnClause warnclause;
326 /*@only@*/ stateClause stateclause;
327 /*@only@*/ pointers pointers;
328 /*@only@*/ functionConstraint fcnconstraint;
330 /*@only@*/ metaStateConstraint msconstraint;
331 /*@only@*/ metaStateSpecifier msspec;
332 /*@only@*/ metaStateExpression msexpr;
333 /*@observer@*/ metaStateInfo msinfo;
335 /*@only@*/ sRefList srlist;
336 /*@only@*/ globSet globset;
337 /*@only@*/ qtype qtyp;
338 /*@only@*/ cstring cname;
339 /*@observer@*/ annotationInfo annotation;
340 /*@only@*/ idDecl ntyp;
341 /*@only@*/ idDeclList ntyplist;
342 /*@only@*/ uentryList flist;
343 /*@owned@*/ uentryList entrylist;
344 /*@observer@*/ /*@dependent@*/ uentry entry;
345 /*@only@*/ uentry oentry;
346 /*@only@*/ exprNode expr;
347 /*@only@*/ enumNameList enumnamelist;
348 /*@only@*/ exprNodeList exprlist;
349 /*@only@*/ sRefSet srset;
350 /*@only@*/ cstringList cstringlist;
360 # define cgrammar_YYSTYPE yystype
361 # define cgrammar_YYSTYPE_IS_TRIVIAL 1
370 #define YYFLAG -32768
373 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
374 #define YYTRANSLATE(x) ((unsigned)(x) <= 448 ? yytranslate[x] : 460)
376 /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
377 static const short yytranslate[] =
379 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
380 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
381 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
382 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
383 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
384 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
385 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
386 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
387 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
388 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
389 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
390 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
391 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
392 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
393 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
394 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
395 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
396 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
397 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
398 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
399 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
400 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
401 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
402 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
403 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
404 2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
405 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
406 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
407 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
408 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
409 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
410 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
411 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
412 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
413 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
414 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
415 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
416 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
417 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
418 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
419 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
420 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
421 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
422 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
423 186, 187, 188, 189, 190, 191, 192, 193, 194
427 static const short yyprhs[] =
429 0, 0, 1, 3, 5, 8, 11, 13, 15, 17,
430 19, 21, 23, 25, 34, 46, 47, 53, 55, 59,
431 61, 64, 66, 73, 77, 84, 85, 92, 93, 101,
432 103, 110, 114, 121, 122, 129, 130, 138, 139, 140,
433 151, 155, 159, 163, 166, 168, 172, 173, 178, 179,
434 184, 186, 190, 192, 194, 196, 200, 202, 206, 208,
435 210, 212, 214, 216, 218, 223, 229, 231, 233, 235,
436 237, 241, 246, 249, 253, 257, 261, 263, 265, 267,
437 268, 271, 272, 275, 277, 279, 281, 283, 285, 287,
438 289, 291, 293, 295, 297, 299, 302, 303, 308, 310,
439 313, 314, 318, 320, 324, 326, 328, 329, 332, 336,
440 339, 341, 345, 348, 349, 352, 354, 356, 358, 360,
441 362, 364, 366, 368, 370, 372, 374, 376, 378, 380,
442 382, 384, 388, 389, 393, 394, 395, 400, 403, 406,
443 408, 410, 412, 414, 418, 423, 426, 430, 434, 438,
444 440, 442, 444, 448, 450, 452, 456, 461, 464, 468,
445 472, 476, 477, 479, 481, 485, 487, 489, 491, 495,
446 497, 499, 500, 505, 507, 512, 516, 521, 528, 534,
447 540, 543, 546, 554, 556, 560, 562, 565, 568, 571,
448 574, 577, 580, 583, 586, 588, 590, 594, 599, 601,
449 611, 612, 616, 621, 624, 629, 632, 634, 639, 641,
450 645, 649, 653, 655, 659, 663, 665, 669, 673, 675,
451 679, 683, 687, 691, 693, 697, 701, 703, 707, 709,
452 713, 715, 719, 721, 722, 727, 729, 730, 735, 737,
453 738, 739, 747, 749, 753, 757, 761, 765, 769, 773,
454 777, 781, 785, 789, 793, 795, 799, 800, 802, 804,
455 806, 808, 810, 814, 815, 825, 826, 838, 841, 842,
456 849, 850, 859, 864, 869, 870, 871, 874, 876, 881,
457 882, 887, 889, 893, 898, 901, 904, 907, 909, 912,
458 916, 919, 921, 925, 927, 929, 931, 933, 935, 938,
459 939, 946, 949, 952, 953, 960, 961, 967, 969, 971,
460 973, 975, 977, 979, 981, 983, 985, 987, 989, 991,
461 993, 995, 997, 999, 1001, 1003, 1005, 1007, 1009, 1011,
462 1013, 1015, 1017, 1019, 1021, 1023, 1025, 1027, 1029, 1031,
463 1033, 1035, 1037, 1039, 1041, 1043, 1045, 1047, 1049, 1051,
464 1053, 1055, 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071,
465 1074, 1077, 1080, 1083, 1086, 1089, 1092, 1095, 1098, 1101,
466 1104, 1107, 1110, 1113, 1116, 1119, 1122, 1125, 1128, 1131,
467 1134, 1137, 1140, 1143, 1146, 1149, 1153, 1155, 1160, 1162,
468 1166, 1169, 1172, 1175, 1176, 1178, 1179, 1180, 1181, 1194,
469 1195, 1196, 1208, 1215, 1222, 1223, 1224, 1235, 1236, 1237,
470 1248, 1254, 1260, 1265, 1270, 1271, 1273, 1275, 1278, 1284,
471 1288, 1291, 1296, 1298, 1302, 1307, 1314, 1315, 1324, 1329,
472 1331, 1335, 1338, 1340, 1345, 1347, 1349, 1352, 1355, 1357,
473 1360, 1362, 1365, 1367, 1369, 1371, 1373, 1376, 1378, 1381,
474 1384, 1388, 1390, 1394, 1396, 1400, 1402, 1404, 1408, 1409,
475 1412, 1413, 1418, 1423, 1425, 1427, 1430, 1432, 1434, 1437,
476 1438, 1440, 1446, 1449, 1453, 1457, 1462, 1466, 1471, 1476,
477 1482, 1484, 1486, 1488, 1490, 1492, 1494, 1496, 1498, 1500,
478 1502, 1504, 1506, 1509, 1512, 1520, 1527, 1530, 1531, 1532,
479 1543, 1544, 1551, 1553, 1555, 1557, 1559, 1562, 1564, 1566,
480 1568, 1570, 1572, 1574, 1576, 1580, 1582, 1583, 1587, 1590,
481 1593, 1595, 1597, 1599, 1601, 1603, 1605, 1607, 1609, 1611,
482 1613, 1617, 1619, 1621, 1624, 1627, 1628, 1631, 1632, 1637,
483 1638, 1645, 1646, 1650, 1651, 1657, 1661, 1664, 1668, 1669,
484 1670, 1671, 1672, 1673, 1675, 1678, 1681, 1685, 1688, 1692,
485 1696, 1701, 1704, 1707, 1711, 1715, 1720, 1722, 1725, 1727,
486 1730, 1732, 1736, 1738, 1743, 1745, 1748, 1750, 1753, 1755,
487 1758, 1760, 1765, 1768, 1769, 1775, 1776, 1783, 1788, 1793,
488 1794, 1795, 1806, 1808, 1809, 1814, 1816, 1818, 1820, 1822,
489 1824, 1827, 1829, 1833, 1835, 1840, 1844, 1849, 1856, 1862,
490 1868, 1871, 1874, 1876, 1879, 1882, 1885, 1888, 1891, 1894,
491 1897, 1900, 1902, 1904, 1909, 1911, 1915, 1919, 1923, 1925,
492 1929, 1933, 1935, 1939, 1943, 1945, 1949, 1953, 1957, 1961,
493 1963, 1967, 1971, 1973, 1977, 1979, 1983, 1985, 1989, 1991,
494 1995, 1997, 2001, 2003, 2004, 2005, 2013, 2015, 2019, 2023,
495 2027, 2031, 2035, 2039, 2043, 2047, 2051, 2055, 2059, 2061,
496 2062, 2064, 2067, 2075, 2078, 2081, 2089, 2096, 2099, 2103,
497 2106, 2110, 2113, 2117, 2121, 2125, 2129, 2132, 2136, 2137,
498 2139, 2140, 2142, 2144, 2146, 2148, 2150, 2152, 2154, 2156,
501 static const short yyrhs[] =
503 -1, 196, 0, 197, 0, 196, 197, 0, 258, 455,
504 0, 198, 0, 199, 0, 209, 0, 212, 0, 296,
505 0, 18, 0, 1, 0, 77, 337, 351, 361, 351,
506 455, 304, 91, 0, 77, 337, 351, 361, 351, 23,
507 304, 309, 308, 455, 91, 0, 0, 78, 200, 201,
508 455, 91, 0, 202, 0, 337, 351, 202, 0, 206,
509 0, 365, 206, 0, 458, 0, 304, 24, 351, 361,
510 304, 25, 0, 203, 26, 27, 0, 203, 26, 304,
511 295, 27, 351, 0, 0, 203, 305, 24, 25, 204,
512 230, 0, 0, 203, 305, 24, 362, 25, 205, 230,
513 0, 458, 0, 304, 24, 351, 202, 304, 25, 0,
514 206, 26, 27, 0, 206, 26, 304, 295, 27, 351,
515 0, 0, 206, 305, 24, 25, 207, 231, 0, 0,
516 206, 305, 24, 362, 25, 208, 231, 0, 0, 0,
517 79, 458, 24, 362, 25, 210, 231, 211, 455, 91,
518 0, 92, 392, 95, 0, 93, 378, 95, 0, 94,
519 379, 95, 0, 92, 95, 0, 253, 0, 215, 23,
520 218, 0, 0, 227, 216, 22, 219, 0, 0, 5,
521 217, 22, 219, 0, 215, 0, 215, 40, 218, 0,
522 194, 0, 185, 0, 56, 0, 222, 220, 221, 0,
523 222, 0, 225, 224, 225, 0, 182, 0, 183, 0,
524 53, 0, 52, 0, 54, 0, 226, 0, 228, 24,
525 225, 25, 0, 24, 225, 229, 225, 25, 0, 227,
526 0, 190, 0, 457, 0, 187, 0, 227, 26, 27,
527 0, 227, 26, 190, 27, 0, 34, 227, 0, 24,
528 227, 25, 0, 227, 28, 458, 0, 227, 45, 458,
529 0, 223, 0, 33, 0, 32, 0, 0, 232, 230,
530 0, 0, 233, 231, 0, 234, 0, 238, 0, 237,
531 0, 315, 0, 318, 0, 244, 0, 235, 0, 239,
532 0, 237, 0, 316, 0, 320, 0, 245, 0, 235,
533 91, 0, 0, 74, 236, 246, 455, 0, 76, 0,
534 239, 91, 0, 0, 75, 240, 259, 0, 242, 0,
535 242, 40, 241, 0, 187, 0, 244, 0, 0, 245,
536 91, 0, 73, 241, 431, 0, 73, 241, 0, 247,
537 0, 246, 21, 247, 0, 248, 249, 0, 0, 250,
538 248, 0, 457, 0, 187, 0, 296, 0, 89, 0,
539 90, 0, 120, 0, 121, 0, 134, 0, 80, 0,
540 81, 0, 82, 0, 83, 0, 84, 0, 85, 0,
541 86, 0, 361, 0, 337, 351, 361, 0, 0, 19,
542 255, 409, 0, 0, 0, 256, 413, 257, 402, 0,
543 213, 254, 0, 262, 455, 0, 455, 0, 457, 0,
544 187, 0, 188, 0, 260, 26, 27, 0, 260, 26,
545 261, 27, 0, 34, 260, 0, 24, 260, 25, 0,
546 260, 28, 458, 0, 260, 45, 458, 0, 260, 0,
547 431, 0, 260, 0, 262, 21, 260, 0, 457, 0,
548 187, 0, 263, 26, 27, 0, 263, 26, 261, 27,
549 0, 34, 263, 0, 24, 263, 25, 0, 263, 28,
550 458, 0, 263, 45, 458, 0, 0, 265, 0, 263,
551 0, 265, 21, 263, 0, 457, 0, 187, 0, 431,
552 0, 24, 293, 25, 0, 188, 0, 115, 0, 0,
553 24, 267, 402, 25, 0, 266, 0, 268, 26, 293,
554 27, 0, 268, 24, 25, 0, 268, 24, 269, 25,
555 0, 71, 24, 292, 21, 373, 25, 0, 268, 351,
556 28, 458, 304, 0, 268, 351, 45, 458, 304, 0,
557 268, 48, 0, 268, 49, 0, 24, 373, 25, 19,
558 414, 456, 20, 0, 292, 0, 269, 21, 292, 0,
559 268, 0, 48, 270, 0, 49, 270, 0, 29, 276,
560 0, 34, 276, 0, 33, 276, 0, 32, 276, 0,
561 31, 276, 0, 30, 276, 0, 273, 0, 272, 0,
562 271, 28, 458, 0, 271, 26, 293, 27, 0, 458,
563 0, 47, 304, 24, 373, 351, 21, 271, 25, 304,
564 0, 0, 304, 274, 275, 0, 42, 24, 373, 25,
565 0, 42, 270, 0, 43, 24, 373, 25, 0, 43,
566 270, 0, 270, 0, 24, 373, 25, 276, 0, 276,
567 0, 277, 34, 276, 0, 277, 35, 276, 0, 277,
568 36, 276, 0, 277, 0, 278, 33, 277, 0, 278,
569 32, 277, 0, 278, 0, 279, 50, 278, 0, 279,
570 51, 278, 0, 279, 0, 280, 37, 279, 0, 280,
571 38, 279, 0, 280, 52, 279, 0, 280, 53, 279,
572 0, 280, 0, 281, 54, 280, 0, 281, 55, 280,
573 0, 281, 0, 282, 29, 281, 0, 282, 0, 283,
574 39, 282, 0, 283, 0, 284, 40, 283, 0, 284,
575 0, 0, 285, 56, 286, 284, 0, 285, 0, 0,
576 287, 57, 288, 285, 0, 287, 0, 0, 0, 287,
577 41, 290, 293, 22, 291, 289, 0, 289, 0, 270,
578 23, 292, 0, 270, 58, 292, 0, 270, 59, 292,
579 0, 270, 60, 292, 0, 270, 61, 292, 0, 270,
580 62, 292, 0, 270, 63, 292, 0, 270, 64, 292,
581 0, 270, 65, 292, 0, 270, 66, 292, 0, 270,
582 67, 292, 0, 292, 0, 293, 21, 292, 0, 0,
583 293, 0, 289, 0, 297, 0, 72, 0, 302, 0,
584 337, 304, 18, 0, 0, 337, 351, 361, 351, 298,
585 304, 308, 18, 304, 0, 0, 337, 351, 361, 351,
586 23, 299, 304, 309, 308, 18, 304, 0, 361, 351,
587 0, 0, 361, 351, 23, 301, 304, 309, 0, 0,
588 46, 337, 303, 351, 306, 304, 243, 18, 0, 46,
589 337, 304, 18, 0, 46, 306, 304, 18, 0, 0,
590 0, 307, 304, 0, 300, 0, 306, 21, 351, 300,
591 0, 0, 308, 21, 351, 300, 0, 292, 0, 19,
592 313, 20, 0, 19, 313, 21, 20, 0, 310, 309,
593 0, 311, 23, 0, 458, 22, 0, 312, 0, 311,
594 312, 0, 26, 295, 27, 0, 28, 458, 0, 309,
595 0, 313, 21, 309, 0, 116, 0, 114, 0, 117,
596 0, 118, 0, 119, 0, 316, 91, 0, 0, 251,
597 351, 317, 265, 455, 304, 0, 320, 91, 0, 252,
598 351, 0, 0, 319, 326, 321, 264, 455, 304, 0,
599 0, 319, 322, 323, 455, 304, 0, 221, 0, 214,
600 0, 143, 0, 144, 0, 146, 0, 147, 0, 145,
601 0, 128, 0, 131, 0, 129, 0, 130, 0, 136,
602 0, 137, 0, 122, 0, 124, 0, 123, 0, 132,
603 0, 133, 0, 125, 0, 127, 0, 140, 0, 142,
604 0, 155, 0, 154, 0, 139, 0, 141, 0, 179,
605 0, 189, 0, 138, 0, 153, 0, 152, 0, 162,
606 0, 160, 0, 161, 0, 156, 0, 157, 0, 158,
607 0, 159, 0, 163, 0, 164, 0, 167, 0, 168,
608 0, 165, 0, 166, 0, 151, 0, 148, 0, 149,
609 0, 150, 0, 120, 0, 121, 0, 134, 0, 135,
610 0, 111, 304, 0, 113, 304, 0, 112, 304, 0,
611 333, 304, 0, 326, 304, 0, 324, 304, 0, 327,
612 304, 0, 325, 304, 0, 329, 304, 0, 328, 304,
613 0, 330, 304, 0, 331, 304, 0, 169, 351, 0,
614 171, 351, 0, 170, 351, 0, 172, 351, 0, 173,
615 351, 0, 174, 351, 0, 175, 351, 0, 176, 351,
616 0, 177, 351, 0, 178, 351, 0, 459, 351, 0,
617 342, 351, 0, 356, 351, 0, 332, 351, 0, 304,
618 337, 304, 0, 339, 0, 339, 88, 338, 91, 0,
619 373, 0, 373, 21, 338, 0, 314, 340, 0, 334,
620 340, 0, 335, 340, 0, 0, 337, 0, 0, 0,
621 0, 351, 68, 458, 304, 19, 343, 406, 352, 407,
622 344, 20, 341, 0, 0, 0, 351, 69, 458, 304,
623 19, 345, 406, 352, 407, 346, 20, 0, 351, 68,
624 458, 304, 19, 20, 0, 351, 69, 458, 304, 19,
625 20, 0, 0, 0, 351, 68, 304, 19, 347, 406,
626 352, 407, 348, 20, 0, 0, 0, 351, 69, 304,
627 19, 349, 406, 352, 407, 350, 20, 0, 351, 68,
628 304, 19, 20, 0, 351, 69, 304, 19, 20, 0,
629 351, 68, 458, 351, 0, 351, 69, 458, 351, 0,
630 0, 353, 0, 212, 0, 352, 353, 0, 337, 351,
631 354, 304, 18, 0, 337, 304, 18, 0, 355, 351,
632 0, 354, 21, 355, 351, 0, 361, 0, 22, 304,
633 295, 0, 361, 22, 304, 295, 0, 351, 70, 19,
634 358, 20, 304, 0, 0, 351, 70, 458, 19, 357,
635 358, 20, 304, 0, 351, 70, 458, 304, 0, 359,
636 0, 358, 21, 359, 0, 358, 21, 0, 458, 0,
637 458, 23, 304, 295, 0, 203, 0, 375, 0, 365,
638 193, 0, 365, 360, 0, 203, 0, 365, 203, 0,
639 368, 0, 351, 366, 0, 111, 0, 112, 0, 113,
640 0, 363, 0, 364, 363, 0, 34, 0, 34, 364,
641 0, 34, 365, 0, 34, 364, 365, 0, 367, 0,
642 367, 21, 5, 0, 458, 0, 367, 21, 458, 0,
643 5, 0, 369, 0, 369, 21, 5, 0, 0, 370,
644 372, 0, 0, 369, 21, 371, 372, 0, 304, 337,
645 360, 304, 0, 458, 0, 336, 0, 336, 374, 0,
646 365, 0, 376, 0, 365, 376, 0, 0, 376, 0,
647 304, 24, 351, 374, 25, 0, 26, 27, 0, 26,
648 295, 27, 0, 376, 26, 27, 0, 376, 26, 295,
649 27, 0, 304, 24, 25, 0, 304, 24, 368, 25,
650 0, 376, 304, 24, 25, 0, 376, 304, 24, 368,
651 25, 0, 394, 0, 396, 0, 399, 0, 402, 0,
652 417, 0, 420, 0, 452, 0, 425, 0, 454, 0,
653 380, 0, 378, 0, 387, 0, 380, 387, 0, 424,
654 380, 0, 451, 393, 11, 24, 293, 25, 18, 0,
655 451, 393, 11, 24, 293, 25, 0, 382, 387, 0,
656 0, 0, 13, 24, 294, 18, 294, 18, 383, 294,
657 384, 25, 0, 0, 191, 404, 24, 386, 428, 25,
658 0, 192, 0, 394, 0, 396, 0, 399, 0, 390,
659 413, 0, 390, 0, 391, 0, 417, 0, 388, 0,
660 381, 0, 385, 0, 454, 0, 24, 387, 25, 0,
661 1, 0, 0, 419, 389, 387, 0, 404, 19, 0,
662 408, 20, 0, 393, 0, 412, 0, 394, 0, 396,
663 0, 399, 0, 403, 0, 418, 0, 420, 0, 425,
664 0, 453, 0, 24, 393, 25, 0, 454, 0, 1,
665 0, 458, 22, 0, 110, 377, 0, 0, 101, 395,
666 0, 0, 6, 295, 397, 22, 0, 0, 101, 395,
667 6, 295, 398, 22, 0, 0, 7, 400, 22, 0,
668 0, 101, 395, 7, 401, 22, 0, 24, 402, 25,
669 0, 404, 410, 0, 404, 411, 405, 0, 0, 0,
670 0, 0, 0, 20, 0, 110, 20, 0, 416, 20,
671 0, 416, 110, 20, 0, 413, 20, 0, 413, 110,
672 20, 0, 413, 416, 20, 0, 413, 416, 110, 20,
673 0, 19, 409, 0, 19, 20, 0, 19, 412, 20,
674 0, 19, 413, 20, 0, 19, 413, 416, 20, 0,
675 393, 0, 412, 393, 0, 296, 0, 413, 296, 0,
676 415, 0, 414, 21, 415, 0, 292, 0, 19, 414,
677 456, 20, 0, 377, 0, 416, 377, 0, 18, 0,
678 293, 18, 0, 18, 0, 293, 18, 0, 293, 0,
679 8, 24, 293, 25, 0, 419, 377, 0, 0, 419,
680 377, 9, 421, 377, 0, 0, 10, 24, 293, 422,
681 25, 377, 0, 11, 24, 293, 25, 0, 11, 24,
682 293, 25, 0, 0, 0, 191, 426, 404, 24, 427,
683 428, 25, 402, 450, 405, 0, 430, 0, 0, 428,
684 429, 21, 430, 0, 449, 0, 457, 0, 188, 0,
685 187, 0, 190, 0, 431, 190, 0, 431, 0, 24,
686 293, 25, 0, 432, 0, 268, 26, 293, 27, 0,
687 268, 24, 25, 0, 268, 24, 269, 25, 0, 71,
688 24, 292, 21, 373, 25, 0, 268, 351, 28, 458,
689 304, 0, 268, 351, 45, 458, 304, 0, 268, 48,
690 0, 268, 49, 0, 433, 0, 48, 270, 0, 49,
691 270, 0, 29, 276, 0, 34, 276, 0, 33, 276,
692 0, 32, 276, 0, 31, 276, 0, 30, 276, 0,
693 273, 0, 434, 0, 24, 373, 25, 276, 0, 435,
694 0, 277, 34, 276, 0, 277, 35, 276, 0, 277,
695 36, 276, 0, 436, 0, 278, 33, 277, 0, 278,
696 32, 277, 0, 437, 0, 279, 50, 278, 0, 279,
697 51, 278, 0, 438, 0, 280, 37, 279, 0, 280,
698 38, 279, 0, 280, 52, 279, 0, 280, 53, 279,
699 0, 439, 0, 281, 54, 280, 0, 281, 55, 280,
700 0, 440, 0, 282, 29, 281, 0, 441, 0, 283,
701 39, 282, 0, 442, 0, 284, 40, 283, 0, 443,
702 0, 285, 56, 284, 0, 444, 0, 287, 57, 285,
703 0, 445, 0, 0, 0, 287, 41, 447, 293, 22,
704 448, 289, 0, 446, 0, 270, 23, 292, 0, 270,
705 58, 292, 0, 270, 59, 292, 0, 270, 60, 292,
706 0, 270, 61, 292, 0, 270, 62, 292, 0, 270,
707 63, 292, 0, 270, 64, 292, 0, 270, 65, 292,
708 0, 270, 66, 292, 0, 270, 67, 292, 0, 192,
709 0, 0, 12, 0, 423, 377, 0, 451, 377, 11,
710 24, 293, 25, 18, 0, 382, 377, 0, 423, 393,
711 0, 451, 393, 11, 24, 293, 25, 18, 0, 451,
712 393, 11, 24, 293, 25, 0, 382, 393, 0, 14,
713 458, 18, 0, 15, 18, 0, 100, 15, 18, 0,
714 16, 18, 0, 96, 16, 18, 0, 97, 16, 18,
715 0, 98, 16, 18, 0, 99, 16, 18, 0, 17,
716 18, 0, 17, 293, 18, 0, 0, 18, 0, 0,
717 21, 0, 186, 0, 187, 0, 191, 0, 192, 0,
718 457, 0, 188, 0, 193, 0, 188, 0, 44, 24,
719 293, 25, 0, 44, 24, 373, 25, 0
725 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
726 static const short yyrline[] =
728 0, 324, 325, 329, 330, 334, 335, 336, 337, 338,
729 339, 340, 341, 345, 347, 352, 352, 361, 367, 372,
730 373, 378, 379, 381, 383, 400, 400, 418, 418, 433,
731 434, 436, 440, 457, 457, 469, 469, 483, 483, 483,
732 492, 493, 494, 495, 499, 503, 508, 508, 513, 513,
733 521, 522, 526, 532, 533, 537, 538, 542, 548, 549,
734 553, 554, 555, 559, 560, 561, 567, 568, 572, 574,
735 576, 578, 587, 589, 591, 593, 610, 614, 615, 622,
736 623, 632, 634, 639, 640, 641, 642, 643, 644, 648,
737 649, 650, 651, 652, 653, 657, 661, 661, 670, 674,
738 678, 678, 693, 695, 700, 704, 705, 709, 713, 719,
739 724, 725, 729, 733, 734, 738, 739, 740, 744, 745,
740 746, 747, 748, 752, 753, 754, 755, 756, 760, 761,
741 765, 772, 777, 777, 783, 783, 783, 794, 805, 806,
742 810, 811, 812, 813, 814, 815, 816, 817, 818, 822,
743 823, 828, 829, 833, 835, 837, 838, 839, 840, 841,
744 843, 848, 849, 853, 857, 870, 871, 872, 873, 874,
745 875, 876, 876, 882, 883, 884, 885, 886, 887, 888,
746 889, 890, 891, 896, 897, 901, 902, 903, 904, 905,
747 906, 907, 908, 909, 910, 911, 915, 916, 918, 922,
748 928, 928, 933, 934, 935, 936, 940, 941, 946, 947,
749 948, 949, 953, 954, 955, 959, 960, 961, 965, 966,
750 967, 968, 969, 973, 974, 975, 979, 980, 984, 985,
751 989, 990, 994, 995, 995, 1007, 1008, 1008, 1021, 1022,
752 1022, 1022, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035,
753 1036, 1037, 1038, 1039, 1043, 1044, 1048, 1049, 1053, 1059,
754 1060, 1061, 1065, 1079, 1079, 1090, 1090, 1099, 1104, 1104,
755 1109, 1109, 1112, 1113, 1117, 1121, 1125, 1129, 1130, 1134,
756 1135, 1139, 1140, 1141, 1142, 1150, 1151, 1156, 1157, 1161,
757 1162, 1166, 1168, 1178, 1179, 1180, 1181, 1182, 1186, 1190,
758 1190, 1206, 1210, 1214, 1214, 1228, 1228, 1260, 1261, 1265,
759 1266, 1267, 1268, 1269, 1273, 1274, 1275, 1276, 1280, 1281,
760 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291,
761 1292, 1293, 1294, 1295, 1296, 1300, 1301, 1305, 1306, 1310,
762 1311, 1315, 1316, 1317, 1318, 1322, 1323, 1324, 1325, 1326,
763 1327, 1331, 1332, 1333, 1334, 1338, 1339, 1340, 1341, 1345,
764 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355,
765 1356, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372,
766 1373, 1374, 1375, 1376, 1377, 1381, 1386, 1387, 1392, 1393,
767 1398, 1399, 1400, 1404, 1405, 1409, 1416, 1416, 1416, 1422,
768 1422, 1422, 1427, 1429, 1431, 1431, 1431, 1436, 1436, 1436,
769 1441, 1443, 1445, 1446, 1450, 1454, 1455, 1456, 1460, 1462,
770 1467, 1469, 1474, 1475, 1476, 1481, 1483, 1483, 1485, 1489,
771 1491, 1493, 1497, 1502, 1510, 1511, 1512, 1518, 1523, 1524,
772 1529, 1530, 1534, 1535, 1536, 1540, 1541, 1545, 1546, 1547,
773 1548, 1552, 1553, 1557, 1558, 1562, 1563, 1564, 1568, 1568,
774 1569, 1569, 1574, 1586, 1603, 1604, 1608, 1609, 1610, 1614,
775 1615, 1619, 1621, 1622, 1624, 1625, 1627, 1629, 1631, 1633,
776 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1653,
777 1657, 1661, 1662, 1667, 1669, 1671, 1673, 1678, 1678, 1678,
778 1686, 1686, 1690, 1694, 1695, 1696, 1697, 1698, 1699, 1700,
779 1701, 1702, 1703, 1704, 1705, 1706, 1710, 1710, 1717, 1721,
780 1725, 1726, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737,
781 1738, 1739, 1740, 1744, 1745, 1753, 1754, 1761, 1761, 1763,
782 1763, 1768, 1768, 1770, 1770, 1775, 1776, 1781, 1785, 1789,
783 1793, 1797, 1801, 1805, 1806, 1807, 1808, 1810, 1811, 1813,
784 1815, 1822, 1827, 1829, 1831, 1833, 1838, 1839, 1843, 1844,
785 1848, 1849, 1853, 1854, 1858, 1859, 1863, 1864, 1868, 1869,
786 1870, 1874, 1888, 1893, 1893, 1898, 1898, 1903, 1909, 1913,
787 1913, 1913, 1924, 1925, 1925, 1930, 1931, 1932, 1943, 1951,
788 1952, 1956, 1957, 1961, 1962, 1963, 1964, 1965, 1967, 1968,
789 1969, 1970, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981,
790 1982, 1983, 1987, 1988, 1992, 1993, 1994, 1995, 1999, 2000,
791 2001, 2005, 2006, 2007, 2011, 2012, 2013, 2014, 2015, 2019,
792 2020, 2021, 2025, 2026, 2030, 2031, 2035, 2036, 2040, 2041,
793 2045, 2046, 2050, 2051, 2051, 2051, 2057, 2058, 2059, 2060,
794 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2072, 2073,
795 2077, 2081, 2083, 2085, 2090, 2091, 2093, 2095, 2099, 2100,
796 2101, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2113, 2114,
797 2118, 2119, 2123, 2127, 2128, 2129, 2130, 2131, 2135, 2136,
803 #if (YYDEBUG) || defined YYERROR_VERBOSE
805 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
806 static const char *const yytname[] =
808 "$", "error", "$undefined.", "BADTOK", "SKIPTOK", "CTOK_ELIPSIS", "CASE",
809 "DEFAULT", "CIF", "CELSE", "SWITCH", "WHILE", "DO", "CFOR", "GOTO",
810 "CONTINUE", "BREAK", "RETURN", "TSEMI", "TLBRACE", "TRBRACE", "TCOMMA",
811 "TCOLON", "TASSIGN", "TLPAREN", "TRPAREN", "TLSQBR", "TRSQBR", "TDOT",
812 "TAMPERSAND", "TEXCL", "TTILDE", "TMINUS", "TPLUS", "TMULT", "TDIV",
813 "TPERCENT", "TLT", "TGT", "TCIRC", "TBAR", "TQUEST", "CSIZEOF",
814 "CALIGNOF", "CTYPEOF", "ARROW_OP", "CTYPEDEF", "COFFSETOF", "INC_OP",
815 "DEC_OP", "LEFT_OP", "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP",
816 "AND_OP", "OR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN",
817 "ADD_ASSIGN", "SUB_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN",
818 "XOR_ASSIGN", "OR_ASSIGN", "CSTRUCT", "CUNION", "CENUM", "VA_ARG",
819 "VA_DCL", "QWARN", "QGLOBALS", "QMODIFIES", "QNOMODS", "QCONSTANT",
820 "QFUNCTION", "QITER", "QDEFINES", "QUSES", "QALLOCATES", "QSETS",
821 "QRELEASES", "QPRECLAUSE", "QPOSTCLAUSE", "QINVARIANT", "QALT",
822 "QUNDEF", "QKILLED", "QENDMACRO", "LLMACRO", "LLMACROITER",
823 "LLMACROEND", "TENDMACRO", "QSWITCHBREAK", "QLOOPBREAK", "QINNERBREAK",
824 "QSAFEBREAK", "QINNERCONTINUE", "QFALLTHROUGH", "QLINTNOTREACHED",
825 "QLINTFALLTHROUGH", "QLINTFALLTHRU", "QARGSUSED", "QPRINTFLIKE",
826 "QLINTPRINTFLIKE", "QSCANFLIKE", "QMESSAGELIKE", "QNOTREACHED",
827 "QCONST", "QRESTRICT", "QVOLATILE", "QINLINE", "QEXTENSION", "QEXTERN",
828 "QSTATIC", "QAUTO", "QREGISTER", "QOUT", "QIN", "QYIELD", "QONLY",
829 "QTEMP", "QSHARED", "QREF", "QUNIQUE", "QCHECKED", "QUNCHECKED",
830 "QCHECKEDSTRICT", "QCHECKMOD", "QKEEP", "QKEPT", "QPARTIAL", "QSPECIAL",
831 "QOWNED", "QDEPENDENT", "QRETURNED", "QEXPOSED", "QNULL", "QOBSERVER",
832 "QISNULL", "QEXITS", "QMAYEXIT", "QNEVEREXIT", "QTRUEEXIT",
833 "QFALSEEXIT", "QLONG", "QSIGNED", "QUNSIGNED", "QSHORT", "QUNUSED",
834 "QSEF", "QNOTNULL", "QRELNULL", "QABSTRACT", "QCONCRETE", "QMUTABLE",
835 "QIMMUTABLE", "QTRUENULL", "QFALSENULL", "QEXTERNAL", "QREFCOUNTED",
836 "QREFS", "QNEWREF", "QTEMPREF", "QKILLREF", "QRELDEF", "CGCHAR",
837 "CBOOL", "CINT", "CGFLOAT", "CDOUBLE", "CVOID", "QANYTYPE",
838 "QINTEGRALTYPE", "QUNSIGNEDINTEGRALTYPE", "QSIGNEDINTEGRALTYPE",
839 "QNULLTERMINATED", "QSETBUFFERSIZE", "QSETSTRINGLENGTH", "QMAXSET",
840 "QMAXREAD", "QTESTINRANGE", "TCAND", "IDENTIFIER", "NEW_IDENTIFIER",
841 "TYPE_NAME_OR_ID", "CANNOTATION", "CCONSTANT", "ITER_NAME",
842 "ITER_ENDNAME", "TYPE_NAME", "METASTATE_NAME", "file", "externalDefs",
843 "externalDef", "constantDecl", "fcnDecl", "@1", "plainFcn",
844 "plainNamedDecl", "namedDeclBase", "@2", "@3", "plainNamedDeclBase",
845 "@4", "@5", "iterDecl", "@6", "@7", "macroDef", "fcnDefHdr",
846 "metaStateConstraint", "metaStateSpecifier", "@8", "@9",
847 "metaStateExpression", "metaStateName", "constraintSeperator",
848 "BufConstraintList", "BufConstraint", "bufferModifier", "relationalOp",
849 "BufConstraintExpr", "BufConstraintTerm", "BufConstraintSrefExpr",
850 "BufUnaryOp", "BufBinaryOp", "functionClauses", "functionClausesPlain",
851 "functionClause", "functionClausePlain", "globalsClause",
852 "globalsClausePlain", "@10", "nomodsClause", "modifiesClause",
853 "modifiesClausePlain", "@11", "flagSpec", "flagId", "optWarnClause",
854 "warnClause", "warnClausePlain", "globIdList", "globIdListExpr",
855 "optGlobQuals", "globId", "globQual", "stateTag", "conditionTag",
856 "fcnDefHdrAux", "fcnBody", "@12", "@13", "@14", "fcnDef", "locModifies",
857 "modListExpr", "mExpr", "modList", "specClauseListExpr",
858 "optSpecClauseList", "specClauseList", "primaryExpr", "@15",
859 "postfixExpr", "argumentExprList", "unaryExpr", "fieldDesignator",
860 "offsetofExpr", "sizeofExpr", "@16", "sizeofExprAux", "castExpr",
861 "timesExpr", "plusExpr", "shiftExpr", "relationalExpr", "equalityExpr",
862 "bitandExpr", "xorExpr", "bitorExpr", "andExpr", "@17", "orExpr", "@18",
863 "conditionalExpr", "@19", "@20", "assignExpr", "expr", "optExpr",
864 "constantExpr", "initializer", "instanceDecl", "@21", "@22",
865 "namedInitializer", "@23", "typeDecl", "@24", "IsType", "PushType",
866 "namedInitializerList", "namedInitializerListAux", "optDeclarators",
867 "init", "designation", "designatorList", "designator", "initList",
868 "storageSpecifier", "stateClause", "stateClausePlain", "@25",
869 "conditionClause", "startConditionClause", "conditionClausePlain",
870 "@26", "@27", "functionConstraint", "exitsQualifier", "checkQualifier",
871 "stateQualifier", "paramQualifier", "visibilityQualifier",
872 "returnQualifier", "typedefQualifier", "refcountQualifier",
873 "typeModifier", "definedQualifier", "typeQualifier", "typeSpecifier",
874 "completeType", "completeTypeSpecifier", "altType",
875 "completeTypeSpecifierAux", "optCompleteType", "optStructInvariant",
876 "suSpc", "@28", "@29", "@30", "@31", "@32", "@33", "@34", "@35",
877 "NotType", "structDeclList", "structDecl", "structNamedDeclList",
878 "structNamedDecl", "enumSpc", "@36", "enumeratorList", "enumerator",
879 "optNamedDecl", "namedDecl", "genericParamList", "innerMods",
880 "innerModsList", "pointers", "paramIdList", "idList", "paramTypeList",
881 "paramList", "@37", "@38", "paramDecl", "typeExpression",
882 "abstractDecl", "optAbstractDeclBase", "abstractDeclBase", "stmt",
883 "iterBody", "endBody", "iterDefStmtList", "iterDefIterationStmt",
884 "forPred", "@39", "@40", "partialIterStmt", "@41", "iterDefStmt",
885 "iterSelectionStmt", "@42", "openScope", "closeScope", "macroBody",
886 "stmtErr", "labeledStmt", "optExtraFallThroughs", "caseStmt", "@43",
887 "@44", "defaultStmt", "@45", "@46", "compoundStmt", "compoundStmtErr",
888 "CreateInnerScope", "DeleteInnerScope", "CreateStructInnerScope",
889 "DeleteStructInnerScope", "DeleteInnerScopeSafe", "compoundStmtRest",
890 "compoundStmtAux", "compoundStmtAuxErr", "stmtListErr",
891 "initializerList", "typeInitializerList", "typeInitializer", "stmtList",
892 "expressionStmt", "expressionStmtErr", "ifPred", "selectionStmt", "@47",
893 "@48", "whilePred", "iterWhilePred", "iterStmt", "@49", "@50",
894 "iterArgList", "@51", "iterArgExpr", "cconstantExpr", "primaryIterExpr",
895 "postfixIterExpr", "unaryIterExpr", "castIterExpr", "timesIterExpr",
896 "plusIterExpr", "shiftIterExpr", "relationalIterExpr",
897 "equalityIterExpr", "bitandIterExpr", "xorIterExpr", "bitorIterExpr",
898 "andIterExpr", "orIterExpr", "conditionalIterExpr", "@52", "@53",
899 "assignIterExpr", "endIter", "doHeader", "iterationStmt",
900 "iterationStmtErr", "jumpStmt", "optSemi", "optComma", "id", "newId",
905 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
906 static const short yyr1[] =
908 0, 195, 195, 196, 196, 197, 197, 197, 197, 197,
909 197, 197, 197, 198, 198, 200, 199, 201, 201, 202,
910 202, 203, 203, 203, 203, 204, 203, 205, 203, 206,
911 206, 206, 206, 207, 206, 208, 206, 210, 211, 209,
912 212, 212, 212, 212, 213, 214, 216, 215, 217, 215,
913 218, 218, 219, 220, 220, 221, 221, 222, 223, 223,
914 224, 224, 224, 225, 225, 225, 226, 226, 227, 227,
915 227, 227, 227, 227, 227, 227, 228, 229, 229, 230,
916 230, 231, 231, 232, 232, 232, 232, 232, 232, 233,
917 233, 233, 233, 233, 233, 234, 236, 235, 237, 238,
918 240, 239, 241, 241, 242, 243, 243, 244, 245, 245,
919 246, 246, 247, 248, 248, 249, 249, 249, 250, 250,
920 250, 250, 250, 251, 251, 251, 251, 251, 252, 252,
921 253, 253, 255, 254, 256, 257, 254, 258, 259, 259,
922 260, 260, 260, 260, 260, 260, 260, 260, 260, 261,
923 261, 262, 262, 263, 263, 263, 263, 263, 263, 263,
924 263, 264, 264, 265, 265, 266, 266, 266, 266, 266,
925 266, 267, 266, 268, 268, 268, 268, 268, 268, 268,
926 268, 268, 268, 269, 269, 270, 270, 270, 270, 270,
927 270, 270, 270, 270, 270, 270, 271, 271, 271, 272,
928 274, 273, 275, 275, 275, 275, 276, 276, 277, 277,
929 277, 277, 278, 278, 278, 279, 279, 279, 280, 280,
930 280, 280, 280, 281, 281, 281, 282, 282, 283, 283,
931 284, 284, 285, 286, 285, 287, 288, 287, 289, 290,
932 291, 289, 292, 292, 292, 292, 292, 292, 292, 292,
933 292, 292, 292, 292, 293, 293, 294, 294, 295, 296,
934 296, 296, 297, 298, 297, 299, 297, 300, 301, 300,
935 303, 302, 302, 302, 304, 305, 306, 307, 307, 308,
936 308, 309, 309, 309, 309, 310, 310, 311, 311, 312,
937 312, 313, 313, 314, 314, 314, 314, 314, 315, 317,
938 316, 318, 319, 321, 320, 322, 320, 323, 323, 324,
939 324, 324, 324, 324, 325, 325, 325, 325, 326, 326,
940 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
941 326, 326, 326, 326, 326, 327, 327, 328, 328, 329,
942 329, 330, 330, 330, 330, 331, 331, 331, 331, 331,
943 331, 332, 332, 332, 332, 333, 333, 333, 333, 334,
944 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
945 334, 335, 335, 335, 335, 335, 335, 335, 335, 335,
946 335, 335, 335, 335, 335, 336, 337, 337, 338, 338,
947 339, 339, 339, 340, 340, 341, 343, 344, 342, 345,
948 346, 342, 342, 342, 347, 348, 342, 349, 350, 342,
949 342, 342, 342, 342, 351, 352, 352, 352, 353, 353,
950 354, 354, 355, 355, 355, 356, 357, 356, 356, 358,
951 358, 358, 359, 359, 360, 360, 360, 360, 361, 361,
952 362, 362, 363, 363, 363, 364, 364, 365, 365, 365,
953 365, 366, 366, 367, 367, 368, 368, 368, 370, 369,
954 371, 369, 372, 372, 373, 373, 374, 374, 374, 375,
955 375, 376, 376, 376, 376, 376, 376, 376, 376, 376,
956 377, 377, 377, 377, 377, 377, 377, 377, 377, 378,
957 379, 380, 380, 381, 381, 381, 381, 383, 384, 382,
958 386, 385, 385, 387, 387, 387, 387, 387, 387, 387,
959 387, 387, 387, 387, 387, 387, 389, 388, 390, 391,
960 392, 392, 393, 393, 393, 393, 393, 393, 393, 393,
961 393, 393, 393, 394, 394, 395, 395, 397, 396, 398,
962 396, 400, 399, 401, 399, 402, 402, 403, 404, 405,
963 406, 407, 408, 409, 409, 409, 409, 409, 409, 409,
964 409, 410, 411, 411, 411, 411, 412, 412, 413, 413,
965 414, 414, 415, 415, 416, 416, 417, 417, 418, 418,
966 418, 419, 420, 421, 420, 422, 420, 423, 424, 426,
967 427, 425, 428, 429, 428, 430, 430, 430, 430, 431,
968 431, 432, 432, 433, 433, 433, 433, 433, 433, 433,
969 433, 433, 434, 434, 434, 434, 434, 434, 434, 434,
970 434, 434, 435, 435, 436, 436, 436, 436, 437, 437,
971 437, 438, 438, 438, 439, 439, 439, 439, 439, 440,
972 440, 440, 441, 441, 442, 442, 443, 443, 444, 444,
973 445, 445, 446, 447, 448, 446, 449, 449, 449, 449,
974 449, 449, 449, 449, 449, 449, 449, 449, 450, 450,
975 451, 452, 452, 452, 453, 453, 453, 453, 454, 454,
976 454, 454, 454, 454, 454, 454, 454, 454, 455, 455,
977 456, 456, 457, 458, 458, 458, 458, 458, 459, 459,
981 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
982 static const short yyr2[] =
984 0, 0, 1, 1, 2, 2, 1, 1, 1, 1,
985 1, 1, 1, 8, 11, 0, 5, 1, 3, 1,
986 2, 1, 6, 3, 6, 0, 6, 0, 7, 1,
987 6, 3, 6, 0, 6, 0, 7, 0, 0, 10,
988 3, 3, 3, 2, 1, 3, 0, 4, 0, 4,
989 1, 3, 1, 1, 1, 3, 1, 3, 1, 1,
990 1, 1, 1, 1, 4, 5, 1, 1, 1, 1,
991 3, 4, 2, 3, 3, 3, 1, 1, 1, 0,
992 2, 0, 2, 1, 1, 1, 1, 1, 1, 1,
993 1, 1, 1, 1, 1, 2, 0, 4, 1, 2,
994 0, 3, 1, 3, 1, 1, 0, 2, 3, 2,
995 1, 3, 2, 0, 2, 1, 1, 1, 1, 1,
996 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
997 1, 3, 0, 3, 0, 0, 4, 2, 2, 1,
998 1, 1, 1, 3, 4, 2, 3, 3, 3, 1,
999 1, 1, 3, 1, 1, 3, 4, 2, 3, 3,
1000 3, 0, 1, 1, 3, 1, 1, 1, 3, 1,
1001 1, 0, 4, 1, 4, 3, 4, 6, 5, 5,
1002 2, 2, 7, 1, 3, 1, 2, 2, 2, 2,
1003 2, 2, 2, 2, 1, 1, 3, 4, 1, 9,
1004 0, 3, 4, 2, 4, 2, 1, 4, 1, 3,
1005 3, 3, 1, 3, 3, 1, 3, 3, 1, 3,
1006 3, 3, 3, 1, 3, 3, 1, 3, 1, 3,
1007 1, 3, 1, 0, 4, 1, 0, 4, 1, 0,
1008 0, 7, 1, 3, 3, 3, 3, 3, 3, 3,
1009 3, 3, 3, 3, 1, 3, 0, 1, 1, 1,
1010 1, 1, 3, 0, 9, 0, 11, 2, 0, 6,
1011 0, 8, 4, 4, 0, 0, 2, 1, 4, 0,
1012 4, 1, 3, 4, 2, 2, 2, 1, 2, 3,
1013 2, 1, 3, 1, 1, 1, 1, 1, 2, 0,
1014 6, 2, 2, 0, 6, 0, 5, 1, 1, 1,
1015 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1016 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1017 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1018 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1019 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1020 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1021 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1022 2, 2, 2, 2, 2, 3, 1, 4, 1, 3,
1023 2, 2, 2, 0, 1, 0, 0, 0, 12, 0,
1024 0, 11, 6, 6, 0, 0, 10, 0, 0, 10,
1025 5, 5, 4, 4, 0, 1, 1, 2, 5, 3,
1026 2, 4, 1, 3, 4, 6, 0, 8, 4, 1,
1027 3, 2, 1, 4, 1, 1, 2, 2, 1, 2,
1028 1, 2, 1, 1, 1, 1, 2, 1, 2, 2,
1029 3, 1, 3, 1, 3, 1, 1, 3, 0, 2,
1030 0, 4, 4, 1, 1, 2, 1, 1, 2, 0,
1031 1, 5, 2, 3, 3, 4, 3, 4, 4, 5,
1032 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1033 1, 1, 2, 2, 7, 6, 2, 0, 0, 10,
1034 0, 6, 1, 1, 1, 1, 2, 1, 1, 1,
1035 1, 1, 1, 1, 3, 1, 0, 3, 2, 2,
1036 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1037 3, 1, 1, 2, 2, 0, 2, 0, 4, 0,
1038 6, 0, 3, 0, 5, 3, 2, 3, 0, 0,
1039 0, 0, 0, 1, 2, 2, 3, 2, 3, 3,
1040 4, 2, 2, 3, 3, 4, 1, 2, 1, 2,
1041 1, 3, 1, 4, 1, 2, 1, 2, 1, 2,
1042 1, 4, 2, 0, 5, 0, 6, 4, 4, 0,
1043 0, 10, 1, 0, 4, 1, 1, 1, 1, 1,
1044 2, 1, 3, 1, 4, 3, 4, 6, 5, 5,
1045 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
1046 2, 1, 1, 4, 1, 3, 3, 3, 1, 3,
1047 3, 1, 3, 3, 1, 3, 3, 3, 3, 1,
1048 3, 3, 1, 3, 1, 3, 1, 3, 1, 3,
1049 1, 3, 1, 0, 0, 7, 1, 3, 3, 3,
1050 3, 3, 3, 3, 3, 3, 3, 3, 1, 0,
1051 1, 2, 7, 2, 2, 7, 6, 2, 3, 2,
1052 3, 2, 3, 3, 3, 3, 2, 3, 0, 1,
1053 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1057 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
1058 doesn't specify something else to do. Zero means the default is an
1060 static const short yydefact[] =
1062 0, 12, 11, 447, 0, 414, 260, 414, 15, 0,
1063 0, 0, 0, 274, 274, 274, 294, 293, 295, 296,
1064 297, 355, 356, 320, 322, 321, 325, 326, 314, 316,
1065 317, 315, 323, 324, 357, 358, 318, 319, 335, 331,
1066 327, 332, 328, 309, 310, 313, 311, 312, 352, 353,
1067 354, 351, 337, 336, 330, 329, 341, 342, 343, 344,
1068 339, 340, 338, 345, 346, 349, 350, 347, 348, 414,
1069 414, 414, 414, 414, 414, 414, 414, 414, 414, 333,
1070 692, 693, 697, 334, 694, 695, 698, 0, 3, 6,
1071 7, 438, 8, 9, 134, 44, 688, 10, 259, 261,
1072 0, 393, 274, 274, 274, 274, 274, 274, 274, 274,
1073 414, 274, 393, 393, 414, 386, 414, 0, 414, 130,
1074 274, 696, 21, 414, 442, 443, 444, 445, 448, 449,
1075 274, 277, 274, 274, 270, 414, 699, 414, 414, 697,
1076 0, 532, 274, 541, 0, 0, 0, 670, 0, 0,
1077 0, 0, 274, 578, 0, 274, 274, 274, 274, 274,
1078 274, 274, 274, 274, 0, 43, 0, 0, 0, 0,
1079 0, 535, 274, 170, 166, 169, 599, 589, 173, 185,
1080 206, 195, 194, 208, 212, 215, 218, 223, 226, 228,
1081 230, 232, 235, 238, 242, 254, 580, 200, 0, 0,
1082 566, 522, 523, 524, 525, 0, 0, 526, 274, 527,
1083 0, 528, 167, 0, 529, 531, 165, 0, 515, 0,
1084 576, 0, 548, 502, 0, 0, 0, 511, 0, 512,
1085 491, 510, 507, 508, 503, 504, 505, 0, 0, 509,
1086 516, 0, 0, 513, 490, 0, 359, 361, 360, 371,
1087 373, 372, 374, 375, 376, 377, 378, 379, 380, 4,
1088 274, 0, 132, 137, 414, 689, 5, 414, 394, 390,
1089 364, 366, 363, 365, 368, 367, 369, 370, 384, 362,
1090 391, 392, 0, 274, 274, 382, 274, 274, 0, 383,
1091 439, 381, 446, 450, 274, 166, 169, 0, 414, 464,
1092 0, 165, 414, 0, 276, 414, 0, 267, 274, 688,
1093 17, 19, 0, 414, 274, 29, 458, 206, 258, 537,
1094 0, 274, 274, 274, 274, 0, 679, 681, 686, 0,
1095 548, 0, 0, 0, 188, 193, 192, 191, 190, 189,
1096 0, 274, 186, 187, 274, 0, 0, 0, 0, 0,
1097 535, 0, 274, 534, 274, 480, 481, 482, 483, 0,
1098 484, 485, 274, 487, 274, 486, 488, 548, 274, 274,
1099 180, 181, 0, 274, 274, 274, 274, 274, 274, 274,
1100 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
1101 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
1102 233, 239, 236, 579, 274, 0, 677, 40, 0, 549,
1103 567, 582, 674, 600, 0, 533, 274, 0, 0, 0,
1104 577, 41, 492, 496, 568, 414, 506, 518, 519, 0,
1105 0, 0, 42, 23, 274, 458, 414, 414, 274, 262,
1106 131, 414, 0, 388, 0, 414, 0, 414, 0, 274,
1107 0, 700, 274, 274, 0, 466, 465, 467, 701, 274,
1108 273, 274, 272, 268, 414, 0, 274, 0, 414, 274,
1109 20, 455, 0, 0, 440, 456, 274, 0, 542, 0,
1110 585, 0, 257, 0, 678, 687, 548, 0, 168, 274,
1111 530, 274, 0, 0, 682, 683, 684, 685, 680, 536,
1112 274, 543, 0, 673, 414, 546, 671, 0, 0, 175,
1113 0, 183, 0, 0, 0, 243, 244, 245, 246, 247,
1114 248, 249, 250, 251, 252, 253, 209, 210, 211, 214,
1115 213, 216, 217, 219, 220, 221, 222, 224, 225, 227,
1116 229, 231, 274, 274, 274, 255, 274, 274, 201, 562,
1117 699, 566, 0, 414, 547, 583, 0, 0, 514, 500,
1118 274, 569, 517, 0, 0, 25, 0, 553, 274, 574,
1119 133, 414, 274, 548, 274, 263, 387, 274, 404, 0,
1120 412, 407, 0, 413, 0, 429, 432, 426, 428, 385,
1121 472, 0, 458, 468, 274, 0, 278, 274, 274, 688,
1122 16, 31, 274, 458, 274, 18, 441, 451, 453, 37,
1123 460, 414, 459, 463, 538, 581, 0, 587, 274, 172,
1124 274, 207, 414, 0, 274, 539, 0, 545, 561, 0,
1125 590, 274, 176, 174, 274, 274, 234, 0, 237, 274,
1126 203, 274, 205, 563, 564, 274, 274, 274, 588, 274,
1127 414, 274, 414, 79, 27, 554, 557, 274, 274, 555,
1128 274, 575, 136, 0, 265, 274, 389, 410, 550, 396,
1129 411, 550, 399, 274, 431, 274, 0, 473, 476, 274,
1130 0, 474, 0, 458, 106, 274, 274, 274, 0, 33,
1131 0, 274, 0, 81, 457, 274, 469, 274, 0, 274,
1132 572, 690, 570, 0, 0, 0, 544, 274, 274, 184,
1133 178, 179, 240, 0, 0, 565, 584, 0, 274, 274,
1134 274, 274, 274, 274, 274, 274, 274, 0, 166, 169,
1135 185, 206, 194, 212, 215, 218, 223, 226, 228, 230,
1136 232, 235, 0, 593, 592, 167, 603, 612, 622, 624,
1137 628, 631, 634, 639, 642, 644, 646, 648, 650, 652,
1138 656, 595, 165, 0, 24, 0, 96, 100, 98, 123,
1139 124, 125, 126, 127, 128, 129, 26, 79, 83, 0,
1140 85, 84, 0, 88, 0, 414, 414, 86, 0, 87,
1141 305, 0, 79, 558, 559, 274, 556, 22, 274, 279,
1142 414, 402, 550, 414, 403, 550, 425, 430, 274, 0,
1143 0, 477, 475, 478, 0, 0, 105, 274, 274, 0,
1144 281, 269, 274, 0, 287, 0, 274, 0, 414, 81,
1145 35, 0, 452, 454, 38, 81, 89, 91, 90, 94,
1146 92, 93, 461, 434, 0, 274, 469, 435, 470, 586,
1147 497, 690, 274, 0, 0, 177, 540, 0, 593, 274,
1148 202, 204, 676, 0, 0, 188, 193, 192, 191, 190,
1149 189, 186, 187, 274, 274, 274, 180, 181, 0, 274,
1150 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
1151 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
1152 274, 274, 274, 274, 274, 274, 233, 653, 236, 501,
1153 0, 495, 104, 109, 102, 113, 688, 80, 95, 99,
1154 107, 299, 302, 298, 0, 303, 301, 28, 560, 274,
1155 0, 416, 414, 414, 415, 414, 414, 414, 433, 274,
1156 471, 479, 271, 291, 0, 0, 290, 284, 285, 288,
1157 286, 279, 13, 32, 34, 81, 30, 688, 82, 458,
1158 462, 436, 437, 274, 0, 571, 182, 0, 198, 0,
1159 548, 241, 675, 168, 274, 0, 175, 0, 0, 0,
1160 0, 657, 658, 659, 660, 661, 662, 663, 664, 665,
1161 666, 667, 209, 210, 211, 214, 213, 216, 217, 219,
1162 220, 221, 222, 224, 225, 227, 229, 231, 649, 274,
1163 651, 274, 494, 108, 0, 118, 119, 120, 121, 122,
1164 688, 110, 414, 113, 0, 0, 141, 142, 101, 151,
1165 688, 139, 140, 0, 48, 0, 0, 58, 59, 69,
1166 67, 308, 0, 307, 56, 76, 0, 63, 66, 0,
1167 688, 68, 161, 279, 274, 414, 0, 274, 417, 405,
1168 414, 408, 414, 427, 282, 274, 289, 688, 36, 0,
1169 274, 498, 573, 274, 274, 0, 672, 669, 207, 274,
1170 176, 174, 274, 274, 0, 594, 103, 113, 97, 116,
1171 112, 117, 115, 114, 0, 145, 0, 0, 0, 0,
1172 138, 0, 0, 154, 163, 688, 153, 0, 0, 66,
1173 0, 72, 0, 54, 53, 0, 61, 60, 62, 0,
1174 0, 0, 0, 0, 0, 274, 688, 162, 0, 264,
1175 274, 419, 274, 274, 414, 422, 0, 397, 0, 400,
1176 283, 292, 0, 39, 274, 0, 199, 0, 196, 668,
1177 549, 0, 178, 179, 654, 111, 146, 143, 149, 0,
1178 150, 147, 148, 152, 0, 157, 0, 0, 0, 0,
1179 274, 0, 78, 77, 0, 73, 0, 50, 45, 46,
1180 55, 66, 57, 70, 0, 74, 75, 0, 0, 306,
1181 274, 274, 280, 274, 274, 0, 420, 274, 406, 0,
1182 409, 0, 14, 499, 197, 591, 177, 274, 144, 158,
1183 155, 0, 159, 160, 164, 300, 52, 49, 0, 0,
1184 71, 47, 64, 304, 266, 423, 414, 418, 274, 395,
1185 401, 655, 156, 65, 51, 421, 424, 398, 0, 0,
1189 static const short yydefgoto[] =
1191 1238, 87, 88, 89, 90, 138, 309, 310, 91, 653,
1192 792, 311, 829, 955, 92, 693, 957, 931, 94, 1041,
1193 1177, 1123, 1107, 1178, 1217, 1115, 1043, 1044, 1045, 1119,
1194 1046, 1047, 1181, 1049, 1174, 776, 834, 777, 835, 778,
1195 836, 915, 837, 781, 838, 916, 913, 914, 815, 783,
1196 784, 1020, 1021, 1022, 1090, 1023, 785, 786, 95, 263,
1197 436, 264, 573, 96, 1028, 1158, 1159, 1030, 1104, 1126,
1198 1105, 178, 330, 179, 510, 180, 967, 181, 182, 405,
1199 548, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1200 192, 542, 193, 544, 194, 543, 859, 195, 224, 483,
1201 319, 424, 98, 665, 798, 131, 598, 99, 305, 197,
1202 261, 132, 133, 930, 821, 822, 823, 824, 944, 101,
1203 787, 840, 1033, 789, 790, 841, 1052, 924, 1050, 102,
1204 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1205 113, 299, 425, 442, 115, 269, 1237, 116, 802, 1199,
1206 805, 1201, 668, 1136, 671, 1138, 117, 933, 934, 1133,
1207 1134, 118, 676, 584, 585, 845, 135, 473, 127, 128,
1208 120, 606, 607, 474, 475, 476, 695, 612, 332, 810,
1209 847, 457, 353, 225, 245, 226, 227, 354, 963, 1145,
1210 229, 649, 230, 231, 429, 232, 233, 199, 410, 355,
1211 351, 356, 477, 705, 357, 320, 626, 358, 204, 359,
1212 554, 800, 1059, 238, 570, 505, 409, 206, 571, 701,
1213 702, 572, 360, 207, 208, 361, 646, 616, 362, 241,
1214 363, 367, 708, 743, 910, 744, 212, 746, 747, 748,
1215 749, 750, 751, 752, 753, 754, 755, 756, 757, 758,
1216 759, 760, 1009, 1207, 761, 1150, 364, 365, 214, 366,
1217 266, 853, 301, 217, 123
1220 static const short yypact[] =
1222 2361,-32768,-32768, 79, 57, 5475,-32768, 6674,-32768, 810,
1223 3354, 3656, 3656,-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,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1227 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1228 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1229 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1230 -32768,-32768, 589,-32768,-32768,-32768,-32768, 2541,-32768,-32768,
1231 -32768, 91,-32768,-32768, 139,-32768, 160,-32768,-32768,-32768,
1232 183, 6266,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1233 -32768,-32768, 6266, 6266, 169, 150,-32768, 594,-32768,-32768,
1234 810,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 79,-32768,
1235 1888,-32768, 206,-32768, 169,-32768,-32768,-32768, 5475,-32768,
1236 281,-32768, 1888,-32768, 287, 337, 355,-32768, 381, 810,
1237 395, 410, 1173,-32768, 2923, 1888, 1888, 1888, 1888, 1888,
1238 1888,-32768, 5688, 5688, 401,-32768, 481, 487, 500, 502,
1239 443, 432, 4885,-32768, 545, 556,-32768, 561,-32768, 860,
1240 954,-32768,-32768,-32768, 878, 219, 282, 412, 270, 530,
1241 559, 548, 570, 125,-32768,-32768, 378,-32768, 3762, 538,
1242 547,-32768,-32768,-32768,-32768, 674, 3460,-32768, 4885,-32768,
1243 3762,-32768, 508, 3762,-32768,-32768, 696, 703,-32768, 709,
1244 -32768, 3116, 561, 726, 588, 658, 3505,-32768, 3656,-32768,
1245 -32768,-32768, 5994,-32768,-32768,-32768,-32768, 720, 751,-32768,
1246 -32768, 3656, 3762,-32768,-32768, 695,-32768,-32768,-32768,-32768,
1247 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1248 774, 779,-32768,-32768, 6538,-32768,-32768,-32768,-32768,-32768,
1249 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1250 -32768,-32768, 816, 644,-32768,-32768, 810, 810, 359,-32768,
1251 91,-32768,-32768,-32768, 5315,-32768,-32768, 347, 5858, 655,
1252 803,-32768,-32768, 839,-32768,-32768, 852, 868, 644, 160,
1253 -32768, 274, 883,-32768, 810,-32768, 156,-32768,-32768,-32768,
1254 904, 1888, 1888, 1888, 4834, 921,-32768,-32768,-32768, 652,
1255 917, 345, 932, 940,-32768,-32768,-32768,-32768,-32768,-32768,
1256 965, 5315,-32768,-32768, 1888, 1011, 1014, 1032, 1043, 1046,
1257 432, 482, 5342,-32768, 4885,-32768,-32768,-32768,-32768, 1015,
1258 -32768,-32768, 4885,-32768, 4885,-32768,-32768,-32768, 1201, 1888,
1259 -32768,-32768, 194, 1888, 1888, 1888, 1888, 1888, 1888, 1888,
1260 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888,
1261 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888,
1262 -32768,-32768,-32768,-32768, 1888, 506,-32768,-32768, 2730,-32768,
1263 -32768, 1044,-32768,-32768, 1057,-32768, 1888, 419, 1069, 1052,
1264 -32768,-32768,-32768,-32768,-32768, 169, 5994,-32768,-32768, 3656,
1265 3309, 1084,-32768,-32768, 1888, 398, 3868, 4968, 644,-32768,
1266 734, 6674, 1009, 1082, 1089, 1095, 1097, 1095, 810, 1098,
1267 389,-32768,-32768, 5374, 1085, 408,-32768, 442,-32768, 644,
1268 -32768, 644,-32768,-32768,-32768, 1036, 1096, 1102,-32768, 644,
1269 274,-32768, 810, 1104,-32768, 1111, 810, 1112,-32768, 477,
1270 1114, 498, 1114, 1115,-32768,-32768, 917, 1113,-32768, 5363,
1271 -32768,-32768, 1116, 1119,-32768,-32768,-32768,-32768,-32768,-32768,
1272 1888,-32768, 1118,-32768, 3868,-32768,-32768, 1125, 1121,-32768,
1273 549,-32768, 158, 810, 810,-32768,-32768,-32768,-32768,-32768,
1274 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 878,
1275 878, 219, 219, 282, 282, 282, 282, 412, 412, 270,
1276 530, 559, 1888, 1888, 1888,-32768, 5709, 5757,-32768,-32768,
1277 2256,-32768, 3611, 4056,-32768,-32768, 1136, 604,-32768,-32768,
1278 644,-32768,-32768, 1138, 1110,-32768, 1139,-32768, 2146,-32768,
1279 -32768, 4244, 4432, 917,-32768, 1140,-32768,-32768, 1145, 1151,
1280 -32768, 1152, 1154,-32768, 599,-32768, 1148,-32768,-32768,-32768,
1281 -32768, 1149, 101, 442, 5645, 1153,-32768, 206,-32768, 49,
1282 -32768,-32768, 1888, 480, 644,-32768,-32768, 1158,-32768,-32768,
1283 1170, 6674,-32768,-32768,-32768,-32768, 1155,-32768, 4834,-32768,
1284 5395,-32768,-32768, 1162,-32768,-32768, 1160,-32768,-32768, 1159,
1285 -32768, 1888,-32768,-32768,-32768,-32768, 548, 742, 570, 5315,
1286 -32768, 5315,-32768,-32768,-32768, 4477, 4885, 1888,-32768, 5778,
1287 -32768, 1888,-32768, 1004,-32768,-32768,-32768, 4583, 4628,-32768,
1288 4734,-32768,-32768, 1161,-32768,-32768,-32768,-32768,-32768, 1164,
1289 -32768,-32768, 1165,-32768, 810,-32768, 810,-32768,-32768, 44,
1290 1167,-32768, 1163, 103, 1120, 1798,-32768,-32768, 1169,-32768,
1291 1175,-32768, 199, 1004,-32768, 810, 689, 4885, 1171, 5395,
1292 -32768, 1166,-32768, 1177, 1183, 1188,-32768, 1888, 5778,-32768,
1293 -32768,-32768,-32768, 1186, 1189,-32768,-32768, 691, 5315, 1888,
1294 1888, 1888, 1888, 1888, 1888, 5688, 5688, 1191, 705, 729,
1295 927, 1090, 748, 1071, 623, 727, 539, 760, 1184, 1178,
1296 1187, 1168, 318, 1193,-32768, 41,-32768,-32768,-32768,-32768,
1297 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1298 -32768,-32768, 762, 775,-32768, 1050,-32768,-32768,-32768,-32768,
1299 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1004,-32768, 1132,
1300 -32768,-32768, 1137,-32768, 1147,-32768,-32768,-32768, 1150,-32768,
1301 4818, 1172, 1004,-32768,-32768, 4779,-32768,-32768,-32768,-32768,
1302 6402,-32768,-32768, 6402,-32768,-32768,-32768,-32768, 1888, 819,
1303 1204,-32768,-32768,-32768, 1211, 1221,-32768, 1798, 1888, 810,
1304 -32768,-32768, 1798, 846,-32768, 1218, 1798, 1174,-32768, 1004,
1305 -32768, 1217,-32768,-32768,-32768, 1004,-32768,-32768,-32768,-32768,
1306 -32768,-32768,-32768, 91, 1219,-32768, 656,-32768, 442,-32768,
1307 -32768, 1166, 5294, 1226, 810,-32768,-32768, 788, 1222, 1888,
1308 1162, 1162, 1237, 808, 1231, 820, 830, 841, 900, 907,
1309 910, 925, 935, 1888, 5656, 1888, 943, 960, 339, 1888,
1310 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888,
1311 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888,
1312 1888, 1888, 1888, 1888, 1888, 1888, 1888,-32768, 1888,-32768,
1313 1236, 1240,-32768, 1070, 1224, 422, 377,-32768,-32768,-32768,
1314 -32768,-32768,-32768,-32768, 520,-32768,-32768,-32768,-32768, 1798,
1315 699,-32768, 169, 5128,-32768, 6402, 5128, 6402,-32768,-32768,
1316 -32768,-32768,-32768,-32768, 913, 1232,-32768,-32768,-32768,-32768,
1317 -32768,-32768,-32768,-32768,-32768, 1004,-32768, 160,-32768, 606,
1318 -32768,-32768,-32768, 5677, 1247,-32768,-32768, 622,-32768, 1244,
1319 917,-32768,-32768, 982, 5363, 1249, 985, 1016, 229, 810,
1320 810,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1321 -32768,-32768, 1018, 1019, 1021, 858, 948, 603, 791, 86,
1322 123, 458, 485, 684, 800, 97, 537, 163, 548, 1888,
1323 570, 5778,-32768, 508, 1050,-32768,-32768,-32768,-32768,-32768,
1324 713,-32768, 6130, 422, 407, 407,-32768,-32768,-32768, 115,
1325 770,-32768,-32768, 60,-32768, 784, 78,-32768,-32768,-32768,
1326 -32768,-32768, 1245,-32768, 15,-32768, 634,-32768, 324, 1250,
1327 160,-32768, 60,-32768,-32768,-32768, 1257, 619,-32768,-32768,
1328 5128,-32768, 5128,-32768,-32768, 1294,-32768, 838,-32768, 1185,
1329 304,-32768,-32768,-32768, 1888, 810,-32768, 1086, 1024,-32768,
1330 1026, 1034,-32768,-32768, 1051,-32768,-32768, 422,-32768,-32768,
1331 -32768,-32768,-32768,-32768, 64, 115, 677, 810, 810, 407,
1332 -32768, 60, 60,-32768, 426, 864,-32768, 1255, 1049, 105,
1333 78, 449, 80,-32768,-32768, 784,-32768,-32768,-32768, 784,
1334 19, 810, 810, 1258, 784,-32768, 160, 1260, 969,-32768,
1335 644,-32768,-32768, 1261,-32768, 1262, 1259,-32768, 1263,-32768,
1336 -32768,-32768, 1194,-32768, 555, 1264,-32768, 275,-32768,-32768,
1337 -32768, 1266, 1035, 1041,-32768,-32768,-32768,-32768, 115, 1265,
1338 508,-32768,-32768, 115, 577, 426, 732, 810, 810, 60,
1339 -32768, 1092,-32768,-32768, 784,-32768, 105, 1253,-32768, 449,
1340 -32768, 449,-32768,-32768, 1268,-32768,-32768, 1092, 1271,-32768,
1341 -32768,-32768,-32768, 1888, 619, 1269,-32768,-32768,-32768, 1277,
1342 -32768, 1278,-32768,-32768,-32768,-32768, 1042, 1888,-32768,-32768,
1343 -32768, 1272,-32768,-32768, 426,-32768,-32768,-32768, 1276, 80,
1344 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1888,-32768,
1345 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1302, 1303,
1349 static const short yypgoto[] =
1351 -32768,-32768, 1220,-32768,-32768,-32768,-32768, -410, -114,-32768,
1352 -32768, 990,-32768,-32768,-32768,-32768,-32768, 76,-32768,-32768,
1353 382,-32768,-32768, 89, 118,-32768, 197,-32768,-32768,-32768,
1354 -955,-32768, -896,-32768,-32768, -486, -719,-32768,-32768,-32768,
1355 -574,-32768, -557,-32768, -548,-32768, 301,-32768,-32768, 633,
1356 -618,-32768, 232, 298,-32768,-32768,-32768,-32768,-32768,-32768,
1357 -32768,-32768,-32768,-32768,-32768, -869, 164,-32768, -1004,-32768,
1358 277,-32768,-32768, -613, 457, 1242,-32768,-32768, -607,-32768,
1359 -32768, -106, -373, -368, -359, -372, -377, -367, -374, -525,
1360 -496,-32768, -585,-32768, -124,-32768,-32768, 1156, 1363, -592,
1361 -426, 16,-32768,-32768,-32768, -455,-32768,-32768,-32768, 313,
1362 -255, 871,-32768, -891, -749,-32768,-32768, 510,-32768,-32768,
1363 -32768, -519,-32768,-32768,-32768, -507,-32768,-32768,-32768,-32768,
1364 -32768, 544,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1365 -32768,-32768, 58, 758,-32768, 979,-32768,-32768,-32768,-32768,
1366 -32768,-32768,-32768,-32768,-32768,-32768, 826, -703, -578,-32768,
1367 142,-32768,-32768, 661, 664, 493, 1, -380, 1212,-32768,
1368 4,-32768,-32768, -562,-32768,-32768,-32768, 650, -117, 1047,
1369 -32768, -453, -165, 1335,-32768, 1107,-32768, 717,-32768,-32768,
1370 -32768,-32768, -135,-32768,-32768,-32768,-32768,-32768, 47, 1299,
1371 999, 1449,-32768,-32768, 1540,-32768,-32768, -311,-32768, 27,
1372 200, -485, -867,-32768, 847,-32768,-32768, 944, -203, 654,
1373 503, -424, 33,-32768, 71, 109,-32768,-32768, 147,-32768,
1374 167,-32768,-32768, 646,-32768, 346, -609,-32768,-32768,-32768,
1375 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1376 -32768,-32768,-32768,-32768,-32768,-32768, 1654,-32768,-32768, 1688,
1377 -306, 505, 0, 740,-32768
1384 static const short yytable[] =
1386 121, 119, 593, 465, 596, 121, 290, 129, 564, 121,
1387 216, 216, 216, 300, 529, 530, 97, 636, 318, 487,
1388 539, 531, 532, 537, 538, 541, 698, 591, 1048, 426,
1389 680, 540, 533, 534, 535, 536, 730, 205, 237, 237,
1390 745, 502, 732, 411, 239, 239, 1183, 1029, 638, 334,
1391 335, 336, 337, 338, 339, 566, 467, 200, 114, 605,
1392 1067, 437, -601, 134, 742, 137, -601, 265, 943, 1061,
1393 453, 1113, 686, 947, 625, 839, 93, 951, 3, 779,
1394 1108, 130, 240, 240, 1101, 1034, 418, 121, 119, 1156,
1395 1096, 422, 1097, 423, 1102, 730, 780, 1164, 1165, 745,
1396 936, 732, 1110, 97, 1110, 782, 471, -635, 471, 1098,
1397 954, -635, 1036, 3, 1036, -275, 958, 260, -643, 209,
1398 121, 814, -643, 742, 740, -414, 678, -414, 813, 645,
1399 1175, 1120, 293, 1121, 788, -414, 389, 390, 121, 1109,
1400 1111, 1096, 314, 1097, -636, 114, 791, 658, -636, 121,
1401 1122, 395, 396, 741, 216, 1094, 1095, 210, 262, 268,
1402 1098, 471, 1128, 93, 1182, 1214, 401, 443, 682, 1188,
1403 268, 268, 216, 389, 390, 502, 688, 211, 265, 404,
1404 1053, 205, 402, 740, -647, 633, 803, -274, -647, 503,
1405 124, 125, 126, 1137, 691, 1139, 313, 506, 216, 507,
1406 1114, 333, 398, 779, 832, 553, 216, 267, 216, 1184,
1407 216, 839, 741, 216, 1176, 467, 1179, 839, 779, 1218,
1408 780, 216, 513, 690, 492, 205, 216, 302, 216, 782,
1409 1163, 413, 1060, 205, 1062, 780, 1068, 205, 284, 514,
1410 205, 216, 216, 848, 782, 406, 80, 1103, 237, 419,
1411 404, 387, 388, 237, 239, 237, 1081, 412, 788, 239,
1412 414, 239, 662, 209, 80, 1039, 80, 1039, 237, 205,
1413 791, 569, 737, 788, 239, 739, 733, 736, 526, 527,
1414 528, 734, 738, 121, 440, 791, 121, 121, 121, 431,
1415 735, 917, 240, 687, 562, 422, 404, 240, -275, 240,
1416 466, 210, 1204, 455, 1013, 316, 927, 209, 121, 464,
1417 318, 321, 240, 100, 121, 209, 1141, 935, 100, 209,
1418 937, 211, 209, 1179, 395, 396, 246, 247, 248, 318,
1419 453, 737, 389, 390, 739, 733, 736, 839, 3, 569,
1420 734, 738, -414, -414, -414, 210, -46, -414, -414, 735,
1421 1120, 209, 1121, 210, 216, 1058, 452, 210, 1058, 907,
1422 210, 322, 216, 403, 216, 211, 404, 979, 404, 1122,
1423 488, 1071, 451, 211, 622, 908, 318, 211, 448, 323,
1424 211, 1008, 938, 621, 980, 80, 81, 139, 569, 210,
1425 84, 85, 945, 848, 508, 265, 403, 680, 730, 404,
1426 100, 1024, 745, 471, 732, 324, 569, 661, 216, 211,
1427 404, 1025, 1010, 326, 488, 270, 271, 272, 273, 274,
1428 275, 276, 277, 565, 279, 344, 742, 282, 327, 216,
1429 216, 1024, -274, 100, 453, 205, 216, 420, 121, 574,
1430 404, 1025, 561, 298, 488, 303, 304, 306, 121, 391,
1431 392, 312, 1166, 561, 1167, 551, 237, 237, 349, 121,
1432 443, 121, 239, 239, 393, 394, -274, 298, 594, 121,
1433 318, 1168, 121, 314, 340, 1120, 121, 1121, 318, -637,
1434 661, 716, 1058, -637, 1058, 471, 740, 1160, 500, 501,
1435 80, 81, 139, 661, 1122, 84, 85, 345, 404, 452,
1436 240, 240, 615, 346, 216, 689, -638, 704, 389, 390,
1437 -638, 1015, 1016, 121, 121, 741, 347, 209, 348, 404,
1438 995, 996, 713, 617, 714, 1034, 1005, 997, 998, 1003,
1439 1004, 1007, 849, 350, 298, 389, 390, 1006, 999, 1000,
1440 1001, 1002, 1017, 1018, 1035, 80, 81, 139, 546, 547,
1441 84, 85, 216, 216, 1036, 210, 1019, 1160, -645, 397,
1442 121, 650, -645, 80, 1026, 1027, 397, -693, 216, 561,
1443 631, 216, 216, 434, 632, 211, 897, 898, -697, 205,
1444 -466, 453, 843, -694, -414, -414, -414, 561, 399, -414,
1445 -414, 899, 900, 80, 1026, 1027, 100, 441, 398, 444,
1446 446, 864, 1209, 1166, 121, 1167, 420, 298, 314, 404,
1447 1031, 471, 454, 865, 866, 867, 868, 869, 870, 673,
1448 674, 100, 1168, -699, -632, 404, 400, 312, -632, 648,
1449 -414, 678, -414, 407, 737, 387, 388, 739, 733, 736,
1450 -414, 1132, -520, 734, 738, 216, 216, 1073, 1074, 762,
1451 1075, 1069, 735, 3, 298, 893, 894, 216, 216, 1077,
1452 216, 209, 286, 287, 288, 298, -414, -414, -414, 696,
1453 485, -414, -414, 404, 121, 1192, 121, -699, 3, -274,
1454 -274, 453, 453, 455, 318, 216, 1116, 1117, 1118, 3,
1455 3, 593, 121, 408, 318, 121, 121, 216, 413, 210,
1456 846, 1024, 1037, 1038, 1157, -640, 80, 1039, 762, -640,
1457 1040, 1025, 404, -274, 1088, 453, 862, 1054, -696, 211,
1458 1055, 391, 392, 3, 1100, 415, -598, 198, 228, 228,
1459 -598, 265, 843, 416, 1087, 971, 393, 394, 282, 427,
1460 122, 80, 81, 139, 1125, 122, 84, 85, -695, 140,
1461 -597, 100, -414, 421, -597, -414, 1024, -414, 579, 1210,
1462 582, 1142, 588, 404, 712, 589, 1025, 1225, 454, -621,
1463 595, 428, 100, -621, 100, -699, -699, 895, 896, 602,
1464 -699, -699, 312, -596, 992, 993, 994, -596, 265, 611,
1465 432, 1099, -414, -414, -414, 216, 404, -414, -414, 1170,
1466 911, 433, 1236, 435, 441, 80, 81, 139, 1035, 404,
1467 84, 85, -633, 969, 901, 902, -633, 216, 1036, 121,
1468 1190, -641, 216, 387, 388, -641, 216, 122, 458, 404,
1469 80, 81, 139, 973, 439, 84, 85, 391, 392, 939,
1470 674, -615, 80, 81, 139, -615, 121, 84, 85, 961,
1471 846, -620, 393, 394, 121, -620, 265, 460, 932, 1055,
1472 122, 932, -619, 80, 1026, 1027, -619, 176, 1078, 948,
1473 462, 198, 818, 100, 819, 80, 81, 139, 315, -630,
1474 84, 85, 265, -630, 368, 1169, 369, 663, -414, 325,
1475 441, 463, 384, 385, 386, 249, 250, 251, 252, 253,
1476 254, 255, 256, 257, 258, -414, 595, 468, 370, 371,
1477 684, 685, 384, 385, 386, 198, 1032, 312, 80, 1026,
1478 1027, -618, 176, 198, 1051, -618, 478, 198, -617, 216,
1479 198, -616, -617, 1064, 1065, -616, 278, 441, 228, 484,
1480 283, 486, 285, 228, 289, 228, -613, 710, 711, 291,
1481 -613, 874, 298, 875, 298, -414, -614, 489, 228, 198,
1482 -614, 307, 1151, 308, -610, 490, 1037, 1038, -610, -629,
1483 80, 1039, -414, -629, 1040, 876, 877, 373, 799, 121,
1484 121, -611, 384, 385, 386, -611, 806, 1191, 808, 491,
1485 1055, 932, 454, 932, 932, 932, 80, 81, 139, 826,
1486 827, 84, 85, -602, 831, 372, -605, -602, 611, 844,
1487 -605, 762, 374, 375, 376, 377, 378, 379, 380, 381,
1488 382, 383, 1092, 122, 1032, 1032, 445, 447, 449, 494,
1489 290, 298, 495, 1106, 504, 1051, 1051, 631, 1091, -625,
1490 -626, 1080, -627, -625, -626, -623, -627, -606, 122, -623,
1491 496, -606, 1106, 555, 315, -604, -608, 121, 1135, -604,
1492 -608, 497, -609, -607, 498, 216, -609, -607, 556, 318,
1493 121, 574, 404, 1154, 1144, 121, 559, 765, 766, 767,
1494 768, 1172, 1173, 1231, 769, 770, 771, 772, 773, 774,
1495 775, 280, 281, 438, 558, 563, 1032, 121, 121, 1032,
1496 576, 1106, 1106, 577, 318, 890, 891, 892, 578, 592,
1497 1051, 929, 1051, 879, -274, 1051, 581, 587, 932, 1051,
1498 932, 121, 121, 601, 1051, 198, 603, 600, 459, 609,
1499 121, 461, 610, 618, 614, 404, 629, 652, 619, 469,
1500 624, 623, 472, 627, 121, 630, 228, 228, 880, 881,
1501 882, 883, 884, 885, 886, 887, 888, 889, 960, 844,
1502 647, 595, 651, 664, 654, 667, 1032, 121, 121, 1106,
1503 669, 675, 670, 672, 1051, 694, 677, 683, 122, 692,
1504 697, 620, 706, 707, 801, 804, 797, 852, 586, 850,
1505 812, 328, 811, 765, 121, 1135, 828, 294, 854, 122,
1506 830, 122, 155, 156, 157, 158, 159, 160, 855, 315,
1507 856, 860, 608, 903, 861, 873, 613, 904, 909, 1051,
1508 161, 162, 163, 918, 906, 294, 509, 905, 919, 940,
1509 155, 156, 157, 158, 159, 160, 941, 912, 920, 942,
1510 950, 923, 956, 959, 164, 1056, 966, 970, 161, 162,
1511 163, 560, 1063, 634, 635, 972, 974, 1011, 1012, 1066,
1512 176, 472, 1076, 926, 1014, 952, 575, 1072, 1112, 198,
1513 1079, 580, 164, 583, 1124, 1131, 1143, 1171, 1149, 1198,
1514 1187, 1169, 1194, 1200, 1197, 1202, 1216, 1227, 173, 1203,
1515 599, 1206, 1208, 1219, 604, 1220, 1222, 1229, 1230, 1232,
1516 122, 1233, 1239, 1240, 470, 1221, 1042, 259, 1234, 201,
1517 234, 234, 1180, 817, 1140, 1086, 173, 816, 294, 1155,
1518 818, 1093, 819, 155, 156, 157, 158, 159, 160, 1127,
1519 1211, 977, 597, 949, 925, 666, 1226, 809, 807, 962,
1520 292, 161, 162, 163, 315, 842, 456, 244, 430, 499,
1521 1205, 628, 552, 851, 858, 965, 964, 1085, 0, 80,
1522 295, 296, 0, 176, 0, 164, 0, 1129, 0, 0,
1523 100, 0, 0, 196, 0, 0, 0, 0, 0, 0,
1524 0, 0, 0, 844, 317, 0, 1146, 80, 295, 296,
1525 0, 176, 441, 0, 0, 1152, 1153, 317, 317, 317,
1526 317, 317, 317, 0, 342, 343, 0, 0, 0, 173,
1527 0, 0, 0, 0, 586, 0, 586, 0, 679, 0,
1528 0, 0, 0, 0, 0, 825, 0, 0, 0, 472,
1529 0, 0, 833, 0, 0, 613, 122, 0, 1189, 0,
1530 0, 0, 0, 100, 0, 1193, 1195, 0, 703, 0,
1531 0, 0, 0, 201, 0, 0, 0, 844, 0, 202,
1532 235, 235, 0, 0, 0, 0, 0, 0, 0, 0,
1533 0, 0, 0, 0, 0, 0, 575, 0, 764, 0,
1534 80, 174, 175, 1215, 176, 84, 85, 0, 0, 0,
1535 0, 0, 0, 297, 0, 0, 0, 201, 0, 0,
1536 493, 0, 0, 1223, 1224, 201, 0, 100, 0, 201,
1537 1228, 0, 201, 0, 0, 329, 0, 331, 0, 0,
1538 234, 0, 0, 0, 511, 234, 0, 234, 0, 515,
1539 516, 517, 518, 519, 520, 521, 522, 523, 524, 525,
1540 234, 201, 0, 0, 0, 0, 0, 0, 0, 0,
1541 203, 236, 236, 0, 0, 0, 878, 825, 0, 946,
1542 545, 196, 825, 0, 0, 0, 825, 0, 0, 196,
1543 0, 0, 0, 196, 0, 0, 196, 0, 0, 0,
1544 0, 0, 0, 0, 417, 0, 122, 0, 0, 0,
1545 0, 0, 0, 0, 968, 0, 0, 0, 0, 0,
1546 0, 0, 0, 202, 0, 196, 0, 0, 0, 0,
1547 0, 921, 922, 0, 0, 0, 0, 0, 0, 0,
1548 0, 0, 0, 0, 0, 0, 317, 317, 317, 317,
1549 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
1550 317, 317, 0, 0, 0, 0, 0, 202, 0, 0,
1551 0, 0, 0, 0, 953, 202, 0, 450, 0, 202,
1552 0, 0, 202, 0, 213, 242, 242, 0, 0, 825,
1553 235, 0, 0, 0, 0, 235, 317, 235, 0, 0,
1554 0, 0, 0, 0, 479, 480, 481, 482, 0, 0,
1555 235, 202, 0, 0, 203, 317, 0, 0, 215, 243,
1556 243, 0, 0, 0, 450, 0, 0, 201, 0, 0,
1557 0, 0, 0, 0, 0, 450, 0, 0, 0, 1082,
1558 1083, 0, 0, 0, 0, 0, 0, 0, 234, 234,
1559 0, 317, 512, 0, 0, 0, 0, 0, 203, 0,
1560 0, 0, 317, 0, 0, 0, 203, 0, 0, 0,
1561 203, 0, 0, 203, 0, 0, 0, 0, 1057, 0,
1562 0, 236, 0, 0, 0, 0, 236, 0, 236, 0,
1563 0, 196, 0, 0, 0, 0, 700, 0, 0, 557,
1564 0, 236, 203, 0, 317, 1070, 317, 709, 640, 642,
1565 0, 0, 0, 0, 0, 0, 0, 122, 0, 0,
1566 0, 0, 0, 0, 0, 825, 0, 0, 213, 0,
1567 122, 0, 0, 0, 0, 1148, 0, 817, 0, 0,
1568 0, 0, 294, 0, 818, 0, 819, 155, 156, 157,
1569 158, 159, 160, 0, 0, 0, 317, 1161, 1162, 0,
1570 0, 820, 215, 0, 317, 161, 162, 163, 0, 0,
1571 0, 201, 213, 0, 0, 700, 0, 202, 0, 0,
1572 213, 1185, 1186, 0, 213, 0, 0, 213, 0, 164,
1573 122, 0, 0, 0, 0, 242, 0, 0, 235, 235,
1574 242, 1130, 242, 0, 122, 0, 215, 0, 0, 0,
1575 0, 731, 0, 0, 215, 242, 213, 0, 215, 0,
1576 0, 215, 0, 0, 0, 0, 637, 1212, 1213, 243,
1577 0, 0, 294, 173, 243, 196, 243, 155, 156, 157,
1578 158, 159, 160, 0, 0, 0, 0, 0, 0, 243,
1579 215, 0, 0, 0, 122, 161, 162, 163, 0, 0,
1580 0, 0, 0, 0, 0, 0, 0, 0, 203, 0,
1581 731, 0, 0, 0, 0, 0, 0, 0, 0, 164,
1582 1196, 317, 317, 317, 317, 317, 317, 871, 872, 236,
1583 236, 0, 0, 820, 0, 0, 0, 0, 820, 0,
1584 0, 482, 820, 0, 80, 174, 175, 0, 176, 84,
1585 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1586 0, 202, 450, 173, 450, 0, 0, 0, 700, 0,
1587 717, 0, 0, 0, 763, 0, 0, 0, 0, 0,
1588 0, 0, 0, 0, 0, 0, 0, 0, 0, 975,
1589 511, 0, 0, 0, 0, 981, 982, 983, 984, 985,
1590 986, 987, 988, 989, 990, 991, 0, 0, 0, 0,
1591 317, 0, 1235, 0, 0, 0, 0, 0, 0, 0,
1592 317, 0, 213, 0, 0, 0, 0, 0, 0, 0,
1593 857, 0, 0, 0, 80, 295, 296, 0, 176, 0,
1594 0, 863, 0, 242, 242, 820, 0, 0, 0, 0,
1595 0, 0, 203, 0, 0, 0, 215, 0, 0, 0,
1596 0, 317, 0, 0, 0, 0, 0, 0, 0, 0,
1597 0, 0, 0, 0, 0, 0, 0, 243, 243, 0,
1598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 317, 317, 317, 317, 317, 317, 317, 317,
1600 317, 317, 317, 317, 317, 317, 317, 317, 317, 0,
1601 317, 0, 142, 143, 144, 0, 145, 146, 147, 148,
1602 149, 150, 151, 152, 220, -548, 655, 0, 0, 0,
1603 352, 0, 0, 0, 0, 155, 156, 157, 158, 159,
1604 160, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1605 0, 0, 0, 161, 162, 163, 0, 0, 0, 0,
1606 0, 0, 0, 0, 0, 0, 213, 0, 0, 0,
1607 0, 0, 0, 0, 0, 0, 317, 164, 0, 0,
1608 0, 820, 0, 0, 0, 0, 0, 0, 0, 0,
1609 0, 0, 0, 0, 0, 0, 0, 0, 978, 0,
1610 215, 0, 166, 167, 168, 169, 170, 171, 0, 0,
1611 0, 0, 0, 731, 0, 0, 172, -169, 0, 0,
1612 0, 173, -169, -169, -169, 0, -169, -169, -169, -169,
1613 -169, -169, -169, -169, -169, -169, -169, -169, -697, -169,
1614 -169, 0, -169, 0, -169, -169, -169, -169, -169, -169,
1615 -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
1616 0, -169, 0, -169, -169, -169, -169, -169, -169, -169,
1617 -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
1618 -169, -169, -169, -169, 0, 0, 482, -169, 0, 0,
1619 0, 0, 80, 174, 175, 0, 176, 177, 85, 0,
1620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1621 0, 0, -169, -169, -169, -169, -169, -169, 0, 0,
1622 0, -1, 1, 0, 0, 0, -169, 0, 0, 0,
1623 0, -169, 1084, 0, 0, 0, 0, 0, 0, 2,
1624 0, 0, 0, 0, 0, -274, 0, 0, 0, 0,
1625 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
1626 0, 0, 0, 0, 0, 4, 0, 5, 0, 0,
1627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1628 0, 0, 0, 0, 0, 0, 0, 0, 0, -414,
1629 -414, -414, 0, 6, 0, 317, 0, 1147, 7, 8,
1630 9, 0, -169, -169, -169, 0, -169, -169, -169, 317,
1631 0, 0, 0, 10, 11, 12, 0, 0, 0, 0,
1632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1633 317, 0, 13, 14, 15, 16, 0, 17, 18, 19,
1634 20, 21, 22, 23, 24, 25, 26, 0, 27, 28,
1635 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1636 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1637 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1638 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1639 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1640 79, -2, 1, 0, 0, 0, 0, 80, 81, 82,
1641 83, 0, 84, 85, 86, 0, 0, 0, 0, 2,
1642 0, 0, 0, 0, 0, -274, 0, 0, 0, 0,
1643 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
1644 0, 0, 0, 0, 0, 4, 0, 5, 0, 0,
1645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1646 0, 0, 0, 0, 0, 0, 0, 0, 0, -414,
1647 -414, -414, 0, 6, 0, 0, 0, 0, 7, 8,
1648 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1649 0, 0, 0, 10, 11, 12, 0, 0, 0, 0,
1650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1651 0, 0, 13, 14, 15, 16, 0, 17, 18, 19,
1652 20, 21, 22, 23, 24, 25, 26, 0, 27, 28,
1653 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1654 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1655 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1656 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1657 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1658 79, 0, 0, 0, 0, 0, 0, 80, 81, 82,
1659 83, 141, 84, 85, 86, 0, 142, 143, 144, 0,
1660 145, 146, 147, 148, 149, 150, 151, 152, 153, -548,
1661 549, 0, 0, 0, 154, 0, 0, 0, 0, 155,
1662 156, 157, 158, 159, 160, 0, 0, 0, 0, 0,
1663 0, 0, -274, -274, 4, 0, 5, 161, 162, 163,
1664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, -414, -414,
1666 -414, 164, 6, 0, 0, 0, 0, 0, 0, 0,
1667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1668 0, 0, 0, 0, 0, 0, 166, 167, 168, 169,
1669 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1670 172, 13, 14, 15, 16, 173, 17, 18, 19, 20,
1671 21, 22, 23, 24, 25, 26, 0, 27, 28, 29,
1672 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1673 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1674 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1675 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1676 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1677 0, 0, 0, 0, 0, 0, 80, 174, 550, 83,
1678 176, 177, 85, 86, 141, 0, 0, 0, 0, 142,
1679 143, 144, 0, 145, 146, 147, 148, 149, 150, 151,
1680 152, 153, -171, 0, 0, 0, 0, 154, 0, 0,
1681 0, 0, 155, 156, 157, 158, 159, 160, 0, 0,
1682 0, 0, 0, 0, 0, -274, -274, -274, 0, 0,
1683 161, 162, 163, 0, 0, 0, 0, 0, 0, 0,
1684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1685 0, -274, -274, -274, 164, 0, 0, 0, 0, 0,
1686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1687 0, 0, 0, 0, 0, 0, 0, 0, 0, 166,
1688 167, 168, 169, 170, 171, 0, 0, 0, 0, 0,
1689 0, 0, 0, 172, -274, -274, -274, -274, 173, -274,
1690 -274, -274, -274, -274, -274, -274, -274, -274, -274, 0,
1691 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1692 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1693 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1694 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1695 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1696 -274, -274, -274, 0, 0, 0, 0, 0, 0, 80,
1697 174, 175, -274, 176, 177, 85, -274, 218, 0, 0,
1698 0, 0, 142, 143, 144, 0, 0, 219, 147, 148,
1699 149, 150, 151, 152, 220, -171, -552, 0, 0, 0,
1700 221, 0, 0, 0, 0, 155, 156, 157, 158, 159,
1701 160, 0, 0, 0, 0, 0, 0, 0, -274, -274,
1702 -274, 0, 0, 161, 162, 163, 0, 0, 0, 0,
1703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1704 0, 0, 0, 0, -274, -274, -274, 164, 0, 0,
1705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1707 0, 0, 166, 167, 168, 169, 170, 171, 0, 0,
1708 0, 0, 0, 0, 0, 0, 172, -274, -274, -274,
1709 -274, 173, -274, -274, -274, -274, -274, -274, -274, -274,
1710 -274, -274, 0, -274, -274, -274, -274, -274, -274, -274,
1711 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1712 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1713 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1714 -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
1715 -274, -274, -274, -274, -274, -274, 0, 0, 0, 0,
1716 0, 0, 80, 174, 175, -274, 176, 222, 223, -274,
1717 218, 0, 0, 0, 0, 142, 143, 144, 0, 0,
1718 219, 147, 148, 149, 150, 151, 152, 220, -493, -493,
1719 0, 0, 0, 221, -493, 0, 0, 0, 155, 156,
1720 157, 158, 159, 160, 0, 0, 0, 0, 0, 0,
1721 0, -274, -274, 0, 0, 141, 161, 162, 163, 0,
1722 142, 143, 144, 0, 145, 146, 147, 148, 149, 150,
1723 151, 152, 153, -548, 0, 0, 0, 0, 154, 0,
1724 164, 0, 0, 155, 156, 157, 158, 159, 160, 0,
1725 0, 0, 0, 0, 0, 0, -274, -274, 0, 0,
1726 0, 161, 162, 163, -493, 166, 167, 168, 169, 170,
1727 171, 0, 0, 0, 0, 0, 0, 0, 0, 172,
1728 0, 0, 0, 0, 173, 164, 0, 0, 0, 0,
1729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1730 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
1731 166, 167, 168, 169, 170, 171, 0, 0, 0, 0,
1732 0, 141, 0, 0, 172, 0, 142, 143, 144, 173,
1733 145, 146, 147, 148, 149, 150, 151, 152, 153, -548,
1734 0, 0, 0, 0, 154, 0, 0, 0, 0, 155,
1735 156, 157, 158, 159, 160, 80, 174, 175, 0, 176,
1736 222, 223, -274, -274, 0, 0, 218, 161, 162, 163,
1737 0, 142, 143, 144, 0, 0, 219, 147, 148, 149,
1738 150, 151, 152, 220, -548, -552, 0, 0, 0, 221,
1739 0, 164, 0, 0, 155, 156, 157, 158, 159, 160,
1740 80, 174, 175, 0, 176, 177, 85, -274, -274, 0,
1741 0, 0, 161, 162, 163, -521, 166, 167, 168, 169,
1742 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1743 172, 0, 0, 0, 0, 173, 164, 0, 0, 0,
1744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746 -489, 166, 167, 168, 169, 170, 171, 0, 0, 0,
1747 0, 0, 141, 0, 0, 172, 0, 142, 143, 144,
1748 173, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1749 -548, 643, 0, 0, 0, 154, 0, 0, 0, 0,
1750 155, 156, 157, 158, 159, 160, 80, 174, 175, 0,
1751 176, 177, 85, -274, -274, 0, 0, 218, 161, 162,
1752 163, 0, 142, 143, 144, 0, 0, 219, 147, 148,
1753 149, 150, 151, 152, 220, -548, -552, 0, 0, 0,
1754 221, 0, 164, 0, 0, 155, 156, 157, 158, 159,
1755 160, 80, 174, 175, 0, 176, 222, 223, -274, -274,
1756 0, 0, 0, 161, 162, 163, 0, 166, 167, 168,
1757 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
1758 0, 172, 0, 0, 0, 0, 173, 164, 0, 0,
1759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761 0, 0, 166, 167, 168, 169, 170, 171, 0, 0,
1762 0, 0, 0, 141, 0, 0, 172, 0, 142, 143,
1763 144, 173, 145, 146, 147, 148, 149, 150, 151, 152,
1764 153, -548, 0, 0, 0, 0, 154, 0, 0, 0,
1765 0, 155, 156, 157, 158, 159, 160, 80, 174, 175,
1766 0, 176, 177, 85, -274, -274, 0, 0, 0, 161,
1767 162, 163, 0, 0, 0, 0, 0, 0, 0, 0,
1768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1769 0, 0, 0, 164, 0, 0, 0, 0, 0, 0,
1770 0, 0, 80, 174, 175, 0, 176, 222, 223, 0,
1771 0, 0, 0, 0, 0, 0, 0, 0, 166, 167,
1772 168, 169, 170, 171, 0, 0, 0, 0, 0, 0,
1773 0, 0, 172, 0, 142, 143, 144, 173, 145, 146,
1774 147, 148, 149, 150, 151, 152, 220, -548, 567, 0,
1775 0, 0, 352, 0, 0, 0, 0, 155, 156, 157,
1776 158, 159, 160, 0, 0, 0, 0, 0, 0, 0,
1777 -274, -274, 4, 0, 5, 161, 162, 163, 0, 0,
1778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1779 0, 0, 0, 0, 0, 0, 0, 0, 0, 164,
1780 6, 0, 0, 0, 0, 0, 0, 0, 80, 174,
1781 175, 0, 176, 177, 85, 0, 0, 0, 0, 0,
1782 0, 0, 0, 0, 166, 167, 168, 169, 170, 171,
1783 0, 0, 0, 0, 0, 0, 0, 0, 568, 13,
1784 14, 15, 16, 173, 17, 18, 19, 20, 21, 22,
1785 23, 24, 25, 26, 0, 27, 28, 29, 30, 31,
1786 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1787 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1788 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1789 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1790 72, 73, 74, 75, 76, 77, 78, 79, 0, 0,
1791 0, 0, 0, 0, 80, 174, 550, 83, 176, 177,
1792 85, 86, 142, 143, 144, 0, 145, 146, 147, 148,
1793 149, 150, 151, 152, 220, -548, 644, 0, 0, 0,
1794 352, 0, 0, 0, 0, 155, 156, 157, 158, 159,
1795 160, 0, 0, 0, 0, 0, 0, 0, -274, -274,
1796 4, 0, 5, 161, 162, 163, 0, 0, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1798 0, 0, 0, 0, 0, 0, 0, 164, 6, 0,
1799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801 0, 0, 166, 167, 168, 169, 170, 171, 0, 0,
1802 0, 0, 0, 0, 0, 0, 172, 13, 14, 15,
1803 16, 173, 17, 18, 19, 20, 21, 22, 23, 24,
1804 25, 26, 0, 27, 28, 29, 30, 31, 32, 33,
1805 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1806 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1807 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1808 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1809 74, 75, 76, 77, 78, 79, 0, 0, 0, 0,
1810 0, 0, 80, 174, 550, 83, 176, 177, 85, 86,
1811 142, 143, 144, 0, 145, 146, 147, 148, 149, 150,
1812 151, 152, 220, -548, 656, 0, 0, 0, 352, 0,
1813 0, 0, 0, 155, 156, 157, 158, 159, 160, 0,
1814 0, 0, 0, 0, 0, 0, -274, -274, 4, 0,
1815 5, 161, 162, 163, 0, 0, 0, 0, 0, 0,
1816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1817 0, 0, 0, 0, 0, 164, 6, 0, 0, 0,
1818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820 166, 167, 168, 169, 170, 171, 0, 0, 0, 0,
1821 0, 0, 0, 0, 657, 13, 14, 15, 16, 173,
1822 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1823 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1824 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1825 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1826 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1827 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1828 76, 77, 78, 79, 0, 0, 0, 0, 0, 0,
1829 80, 174, 550, 83, 176, 177, 85, 86, 142, 143,
1830 144, 0, 145, 146, 147, 148, 149, 150, 151, 152,
1831 220, -548, 659, 0, 0, 0, 352, 0, 0, 0,
1832 0, 155, 156, 157, 158, 159, 160, 0, 0, 0,
1833 0, 0, 0, 0, 0, 0, 0, 0, 0, 161,
1834 162, 163, 0, 142, 143, 144, 0, 145, 146, 147,
1835 148, 149, 150, 151, 152, 220, -548, 715, 0, 0,
1836 0, 352, 0, 164, 0, 0, 155, 156, 157, 158,
1837 159, 160, 0, 0, 0, 0, 0, 0, 0, 0,
1838 0, 0, 0, 0, 161, 162, 163, 0, 166, 167,
1839 168, 169, 170, 171, 0, 0, 0, 0, 0, 0,
1840 0, 0, 660, 0, 0, 0, 0, 173, 164, 0,
1841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1843 0, 0, 0, 166, 167, 168, 169, 170, 171, 0,
1844 0, 0, 0, 0, 0, 0, 0, 172, 0, 142,
1845 143, 144, 173, 145, 146, 147, 148, 149, 150, 151,
1846 152, 220, -548, 793, 0, 0, 0, 352, 0, 0,
1847 0, 0, 155, 156, 157, 158, 159, 160, 80, 174,
1848 175, 0, 176, 177, 85, 0, 0, 0, 0, 0,
1849 161, 162, 163, 0, 142, 143, 144, 0, 145, 146,
1850 147, 148, 149, 150, 151, 152, 220, -548, 794, 0,
1851 0, 0, 352, 0, 164, 0, 0, 155, 156, 157,
1852 158, 159, 160, 80, 174, 175, 0, 176, 177, 85,
1853 0, 0, 0, 0, 0, 161, 162, 163, 0, 166,
1854 167, 168, 169, 170, 171, 0, 0, 0, 0, 0,
1855 0, 0, 0, 172, 0, 0, 0, 0, 173, 164,
1856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1858 0, 0, 0, 0, 166, 167, 168, 169, 170, 171,
1859 0, 0, 0, 0, 0, 0, 0, 0, 795, 0,
1860 142, 143, 144, 173, 145, 146, 147, 148, 149, 150,
1861 151, 152, 220, -548, 796, 0, 0, 0, 352, 0,
1862 0, 0, 0, 155, 156, 157, 158, 159, 160, 80,
1863 174, 175, 0, 176, 177, 85, 0, 0, 0, 0,
1864 0, 161, 162, 163, 0, 142, 143, 144, 0, 145,
1865 146, 147, 148, 149, 150, 151, 152, 220, -548, 928,
1866 0, 0, 0, 352, 0, 164, 0, 0, 155, 156,
1867 157, 158, 159, 160, 80, 174, 175, 0, 176, 177,
1868 85, 0, 0, 0, 0, 0, 161, 162, 163, 0,
1869 166, 167, 168, 169, 170, 171, 0, 0, 0, 0,
1870 0, 0, 0, 0, 172, 0, 0, 0, 0, 173,
1871 164, 0, -256, 0, 0, 0, 0, 0, 294, 0,
1872 0, 0, 0, 155, 156, 157, 158, 159, 160, 0,
1873 0, 0, 0, 0, 0, 166, 167, 168, 169, 170,
1874 171, 161, 162, 163, 0, 0, 0, 0, 0, 172,
1875 0, 142, 143, 144, 173, 145, 146, 147, 148, 149,
1876 150, 151, 152, 220, -548, 164, 0, 0, 0, 352,
1877 0, 0, 0, 0, 155, 156, 157, 158, 159, 160,
1878 80, 174, 175, 0, 176, 177, 85, 0, 0, 0,
1879 0, 0, 161, 162, 163, 0, 0, 0, 0, 0,
1880 23, 24, 25, 26, 0, 27, 0, 0, 0, 173,
1881 32, 33, 0, 0, 36, 37, 164, 39, 40, 41,
1882 42, 0, 0, 0, 0, 80, 174, 175, 0, 176,
1883 177, 85, 54, 55, 0, 0, 0, 0, 0, 0,
1884 0, 166, 167, 168, 169, 170, 171, -135, 0, 0,
1885 0, 0, -135, 0, 0, 172, 0, 79, 0, 0,
1886 173, 0, 0, 0, 0, 0, 0, 83, 0, 0,
1887 0, 0, 4, 0, 5, 0, 0, 0, 0, 0,
1888 80, 295, 296, 0, 176, 0, 0, 0, 0, 0,
1889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1890 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1893 0, 80, 174, 175, 0, 176, 177, 85, 0, 13,
1894 14, 15, 16, 0, 17, 18, 19, 20, 21, 22,
1895 23, 24, 25, 26, 0, 27, 28, 29, 30, 31,
1896 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1897 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1898 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1899 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1900 72, 73, 74, 75, 76, 77, 78, 79, -551, 0,
1901 0, 0, 0, 0, 0, 0, 136, 83, 0, 0,
1902 0, 86, 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 4, 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, 0,
1906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1909 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
1910 14, 15, 16, 0, 17, 18, 19, 20, 21, 22,
1911 23, 24, 25, 26, 0, 27, 28, 29, 30, 31,
1912 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1913 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1914 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1915 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1916 72, 73, 74, 75, 76, 77, 78, 79, 0, 0,
1917 0, 0, 0, 699, -691, 0, 136, 83, 294, 0,
1918 0, 86, 0, 155, 156, 157, 158, 159, 160, 0,
1919 0, 0, 0, 0, -171, 0, 0, 0, 0, 294,
1920 0, 161, 162, 163, 155, 156, 157, 158, 159, 160,
1921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1922 0, -171, 161, 162, 163, 164, 352, 0, 0, 0,
1923 0, 155, 156, 157, 158, 159, 160, 0, 0, 0,
1924 0, 0, 620, 0, 0, 0, 164, 294, 0, 161,
1925 162, 163, 155, 156, 157, 158, 159, 160, 294, 0,
1926 0, 590, 0, 155, 156, 157, 158, 159, 160, 173,
1927 161, 162, 163, 164, 699, 0, 0, 0, 0, 294,
1928 0, 161, 162, 163, 155, 156, 157, 158, 159, 160,
1929 173, 0, 0, 0, 164, 0, 0, 0, 0, 0,
1930 0, 0, 161, 162, 163, 164, 0, 0, 0, 0,
1931 0, 0, 0, 0, 0, 0, 0, 173, 0, 0,
1932 0, 0, 0, 0, 0, 0, 164, 0, 0, 0,
1933 0, 0, 0, 0, 0, 0, 0, 0, 173, 0,
1934 80, 295, 296, 0, 176, 0, 0, 0, 0, 173,
1935 0, 0, 0, 0, 0, 0, 0, 0, 0, -274,
1936 0, 80, 295, 296, 0, 176, 0, 0, 0, 3,
1937 173, 0, 0, 0, 0, 0, 0, 0, 0, 4,
1938 0, 0, 0, 0, 0, 0, 0, 0, 80, 295,
1939 296, 0, 176, 0, 0, 0, 0, 0, 0, 0,
1940 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,
1941 295, 296, 0, 176, 0, 0, 0, 0, 0, 0,
1942 80, 295, 296, 0, 176, 0, 0, 0, 0, 0,
1943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1944 0, 80, 295, 296, 0, 176, 13, 14, 15, 16,
1945 0, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1946 26, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1947 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1948 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1949 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1950 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1951 75, 76, 77, 78, 79, 0, 0, 0, 0, 0,
1952 0, 80, 81, 82, 83, 0, 84, 85, 86, 294,
1953 0, 0, 681, 0, 155, 156, 157, 158, 159, 160,
1954 294, 976, 0, 0, 0, 155, 156, 157, 158, 159,
1955 160, 0, 161, 162, 163, 0, 0, 0, 0, 0,
1956 0, 294, -256, 161, 162, 163, 155, 156, 157, 158,
1957 159, 160, 341, 0, 0, 0, 164, 155, 156, 157,
1958 158, 159, 160, 0, 161, 162, 163, 164, 0, 0,
1959 0, 0, 0, 639, 0, 161, 162, 163, 155, 156,
1960 157, 158, 159, 160, 0, 0, 0, 0, 164, 0,
1961 0, 0, 0, 0, 0, 0, 161, 162, 163, 164,
1962 173, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1963 0, 173, 0, 0, 0, 0, 0, 0, 0, 0,
1964 164, 641, 0, 0, 0, 0, 155, 156, 157, 158,
1965 159, 160, 173, 0, 0, 0, 0, 0, 0, 0,
1966 0, 0, 718, 173, 161, 162, 163, 719, 720, 721,
1967 722, 723, 724, 0, 0, 0, 0, 0, 0, 0,
1968 0, 0, 0, 0, 173, 161, 725, 726, 164, 0,
1969 0, 80, 295, 296, 0, 176, 0, 0, 0, 0,
1970 0, 0, 80, 295, 296, 0, 176, 0, 0, 727,
1971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1972 0, 0, 0, 80, 295, 296, 0, 176, 0, 0,
1973 0, 0, 173, 0, 80, 295, 296, 0, 176, 0,
1974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1975 0, 0, 0, 173, 0, 80, 295, 296, 0, 176,
1976 -200, -200, 4, 0, 0, 0, 0, 0, 0, 0,
1977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1978 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1979 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1980 0, 0, 0, 80, 295, 296, 0, 176, 0, 0,
1981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1982 0, 0, 0, 0, 80, 728, 729, 0, 176, 13,
1983 14, 15, 16, 0, 17, 18, 19, 20, 21, 22,
1984 23, 24, 25, 26, 0, 27, 28, 29, 30, 31,
1985 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1986 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1987 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1988 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1989 72, 73, 74, 75, 76, 77, 78, 79, 4, 0,
1990 5, 0, 0, 0, 0, 0, 136, 83, 0, 0,
1991 0, 86, 0, 0, 0, 0, 0, 0, 0, 0,
1992 0, 0, -414, -414, -414, 0, 6, 0, 0, 0,
1993 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1996 0, 0, 0, 0, 0, 13, 14, 15, 16, 0,
1997 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1998 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1999 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2000 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2001 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
2002 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2003 76, 77, 78, 79, 4, 0, 5, 0, 0, 0,
2004 0, 0, 136, 83, 0, 0, 0, 86, 0, 0,
2005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2006 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
2007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2008 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2009 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2010 0, 13, 14, 15, 16, 0, 17, 18, 19, 20,
2011 21, 22, 23, 24, 25, 26, 0, 27, 28, 29,
2012 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2013 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2014 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2015 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2016 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2017 4, 0, 0, 0, 0, 0, 80, 1089, 136, 83,
2018 0, 0, 0, 86, 0, 0, 0, 0, 0, 0,
2019 0, 0, 0, 0, -414, -414, -414, 0, 0, 0,
2020 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2021 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2023 0, 0, 0, 0, 0, 0, 0, 13, 14, 15,
2024 16, 0, 17, 18, 19, 20, 21, 22, 23, 24,
2025 25, 26, 0, 27, 28, 29, 30, 31, 32, 33,
2026 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2027 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2028 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2029 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2030 74, 75, 76, 77, 78, 79, 4, 0, 0, 0,
2031 0, 0, 0, 0, 136, 83, 0, 0, 0, 86,
2032 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2033 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2034 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2035 0, 0, 0, 0, 10, 11, 12, 0, 0, 0,
2036 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2037 0, 0, 0, 13, 14, 15, 16, 0, 17, 18,
2038 19, 20, 21, 22, 23, 24, 25, 26, 0, 27,
2039 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2040 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2041 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2042 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2043 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2044 78, 79, 4, 0, 5, 0, 0, 0, 0, 0,
2045 136, 83, 0, 0, 0, 86, 0, 0, 0, 0,
2046 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2047 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2048 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2050 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
2051 14, 15, 16, 0, 17, 18, 19, 20, 21, 22,
2052 23, 24, 25, 26, 0, 27, 28, 29, 30, 31,
2053 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2054 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2055 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
2056 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2057 72, 73, 74, 75, 76, 77, 78, 79, 4, 0,
2058 0, 0, 0, 0, 0, 0, 136, 83, 0, 0,
2059 0, 86, 0, 0, 0, 0, 0, 0, 0, 0,
2060 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2061 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2062 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2063 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2064 0, 0, 0, 0, 0, 13, 14, 15, 16, 0,
2065 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2066 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2067 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2068 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2069 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
2070 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2071 76, 77, 78, 79, 0, 0, 0, 0, 0, 0,
2072 0, 0, 136, 83, 0, 0, 0, 86
2075 static const short yycheck[] =
2077 0, 0, 455, 309, 459, 5, 120, 3, 434, 9,
2078 10, 11, 12, 130, 387, 388, 0, 542, 142, 330,
2079 397, 389, 390, 395, 396, 399, 618, 453, 924, 232,
2080 592, 398, 391, 392, 393, 394, 649, 10, 11, 12,
2081 649, 352, 649, 208, 11, 12, 27, 916, 544, 155,
2082 156, 157, 158, 159, 160, 435, 311, 10, 0, 469,
2083 951, 264, 21, 5, 649, 7, 25, 18, 817, 936,
2084 26, 56, 23, 822, 500, 693, 0, 826, 34, 653,
2085 1035, 24, 11, 12, 24, 5, 221, 87, 87, 25,
2086 26, 226, 28, 228, 34, 708, 653, 1101, 1102, 708,
2087 803, 708, 24, 87, 24, 653, 5, 21, 5, 45,
2088 829, 25, 34, 34, 34, 24, 835, 26, 21, 10,
2089 120, 683, 25, 708, 649, 24, 25, 26, 25, 553,
2090 25, 26, 128, 28, 653, 34, 50, 51, 138, 1035,
2091 1036, 26, 138, 28, 21, 87, 653, 571, 25, 149,
2092 45, 54, 55, 649, 154, 1024, 1025, 10, 19, 101,
2093 45, 5, 1053, 87, 1119, 1169, 41, 284, 594, 1124,
2094 112, 113, 172, 50, 51, 486, 602, 10, 18, 21,
2095 929, 154, 57, 708, 21, 27, 671, 18, 25, 354,
2096 111, 112, 113, 1060, 604, 1062, 138, 362, 198, 364,
2097 185, 154, 39, 777, 5, 408, 206, 24, 208, 190,
2098 210, 829, 708, 213, 1110, 470, 1112, 835, 792, 1174,
2099 777, 221, 28, 603, 341, 198, 226, 21, 228, 777,
2100 1099, 190, 935, 206, 937, 792, 955, 210, 88, 45,
2101 213, 241, 242, 696, 792, 198, 186, 187, 221, 222,
2102 21, 32, 33, 226, 221, 228, 27, 210, 777, 226,
2103 213, 228, 573, 154, 186, 187, 186, 187, 241, 242,
2104 777, 436, 649, 792, 241, 649, 649, 649, 384, 385,
2105 386, 649, 649, 283, 283, 792, 286, 287, 288, 242,
2106 649, 777, 221, 599, 429, 430, 21, 226, 24, 228,
2107 26, 154, 27, 299, 913, 24, 792, 198, 308, 308,
2108 434, 24, 241, 0, 314, 206, 1065, 802, 5, 210,
2109 805, 154, 213, 1219, 54, 55, 13, 14, 15, 453,
2110 26, 708, 50, 51, 708, 708, 708, 955, 34, 504,
2111 708, 708, 186, 187, 188, 198, 22, 191, 192, 708,
2112 26, 242, 28, 206, 354, 933, 298, 210, 936, 41,
2113 213, 24, 362, 18, 364, 198, 21, 28, 21, 45,
2114 25, 963, 25, 206, 491, 57, 500, 210, 19, 24,
2115 213, 906, 808, 489, 45, 186, 187, 188, 553, 242,
2116 191, 192, 818, 846, 367, 18, 18, 959, 1011, 21,
2117 87, 24, 1011, 5, 1011, 24, 571, 572, 408, 242,
2118 21, 34, 908, 18, 25, 102, 103, 104, 105, 106,
2119 107, 108, 109, 25, 111, 24, 1011, 114, 18, 429,
2120 430, 24, 24, 120, 26, 408, 436, 18, 438, 438,
2121 21, 34, 426, 130, 25, 132, 133, 134, 448, 37,
2122 38, 138, 26, 437, 28, 408, 429, 430, 15, 459,
2123 577, 461, 429, 430, 52, 53, 24, 154, 26, 469,
2124 594, 45, 472, 469, 161, 26, 476, 28, 602, 21,
2125 645, 646, 1060, 25, 1062, 5, 1011, 1096, 6, 7,
2126 186, 187, 188, 658, 45, 191, 192, 16, 21, 441,
2127 429, 430, 25, 16, 504, 25, 21, 624, 50, 51,
2128 25, 89, 90, 513, 514, 1011, 16, 408, 16, 21,
2129 893, 894, 639, 25, 641, 5, 903, 895, 896, 901,
2130 902, 905, 697, 101, 221, 50, 51, 904, 897, 898,
2131 899, 900, 120, 121, 24, 186, 187, 188, 42, 43,
2132 191, 192, 552, 553, 34, 408, 134, 1166, 21, 29,
2133 560, 560, 25, 186, 187, 188, 29, 22, 568, 553,
2134 21, 571, 572, 260, 25, 408, 37, 38, 22, 552,
2135 25, 26, 696, 22, 186, 187, 188, 571, 40, 191,
2136 192, 52, 53, 186, 187, 188, 283, 284, 39, 286,
2137 287, 718, 25, 26, 604, 28, 18, 294, 604, 21,
2138 916, 5, 299, 719, 720, 721, 722, 723, 724, 20,
2139 21, 308, 45, 34, 21, 21, 56, 314, 25, 25,
2140 24, 25, 26, 95, 1011, 32, 33, 1011, 1011, 1011,
2141 34, 22, 95, 1011, 1011, 645, 646, 25, 26, 649,
2142 28, 957, 1011, 34, 341, 32, 33, 657, 658, 970,
2143 660, 552, 68, 69, 70, 352, 186, 187, 188, 611,
2144 18, 191, 192, 21, 674, 1130, 676, 88, 34, 24,
2145 24, 26, 26, 679, 808, 685, 52, 53, 54, 34,
2146 34, 1144, 692, 19, 818, 695, 696, 697, 190, 552,
2147 696, 24, 182, 183, 27, 21, 186, 187, 708, 25,
2148 190, 34, 21, 24, 1020, 26, 25, 18, 22, 552,
2149 21, 37, 38, 34, 1030, 22, 21, 10, 11, 12,
2150 25, 18, 846, 24, 21, 859, 52, 53, 425, 19,
2151 0, 186, 187, 188, 1050, 5, 191, 192, 22, 9,
2152 21, 438, 18, 95, 25, 21, 24, 23, 445, 27,
2153 447, 1067, 449, 21, 22, 452, 34, 1193, 455, 21,
2154 457, 20, 459, 25, 461, 186, 187, 50, 51, 466,
2155 191, 192, 469, 21, 890, 891, 892, 25, 18, 476,
2156 95, 21, 186, 187, 188, 795, 21, 191, 192, 1105,
2157 25, 27, 1228, 24, 491, 186, 187, 188, 24, 21,
2158 191, 192, 21, 25, 54, 55, 25, 817, 34, 819,
2159 1126, 21, 822, 32, 33, 25, 826, 87, 25, 21,
2160 186, 187, 188, 25, 18, 191, 192, 37, 38, 20,
2161 21, 21, 186, 187, 188, 25, 846, 191, 192, 193,
2162 846, 21, 52, 53, 854, 25, 18, 18, 800, 21,
2163 120, 803, 21, 186, 187, 188, 25, 190, 974, 23,
2164 18, 154, 26, 560, 28, 186, 187, 188, 138, 21,
2165 191, 192, 18, 25, 24, 21, 26, 574, 28, 149,
2166 577, 23, 34, 35, 36, 69, 70, 71, 72, 73,
2167 74, 75, 76, 77, 78, 45, 593, 24, 48, 49,
2168 597, 598, 34, 35, 36, 198, 916, 604, 186, 187,
2169 188, 21, 190, 206, 924, 25, 22, 210, 21, 929,
2170 213, 21, 25, 20, 21, 25, 110, 624, 221, 18,
2171 114, 24, 116, 226, 118, 228, 21, 634, 635, 123,
2172 25, 24, 639, 26, 641, 28, 21, 25, 241, 242,
2173 25, 135, 1079, 137, 21, 25, 182, 183, 25, 21,
2174 186, 187, 45, 25, 190, 48, 49, 23, 665, 979,
2175 980, 21, 34, 35, 36, 25, 673, 18, 675, 24,
2176 21, 933, 679, 935, 936, 937, 186, 187, 188, 686,
2177 687, 191, 192, 21, 691, 179, 21, 25, 695, 696,
2178 25, 1011, 58, 59, 60, 61, 62, 63, 64, 65,
2179 66, 67, 1022, 283, 1024, 1025, 286, 287, 288, 18,
2180 1144, 718, 18, 1033, 19, 1035, 1036, 21, 1022, 21,
2181 21, 25, 21, 25, 25, 21, 25, 21, 308, 25,
2182 18, 25, 1052, 9, 314, 21, 21, 1057, 1057, 25,
2183 25, 18, 21, 21, 18, 1065, 25, 25, 11, 1193,
2184 1070, 1070, 21, 22, 1070, 1075, 24, 73, 74, 75,
2185 76, 32, 33, 1207, 80, 81, 82, 83, 84, 85,
2186 86, 112, 113, 267, 25, 11, 1096, 1097, 1098, 1099,
2187 91, 1101, 1102, 21, 1228, 34, 35, 36, 19, 24,
2188 1110, 798, 1112, 23, 19, 1115, 19, 19, 1060, 1119,
2189 1062, 1121, 1122, 27, 1124, 408, 24, 91, 302, 25,
2190 1130, 305, 21, 18, 22, 21, 11, 27, 25, 313,
2191 21, 25, 316, 25, 1144, 24, 429, 430, 58, 59,
2192 60, 61, 62, 63, 64, 65, 66, 67, 845, 846,
2193 24, 848, 24, 23, 25, 20, 1166, 1167, 1168, 1169,
2194 19, 23, 20, 19, 1174, 5, 27, 24, 438, 21,
2195 25, 19, 22, 24, 20, 20, 25, 21, 448, 18,
2196 27, 18, 25, 73, 1194, 1194, 27, 24, 21, 459,
2197 25, 461, 29, 30, 31, 32, 33, 34, 25, 469,
2198 22, 25, 472, 29, 25, 24, 476, 39, 25, 1219,
2199 47, 48, 49, 91, 56, 24, 25, 40, 91, 25,
2200 29, 30, 31, 32, 33, 34, 25, 187, 91, 18,
2201 22, 91, 25, 24, 71, 932, 20, 25, 47, 48,
2202 49, 425, 939, 513, 514, 18, 25, 21, 18, 27,
2203 190, 435, 18, 91, 40, 91, 440, 20, 23, 552,
2204 21, 445, 71, 447, 24, 18, 91, 22, 192, 20,
2205 22, 21, 21, 20, 22, 91, 194, 18, 115, 25,
2206 464, 25, 27, 40, 468, 27, 25, 20, 20, 27,
2207 560, 25, 0, 0, 314, 1187, 924, 87, 1219, 10,
2208 11, 12, 1115, 19, 20, 1014, 115, 684, 24, 1087,
2209 26, 1023, 28, 29, 30, 31, 32, 33, 34, 1052,
2210 1166, 874, 461, 823, 790, 577, 1194, 676, 674, 846,
2211 128, 47, 48, 49, 604, 695, 299, 12, 241, 350,
2212 1150, 504, 408, 699, 708, 852, 851, 1011, -1, 186,
2213 187, 188, -1, 190, -1, 71, -1, 1054, -1, -1,
2214 1057, -1, -1, 10, -1, -1, -1, -1, -1, -1,
2215 -1, -1, -1, 1070, 142, -1, 1073, 186, 187, 188,
2216 -1, 190, 1079, -1, -1, 1082, 1083, 155, 156, 157,
2217 158, 159, 160, -1, 162, 163, -1, -1, -1, 115,
2218 -1, -1, -1, -1, 674, -1, 676, -1, 592, -1,
2219 -1, -1, -1, -1, -1, 685, -1, -1, -1, 603,
2220 -1, -1, 692, -1, -1, 695, 696, -1, 1125, -1,
2221 -1, -1, -1, 1130, -1, 1132, 1133, -1, 622, -1,
2222 -1, -1, -1, 154, -1, -1, -1, 1144, -1, 10,
2223 11, 12, -1, -1, -1, -1, -1, -1, -1, -1,
2224 -1, -1, -1, -1, -1, -1, 650, -1, 652, -1,
2225 186, 187, 188, 1170, 190, 191, 192, -1, -1, -1,
2226 -1, -1, -1, 130, -1, -1, -1, 198, -1, -1,
2227 344, -1, -1, 1190, 1191, 206, -1, 1194, -1, 210,
2228 1197, -1, 213, -1, -1, 152, -1, 154, -1, -1,
2229 221, -1, -1, -1, 368, 226, -1, 228, -1, 373,
2230 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
2231 241, 242, -1, -1, -1, -1, -1, -1, -1, -1,
2232 10, 11, 12, -1, -1, -1, 730, 817, -1, 819,
2233 404, 198, 822, -1, -1, -1, 826, -1, -1, 206,
2234 -1, -1, -1, 210, -1, -1, 213, -1, -1, -1,
2235 -1, -1, -1, -1, 221, -1, 846, -1, -1, -1,
2236 -1, -1, -1, -1, 854, -1, -1, -1, -1, -1,
2237 -1, -1, -1, 154, -1, 242, -1, -1, -1, -1,
2238 -1, 785, 786, -1, -1, -1, -1, -1, -1, -1,
2239 -1, -1, -1, -1, -1, -1, 384, 385, 386, 387,
2240 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
2241 398, 399, -1, -1, -1, -1, -1, 198, -1, -1,
2242 -1, -1, -1, -1, 828, 206, -1, 294, -1, 210,
2243 -1, -1, 213, -1, 10, 11, 12, -1, -1, 929,
2244 221, -1, -1, -1, -1, 226, 434, 228, -1, -1,
2245 -1, -1, -1, -1, 321, 322, 323, 324, -1, -1,
2246 241, 242, -1, -1, 154, 453, -1, -1, 10, 11,
2247 12, -1, -1, -1, 341, -1, -1, 408, -1, -1,
2248 -1, -1, -1, -1, -1, 352, -1, -1, -1, 979,
2249 980, -1, -1, -1, -1, -1, -1, -1, 429, 430,
2250 -1, 489, 369, -1, -1, -1, -1, -1, 198, -1,
2251 -1, -1, 500, -1, -1, -1, 206, -1, -1, -1,
2252 210, -1, -1, 213, -1, -1, -1, -1, 932, -1,
2253 -1, 221, -1, -1, -1, -1, 226, -1, 228, -1,
2254 -1, 408, -1, -1, -1, -1, 620, -1, -1, 416,
2255 -1, 241, 242, -1, 542, 959, 544, 631, 546, 547,
2256 -1, -1, -1, -1, -1, -1, -1, 1057, -1, -1,
2257 -1, -1, -1, -1, -1, 1065, -1, -1, 154, -1,
2258 1070, -1, -1, -1, -1, 1075, -1, 19, -1, -1,
2259 -1, -1, 24, -1, 26, -1, 28, 29, 30, 31,
2260 32, 33, 34, -1, -1, -1, 594, 1097, 1098, -1,
2261 -1, 685, 154, -1, 602, 47, 48, 49, -1, -1,
2262 -1, 552, 198, -1, -1, 699, -1, 408, -1, -1,
2263 206, 1121, 1122, -1, 210, -1, -1, 213, -1, 71,
2264 1130, -1, -1, -1, -1, 221, -1, -1, 429, 430,
2265 226, 1055, 228, -1, 1144, -1, 198, -1, -1, -1,
2266 -1, 649, -1, -1, 206, 241, 242, -1, 210, -1,
2267 -1, 213, -1, -1, -1, -1, 543, 1167, 1168, 221,
2268 -1, -1, 24, 115, 226, 552, 228, 29, 30, 31,
2269 32, 33, 34, -1, -1, -1, -1, -1, -1, 241,
2270 242, -1, -1, -1, 1194, 47, 48, 49, -1, -1,
2271 -1, -1, -1, -1, -1, -1, -1, -1, 408, -1,
2272 708, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2273 1134, 719, 720, 721, 722, 723, 724, 725, 726, 429,
2274 430, -1, -1, 817, -1, -1, -1, -1, 822, -1,
2275 -1, 618, 826, -1, 186, 187, 188, -1, 190, 191,
2276 192, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2277 -1, 552, 639, 115, 641, -1, -1, -1, 852, -1,
2278 647, -1, -1, -1, 651, -1, -1, -1, -1, -1,
2279 -1, -1, -1, -1, -1, -1, -1, -1, -1, 873,
2280 874, -1, -1, -1, -1, 879, 880, 881, 882, 883,
2281 884, 885, 886, 887, 888, 889, -1, -1, -1, -1,
2282 808, -1, 1226, -1, -1, -1, -1, -1, -1, -1,
2283 818, -1, 408, -1, -1, -1, -1, -1, -1, -1,
2284 707, -1, -1, -1, 186, 187, 188, -1, 190, -1,
2285 -1, 718, -1, 429, 430, 929, -1, -1, -1, -1,
2286 -1, -1, 552, -1, -1, -1, 408, -1, -1, -1,
2287 -1, 859, -1, -1, -1, -1, -1, -1, -1, -1,
2288 -1, -1, -1, -1, -1, -1, -1, 429, 430, -1,
2289 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2290 -1, -1, 890, 891, 892, 893, 894, 895, 896, 897,
2291 898, 899, 900, 901, 902, 903, 904, 905, 906, -1,
2292 908, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2293 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2294 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2295 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2296 -1, -1, -1, 47, 48, 49, -1, -1, -1, -1,
2297 -1, -1, -1, -1, -1, -1, 552, -1, -1, -1,
2298 -1, -1, -1, -1, -1, -1, 974, 71, -1, -1,
2299 -1, 1065, -1, -1, -1, -1, -1, -1, -1, -1,
2300 -1, -1, -1, -1, -1, -1, -1, -1, 875, -1,
2301 552, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2302 -1, -1, -1, 1011, -1, -1, 110, 1, -1, -1,
2303 -1, 115, 6, 7, 8, -1, 10, 11, 12, 13,
2304 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2305 24, -1, 26, -1, 28, 29, 30, 31, 32, 33,
2306 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2307 -1, 45, -1, 47, 48, 49, 50, 51, 52, 53,
2308 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2309 64, 65, 66, 67, -1, -1, 963, 71, -1, -1,
2310 -1, -1, 186, 187, 188, -1, 190, 191, 192, -1,
2311 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2312 -1, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2313 -1, 0, 1, -1, -1, -1, 110, -1, -1, -1,
2314 -1, 115, 1009, -1, -1, -1, -1, -1, -1, 18,
2315 -1, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2316 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
2317 -1, -1, -1, -1, -1, 44, -1, 46, -1, -1,
2318 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2319 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
2320 69, 70, -1, 72, -1, 1193, -1, 1074, 77, 78,
2321 79, -1, 186, 187, 188, -1, 190, 191, 192, 1207,
2322 -1, -1, -1, 92, 93, 94, -1, -1, -1, -1,
2323 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2324 1228, -1, 111, 112, 113, 114, -1, 116, 117, 118,
2325 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
2326 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2327 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2328 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2329 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2330 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2331 179, 0, 1, -1, -1, -1, -1, 186, 187, 188,
2332 189, -1, 191, 192, 193, -1, -1, -1, -1, 18,
2333 -1, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2334 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
2335 -1, -1, -1, -1, -1, 44, -1, 46, -1, -1,
2336 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2337 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
2338 69, 70, -1, 72, -1, -1, -1, -1, 77, 78,
2339 79, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2340 -1, -1, -1, 92, 93, 94, -1, -1, -1, -1,
2341 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2342 -1, -1, 111, 112, 113, 114, -1, 116, 117, 118,
2343 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
2344 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2345 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2346 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2347 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2348 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2349 179, -1, -1, -1, -1, -1, -1, 186, 187, 188,
2350 189, 1, 191, 192, 193, -1, 6, 7, 8, -1,
2351 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2352 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2353 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2354 -1, -1, 42, 43, 44, -1, 46, 47, 48, 49,
2355 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2356 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
2357 70, 71, 72, -1, -1, -1, -1, -1, -1, -1,
2358 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2359 -1, -1, -1, -1, -1, -1, 96, 97, 98, 99,
2360 100, 101, -1, -1, -1, -1, -1, -1, -1, -1,
2361 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2362 120, 121, 122, 123, 124, 125, -1, 127, 128, 129,
2363 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2364 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2365 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2366 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2367 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2368 -1, -1, -1, -1, -1, -1, 186, 187, 188, 189,
2369 190, 191, 192, 193, 1, -1, -1, -1, -1, 6,
2370 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2371 17, 18, 19, -1, -1, -1, -1, 24, -1, -1,
2372 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2373 -1, -1, -1, -1, -1, 42, 43, 44, -1, -1,
2374 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
2375 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2376 -1, 68, 69, 70, 71, -1, -1, -1, -1, -1,
2377 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2378 -1, -1, -1, -1, -1, -1, -1, -1, -1, 96,
2379 97, 98, 99, 100, 101, -1, -1, -1, -1, -1,
2380 -1, -1, -1, 110, 111, 112, 113, 114, 115, 116,
2381 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
2382 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2383 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2384 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2385 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2386 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2387 177, 178, 179, -1, -1, -1, -1, -1, -1, 186,
2388 187, 188, 189, 190, 191, 192, 193, 1, -1, -1,
2389 -1, -1, 6, 7, 8, -1, -1, 11, 12, 13,
2390 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2391 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2392 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
2393 44, -1, -1, 47, 48, 49, -1, -1, -1, -1,
2394 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2395 -1, -1, -1, -1, 68, 69, 70, 71, -1, -1,
2396 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2397 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2398 -1, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2399 -1, -1, -1, -1, -1, -1, 110, 111, 112, 113,
2400 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2401 124, 125, -1, 127, 128, 129, 130, 131, 132, 133,
2402 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2403 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2404 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2405 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2406 174, 175, 176, 177, 178, 179, -1, -1, -1, -1,
2407 -1, -1, 186, 187, 188, 189, 190, 191, 192, 193,
2408 1, -1, -1, -1, -1, 6, 7, 8, -1, -1,
2409 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2410 -1, -1, -1, 24, 25, -1, -1, -1, 29, 30,
2411 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2412 -1, 42, 43, -1, -1, 1, 47, 48, 49, -1,
2413 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2414 16, 17, 18, 19, -1, -1, -1, -1, 24, -1,
2415 71, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2416 -1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
2417 -1, 47, 48, 49, 95, 96, 97, 98, 99, 100,
2418 101, -1, -1, -1, -1, -1, -1, -1, -1, 110,
2419 -1, -1, -1, -1, 115, 71, -1, -1, -1, -1,
2420 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2421 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
2422 96, 97, 98, 99, 100, 101, -1, -1, -1, -1,
2423 -1, 1, -1, -1, 110, -1, 6, 7, 8, 115,
2424 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2425 -1, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2426 30, 31, 32, 33, 34, 186, 187, 188, -1, 190,
2427 191, 192, 42, 43, -1, -1, 1, 47, 48, 49,
2428 -1, 6, 7, 8, -1, -1, 11, 12, 13, 14,
2429 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2430 -1, 71, -1, -1, 29, 30, 31, 32, 33, 34,
2431 186, 187, 188, -1, 190, 191, 192, 42, 43, -1,
2432 -1, -1, 47, 48, 49, 95, 96, 97, 98, 99,
2433 100, 101, -1, -1, -1, -1, -1, -1, -1, -1,
2434 110, -1, -1, -1, -1, 115, 71, -1, -1, -1,
2435 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2436 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2437 95, 96, 97, 98, 99, 100, 101, -1, -1, -1,
2438 -1, -1, 1, -1, -1, 110, -1, 6, 7, 8,
2439 115, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2440 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2441 29, 30, 31, 32, 33, 34, 186, 187, 188, -1,
2442 190, 191, 192, 42, 43, -1, -1, 1, 47, 48,
2443 49, -1, 6, 7, 8, -1, -1, 11, 12, 13,
2444 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2445 24, -1, 71, -1, -1, 29, 30, 31, 32, 33,
2446 34, 186, 187, 188, -1, 190, 191, 192, 42, 43,
2447 -1, -1, -1, 47, 48, 49, -1, 96, 97, 98,
2448 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
2449 -1, 110, -1, -1, -1, -1, 115, 71, -1, -1,
2450 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2451 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2452 -1, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2453 -1, -1, -1, 1, -1, -1, 110, -1, 6, 7,
2454 8, 115, 10, 11, 12, 13, 14, 15, 16, 17,
2455 18, 19, -1, -1, -1, -1, 24, -1, -1, -1,
2456 -1, 29, 30, 31, 32, 33, 34, 186, 187, 188,
2457 -1, 190, 191, 192, 42, 43, -1, -1, -1, 47,
2458 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2459 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2460 -1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2461 -1, -1, 186, 187, 188, -1, 190, 191, 192, -1,
2462 -1, -1, -1, -1, -1, -1, -1, -1, 96, 97,
2463 98, 99, 100, 101, -1, -1, -1, -1, -1, -1,
2464 -1, -1, 110, -1, 6, 7, 8, 115, 10, 11,
2465 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2466 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2467 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2468 42, 43, 44, -1, 46, 47, 48, 49, -1, -1,
2469 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2470 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2471 72, -1, -1, -1, -1, -1, -1, -1, 186, 187,
2472 188, -1, 190, 191, 192, -1, -1, -1, -1, -1,
2473 -1, -1, -1, -1, 96, 97, 98, 99, 100, 101,
2474 -1, -1, -1, -1, -1, -1, -1, -1, 110, 111,
2475 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2476 122, 123, 124, 125, -1, 127, 128, 129, 130, 131,
2477 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2478 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2479 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2480 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2481 172, 173, 174, 175, 176, 177, 178, 179, -1, -1,
2482 -1, -1, -1, -1, 186, 187, 188, 189, 190, 191,
2483 192, 193, 6, 7, 8, -1, 10, 11, 12, 13,
2484 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2485 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2486 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
2487 44, -1, 46, 47, 48, 49, -1, -1, -1, -1,
2488 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2489 -1, -1, -1, -1, -1, -1, -1, 71, 72, -1,
2490 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2491 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2492 -1, -1, 96, 97, 98, 99, 100, 101, -1, -1,
2493 -1, -1, -1, -1, -1, -1, 110, 111, 112, 113,
2494 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2495 124, 125, -1, 127, 128, 129, 130, 131, 132, 133,
2496 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2497 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2498 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2499 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2500 174, 175, 176, 177, 178, 179, -1, -1, -1, -1,
2501 -1, -1, 186, 187, 188, 189, 190, 191, 192, 193,
2502 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2503 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2504 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2505 -1, -1, -1, -1, -1, -1, 42, 43, 44, -1,
2506 46, 47, 48, 49, -1, -1, -1, -1, -1, -1,
2507 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2508 -1, -1, -1, -1, -1, 71, 72, -1, -1, -1,
2509 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2510 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2511 96, 97, 98, 99, 100, 101, -1, -1, -1, -1,
2512 -1, -1, -1, -1, 110, 111, 112, 113, 114, 115,
2513 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2514 -1, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2515 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2516 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2517 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2518 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2519 176, 177, 178, 179, -1, -1, -1, -1, -1, -1,
2520 186, 187, 188, 189, 190, 191, 192, 193, 6, 7,
2521 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2522 18, 19, 20, -1, -1, -1, 24, -1, -1, -1,
2523 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2524 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
2525 48, 49, -1, 6, 7, 8, -1, 10, 11, 12,
2526 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2527 -1, 24, -1, 71, -1, -1, 29, 30, 31, 32,
2528 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2529 -1, -1, -1, -1, 47, 48, 49, -1, 96, 97,
2530 98, 99, 100, 101, -1, -1, -1, -1, -1, -1,
2531 -1, -1, 110, -1, -1, -1, -1, 115, 71, -1,
2532 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2533 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2534 -1, -1, -1, 96, 97, 98, 99, 100, 101, -1,
2535 -1, -1, -1, -1, -1, -1, -1, 110, -1, 6,
2536 7, 8, 115, 10, 11, 12, 13, 14, 15, 16,
2537 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2538 -1, -1, 29, 30, 31, 32, 33, 34, 186, 187,
2539 188, -1, 190, 191, 192, -1, -1, -1, -1, -1,
2540 47, 48, 49, -1, 6, 7, 8, -1, 10, 11,
2541 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2542 -1, -1, 24, -1, 71, -1, -1, 29, 30, 31,
2543 32, 33, 34, 186, 187, 188, -1, 190, 191, 192,
2544 -1, -1, -1, -1, -1, 47, 48, 49, -1, 96,
2545 97, 98, 99, 100, 101, -1, -1, -1, -1, -1,
2546 -1, -1, -1, 110, -1, -1, -1, -1, 115, 71,
2547 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2548 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2549 -1, -1, -1, -1, 96, 97, 98, 99, 100, 101,
2550 -1, -1, -1, -1, -1, -1, -1, -1, 110, -1,
2551 6, 7, 8, 115, 10, 11, 12, 13, 14, 15,
2552 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2553 -1, -1, -1, 29, 30, 31, 32, 33, 34, 186,
2554 187, 188, -1, 190, 191, 192, -1, -1, -1, -1,
2555 -1, 47, 48, 49, -1, 6, 7, 8, -1, 10,
2556 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2557 -1, -1, -1, 24, -1, 71, -1, -1, 29, 30,
2558 31, 32, 33, 34, 186, 187, 188, -1, 190, 191,
2559 192, -1, -1, -1, -1, -1, 47, 48, 49, -1,
2560 96, 97, 98, 99, 100, 101, -1, -1, -1, -1,
2561 -1, -1, -1, -1, 110, -1, -1, -1, -1, 115,
2562 71, -1, 18, -1, -1, -1, -1, -1, 24, -1,
2563 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2564 -1, -1, -1, -1, -1, 96, 97, 98, 99, 100,
2565 101, 47, 48, 49, -1, -1, -1, -1, -1, 110,
2566 -1, 6, 7, 8, 115, 10, 11, 12, 13, 14,
2567 15, 16, 17, 18, 19, 71, -1, -1, -1, 24,
2568 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2569 186, 187, 188, -1, 190, 191, 192, -1, -1, -1,
2570 -1, -1, 47, 48, 49, -1, -1, -1, -1, -1,
2571 122, 123, 124, 125, -1, 127, -1, -1, -1, 115,
2572 132, 133, -1, -1, 136, 137, 71, 139, 140, 141,
2573 142, -1, -1, -1, -1, 186, 187, 188, -1, 190,
2574 191, 192, 154, 155, -1, -1, -1, -1, -1, -1,
2575 -1, 96, 97, 98, 99, 100, 101, 19, -1, -1,
2576 -1, -1, 24, -1, -1, 110, -1, 179, -1, -1,
2577 115, -1, -1, -1, -1, -1, -1, 189, -1, -1,
2578 -1, -1, 44, -1, 46, -1, -1, -1, -1, -1,
2579 186, 187, 188, -1, 190, -1, -1, -1, -1, -1,
2580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2581 72, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2583 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2584 -1, 186, 187, 188, -1, 190, 191, 192, -1, 111,
2585 112, 113, 114, -1, 116, 117, 118, 119, 120, 121,
2586 122, 123, 124, 125, -1, 127, 128, 129, 130, 131,
2587 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2588 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2589 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2590 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2591 172, 173, 174, 175, 176, 177, 178, 179, 20, -1,
2592 -1, -1, -1, -1, -1, -1, 188, 189, -1, -1,
2593 -1, 193, -1, -1, -1, -1, -1, -1, -1, -1,
2594 -1, -1, 44, -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, -1,
2597 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2598 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2599 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2600 -1, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2601 112, 113, 114, -1, 116, 117, 118, 119, 120, 121,
2602 122, 123, 124, 125, -1, 127, 128, 129, 130, 131,
2603 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2604 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2605 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2606 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2607 172, 173, 174, 175, 176, 177, 178, 179, -1, -1,
2608 -1, -1, -1, 19, 20, -1, 188, 189, 24, -1,
2609 -1, 193, -1, 29, 30, 31, 32, 33, 34, -1,
2610 -1, -1, -1, -1, 19, -1, -1, -1, -1, 24,
2611 -1, 47, 48, 49, 29, 30, 31, 32, 33, 34,
2612 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2613 -1, 19, 47, 48, 49, 71, 24, -1, -1, -1,
2614 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2615 -1, -1, 19, -1, -1, -1, 71, 24, -1, 47,
2616 48, 49, 29, 30, 31, 32, 33, 34, 24, -1,
2617 -1, 27, -1, 29, 30, 31, 32, 33, 34, 115,
2618 47, 48, 49, 71, 19, -1, -1, -1, -1, 24,
2619 -1, 47, 48, 49, 29, 30, 31, 32, 33, 34,
2620 115, -1, -1, -1, 71, -1, -1, -1, -1, -1,
2621 -1, -1, 47, 48, 49, 71, -1, -1, -1, -1,
2622 -1, -1, -1, -1, -1, -1, -1, 115, -1, -1,
2623 -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
2624 -1, -1, -1, -1, -1, -1, -1, -1, 115, -1,
2625 186, 187, 188, -1, 190, -1, -1, -1, -1, 115,
2626 -1, -1, -1, -1, -1, -1, -1, -1, -1, 24,
2627 -1, 186, 187, 188, -1, 190, -1, -1, -1, 34,
2628 115, -1, -1, -1, -1, -1, -1, -1, -1, 44,
2629 -1, -1, -1, -1, -1, -1, -1, -1, 186, 187,
2630 188, -1, 190, -1, -1, -1, -1, -1, -1, -1,
2631 -1, -1, -1, -1, -1, -1, -1, -1, -1, 186,
2632 187, 188, -1, 190, -1, -1, -1, -1, -1, -1,
2633 186, 187, 188, -1, 190, -1, -1, -1, -1, -1,
2634 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2635 -1, 186, 187, 188, -1, 190, 111, 112, 113, 114,
2636 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2637 125, -1, 127, 128, 129, 130, 131, 132, 133, 134,
2638 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2639 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2640 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2641 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2642 175, 176, 177, 178, 179, -1, -1, -1, -1, -1,
2643 -1, 186, 187, 188, 189, -1, 191, 192, 193, 24,
2644 -1, -1, 27, -1, 29, 30, 31, 32, 33, 34,
2645 24, 25, -1, -1, -1, 29, 30, 31, 32, 33,
2646 34, -1, 47, 48, 49, -1, -1, -1, -1, -1,
2647 -1, 24, 25, 47, 48, 49, 29, 30, 31, 32,
2648 33, 34, 24, -1, -1, -1, 71, 29, 30, 31,
2649 32, 33, 34, -1, 47, 48, 49, 71, -1, -1,
2650 -1, -1, -1, 24, -1, 47, 48, 49, 29, 30,
2651 31, 32, 33, 34, -1, -1, -1, -1, 71, -1,
2652 -1, -1, -1, -1, -1, -1, 47, 48, 49, 71,
2653 115, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2654 -1, 115, -1, -1, -1, -1, -1, -1, -1, -1,
2655 71, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2656 33, 34, 115, -1, -1, -1, -1, -1, -1, -1,
2657 -1, -1, 24, 115, 47, 48, 49, 29, 30, 31,
2658 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2659 -1, -1, -1, -1, 115, 47, 48, 49, 71, -1,
2660 -1, 186, 187, 188, -1, 190, -1, -1, -1, -1,
2661 -1, -1, 186, 187, 188, -1, 190, -1, -1, 71,
2662 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2663 -1, -1, -1, 186, 187, 188, -1, 190, -1, -1,
2664 -1, -1, 115, -1, 186, 187, 188, -1, 190, -1,
2665 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2666 -1, -1, -1, 115, -1, 186, 187, 188, -1, 190,
2667 42, 43, 44, -1, -1, -1, -1, -1, -1, -1,
2668 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2669 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2671 -1, -1, -1, 186, 187, 188, -1, 190, -1, -1,
2672 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2673 -1, -1, -1, -1, 186, 187, 188, -1, 190, 111,
2674 112, 113, 114, -1, 116, 117, 118, 119, 120, 121,
2675 122, 123, 124, 125, -1, 127, 128, 129, 130, 131,
2676 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2677 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2678 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2679 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2680 172, 173, 174, 175, 176, 177, 178, 179, 44, -1,
2681 46, -1, -1, -1, -1, -1, 188, 189, -1, -1,
2682 -1, 193, -1, -1, -1, -1, -1, -1, -1, -1,
2683 -1, -1, 68, 69, 70, -1, 72, -1, -1, -1,
2684 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2685 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2686 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2687 -1, -1, -1, -1, -1, 111, 112, 113, 114, -1,
2688 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2689 -1, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2690 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2691 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2692 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2693 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2694 176, 177, 178, 179, 44, -1, 46, -1, -1, -1,
2695 -1, -1, 188, 189, -1, -1, -1, 193, -1, -1,
2696 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2697 -1, -1, 72, -1, -1, -1, -1, -1, -1, -1,
2698 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2699 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2700 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2701 -1, 111, 112, 113, 114, -1, 116, 117, 118, 119,
2702 120, 121, 122, 123, 124, 125, -1, 127, 128, 129,
2703 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2704 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2705 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2706 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2707 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2708 44, -1, -1, -1, -1, -1, 186, 187, 188, 189,
2709 -1, -1, -1, 193, -1, -1, -1, -1, -1, -1,
2710 -1, -1, -1, -1, 68, 69, 70, -1, -1, -1,
2711 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2712 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2713 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2714 -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
2715 114, -1, 116, 117, 118, 119, 120, 121, 122, 123,
2716 124, 125, -1, 127, 128, 129, 130, 131, 132, 133,
2717 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2718 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2719 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2720 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2721 174, 175, 176, 177, 178, 179, 44, -1, -1, -1,
2722 -1, -1, -1, -1, 188, 189, -1, -1, -1, 193,
2723 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2724 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2725 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2726 -1, -1, -1, -1, 92, 93, 94, -1, -1, -1,
2727 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2728 -1, -1, -1, 111, 112, 113, 114, -1, 116, 117,
2729 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
2730 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2731 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2732 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2733 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2734 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2735 178, 179, 44, -1, 46, -1, -1, -1, -1, -1,
2736 188, 189, -1, -1, -1, 193, -1, -1, -1, -1,
2737 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2738 72, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2739 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2740 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2741 -1, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2742 112, 113, 114, -1, 116, 117, 118, 119, 120, 121,
2743 122, 123, 124, 125, -1, 127, 128, 129, 130, 131,
2744 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2745 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2746 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2747 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2748 172, 173, 174, 175, 176, 177, 178, 179, 44, -1,
2749 -1, -1, -1, -1, -1, -1, 188, 189, -1, -1,
2750 -1, 193, -1, -1, -1, -1, -1, -1, -1, -1,
2751 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2752 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2753 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2754 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2755 -1, -1, -1, -1, -1, 111, 112, 113, 114, -1,
2756 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2757 -1, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2758 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2759 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2760 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2761 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2762 176, 177, 178, 179, -1, -1, -1, -1, -1, -1,
2763 -1, -1, 188, 189, -1, -1, -1, 193
2765 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2767 /* Skeleton output parser for bison,
2769 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
2772 This program is free software; you can redistribute it and/or modify
2773 it under the terms of the GNU General Public License as published by
2774 the Free Software Foundation; either version 2, or (at your option)
2777 This program is distributed in the hope that it will be useful,
2778 but WITHOUT ANY WARRANTY; without even the implied warranty of
2779 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2780 GNU General Public License for more details.
2782 You should have received a copy of the GNU General Public License
2783 along with this program; if not, write to the Free Software
2784 Foundation, Inc., 59 Temple Place - Suite 330,
2785 Boston, MA 02111-1307, USA. */
2787 /* As a special exception, when this file is copied by Bison into a
2788 Bison output file, you may use that output file without restriction.
2789 This special exception was added by the Free Software Foundation
2790 in version 1.24 of Bison. */
2792 /* This is the parser code that is written into each bison parser when
2793 the %semantic_parser declaration is not specified in the grammar.
2794 It was written by Richard Stallman by simplifying the hairy parser
2795 used when %semantic_parser is specified. */
2797 /* All symbols defined below should begin with yy or YY, to avoid
2798 infringing on user name space. This should be done even for local
2799 variables, as they might otherwise be expanded by user macros.
2800 There are some unavoidable exceptions within include files to
2801 define necessary library symbols; they are noted "INFRINGES ON
2802 USER NAME SPACE" below. */
2804 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
2806 /* The parser invokes alloca or malloc; define the necessary symbols. */
2808 # if YYSTACK_USE_ALLOCA
2809 # define YYSTACK_ALLOC alloca
2811 # ifndef YYSTACK_USE_ALLOCA
2812 # if defined (alloca) || defined (_ALLOCA_H)
2813 # define YYSTACK_ALLOC alloca
2816 # define YYSTACK_ALLOC __builtin_alloca
2822 # ifdef YYSTACK_ALLOC
2823 /* Pacify GCC's `empty if-body' warning. */
2824 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
2826 # if defined (__STDC__) || defined (__cplusplus)
2827 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
2828 # define YYSIZE_T size_t
2830 # define YYSTACK_ALLOC malloc
2831 # define YYSTACK_FREE free
2833 #endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
2836 #if (! defined (yyoverflow) \
2837 && (! defined (__cplusplus) \
2838 || (YYLTYPE_IS_TRIVIAL && cgrammar_YYSTYPE_IS_TRIVIAL)))
2840 /* A type that is properly aligned for any stack member. */
2844 cgrammar_YYSTYPE yyvs;
2850 /* The size of the maximum gap between one aligned stack and the next. */
2851 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
2853 /* The size of an array large to enough to hold all stacks, each with
2856 # define YYSTACK_BYTES(N) \
2857 ((N) * (sizeof (short) + sizeof (cgrammar_YYSTYPE) + sizeof (YYLTYPE)) \
2858 + 2 * YYSTACK_GAP_MAX)
2860 # define YYSTACK_BYTES(N) \
2861 ((N) * (sizeof (short) + sizeof (cgrammar_YYSTYPE)) \
2865 /* Copy COUNT objects from FROM to TO. The source and destination do
2869 # define YYCOPY(To, From, Count) \
2870 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
2872 # define YYCOPY(To, From, Count) \
2875 register YYSIZE_T yyi; \
2876 for (yyi = 0; yyi < (Count); yyi++) \
2877 (To)[yyi] = (From)[yyi]; \
2883 /* Relocate STACK from its old location to the new one. The
2884 local variables YYSIZE and YYSTACKSIZE give the old and new number of
2885 elements in the stack, and YYPTR gives the new location of the
2886 stack. Advance YYPTR to a properly aligned location for the next
2888 # define YYSTACK_RELOCATE(Stack) \
2891 YYSIZE_T yynewbytes; \
2892 YYCOPY (&yyptr->Stack, Stack, yysize); \
2893 Stack = &yyptr->Stack; \
2894 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
2895 yyptr += yynewbytes / sizeof (*yyptr); \
2902 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
2903 # define YYSIZE_T __SIZE_TYPE__
2905 #if ! defined (YYSIZE_T) && defined (size_t)
2906 # define YYSIZE_T size_t
2908 #if ! defined (YYSIZE_T)
2909 # if defined (__STDC__) || defined (__cplusplus)
2910 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
2911 # define YYSIZE_T size_t
2914 #if ! defined (YYSIZE_T)
2915 # define YYSIZE_T unsigned int
2918 #define yyerrok (yyerrstatus = 0)
2919 #define yyclearin (yychar = YYEMPTY)
2922 #define YYACCEPT goto yyacceptlab
2923 #define YYABORT goto yyabortlab
2924 #define YYERROR goto yyerrlab1
2925 /* Like YYERROR except do call yyerror. This remains here temporarily
2926 to ease the transition to the new meaning of YYERROR, for GCC.
2927 Once GCC version 2 has supplanted version 1, this can go. */
2928 #define YYFAIL goto yyerrlab
2929 #define YYRECOVERING() (!!yyerrstatus)
2930 #define YYBACKUP(Token, Value) \
2932 if (yychar == YYEMPTY && yylen == 1) \
2936 yychar1 = YYTRANSLATE (yychar); \
2942 yyerror ("syntax error: cannot back up"); \
2948 #define YYERRCODE 256
2951 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
2954 When YYLLOC_DEFAULT is run, CURRENT is set the location of the
2955 first token. By default, to implement support for ranges, extend
2956 its range to the last symbol. */
2958 #ifndef YYLLOC_DEFAULT
2959 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2960 Current.last_line = Rhs[N].last_line; \
2961 Current.last_column = Rhs[N].last_column;
2965 /* YYLEX -- calling `yylex' with the right arguments. */
2970 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
2972 # define YYLEX yylex (&yylval, &yylloc)
2974 # else /* !YYLSP_NEEDED */
2976 # define YYLEX yylex (&yylval, YYLEX_PARAM)
2978 # define YYLEX yylex (&yylval)
2980 # endif /* !YYLSP_NEEDED */
2982 # define YYLEX yylex ()
2983 #endif /* !YYPURE */
2986 /* Enable debugging if requested. */
2990 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2991 # define YYFPRINTF fprintf
2994 # define YYDPRINTF(Args) \
2999 /* Nonzero means print parse trace. It is left uninitialized so that
3000 multiple parsers can coexist. */
3002 #else /* !YYDEBUG */
3003 # define YYDPRINTF(Args)
3004 #endif /* !YYDEBUG */
3006 /* YYINITDEPTH -- initial size of the parser's stacks. */
3008 # define YYINITDEPTH 200
3011 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3012 if the built-in stack extension method is used).
3014 Do not make this value too large; the results are undefined if
3015 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
3016 evaluated with infinite-precision integer arithmetic. */
3023 # define YYMAXDEPTH 10000
3026 #ifdef YYERROR_VERBOSE
3029 # if defined (__GLIBC__) && defined (_STRING_H)
3030 # define yystrlen strlen
3032 /* Return the length of YYSTR. */
3034 # if defined (__STDC__) || defined (__cplusplus)
3035 yystrlen (const char *yystr)
3041 register const char *yys = yystr;
3043 while (*yys++ != '\0')
3046 return yys - yystr - 1;
3052 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
3053 # define yystpcpy stpcpy
3055 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3058 # if defined (__STDC__) || defined (__cplusplus)
3059 yystpcpy (char *yydest, const char *yysrc)
3061 yystpcpy (yydest, yysrc)
3066 register char *yyd = yydest;
3067 register const char *yys = yysrc;
3069 while ((*yyd++ = *yys++) != '\0')
3080 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
3081 into yyparse. The argument should have type void *.
3082 It should actually point to an object.
3083 Grammar actions can access the variable by casting it
3084 to the proper pointer type. */
3086 #ifdef YYPARSE_PARAM
3087 # if defined (__STDC__) || defined (__cplusplus)
3088 # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
3089 # define YYPARSE_PARAM_DECL
3091 # define YYPARSE_PARAM_ARG YYPARSE_PARAM
3092 # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
3094 #else /* !YYPARSE_PARAM */
3095 # define YYPARSE_PARAM_ARG
3096 # define YYPARSE_PARAM_DECL
3097 #endif /* !YYPARSE_PARAM */
3099 /* Prevent warning if -Wstrict-prototypes. */
3101 # ifdef YYPARSE_PARAM
3102 int yyparse (void *);
3108 /* YY_DECL_VARIABLES -- depending whether we use a pure parser,
3109 variables are global, or local to YYPARSE. */
3111 #define YY_DECL_NON_LSP_VARIABLES \
3112 /* The lookahead symbol. */ \
3115 /* The semantic value of the lookahead symbol. */ \
3116 cgrammar_YYSTYPE yylval; \
3118 /* Number of parse errors so far. */ \
3122 # define YY_DECL_VARIABLES \
3123 YY_DECL_NON_LSP_VARIABLES \
3125 /* Location data for the lookahead symbol. */ \
3128 # define YY_DECL_VARIABLES \
3129 YY_DECL_NON_LSP_VARIABLES
3133 /* If nonreentrant, generate the variables here. */
3137 #endif /* !YYPURE */
3140 yyparse (YYPARSE_PARAM_ARG)
3143 /* If reentrant, generate the variables here. */
3146 #endif /* !YYPURE */
3148 register int yystate;
3151 /* Number of tokens to shift before error messages enabled. */
3153 /* Lookahead token as an internal (translated) token number. */
3156 /* Three stacks and their tools:
3157 `yyss': related to states,
3158 `yyvs': related to semantic values,
3159 `yyls': related to locations.
3161 Refer to the stacks thru separate pointers, to allow yyoverflow
3162 to reallocate them elsewhere. */
3164 /* The state stack. */
3165 short yyssa[YYINITDEPTH];
3166 short *yyss = yyssa;
3167 register short *yyssp;
3169 /* The semantic value stack. */
3170 cgrammar_YYSTYPE yyvsa[YYINITDEPTH];
3171 cgrammar_YYSTYPE *yyvs = yyvsa;
3172 register cgrammar_YYSTYPE *yyvsp;
3175 /* The location stack. */
3176 YYLTYPE yylsa[YYINITDEPTH];
3177 YYLTYPE *yyls = yylsa;
3182 # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
3184 # define YYPOPSTACK (yyvsp--, yyssp--)
3187 YYSIZE_T yystacksize = YYINITDEPTH;
3190 /* The variables used to return semantic value and location from the
3192 cgrammar_YYSTYPE yyval;
3197 /* When reducing, the number of symbols on the RHS of the reduced
3201 YYDPRINTF ((stderr, "Starting parse\n"));
3206 yychar = YYEMPTY; /* Cause a token to be read. */
3208 /* Initialize stack pointers.
3209 Waste one element of value and location stack
3210 so that they stay on the same level as the state stack.
3211 The wasted elements are never initialized. */
3220 /*------------------------------------------------------------.
3221 | yynewstate -- Push a new state, which is found in yystate. |
3222 `------------------------------------------------------------*/
3224 /* In all cases, when you get here, the value and location stacks
3225 have just been pushed. so pushing a state here evens the stacks.
3232 if (yyssp >= yyss + yystacksize - 1)
3234 /* Get the current used size of the three stacks, in elements. */
3235 YYSIZE_T yysize = yyssp - yyss + 1;
3239 /* Give user a chance to reallocate the stack. Use copies of
3240 these so that the &'s don't force the real ones into
3242 cgrammar_YYSTYPE *yyvs1 = yyvs;
3243 short *yyss1 = yyss;
3245 /* Each stack pointer address is followed by the size of the
3246 data in use in that stack, in bytes. */
3248 YYLTYPE *yyls1 = yyls;
3249 /* This used to be a conditional around just the two extra args,
3250 but that might be undefined if yyoverflow is a macro. */
3251 yyoverflow ("parser stack overflow",
3252 &yyss1, yysize * sizeof (*yyssp),
3253 &yyvs1, yysize * sizeof (*yyvsp),
3254 &yyls1, yysize * sizeof (*yylsp),
3258 yyoverflow ("parser stack overflow",
3259 &yyss1, yysize * sizeof (*yyssp),
3260 &yyvs1, yysize * sizeof (*yyvsp),
3266 #else /* no yyoverflow */
3267 # ifndef YYSTACK_RELOCATE
3270 /* Extend the stack our own way. */
3271 if (yystacksize >= YYMAXDEPTH)
3274 if (yystacksize > YYMAXDEPTH)
3275 yystacksize = YYMAXDEPTH;
3278 short *yyss1 = yyss;
3279 union yyalloc *yyptr =
3280 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3283 YYSTACK_RELOCATE (yyss);
3284 YYSTACK_RELOCATE (yyvs);
3286 YYSTACK_RELOCATE (yyls);
3288 # undef YYSTACK_RELOCATE
3290 YYSTACK_FREE (yyss1);
3293 #endif /* no yyoverflow */
3295 yyssp = yyss + yysize - 1;
3296 yyvsp = yyvs + yysize - 1;
3298 yylsp = yyls + yysize - 1;
3301 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3302 (unsigned long int) yystacksize));
3304 if (yyssp >= yyss + yystacksize - 1)
3308 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3318 /* Do appropriate processing given the current state. */
3319 /* Read a lookahead token if we need one and don't already have one. */
3322 /* First try to decide what to do without reference to lookahead token. */
3324 yyn = yypact[yystate];
3328 /* Not known => get a lookahead token if don't already have one. */
3330 /* yychar is either YYEMPTY or YYEOF
3331 or a valid token in external form. */
3333 if (yychar == YYEMPTY)
3335 YYDPRINTF ((stderr, "Reading a token: "));
3339 /* Convert token to internal form (in yychar1) for indexing tables with */
3341 if (yychar <= 0) /* This means end of input. */
3344 yychar = YYEOF; /* Don't call YYLEX any more */
3346 YYDPRINTF ((stderr, "Now at end of input.\n"));
3350 yychar1 = YYTRANSLATE (yychar);
3353 /* We have to keep this `#if YYDEBUG', since we use variables
3354 which are defined only if `YYDEBUG' is set. */
3357 YYFPRINTF (stderr, "Next token is %d (%s",
3358 yychar, yytname[yychar1]);
3359 /* Give the individual parser a way to print the precise
3360 meaning of a token, for further debugging info. */
3362 YYPRINT (stderr, yychar, yylval);
3364 YYFPRINTF (stderr, ")\n");
3370 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3375 /* yyn is what to do for this token type in this state.
3376 Negative => reduce, -yyn is rule number.
3377 Positive => shift, yyn is new state.
3378 New state is final state => don't bother to shift,
3379 just return success.
3380 0, or most negative number => error. */
3395 /* Shift the lookahead token. */
3396 YYDPRINTF ((stderr, "Shifting token %d (%s), ",
3397 yychar, yytname[yychar1]));
3399 /* Discard the token being shifted unless it is eof. */
3400 if (yychar != YYEOF)
3408 /* Count tokens shifted since error; after three, turn off error
3417 /*-----------------------------------------------------------.
3418 | yydefault -- do the default action for the current state. |
3419 `-----------------------------------------------------------*/
3421 yyn = yydefact[yystate];
3427 /*-----------------------------.
3428 | yyreduce -- Do a reduction. |
3429 `-----------------------------*/
3431 /* yyn is the number of a rule to reduce with. */
3434 /* If YYLEN is nonzero, implement the default value of the action:
3437 Otherwise, the following line sets YYVAL to the semantic value of
3438 the lookahead token. This behavior is undocumented and Bison
3439 users should not rely upon it. Assigning to YYVAL
3440 unconditionally makes the parser a bit smaller, and it avoids a
3441 GCC warning that YYVAL may be used uninitialized. */
3442 yyval = yyvsp[1-yylen];
3445 /* Similarly for the default location. Let the user run additional
3446 commands if for instance locations are ranges. */
3447 yyloc = yylsp[1-yylen];
3448 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
3452 /* We have to keep this `#if YYDEBUG', since we use variables which
3453 are defined only if `YYDEBUG' is set. */
3458 YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
3461 /* Print the symbols being reduced, and their result. */
3462 for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
3463 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
3464 YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3471 { context_checkGlobalScope (); ;
3474 { context_checkGlobalScope (); ;
3477 { uentry_clearDecl (); ;
3480 { uentry_clearDecl (); ;
3483 { uentry_clearDecl (); ;
3486 { uentry_clearDecl (); ;
3489 { uentry_clearDecl (); ;
3492 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3495 { uentry_clearDecl (); lltok_free (yyvsp[0].tok); /* evans 2002-02-08: okay to have a null statement */ ;
3498 { uentry_clearDecl (); ;
3501 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); lltok_free2 (yyvsp[-7].tok, yyvsp[0].tok); ;
3504 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr); lltok_free3 (yyvsp[-10].tok, yyvsp[-5].tok, yyvsp[0].tok); ;
3507 { context_enterFunctionHeader (); ;
3511 declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3512 context_exitFunctionHeader ();
3513 lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); /*!*/
3518 qtype qint = qtype_create (ctype_int);
3519 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3524 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3527 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
3530 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3533 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;
3536 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
3540 exprNode_findValue (yyvsp[-2].expr);
3541 idDecl_notExpectingFunction (yyvsp[-5].ntyp);
3543 if (exprNode_hasValue (yyvsp[-2].expr))
3545 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp),
3546 exprNode_getLongValue (yyvsp[-2].expr)));
3550 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-5].ntyp)));
3553 lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
3557 { setCurrentParams (uentryList_missingParams); ;
3560 { /* need to support globals and modifies here! */
3561 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3562 uentryList_makeMissingParams ());
3564 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3566 /*drl 7/25/01 added*/
3567 setImplictfcnConstraints();
3569 /* functionClauseList_ImplictConstraints($6); */
3571 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3573 lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
3577 { setCurrentParams (yyvsp[-1].entrylist); ;
3581 setImplictfcnConstraints ();
3582 /* functionClauseList_ImplictConstraints($7);*/
3583 clearCurrentParams ();
3584 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3585 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3587 lltok_free2 (yyvsp[-4].tok, yyvsp[-2].tok);
3591 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3594 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;
3597 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp)));
3598 lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok);
3605 if (exprNode_hasValue (yyvsp[-2].expr)
3606 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3608 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3615 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3616 lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
3620 { setCurrentParams (uentryList_missingParams); ;
3624 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3625 uentryList_makeMissingParams ());
3627 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3628 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3630 lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
3634 { setCurrentParams (yyvsp[-1].entrylist); ;
3638 clearCurrentParams ();
3639 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3640 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3642 lltok_free (yyvsp[-4].tok);
3643 /*!! lltok_free2 ($3, $5); */
3647 { setCurrentParams (yyvsp[-1].entrylist); ;
3650 { clearCurrentParams (); ;
3653 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist);
3654 lltok_free3 (yyvsp[-9].tok, yyvsp[-7].tok, yyvsp[-5].tok);
3658 { exprNode_checkMacroBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
3661 { exprNode_checkIterBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
3664 { exprNode_checkIterEnd (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok);;
3667 { exprChecks_checkEmptyMacroBody (); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
3670 { clabstract_declareFunction (yyvsp[0].ntyp); ;
3673 { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;
3676 { cscanner_expectingMetaStateName (); ;
3679 { cscanner_clearExpectingMetaStateName ();
3680 yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo);
3681 lltok_free (yyvsp[-1].tok);
3685 { cscanner_expectingMetaStateName (); ;
3688 { cscanner_clearExpectingMetaStateName ();
3689 yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo);
3690 lltok_free2 (yyvsp[-3].tok, yyvsp[-1].tok);
3694 { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
3697 { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;
3700 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
3703 { yyval.conL = constraintList_single (yyvsp[0].con); ;
3707 yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
3708 DPRINTF(("Done BufConstraint1\n")); ;
3711 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3715 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3716 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3719 { yyval.conE = constraintExpr_makeTermsRef (yyvsp[0].sr);;
3722 { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
3725 { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
3728 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3731 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3737 t = cstring_toCharsSafe (exprNode_unparse($3));
3740 yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
3744 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3747 { yyval.sr = yyvsp[-1].sr; ;
3750 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3753 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3756 { yyval.funcclauselist = functionClauseList_new (); ;
3759 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3762 { yyval.funcclauselist = functionClauseList_new (); ;
3765 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3768 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3771 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3774 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3777 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3780 { yyval.funcclause = yyvsp[0].funcclause; ;
3783 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3786 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3789 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3792 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3795 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3798 { yyval.funcclause = yyvsp[0].funcclause; ;
3801 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3804 { yyval.globsclause = yyvsp[-1].globsclause; ;
3807 { setProcessingGlobalsList (); ;
3811 unsetProcessingGlobals ();
3812 yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset);
3816 { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
3819 { yyval.modsclause = yyvsp[-1].modsclause; ;
3823 context_setProtectVars (); enterParamsTemp ();
3824 sRef_setGlobalScopeSafe ();
3830 sRef_clearGlobalScopeSafe ();
3831 context_releaseVars ();
3832 yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
3836 { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
3839 { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
3842 { yyval.warnclause = warnClause_undefined; ;
3845 { yyval.warnclause = yyvsp[-1].warnclause; ;
3849 llassert (exprNode_knownStringValue (yyvsp[0].expr));
3850 yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr))));
3851 exprNode_free (yyvsp[0].expr);
3855 { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
3858 { yyval.globset = globSet_single (yyvsp[0].sr); ;
3861 { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
3864 { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3867 { yyval.tquallist = qualList_undefined; ;
3870 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3873 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3876 { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
3879 { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
3882 { yyval.typequal = qual_createUndef (); ;
3885 { yyval.typequal = qual_createKilled (); ;
3888 { yyval.typequal = qual_createOut (); ;
3891 { yyval.typequal = qual_createIn (); ;
3894 { yyval.typequal = qual_createPartial (); ;
3898 /**!!! deal with fred; fred (int); declarations! **/
3899 qtype qint = qtype_create (ctype_int);
3900 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3905 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3908 { checkDoneParams (); context_enterInnerContext (); ;
3912 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3913 context_exitInner (yyvsp[0].expr);
3917 { context_enterOldStyleScope (); ;
3920 { oldStyleDoneParams (); context_enterInnerContext (); ;
3924 exprNode_checkFunctionBody (yyvsp[0].expr);
3925 yyval.expr = yyvsp[0].expr; /* oldstyle */
3926 context_exitInner (yyvsp[0].expr);
3931 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3932 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3935 context_exitFunction ();
3939 { yyval.srset = yyvsp[-1].srset; ;
3942 { yyval.srset = sRefSet_new (); ;
3945 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3948 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3951 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3954 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3957 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3960 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3963 { yyval.sr = yyvsp[-1].sr; ;
3966 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3969 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3972 { yyval.sr = yyvsp[0].sr; ;
3975 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3978 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3981 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3984 { yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
3987 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3990 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3993 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3996 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3999 { yyval.sr = yyvsp[-1].sr; ;
4002 { cstring_markOwned (yyvsp[0].cname);
4003 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
4006 { cstring_markOwned (yyvsp[0].cname);
4007 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
4010 { yyval.srset = sRefSet_undefined ;
4013 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
4014 else { yyval.srset = sRefSet_undefined; }
4018 { if (sRef_isValid (yyvsp[0].sr))
4020 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
4024 yyval.srset = yyvsp[-2].srset;
4029 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
4032 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
4035 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4038 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
4041 { yyval.expr = exprNode_makeError (); ;
4044 { exprChecks_inCompoundStatementExpression (); ;
4047 { exprChecks_leaveCompoundStatementExpression (); yyval.expr = exprNode_compoundStatementExpression (yyvsp[-3].tok, yyvsp[-1].expr); ;
4050 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4053 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4056 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
4059 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
4062 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4065 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4068 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4071 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4074 { /* added for C99 */ yyval.expr = exprNode_undefined; /*@i87 no checking */ ;
4077 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4080 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
4083 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4086 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4089 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4092 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4095 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4098 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4101 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4104 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4107 { yyval.expr = yyvsp[0].expr; ;
4110 { yyval.expr = yyvsp[0].expr; ;
4113 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); lltok_free (yyvsp[-1].tok); ;
4116 { yyval.cstringlist = yyvsp[-3].cstringlist; lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
4119 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
4122 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist);
4123 lltok_free3 (yyvsp[-8].tok, yyvsp[-6].tok, yyvsp[-3].tok); lltok_free (yyvsp[-1].tok); ;
4126 { context_setProtectVars (); ;
4129 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
4132 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok); ;
4135 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;
4138 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok); ;
4141 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;
4144 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); lltok_free (yyvsp[-1].tok); ;
4147 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4150 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4153 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4156 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4159 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4162 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4165 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4168 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4171 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4174 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4177 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4180 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4183 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4186 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4189 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4192 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4195 { exprNode_produceGuards (yyvsp[-1].expr);
4196 context_enterAndClause (yyvsp[-1].expr);
4201 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4202 context_exitAndClause (yyval.expr, yyvsp[0].expr);
4207 exprNode_produceGuards (yyvsp[-1].expr);
4208 context_enterOrClause (yyvsp[-1].expr);
4213 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4214 context_exitOrClause (yyval.expr, yyvsp[0].expr);
4218 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4221 { context_enterFalseClause (yyvsp[-4].expr); ;
4224 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
4227 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4230 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4233 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4236 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4239 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4242 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4245 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4248 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4251 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4254 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4257 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4260 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
4263 { yyval.expr = exprNode_undefined; ;
4266 { yyval.expr = yyvsp[0].expr; ;
4269 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
4272 { yyval.expr = exprNode_makeError (); ;
4275 { yyval.expr = exprNode_makeError (); ;
4279 setProcessingVars (yyvsp[-3].qtyp);
4280 processNamedDecl (yyvsp[-1].ntyp);
4285 unsetProcessingVars ();
4286 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp);
4287 DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
4291 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
4294 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
4295 unsetProcessingVars ();
4300 processNamedDecl (yyvsp[-1].ntyp);
4301 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
4305 { processNamedDecl (yyvsp[-2].ntyp); ;
4308 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
4311 { setProcessingTypedef (yyvsp[0].qtyp); ;
4314 { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
4317 { /* in the ANSI grammar, semantics unclear */ ;
4320 { /* in the ANSI grammar, semantics unclear */ ;
4323 { g_expectingTypeName = TRUE; ;
4326 { g_expectingTypeName = TRUE; context_pushLoc (); ;
4329 { yyval.exprlist = yyvsp[-1].exprlist; ;
4332 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4335 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4338 { yyval.expr = exprNode_makeError (); ;
4341 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4344 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); lltok_free (yyvsp[0].tok); ;
4347 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
4350 { yyval.expr = exprNode_undefined; ;
4353 { yyval.expr = yyvsp[-1].expr; ;
4356 { yyval.expr = exprNode_undefined;
4357 /* gcc extension, obsolete since 2.5 */ ;
4360 { yyval.expr = exprNode_undefined; ;
4363 { yyval.expr = exprNode_undefined; ;
4366 { yyval.expr = exprNode_undefined; ;
4369 { yyval.expr = exprNode_undefined; ;
4372 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4375 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
4378 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4381 { yyval.typequal = qual_createInline (); ;
4384 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4387 { yyval.typequal = qual_createAuto (); ;
4390 { yyval.typequal = qual_createRegister (); ;
4393 { yyval.stateclause = yyvsp[-1].stateclause; ;
4397 context_setProtectVars ();
4399 sRef_setGlobalScopeSafe ();
4405 sRef_clearGlobalScopeSafe ();
4406 context_releaseVars ();
4407 yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
4411 { yyval.funcclause = yyvsp[-1].funcclause; ;
4414 { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
4418 context_exitFunctionHeader ();
4419 context_setProtectVars ();
4421 sRef_setGlobalScopeSafe ();
4427 sRef_clearGlobalScopeSafe ();
4428 context_releaseVars ();
4429 yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
4434 context_setProtectVars ();
4436 sRef_setGlobalScopeSafe ();
4441 context_exitFunctionHeader ();
4443 sRef_clearGlobalScopeSafe ();
4444 context_releaseVars ();
4445 DPRINTF (("done optGlobBufConstraintsAux\n"));
4447 if (lltok_isEnsures (yyvsp[-4].tok))
4449 yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint);
4451 else if (lltok_isRequires (yyvsp[-4].tok))
4453 yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint);
4460 DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
4464 { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
4467 { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
4470 { yyval.typequal = qual_createExits (); ;
4473 { yyval.typequal = qual_createMayExit (); ;
4476 { yyval.typequal = qual_createTrueExit (); ;
4479 { yyval.typequal = qual_createFalseExit (); ;
4482 { yyval.typequal = qual_createNeverExit (); ;
4485 { yyval.typequal = qual_createChecked (); ;
4488 { yyval.typequal = qual_createCheckMod (); ;
4491 { yyval.typequal = qual_createUnchecked (); ;
4494 { yyval.typequal = qual_createCheckedStrict (); ;
4497 { yyval.typequal = qual_createOwned (); ;
4500 { yyval.typequal = qual_createDependent (); ;
4503 { yyval.typequal = qual_createYield (); ;
4506 { yyval.typequal = qual_createTemp (); ;
4509 { yyval.typequal = qual_createOnly (); ;
4512 { yyval.typequal = qual_createKeep (); ;
4515 { yyval.typequal = qual_createKept (); ;
4518 { yyval.typequal = qual_createShared (); ;
4521 { yyval.typequal = qual_createUnique (); ;
4524 { yyval.typequal = qual_createNull (); ;
4527 { yyval.typequal = qual_createIsNull (); ;
4530 { yyval.typequal = qual_createRelNull (); ;
4533 { yyval.typequal = qual_createNotNull (); ;
4536 { yyval.typequal = qual_createExposed (); ;
4539 { yyval.typequal = qual_createObserver (); ;
4542 { yyval.typequal = qual_createNullTerminated (); ;
4545 { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
4548 { yyval.typequal = qual_createReturned (); ;
4551 { yyval.typequal = qual_createSef (); ;
4554 { yyval.typequal = qual_createUnused (); ;
4557 { yyval.typequal = qual_createExternal (); ;
4560 { yyval.typequal = qual_createTrueNull (); ;
4563 { yyval.typequal = qual_createFalseNull (); ;
4566 { yyval.typequal = qual_createAbstract (); ;
4569 { yyval.typequal = qual_createConcrete (); ;
4572 { yyval.typequal = qual_createMutable (); ;
4575 { yyval.typequal = qual_createImmutable (); ;
4578 { yyval.typequal = qual_createRefCounted (); ;
4581 { yyval.typequal = qual_createRefs (); ;
4584 { yyval.typequal = qual_createKillRef (); ;
4587 { yyval.typequal = qual_createRelDef (); ;
4590 { yyval.typequal = qual_createNewRef (); ;
4593 { yyval.typequal = qual_createTempRef (); ;
4596 { yyval.typequal = qual_createShort (); ;
4599 { yyval.typequal = qual_createLong (); ;
4602 { yyval.typequal = qual_createSigned (); ;
4605 { yyval.typequal = qual_createUnsigned (); ;
4608 { yyval.typequal = qual_createOut (); ;
4611 { yyval.typequal = qual_createIn (); ;
4614 { yyval.typequal = qual_createPartial (); ;
4617 { yyval.typequal = qual_createSpecial (); ;
4620 { yyval.typequal = qual_createConst (); ;
4623 { yyval.typequal = qual_createVolatile (); ;
4626 { yyval.typequal = qual_createRestrict (); ;
4629 { yyval.typequal = yyvsp[-1].typequal; ;
4632 { yyval.typequal = yyvsp[-1].typequal; ;
4635 { yyval.typequal = yyvsp[-1].typequal; ;
4638 { yyval.typequal = yyvsp[-1].typequal; ;
4641 { yyval.typequal = yyvsp[-1].typequal; ;
4644 { yyval.typequal = yyvsp[-1].typequal; ;
4647 { yyval.typequal = yyvsp[-1].typequal; ;
4650 { yyval.typequal = yyvsp[-1].typequal; ;
4653 { yyval.typequal = yyvsp[-1].typequal; ;
4656 { yyval.ctyp = ctype_makeAnytype (); ;
4659 { yyval.ctyp = ctype_anyintegral; ;
4662 { yyval.ctyp = ctype_unsignedintegral; ;
4665 { yyval.ctyp = ctype_signedintegral; ;
4668 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4671 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4674 { yyval.qtyp = yyvsp[0].qtyp; ;
4677 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4680 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4683 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4686 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4689 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4692 { yyval.qtyp = qtype_unknown (); ;
4695 { yyval.qtyp = yyvsp[0].qtyp; ;
4698 { yyval.conL = constraintList_undefined; ;
4701 { sRef_setGlobalScopeSafe (); ;
4704 { sRef_clearGlobalScopeSafe (); ;
4707 { ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); setGlobalStructInfo(ct, yyvsp[0].conL); yyval.ctyp = ct; ;
4710 { sRef_setGlobalScopeSafe (); ;
4713 { sRef_clearGlobalScopeSafe (); ;
4716 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4719 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4722 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4725 { sRef_setGlobalScopeSafe (); ;
4728 { sRef_clearGlobalScopeSafe (); ;
4731 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4734 { sRef_setGlobalScopeSafe (); ;
4737 { sRef_clearGlobalScopeSafe (); ;
4740 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4743 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4746 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4749 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4752 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4755 { g_expectingTypeName = FALSE; ;
4758 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4761 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4764 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4767 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4770 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4773 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4776 { yyval.ntyp = yyvsp[0].ntyp; ;
4779 { yyval.ntyp = idDecl_undefined; ;
4782 { yyval.ntyp = yyvsp[-3].ntyp; ;
4785 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4788 { context_pushLoc (); ;
4791 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4794 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4797 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4800 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4803 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4804 usymtab_supGlobalEntry (ue);
4805 yyval.cname = yyvsp[0].cname;
4809 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4810 usymtab_supGlobalEntry (ue);
4811 yyval.cname = yyvsp[-3].cname;
4815 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4819 qtype qt = qtype_unknown ();
4820 qtype_adjustPointers (yyvsp[-1].pointers, qt);
4821 yyval.ntyp = idDecl_create (cstring_copy (cscanner_observeLastIdentifier ()), qt);
4825 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
4828 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
4831 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4834 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4837 { yyval.typequal = qual_createConst (); ;
4840 { yyval.typequal = qual_createRestrict (); ;
4843 { yyval.typequal = qual_createVolatile (); ;
4846 { yyval.tquallist = qualList_single (yyvsp[0].typequal); ;
4849 { yyval.tquallist = qualList_add (yyvsp[-1].tquallist, yyvsp[0].typequal); ;
4852 { yyval.pointers = pointers_create (yyvsp[0].tok); ;
4855 { yyval.pointers = pointers_createMods (yyvsp[-1].tok, yyvsp[0].tquallist); ;
4858 { yyval.pointers = pointers_extend (pointers_create (yyvsp[-1].tok), yyvsp[0].pointers); ;
4861 { yyval.pointers = pointers_extend (pointers_createMods (yyvsp[-2].tok, yyvsp[-1].tquallist), yyvsp[0].pointers); ;
4864 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4867 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4870 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4873 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4876 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4882 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4888 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4892 if (isFlipOldStyle ())
4894 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4900 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4905 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4909 llparseerror (message ("Inconsistent function parameter syntax: %q",
4910 idDecl_unparse (tparam)));
4914 yyval.oentry = makeCurrentParam (tparam);
4915 idDecl_free (tparam);
4919 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4922 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;
4925 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;
4928 { yyval.ctyp = ctype_unknown; ;
4931 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4934 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4937 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4940 { yyval.ctyp = ctype_makeInnerArray (yyvsp[-2].ctyp); ;
4943 { yyval.ctyp = ctype_makeInnerFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4946 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4949 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4952 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4955 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4958 { yyval.expr = yyvsp[0].expr; ;
4961 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4964 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4967 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4970 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4973 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4976 { context_setProtectVars (); ;
4979 { context_sizeofReleaseVars (); ;
4982 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4983 context_enterForClause (yyvsp[-5].expr); ;
4986 { setProcessingIterVars (yyvsp[-2].entry); ;
4989 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
4992 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4995 { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
4998 { yyval.expr = yyvsp[-1].expr; ;
5001 { yyval.expr = exprNode_makeError (); ;
5004 { exprNode_checkIfPred (yyvsp[0].expr); ;
5007 { /* don't: context_exitTrueClause ($1, $2); */
5008 yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr);
5012 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5015 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5018 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5021 { yyval.expr = exprNode_makeError (); ;
5024 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
5027 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
5036 { context_enterCaseClause (yyvsp[0].expr); ;
5039 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
5042 { context_enterCaseClause (yyvsp[0].expr); ;
5045 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
5048 { context_enterCaseClause (exprNode_undefined); ;
5051 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
5054 { context_enterCaseClause (exprNode_undefined); ;
5057 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
5060 { yyval.expr = yyvsp[-1].expr; ;
5063 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
5066 { yyval.expr = yyvsp[-1].expr; ;
5069 { context_enterInnerContext (); ;
5072 { context_exitInnerPlain (); ;
5075 { context_enterStructInnerContext (); ;
5078 { context_exitStructInnerContext (); ;
5081 { context_exitInnerSafe (); ;
5084 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5087 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
5090 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5093 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5096 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5099 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5102 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5105 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
5106 lltok_getLoc (yyvsp[-1].tok)));
5110 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
5113 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5116 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5119 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5122 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5125 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5128 { yyval.expr = yyvsp[0].expr; ;
5131 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5134 { yyval.expr = yyvsp[0].expr; ;
5137 { yyval.expr = exprNode_concat (yyvsp[-2].expr, yyvsp[0].expr); ;
5140 { yyval.expr = yyvsp[0].expr; ;
5143 { yyval.expr = yyvsp[-2].expr; ;
5146 { yyval.expr = yyvsp[0].expr; ;
5149 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5152 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5155 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5158 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5161 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5164 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
5168 exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr);
5169 exprNode_checkIfPred (yyvsp[-1].expr);
5170 yyval.expr = yyvsp[-1].expr;
5175 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
5176 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
5180 { context_enterFalseClause (yyvsp[-2].expr); ;
5184 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5185 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5189 { context_enterSwitch (yyvsp[0].expr); ;
5192 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
5195 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
5198 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
5201 { context_enterIterClause (); ;
5204 { setProcessingIterVars (yyvsp[-3].entry); ;
5208 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry);
5213 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
5216 { nextIterParam (); ;
5219 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
5222 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
5225 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
5228 { uentry ue = coerceIterId (yyvsp[0].cname);
5230 if (uentry_isValid (ue))
5232 yyval.expr = exprNode_iterId (ue);
5236 yyval.expr = exprNode_iterNewId (cstring_copy (cscanner_observeLastIdentifier ()));
5241 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
5244 { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
5247 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5250 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
5253 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
5256 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
5259 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
5262 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
5265 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
5268 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5271 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5274 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5277 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5280 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5283 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5286 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5289 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5292 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5295 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5298 { yyval.expr = yyvsp[0].expr; ;
5301 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
5304 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5307 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5310 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5313 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5316 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5319 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5322 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5325 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5328 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5331 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5334 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5337 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5340 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5343 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5346 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5349 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5352 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5355 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5358 { context_enterTrueClause (yyvsp[-1].expr); ;
5361 { context_enterFalseClause (yyvsp[-4].expr); ;
5364 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5367 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5370 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5373 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5376 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5379 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5382 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5385 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5388 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5391 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5394 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5397 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5400 { yyval.entry = yyvsp[0].entry; ;
5403 { yyval.entry = uentry_undefined; ;
5406 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5409 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5412 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5415 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5418 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5421 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5424 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5427 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5430 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5433 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5436 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5439 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5442 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5445 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5448 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5451 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5454 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5457 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5466 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5469 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5472 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5475 { yyval.cname = yyvsp[0].cname; ;
5478 { yyval.ctyp = ctype_unknown; ;
5481 { yyval.ctyp = exprNode_getType (yyvsp[-1].expr); exprNode_free (yyvsp[-1].expr); ;
5484 { yyval.ctyp = qtype_getType (yyvsp[-1].qtyp); ;
5499 short *yyssp1 = yyss - 1;
5500 YYFPRINTF (stderr, "state stack now");
5501 while (yyssp1 != yyssp)
5502 YYFPRINTF (stderr, " %d", *++yyssp1);
5503 YYFPRINTF (stderr, "\n");
5512 /* Now `shift' the result of the reduction. Determine what state
5513 that goes to, based on the state we popped back to and the rule
5514 number reduced by. */
5518 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5519 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5520 yystate = yytable[yystate];
5522 yystate = yydefgoto[yyn - YYNTBASE];
5527 /*------------------------------------.
5528 | yyerrlab -- here on detecting error |
5529 `------------------------------------*/
5531 /* If not already recovering from an error, report this error. */
5536 #ifdef YYERROR_VERBOSE
5537 yyn = yypact[yystate];
5539 if (yyn > YYFLAG && yyn < YYLAST)
5541 YYSIZE_T yysize = 0;
5546 /* Start YYX at -YYN if negative to avoid negative indexes in
5548 for (yyx = yyn < 0 ? -yyn : 0;
5549 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
5550 if (yycheck[yyx + yyn] == yyx)
5551 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
5552 yysize += yystrlen ("parse error, unexpected ") + 1;
5553 yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
5554 yymsg = (char *) YYSTACK_ALLOC (yysize);
5557 char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
5558 yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
5563 for (yyx = yyn < 0 ? -yyn : 0;
5564 yyx < (int) (sizeof (yytname) / sizeof (char *));
5566 if (yycheck[yyx + yyn] == yyx)
5568 const char *yyq = ! yycount ? ", expecting " : " or ";
5569 yyp = yystpcpy (yyp, yyq);
5570 yyp = yystpcpy (yyp, yytname[yyx]);
5575 YYSTACK_FREE (yymsg);
5578 yyerror ("parse error; also virtual memory exhausted");
5581 #endif /* defined (YYERROR_VERBOSE) */
5582 yyerror ("parse error");
5587 /*--------------------------------------------------.
5588 | yyerrlab1 -- error raised explicitly by an action |
5589 `--------------------------------------------------*/
5591 if (yyerrstatus == 3)
5593 /* If just tried and failed to reuse lookahead token after an
5594 error, discard it. */
5596 /* return failure if at end of input */
5597 if (yychar == YYEOF)
5599 YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
5600 yychar, yytname[yychar1]));
5604 /* Else will try to reuse lookahead token after shifting the error
5607 yyerrstatus = 3; /* Each real token shifted decrements this */
5612 /*-------------------------------------------------------------------.
5613 | yyerrdefault -- current state does not do anything special for the |
5615 `-------------------------------------------------------------------*/
5618 /* This is wrong; only states that explicitly want error tokens
5619 should shift them. */
5621 /* If its default is to accept any token, ok. Otherwise pop it. */
5622 yyn = yydefact[yystate];
5628 /*---------------------------------------------------------------.
5629 | yyerrpop -- pop the current state because it cannot handle the |
5631 `---------------------------------------------------------------*/
5644 short *yyssp1 = yyss - 1;
5645 YYFPRINTF (stderr, "Error: state stack now");
5646 while (yyssp1 != yyssp)
5647 YYFPRINTF (stderr, " %d", *++yyssp1);
5648 YYFPRINTF (stderr, "\n");
5656 yyn = yypact[yystate];
5661 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5678 YYDPRINTF ((stderr, "Shifting error token, "));
5689 /*-------------------------------------.
5690 | yyacceptlab -- YYACCEPT comes here. |
5691 `-------------------------------------*/
5696 /*-----------------------------------.
5697 | yyabortlab -- YYABORT comes here. |
5698 `-----------------------------------*/
5703 /*---------------------------------------------.
5704 | yyoverflowab -- parser overflow comes here. |
5705 `---------------------------------------------*/
5707 yyerror ("parser stack overflow");
5714 YYSTACK_FREE (yyss);
5720 /*@-redecl@*/ /*@-namechecks@*/
5721 extern char *yytext;
5722 /*@=redecl@*/ /*@=namechecks@*/
5724 # include "bison.reset"
5726 void yyerror (/*@unused@*/ char *s)
5728 static bool givehint = FALSE;
5730 if (context_inIterDef ())
5732 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5733 context_inFunctionName ()));
5735 else if (context_inIterEnd ())
5737 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5738 context_inFunctionName ()));
5740 else if (context_inMacro ())
5742 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5743 context_inFunctionName ()));
5745 if (context_inUnknownMacro ())
5749 llhint (cstring_makeLiteral
5750 ("Precede macro definition with /*@notfunction@*/ "
5751 "to suppress checking and force expansion"));
5756 cscanner_swallowMacro ();
5757 context_exitAllClausesQuiet ();
5761 llparseerror (cstring_undefined);
5777 ** Resets all flags in bison.head
5799 /*@=evalorderuncon@*/
5808 /*@=elseifcomplete@*/
5812 /*@=readonlytrans@*/
5815 /*@=systemunrecog@*/
5816 /*@=dependenttrans@*/
5817 /*@=unqualifiedtrans@*/
5821 /*drl added 11/27/2001*/
5824 /*drl added 12/11/2002*/