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] : 463)
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, 840, 842,
456 845, 846, 853, 854, 863, 868, 873, 874, 875, 878,
457 880, 885, 888, 890, 895, 896, 901, 903, 907, 912,
458 915, 918, 921, 923, 926, 930, 933, 935, 939, 941,
459 943, 945, 947, 949, 952, 953, 960, 963, 966, 967,
460 974, 975, 981, 983, 985, 987, 989, 991, 993, 995,
461 997, 999, 1001, 1003, 1005, 1007, 1009, 1011, 1013, 1015,
462 1017, 1019, 1021, 1023, 1025, 1027, 1029, 1031, 1033, 1035,
463 1037, 1039, 1041, 1043, 1045, 1047, 1049, 1051, 1053, 1055,
464 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071, 1073, 1075,
465 1077, 1079, 1081, 1083, 1085, 1088, 1091, 1094, 1097, 1100,
466 1103, 1106, 1109, 1112, 1115, 1118, 1121, 1124, 1127, 1130,
467 1133, 1136, 1139, 1142, 1145, 1148, 1151, 1154, 1157, 1160,
468 1163, 1167, 1169, 1174, 1176, 1180, 1183, 1186, 1189, 1190,
469 1192, 1193, 1194, 1195, 1208, 1209, 1210, 1222, 1229, 1236,
470 1237, 1238, 1249, 1250, 1251, 1262, 1268, 1274, 1279, 1284,
471 1285, 1287, 1289, 1292, 1298, 1302, 1305, 1310, 1312, 1316,
472 1321, 1328, 1329, 1338, 1343, 1345, 1349, 1352, 1354, 1359,
473 1361, 1363, 1366, 1369, 1371, 1374, 1376, 1379, 1381, 1383,
474 1385, 1387, 1390, 1392, 1395, 1398, 1402, 1404, 1408, 1410,
475 1414, 1416, 1418, 1422, 1423, 1426, 1427, 1432, 1437, 1439,
476 1441, 1444, 1446, 1448, 1451, 1452, 1454, 1460, 1463, 1467,
477 1471, 1476, 1480, 1485, 1490, 1496, 1498, 1500, 1502, 1504,
478 1506, 1508, 1510, 1512, 1514, 1516, 1518, 1520, 1523, 1526,
479 1534, 1541, 1544, 1545, 1546, 1557, 1558, 1565, 1567, 1569,
480 1571, 1573, 1576, 1578, 1580, 1582, 1584, 1586, 1588, 1590,
481 1594, 1596, 1597, 1601, 1604, 1607, 1609, 1611, 1613, 1615,
482 1617, 1619, 1621, 1623, 1625, 1627, 1631, 1633, 1635, 1638,
483 1641, 1642, 1645, 1646, 1651, 1652, 1659, 1660, 1664, 1665,
484 1671, 1675, 1678, 1682, 1683, 1684, 1685, 1686, 1687, 1689,
485 1692, 1695, 1699, 1702, 1706, 1710, 1715, 1718, 1721, 1725,
486 1729, 1734, 1736, 1739, 1741, 1744, 1746, 1750, 1752, 1757,
487 1759, 1762, 1764, 1767, 1769, 1772, 1774, 1779, 1782, 1783,
488 1789, 1790, 1797, 1802, 1807, 1808, 1809, 1820, 1822, 1823,
489 1828, 1830, 1832, 1834, 1836, 1838, 1841, 1843, 1847, 1849,
490 1854, 1858, 1863, 1870, 1876, 1882, 1885, 1888, 1890, 1893,
491 1896, 1899, 1902, 1905, 1908, 1911, 1914, 1916, 1918, 1923,
492 1925, 1929, 1933, 1937, 1939, 1943, 1947, 1949, 1953, 1957,
493 1959, 1963, 1967, 1971, 1975, 1977, 1981, 1985, 1987, 1991,
494 1993, 1997, 1999, 2003, 2005, 2009, 2011, 2015, 2017, 2018,
495 2019, 2027, 2029, 2033, 2037, 2041, 2045, 2049, 2053, 2057,
496 2061, 2065, 2069, 2073, 2075, 2076, 2078, 2081, 2089, 2092,
497 2095, 2103, 2110, 2113, 2117, 2120, 2124, 2127, 2131, 2135,
498 2139, 2143, 2146, 2150, 2151, 2153, 2154, 2156, 2158, 2160,
499 2162, 2164, 2166, 2168, 2170, 2172, 2177
501 static const short yyrhs[] =
503 -1, 196, 0, 197, 0, 196, 197, 0, 258, 458,
504 0, 198, 0, 199, 0, 209, 0, 212, 0, 296,
505 0, 18, 0, 1, 0, 77, 340, 354, 364, 354,
506 458, 305, 91, 0, 77, 340, 354, 364, 354, 23,
507 305, 312, 311, 458, 91, 0, 0, 78, 200, 201,
508 458, 91, 0, 202, 0, 340, 354, 202, 0, 206,
509 0, 368, 206, 0, 461, 0, 305, 24, 354, 364,
510 305, 25, 0, 203, 26, 27, 0, 203, 26, 305,
511 295, 27, 354, 0, 0, 203, 306, 24, 25, 204,
512 230, 0, 0, 203, 306, 24, 365, 25, 205, 230,
513 0, 461, 0, 305, 24, 354, 202, 305, 25, 0,
514 206, 26, 27, 0, 206, 26, 305, 295, 27, 354,
515 0, 0, 206, 306, 24, 25, 207, 231, 0, 0,
516 206, 306, 24, 365, 25, 208, 231, 0, 0, 0,
517 79, 461, 24, 365, 25, 210, 231, 211, 458, 91,
518 0, 92, 395, 95, 0, 93, 381, 95, 0, 94,
519 382, 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, 460, 0, 187, 0, 227, 26, 27,
527 0, 227, 26, 190, 27, 0, 34, 227, 0, 24,
528 227, 25, 0, 227, 28, 461, 0, 227, 45, 461,
529 0, 223, 0, 33, 0, 32, 0, 0, 232, 230,
530 0, 0, 233, 231, 0, 234, 0, 238, 0, 237,
531 0, 318, 0, 321, 0, 244, 0, 235, 0, 239,
532 0, 237, 0, 319, 0, 323, 0, 245, 0, 235,
533 91, 0, 0, 74, 236, 246, 458, 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, 434, 0, 73, 241, 0, 247,
537 0, 246, 21, 247, 0, 248, 249, 0, 0, 250,
538 248, 0, 460, 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, 364, 0, 340, 354, 364, 0, 0, 19,
542 255, 412, 0, 0, 0, 256, 416, 257, 405, 0,
543 213, 254, 0, 262, 458, 0, 458, 0, 460, 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, 461, 0, 260, 45, 461, 0, 260, 0,
547 434, 0, 260, 0, 262, 21, 260, 0, 460, 0,
548 187, 0, 263, 26, 27, 0, 263, 26, 261, 27,
549 0, 34, 263, 0, 24, 263, 25, 0, 263, 28,
550 461, 0, 263, 45, 461, 0, 0, 265, 0, 263,
551 0, 265, 21, 263, 0, 460, 0, 187, 0, 434,
552 0, 24, 293, 25, 0, 188, 0, 115, 0, 0,
553 24, 267, 405, 25, 0, 266, 0, 268, 26, 293,
554 27, 0, 268, 24, 25, 0, 268, 24, 269, 25,
555 0, 71, 24, 292, 21, 376, 25, 0, 268, 354,
556 28, 461, 305, 0, 268, 354, 45, 461, 305, 0,
557 268, 48, 0, 268, 49, 0, 24, 376, 25, 19,
558 417, 459, 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, 461, 0, 271, 26, 293, 27, 0, 461,
563 0, 47, 305, 24, 376, 354, 21, 271, 25, 305,
564 0, 0, 305, 274, 275, 0, 42, 24, 376, 25,
565 0, 42, 270, 0, 43, 24, 376, 25, 0, 43,
566 270, 0, 270, 0, 24, 376, 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, 303, 0,
584 340, 305, 18, 0, 0, 340, 354, 364, 354, 298,
585 305, 311, 18, 305, 0, 0, 340, 354, 364, 354,
586 23, 299, 305, 312, 311, 18, 305, 0, 301, 0,
587 193, 0, 364, 354, 0, 0, 364, 354, 23, 302,
588 305, 312, 0, 0, 46, 340, 304, 354, 309, 305,
589 243, 18, 0, 46, 340, 305, 18, 0, 46, 307,
590 305, 18, 0, 0, 0, 308, 305, 0, 301, 0,
591 307, 21, 354, 301, 0, 310, 305, 0, 300, 0,
592 309, 21, 354, 300, 0, 0, 311, 21, 354, 301,
593 0, 292, 0, 19, 316, 20, 0, 19, 316, 21,
594 20, 0, 313, 312, 0, 314, 23, 0, 461, 22,
595 0, 315, 0, 314, 315, 0, 26, 295, 27, 0,
596 28, 461, 0, 312, 0, 316, 21, 312, 0, 116,
597 0, 114, 0, 117, 0, 118, 0, 119, 0, 319,
598 91, 0, 0, 251, 354, 320, 265, 458, 305, 0,
599 323, 91, 0, 252, 354, 0, 0, 322, 329, 324,
600 264, 458, 305, 0, 0, 322, 325, 326, 458, 305,
601 0, 221, 0, 214, 0, 143, 0, 144, 0, 146,
602 0, 147, 0, 145, 0, 128, 0, 131, 0, 129,
603 0, 130, 0, 136, 0, 137, 0, 122, 0, 124,
604 0, 123, 0, 132, 0, 133, 0, 125, 0, 127,
605 0, 140, 0, 142, 0, 155, 0, 154, 0, 139,
606 0, 141, 0, 179, 0, 189, 0, 138, 0, 153,
607 0, 152, 0, 162, 0, 160, 0, 161, 0, 156,
608 0, 157, 0, 158, 0, 159, 0, 163, 0, 164,
609 0, 167, 0, 168, 0, 165, 0, 166, 0, 151,
610 0, 148, 0, 149, 0, 150, 0, 120, 0, 121,
611 0, 134, 0, 135, 0, 111, 305, 0, 113, 305,
612 0, 112, 305, 0, 336, 305, 0, 329, 305, 0,
613 327, 305, 0, 330, 305, 0, 328, 305, 0, 332,
614 305, 0, 331, 305, 0, 333, 305, 0, 334, 305,
615 0, 169, 354, 0, 171, 354, 0, 170, 354, 0,
616 172, 354, 0, 173, 354, 0, 174, 354, 0, 175,
617 354, 0, 176, 354, 0, 177, 354, 0, 178, 354,
618 0, 462, 354, 0, 345, 354, 0, 359, 354, 0,
619 335, 354, 0, 305, 340, 305, 0, 342, 0, 342,
620 88, 341, 91, 0, 376, 0, 376, 21, 341, 0,
621 317, 343, 0, 337, 343, 0, 338, 343, 0, 0,
622 340, 0, 0, 0, 0, 354, 68, 461, 305, 19,
623 346, 409, 355, 410, 347, 20, 344, 0, 0, 0,
624 354, 69, 461, 305, 19, 348, 409, 355, 410, 349,
625 20, 0, 354, 68, 461, 305, 19, 20, 0, 354,
626 69, 461, 305, 19, 20, 0, 0, 0, 354, 68,
627 305, 19, 350, 409, 355, 410, 351, 20, 0, 0,
628 0, 354, 69, 305, 19, 352, 409, 355, 410, 353,
629 20, 0, 354, 68, 305, 19, 20, 0, 354, 69,
630 305, 19, 20, 0, 354, 68, 461, 354, 0, 354,
631 69, 461, 354, 0, 0, 356, 0, 212, 0, 355,
632 356, 0, 340, 354, 357, 305, 18, 0, 340, 305,
633 18, 0, 358, 354, 0, 357, 21, 358, 354, 0,
634 364, 0, 22, 305, 295, 0, 364, 22, 305, 295,
635 0, 354, 70, 19, 361, 20, 305, 0, 0, 354,
636 70, 461, 19, 360, 361, 20, 305, 0, 354, 70,
637 461, 305, 0, 362, 0, 361, 21, 362, 0, 361,
638 21, 0, 461, 0, 461, 23, 305, 295, 0, 203,
639 0, 378, 0, 368, 193, 0, 368, 363, 0, 203,
640 0, 368, 203, 0, 371, 0, 354, 369, 0, 111,
641 0, 112, 0, 113, 0, 366, 0, 367, 366, 0,
642 34, 0, 34, 367, 0, 34, 368, 0, 34, 367,
643 368, 0, 370, 0, 370, 21, 5, 0, 461, 0,
644 370, 21, 461, 0, 5, 0, 372, 0, 372, 21,
645 5, 0, 0, 373, 375, 0, 0, 372, 21, 374,
646 375, 0, 305, 340, 363, 305, 0, 461, 0, 339,
647 0, 339, 377, 0, 368, 0, 379, 0, 368, 379,
648 0, 0, 379, 0, 305, 24, 354, 377, 25, 0,
649 26, 27, 0, 26, 295, 27, 0, 379, 26, 27,
650 0, 379, 26, 295, 27, 0, 305, 24, 25, 0,
651 305, 24, 371, 25, 0, 379, 305, 24, 25, 0,
652 379, 305, 24, 371, 25, 0, 397, 0, 399, 0,
653 402, 0, 405, 0, 420, 0, 423, 0, 455, 0,
654 428, 0, 457, 0, 383, 0, 381, 0, 390, 0,
655 383, 390, 0, 427, 383, 0, 454, 396, 11, 24,
656 293, 25, 18, 0, 454, 396, 11, 24, 293, 25,
657 0, 385, 390, 0, 0, 0, 13, 24, 294, 18,
658 294, 18, 386, 294, 387, 25, 0, 0, 191, 407,
659 24, 389, 431, 25, 0, 192, 0, 397, 0, 399,
660 0, 402, 0, 393, 416, 0, 393, 0, 394, 0,
661 420, 0, 391, 0, 384, 0, 388, 0, 457, 0,
662 24, 390, 25, 0, 1, 0, 0, 422, 392, 390,
663 0, 407, 19, 0, 411, 20, 0, 396, 0, 415,
664 0, 397, 0, 399, 0, 402, 0, 406, 0, 421,
665 0, 423, 0, 428, 0, 456, 0, 24, 396, 25,
666 0, 457, 0, 1, 0, 461, 22, 0, 110, 380,
667 0, 0, 101, 398, 0, 0, 6, 295, 400, 22,
668 0, 0, 101, 398, 6, 295, 401, 22, 0, 0,
669 7, 403, 22, 0, 0, 101, 398, 7, 404, 22,
670 0, 24, 405, 25, 0, 407, 413, 0, 407, 414,
671 408, 0, 0, 0, 0, 0, 0, 20, 0, 110,
672 20, 0, 419, 20, 0, 419, 110, 20, 0, 416,
673 20, 0, 416, 110, 20, 0, 416, 419, 20, 0,
674 416, 419, 110, 20, 0, 19, 412, 0, 19, 20,
675 0, 19, 415, 20, 0, 19, 416, 20, 0, 19,
676 416, 419, 20, 0, 396, 0, 415, 396, 0, 296,
677 0, 416, 296, 0, 418, 0, 417, 21, 418, 0,
678 292, 0, 19, 417, 459, 20, 0, 380, 0, 419,
679 380, 0, 18, 0, 293, 18, 0, 18, 0, 293,
680 18, 0, 293, 0, 8, 24, 293, 25, 0, 422,
681 380, 0, 0, 422, 380, 9, 424, 380, 0, 0,
682 10, 24, 293, 425, 25, 380, 0, 11, 24, 293,
683 25, 0, 11, 24, 293, 25, 0, 0, 0, 191,
684 429, 407, 24, 430, 431, 25, 405, 453, 408, 0,
685 433, 0, 0, 431, 432, 21, 433, 0, 452, 0,
686 460, 0, 188, 0, 187, 0, 190, 0, 434, 190,
687 0, 434, 0, 24, 293, 25, 0, 435, 0, 268,
688 26, 293, 27, 0, 268, 24, 25, 0, 268, 24,
689 269, 25, 0, 71, 24, 292, 21, 376, 25, 0,
690 268, 354, 28, 461, 305, 0, 268, 354, 45, 461,
691 305, 0, 268, 48, 0, 268, 49, 0, 436, 0,
692 48, 270, 0, 49, 270, 0, 29, 276, 0, 34,
693 276, 0, 33, 276, 0, 32, 276, 0, 31, 276,
694 0, 30, 276, 0, 273, 0, 437, 0, 24, 376,
695 25, 276, 0, 438, 0, 277, 34, 276, 0, 277,
696 35, 276, 0, 277, 36, 276, 0, 439, 0, 278,
697 33, 277, 0, 278, 32, 277, 0, 440, 0, 279,
698 50, 278, 0, 279, 51, 278, 0, 441, 0, 280,
699 37, 279, 0, 280, 38, 279, 0, 280, 52, 279,
700 0, 280, 53, 279, 0, 442, 0, 281, 54, 280,
701 0, 281, 55, 280, 0, 443, 0, 282, 29, 281,
702 0, 444, 0, 283, 39, 282, 0, 445, 0, 284,
703 40, 283, 0, 446, 0, 285, 56, 284, 0, 447,
704 0, 287, 57, 285, 0, 448, 0, 0, 0, 287,
705 41, 450, 293, 22, 451, 289, 0, 449, 0, 270,
706 23, 292, 0, 270, 58, 292, 0, 270, 59, 292,
707 0, 270, 60, 292, 0, 270, 61, 292, 0, 270,
708 62, 292, 0, 270, 63, 292, 0, 270, 64, 292,
709 0, 270, 65, 292, 0, 270, 66, 292, 0, 270,
710 67, 292, 0, 192, 0, 0, 12, 0, 426, 380,
711 0, 454, 380, 11, 24, 293, 25, 18, 0, 385,
712 380, 0, 426, 396, 0, 454, 396, 11, 24, 293,
713 25, 18, 0, 454, 396, 11, 24, 293, 25, 0,
714 385, 396, 0, 14, 461, 18, 0, 15, 18, 0,
715 100, 15, 18, 0, 16, 18, 0, 96, 16, 18,
716 0, 97, 16, 18, 0, 98, 16, 18, 0, 99,
717 16, 18, 0, 17, 18, 0, 17, 293, 18, 0,
718 0, 18, 0, 0, 21, 0, 186, 0, 187, 0,
719 191, 0, 192, 0, 460, 0, 188, 0, 193, 0,
720 188, 0, 44, 24, 293, 25, 0, 44, 24, 376,
727 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
728 static const short yyrline[] =
730 0, 324, 325, 329, 330, 334, 335, 336, 337, 338,
731 339, 340, 341, 345, 347, 352, 352, 361, 367, 372,
732 373, 378, 379, 381, 383, 400, 400, 418, 418, 433,
733 434, 436, 440, 457, 457, 469, 469, 483, 483, 483,
734 492, 493, 494, 495, 499, 503, 508, 508, 513, 513,
735 521, 522, 526, 532, 533, 537, 538, 542, 548, 549,
736 553, 554, 555, 559, 560, 561, 567, 568, 572, 574,
737 576, 578, 587, 589, 591, 593, 610, 614, 615, 622,
738 623, 632, 634, 639, 640, 641, 642, 643, 644, 648,
739 649, 650, 651, 652, 653, 657, 661, 661, 670, 674,
740 678, 678, 693, 695, 700, 704, 705, 709, 713, 719,
741 724, 725, 729, 733, 734, 738, 739, 740, 744, 745,
742 746, 747, 748, 752, 753, 754, 755, 756, 760, 761,
743 765, 772, 777, 777, 783, 783, 783, 794, 805, 806,
744 810, 811, 812, 813, 814, 815, 816, 817, 818, 822,
745 823, 828, 829, 833, 835, 837, 838, 839, 840, 841,
746 843, 848, 849, 853, 857, 870, 871, 872, 873, 874,
747 875, 876, 876, 882, 883, 884, 885, 886, 887, 888,
748 889, 890, 891, 896, 897, 901, 902, 903, 904, 905,
749 906, 907, 908, 909, 910, 911, 915, 916, 918, 922,
750 928, 928, 933, 934, 935, 936, 940, 941, 946, 947,
751 948, 949, 953, 954, 955, 959, 960, 961, 965, 966,
752 967, 968, 969, 973, 974, 975, 979, 980, 984, 985,
753 989, 990, 994, 995, 995, 1007, 1008, 1008, 1021, 1022,
754 1022, 1022, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035,
755 1036, 1037, 1038, 1039, 1043, 1044, 1048, 1049, 1053, 1059,
756 1060, 1061, 1065, 1079, 1079, 1090, 1090, 1099, 1100, 1104,
757 1109, 1109, 1114, 1114, 1117, 1118, 1122, 1126, 1130, 1134,
758 1135, 1139, 1143, 1144, 1148, 1149, 1153, 1154, 1155, 1156,
759 1164, 1165, 1170, 1171, 1175, 1176, 1180, 1182, 1192, 1193,
760 1194, 1195, 1196, 1200, 1204, 1204, 1220, 1224, 1228, 1228,
761 1242, 1242, 1274, 1275, 1279, 1280, 1281, 1282, 1283, 1287,
762 1288, 1289, 1290, 1294, 1295, 1296, 1297, 1298, 1299, 1300,
763 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310,
764 1314, 1315, 1319, 1320, 1324, 1325, 1329, 1330, 1331, 1332,
765 1336, 1337, 1338, 1339, 1340, 1341, 1345, 1346, 1347, 1348,
766 1352, 1353, 1354, 1355, 1359, 1360, 1361, 1362, 1363, 1364,
767 1365, 1366, 1367, 1368, 1369, 1370, 1378, 1379, 1380, 1381,
768 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391,
769 1395, 1400, 1401, 1406, 1407, 1412, 1413, 1414, 1418, 1419,
770 1423, 1430, 1430, 1430, 1436, 1436, 1436, 1441, 1443, 1445,
771 1445, 1445, 1450, 1450, 1450, 1455, 1457, 1459, 1460, 1464,
772 1468, 1469, 1470, 1474, 1476, 1481, 1483, 1488, 1489, 1490,
773 1495, 1497, 1497, 1499, 1503, 1505, 1507, 1511, 1516, 1524,
774 1525, 1526, 1532, 1537, 1538, 1543, 1544, 1548, 1549, 1550,
775 1554, 1555, 1559, 1560, 1561, 1562, 1566, 1567, 1571, 1572,
776 1576, 1577, 1578, 1582, 1582, 1583, 1583, 1588, 1600, 1617,
777 1618, 1622, 1623, 1624, 1628, 1629, 1633, 1635, 1636, 1638,
778 1639, 1641, 1643, 1645, 1647, 1654, 1655, 1656, 1657, 1658,
779 1659, 1660, 1661, 1662, 1667, 1671, 1675, 1676, 1681, 1683,
780 1685, 1687, 1692, 1692, 1692, 1700, 1700, 1704, 1708, 1709,
781 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719,
782 1720, 1724, 1724, 1731, 1735, 1739, 1740, 1744, 1745, 1746,
783 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1758, 1759,
784 1767, 1768, 1775, 1775, 1777, 1777, 1782, 1782, 1784, 1784,
785 1789, 1790, 1795, 1799, 1803, 1807, 1811, 1815, 1819, 1820,
786 1821, 1822, 1824, 1825, 1827, 1829, 1836, 1841, 1843, 1845,
787 1847, 1852, 1853, 1857, 1858, 1862, 1863, 1867, 1868, 1872,
788 1873, 1877, 1878, 1882, 1883, 1884, 1888, 1902, 1907, 1907,
789 1912, 1912, 1917, 1923, 1927, 1927, 1927, 1938, 1939, 1939,
790 1944, 1945, 1946, 1957, 1965, 1966, 1970, 1971, 1975, 1976,
791 1977, 1978, 1979, 1981, 1982, 1983, 1984, 1988, 1989, 1990,
792 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2001, 2002, 2006,
793 2007, 2008, 2009, 2013, 2014, 2015, 2019, 2020, 2021, 2025,
794 2026, 2027, 2028, 2029, 2033, 2034, 2035, 2039, 2040, 2044,
795 2045, 2049, 2050, 2054, 2055, 2059, 2060, 2064, 2065, 2065,
796 2065, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079,
797 2080, 2081, 2082, 2086, 2087, 2091, 2095, 2097, 2099, 2104,
798 2105, 2107, 2109, 2113, 2114, 2115, 2117, 2118, 2119, 2120,
799 2121, 2122, 2123, 2127, 2128, 2132, 2133, 2137, 2141, 2142,
800 2143, 2144, 2145, 2149, 2150, 2151, 2152
805 #if (YYDEBUG) || defined YYERROR_VERBOSE
807 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
808 static const char *const yytname[] =
810 "$", "error", "$undefined.", "BADTOK", "SKIPTOK", "CTOK_ELIPSIS", "CASE",
811 "DEFAULT", "CIF", "CELSE", "SWITCH", "WHILE", "DO", "CFOR", "GOTO",
812 "CONTINUE", "BREAK", "RETURN", "TSEMI", "TLBRACE", "TRBRACE", "TCOMMA",
813 "TCOLON", "TASSIGN", "TLPAREN", "TRPAREN", "TLSQBR", "TRSQBR", "TDOT",
814 "TAMPERSAND", "TEXCL", "TTILDE", "TMINUS", "TPLUS", "TMULT", "TDIV",
815 "TPERCENT", "TLT", "TGT", "TCIRC", "TBAR", "TQUEST", "CSIZEOF",
816 "CALIGNOF", "CTYPEOF", "ARROW_OP", "CTYPEDEF", "COFFSETOF", "INC_OP",
817 "DEC_OP", "LEFT_OP", "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP",
818 "AND_OP", "OR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN",
819 "ADD_ASSIGN", "SUB_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN",
820 "XOR_ASSIGN", "OR_ASSIGN", "CSTRUCT", "CUNION", "CENUM", "VA_ARG",
821 "VA_DCL", "QWARN", "QGLOBALS", "QMODIFIES", "QNOMODS", "QCONSTANT",
822 "QFUNCTION", "QITER", "QDEFINES", "QUSES", "QALLOCATES", "QSETS",
823 "QRELEASES", "QPRECLAUSE", "QPOSTCLAUSE", "QINVARIANT", "QALT",
824 "QUNDEF", "QKILLED", "QENDMACRO", "LLMACRO", "LLMACROITER",
825 "LLMACROEND", "TENDMACRO", "QSWITCHBREAK", "QLOOPBREAK", "QINNERBREAK",
826 "QSAFEBREAK", "QINNERCONTINUE", "QFALLTHROUGH", "QLINTNOTREACHED",
827 "QLINTFALLTHROUGH", "QLINTFALLTHRU", "QARGSUSED", "QPRINTFLIKE",
828 "QLINTPRINTFLIKE", "QSCANFLIKE", "QMESSAGELIKE", "QNOTREACHED",
829 "QCONST", "QRESTRICT", "QVOLATILE", "QINLINE", "QEXTENSION", "QEXTERN",
830 "QSTATIC", "QAUTO", "QREGISTER", "QOUT", "QIN", "QYIELD", "QONLY",
831 "QTEMP", "QSHARED", "QREF", "QUNIQUE", "QCHECKED", "QUNCHECKED",
832 "QCHECKEDSTRICT", "QCHECKMOD", "QKEEP", "QKEPT", "QPARTIAL", "QSPECIAL",
833 "QOWNED", "QDEPENDENT", "QRETURNED", "QEXPOSED", "QNULL", "QOBSERVER",
834 "QISNULL", "QEXITS", "QMAYEXIT", "QNEVEREXIT", "QTRUEEXIT",
835 "QFALSEEXIT", "QLONG", "QSIGNED", "QUNSIGNED", "QSHORT", "QUNUSED",
836 "QSEF", "QNOTNULL", "QRELNULL", "QABSTRACT", "QCONCRETE", "QMUTABLE",
837 "QIMMUTABLE", "QTRUENULL", "QFALSENULL", "QEXTERNAL", "QREFCOUNTED",
838 "QREFS", "QNEWREF", "QTEMPREF", "QKILLREF", "QRELDEF", "CGCHAR",
839 "CBOOL", "CINT", "CGFLOAT", "CDOUBLE", "CVOID", "QANYTYPE",
840 "QINTEGRALTYPE", "QUNSIGNEDINTEGRALTYPE", "QSIGNEDINTEGRALTYPE",
841 "QNULLTERMINATED", "QSETBUFFERSIZE", "QSETSTRINGLENGTH", "QMAXSET",
842 "QMAXREAD", "QTESTINRANGE", "TCAND", "IDENTIFIER", "NEW_IDENTIFIER",
843 "TYPE_NAME_OR_ID", "CANNOTATION", "CCONSTANT", "ITER_NAME",
844 "ITER_ENDNAME", "TYPE_NAME", "METASTATE_NAME", "file", "externalDefs",
845 "externalDef", "constantDecl", "fcnDecl", "@1", "plainFcn",
846 "plainNamedDecl", "namedDeclBase", "@2", "@3", "plainNamedDeclBase",
847 "@4", "@5", "iterDecl", "@6", "@7", "macroDef", "fcnDefHdr",
848 "metaStateConstraint", "metaStateSpecifier", "@8", "@9",
849 "metaStateExpression", "metaStateName", "constraintSeperator",
850 "BufConstraintList", "BufConstraint", "bufferModifier", "relationalOp",
851 "BufConstraintExpr", "BufConstraintTerm", "BufConstraintSrefExpr",
852 "BufUnaryOp", "BufBinaryOp", "functionClauses", "functionClausesPlain",
853 "functionClause", "functionClausePlain", "globalsClause",
854 "globalsClausePlain", "@10", "nomodsClause", "modifiesClause",
855 "modifiesClausePlain", "@11", "flagSpec", "flagId", "optWarnClause",
856 "warnClause", "warnClausePlain", "globIdList", "globIdListExpr",
857 "optGlobQuals", "globId", "globQual", "stateTag", "conditionTag",
858 "fcnDefHdrAux", "fcnBody", "@12", "@13", "@14", "fcnDef", "locModifies",
859 "modListExpr", "mExpr", "modList", "specClauseListExpr",
860 "optSpecClauseList", "specClauseList", "primaryExpr", "@15",
861 "postfixExpr", "argumentExprList", "unaryExpr", "fieldDesignator",
862 "offsetofExpr", "sizeofExpr", "@16", "sizeofExprAux", "castExpr",
863 "timesExpr", "plusExpr", "shiftExpr", "relationalExpr", "equalityExpr",
864 "bitandExpr", "xorExpr", "bitorExpr", "andExpr", "@17", "orExpr", "@18",
865 "conditionalExpr", "@19", "@20", "assignExpr", "expr", "optExpr",
866 "constantExpr", "initializer", "instanceDecl", "@21", "@22",
867 "namedInitializerType", "namedInitializer", "@23", "typeDecl", "@24",
868 "IsType", "PushType", "namedInitializerList", "namedInitializerListAux",
869 "namedInitializerTypeList", "namedInitializerTypeListAux",
870 "optDeclarators", "init", "designation", "designatorList", "designator",
871 "initList", "storageSpecifier", "stateClause", "stateClausePlain",
872 "@25", "conditionClause", "startConditionClause",
873 "conditionClausePlain", "@26", "@27", "functionConstraint",
874 "exitsQualifier", "checkQualifier", "stateQualifier", "paramQualifier",
875 "visibilityQualifier", "returnQualifier", "typedefQualifier",
876 "refcountQualifier", "typeModifier", "definedQualifier",
877 "typeQualifier", "typeSpecifier", "completeType",
878 "completeTypeSpecifier", "altType", "completeTypeSpecifierAux",
879 "optCompleteType", "optStructInvariant", "suSpc", "@28", "@29", "@30",
880 "@31", "@32", "@33", "@34", "@35", "NotType", "structDeclList",
881 "structDecl", "structNamedDeclList", "structNamedDecl", "enumSpc",
882 "@36", "enumeratorList", "enumerator", "optNamedDecl", "namedDecl",
883 "genericParamList", "innerMods", "innerModsList", "pointers",
884 "paramIdList", "idList", "paramTypeList", "paramList", "@37", "@38",
885 "paramDecl", "typeExpression", "abstractDecl", "optAbstractDeclBase",
886 "abstractDeclBase", "stmt", "iterBody", "endBody", "iterDefStmtList",
887 "iterDefIterationStmt", "forPred", "@39", "@40", "partialIterStmt",
888 "@41", "iterDefStmt", "iterSelectionStmt", "@42", "openScope",
889 "closeScope", "macroBody", "stmtErr", "labeledStmt",
890 "optExtraFallThroughs", "caseStmt", "@43", "@44", "defaultStmt", "@45",
891 "@46", "compoundStmt", "compoundStmtErr", "CreateInnerScope",
892 "DeleteInnerScope", "CreateStructInnerScope", "DeleteStructInnerScope",
893 "DeleteInnerScopeSafe", "compoundStmtRest", "compoundStmtAux",
894 "compoundStmtAuxErr", "stmtListErr", "initializerList",
895 "typeInitializerList", "typeInitializer", "stmtList", "expressionStmt",
896 "expressionStmtErr", "ifPred", "selectionStmt", "@47", "@48",
897 "whilePred", "iterWhilePred", "iterStmt", "@49", "@50", "iterArgList",
898 "@51", "iterArgExpr", "cconstantExpr", "primaryIterExpr",
899 "postfixIterExpr", "unaryIterExpr", "castIterExpr", "timesIterExpr",
900 "plusIterExpr", "shiftIterExpr", "relationalIterExpr",
901 "equalityIterExpr", "bitandIterExpr", "xorIterExpr", "bitorIterExpr",
902 "andIterExpr", "orIterExpr", "conditionalIterExpr", "@52", "@53",
903 "assignIterExpr", "endIter", "doHeader", "iterationStmt",
904 "iterationStmtErr", "jumpStmt", "optSemi", "optComma", "id", "newId",
909 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
910 static const short yyr1[] =
912 0, 195, 195, 196, 196, 197, 197, 197, 197, 197,
913 197, 197, 197, 198, 198, 200, 199, 201, 201, 202,
914 202, 203, 203, 203, 203, 204, 203, 205, 203, 206,
915 206, 206, 206, 207, 206, 208, 206, 210, 211, 209,
916 212, 212, 212, 212, 213, 214, 216, 215, 217, 215,
917 218, 218, 219, 220, 220, 221, 221, 222, 223, 223,
918 224, 224, 224, 225, 225, 225, 226, 226, 227, 227,
919 227, 227, 227, 227, 227, 227, 228, 229, 229, 230,
920 230, 231, 231, 232, 232, 232, 232, 232, 232, 233,
921 233, 233, 233, 233, 233, 234, 236, 235, 237, 238,
922 240, 239, 241, 241, 242, 243, 243, 244, 245, 245,
923 246, 246, 247, 248, 248, 249, 249, 249, 250, 250,
924 250, 250, 250, 251, 251, 251, 251, 251, 252, 252,
925 253, 253, 255, 254, 256, 257, 254, 258, 259, 259,
926 260, 260, 260, 260, 260, 260, 260, 260, 260, 261,
927 261, 262, 262, 263, 263, 263, 263, 263, 263, 263,
928 263, 264, 264, 265, 265, 266, 266, 266, 266, 266,
929 266, 267, 266, 268, 268, 268, 268, 268, 268, 268,
930 268, 268, 268, 269, 269, 270, 270, 270, 270, 270,
931 270, 270, 270, 270, 270, 270, 271, 271, 271, 272,
932 274, 273, 275, 275, 275, 275, 276, 276, 277, 277,
933 277, 277, 278, 278, 278, 279, 279, 279, 280, 280,
934 280, 280, 280, 281, 281, 281, 282, 282, 283, 283,
935 284, 284, 285, 286, 285, 287, 288, 287, 289, 290,
936 291, 289, 292, 292, 292, 292, 292, 292, 292, 292,
937 292, 292, 292, 292, 293, 293, 294, 294, 295, 296,
938 296, 296, 297, 298, 297, 299, 297, 300, 300, 301,
939 302, 301, 304, 303, 303, 303, 305, 306, 307, 308,
940 308, 309, 310, 310, 311, 311, 312, 312, 312, 312,
941 313, 313, 314, 314, 315, 315, 316, 316, 317, 317,
942 317, 317, 317, 318, 320, 319, 321, 322, 324, 323,
943 325, 323, 326, 326, 327, 327, 327, 327, 327, 328,
944 328, 328, 328, 329, 329, 329, 329, 329, 329, 329,
945 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
946 330, 330, 331, 331, 332, 332, 333, 333, 333, 333,
947 334, 334, 334, 334, 334, 334, 335, 335, 335, 335,
948 336, 336, 336, 336, 337, 337, 337, 337, 337, 337,
949 337, 337, 337, 337, 337, 337, 338, 338, 338, 338,
950 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
951 339, 340, 340, 341, 341, 342, 342, 342, 343, 343,
952 344, 346, 347, 345, 348, 349, 345, 345, 345, 350,
953 351, 345, 352, 353, 345, 345, 345, 345, 345, 354,
954 355, 355, 355, 356, 356, 357, 357, 358, 358, 358,
955 359, 360, 359, 359, 361, 361, 361, 362, 362, 363,
956 363, 363, 363, 364, 364, 365, 365, 366, 366, 366,
957 367, 367, 368, 368, 368, 368, 369, 369, 370, 370,
958 371, 371, 371, 373, 372, 374, 372, 375, 375, 376,
959 376, 377, 377, 377, 378, 378, 379, 379, 379, 379,
960 379, 379, 379, 379, 379, 380, 380, 380, 380, 380,
961 380, 380, 380, 380, 381, 382, 383, 383, 384, 384,
962 384, 384, 386, 387, 385, 389, 388, 388, 390, 390,
963 390, 390, 390, 390, 390, 390, 390, 390, 390, 390,
964 390, 392, 391, 393, 394, 395, 395, 396, 396, 396,
965 396, 396, 396, 396, 396, 396, 396, 396, 397, 397,
966 398, 398, 400, 399, 401, 399, 403, 402, 404, 402,
967 405, 405, 406, 407, 408, 409, 410, 411, 412, 412,
968 412, 412, 412, 412, 412, 412, 413, 414, 414, 414,
969 414, 415, 415, 416, 416, 417, 417, 418, 418, 419,
970 419, 420, 420, 421, 421, 421, 422, 423, 424, 423,
971 425, 423, 426, 427, 429, 430, 428, 431, 432, 431,
972 433, 433, 433, 433, 434, 434, 435, 435, 436, 436,
973 436, 436, 436, 436, 436, 436, 436, 437, 437, 437,
974 437, 437, 437, 437, 437, 437, 437, 438, 438, 439,
975 439, 439, 439, 440, 440, 440, 441, 441, 441, 442,
976 442, 442, 442, 442, 443, 443, 443, 444, 444, 445,
977 445, 446, 446, 447, 447, 448, 448, 449, 450, 451,
978 449, 452, 452, 452, 452, 452, 452, 452, 452, 452,
979 452, 452, 452, 453, 453, 454, 455, 455, 455, 456,
980 456, 456, 456, 457, 457, 457, 457, 457, 457, 457,
981 457, 457, 457, 458, 458, 459, 459, 460, 461, 461,
982 461, 461, 461, 462, 462, 462, 462
985 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
986 static const short yyr2[] =
988 0, 0, 1, 1, 2, 2, 1, 1, 1, 1,
989 1, 1, 1, 8, 11, 0, 5, 1, 3, 1,
990 2, 1, 6, 3, 6, 0, 6, 0, 7, 1,
991 6, 3, 6, 0, 6, 0, 7, 0, 0, 10,
992 3, 3, 3, 2, 1, 3, 0, 4, 0, 4,
993 1, 3, 1, 1, 1, 3, 1, 3, 1, 1,
994 1, 1, 1, 1, 4, 5, 1, 1, 1, 1,
995 3, 4, 2, 3, 3, 3, 1, 1, 1, 0,
996 2, 0, 2, 1, 1, 1, 1, 1, 1, 1,
997 1, 1, 1, 1, 1, 2, 0, 4, 1, 2,
998 0, 3, 1, 3, 1, 1, 0, 2, 3, 2,
999 1, 3, 2, 0, 2, 1, 1, 1, 1, 1,
1000 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1001 1, 3, 0, 3, 0, 0, 4, 2, 2, 1,
1002 1, 1, 1, 3, 4, 2, 3, 3, 3, 1,
1003 1, 1, 3, 1, 1, 3, 4, 2, 3, 3,
1004 3, 0, 1, 1, 3, 1, 1, 1, 3, 1,
1005 1, 0, 4, 1, 4, 3, 4, 6, 5, 5,
1006 2, 2, 7, 1, 3, 1, 2, 2, 2, 2,
1007 2, 2, 2, 2, 1, 1, 3, 4, 1, 9,
1008 0, 3, 4, 2, 4, 2, 1, 4, 1, 3,
1009 3, 3, 1, 3, 3, 1, 3, 3, 1, 3,
1010 3, 3, 3, 1, 3, 3, 1, 3, 1, 3,
1011 1, 3, 1, 0, 4, 1, 0, 4, 1, 0,
1012 0, 7, 1, 3, 3, 3, 3, 3, 3, 3,
1013 3, 3, 3, 3, 1, 3, 0, 1, 1, 1,
1014 1, 1, 3, 0, 9, 0, 11, 1, 1, 2,
1015 0, 6, 0, 8, 4, 4, 0, 0, 2, 1,
1016 4, 2, 1, 4, 0, 4, 1, 3, 4, 2,
1017 2, 2, 1, 2, 3, 2, 1, 3, 1, 1,
1018 1, 1, 1, 2, 0, 6, 2, 2, 0, 6,
1019 0, 5, 1, 1, 1, 1, 1, 1, 1, 1,
1020 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1021 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1022 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1023 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1024 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
1025 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1026 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1027 3, 1, 4, 1, 3, 2, 2, 2, 0, 1,
1028 0, 0, 0, 12, 0, 0, 11, 6, 6, 0,
1029 0, 10, 0, 0, 10, 5, 5, 4, 4, 0,
1030 1, 1, 2, 5, 3, 2, 4, 1, 3, 4,
1031 6, 0, 8, 4, 1, 3, 2, 1, 4, 1,
1032 1, 2, 2, 1, 2, 1, 2, 1, 1, 1,
1033 1, 2, 1, 2, 2, 3, 1, 3, 1, 3,
1034 1, 1, 3, 0, 2, 0, 4, 4, 1, 1,
1035 2, 1, 1, 2, 0, 1, 5, 2, 3, 3,
1036 4, 3, 4, 4, 5, 1, 1, 1, 1, 1,
1037 1, 1, 1, 1, 1, 1, 1, 2, 2, 7,
1038 6, 2, 0, 0, 10, 0, 6, 1, 1, 1,
1039 1, 2, 1, 1, 1, 1, 1, 1, 1, 3,
1040 1, 0, 3, 2, 2, 1, 1, 1, 1, 1,
1041 1, 1, 1, 1, 1, 3, 1, 1, 2, 2,
1042 0, 2, 0, 4, 0, 6, 0, 3, 0, 5,
1043 3, 2, 3, 0, 0, 0, 0, 0, 1, 2,
1044 2, 3, 2, 3, 3, 4, 2, 2, 3, 3,
1045 4, 1, 2, 1, 2, 1, 3, 1, 4, 1,
1046 2, 1, 2, 1, 2, 1, 4, 2, 0, 5,
1047 0, 6, 4, 4, 0, 0, 10, 1, 0, 4,
1048 1, 1, 1, 1, 1, 2, 1, 3, 1, 4,
1049 3, 4, 6, 5, 5, 2, 2, 1, 2, 2,
1050 2, 2, 2, 2, 2, 2, 1, 1, 4, 1,
1051 3, 3, 3, 1, 3, 3, 1, 3, 3, 1,
1052 3, 3, 3, 3, 1, 3, 3, 1, 3, 1,
1053 3, 1, 3, 1, 3, 1, 3, 1, 0, 0,
1054 7, 1, 3, 3, 3, 3, 3, 3, 3, 3,
1055 3, 3, 3, 1, 0, 1, 2, 7, 2, 2,
1056 7, 6, 2, 3, 2, 3, 2, 3, 3, 3,
1057 3, 2, 3, 0, 1, 0, 1, 1, 1, 1,
1061 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
1062 doesn't specify something else to do. Zero means the default is an
1064 static const short yydefact[] =
1066 0, 12, 11, 452, 0, 419, 260, 419, 15, 0,
1067 0, 0, 0, 276, 276, 276, 299, 298, 300, 301,
1068 302, 360, 361, 325, 327, 326, 330, 331, 319, 321,
1069 322, 320, 328, 329, 362, 363, 323, 324, 340, 336,
1070 332, 337, 333, 314, 315, 318, 316, 317, 357, 358,
1071 359, 356, 342, 341, 335, 334, 346, 347, 348, 349,
1072 344, 345, 343, 350, 351, 354, 355, 352, 353, 419,
1073 419, 419, 419, 419, 419, 419, 419, 419, 419, 338,
1074 697, 698, 702, 339, 699, 700, 703, 0, 3, 6,
1075 7, 443, 8, 9, 134, 44, 693, 10, 259, 261,
1076 0, 398, 276, 276, 276, 276, 276, 276, 276, 276,
1077 419, 276, 398, 398, 419, 391, 419, 0, 419, 130,
1078 276, 701, 21, 419, 447, 448, 449, 450, 453, 454,
1079 276, 279, 276, 276, 272, 419, 704, 419, 419, 702,
1080 0, 537, 276, 546, 0, 0, 0, 675, 0, 0,
1081 0, 0, 276, 583, 0, 276, 276, 276, 276, 276,
1082 276, 276, 276, 276, 0, 43, 0, 0, 0, 0,
1083 0, 540, 276, 170, 166, 169, 604, 594, 173, 185,
1084 206, 195, 194, 208, 212, 215, 218, 223, 226, 228,
1085 230, 232, 235, 238, 242, 254, 585, 200, 0, 0,
1086 571, 527, 528, 529, 530, 0, 0, 531, 276, 532,
1087 0, 533, 167, 0, 534, 536, 165, 0, 520, 0,
1088 581, 0, 553, 507, 0, 0, 0, 516, 0, 517,
1089 496, 515, 512, 513, 508, 509, 510, 0, 0, 514,
1090 521, 0, 0, 518, 495, 0, 364, 366, 365, 376,
1091 378, 377, 379, 380, 381, 382, 383, 384, 385, 4,
1092 276, 0, 132, 137, 419, 694, 5, 419, 399, 395,
1093 369, 371, 368, 370, 373, 372, 374, 375, 389, 367,
1094 396, 397, 0, 276, 276, 387, 276, 276, 0, 388,
1095 444, 386, 451, 455, 276, 166, 169, 0, 419, 469,
1096 0, 165, 419, 0, 278, 419, 0, 269, 276, 693,
1097 17, 19, 0, 419, 276, 29, 463, 206, 258, 542,
1098 0, 276, 276, 276, 276, 0, 684, 686, 691, 0,
1099 553, 0, 0, 0, 188, 193, 192, 191, 190, 189,
1100 0, 276, 186, 187, 276, 0, 0, 0, 0, 0,
1101 540, 0, 276, 539, 276, 485, 486, 487, 488, 0,
1102 489, 490, 276, 492, 276, 491, 493, 553, 276, 276,
1103 180, 181, 0, 276, 276, 276, 276, 276, 276, 276,
1104 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
1105 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
1106 233, 239, 236, 584, 276, 0, 682, 40, 0, 554,
1107 572, 587, 679, 605, 0, 538, 276, 0, 0, 0,
1108 582, 41, 497, 501, 573, 419, 511, 523, 524, 0,
1109 0, 0, 42, 23, 276, 463, 419, 419, 276, 262,
1110 131, 419, 0, 393, 0, 419, 0, 419, 0, 276,
1111 0, 705, 276, 276, 0, 471, 470, 472, 706, 276,
1112 275, 276, 274, 270, 419, 0, 276, 0, 419, 276,
1113 20, 460, 0, 0, 445, 461, 276, 0, 547, 0,
1114 590, 0, 257, 0, 683, 692, 553, 0, 168, 276,
1115 535, 276, 0, 0, 687, 688, 689, 690, 685, 541,
1116 276, 548, 0, 678, 419, 551, 676, 0, 0, 175,
1117 0, 183, 0, 0, 0, 243, 244, 245, 246, 247,
1118 248, 249, 250, 251, 252, 253, 209, 210, 211, 214,
1119 213, 216, 217, 219, 220, 221, 222, 224, 225, 227,
1120 229, 231, 276, 276, 276, 255, 276, 276, 201, 567,
1121 704, 571, 0, 419, 552, 588, 0, 0, 519, 505,
1122 276, 574, 522, 0, 0, 25, 0, 558, 276, 579,
1123 133, 419, 276, 553, 276, 263, 392, 276, 409, 0,
1124 417, 412, 0, 418, 0, 434, 437, 431, 433, 390,
1125 477, 0, 463, 473, 276, 0, 280, 268, 282, 267,
1126 276, 276, 276, 693, 16, 31, 276, 463, 276, 18,
1127 446, 456, 458, 37, 465, 419, 464, 468, 543, 586,
1128 0, 592, 276, 172, 276, 207, 419, 0, 276, 544,
1129 0, 550, 566, 0, 595, 276, 176, 174, 276, 276,
1130 234, 0, 237, 276, 203, 276, 205, 568, 569, 276,
1131 276, 276, 593, 276, 419, 276, 419, 79, 27, 559,
1132 562, 276, 276, 560, 276, 580, 136, 0, 265, 276,
1133 394, 415, 555, 401, 416, 555, 404, 276, 436, 276,
1134 0, 478, 481, 276, 0, 479, 0, 463, 419, 106,
1135 281, 276, 276, 276, 0, 33, 0, 276, 0, 81,
1136 462, 276, 474, 276, 0, 276, 577, 695, 575, 0,
1137 0, 0, 549, 276, 276, 184, 178, 179, 240, 0,
1138 0, 570, 589, 0, 276, 276, 276, 276, 276, 276,
1139 276, 276, 276, 0, 166, 169, 185, 206, 194, 212,
1140 215, 218, 223, 226, 228, 230, 232, 235, 0, 598,
1141 597, 167, 608, 617, 627, 629, 633, 636, 639, 644,
1142 647, 649, 651, 653, 655, 657, 661, 600, 165, 0,
1143 24, 0, 96, 100, 98, 123, 124, 125, 126, 127,
1144 128, 129, 26, 79, 83, 0, 85, 84, 0, 88,
1145 0, 419, 419, 86, 0, 87, 310, 0, 79, 563,
1146 564, 276, 561, 22, 276, 284, 419, 407, 555, 419,
1147 408, 555, 430, 435, 276, 0, 0, 482, 480, 483,
1148 0, 276, 0, 105, 276, 276, 0, 286, 271, 276,
1149 0, 292, 0, 276, 0, 419, 81, 35, 0, 457,
1150 459, 38, 81, 89, 91, 90, 94, 92, 93, 466,
1151 439, 0, 276, 474, 440, 475, 591, 502, 695, 276,
1152 0, 0, 177, 545, 0, 598, 276, 202, 204, 681,
1153 0, 0, 188, 193, 192, 191, 190, 189, 186, 187,
1154 276, 276, 276, 180, 181, 0, 276, 276, 276, 276,
1155 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
1156 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
1157 276, 276, 276, 233, 658, 236, 506, 0, 500, 104,
1158 109, 102, 113, 693, 80, 95, 99, 107, 304, 307,
1159 303, 0, 308, 306, 28, 565, 276, 0, 421, 419,
1160 419, 420, 419, 419, 419, 438, 276, 476, 484, 283,
1161 273, 296, 0, 0, 295, 289, 290, 293, 291, 284,
1162 13, 32, 34, 81, 30, 693, 82, 463, 467, 441,
1163 442, 276, 0, 576, 182, 0, 198, 0, 553, 241,
1164 680, 168, 276, 0, 175, 0, 0, 0, 0, 662,
1165 663, 664, 665, 666, 667, 668, 669, 670, 671, 672,
1166 209, 210, 211, 214, 213, 216, 217, 219, 220, 221,
1167 222, 224, 225, 227, 229, 231, 654, 276, 656, 276,
1168 499, 108, 0, 118, 119, 120, 121, 122, 693, 110,
1169 419, 113, 0, 0, 141, 142, 101, 151, 693, 139,
1170 140, 0, 48, 0, 0, 58, 59, 69, 67, 313,
1171 0, 312, 56, 76, 0, 63, 66, 0, 693, 68,
1172 161, 284, 276, 419, 0, 276, 422, 410, 419, 413,
1173 419, 432, 287, 276, 294, 693, 36, 0, 276, 503,
1174 578, 276, 276, 0, 677, 674, 207, 276, 176, 174,
1175 276, 276, 0, 599, 103, 113, 97, 116, 112, 117,
1176 115, 114, 0, 145, 0, 0, 0, 0, 138, 0,
1177 0, 154, 163, 693, 153, 0, 0, 66, 0, 72,
1178 0, 54, 53, 0, 61, 60, 62, 0, 0, 0,
1179 0, 0, 0, 276, 693, 162, 0, 264, 276, 424,
1180 276, 276, 419, 427, 0, 402, 0, 405, 288, 297,
1181 0, 39, 276, 0, 199, 0, 196, 673, 554, 0,
1182 178, 179, 659, 111, 146, 143, 149, 0, 150, 147,
1183 148, 152, 0, 157, 0, 0, 0, 0, 276, 0,
1184 78, 77, 0, 73, 0, 50, 45, 46, 55, 66,
1185 57, 70, 0, 74, 75, 0, 0, 311, 276, 276,
1186 285, 276, 276, 0, 425, 276, 411, 0, 414, 0,
1187 14, 504, 197, 596, 177, 276, 144, 158, 155, 0,
1188 159, 160, 164, 305, 52, 49, 0, 0, 71, 47,
1189 64, 309, 266, 428, 419, 423, 276, 400, 406, 660,
1190 156, 65, 51, 426, 429, 403, 0, 0, 0
1193 static const short yydefgoto[] =
1195 1246, 87, 88, 89, 90, 138, 309, 310, 91, 657,
1196 798, 311, 836, 963, 92, 699, 965, 938, 94, 1049,
1197 1185, 1131, 1115, 1186, 1225, 1123, 1051, 1052, 1053, 1127,
1198 1054, 1055, 1189, 1057, 1182, 782, 841, 783, 842, 784,
1199 843, 922, 844, 787, 845, 923, 920, 921, 822, 789,
1200 790, 1028, 1029, 1030, 1098, 1031, 791, 792, 95, 263,
1201 436, 264, 573, 96, 1036, 1166, 1167, 1038, 1112, 1134,
1202 1113, 178, 330, 179, 510, 180, 975, 181, 182, 405,
1203 548, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1204 192, 542, 193, 544, 194, 543, 866, 195, 224, 483,
1205 319, 424, 98, 669, 804, 598, 599, 602, 99, 305,
1206 197, 261, 132, 133, 600, 601, 937, 828, 829, 830,
1207 831, 952, 101, 793, 847, 1041, 795, 796, 848, 1060,
1208 931, 1058, 102, 103, 104, 105, 106, 107, 108, 109,
1209 110, 111, 112, 113, 299, 425, 442, 115, 269, 1245,
1210 116, 808, 1207, 811, 1209, 672, 1144, 675, 1146, 117,
1211 940, 941, 1141, 1142, 118, 680, 584, 585, 852, 135,
1212 473, 127, 128, 120, 610, 611, 474, 475, 476, 701,
1213 616, 332, 816, 854, 457, 353, 225, 245, 226, 227,
1214 354, 971, 1153, 229, 653, 230, 231, 429, 232, 233,
1215 199, 410, 355, 351, 356, 477, 711, 357, 320, 630,
1216 358, 204, 359, 554, 806, 1067, 238, 570, 505, 409,
1217 206, 571, 707, 708, 572, 360, 207, 208, 361, 650,
1218 620, 362, 241, 363, 367, 714, 749, 917, 750, 212,
1219 752, 753, 754, 755, 756, 757, 758, 759, 760, 761,
1220 762, 763, 764, 765, 766, 1017, 1215, 767, 1158, 364,
1221 365, 214, 366, 266, 860, 301, 217, 123
1224 static const short yypact[] =
1226 2483,-32768,-32768, 239, 167, 5520,-32768, 6818,-32768, 811,
1227 2346, 3733, 3733,-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,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1231 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1232 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1233 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1234 -32768,-32768, 556,-32768,-32768,-32768,-32768, 2663,-32768,-32768,
1235 -32768, 155,-32768,-32768, 74,-32768, 99,-32768,-32768,-32768,
1236 198, 6410,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1237 -32768,-32768, 6410, 6410, 221, 165,-32768, 395,-32768,-32768,
1238 811,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 239,-32768,
1239 5802,-32768, 272,-32768, 221,-32768,-32768,-32768, 5520,-32768,
1240 283,-32768, 5802,-32768, 334, 380, 426,-32768, 428, 811,
1241 416, 424, 871,-32768, 3045, 5802, 5802, 5802, 5802, 5802,
1242 5802,-32768, 5823, 5823, 433,-32768, 457, 459, 475, 499,
1243 514, 430, 4962,-32768, 534, 544,-32768, 624,-32768, 823,
1244 962,-32768,-32768,-32768, 447, 107, 150, 115, 356, 626,
1245 504, 629, 610, 109,-32768,-32768, 303,-32768, 3839, 592,
1246 612,-32768,-32768,-32768,-32768, 675, 3537,-32768, 4962,-32768,
1247 3839,-32768, 520, 3839,-32768,-32768, 698, 730,-32768, 745,
1248 -32768, 3238, 624, 773, 593, 695, 3582,-32768, 3733,-32768,
1249 -32768,-32768, 6138,-32768,-32768,-32768,-32768, 788, 794,-32768,
1250 -32768, 3733, 3839,-32768,-32768, 749,-32768,-32768,-32768,-32768,
1251 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1252 810, 826,-32768,-32768, 6682,-32768,-32768,-32768,-32768,-32768,
1253 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1254 -32768,-32768, 838, 762,-32768,-32768, 811, 811, 43,-32768,
1255 155,-32768,-32768,-32768, 5371,-32768,-32768, 322, 6002, 286,
1256 842,-32768,-32768, 851,-32768,-32768, 904, 912, 762, 99,
1257 -32768, 256, 921,-32768, 811,-32768, 397,-32768,-32768,-32768,
1258 935, 5802, 5802, 5802, 1272, 941,-32768,-32768,-32768, 639,
1259 942, 410, 949, 975,-32768,-32768,-32768,-32768,-32768,-32768,
1260 1018, 5371,-32768,-32768, 5802, 1037, 1038, 1044, 1046, 1052,
1261 430, 326, 5392,-32768, 4962,-32768,-32768,-32768,-32768, 1058,
1262 -32768,-32768, 4962,-32768, 4962,-32768,-32768,-32768, 5690, 5802,
1263 -32768,-32768, 73, 5802, 5802, 5802, 5802, 5802, 5802, 5802,
1264 5802, 5802, 5802, 5802, 5802, 5802, 5802, 5802, 5802, 5802,
1265 5802, 5802, 5802, 5802, 5802, 5802, 5802, 5802, 5802, 5802,
1266 -32768,-32768,-32768,-32768, 5802, 538,-32768,-32768, 2852,-32768,
1267 -32768, 1071,-32768,-32768, 1070,-32768, 5802, 515, 1057, 1061,
1268 -32768,-32768,-32768,-32768,-32768, 221, 6138,-32768,-32768, 3733,
1269 1952, 1075,-32768,-32768, 5802, 28, 3945, 5045, 762,-32768,
1270 482, 6818, 996, 1067, 1074, 1077, 1078, 1077, 811, 1080,
1271 467,-32768,-32768, 5701, 1066, 355,-32768, 370,-32768, 762,
1272 -32768, 672,-32768,-32768,-32768, 1003, 1073, 1079,-32768, 762,
1273 256,-32768, 811, 1076,-32768, 1081, 811, 1086,-32768, 469,
1274 1090, 495, 1090, 1094,-32768,-32768, 942, 1089,-32768, 5419,
1275 -32768,-32768, 1091, 1101,-32768,-32768,-32768,-32768,-32768,-32768,
1276 5802,-32768, 1099,-32768, 3945,-32768,-32768, 1104, 1102,-32768,
1277 599,-32768, 94, 811, 811,-32768,-32768,-32768,-32768,-32768,
1278 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 447,
1279 447, 107, 107, 150, 150, 150, 150, 115, 115, 356,
1280 626, 504, 5802, 5802, 5802,-32768, 5834, 5866,-32768,-32768,
1281 3431,-32768, 3688, 4133,-32768,-32768, 1107, 608,-32768,-32768,
1282 762,-32768,-32768, 1115, 1106,-32768, 1119,-32768, 2301,-32768,
1283 -32768, 4321, 4509, 942,-32768, 1122,-32768,-32768, 1126, 1128,
1284 -32768, 1129, 1131,-32768, 554,-32768, 1125,-32768,-32768,-32768,
1285 -32768, 1124, 768, 370, 5733, 1130,-32768,-32768,-32768,-32768,
1286 1132,-32768,-32768, 369,-32768,-32768, 5802, 320, 762,-32768,
1287 -32768, 1134,-32768,-32768, 1153, 6818,-32768,-32768,-32768,-32768,
1288 1135,-32768, 1272,-32768, 5440,-32768,-32768, 1140,-32768,-32768,
1289 1139,-32768,-32768, 1138,-32768, 5802,-32768,-32768,-32768,-32768,
1290 629, 742, 610, 5371,-32768, 5371,-32768,-32768,-32768, 4554,
1291 4962, 5802,-32768, 5922,-32768, 5802,-32768, 1256,-32768,-32768,
1292 -32768, 4660, 4705,-32768, 4811,-32768,-32768, 1142,-32768,-32768,
1293 -32768,-32768,-32768, 1149,-32768,-32768, 1150,-32768, 811,-32768,
1294 811,-32768,-32768, 156, 1146,-32768, 1145, 69,-32768, 1100,
1295 -32768, 2401,-32768,-32768, 1151,-32768, 1154,-32768, 418, 1256,
1296 -32768, 811, 589, 4962, 1162, 5440,-32768, 1160,-32768, 1163,
1297 1158, 1164,-32768, 5802, 5922,-32768,-32768,-32768,-32768, 1175,
1298 1176,-32768,-32768, 642, 5371, 5802, 5802, 5802, 5802, 5802,
1299 5802, 5823, 5823, 1161, 671, 674, 1023, 1250, 684, 850,
1300 790, 847, 621, 855, 1159, 1148, 1165, 1133, 192, 1179,
1301 -32768, 91,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1302 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 706, 707,
1303 -32768, 1019,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1304 -32768,-32768,-32768, 1256,-32768, 1116,-32768,-32768, 1117,-32768,
1305 1118,-32768,-32768,-32768, 1120,-32768, 2065, 1127, 1256,-32768,
1306 -32768, 4856,-32768,-32768,-32768,-32768, 6546,-32768,-32768, 6546,
1307 -32768,-32768,-32768,-32768, 5802, 896, 1191,-32768,-32768,-32768,
1308 1192, 672, 1201,-32768, 2401, 5802, 811,-32768,-32768, 2401,
1309 575,-32768, 1198, 2401, 1137,-32768, 1256,-32768, 1196,-32768,
1310 -32768,-32768, 1256,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1311 155, 1200,-32768, 525,-32768, 370,-32768,-32768, 1160, 4911,
1312 1202, 811,-32768,-32768, 729, 1204, 5802, 1140, 1140, 1207,
1313 732, 1211, 766, 791, 792, 807, 818, 827, 858, 886,
1314 5802, 5722, 5802, 887, 908, 79, 5802, 5802, 5802, 5802,
1315 5802, 5802, 5802, 5802, 5802, 5802, 5802, 5802, 5802, 5802,
1316 5802, 5802, 5802, 5802, 5802, 5802, 5802, 5802, 5802, 5802,
1317 5802, 5802, 5802, 5802,-32768, 5802,-32768, 1205, 1214,-32768,
1318 1048, 1206, 278, 71,-32768,-32768,-32768,-32768,-32768,-32768,
1319 -32768, 543,-32768,-32768,-32768,-32768, 2401, 658,-32768, 221,
1320 5205,-32768, 6546, 5205, 6546,-32768,-32768,-32768,-32768,-32768,
1321 -32768,-32768, 963, 1213,-32768,-32768,-32768,-32768,-32768,-32768,
1322 -32768,-32768,-32768, 1256,-32768, 99,-32768, 169,-32768,-32768,
1323 -32768, 5754, 1221,-32768,-32768, 567,-32768, 1224, 942,-32768,
1324 -32768, 909, 5419, 1222, 947, 948, 247, 811, 811,-32768,
1325 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1326 956, 986, 988, 857, 903, 477, 946, 75, 445, 566,
1327 597, 388, 746, 81, 521, 137, 629, 5802, 610, 5922,
1328 -32768, 520, 1019,-32768,-32768,-32768,-32768,-32768, 767,-32768,
1329 6274, 278, 113, 113,-32768,-32768,-32768, 103, 779,-32768,
1330 -32768, 89,-32768, 335, 108,-32768,-32768,-32768,-32768,-32768,
1331 1225,-32768, -1,-32768, 1022,-32768, 733, 1223, 99,-32768,
1332 89,-32768,-32768,-32768, 1227, 548,-32768,-32768, 5205,-32768,
1333 5205,-32768,-32768, 2070,-32768, 824,-32768, 1166, 689,-32768,
1334 -32768,-32768, 5802, 811,-32768, 1062, 991,-32768, 1010, 1013,
1335 -32768,-32768, 973,-32768,-32768, 278,-32768,-32768,-32768,-32768,
1336 -32768,-32768, 696, 103, 444, 811, 811, 113,-32768, 89,
1337 89,-32768, 244, 878,-32768, 1228, 985, 780, 108, 358,
1338 51,-32768,-32768, 335,-32768,-32768,-32768, 335, -10, 811,
1339 811, 1231, 335,-32768, 99, 1234, 925,-32768, 762,-32768,
1340 -32768, 1239,-32768, 1240, 1229,-32768, 1241,-32768,-32768,-32768,
1341 1172,-32768, 498, 1245,-32768, 344,-32768,-32768,-32768, 1249,
1342 1027, 1029,-32768,-32768,-32768,-32768, 103, 1248, 520,-32768,
1343 -32768, 103, 829, 244, 648, 811, 811, 89,-32768, 1082,
1344 -32768,-32768, 335,-32768, 780, 1237,-32768, 358,-32768, 358,
1345 -32768,-32768, 1251,-32768,-32768, 1082, 1254,-32768,-32768,-32768,
1346 -32768, 5802, 548, 1262,-32768,-32768,-32768, 1261,-32768, 1263,
1347 -32768,-32768,-32768,-32768, 1042, 5802,-32768,-32768,-32768, 1257,
1348 -32768,-32768, 244,-32768,-32768,-32768, 1260, 51,-32768,-32768,
1349 -32768,-32768,-32768,-32768,-32768,-32768, 5802,-32768,-32768,-32768,
1350 -32768,-32768,-32768,-32768,-32768,-32768, 1287, 1288,-32768
1353 static const short yypgoto[] =
1355 -32768,-32768, 1208,-32768,-32768,-32768,-32768, -430, -116,-32768,
1356 -32768, 977,-32768,-32768,-32768,-32768,-32768, 76,-32768,-32768,
1357 361,-32768,-32768, 62, 98,-32768, 171,-32768,-32768,-32768,
1358 -695,-32768, -874,-32768,-32768, -679, -685,-32768,-32768,-32768,
1359 -596,-32768, -591,-32768, -571,-32768, 275,-32768,-32768, 609,
1360 -659,-32768, 204, 276,-32768,-32768,-32768,-32768,-32768,-32768,
1361 -32768,-32768,-32768,-32768,-32768, -889, 144,-32768, -1012,-32768,
1362 262,-32768,-32768, -634, 443, 1109,-32768,-32768, -624,-32768,
1363 -32768, -88, -374, -348, -342, -351, -391, -376, -384, -539,
1364 -526,-32768, -622,-32768, -117,-32768,-32768, 1406, 1527, -595,
1365 -370, 23,-32768,-32768,-32768, 505, -3,-32768,-32768,-32768,
1366 313, -265,-32768,-32768,-32768,-32768, -905, -751,-32768,-32768,
1367 497,-32768,-32768,-32768, -566,-32768,-32768,-32768, -558,-32768,
1368 -32768,-32768,-32768,-32768, 529,-32768,-32768,-32768,-32768,-32768,
1369 -32768,-32768,-32768,-32768,-32768, 21, 751,-32768, 927,-32768,
1370 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1121,
1371 -771, -859,-32768, 145,-32768,-32768, 666, 670, 496, 1,
1372 -411, 1226,-32768, 17,-32768,-32768, -576,-32768,-32768,-32768,
1373 649, -98, 1053,-32768, -448, -165, 1339,-32768, 1114,-32768,
1374 734,-32768,-32768,-32768,-32768, -163,-32768,-32768,-32768,-32768,
1375 -32768, 93, 1203, 1009, 1323,-32768,-32768, 1386,-32768,-32768,
1376 -322,-32768, 915, 202, -547, -688,-32768, 859,-32768,-32768,
1377 954, -185, 659, 507, -494, 24,-32768, 149, 50,-32768,
1378 -32768, 131,-32768, 136,-32768,-32768, 653,-32768, 349, -605,
1379 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1380 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1476,
1381 -32768,-32768, 1648, -272, 511, 0, 532,-32768
1388 static const short yytable[] =
1390 121, 119, 131, 640, 290, 121, 539, 593, 487, 121,
1391 216, 216, 216, 529, 530, 541, 684, 1191, 642, 736,
1392 129, 114, 540, 97, 566, 318, 134, 704, 137, 738,
1393 502, 748, 300, 471, 1037, 239, 239, 465, 943, 609,
1394 846, 531, 532, 411, 537, 538, 467, 426, 751, 533,
1395 534, 535, 536, 565, 1075, 1121, 1042, 1056, 418, 649,
1396 209, 785, 448, 422, 564, 423, 786, 334, 335, 336,
1397 337, 338, 339, 951, 471, 1118, 93, 662, 955, 437,
1398 736, 1066, 959, 591, 1066, 1044, 788, 121, 119, 265,
1399 738, 794, 748, 262, 819, 1032, -640, 1172, 1173, 797,
1400 -640, 513, -648, 200, 924, 1033, -648, 987, 114, 751,
1401 97, 820, -606, 1109, 746, 404, -606, 265, 514, 934,
1402 121, 637, 268, 1110, 988, 389, 390, 747, 809, 1104,
1403 629, 1105, 1118, 268, 268, 395, 396, 1032, 121, 387,
1404 388, 210, 1044, 1102, 1103, 293, 211, 1033, 1106, 121,
1405 401, 962, 391, 392, 216, 314, 1136, 966, -652, 313,
1406 240, 240, -652, 93, 502, 1222, 402, 393, 394, 1117,
1407 1119, 1068, 216, 1070, 471, 746, 398, 846, 697, -277,
1408 1192, 260, 453, 846, 1122, 1061, 443, 785, 747, 503,
1409 3, 130, 786, -419, 682, -419, 696, 506, 216, 507,
1410 389, 390, 785, -419, 209, 467, 216, 786, 216, 1066,
1411 216, 1066, 788, 216, -419, -419, -419, 794, 1171, -419,
1412 -419, 216, 267, 553, 686, 797, 216, 788, 216, 80,
1413 81, 139, 794, 914, 84, 85, 694, 80, 1047, -276,
1414 797, 216, 216, 492, 1184, 239, 1187, 333, 209, 915,
1415 239, 666, 239, 284, 855, 1069, 209, 80, 1034, 1035,
1416 209, 942, 743, 209, 944, 239, 562, 422, 404, 745,
1417 1174, 569, 1175, 3, 1089, 80, 1111, 744, 1076, 739,
1418 -277, 413, 466, 121, 440, 210, 121, 121, 121, 1176,
1419 211, 406, 209, 302, 80, 1047, 526, 527, 528, 80,
1420 1034, 1035, 742, 412, 846, 740, 414, 316, 121, 464,
1421 -276, 741, 453, 100, 121, 1021, 455, 318, 100, 452,
1422 3, 403, 1149, 743, 404, 471, 246, 247, 248, 210,
1423 745, 693, 500, 501, 211, 431, 318, 210, 744, 569,
1424 739, 210, 211, 404, 210, 695, 211, 451, 1116, 211,
1425 124, 125, 126, 1187, 216, -419, -419, -419, 321, 1043,
1426 -419, -419, 216, 742, 216, 404, 740, 1023, 1024, 1044,
1427 240, 1212, 741, 210, 1016, 240, 1079, 240, 211, -276,
1428 1145, 453, 1147, 318, 1128, 736, 1129, 265, 569, 1018,
1429 240, 684, 692, 626, -276, 738, 594, 748, 1025, 1026,
1430 100, 625, 471, 1130, 322, 855, 569, 665, 216, -645,
1431 395, 396, 1027, -645, 751, 270, 271, 272, 273, 274,
1432 275, 276, 277, 839, 279, 391, 392, 282, 403, 216,
1433 216, 404, 1190, 100, 326, 488, 216, 1196, 121, 574,
1434 393, 394, 327, 298, 945, 303, 304, 306, 121, 561,
1435 323, 312, 324, 239, 239, 953, 596, 344, 209, 121,
1436 561, 121, 452, 286, 287, 288, -641, 298, 1032, 121,
1437 -641, 1165, 121, 345, 340, 346, 121, 318, 1033, 443,
1438 746, 384, 385, 386, 665, 722, 314, 1226, 404, 318,
1439 404, 347, 488, 747, 619, 389, 390, 665, -637, 1168,
1440 -419, 551, -637, -419, 216, -419, -419, -419, -419, 387,
1441 388, -419, -419, 121, 121, 348, 404, 1045, 1046, 1013,
1442 621, 80, 1047, -471, 453, 1048, 1003, 1004, 1015, 349,
1443 710, 350, 122, 420, 298, 1014, 404, 122, 856, 210,
1444 488, 140, -650, 398, 211, 719, -650, 720, 1042, -276,
1445 397, 453, 216, 216, 1005, 1006, -698, 1011, 1012, 3,
1446 121, 654, 1007, 1008, 1009, 1010, -702, 1043, 216, 1168,
1447 1140, 216, 216, 434, 677, 678, 561, 1044, 240, 240,
1448 546, 547, 3, -419, -419, -419, 850, -642, -419, -419,
1449 -704, -642, 1081, 1082, 561, 1083, 100, 441, 956, 444,
1450 446, 825, 209, 826, 80, 81, 139, 298, 121, 84,
1451 85, 420, 454, -276, 404, 453, 389, 390, -643, 122,
1452 635, 100, -643, 3, 636, 314, 871, 312, 743, 404,
1453 80, 1034, 1035, 652, 176, 745, 702, 872, 873, 874,
1454 875, 876, 877, 744, -704, 739, -699, 389, 390, 216,
1455 216, 1039, 122, 768, 298, 397, 1085, 485, 904, 905,
1456 404, 216, 216, 404, 216, 298, 400, 869, 742, 399,
1457 315, 740, 1032, 906, 907, 1218, 1062, 741, 121, 1063,
1458 121, 325, 1033, 210, 80, 81, 139, 407, 211, 84,
1459 85, 216, -603, 1077, 408, -602, -603, 318, 121, -602,
1460 455, 121, 121, 216, 593, -626, 3, -525, 318, -626,
1461 413, 80, 81, 139, 768, 453, 84, 85, 969, 853,
1462 -701, 1164, 1104, 3, 1105, 1045, 1046, -601, 404, 80,
1463 1047, -601, 918, 1048, 80, 81, 139, 850, 282, 84,
1464 85, 1106, -704, -704, 198, 228, 228, -704, -704, 979,
1465 404, 100, 415, 404, 977, -46, 1096, 981, 579, 1128,
1466 582, 1129, 588, 404, 718, 589, 1108, -646, 454, 416,
1467 595, -646, 100, 471, 100, 80, 81, 139, 1130, 606,
1468 84, 85, 312, 391, 392, 265, 1133, -620, 1095, 615,
1469 421, -620, -419, 682, -419, -700, 3, 265, 393, 394,
1470 1107, 216, -419, 1150, 441, 1183, 1128, 427, 1129, 1000,
1471 1001, 1002, -625, -624, 428, 122, -625, -624, 445, 447,
1472 449, 121, 900, 901, 216, 1130, 121, 939, -623, 216,
1473 939, 1233, -623, 216, 80, 1034, 1035, 433, 176, -622,
1474 122, 1178, 265, -622, 432, 1063, 315, 368, -621, 369,
1475 435, -419, -621, 121, 1217, 1174, 439, 1175, 80, 81,
1476 139, 121, 1198, 84, 85, 597, 1244, 458, -419, 460,
1477 853, 370, 371, 100, 1176, 80, 81, 139, -635, -618,
1478 84, 85, -635, -618, 897, 898, 899, 667, 198, 328,
1479 441, 384, 385, 386, 1086, 294, 265, 902, 903, 1177,
1480 155, 156, 157, 158, 159, 160, 595, -619, -615, 908,
1481 909, -619, -615, 689, 690, 691, 946, 678, 161, 162,
1482 163, 312, 462, 1040, -634, 205, 237, 237, -634, -616,
1483 -607, 1059, 198, -616, -607, 463, 216, 384, 385, 386,
1484 198, 441, 164, 1199, 198, 468, 1063, 198, 80, 81,
1485 139, 716, 717, 84, 85, 228, 298, 478, 298, 484,
1486 228, 939, 228, 939, 939, 939, 486, -638, -610, 635,
1487 122, -638, -610, 1088, 489, 228, 198, -630, 387, 388,
1488 586, -630, 805, 1072, 1073, 373, 173, 121, 121, 1159,
1489 812, 122, 814, 122, 404, 1162, 454, 80, 81, 139,
1490 490, 315, 84, 85, 612, 833, 834, -631, 617, -632,
1491 838, -631, -628, -632, 615, 851, -628, 1180, 1181, 768,
1492 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
1493 1100, -611, 1040, 1040, -609, -611, 290, 298, -609, 280,
1494 281, 1114, 491, 1059, 1059, 638, 639, 881, -613, 882,
1495 -614, -419, -613, 1099, -614, 494, 495, 80, 295, 296,
1496 1114, 176, 496, -612, 497, 121, 1143, -612, -419, 205,
1497 498, 883, 884, 216, 1124, 1125, 1126, 504, 121, 574,
1498 555, 556, 558, 121, 318, 559, 563, 576, 577, 939,
1499 592, 939, 122, 578, 604, 1152, -276, 581, 1239, 587,
1500 605, 613, 614, 607, 1040, 121, 121, 1040, 618, 1114,
1501 1114, 404, 622, 205, 623, 633, 627, 936, 1059, 318,
1502 1059, 205, 628, 1059, 631, 205, 634, 1059, 205, 121,
1503 121, 651, 1059, 656, 100, 1200, 237, 419, 121, 655,
1504 315, 237, 198, 237, 658, 668, 671, 673, 679, 674,
1505 676, 681, 121, 688, 687, 698, 237, 205, 700, 624,
1506 703, 712, 713, 228, 228, 968, 851, 803, 595, 807,
1507 810, 817, 818, 771, 1040, 121, 121, 1114, 835, 837,
1508 857, 859, 1059, 862, 861, 880, 863, 911, 910, 913,
1509 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
1510 867, 868, 121, 1143, 916, 912, 919, 925, 926, 927,
1511 586, 930, 586, 201, 234, 234, 947, 948, 933, 950,
1512 958, 964, 974, 832, 967, 980, 1019, 1059, 960, 978,
1513 840, 278, 1020, 617, 122, 283, 982, 285, 176, 289,
1514 1074, 1080, 1084, 1087, 291, 1139, 1022, 1132, 1120, 1206,
1515 1179, 317, 1064, 1195, 1157, 1177, 307, 1151, 308, 1071,
1516 1202, 1208, 1205, 1210, 317, 317, 317, 317, 317, 317,
1517 1211, 342, 343, 886, 1214, 1216, 1224, 1227, 1228, 1230,
1518 1235, 1237, 508, 1238, 1240, 1241, 198, 1247, 1248, 1242,
1519 -256, 470, 1050, 1229, 1188, 259, 294, 1094, 823, 1163,
1520 372, 155, 156, 157, 158, 159, 160, 1101, 887, 888,
1521 889, 890, 891, 892, 893, 894, 895, 896, 1219, 161,
1522 162, 163, 1135, 205, 985, 932, 949, 957, 670, 771,
1523 772, 773, 774, 202, 235, 235, 775, 776, 777, 778,
1524 779, 780, 781, 164, 237, 237, 815, 1234, 813, 970,
1525 849, 244, 456, 122, 292, 430, 832, 201, 954, 499,
1526 1213, 832, 552, 632, 858, 832, 973, 865, 1093, 972,
1527 0, 0, 0, 0, 0, 1137, 0, 0, 100, 0,
1528 0, 0, 0, 0, 0, 122, 0, 173, 438, 0,
1529 0, 851, 0, 976, 1154, 0, 203, 236, 236, 0,
1530 441, 201, 0, 1160, 1161, 0, 0, 0, 0, 201,
1531 0, 0, 0, 201, 0, 0, 201, 0, 0, 0,
1532 0, 0, 0, 459, 234, 0, 461, 0, 0, 234,
1533 0, 234, 0, 0, 469, 0, 0, 472, 0, 0,
1534 0, 0, 0, 0, 234, 201, 1197, 0, 0, 0,
1535 0, 100, 0, 1201, 1203, 0, 0, 0, 80, 295,
1536 296, 0, 176, 0, 0, 851, 0, 205, 832, 0,
1537 0, 0, 0, 0, 0, 0, 0, 202, 0, 0,
1538 0, 0, 0, 0, 0, 0, 213, 242, 242, 0,
1539 0, 1223, 0, 317, 317, 317, 317, 317, 317, 317,
1540 317, 317, 317, 317, 317, 317, 317, 317, 317, 0,
1541 0, 1231, 1232, 0, 0, 100, 0, 0, 1236, 1090,
1542 1091, 202, 0, 0, 0, 0, 0, 0, 0, 202,
1543 0, 0, 0, 202, 0, 0, 202, 196, 0, 0,
1544 203, 0, 0, 317, 235, 0, 560, 0, 0, 235,
1545 0, 235, 0, 0, 0, 0, 472, 0, 0, 0,
1546 0, 575, 317, 0, 235, 202, 580, 0, 583, 0,
1547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1548 0, 0, 0, 0, 203, 603, 0, 0, 0, 608,
1549 0, 0, 203, 0, 0, 0, 203, 122, 317, 203,
1550 0, 0, 0, 0, 0, 832, 0, 236, 0, 317,
1551 122, 201, 236, 0, 236, 1156, 0, 0, 0, 0,
1552 0, 0, 0, 0, 0, 0, 0, 236, 203, 0,
1553 213, 0, 234, 234, 0, 0, 0, 1169, 1170, 0,
1554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1555 0, 317, 0, 317, 0, 644, 646, 297, 215, 243,
1556 243, 1193, 1194, 0, 0, 0, 0, 0, 0, 0,
1557 122, 0, 0, 0, 213, 0, 0, 0, 0, 329,
1558 0, 331, 213, 0, 122, 0, 213, 0, 0, 213,
1559 0, 0, 0, 0, 0, 0, 0, 242, 0, 0,
1560 0, 0, 242, 317, 242, 0, 0, 1220, 1221, 0,
1561 0, 0, 0, 683, 0, 317, 0, 242, 213, 0,
1562 0, 0, 0, 0, 0, 196, 0, 0, 472, 0,
1563 0, 202, 0, 196, 122, 0, 0, 196, 0, 0,
1564 196, 0, 0, 0, 0, 0, 0, 709, 417, 0,
1565 493, 0, 235, 235, 0, 201, 0, 0, 0, 0,
1566 0, 0, 737, 0, 0, 0, 0, 0, 0, 196,
1567 0, 0, 0, 0, 511, 575, 0, 770, 0, 515,
1568 516, 517, 518, 519, 520, 521, 522, 523, 524, 525,
1569 0, 0, 0, 0, 203, 0, 0, 0, 0, 0,
1570 0, 0, 215, 0, 0, 0, 0, 0, 0, 821,
1571 545, 0, 0, 0, 0, 236, 236, 0, 0, 0,
1572 0, 450, 0, 737, 0, 0, 0, 0, 0, 0,
1573 0, 0, 0, 0, 317, 317, 317, 317, 317, 317,
1574 878, 879, 0, 0, 0, 0, 215, 0, 479, 480,
1575 481, 482, 0, 0, 215, 0, 0, 885, 215, 0,
1576 0, 215, 0, 0, 0, 0, 0, 0, 450, 243,
1577 0, 0, 0, 0, 243, 202, 243, 0, 0, 450,
1578 0, 0, 0, 0, 213, 0, 0, 0, 0, 243,
1579 215, 0, 0, 0, 0, 0, 512, 0, 0, 0,
1580 0, 0, 0, 0, 0, 242, 242, 0, 0, 0,
1581 0, 0, 928, 929, 0, 0, 0, 0, 0, 0,
1582 0, 0, 0, 317, 0, 0, 0, 0, 0, 0,
1583 0, 0, 0, 0, 317, 196, 0, 0, 203, 0,
1584 0, 0, 0, 557, 0, 0, 0, 0, 0, 0,
1585 0, 0, 0, 218, 0, 0, 961, 0, 142, 143,
1586 144, 0, 0, 219, 147, 148, 149, 150, 151, 152,
1587 220, -498, -498, 0, 0, 317, 221, -498, 0, 0,
1588 0, 155, 156, 157, 158, 159, 160, 0, 0, 0,
1589 0, 0, 0, 0, -276, -276, 0, 0, 0, 161,
1590 162, 163, 0, 0, 0, 0, 317, 317, 317, 317,
1591 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
1592 317, 317, 317, 164, 317, 0, 0, 0, 213, 0,
1593 706, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1594 0, 715, 0, 0, 0, 0, 0, -498, 166, 167,
1595 168, 169, 170, 171, 0, 0, 215, 0, 0, 0,
1596 1065, 0, 172, 0, 0, 0, 0, 173, 0, 0,
1597 641, 0, 0, 0, 0, 0, 0, 243, 243, 196,
1598 0, 0, 0, 0, 0, 0, 0, 0, 1078, 824,
1599 1148, 317, 0, 0, 294, 0, 825, 827, 826, 155,
1600 156, 157, 158, 159, 160, 0, 0, 0, 0, 0,
1601 0, 706, 0, 0, 0, 0, 0, 161, 162, 163,
1602 0, 0, 0, 0, 0, 0, 0, 0, 737, 0,
1603 0, 0, 0, 0, 0, 0, 0, 0, 80, 174,
1604 175, 164, 176, 222, 223, 0, 0, 0, 0, 482,
1605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1607 450, 0, 450, 0, 0, 0, 0, 0, 723, 0,
1608 0, 0, 769, 0, 1138, 173, 0, 23, 24, 25,
1609 26, 0, 27, 0, 0, 0, 0, 32, 33, 0,
1610 215, 36, 37, 0, 39, 40, 41, 42, 0, 0,
1611 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,
1612 55, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1613 827, 0, 0, 0, 0, 827, 0, 0, 0, 827,
1614 864, 0, 0, 0, 79, 0, 0, 0, 0, 0,
1615 0, 870, 0, 0, 83, 0, 80, 174, 175, 0,
1616 176, 84, 85, 1204, 0, 706, 0, 0, 0, 0,
1617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1618 0, 0, 0, 0, 0, 0, 983, 511, 0, 0,
1619 0, 0, 989, 990, 991, 992, 993, 994, 995, 996,
1620 997, 998, 999, 0, 0, 0, 0, 142, 143, 144,
1621 317, 145, 146, 147, 148, 149, 150, 151, 152, 220,
1622 -553, 659, 0, 0, 317, 352, 0, 0, 0, 0,
1623 155, 156, 157, 158, 159, 160, 0, 0, 0, 0,
1624 0, 0, 827, 0, 0, 317, 0, 141, 161, 162,
1625 163, 0, 142, 143, 144, 1243, 145, 146, 147, 148,
1626 149, 150, 151, 152, 153, -553, 0, 0, 0, 0,
1627 154, 0, 164, 0, 0, 155, 156, 157, 158, 159,
1628 160, 0, 0, 0, 0, 0, 0, 0, -276, -276,
1629 0, 0, 0, 161, 162, 163, 0, 166, 167, 168,
1630 169, 170, 171, 0, 0, 0, 0, 0, 0, 986,
1631 0, 172, 0, 0, 0, 0, 173, 164, 0, 0,
1632 824, 0, 0, 0, 0, 294, 0, 825, 0, 826,
1633 155, 156, 157, 158, 159, 160, 0, 0, 0, 0,
1634 0, 165, 166, 167, 168, 169, 170, 171, 161, 162,
1635 163, 0, 0, 0, 0, 0, 172, 0, 0, 0,
1636 0, 173, 0, 0, 0, 0, 0, 0, 0, 0,
1637 0, 0, 164, 0, 0, 0, 0, 0, 0, 827,
1638 0, 0, 0, -1, 1, 0, 0, 80, 174, 175,
1639 0, 176, 177, 85, 0, 0, 0, 0, 482, 0,
1640 0, 2, 0, 0, 0, 0, 0, -276, 0, 0,
1641 0, 0, 0, 0, 0, 0, 173, 3, 0, 0,
1642 0, 0, 0, 0, 0, 0, 0, 4, 0, 5,
1643 0, 0, 80, 174, 175, 0, 176, 177, 85, 0,
1644 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0,
1645 0, -419, -419, -419, 0, 6, 0, 0, 0, 0,
1646 7, 8, 9, 0, 0, 0, 0, 0, 0, 0,
1647 0, 0, 0, 0, 0, 10, 11, 12, 0, 0,
1648 0, 0, 0, 0, 0, 0, 0, 80, 174, 175,
1649 0, 176, 84, 85, 13, 14, 15, 16, 0, 17,
1650 18, 19, 20, 21, 22, 23, 24, 25, 26, 1155,
1651 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1652 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1653 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1654 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1655 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1656 77, 78, 79, -2, 1, 0, 0, 0, 0, 80,
1657 81, 82, 83, 0, 84, 85, 86, 0, 0, 0,
1658 0, 2, 0, 0, 0, 0, 0, -276, 0, 0,
1659 0, 0, 0, 0, 0, 0, 0, 3, 0, 0,
1660 0, 0, 0, 0, 0, 0, 0, 4, 0, 5,
1661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1663 0, -419, -419, -419, 0, 6, 0, 0, 0, 0,
1664 7, 8, 9, 0, 0, 0, 0, 0, 0, 0,
1665 0, 0, 0, 0, 0, 10, 11, 12, 0, 0,
1666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1667 0, 0, 0, 0, 13, 14, 15, 16, 0, 17,
1668 18, 19, 20, 21, 22, 23, 24, 25, 26, 0,
1669 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1670 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1671 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1672 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1673 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1674 77, 78, 79, 0, 0, 0, 0, 0, 0, 80,
1675 81, 82, 83, 141, 84, 85, 86, 0, 142, 143,
1676 144, 0, 145, 146, 147, 148, 149, 150, 151, 152,
1677 153, -553, 549, 0, 0, 0, 154, 0, 0, 0,
1678 0, 155, 156, 157, 158, 159, 160, 0, 0, 0,
1679 0, 0, 0, 0, -276, -276, 4, 0, 5, 161,
1680 162, 163, 0, 0, 0, 0, 0, 0, 0, 0,
1681 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1682 -419, -419, -419, 164, 6, 0, 0, 0, 0, 0,
1683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1684 0, 0, 0, 0, 0, 0, 0, 0, 166, 167,
1685 168, 169, 170, 171, 0, 0, 0, 0, 0, 0,
1686 0, 0, 172, 13, 14, 15, 16, 173, 17, 18,
1687 19, 20, 21, 22, 23, 24, 25, 26, 0, 27,
1688 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1689 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1690 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1691 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1692 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1693 78, 79, 0, 0, 0, 0, 0, 0, 80, 174,
1694 550, 83, 176, 177, 85, 86, 141, 0, 0, 0,
1695 0, 142, 143, 144, 0, 145, 146, 147, 148, 149,
1696 150, 151, 152, 153, -171, 0, 0, 0, 0, 154,
1697 0, 0, 0, 0, 155, 156, 157, 158, 159, 160,
1698 0, 0, 0, 0, 0, 0, 0, -276, -276, -276,
1699 0, 0, 161, 162, 163, 0, 0, 0, 0, 0,
1700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1701 0, 0, 0, -276, -276, -276, 164, 0, 0, 0,
1702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1704 0, 166, 167, 168, 169, 170, 171, 0, 0, 0,
1705 0, 0, 0, 0, 0, 172, -276, -276, -276, -276,
1706 173, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1707 -276, 0, -276, -276, -276, -276, -276, -276, -276, -276,
1708 -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1709 -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1710 -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1711 -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1712 -276, -276, -276, -276, -276, 0, 0, 0, 0, 0,
1713 0, 80, 174, 175, -276, 176, 177, 85, -276, 218,
1714 0, 0, 0, 0, 142, 143, 144, 0, 0, 219,
1715 147, 148, 149, 150, 151, 152, 220, -171, -557, 0,
1716 0, 0, 221, 0, 0, 0, 0, 155, 156, 157,
1717 158, 159, 160, 0, 0, 0, 0, 0, 0, 0,
1718 -276, -276, -276, 0, 0, 161, 162, 163, 0, 0,
1719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1720 0, 0, 0, 0, 0, 0, -276, -276, -276, 164,
1721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1723 0, 0, 0, 0, 166, 167, 168, 169, 170, 171,
1724 0, 0, 0, 0, 0, 0, 0, 0, 172, -276,
1725 -276, -276, -276, 173, -276, -276, -276, -276, -276, -276,
1726 -276, -276, -276, -276, 0, -276, -276, -276, -276, -276,
1727 -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1728 -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1729 -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1730 -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
1731 -276, -276, -276, -276, -276, -276, -276, -276, 0, 0,
1732 0, 0, 0, 0, 80, 174, 175, -276, 176, 222,
1733 223, -276, -169, 0, 0, 0, 0, -169, -169, -169,
1734 0, -169, -169, -169, -169, -169, -169, -169, -169, -169,
1735 -169, -169, -169, -702, -169, -169, 0, -169, 0, -169,
1736 -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
1737 -169, -169, -169, -169, -169, 0, -169, 0, -169, -169,
1738 -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
1739 -169, -169, -169, -169, -169, -169, -169, -169, -169, 0,
1740 0, 0, -169, 0, 0, 0, 0, 0, 0, 0,
1741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 0, 0, 0, 0, 0, -169, -169, -169,
1743 -169, -169, -169, 0, 0, 0, 0, 0, 141, 0,
1744 0, -169, 0, 142, 143, 144, -169, 145, 146, 147,
1745 148, 149, 150, 151, 152, 153, -553, 0, 0, 0,
1746 0, 154, 0, 0, 0, 0, 155, 156, 157, 158,
1747 159, 160, 0, 0, 0, 0, 0, 0, 0, -276,
1748 -276, 0, 0, 218, 161, 162, 163, 0, 142, 143,
1749 144, 0, 0, 219, 147, 148, 149, 150, 151, 152,
1750 220, -553, -557, 0, 0, 0, 221, 0, 164, 0,
1751 0, 155, 156, 157, 158, 159, 160, -169, -169, -169,
1752 0, -169, -169, -169, -276, -276, 0, 0, 0, 161,
1753 162, 163, -526, 166, 167, 168, 169, 170, 171, 0,
1754 0, 0, 0, 0, 0, 0, 0, 172, 0, 0,
1755 0, 0, 173, 164, 0, 0, 0, 0, 0, 0,
1756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1757 0, 0, 0, 0, 0, 0, 0, -494, 166, 167,
1758 168, 169, 170, 171, 0, 0, 0, 0, 0, 141,
1759 0, 0, 172, 0, 142, 143, 144, 173, 145, 146,
1760 147, 148, 149, 150, 151, 152, 153, -553, 647, 0,
1761 0, 0, 154, 0, 0, 0, 0, 155, 156, 157,
1762 158, 159, 160, 80, 174, 175, 0, 176, 177, 85,
1763 -276, -276, 0, 0, 218, 161, 162, 163, 0, 142,
1764 143, 144, 0, 0, 219, 147, 148, 149, 150, 151,
1765 152, 220, -553, -557, 0, 0, 0, 221, 0, 164,
1766 0, 0, 155, 156, 157, 158, 159, 160, 80, 174,
1767 175, 0, 176, 222, 223, -276, -276, 0, 0, 0,
1768 161, 162, 163, 0, 166, 167, 168, 169, 170, 171,
1769 0, 0, 0, 0, 0, 0, 0, 0, 172, 0,
1770 0, 0, 0, 173, 164, 0, 0, 0, 0, 0,
1771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1772 0, 0, 0, 0, 0, 0, 0, 0, 0, 166,
1773 167, 168, 169, 170, 171, 0, 0, 0, 0, 0,
1774 141, 0, 0, 172, 0, 142, 143, 144, 173, 145,
1775 146, 147, 148, 149, 150, 151, 152, 153, -553, 0,
1776 0, 0, 0, 154, 0, 0, 0, 0, 155, 156,
1777 157, 158, 159, 160, 80, 174, 175, 0, 176, 177,
1778 85, -276, -276, 0, 0, 0, 161, 162, 163, 0,
1779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1781 164, 0, 0, 0, 0, 0, 0, 0, 0, 80,
1782 174, 175, 0, 176, 222, 223, 0, 0, 0, 0,
1783 0, 0, 0, 0, 0, 166, 167, 168, 169, 170,
1784 171, 0, 0, 0, 0, 0, 0, 0, 0, 172,
1785 0, 142, 143, 144, 173, 145, 146, 147, 148, 149,
1786 150, 151, 152, 220, -553, 567, 0, 0, 0, 352,
1787 0, 0, 0, 0, 155, 156, 157, 158, 159, 160,
1788 0, 0, 0, 0, 0, 0, 0, -276, -276, 4,
1789 0, 5, 161, 162, 163, 0, 0, 0, 0, 0,
1790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1791 0, 0, 0, 0, 0, 0, 164, 6, 0, 0,
1792 0, 0, 0, 0, 0, 80, 174, 175, 0, 176,
1793 177, 85, 0, 0, 0, 0, 0, 0, 0, 0,
1794 0, 166, 167, 168, 169, 170, 171, 0, 0, 0,
1795 0, 0, 0, 0, 0, 568, 13, 14, 15, 16,
1796 173, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1797 26, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1798 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1799 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1800 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1801 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1802 75, 76, 77, 78, 79, 0, 0, 0, 0, 0,
1803 0, 80, 174, 550, 83, 176, 177, 85, 86, 142,
1804 143, 144, 0, 145, 146, 147, 148, 149, 150, 151,
1805 152, 220, -553, 648, 0, 0, 0, 352, 0, 0,
1806 0, 0, 155, 156, 157, 158, 159, 160, 0, 0,
1807 0, 0, 0, 0, 0, -276, -276, 4, 0, 5,
1808 161, 162, 163, 0, 0, 0, 0, 0, 0, 0,
1809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1810 0, 0, 0, 0, 164, 6, 0, 0, 0, 0,
1811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1812 0, 0, 0, 0, 0, 0, 0, 0, 0, 166,
1813 167, 168, 169, 170, 171, 0, 0, 0, 0, 0,
1814 0, 0, 0, 172, 13, 14, 15, 16, 173, 17,
1815 18, 19, 20, 21, 22, 23, 24, 25, 26, 0,
1816 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1817 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1818 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1819 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1820 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1821 77, 78, 79, 0, 0, 0, 0, 0, 0, 80,
1822 174, 550, 83, 176, 177, 85, 86, 142, 143, 144,
1823 0, 145, 146, 147, 148, 149, 150, 151, 152, 220,
1824 -553, 660, 0, 0, 0, 352, 0, 0, 0, 0,
1825 155, 156, 157, 158, 159, 160, 0, 0, 0, 0,
1826 0, 0, 0, -276, -276, 4, 0, 5, 161, 162,
1827 163, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1829 0, 0, 164, 6, 0, 0, 0, 0, 0, 0,
1830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1831 0, 0, 0, 0, 0, 0, 0, 166, 167, 168,
1832 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
1833 0, 661, 13, 14, 15, 16, 173, 17, 18, 19,
1834 20, 21, 22, 23, 24, 25, 26, 0, 27, 28,
1835 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1836 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1837 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1838 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1839 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1840 79, 0, 0, 0, 0, 0, 0, 80, 174, 550,
1841 83, 176, 177, 85, 86, 142, 143, 144, 0, 145,
1842 146, 147, 148, 149, 150, 151, 152, 220, -553, 663,
1843 0, 0, 0, 352, 0, 0, 0, 0, 155, 156,
1844 157, 158, 159, 160, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 0, 0, 0, 161, 162, 163, 0,
1846 142, 143, 144, 0, 145, 146, 147, 148, 149, 150,
1847 151, 152, 220, -553, 721, 0, 0, 0, 352, 0,
1848 164, 0, 0, 155, 156, 157, 158, 159, 160, 0,
1849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 161, 162, 163, 0, 166, 167, 168, 169, 170,
1851 171, 0, 0, 0, 0, 0, 0, 0, 0, 664,
1852 0, 0, 0, 0, 173, 164, 0, 0, 0, 0,
1853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1855 166, 167, 168, 169, 170, 171, 0, 0, 0, 0,
1856 0, 0, 0, 0, 172, 0, 142, 143, 144, 173,
1857 145, 146, 147, 148, 149, 150, 151, 152, 220, -553,
1858 799, 0, 0, 0, 352, 0, 0, 0, 0, 155,
1859 156, 157, 158, 159, 160, 80, 174, 175, 0, 176,
1860 177, 85, 0, 0, 0, 0, 0, 161, 162, 163,
1861 0, 142, 143, 144, 0, 145, 146, 147, 148, 149,
1862 150, 151, 152, 220, -553, 800, 0, 0, 0, 352,
1863 0, 164, 0, 0, 155, 156, 157, 158, 159, 160,
1864 80, 174, 175, 0, 176, 177, 85, 0, 0, 0,
1865 0, 0, 161, 162, 163, 0, 166, 167, 168, 169,
1866 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1867 172, 0, 0, 0, 0, 173, 164, 0, 0, 0,
1868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1870 0, 166, 167, 168, 169, 170, 171, 0, 0, 0,
1871 0, 0, 0, 0, 0, 801, 0, 142, 143, 144,
1872 173, 145, 146, 147, 148, 149, 150, 151, 152, 220,
1873 -553, 802, 0, 0, 0, 352, 0, 0, 0, 0,
1874 155, 156, 157, 158, 159, 160, 80, 174, 175, 0,
1875 176, 177, 85, 0, 0, 0, 0, 0, 161, 162,
1876 163, 0, 142, 143, 144, 0, 145, 146, 147, 148,
1877 149, 150, 151, 152, 220, -553, 935, 0, 0, 0,
1878 352, 0, 164, 0, 0, 155, 156, 157, 158, 159,
1879 160, 80, 174, 175, 0, 176, 177, 85, 0, 0,
1880 0, 0, 0, 161, 162, 163, 0, 166, 167, 168,
1881 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
1882 0, 172, 0, 0, 0, 0, 173, 164, 0, 0,
1883 705, -696, 0, 0, 0, 294, 0, 0, 0, 0,
1884 155, 156, 157, 158, 159, 160, 0, 0, 0, 0,
1885 0, 0, 166, 167, 168, 169, 170, 171, 161, 162,
1886 163, 0, 0, 0, 0, 0, 172, 0, 142, 143,
1887 144, 173, 145, 146, 147, 148, 149, 150, 151, 152,
1888 220, -553, 164, 0, 0, 0, 352, 0, 0, 0,
1889 0, 155, 156, 157, 158, 159, 160, 80, 174, 175,
1890 0, 176, 177, 85, 0, 0, 0, 0, 0, 161,
1891 162, 163, 0, 0, 0, 0, 0, 0, 0, 0,
1892 0, 0, 0, 0, 0, 0, 173, 0, 0, 0,
1893 0, 0, 0, 164, 0, 0, 0, 0, 0, 0,
1894 0, 0, 80, 174, 175, 0, 176, 177, 85, 0,
1895 0, 0, 0, 0, 0, 0, 0, 0, 166, 167,
1896 168, 169, 170, 171, -135, 0, 0, 0, 0, -135,
1897 0, 0, 172, 0, 0, 0, 0, 173, 0, 0,
1898 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
1899 0, 5, 0, 0, 0, 0, 0, 80, 295, 296,
1900 0, 176, 0, 0, 0, 0, 0, 0, 0, 0,
1901 0, 0, 0, 0, 0, 0, 0, 6, 0, 0,
1902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1904 0, 0, 0, 0, 0, 0, 0, 0, 80, 174,
1905 175, 0, 176, 177, 85, 0, 13, 14, 15, 16,
1906 0, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1907 26, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1908 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1909 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1910 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1911 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1912 75, 76, 77, 78, 79, -556, 0, 0, 0, 0,
1913 0, 0, 0, 136, 83, 0, 0, 0, 86, 0,
1914 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
1915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1921 0, 0, 0, 0, 0, 0, 13, 14, 15, 16,
1922 0, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1923 26, 0, 27, 28, 29, 30, 31, 32, 33, 34,
1924 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1925 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1926 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1927 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1928 75, 76, 77, 78, 79, 0, 0, 0, 0, 0,
1929 -171, 0, 0, 136, 83, 294, 0, 0, 86, 0,
1930 155, 156, 157, 158, 159, 160, 0, 0, 0, 0,
1931 0, -171, 0, 0, 0, 0, 352, 0, 161, 162,
1932 163, 155, 156, 157, 158, 159, 160, 0, 0, 0,
1933 0, 0, 0, 0, 0, 0, 0, 0, 624, 161,
1934 162, 163, 164, 294, 0, 0, 0, 0, 155, 156,
1935 157, 158, 159, 160, 0, 0, 0, 0, 0, 705,
1936 0, 0, 0, 164, 294, 0, 161, 162, 163, 155,
1937 156, 157, 158, 159, 160, 0, 0, 0, 0, 0,
1938 0, 0, 0, 0, 0, 0, 173, 161, 162, 163,
1939 164, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1940 0, 0, 0, 0, 0, 0, 0, 173, 0, 0,
1941 0, 164, 0, 0, 0, 0, 0, 0, 0, 0,
1942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1943 0, 0, 0, 0, 173, 0, 0, 0, 0, 0,
1944 0, 0, 0, 0, -276, 0, 0, 0, 0, 0,
1945 0, 0, 0, 0, 3, 173, 0, 80, 295, 296,
1946 0, 176, 0, 0, 4, 0, 0, 0, 0, 0,
1947 0, 0, 0, 0, 0, 0, 0, 0, 80, 295,
1948 296, 0, 176, 0, 0, 0, 0, 0, 0, 0,
1949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1950 0, 0, 0, 0, 0, 80, 295, 296, 0, 176,
1951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1952 0, 0, 0, 0, 0, 0, 80, 295, 296, 0,
1953 176, 13, 14, 15, 16, 0, 17, 18, 19, 20,
1954 21, 22, 23, 24, 25, 26, 0, 27, 28, 29,
1955 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1956 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1957 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1958 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1959 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1960 0, 0, 0, 0, 0, 0, 80, 81, 82, 83,
1961 0, 84, 85, 86, 294, 509, 0, 0, 0, 155,
1962 156, 157, 158, 159, 160, 294, 0, 0, 590, 0,
1963 155, 156, 157, 158, 159, 160, 0, 161, 162, 163,
1964 0, 0, 0, 0, 0, 0, 294, 984, 161, 162,
1965 163, 155, 156, 157, 158, 159, 160, 294, 0, 0,
1966 685, 164, 155, 156, 157, 158, 159, 160, 0, 161,
1967 162, 163, 164, 0, 0, 0, 0, 0, 294, -256,
1968 161, 162, 163, 155, 156, 157, 158, 159, 160, 0,
1969 0, 0, 0, 164, 0, 0, 0, 0, 0, 0,
1970 0, 161, 162, 163, 164, 173, 0, 0, 0, 0,
1971 0, 0, 0, 0, 0, 0, 173, 0, 0, 0,
1972 0, 0, 0, 0, 0, 164, 294, 0, 0, 0,
1973 0, 155, 156, 157, 158, 159, 160, 173, 0, 0,
1974 0, 0, 0, 0, 0, 0, 0, 341, 173, 161,
1975 162, 163, 155, 156, 157, 158, 159, 160, 643, 0,
1976 0, 0, 0, 155, 156, 157, 158, 159, 160, 173,
1977 161, 162, 163, 164, 0, 0, 80, 295, 296, 0,
1978 176, 161, 162, 163, 0, 0, 0, 80, 295, 296,
1979 645, 176, 0, 0, 164, 155, 156, 157, 158, 159,
1980 160, 0, 0, 0, 0, 164, 0, 0, 80, 295,
1981 296, 0, 176, 161, 162, 163, 0, 173, 0, 80,
1982 295, 296, 0, 176, 0, 0, 0, 0, 0, 0,
1983 0, 0, 0, 0, 0, 0, 0, 164, 173, 0,
1984 80, 295, 296, 0, 176, 0, 724, 0, 0, 173,
1985 0, 725, 726, 727, 728, 729, 730, 0, 0, 0,
1986 0, 0, 0, 0, 0, 0, 0, 0, 0, 161,
1987 731, 732, 0, 0, 0, 0, 0, 0, 0, 0,
1988 0, 173, 0, 0, 0, 0, 0, 0, 80, 295,
1989 296, 0, 176, 733, 0, 0, 0, 0, 0, 0,
1990 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,
1991 295, 296, 0, 176, 0, 0, 0, 0, 0, 0,
1992 80, 295, 296, 0, 176, 0, 0, 0, 0, 0,
1993 0, 0, 0, 0, 0, 0, 0, 173, 0, 0,
1994 0, 0, 0, 0, -200, -200, 4, 0, 0, 0,
1995 0, 0, 80, 295, 296, 0, 176, 0, 0, 0,
1996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1997 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1998 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2000 0, 0, 0, 0, 0, 0, 0, 0, 80, 734,
2001 735, 0, 176, 13, 14, 15, 16, 0, 17, 18,
2002 19, 20, 21, 22, 23, 24, 25, 26, 0, 27,
2003 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2004 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2005 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2006 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2007 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2008 78, 79, 4, 0, 5, 0, 0, 0, 0, 0,
2009 136, 83, 0, 0, 0, 86, 0, 0, 0, 0,
2010 0, 0, 0, 0, 0, 0, -419, -419, -419, 0,
2011 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2013 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2014 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
2015 14, 15, 16, 0, 17, 18, 19, 20, 21, 22,
2016 23, 24, 25, 26, 0, 27, 28, 29, 30, 31,
2017 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2018 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2019 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
2020 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2021 72, 73, 74, 75, 76, 77, 78, 79, 4, 0,
2022 5, 0, 0, 0, 0, 0, 136, 83, 0, 0,
2023 0, 86, 0, 0, 0, 0, 0, 0, 0, 0,
2024 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,
2025 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2026 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2027 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2028 0, 0, 0, 0, 0, 13, 14, 15, 16, 0,
2029 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2030 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2031 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2032 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2033 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
2034 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2035 76, 77, 78, 79, 4, 0, 0, 0, 0, 0,
2036 80, 1097, 136, 83, 0, 0, 0, 86, 0, 0,
2037 0, 0, 0, 0, 0, 0, 0, 0, -419, -419,
2038 -419, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2041 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2042 0, 13, 14, 15, 16, 0, 17, 18, 19, 20,
2043 21, 22, 23, 24, 25, 26, 0, 27, 28, 29,
2044 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2045 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2046 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2047 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2048 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2049 4, 0, 0, 0, 0, 0, 0, 0, 136, 83,
2050 0, 0, 0, 86, 0, 0, 0, 0, 0, 0,
2051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2052 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2053 0, 0, 0, 0, 0, 0, 0, 0, 10, 11,
2054 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2055 0, 0, 0, 0, 0, 0, 0, 13, 14, 15,
2056 16, 0, 17, 18, 19, 20, 21, 22, 23, 24,
2057 25, 26, 0, 27, 28, 29, 30, 31, 32, 33,
2058 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2059 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2060 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2061 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2062 74, 75, 76, 77, 78, 79, 4, 0, 5, 0,
2063 0, 0, 0, 0, 136, 83, 0, 0, 0, 86,
2064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2065 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
2066 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2067 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2069 0, 0, 0, 13, 14, 15, 16, 0, 17, 18,
2070 19, 20, 21, 22, 23, 24, 25, 26, 0, 27,
2071 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2072 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2073 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2074 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2075 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2076 78, 79, 4, 0, 0, 0, 0, 0, 0, 0,
2077 136, 83, 0, 0, 0, 86, 0, 0, 0, 0,
2078 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2079 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2080 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2081 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2082 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
2083 14, 15, 16, 0, 17, 18, 19, 20, 21, 22,
2084 23, 24, 25, 26, 0, 27, 28, 29, 30, 31,
2085 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2086 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2087 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
2088 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2089 72, 73, 74, 75, 76, 77, 78, 79, 0, 0,
2090 0, 0, 0, 0, 0, 0, 136, 83, 0, 0,
2094 static const short yycheck[] =
2096 0, 0, 5, 542, 120, 5, 397, 455, 330, 9,
2097 10, 11, 12, 387, 388, 399, 592, 27, 544, 653,
2098 3, 0, 398, 0, 435, 142, 5, 622, 7, 653,
2099 352, 653, 130, 5, 923, 11, 12, 309, 809, 469,
2100 699, 389, 390, 208, 395, 396, 311, 232, 653, 391,
2101 392, 393, 394, 25, 959, 56, 5, 931, 221, 553,
2102 10, 657, 19, 226, 434, 228, 657, 155, 156, 157,
2103 158, 159, 160, 824, 5, 24, 0, 571, 829, 264,
2104 714, 940, 833, 453, 943, 34, 657, 87, 87, 18,
2105 714, 657, 714, 19, 25, 24, 21, 1109, 1110, 657,
2106 25, 28, 21, 10, 783, 34, 25, 28, 87, 714,
2107 87, 687, 21, 24, 653, 21, 25, 18, 45, 798,
2108 120, 27, 101, 34, 45, 50, 51, 653, 675, 26,
2109 500, 28, 24, 112, 113, 54, 55, 24, 138, 32,
2110 33, 10, 34, 1032, 1033, 128, 10, 34, 45, 149,
2111 41, 836, 37, 38, 154, 138, 1061, 842, 21, 138,
2112 11, 12, 25, 87, 486, 1177, 57, 52, 53, 1043,
2113 1044, 942, 172, 944, 5, 714, 39, 836, 608, 24,
2114 190, 26, 26, 842, 185, 936, 284, 783, 714, 354,
2115 34, 24, 783, 24, 25, 26, 607, 362, 198, 364,
2116 50, 51, 798, 34, 154, 470, 206, 798, 208, 1068,
2117 210, 1070, 783, 213, 186, 187, 188, 783, 1107, 191,
2118 192, 221, 24, 408, 594, 783, 226, 798, 228, 186,
2119 187, 188, 798, 41, 191, 192, 606, 186, 187, 18,
2120 798, 241, 242, 341, 1118, 221, 1120, 154, 198, 57,
2121 226, 573, 228, 88, 702, 943, 206, 186, 187, 188,
2122 210, 808, 653, 213, 811, 241, 429, 430, 21, 653,
2123 26, 436, 28, 34, 27, 186, 187, 653, 963, 653,
2124 24, 190, 26, 283, 283, 154, 286, 287, 288, 45,
2125 154, 198, 242, 21, 186, 187, 384, 385, 386, 186,
2126 187, 188, 653, 210, 963, 653, 213, 24, 308, 308,
2127 24, 653, 26, 0, 314, 920, 299, 434, 5, 298,
2128 34, 18, 1073, 714, 21, 5, 13, 14, 15, 198,
2129 714, 603, 6, 7, 198, 242, 453, 206, 714, 504,
2130 714, 210, 206, 21, 213, 25, 210, 25, 1043, 213,
2131 111, 112, 113, 1227, 354, 186, 187, 188, 24, 24,
2132 191, 192, 362, 714, 364, 21, 714, 89, 90, 34,
2133 221, 27, 714, 242, 913, 226, 971, 228, 242, 24,
2134 1068, 26, 1070, 500, 26, 1019, 28, 18, 553, 915,
2135 241, 967, 23, 491, 24, 1019, 26, 1019, 120, 121,
2136 87, 489, 5, 45, 24, 853, 571, 572, 408, 21,
2137 54, 55, 134, 25, 1019, 102, 103, 104, 105, 106,
2138 107, 108, 109, 5, 111, 37, 38, 114, 18, 429,
2139 430, 21, 1127, 120, 18, 25, 436, 1132, 438, 438,
2140 52, 53, 18, 130, 814, 132, 133, 134, 448, 426,
2141 24, 138, 24, 429, 430, 825, 459, 24, 408, 459,
2142 437, 461, 441, 68, 69, 70, 21, 154, 24, 469,
2143 25, 27, 472, 16, 161, 16, 476, 594, 34, 577,
2144 1019, 34, 35, 36, 649, 650, 469, 1182, 21, 606,
2145 21, 16, 25, 1019, 25, 50, 51, 662, 21, 1104,
2146 18, 408, 25, 21, 504, 23, 186, 187, 188, 32,
2147 33, 191, 192, 513, 514, 16, 21, 182, 183, 910,
2148 25, 186, 187, 25, 26, 190, 900, 901, 912, 15,
2149 628, 101, 0, 18, 221, 911, 21, 5, 703, 408,
2150 25, 9, 21, 39, 408, 643, 25, 645, 5, 24,
2151 29, 26, 552, 553, 902, 903, 22, 908, 909, 34,
2152 560, 560, 904, 905, 906, 907, 22, 24, 568, 1174,
2153 22, 571, 572, 260, 20, 21, 553, 34, 429, 430,
2154 42, 43, 34, 186, 187, 188, 702, 21, 191, 192,
2155 34, 25, 25, 26, 571, 28, 283, 284, 23, 286,
2156 287, 26, 552, 28, 186, 187, 188, 294, 608, 191,
2157 192, 18, 299, 24, 21, 26, 50, 51, 21, 87,
2158 21, 308, 25, 34, 25, 608, 724, 314, 1019, 21,
2159 186, 187, 188, 25, 190, 1019, 615, 725, 726, 727,
2160 728, 729, 730, 1019, 88, 1019, 22, 50, 51, 649,
2161 650, 923, 120, 653, 341, 29, 978, 18, 37, 38,
2162 21, 661, 662, 21, 664, 352, 56, 25, 1019, 40,
2163 138, 1019, 24, 52, 53, 27, 18, 1019, 678, 21,
2164 680, 149, 34, 552, 186, 187, 188, 95, 552, 191,
2165 192, 691, 21, 965, 19, 21, 25, 814, 698, 25,
2166 683, 701, 702, 703, 1152, 21, 34, 95, 825, 25,
2167 190, 186, 187, 188, 714, 26, 191, 192, 193, 702,
2168 22, 25, 26, 34, 28, 182, 183, 21, 21, 186,
2169 187, 25, 25, 190, 186, 187, 188, 853, 425, 191,
2170 192, 45, 186, 187, 10, 11, 12, 191, 192, 866,
2171 21, 438, 22, 21, 25, 22, 1028, 25, 445, 26,
2172 447, 28, 449, 21, 22, 452, 1038, 21, 455, 24,
2173 457, 25, 459, 5, 461, 186, 187, 188, 45, 466,
2174 191, 192, 469, 37, 38, 18, 1058, 21, 21, 476,
2175 95, 25, 24, 25, 26, 22, 34, 18, 52, 53,
2176 21, 801, 34, 1075, 491, 25, 26, 19, 28, 897,
2177 898, 899, 21, 21, 20, 283, 25, 25, 286, 287,
2178 288, 821, 32, 33, 824, 45, 826, 806, 21, 829,
2179 809, 1201, 25, 833, 186, 187, 188, 27, 190, 21,
2180 308, 1113, 18, 25, 95, 21, 314, 24, 21, 26,
2181 24, 28, 25, 853, 25, 26, 18, 28, 186, 187,
2182 188, 861, 1134, 191, 192, 193, 1236, 25, 45, 18,
2183 853, 48, 49, 560, 45, 186, 187, 188, 21, 21,
2184 191, 192, 25, 25, 34, 35, 36, 574, 154, 18,
2185 577, 34, 35, 36, 982, 24, 18, 50, 51, 21,
2186 29, 30, 31, 32, 33, 34, 593, 21, 21, 54,
2187 55, 25, 25, 600, 601, 602, 20, 21, 47, 48,
2188 49, 608, 18, 923, 21, 10, 11, 12, 25, 21,
2189 21, 931, 198, 25, 25, 23, 936, 34, 35, 36,
2190 206, 628, 71, 18, 210, 24, 21, 213, 186, 187,
2191 188, 638, 639, 191, 192, 221, 643, 22, 645, 18,
2192 226, 940, 228, 942, 943, 944, 24, 21, 21, 21,
2193 438, 25, 25, 25, 25, 241, 242, 21, 32, 33,
2194 448, 25, 669, 20, 21, 23, 115, 987, 988, 1087,
2195 677, 459, 679, 461, 21, 22, 683, 186, 187, 188,
2196 25, 469, 191, 192, 472, 692, 693, 21, 476, 21,
2197 697, 25, 21, 25, 701, 702, 25, 32, 33, 1019,
2198 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2199 1030, 21, 1032, 1033, 21, 25, 1152, 724, 25, 112,
2200 113, 1041, 24, 1043, 1044, 513, 514, 24, 21, 26,
2201 21, 28, 25, 1030, 25, 18, 18, 186, 187, 188,
2202 1060, 190, 18, 21, 18, 1065, 1065, 25, 45, 154,
2203 18, 48, 49, 1073, 52, 53, 54, 19, 1078, 1078,
2204 9, 11, 25, 1083, 1201, 24, 11, 91, 21, 1068,
2205 24, 1070, 560, 19, 91, 1078, 19, 19, 1215, 19,
2206 27, 25, 21, 24, 1104, 1105, 1106, 1107, 22, 1109,
2207 1110, 21, 18, 198, 25, 11, 25, 804, 1118, 1236,
2208 1120, 206, 21, 1123, 25, 210, 24, 1127, 213, 1129,
2209 1130, 24, 1132, 27, 821, 1138, 221, 222, 1138, 24,
2210 608, 226, 408, 228, 25, 23, 20, 19, 23, 20,
2211 19, 27, 1152, 21, 24, 21, 241, 242, 5, 19,
2212 25, 22, 24, 429, 430, 852, 853, 25, 855, 20,
2213 20, 25, 27, 73, 1174, 1175, 1176, 1177, 27, 25,
2214 18, 21, 1182, 25, 21, 24, 22, 39, 29, 56,
2215 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
2216 25, 25, 1202, 1202, 25, 40, 187, 91, 91, 91,
2217 678, 91, 680, 10, 11, 12, 25, 25, 91, 18,
2218 22, 25, 20, 691, 24, 18, 21, 1227, 91, 25,
2219 698, 110, 18, 701, 702, 114, 25, 116, 190, 118,
2220 27, 20, 18, 21, 123, 18, 40, 24, 23, 20,
2221 22, 142, 939, 22, 192, 21, 135, 91, 137, 946,
2222 21, 20, 22, 91, 155, 156, 157, 158, 159, 160,
2223 25, 162, 163, 23, 25, 27, 194, 40, 27, 25,
2224 18, 20, 367, 20, 27, 25, 552, 0, 0, 1227,
2225 18, 314, 931, 1195, 1123, 87, 24, 1022, 689, 1095,
2226 179, 29, 30, 31, 32, 33, 34, 1031, 58, 59,
2227 60, 61, 62, 63, 64, 65, 66, 67, 1174, 47,
2228 48, 49, 1060, 408, 881, 796, 821, 830, 577, 73,
2229 74, 75, 76, 10, 11, 12, 80, 81, 82, 83,
2230 84, 85, 86, 71, 429, 430, 680, 1202, 678, 853,
2231 701, 12, 299, 821, 128, 241, 824, 154, 826, 350,
2232 1158, 829, 408, 504, 705, 833, 859, 714, 1019, 858,
2233 -1, -1, -1, -1, -1, 1062, -1, -1, 1065, -1,
2234 -1, -1, -1, -1, -1, 853, -1, 115, 267, -1,
2235 -1, 1078, -1, 861, 1081, -1, 10, 11, 12, -1,
2236 1087, 198, -1, 1090, 1091, -1, -1, -1, -1, 206,
2237 -1, -1, -1, 210, -1, -1, 213, -1, -1, -1,
2238 -1, -1, -1, 302, 221, -1, 305, -1, -1, 226,
2239 -1, 228, -1, -1, 313, -1, -1, 316, -1, -1,
2240 -1, -1, -1, -1, 241, 242, 1133, -1, -1, -1,
2241 -1, 1138, -1, 1140, 1141, -1, -1, -1, 186, 187,
2242 188, -1, 190, -1, -1, 1152, -1, 552, 936, -1,
2243 -1, -1, -1, -1, -1, -1, -1, 154, -1, -1,
2244 -1, -1, -1, -1, -1, -1, 10, 11, 12, -1,
2245 -1, 1178, -1, 384, 385, 386, 387, 388, 389, 390,
2246 391, 392, 393, 394, 395, 396, 397, 398, 399, -1,
2247 -1, 1198, 1199, -1, -1, 1202, -1, -1, 1205, 987,
2248 988, 198, -1, -1, -1, -1, -1, -1, -1, 206,
2249 -1, -1, -1, 210, -1, -1, 213, 10, -1, -1,
2250 154, -1, -1, 434, 221, -1, 425, -1, -1, 226,
2251 -1, 228, -1, -1, -1, -1, 435, -1, -1, -1,
2252 -1, 440, 453, -1, 241, 242, 445, -1, 447, -1,
2253 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2254 -1, -1, -1, -1, 198, 464, -1, -1, -1, 468,
2255 -1, -1, 206, -1, -1, -1, 210, 1065, 489, 213,
2256 -1, -1, -1, -1, -1, 1073, -1, 221, -1, 500,
2257 1078, 408, 226, -1, 228, 1083, -1, -1, -1, -1,
2258 -1, -1, -1, -1, -1, -1, -1, 241, 242, -1,
2259 154, -1, 429, 430, -1, -1, -1, 1105, 1106, -1,
2260 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2261 -1, 542, -1, 544, -1, 546, 547, 130, 10, 11,
2262 12, 1129, 1130, -1, -1, -1, -1, -1, -1, -1,
2263 1138, -1, -1, -1, 198, -1, -1, -1, -1, 152,
2264 -1, 154, 206, -1, 1152, -1, 210, -1, -1, 213,
2265 -1, -1, -1, -1, -1, -1, -1, 221, -1, -1,
2266 -1, -1, 226, 594, 228, -1, -1, 1175, 1176, -1,
2267 -1, -1, -1, 592, -1, 606, -1, 241, 242, -1,
2268 -1, -1, -1, -1, -1, 198, -1, -1, 607, -1,
2269 -1, 408, -1, 206, 1202, -1, -1, 210, -1, -1,
2270 213, -1, -1, -1, -1, -1, -1, 626, 221, -1,
2271 344, -1, 429, 430, -1, 552, -1, -1, -1, -1,
2272 -1, -1, 653, -1, -1, -1, -1, -1, -1, 242,
2273 -1, -1, -1, -1, 368, 654, -1, 656, -1, 373,
2274 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
2275 -1, -1, -1, -1, 408, -1, -1, -1, -1, -1,
2276 -1, -1, 154, -1, -1, -1, -1, -1, -1, 688,
2277 404, -1, -1, -1, -1, 429, 430, -1, -1, -1,
2278 -1, 294, -1, 714, -1, -1, -1, -1, -1, -1,
2279 -1, -1, -1, -1, 725, 726, 727, 728, 729, 730,
2280 731, 732, -1, -1, -1, -1, 198, -1, 321, 322,
2281 323, 324, -1, -1, 206, -1, -1, 736, 210, -1,
2282 -1, 213, -1, -1, -1, -1, -1, -1, 341, 221,
2283 -1, -1, -1, -1, 226, 552, 228, -1, -1, 352,
2284 -1, -1, -1, -1, 408, -1, -1, -1, -1, 241,
2285 242, -1, -1, -1, -1, -1, 369, -1, -1, -1,
2286 -1, -1, -1, -1, -1, 429, 430, -1, -1, -1,
2287 -1, -1, 791, 792, -1, -1, -1, -1, -1, -1,
2288 -1, -1, -1, 814, -1, -1, -1, -1, -1, -1,
2289 -1, -1, -1, -1, 825, 408, -1, -1, 552, -1,
2290 -1, -1, -1, 416, -1, -1, -1, -1, -1, -1,
2291 -1, -1, -1, 1, -1, -1, 835, -1, 6, 7,
2292 8, -1, -1, 11, 12, 13, 14, 15, 16, 17,
2293 18, 19, 20, -1, -1, 866, 24, 25, -1, -1,
2294 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2295 -1, -1, -1, -1, 42, 43, -1, -1, -1, 47,
2296 48, 49, -1, -1, -1, -1, 897, 898, 899, 900,
2297 901, 902, 903, 904, 905, 906, 907, 908, 909, 910,
2298 911, 912, 913, 71, 915, -1, -1, -1, 552, -1,
2299 624, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2300 -1, 635, -1, -1, -1, -1, -1, 95, 96, 97,
2301 98, 99, 100, 101, -1, -1, 408, -1, -1, -1,
2302 939, -1, 110, -1, -1, -1, -1, 115, -1, -1,
2303 543, -1, -1, -1, -1, -1, -1, 429, 430, 552,
2304 -1, -1, -1, -1, -1, -1, -1, -1, 967, 19,
2305 20, 982, -1, -1, 24, -1, 26, 691, 28, 29,
2306 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2307 -1, 705, -1, -1, -1, -1, -1, 47, 48, 49,
2308 -1, -1, -1, -1, -1, -1, -1, -1, 1019, -1,
2309 -1, -1, -1, -1, -1, -1, -1, -1, 186, 187,
2310 188, 71, 190, 191, 192, -1, -1, -1, -1, 622,
2311 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2312 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2313 643, -1, 645, -1, -1, -1, -1, -1, 651, -1,
2314 -1, -1, 655, -1, 1063, 115, -1, 122, 123, 124,
2315 125, -1, 127, -1, -1, -1, -1, 132, 133, -1,
2316 552, 136, 137, -1, 139, 140, 141, 142, -1, -1,
2317 -1, -1, -1, -1, -1, -1, -1, -1, -1, 154,
2318 155, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2319 824, -1, -1, -1, -1, 829, -1, -1, -1, 833,
2320 713, -1, -1, -1, 179, -1, -1, -1, -1, -1,
2321 -1, 724, -1, -1, 189, -1, 186, 187, 188, -1,
2322 190, 191, 192, 1142, -1, 859, -1, -1, -1, -1,
2323 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2324 -1, -1, -1, -1, -1, -1, 880, 881, -1, -1,
2325 -1, -1, 886, 887, 888, 889, 890, 891, 892, 893,
2326 894, 895, 896, -1, -1, -1, -1, 6, 7, 8,
2327 1201, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2328 19, 20, -1, -1, 1215, 24, -1, -1, -1, -1,
2329 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2330 -1, -1, 936, -1, -1, 1236, -1, 1, 47, 48,
2331 49, -1, 6, 7, 8, 1234, 10, 11, 12, 13,
2332 14, 15, 16, 17, 18, 19, -1, -1, -1, -1,
2333 24, -1, 71, -1, -1, 29, 30, 31, 32, 33,
2334 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
2335 -1, -1, -1, 47, 48, 49, -1, 96, 97, 98,
2336 99, 100, 101, -1, -1, -1, -1, -1, -1, 882,
2337 -1, 110, -1, -1, -1, -1, 115, 71, -1, -1,
2338 19, -1, -1, -1, -1, 24, -1, 26, -1, 28,
2339 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2340 -1, 95, 96, 97, 98, 99, 100, 101, 47, 48,
2341 49, -1, -1, -1, -1, -1, 110, -1, -1, -1,
2342 -1, 115, -1, -1, -1, -1, -1, -1, -1, -1,
2343 -1, -1, 71, -1, -1, -1, -1, -1, -1, 1073,
2344 -1, -1, -1, 0, 1, -1, -1, 186, 187, 188,
2345 -1, 190, 191, 192, -1, -1, -1, -1, 971, -1,
2346 -1, 18, -1, -1, -1, -1, -1, 24, -1, -1,
2347 -1, -1, -1, -1, -1, -1, 115, 34, -1, -1,
2348 -1, -1, -1, -1, -1, -1, -1, 44, -1, 46,
2349 -1, -1, 186, 187, 188, -1, 190, 191, 192, -1,
2350 -1, -1, -1, -1, 1017, -1, -1, -1, -1, -1,
2351 -1, 68, 69, 70, -1, 72, -1, -1, -1, -1,
2352 77, 78, 79, -1, -1, -1, -1, -1, -1, -1,
2353 -1, -1, -1, -1, -1, 92, 93, 94, -1, -1,
2354 -1, -1, -1, -1, -1, -1, -1, 186, 187, 188,
2355 -1, 190, 191, 192, 111, 112, 113, 114, -1, 116,
2356 117, 118, 119, 120, 121, 122, 123, 124, 125, 1082,
2357 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2358 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2359 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2360 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2361 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2362 177, 178, 179, 0, 1, -1, -1, -1, -1, 186,
2363 187, 188, 189, -1, 191, 192, 193, -1, -1, -1,
2364 -1, 18, -1, -1, -1, -1, -1, 24, -1, -1,
2365 -1, -1, -1, -1, -1, -1, -1, 34, -1, -1,
2366 -1, -1, -1, -1, -1, -1, -1, 44, -1, 46,
2367 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2368 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2369 -1, 68, 69, 70, -1, 72, -1, -1, -1, -1,
2370 77, 78, 79, -1, -1, -1, -1, -1, -1, -1,
2371 -1, -1, -1, -1, -1, 92, 93, 94, -1, -1,
2372 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2373 -1, -1, -1, -1, 111, 112, 113, 114, -1, 116,
2374 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
2375 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2376 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2377 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2378 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2379 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2380 177, 178, 179, -1, -1, -1, -1, -1, -1, 186,
2381 187, 188, 189, 1, 191, 192, 193, -1, 6, 7,
2382 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2383 18, 19, 20, -1, -1, -1, 24, -1, -1, -1,
2384 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2385 -1, -1, -1, -1, 42, 43, 44, -1, 46, 47,
2386 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2387 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2388 68, 69, 70, 71, 72, -1, -1, -1, -1, -1,
2389 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2390 -1, -1, -1, -1, -1, -1, -1, -1, 96, 97,
2391 98, 99, 100, 101, -1, -1, -1, -1, -1, -1,
2392 -1, -1, 110, 111, 112, 113, 114, 115, 116, 117,
2393 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
2394 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2395 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2396 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2397 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2398 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2399 178, 179, -1, -1, -1, -1, -1, -1, 186, 187,
2400 188, 189, 190, 191, 192, 193, 1, -1, -1, -1,
2401 -1, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2402 15, 16, 17, 18, 19, -1, -1, -1, -1, 24,
2403 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2404 -1, -1, -1, -1, -1, -1, -1, 42, 43, 44,
2405 -1, -1, 47, 48, 49, -1, -1, -1, -1, -1,
2406 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2407 -1, -1, -1, 68, 69, 70, 71, -1, -1, -1,
2408 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2409 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2410 -1, 96, 97, 98, 99, 100, 101, -1, -1, -1,
2411 -1, -1, -1, -1, -1, 110, 111, 112, 113, 114,
2412 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2413 125, -1, 127, 128, 129, 130, 131, 132, 133, 134,
2414 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2415 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2416 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2417 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2418 175, 176, 177, 178, 179, -1, -1, -1, -1, -1,
2419 -1, 186, 187, 188, 189, 190, 191, 192, 193, 1,
2420 -1, -1, -1, -1, 6, 7, 8, -1, -1, 11,
2421 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2422 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2423 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2424 42, 43, 44, -1, -1, 47, 48, 49, -1, -1,
2425 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2426 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
2427 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2428 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2429 -1, -1, -1, -1, 96, 97, 98, 99, 100, 101,
2430 -1, -1, -1, -1, -1, -1, -1, -1, 110, 111,
2431 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2432 122, 123, 124, 125, -1, 127, 128, 129, 130, 131,
2433 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2434 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2435 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2436 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2437 172, 173, 174, 175, 176, 177, 178, 179, -1, -1,
2438 -1, -1, -1, -1, 186, 187, 188, 189, 190, 191,
2439 192, 193, 1, -1, -1, -1, -1, 6, 7, 8,
2440 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2441 19, 20, 21, 22, 23, 24, -1, 26, -1, 28,
2442 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2443 39, 40, 41, 42, 43, -1, 45, -1, 47, 48,
2444 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2445 59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
2446 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
2447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2448 -1, -1, -1, -1, -1, -1, -1, 96, 97, 98,
2449 99, 100, 101, -1, -1, -1, -1, -1, 1, -1,
2450 -1, 110, -1, 6, 7, 8, 115, 10, 11, 12,
2451 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2452 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2453 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2454 43, -1, -1, 1, 47, 48, 49, -1, 6, 7,
2455 8, -1, -1, 11, 12, 13, 14, 15, 16, 17,
2456 18, 19, 20, -1, -1, -1, 24, -1, 71, -1,
2457 -1, 29, 30, 31, 32, 33, 34, 186, 187, 188,
2458 -1, 190, 191, 192, 42, 43, -1, -1, -1, 47,
2459 48, 49, 95, 96, 97, 98, 99, 100, 101, -1,
2460 -1, -1, -1, -1, -1, -1, -1, 110, -1, -1,
2461 -1, -1, 115, 71, -1, -1, -1, -1, -1, -1,
2462 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2463 -1, -1, -1, -1, -1, -1, -1, 95, 96, 97,
2464 98, 99, 100, 101, -1, -1, -1, -1, -1, 1,
2465 -1, -1, 110, -1, 6, 7, 8, 115, 10, 11,
2466 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2467 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2468 32, 33, 34, 186, 187, 188, -1, 190, 191, 192,
2469 42, 43, -1, -1, 1, 47, 48, 49, -1, 6,
2470 7, 8, -1, -1, 11, 12, 13, 14, 15, 16,
2471 17, 18, 19, 20, -1, -1, -1, 24, -1, 71,
2472 -1, -1, 29, 30, 31, 32, 33, 34, 186, 187,
2473 188, -1, 190, 191, 192, 42, 43, -1, -1, -1,
2474 47, 48, 49, -1, 96, 97, 98, 99, 100, 101,
2475 -1, -1, -1, -1, -1, -1, -1, -1, 110, -1,
2476 -1, -1, -1, 115, 71, -1, -1, -1, -1, -1,
2477 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2478 -1, -1, -1, -1, -1, -1, -1, -1, -1, 96,
2479 97, 98, 99, 100, 101, -1, -1, -1, -1, -1,
2480 1, -1, -1, 110, -1, 6, 7, 8, 115, 10,
2481 11, 12, 13, 14, 15, 16, 17, 18, 19, -1,
2482 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2483 31, 32, 33, 34, 186, 187, 188, -1, 190, 191,
2484 192, 42, 43, -1, -1, -1, 47, 48, 49, -1,
2485 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2486 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2487 71, -1, -1, -1, -1, -1, -1, -1, -1, 186,
2488 187, 188, -1, 190, 191, 192, -1, -1, -1, -1,
2489 -1, -1, -1, -1, -1, 96, 97, 98, 99, 100,
2490 101, -1, -1, -1, -1, -1, -1, -1, -1, 110,
2491 -1, 6, 7, 8, 115, 10, 11, 12, 13, 14,
2492 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2493 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2494 -1, -1, -1, -1, -1, -1, -1, 42, 43, 44,
2495 -1, 46, 47, 48, 49, -1, -1, -1, -1, -1,
2496 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2497 -1, -1, -1, -1, -1, -1, 71, 72, -1, -1,
2498 -1, -1, -1, -1, -1, 186, 187, 188, -1, 190,
2499 191, 192, -1, -1, -1, -1, -1, -1, -1, -1,
2500 -1, 96, 97, 98, 99, 100, 101, -1, -1, -1,
2501 -1, -1, -1, -1, -1, 110, 111, 112, 113, 114,
2502 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2503 125, -1, 127, 128, 129, 130, 131, 132, 133, 134,
2504 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2505 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2506 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2507 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2508 175, 176, 177, 178, 179, -1, -1, -1, -1, -1,
2509 -1, 186, 187, 188, 189, 190, 191, 192, 193, 6,
2510 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2511 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2512 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2513 -1, -1, -1, -1, -1, 42, 43, 44, -1, 46,
2514 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
2515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2516 -1, -1, -1, -1, 71, 72, -1, -1, -1, -1,
2517 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2518 -1, -1, -1, -1, -1, -1, -1, -1, -1, 96,
2519 97, 98, 99, 100, 101, -1, -1, -1, -1, -1,
2520 -1, -1, -1, 110, 111, 112, 113, 114, 115, 116,
2521 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
2522 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2523 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2524 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2525 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2526 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2527 177, 178, 179, -1, -1, -1, -1, -1, -1, 186,
2528 187, 188, 189, 190, 191, 192, 193, 6, 7, 8,
2529 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2530 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2531 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2532 -1, -1, -1, 42, 43, 44, -1, 46, 47, 48,
2533 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2534 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2535 -1, -1, 71, 72, -1, -1, -1, -1, -1, -1,
2536 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2537 -1, -1, -1, -1, -1, -1, -1, 96, 97, 98,
2538 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
2539 -1, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2540 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
2541 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2542 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2543 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2544 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2545 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2546 179, -1, -1, -1, -1, -1, -1, 186, 187, 188,
2547 189, 190, 191, 192, 193, 6, 7, 8, -1, 10,
2548 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2549 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2550 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2551 -1, -1, -1, -1, -1, -1, 47, 48, 49, -1,
2552 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2553 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2554 71, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2555 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2556 -1, 47, 48, 49, -1, 96, 97, 98, 99, 100,
2557 101, -1, -1, -1, -1, -1, -1, -1, -1, 110,
2558 -1, -1, -1, -1, 115, 71, -1, -1, -1, -1,
2559 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2561 96, 97, 98, 99, 100, 101, -1, -1, -1, -1,
2562 -1, -1, -1, -1, 110, -1, 6, 7, 8, 115,
2563 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2564 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2565 30, 31, 32, 33, 34, 186, 187, 188, -1, 190,
2566 191, 192, -1, -1, -1, -1, -1, 47, 48, 49,
2567 -1, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2568 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2569 -1, 71, -1, -1, 29, 30, 31, 32, 33, 34,
2570 186, 187, 188, -1, 190, 191, 192, -1, -1, -1,
2571 -1, -1, 47, 48, 49, -1, 96, 97, 98, 99,
2572 100, 101, -1, -1, -1, -1, -1, -1, -1, -1,
2573 110, -1, -1, -1, -1, 115, 71, -1, -1, -1,
2574 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2575 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2576 -1, 96, 97, 98, 99, 100, 101, -1, -1, -1,
2577 -1, -1, -1, -1, -1, 110, -1, 6, 7, 8,
2578 115, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2579 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2580 29, 30, 31, 32, 33, 34, 186, 187, 188, -1,
2581 190, 191, 192, -1, -1, -1, -1, -1, 47, 48,
2582 49, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2583 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2584 24, -1, 71, -1, -1, 29, 30, 31, 32, 33,
2585 34, 186, 187, 188, -1, 190, 191, 192, -1, -1,
2586 -1, -1, -1, 47, 48, 49, -1, 96, 97, 98,
2587 99, 100, 101, -1, -1, -1, -1, -1, -1, -1,
2588 -1, 110, -1, -1, -1, -1, 115, 71, -1, -1,
2589 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2590 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2591 -1, -1, 96, 97, 98, 99, 100, 101, 47, 48,
2592 49, -1, -1, -1, -1, -1, 110, -1, 6, 7,
2593 8, 115, 10, 11, 12, 13, 14, 15, 16, 17,
2594 18, 19, 71, -1, -1, -1, 24, -1, -1, -1,
2595 -1, 29, 30, 31, 32, 33, 34, 186, 187, 188,
2596 -1, 190, 191, 192, -1, -1, -1, -1, -1, 47,
2597 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2598 -1, -1, -1, -1, -1, -1, 115, -1, -1, -1,
2599 -1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2600 -1, -1, 186, 187, 188, -1, 190, 191, 192, -1,
2601 -1, -1, -1, -1, -1, -1, -1, -1, 96, 97,
2602 98, 99, 100, 101, 19, -1, -1, -1, -1, 24,
2603 -1, -1, 110, -1, -1, -1, -1, 115, -1, -1,
2604 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
2605 -1, 46, -1, -1, -1, -1, -1, 186, 187, 188,
2606 -1, 190, -1, -1, -1, -1, -1, -1, -1, -1,
2607 -1, -1, -1, -1, -1, -1, -1, 72, -1, -1,
2608 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2609 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2610 -1, -1, -1, -1, -1, -1, -1, -1, 186, 187,
2611 188, -1, 190, 191, 192, -1, 111, 112, 113, 114,
2612 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2613 125, -1, 127, 128, 129, 130, 131, 132, 133, 134,
2614 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2615 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2616 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2617 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2618 175, 176, 177, 178, 179, 20, -1, -1, -1, -1,
2619 -1, -1, -1, 188, 189, -1, -1, -1, 193, -1,
2620 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
2621 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2622 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2624 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2625 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2626 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2627 -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
2628 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2629 125, -1, 127, 128, 129, 130, 131, 132, 133, 134,
2630 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2631 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2632 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2633 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2634 175, 176, 177, 178, 179, -1, -1, -1, -1, -1,
2635 19, -1, -1, 188, 189, 24, -1, -1, 193, -1,
2636 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2637 -1, 19, -1, -1, -1, -1, 24, -1, 47, 48,
2638 49, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2639 -1, -1, -1, -1, -1, -1, -1, -1, 19, 47,
2640 48, 49, 71, 24, -1, -1, -1, -1, 29, 30,
2641 31, 32, 33, 34, -1, -1, -1, -1, -1, 19,
2642 -1, -1, -1, 71, 24, -1, 47, 48, 49, 29,
2643 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2644 -1, -1, -1, -1, -1, -1, 115, 47, 48, 49,
2645 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2646 -1, -1, -1, -1, -1, -1, -1, 115, -1, -1,
2647 -1, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2648 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2649 -1, -1, -1, -1, 115, -1, -1, -1, -1, -1,
2650 -1, -1, -1, -1, 24, -1, -1, -1, -1, -1,
2651 -1, -1, -1, -1, 34, 115, -1, 186, 187, 188,
2652 -1, 190, -1, -1, 44, -1, -1, -1, -1, -1,
2653 -1, -1, -1, -1, -1, -1, -1, -1, 186, 187,
2654 188, -1, 190, -1, -1, -1, -1, -1, -1, -1,
2655 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2656 -1, -1, -1, -1, -1, 186, 187, 188, -1, 190,
2657 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2658 -1, -1, -1, -1, -1, -1, 186, 187, 188, -1,
2659 190, 111, 112, 113, 114, -1, 116, 117, 118, 119,
2660 120, 121, 122, 123, 124, 125, -1, 127, 128, 129,
2661 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2662 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2663 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2664 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2665 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2666 -1, -1, -1, -1, -1, -1, 186, 187, 188, 189,
2667 -1, 191, 192, 193, 24, 25, -1, -1, -1, 29,
2668 30, 31, 32, 33, 34, 24, -1, -1, 27, -1,
2669 29, 30, 31, 32, 33, 34, -1, 47, 48, 49,
2670 -1, -1, -1, -1, -1, -1, 24, 25, 47, 48,
2671 49, 29, 30, 31, 32, 33, 34, 24, -1, -1,
2672 27, 71, 29, 30, 31, 32, 33, 34, -1, 47,
2673 48, 49, 71, -1, -1, -1, -1, -1, 24, 25,
2674 47, 48, 49, 29, 30, 31, 32, 33, 34, -1,
2675 -1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2676 -1, 47, 48, 49, 71, 115, -1, -1, -1, -1,
2677 -1, -1, -1, -1, -1, -1, 115, -1, -1, -1,
2678 -1, -1, -1, -1, -1, 71, 24, -1, -1, -1,
2679 -1, 29, 30, 31, 32, 33, 34, 115, -1, -1,
2680 -1, -1, -1, -1, -1, -1, -1, 24, 115, 47,
2681 48, 49, 29, 30, 31, 32, 33, 34, 24, -1,
2682 -1, -1, -1, 29, 30, 31, 32, 33, 34, 115,
2683 47, 48, 49, 71, -1, -1, 186, 187, 188, -1,
2684 190, 47, 48, 49, -1, -1, -1, 186, 187, 188,
2685 24, 190, -1, -1, 71, 29, 30, 31, 32, 33,
2686 34, -1, -1, -1, -1, 71, -1, -1, 186, 187,
2687 188, -1, 190, 47, 48, 49, -1, 115, -1, 186,
2688 187, 188, -1, 190, -1, -1, -1, -1, -1, -1,
2689 -1, -1, -1, -1, -1, -1, -1, 71, 115, -1,
2690 186, 187, 188, -1, 190, -1, 24, -1, -1, 115,
2691 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2692 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
2693 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2694 -1, 115, -1, -1, -1, -1, -1, -1, 186, 187,
2695 188, -1, 190, 71, -1, -1, -1, -1, -1, -1,
2696 -1, -1, -1, -1, -1, -1, -1, -1, -1, 186,
2697 187, 188, -1, 190, -1, -1, -1, -1, -1, -1,
2698 186, 187, 188, -1, 190, -1, -1, -1, -1, -1,
2699 -1, -1, -1, -1, -1, -1, -1, 115, -1, -1,
2700 -1, -1, -1, -1, 42, 43, 44, -1, -1, -1,
2701 -1, -1, 186, 187, 188, -1, 190, -1, -1, -1,
2702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2703 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2704 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2705 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2706 -1, -1, -1, -1, -1, -1, -1, -1, 186, 187,
2707 188, -1, 190, 111, 112, 113, 114, -1, 116, 117,
2708 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
2709 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2710 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2711 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2712 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2713 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2714 178, 179, 44, -1, 46, -1, -1, -1, -1, -1,
2715 188, 189, -1, -1, -1, 193, -1, -1, -1, -1,
2716 -1, -1, -1, -1, -1, -1, 68, 69, 70, -1,
2717 72, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2718 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2719 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2720 -1, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2721 112, 113, 114, -1, 116, 117, 118, 119, 120, 121,
2722 122, 123, 124, 125, -1, 127, 128, 129, 130, 131,
2723 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2724 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2725 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2726 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2727 172, 173, 174, 175, 176, 177, 178, 179, 44, -1,
2728 46, -1, -1, -1, -1, -1, 188, 189, -1, -1,
2729 -1, 193, -1, -1, -1, -1, -1, -1, -1, -1,
2730 -1, -1, -1, -1, -1, -1, 72, -1, -1, -1,
2731 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2732 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2733 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2734 -1, -1, -1, -1, -1, 111, 112, 113, 114, -1,
2735 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2736 -1, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2737 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2738 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2739 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2740 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2741 176, 177, 178, 179, 44, -1, -1, -1, -1, -1,
2742 186, 187, 188, 189, -1, -1, -1, 193, -1, -1,
2743 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
2744 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2745 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2746 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2748 -1, 111, 112, 113, 114, -1, 116, 117, 118, 119,
2749 120, 121, 122, 123, 124, 125, -1, 127, 128, 129,
2750 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2751 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2752 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2753 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2754 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2755 44, -1, -1, -1, -1, -1, -1, -1, 188, 189,
2756 -1, -1, -1, 193, -1, -1, -1, -1, -1, -1,
2757 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2758 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2759 -1, -1, -1, -1, -1, -1, -1, -1, 92, 93,
2760 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2761 -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
2762 114, -1, 116, 117, 118, 119, 120, 121, 122, 123,
2763 124, 125, -1, 127, 128, 129, 130, 131, 132, 133,
2764 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2765 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2766 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2767 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2768 174, 175, 176, 177, 178, 179, 44, -1, 46, -1,
2769 -1, -1, -1, -1, 188, 189, -1, -1, -1, 193,
2770 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2771 -1, -1, -1, -1, 72, -1, -1, -1, -1, -1,
2772 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2773 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2774 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2775 -1, -1, -1, 111, 112, 113, 114, -1, 116, 117,
2776 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
2777 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2778 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2779 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2780 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2781 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2782 178, 179, 44, -1, -1, -1, -1, -1, -1, -1,
2783 188, 189, -1, -1, -1, 193, -1, -1, -1, -1,
2784 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2785 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2786 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2788 -1, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2789 112, 113, 114, -1, 116, 117, 118, 119, 120, 121,
2790 122, 123, 124, 125, -1, 127, 128, 129, 130, 131,
2791 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2792 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2793 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2794 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2795 172, 173, 174, 175, 176, 177, 178, 179, -1, -1,
2796 -1, -1, -1, -1, -1, -1, 188, 189, -1, -1,
2799 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2801 /* Skeleton output parser for bison,
2803 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
2806 This program is free software; you can redistribute it and/or modify
2807 it under the terms of the GNU General Public License as published by
2808 the Free Software Foundation; either version 2, or (at your option)
2811 This program is distributed in the hope that it will be useful,
2812 but WITHOUT ANY WARRANTY; without even the implied warranty of
2813 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2814 GNU General Public License for more details.
2816 You should have received a copy of the GNU General Public License
2817 along with this program; if not, write to the Free Software
2818 Foundation, Inc., 59 Temple Place - Suite 330,
2819 Boston, MA 02111-1307, USA. */
2821 /* As a special exception, when this file is copied by Bison into a
2822 Bison output file, you may use that output file without restriction.
2823 This special exception was added by the Free Software Foundation
2824 in version 1.24 of Bison. */
2826 /* This is the parser code that is written into each bison parser when
2827 the %semantic_parser declaration is not specified in the grammar.
2828 It was written by Richard Stallman by simplifying the hairy parser
2829 used when %semantic_parser is specified. */
2831 /* All symbols defined below should begin with yy or YY, to avoid
2832 infringing on user name space. This should be done even for local
2833 variables, as they might otherwise be expanded by user macros.
2834 There are some unavoidable exceptions within include files to
2835 define necessary library symbols; they are noted "INFRINGES ON
2836 USER NAME SPACE" below. */
2838 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
2840 /* The parser invokes alloca or malloc; define the necessary symbols. */
2842 # if YYSTACK_USE_ALLOCA
2843 # define YYSTACK_ALLOC alloca
2845 # ifndef YYSTACK_USE_ALLOCA
2846 # if defined (alloca) || defined (_ALLOCA_H)
2847 # define YYSTACK_ALLOC alloca
2850 # define YYSTACK_ALLOC __builtin_alloca
2856 # ifdef YYSTACK_ALLOC
2857 /* Pacify GCC's `empty if-body' warning. */
2858 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
2860 # if defined (__STDC__) || defined (__cplusplus)
2861 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
2862 # define YYSIZE_T size_t
2864 # define YYSTACK_ALLOC malloc
2865 # define YYSTACK_FREE free
2867 #endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
2870 #if (! defined (yyoverflow) \
2871 && (! defined (__cplusplus) \
2872 || (YYLTYPE_IS_TRIVIAL && cgrammar_YYSTYPE_IS_TRIVIAL)))
2874 /* A type that is properly aligned for any stack member. */
2878 cgrammar_YYSTYPE yyvs;
2884 /* The size of the maximum gap between one aligned stack and the next. */
2885 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
2887 /* The size of an array large to enough to hold all stacks, each with
2890 # define YYSTACK_BYTES(N) \
2891 ((N) * (sizeof (short) + sizeof (cgrammar_YYSTYPE) + sizeof (YYLTYPE)) \
2892 + 2 * YYSTACK_GAP_MAX)
2894 # define YYSTACK_BYTES(N) \
2895 ((N) * (sizeof (short) + sizeof (cgrammar_YYSTYPE)) \
2899 /* Copy COUNT objects from FROM to TO. The source and destination do
2903 # define YYCOPY(To, From, Count) \
2904 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
2906 # define YYCOPY(To, From, Count) \
2909 register YYSIZE_T yyi; \
2910 for (yyi = 0; yyi < (Count); yyi++) \
2911 (To)[yyi] = (From)[yyi]; \
2917 /* Relocate STACK from its old location to the new one. The
2918 local variables YYSIZE and YYSTACKSIZE give the old and new number of
2919 elements in the stack, and YYPTR gives the new location of the
2920 stack. Advance YYPTR to a properly aligned location for the next
2922 # define YYSTACK_RELOCATE(Stack) \
2925 YYSIZE_T yynewbytes; \
2926 YYCOPY (&yyptr->Stack, Stack, yysize); \
2927 Stack = &yyptr->Stack; \
2928 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
2929 yyptr += yynewbytes / sizeof (*yyptr); \
2936 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
2937 # define YYSIZE_T __SIZE_TYPE__
2939 #if ! defined (YYSIZE_T) && defined (size_t)
2940 # define YYSIZE_T size_t
2942 #if ! defined (YYSIZE_T)
2943 # if defined (__STDC__) || defined (__cplusplus)
2944 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
2945 # define YYSIZE_T size_t
2948 #if ! defined (YYSIZE_T)
2949 # define YYSIZE_T unsigned int
2952 #define yyerrok (yyerrstatus = 0)
2953 #define yyclearin (yychar = YYEMPTY)
2956 #define YYACCEPT goto yyacceptlab
2957 #define YYABORT goto yyabortlab
2958 #define YYERROR goto yyerrlab1
2959 /* Like YYERROR except do call yyerror. This remains here temporarily
2960 to ease the transition to the new meaning of YYERROR, for GCC.
2961 Once GCC version 2 has supplanted version 1, this can go. */
2962 #define YYFAIL goto yyerrlab
2963 #define YYRECOVERING() (!!yyerrstatus)
2964 #define YYBACKUP(Token, Value) \
2966 if (yychar == YYEMPTY && yylen == 1) \
2970 yychar1 = YYTRANSLATE (yychar); \
2976 yyerror ("syntax error: cannot back up"); \
2982 #define YYERRCODE 256
2985 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
2988 When YYLLOC_DEFAULT is run, CURRENT is set the location of the
2989 first token. By default, to implement support for ranges, extend
2990 its range to the last symbol. */
2992 #ifndef YYLLOC_DEFAULT
2993 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2994 Current.last_line = Rhs[N].last_line; \
2995 Current.last_column = Rhs[N].last_column;
2999 /* YYLEX -- calling `yylex' with the right arguments. */
3004 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
3006 # define YYLEX yylex (&yylval, &yylloc)
3008 # else /* !YYLSP_NEEDED */
3010 # define YYLEX yylex (&yylval, YYLEX_PARAM)
3012 # define YYLEX yylex (&yylval)
3014 # endif /* !YYLSP_NEEDED */
3016 # define YYLEX yylex ()
3017 #endif /* !YYPURE */
3020 /* Enable debugging if requested. */
3024 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3025 # define YYFPRINTF fprintf
3028 # define YYDPRINTF(Args) \
3033 /* Nonzero means print parse trace. It is left uninitialized so that
3034 multiple parsers can coexist. */
3036 #else /* !YYDEBUG */
3037 # define YYDPRINTF(Args)
3038 #endif /* !YYDEBUG */
3040 /* YYINITDEPTH -- initial size of the parser's stacks. */
3042 # define YYINITDEPTH 200
3045 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3046 if the built-in stack extension method is used).
3048 Do not make this value too large; the results are undefined if
3049 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
3050 evaluated with infinite-precision integer arithmetic. */
3057 # define YYMAXDEPTH 10000
3060 #ifdef YYERROR_VERBOSE
3063 # if defined (__GLIBC__) && defined (_STRING_H)
3064 # define yystrlen strlen
3066 /* Return the length of YYSTR. */
3068 # if defined (__STDC__) || defined (__cplusplus)
3069 yystrlen (const char *yystr)
3075 register const char *yys = yystr;
3077 while (*yys++ != '\0')
3080 return yys - yystr - 1;
3086 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
3087 # define yystpcpy stpcpy
3089 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3092 # if defined (__STDC__) || defined (__cplusplus)
3093 yystpcpy (char *yydest, const char *yysrc)
3095 yystpcpy (yydest, yysrc)
3100 register char *yyd = yydest;
3101 register const char *yys = yysrc;
3103 while ((*yyd++ = *yys++) != '\0')
3114 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
3115 into yyparse. The argument should have type void *.
3116 It should actually point to an object.
3117 Grammar actions can access the variable by casting it
3118 to the proper pointer type. */
3120 #ifdef YYPARSE_PARAM
3121 # if defined (__STDC__) || defined (__cplusplus)
3122 # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
3123 # define YYPARSE_PARAM_DECL
3125 # define YYPARSE_PARAM_ARG YYPARSE_PARAM
3126 # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
3128 #else /* !YYPARSE_PARAM */
3129 # define YYPARSE_PARAM_ARG
3130 # define YYPARSE_PARAM_DECL
3131 #endif /* !YYPARSE_PARAM */
3133 /* Prevent warning if -Wstrict-prototypes. */
3135 # ifdef YYPARSE_PARAM
3136 int yyparse (void *);
3142 /* YY_DECL_VARIABLES -- depending whether we use a pure parser,
3143 variables are global, or local to YYPARSE. */
3145 #define YY_DECL_NON_LSP_VARIABLES \
3146 /* The lookahead symbol. */ \
3149 /* The semantic value of the lookahead symbol. */ \
3150 cgrammar_YYSTYPE yylval; \
3152 /* Number of parse errors so far. */ \
3156 # define YY_DECL_VARIABLES \
3157 YY_DECL_NON_LSP_VARIABLES \
3159 /* Location data for the lookahead symbol. */ \
3162 # define YY_DECL_VARIABLES \
3163 YY_DECL_NON_LSP_VARIABLES
3167 /* If nonreentrant, generate the variables here. */
3171 #endif /* !YYPURE */
3174 yyparse (YYPARSE_PARAM_ARG)
3177 /* If reentrant, generate the variables here. */
3180 #endif /* !YYPURE */
3182 register int yystate;
3185 /* Number of tokens to shift before error messages enabled. */
3187 /* Lookahead token as an internal (translated) token number. */
3190 /* Three stacks and their tools:
3191 `yyss': related to states,
3192 `yyvs': related to semantic values,
3193 `yyls': related to locations.
3195 Refer to the stacks thru separate pointers, to allow yyoverflow
3196 to reallocate them elsewhere. */
3198 /* The state stack. */
3199 short yyssa[YYINITDEPTH];
3200 short *yyss = yyssa;
3201 register short *yyssp;
3203 /* The semantic value stack. */
3204 cgrammar_YYSTYPE yyvsa[YYINITDEPTH];
3205 cgrammar_YYSTYPE *yyvs = yyvsa;
3206 register cgrammar_YYSTYPE *yyvsp;
3209 /* The location stack. */
3210 YYLTYPE yylsa[YYINITDEPTH];
3211 YYLTYPE *yyls = yylsa;
3216 # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
3218 # define YYPOPSTACK (yyvsp--, yyssp--)
3221 YYSIZE_T yystacksize = YYINITDEPTH;
3224 /* The variables used to return semantic value and location from the
3226 cgrammar_YYSTYPE yyval;
3231 /* When reducing, the number of symbols on the RHS of the reduced
3235 YYDPRINTF ((stderr, "Starting parse\n"));
3240 yychar = YYEMPTY; /* Cause a token to be read. */
3242 /* Initialize stack pointers.
3243 Waste one element of value and location stack
3244 so that they stay on the same level as the state stack.
3245 The wasted elements are never initialized. */
3254 /*------------------------------------------------------------.
3255 | yynewstate -- Push a new state, which is found in yystate. |
3256 `------------------------------------------------------------*/
3258 /* In all cases, when you get here, the value and location stacks
3259 have just been pushed. so pushing a state here evens the stacks.
3266 if (yyssp >= yyss + yystacksize - 1)
3268 /* Get the current used size of the three stacks, in elements. */
3269 YYSIZE_T yysize = yyssp - yyss + 1;
3273 /* Give user a chance to reallocate the stack. Use copies of
3274 these so that the &'s don't force the real ones into
3276 cgrammar_YYSTYPE *yyvs1 = yyvs;
3277 short *yyss1 = yyss;
3279 /* Each stack pointer address is followed by the size of the
3280 data in use in that stack, in bytes. */
3282 YYLTYPE *yyls1 = yyls;
3283 /* This used to be a conditional around just the two extra args,
3284 but that might be undefined if yyoverflow is a macro. */
3285 yyoverflow ("parser stack overflow",
3286 &yyss1, yysize * sizeof (*yyssp),
3287 &yyvs1, yysize * sizeof (*yyvsp),
3288 &yyls1, yysize * sizeof (*yylsp),
3292 yyoverflow ("parser stack overflow",
3293 &yyss1, yysize * sizeof (*yyssp),
3294 &yyvs1, yysize * sizeof (*yyvsp),
3300 #else /* no yyoverflow */
3301 # ifndef YYSTACK_RELOCATE
3304 /* Extend the stack our own way. */
3305 if (yystacksize >= YYMAXDEPTH)
3308 if (yystacksize > YYMAXDEPTH)
3309 yystacksize = YYMAXDEPTH;
3312 short *yyss1 = yyss;
3313 union yyalloc *yyptr =
3314 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3317 YYSTACK_RELOCATE (yyss);
3318 YYSTACK_RELOCATE (yyvs);
3320 YYSTACK_RELOCATE (yyls);
3322 # undef YYSTACK_RELOCATE
3324 YYSTACK_FREE (yyss1);
3327 #endif /* no yyoverflow */
3329 yyssp = yyss + yysize - 1;
3330 yyvsp = yyvs + yysize - 1;
3332 yylsp = yyls + yysize - 1;
3335 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3336 (unsigned long int) yystacksize));
3338 if (yyssp >= yyss + yystacksize - 1)
3342 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3352 /* Do appropriate processing given the current state. */
3353 /* Read a lookahead token if we need one and don't already have one. */
3356 /* First try to decide what to do without reference to lookahead token. */
3358 yyn = yypact[yystate];
3362 /* Not known => get a lookahead token if don't already have one. */
3364 /* yychar is either YYEMPTY or YYEOF
3365 or a valid token in external form. */
3367 if (yychar == YYEMPTY)
3369 YYDPRINTF ((stderr, "Reading a token: "));
3373 /* Convert token to internal form (in yychar1) for indexing tables with */
3375 if (yychar <= 0) /* This means end of input. */
3378 yychar = YYEOF; /* Don't call YYLEX any more */
3380 YYDPRINTF ((stderr, "Now at end of input.\n"));
3384 yychar1 = YYTRANSLATE (yychar);
3387 /* We have to keep this `#if YYDEBUG', since we use variables
3388 which are defined only if `YYDEBUG' is set. */
3391 YYFPRINTF (stderr, "Next token is %d (%s",
3392 yychar, yytname[yychar1]);
3393 /* Give the individual parser a way to print the precise
3394 meaning of a token, for further debugging info. */
3396 YYPRINT (stderr, yychar, yylval);
3398 YYFPRINTF (stderr, ")\n");
3404 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3409 /* yyn is what to do for this token type in this state.
3410 Negative => reduce, -yyn is rule number.
3411 Positive => shift, yyn is new state.
3412 New state is final state => don't bother to shift,
3413 just return success.
3414 0, or most negative number => error. */
3429 /* Shift the lookahead token. */
3430 YYDPRINTF ((stderr, "Shifting token %d (%s), ",
3431 yychar, yytname[yychar1]));
3433 /* Discard the token being shifted unless it is eof. */
3434 if (yychar != YYEOF)
3442 /* Count tokens shifted since error; after three, turn off error
3451 /*-----------------------------------------------------------.
3452 | yydefault -- do the default action for the current state. |
3453 `-----------------------------------------------------------*/
3455 yyn = yydefact[yystate];
3461 /*-----------------------------.
3462 | yyreduce -- Do a reduction. |
3463 `-----------------------------*/
3465 /* yyn is the number of a rule to reduce with. */
3468 /* If YYLEN is nonzero, implement the default value of the action:
3471 Otherwise, the following line sets YYVAL to the semantic value of
3472 the lookahead token. This behavior is undocumented and Bison
3473 users should not rely upon it. Assigning to YYVAL
3474 unconditionally makes the parser a bit smaller, and it avoids a
3475 GCC warning that YYVAL may be used uninitialized. */
3476 yyval = yyvsp[1-yylen];
3479 /* Similarly for the default location. Let the user run additional
3480 commands if for instance locations are ranges. */
3481 yyloc = yylsp[1-yylen];
3482 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
3486 /* We have to keep this `#if YYDEBUG', since we use variables which
3487 are defined only if `YYDEBUG' is set. */
3492 YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
3495 /* Print the symbols being reduced, and their result. */
3496 for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
3497 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
3498 YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3505 { context_checkGlobalScope (); ;
3508 { context_checkGlobalScope (); ;
3511 { uentry_clearDecl (); ;
3514 { uentry_clearDecl (); ;
3517 { uentry_clearDecl (); ;
3520 { uentry_clearDecl (); ;
3523 { uentry_clearDecl (); ;
3526 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3529 { uentry_clearDecl (); lltok_free (yyvsp[0].tok); /* evans 2002-02-08: okay to have a null statement */ ;
3532 { uentry_clearDecl (); ;
3535 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); lltok_free2 (yyvsp[-7].tok, yyvsp[0].tok); ;
3538 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr); lltok_free3 (yyvsp[-10].tok, yyvsp[-5].tok, yyvsp[0].tok); ;
3541 { context_enterFunctionHeader (); ;
3545 declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3546 context_exitFunctionHeader ();
3547 lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); /*!*/
3552 qtype qint = qtype_create (ctype_int);
3553 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3558 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3561 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
3564 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3567 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;
3570 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
3574 exprNode_findValue (yyvsp[-2].expr);
3575 idDecl_notExpectingFunction (yyvsp[-5].ntyp);
3577 if (exprNode_hasValue (yyvsp[-2].expr))
3579 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp),
3580 exprNode_getLongValue (yyvsp[-2].expr)));
3584 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-5].ntyp)));
3587 lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
3591 { setCurrentParams (uentryList_missingParams); ;
3594 { /* need to support globals and modifies here! */
3595 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3596 uentryList_makeMissingParams ());
3598 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3600 /*drl 7/25/01 added*/
3601 setImplictfcnConstraints();
3603 /* functionClauseList_ImplictConstraints($6); */
3605 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3607 lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
3611 { setCurrentParams (yyvsp[-1].entrylist); ;
3615 setImplictfcnConstraints ();
3616 /* functionClauseList_ImplictConstraints($7);*/
3617 clearCurrentParams ();
3618 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3619 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3621 lltok_free2 (yyvsp[-4].tok, yyvsp[-2].tok);
3625 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3628 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;
3631 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp)));
3632 lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok);
3639 if (exprNode_hasValue (yyvsp[-2].expr)
3640 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3642 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3649 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3650 lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
3654 { setCurrentParams (uentryList_missingParams); ;
3658 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3659 uentryList_makeMissingParams ());
3661 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3662 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3664 lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
3668 { setCurrentParams (yyvsp[-1].entrylist); ;
3672 clearCurrentParams ();
3673 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3674 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3676 lltok_free (yyvsp[-4].tok);
3677 /*!! lltok_free2 ($3, $5); */
3681 { setCurrentParams (yyvsp[-1].entrylist); ;
3684 { clearCurrentParams (); ;
3687 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist);
3688 lltok_free3 (yyvsp[-9].tok, yyvsp[-7].tok, yyvsp[-5].tok);
3692 { exprNode_checkMacroBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
3695 { exprNode_checkIterBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
3698 { exprNode_checkIterEnd (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok);;
3701 { exprChecks_checkEmptyMacroBody (); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
3704 { clabstract_declareFunction (yyvsp[0].ntyp); ;
3707 { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;
3710 { cscanner_expectingMetaStateName (); ;
3713 { cscanner_clearExpectingMetaStateName ();
3714 yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo);
3715 lltok_free (yyvsp[-1].tok);
3719 { cscanner_expectingMetaStateName (); ;
3722 { cscanner_clearExpectingMetaStateName ();
3723 yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo);
3724 lltok_free2 (yyvsp[-3].tok, yyvsp[-1].tok);
3728 { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
3731 { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;
3734 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
3737 { yyval.conL = constraintList_single (yyvsp[0].con); ;
3741 yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
3742 DPRINTF(("Done BufConstraint1\n")); ;
3745 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3749 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3750 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3753 { yyval.conE = constraintExpr_makeTermsRef (yyvsp[0].sr);;
3756 { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
3759 { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
3762 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3765 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3771 t = cstring_toCharsSafe (exprNode_unparse($3));
3774 yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
3778 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3781 { yyval.sr = yyvsp[-1].sr; ;
3784 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3787 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3790 { yyval.funcclauselist = functionClauseList_new (); ;
3793 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3796 { yyval.funcclauselist = functionClauseList_new (); ;
3799 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3802 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3805 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3808 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3811 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3814 { yyval.funcclause = yyvsp[0].funcclause; ;
3817 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3820 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3823 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3826 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3829 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3832 { yyval.funcclause = yyvsp[0].funcclause; ;
3835 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3838 { yyval.globsclause = yyvsp[-1].globsclause; ;
3841 { setProcessingGlobalsList (); ;
3845 unsetProcessingGlobals ();
3846 yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset);
3850 { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
3853 { yyval.modsclause = yyvsp[-1].modsclause; ;
3857 context_setProtectVars (); enterParamsTemp ();
3858 sRef_setGlobalScopeSafe ();
3864 sRef_clearGlobalScopeSafe ();
3865 context_releaseVars ();
3866 yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
3870 { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
3873 { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
3876 { yyval.warnclause = warnClause_undefined; ;
3879 { yyval.warnclause = yyvsp[-1].warnclause; ;
3883 llassert (exprNode_knownStringValue (yyvsp[0].expr));
3884 yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr))));
3885 exprNode_free (yyvsp[0].expr);
3889 { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
3892 { yyval.globset = globSet_single (yyvsp[0].sr); ;
3895 { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
3898 { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3901 { yyval.tquallist = qualList_undefined; ;
3904 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3907 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3910 { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
3913 { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
3916 { yyval.typequal = qual_createUndef (); ;
3919 { yyval.typequal = qual_createKilled (); ;
3922 { yyval.typequal = qual_createOut (); ;
3925 { yyval.typequal = qual_createIn (); ;
3928 { yyval.typequal = qual_createPartial (); ;
3932 /**!!! deal with fred; fred (int); declarations! **/
3933 qtype qint = qtype_create (ctype_int);
3934 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3939 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3942 { checkDoneParams (); context_enterInnerContext (); ;
3946 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3947 context_exitInner (yyvsp[0].expr);
3951 { context_enterOldStyleScope (); ;
3954 { oldStyleDoneParams (); context_enterInnerContext (); ;
3958 exprNode_checkFunctionBody (yyvsp[0].expr);
3959 yyval.expr = yyvsp[0].expr; /* oldstyle */
3960 context_exitInner (yyvsp[0].expr);
3965 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3966 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3969 context_exitFunction ();
3973 { yyval.srset = yyvsp[-1].srset; ;
3976 { yyval.srset = sRefSet_new (); ;
3979 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3982 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3985 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3988 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3991 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3994 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3997 { yyval.sr = yyvsp[-1].sr; ;
4000 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
4003 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
4006 { yyval.sr = yyvsp[0].sr; ;
4009 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
4012 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
4015 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
4018 { yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
4021 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
4024 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
4027 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
4030 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
4033 { yyval.sr = yyvsp[-1].sr; ;
4036 { cstring_markOwned (yyvsp[0].cname);
4037 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
4040 { cstring_markOwned (yyvsp[0].cname);
4041 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
4044 { yyval.srset = sRefSet_undefined ;
4047 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
4048 else { yyval.srset = sRefSet_undefined; }
4052 { if (sRef_isValid (yyvsp[0].sr))
4054 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
4058 yyval.srset = yyvsp[-2].srset;
4063 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
4066 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
4069 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4072 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
4075 { yyval.expr = exprNode_makeError (); ;
4078 { exprChecks_inCompoundStatementExpression (); ;
4081 { exprChecks_leaveCompoundStatementExpression (); yyval.expr = exprNode_compoundStatementExpression (yyvsp[-3].tok, yyvsp[-1].expr); ;
4084 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4087 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4090 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
4093 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
4096 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4099 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4102 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4105 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4108 { /* added for C99 */ yyval.expr = exprNode_undefined; /*@i87 no checking */ ;
4111 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4114 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
4117 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4120 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4123 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4126 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4129 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4132 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4135 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4138 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4141 { yyval.expr = yyvsp[0].expr; ;
4144 { yyval.expr = yyvsp[0].expr; ;
4147 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); lltok_free (yyvsp[-1].tok); ;
4150 { yyval.cstringlist = yyvsp[-3].cstringlist; lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
4153 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
4156 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist);
4157 lltok_free3 (yyvsp[-8].tok, yyvsp[-6].tok, yyvsp[-3].tok); lltok_free (yyvsp[-1].tok); ;
4160 { context_setProtectVars (); ;
4163 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
4166 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok); ;
4169 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;
4172 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok); ;
4175 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;
4178 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); lltok_free (yyvsp[-1].tok); ;
4181 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4184 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4187 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4190 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4193 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4196 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4199 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4202 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4205 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4208 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4211 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4214 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4217 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4220 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4223 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4226 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4229 { exprNode_produceGuards (yyvsp[-1].expr);
4230 context_enterAndClause (yyvsp[-1].expr);
4235 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4236 context_exitAndClause (yyval.expr, yyvsp[0].expr);
4241 exprNode_produceGuards (yyvsp[-1].expr);
4242 context_enterOrClause (yyvsp[-1].expr);
4247 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4248 context_exitOrClause (yyval.expr, yyvsp[0].expr);
4252 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4255 { context_enterFalseClause (yyvsp[-4].expr); ;
4258 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
4261 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4264 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4267 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4270 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4273 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4276 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4279 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4282 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4285 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4288 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4291 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4294 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
4297 { yyval.expr = exprNode_undefined; ;
4300 { yyval.expr = yyvsp[0].expr; ;
4303 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
4306 { yyval.expr = exprNode_makeError (); ;
4309 { yyval.expr = exprNode_makeError (); ;
4313 setProcessingVars (yyvsp[-3].qtyp);
4314 processNamedDecl (yyvsp[-1].ntyp);
4319 unsetProcessingVars ();
4320 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp);
4321 DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
4325 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
4328 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
4329 unsetProcessingVars ();
4333 { yyval.expr = yyvsp[0].expr; ;
4336 { yyval.expr = exprNode_fromIdentifier (usymtab_getTypeEntry (ctype_typeId (yyvsp[0].ctyp))); ;
4340 processNamedDecl (yyvsp[-1].ntyp);
4341 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
4345 { processNamedDecl (yyvsp[-2].ntyp); ;
4348 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
4351 { setProcessingTypedef (yyvsp[0].qtyp); ;
4354 { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
4357 { /* in the ANSI grammar, semantics unclear */ ;
4360 { /* in the ANSI grammar, semantics unclear */ ;
4363 { g_expectingTypeName = TRUE; ;
4366 { g_expectingTypeName = TRUE; context_pushLoc (); ;
4369 { yyval.exprlist = yyvsp[-1].exprlist; ;
4372 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4375 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4378 { yyval.exprlist = yyvsp[-1].exprlist; ;
4381 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4384 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4387 { yyval.expr = exprNode_makeError (); ;
4390 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4393 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); lltok_free (yyvsp[0].tok); ;
4396 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
4399 { yyval.expr = exprNode_undefined; ;
4402 { yyval.expr = yyvsp[-1].expr; ;
4405 { yyval.expr = exprNode_undefined;
4406 /* gcc extension, obsolete since 2.5 */ ;
4409 { yyval.expr = exprNode_undefined; ;
4412 { yyval.expr = exprNode_undefined; ;
4415 { yyval.expr = exprNode_undefined; ;
4418 { yyval.expr = exprNode_undefined; ;
4421 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4424 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
4427 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4430 { yyval.typequal = qual_createInline (); ;
4433 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4436 { yyval.typequal = qual_createAuto (); ;
4439 { yyval.typequal = qual_createRegister (); ;
4442 { yyval.stateclause = yyvsp[-1].stateclause; ;
4446 context_setProtectVars ();
4448 sRef_setGlobalScopeSafe ();
4454 sRef_clearGlobalScopeSafe ();
4455 context_releaseVars ();
4456 yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
4460 { yyval.funcclause = yyvsp[-1].funcclause; ;
4463 { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
4467 context_exitFunctionHeader ();
4468 context_setProtectVars ();
4470 sRef_setGlobalScopeSafe ();
4476 sRef_clearGlobalScopeSafe ();
4477 context_releaseVars ();
4478 yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
4483 context_setProtectVars ();
4485 sRef_setGlobalScopeSafe ();
4490 context_exitFunctionHeader ();
4492 sRef_clearGlobalScopeSafe ();
4493 context_releaseVars ();
4494 DPRINTF (("done optGlobBufConstraintsAux\n"));
4496 if (lltok_isEnsures (yyvsp[-4].tok))
4498 yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint);
4500 else if (lltok_isRequires (yyvsp[-4].tok))
4502 yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint);
4509 DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
4513 { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
4516 { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
4519 { yyval.typequal = qual_createExits (); ;
4522 { yyval.typequal = qual_createMayExit (); ;
4525 { yyval.typequal = qual_createTrueExit (); ;
4528 { yyval.typequal = qual_createFalseExit (); ;
4531 { yyval.typequal = qual_createNeverExit (); ;
4534 { yyval.typequal = qual_createChecked (); ;
4537 { yyval.typequal = qual_createCheckMod (); ;
4540 { yyval.typequal = qual_createUnchecked (); ;
4543 { yyval.typequal = qual_createCheckedStrict (); ;
4546 { yyval.typequal = qual_createOwned (); ;
4549 { yyval.typequal = qual_createDependent (); ;
4552 { yyval.typequal = qual_createYield (); ;
4555 { yyval.typequal = qual_createTemp (); ;
4558 { yyval.typequal = qual_createOnly (); ;
4561 { yyval.typequal = qual_createKeep (); ;
4564 { yyval.typequal = qual_createKept (); ;
4567 { yyval.typequal = qual_createShared (); ;
4570 { yyval.typequal = qual_createUnique (); ;
4573 { yyval.typequal = qual_createNull (); ;
4576 { yyval.typequal = qual_createIsNull (); ;
4579 { yyval.typequal = qual_createRelNull (); ;
4582 { yyval.typequal = qual_createNotNull (); ;
4585 { yyval.typequal = qual_createExposed (); ;
4588 { yyval.typequal = qual_createObserver (); ;
4591 { yyval.typequal = qual_createNullTerminated (); ;
4594 { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
4597 { yyval.typequal = qual_createReturned (); ;
4600 { yyval.typequal = qual_createSef (); ;
4603 { yyval.typequal = qual_createUnused (); ;
4606 { yyval.typequal = qual_createExternal (); ;
4609 { yyval.typequal = qual_createTrueNull (); ;
4612 { yyval.typequal = qual_createFalseNull (); ;
4615 { yyval.typequal = qual_createAbstract (); ;
4618 { yyval.typequal = qual_createConcrete (); ;
4621 { yyval.typequal = qual_createMutable (); ;
4624 { yyval.typequal = qual_createImmutable (); ;
4627 { yyval.typequal = qual_createRefCounted (); ;
4630 { yyval.typequal = qual_createRefs (); ;
4633 { yyval.typequal = qual_createKillRef (); ;
4636 { yyval.typequal = qual_createRelDef (); ;
4639 { yyval.typequal = qual_createNewRef (); ;
4642 { yyval.typequal = qual_createTempRef (); ;
4645 { yyval.typequal = qual_createShort (); ;
4648 { yyval.typequal = qual_createLong (); ;
4651 { yyval.typequal = qual_createSigned (); ;
4654 { yyval.typequal = qual_createUnsigned (); ;
4657 { yyval.typequal = qual_createOut (); ;
4660 { yyval.typequal = qual_createIn (); ;
4663 { yyval.typequal = qual_createPartial (); ;
4666 { yyval.typequal = qual_createSpecial (); ;
4669 { yyval.typequal = qual_createConst (); ;
4672 { yyval.typequal = qual_createVolatile (); ;
4675 { yyval.typequal = qual_createRestrict (); ;
4678 { yyval.typequal = yyvsp[-1].typequal; ;
4681 { yyval.typequal = yyvsp[-1].typequal; ;
4684 { yyval.typequal = yyvsp[-1].typequal; ;
4687 { yyval.typequal = yyvsp[-1].typequal; ;
4690 { yyval.typequal = yyvsp[-1].typequal; ;
4693 { yyval.typequal = yyvsp[-1].typequal; ;
4696 { yyval.typequal = yyvsp[-1].typequal; ;
4699 { yyval.typequal = yyvsp[-1].typequal; ;
4702 { yyval.typequal = yyvsp[-1].typequal; ;
4705 { yyval.ctyp = ctype_makeAnytype (); ;
4708 { yyval.ctyp = ctype_anyintegral; ;
4711 { yyval.ctyp = ctype_unsignedintegral; ;
4714 { yyval.ctyp = ctype_signedintegral; ;
4717 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4720 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4723 { yyval.qtyp = yyvsp[0].qtyp; ;
4726 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4729 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4732 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4735 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4738 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4741 { yyval.qtyp = qtype_unknown (); ;
4744 { yyval.qtyp = yyvsp[0].qtyp; ;
4747 { yyval.conL = constraintList_undefined; ;
4750 { sRef_setGlobalScopeSafe (); ;
4753 { sRef_clearGlobalScopeSafe (); ;
4756 { ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); context_setGlobalStructInfo(ct, yyvsp[0].conL); yyval.ctyp = ct; ;
4759 { sRef_setGlobalScopeSafe (); ;
4762 { sRef_clearGlobalScopeSafe (); ;
4765 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4768 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4771 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4774 { sRef_setGlobalScopeSafe (); ;
4777 { sRef_clearGlobalScopeSafe (); ;
4780 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4783 { sRef_setGlobalScopeSafe (); ;
4786 { sRef_clearGlobalScopeSafe (); ;
4789 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4792 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4795 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4798 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4801 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4804 { g_expectingTypeName = FALSE; ;
4807 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4810 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4813 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4816 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4819 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4822 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4825 { yyval.ntyp = yyvsp[0].ntyp; ;
4828 { yyval.ntyp = idDecl_undefined; ;
4831 { yyval.ntyp = yyvsp[-3].ntyp; ;
4834 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4837 { context_pushLoc (); ;
4840 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4843 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4846 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4849 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4852 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4853 usymtab_supGlobalEntry (ue);
4854 yyval.cname = yyvsp[0].cname;
4858 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4859 usymtab_supGlobalEntry (ue);
4860 yyval.cname = yyvsp[-3].cname;
4864 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4868 qtype qt = qtype_unknown ();
4869 qtype_adjustPointers (yyvsp[-1].pointers, qt);
4870 yyval.ntyp = idDecl_create (cstring_copy (cscanner_observeLastIdentifier ()), qt);
4874 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
4877 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
4880 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4883 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4886 { yyval.typequal = qual_createConst (); ;
4889 { yyval.typequal = qual_createRestrict (); ;
4892 { yyval.typequal = qual_createVolatile (); ;
4895 { yyval.tquallist = qualList_single (yyvsp[0].typequal); ;
4898 { yyval.tquallist = qualList_add (yyvsp[-1].tquallist, yyvsp[0].typequal); ;
4901 { yyval.pointers = pointers_create (yyvsp[0].tok); ;
4904 { yyval.pointers = pointers_createMods (yyvsp[-1].tok, yyvsp[0].tquallist); ;
4907 { yyval.pointers = pointers_extend (pointers_create (yyvsp[-1].tok), yyvsp[0].pointers); ;
4910 { yyval.pointers = pointers_extend (pointers_createMods (yyvsp[-2].tok, yyvsp[-1].tquallist), yyvsp[0].pointers); ;
4913 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4916 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4919 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4922 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4925 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4931 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4937 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4941 if (isFlipOldStyle ())
4943 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4949 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4954 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4958 llparseerror (message ("Inconsistent function parameter syntax: %q",
4959 idDecl_unparse (tparam)));
4963 yyval.oentry = makeCurrentParam (tparam);
4964 idDecl_free (tparam);
4968 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4971 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;
4974 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;
4977 { yyval.ctyp = ctype_unknown; ;
4980 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4983 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4986 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4989 { yyval.ctyp = ctype_makeInnerArray (yyvsp[-2].ctyp); ;
4992 { yyval.ctyp = ctype_makeInnerFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4995 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4998 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
5001 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
5004 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
5007 { yyval.expr = yyvsp[0].expr; ;
5010 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5013 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
5016 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
5019 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5022 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
5025 { context_setProtectVars (); ;
5028 { context_sizeofReleaseVars (); ;
5031 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
5032 context_enterForClause (yyvsp[-5].expr); ;
5035 { setProcessingIterVars (yyvsp[-2].entry); ;
5038 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
5041 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
5044 { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
5047 { yyval.expr = yyvsp[-1].expr; ;
5050 { yyval.expr = exprNode_makeError (); ;
5053 { exprNode_checkIfPred (yyvsp[0].expr); ;
5056 { /* don't: context_exitTrueClause ($1, $2); */
5057 yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr);
5061 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5064 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5067 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5070 { yyval.expr = exprNode_makeError (); ;
5073 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
5076 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
5085 { context_enterCaseClause (yyvsp[0].expr); ;
5088 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
5091 { context_enterCaseClause (yyvsp[0].expr); ;
5094 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
5097 { context_enterCaseClause (exprNode_undefined); ;
5100 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
5103 { context_enterCaseClause (exprNode_undefined); ;
5106 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
5109 { yyval.expr = yyvsp[-1].expr; ;
5112 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
5115 { yyval.expr = yyvsp[-1].expr; ;
5118 { context_enterInnerContext (); ;
5121 { context_exitInnerPlain (); ;
5124 { context_enterStructInnerContext (); ;
5127 { context_exitStructInnerContext (); ;
5130 { context_exitInnerSafe (); ;
5133 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5136 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
5139 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5142 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5145 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5148 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5151 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5154 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
5155 lltok_getLoc (yyvsp[-1].tok)));
5159 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
5162 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5165 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5168 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5171 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5174 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5177 { yyval.expr = yyvsp[0].expr; ;
5180 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5183 { yyval.expr = yyvsp[0].expr; ;
5186 { yyval.expr = exprNode_concat (yyvsp[-2].expr, yyvsp[0].expr); ;
5189 { yyval.expr = yyvsp[0].expr; ;
5192 { yyval.expr = yyvsp[-2].expr; ;
5195 { yyval.expr = yyvsp[0].expr; ;
5198 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5201 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5204 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5207 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5210 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5213 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
5217 exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr);
5218 exprNode_checkIfPred (yyvsp[-1].expr);
5219 yyval.expr = yyvsp[-1].expr;
5224 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
5225 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
5229 { context_enterFalseClause (yyvsp[-2].expr); ;
5233 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5234 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5238 { context_enterSwitch (yyvsp[0].expr); ;
5241 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
5244 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
5247 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
5250 { context_enterIterClause (); ;
5253 { setProcessingIterVars (yyvsp[-3].entry); ;
5257 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry);
5262 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
5265 { nextIterParam (); ;
5268 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
5271 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
5274 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
5277 { uentry ue = coerceIterId (yyvsp[0].cname);
5279 if (uentry_isValid (ue))
5281 yyval.expr = exprNode_iterId (ue);
5285 yyval.expr = exprNode_iterNewId (cstring_copy (cscanner_observeLastIdentifier ()));
5290 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
5293 { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
5296 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5299 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
5302 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
5305 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
5308 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
5311 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
5314 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
5317 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5320 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5323 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5326 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5329 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5332 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5335 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5338 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5341 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5344 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5347 { yyval.expr = yyvsp[0].expr; ;
5350 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
5353 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5356 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5359 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5362 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5365 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5368 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5371 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5374 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5377 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5380 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5383 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5386 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5389 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5392 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5395 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5398 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5401 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5404 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5407 { context_enterTrueClause (yyvsp[-1].expr); ;
5410 { context_enterFalseClause (yyvsp[-4].expr); ;
5413 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5416 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5419 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5422 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5425 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5428 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5431 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5434 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5437 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5440 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5443 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5446 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5449 { yyval.entry = yyvsp[0].entry; ;
5452 { yyval.entry = uentry_undefined; ;
5455 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5458 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5461 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5464 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5467 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5470 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5473 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5476 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5479 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5482 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5485 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5488 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5491 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5494 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5497 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5500 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5503 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5506 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5515 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5518 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5521 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5524 { yyval.cname = yyvsp[0].cname; ;
5527 { yyval.ctyp = ctype_unknown; ;
5530 { yyval.ctyp = exprNode_getType (yyvsp[-1].expr); exprNode_free (yyvsp[-1].expr); ;
5533 { yyval.ctyp = qtype_getType (yyvsp[-1].qtyp); ;
5548 short *yyssp1 = yyss - 1;
5549 YYFPRINTF (stderr, "state stack now");
5550 while (yyssp1 != yyssp)
5551 YYFPRINTF (stderr, " %d", *++yyssp1);
5552 YYFPRINTF (stderr, "\n");
5561 /* Now `shift' the result of the reduction. Determine what state
5562 that goes to, based on the state we popped back to and the rule
5563 number reduced by. */
5567 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5568 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5569 yystate = yytable[yystate];
5571 yystate = yydefgoto[yyn - YYNTBASE];
5576 /*------------------------------------.
5577 | yyerrlab -- here on detecting error |
5578 `------------------------------------*/
5580 /* If not already recovering from an error, report this error. */
5585 #ifdef YYERROR_VERBOSE
5586 yyn = yypact[yystate];
5588 if (yyn > YYFLAG && yyn < YYLAST)
5590 YYSIZE_T yysize = 0;
5595 /* Start YYX at -YYN if negative to avoid negative indexes in
5597 for (yyx = yyn < 0 ? -yyn : 0;
5598 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
5599 if (yycheck[yyx + yyn] == yyx)
5600 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
5601 yysize += yystrlen ("parse error, unexpected ") + 1;
5602 yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
5603 yymsg = (char *) YYSTACK_ALLOC (yysize);
5606 char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
5607 yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
5612 for (yyx = yyn < 0 ? -yyn : 0;
5613 yyx < (int) (sizeof (yytname) / sizeof (char *));
5615 if (yycheck[yyx + yyn] == yyx)
5617 const char *yyq = ! yycount ? ", expecting " : " or ";
5618 yyp = yystpcpy (yyp, yyq);
5619 yyp = yystpcpy (yyp, yytname[yyx]);
5624 YYSTACK_FREE (yymsg);
5627 yyerror ("parse error; also virtual memory exhausted");
5630 #endif /* defined (YYERROR_VERBOSE) */
5631 yyerror ("parse error");
5636 /*--------------------------------------------------.
5637 | yyerrlab1 -- error raised explicitly by an action |
5638 `--------------------------------------------------*/
5640 if (yyerrstatus == 3)
5642 /* If just tried and failed to reuse lookahead token after an
5643 error, discard it. */
5645 /* return failure if at end of input */
5646 if (yychar == YYEOF)
5648 YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
5649 yychar, yytname[yychar1]));
5653 /* Else will try to reuse lookahead token after shifting the error
5656 yyerrstatus = 3; /* Each real token shifted decrements this */
5661 /*-------------------------------------------------------------------.
5662 | yyerrdefault -- current state does not do anything special for the |
5664 `-------------------------------------------------------------------*/
5667 /* This is wrong; only states that explicitly want error tokens
5668 should shift them. */
5670 /* If its default is to accept any token, ok. Otherwise pop it. */
5671 yyn = yydefact[yystate];
5677 /*---------------------------------------------------------------.
5678 | yyerrpop -- pop the current state because it cannot handle the |
5680 `---------------------------------------------------------------*/
5693 short *yyssp1 = yyss - 1;
5694 YYFPRINTF (stderr, "Error: state stack now");
5695 while (yyssp1 != yyssp)
5696 YYFPRINTF (stderr, " %d", *++yyssp1);
5697 YYFPRINTF (stderr, "\n");
5705 yyn = yypact[yystate];
5710 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5727 YYDPRINTF ((stderr, "Shifting error token, "));
5738 /*-------------------------------------.
5739 | yyacceptlab -- YYACCEPT comes here. |
5740 `-------------------------------------*/
5745 /*-----------------------------------.
5746 | yyabortlab -- YYABORT comes here. |
5747 `-----------------------------------*/
5752 /*---------------------------------------------.
5753 | yyoverflowab -- parser overflow comes here. |
5754 `---------------------------------------------*/
5756 yyerror ("parser stack overflow");
5763 YYSTACK_FREE (yyss);
5769 /*@-redecl@*/ /*@-namechecks@*/
5770 extern char *yytext;
5771 /*@=redecl@*/ /*@=namechecks@*/
5773 # include "bison.reset"
5775 void yyerror (/*@unused@*/ char *s)
5777 static bool givehint = FALSE;
5779 if (context_inIterDef ())
5781 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5782 context_inFunctionName ()));
5784 else if (context_inIterEnd ())
5786 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5787 context_inFunctionName ()));
5789 else if (context_inMacro ())
5791 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5792 context_inFunctionName ()));
5794 if (context_inUnknownMacro ())
5798 llhint (cstring_makeLiteral
5799 ("Precede macro definition with /*@notfunction@*/ "
5800 "to suppress checking and force expansion"));
5805 cscanner_swallowMacro ();
5806 context_exitAllClausesQuiet ();
5810 llparseerror (cstring_undefined);
5826 ** Resets all flags in bison.head
5848 /*@=evalorderuncon@*/
5857 /*@=elseifcomplete@*/
5861 /*@=readonlytrans@*/
5864 /*@=systemunrecog@*/
5865 /*@=dependenttrans@*/
5866 /*@=unqualifiedtrans@*/
5870 /*drl added 11/27/2001*/
5873 /*drl added 12/11/2002*/