2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
46 /*drl added 11/27/2001*/
48 /*@-arrayboundsread@*/
49 /* < end of bison.head > */
52 /* A Bison parser, made from cgrammar.y
53 by GNU Bison version 1.28 */
55 #define YYBISON 1 /* Identify Bison output. */
59 #define CTOK_ELIPSIS 259
83 #define TAMPERSAND 283
100 #define COFFSETOF 300
111 #define MUL_ASSIGN 311
112 #define DIV_ASSIGN 312
113 #define MOD_ASSIGN 313
114 #define ADD_ASSIGN 314
115 #define SUB_ASSIGN 315
116 #define LEFT_ASSIGN 316
117 #define RIGHT_ASSIGN 317
118 #define AND_ASSIGN 318
119 #define XOR_ASSIGN 319
120 #define OR_ASSIGN 320
128 #define QMODIFIES 328
130 #define QCONSTANT 330
131 #define QFUNCTION 331
135 #define QALLOCATES 335
137 #define QRELEASES 337
138 #define QPRECLAUSE 338
139 #define QPOSTCLAUSE 339
143 #define QENDMACRO 343
145 #define LLMACROITER 345
146 #define LLMACROEND 346
147 #define TENDMACRO 347
148 #define QSWITCHBREAK 348
149 #define QLOOPBREAK 349
150 #define QINNERBREAK 350
151 #define QSAFEBREAK 351
152 #define QINNERCONTINUE 352
153 #define QFALLTHROUGH 353
154 #define QLINTNOTREACHED 354
155 #define QLINTFALLTHROUGH 355
156 #define QLINTFALLTHRU 356
157 #define QARGSUSED 357
158 #define QPRINTFLIKE 358
159 #define QLINTPRINTFLIKE 359
160 #define QSCANFLIKE 360
161 #define QMESSAGELIKE 361
162 #define QNOTREACHED 362
164 #define QVOLATILE 364
166 #define QEXTENSION 366
170 #define QREGISTER 370
180 #define QUNCHECKED 380
181 #define QCHECKEDSTRICT 381
182 #define QCHECKMOD 382
188 #define QDEPENDENT 388
189 #define QRETURNED 389
192 #define QOBSERVER 392
196 #define QNEVEREXIT 396
197 #define QTRUEEXIT 397
198 #define QFALSEEXIT 398
201 #define QUNSIGNED 401
207 #define QABSTRACT 407
208 #define QCONCRETE 408
210 #define QIMMUTABLE 410
211 #define QTRUENULL 411
212 #define QFALSENULL 412
213 #define QEXTERNAL 413
214 #define QREFCOUNTED 414
227 #define QINTEGRALTYPE 427
228 #define QUNSIGNEDINTEGRALTYPE 428
229 #define QSIGNEDINTEGRALTYPE 429
230 #define QNULLTERMINATED 430
231 #define QSETBUFFERSIZE 431
232 #define QSETSTRINGLENGTH 432
235 #define QTESTINRANGE 435
237 #define IDENTIFIER 437
238 #define NEW_IDENTIFIER 438
239 #define TYPE_NAME_OR_ID 439
240 #define CANNOTATION 440
241 #define CCONSTANT 441
242 #define ITER_NAME 442
243 #define ITER_ENDNAME 443
244 #define TYPE_NAME 444
245 #define METASTATE_NAME 445
252 ** Yacc/Bison grammar for extended ANSI C used by LCLint.
254 ** original grammar by Nate Osgood ---
255 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
257 ** changes for LCLint --- handle typedef names correctly
258 ** fix struct/union parsing bug (empty struct is accepted)
259 ** add productions to handle macros --- require
260 ** error correction --- main source of conflicts in grammar.
261 ** need to process initializations sequentially, L->R
263 ** production names are cryptic, so more productions fit on one line
265 ** conflicts: 87 shift/reduce, 18 reduce/reduce
266 ** most of these are due to handling macros
267 ** a few are due to handling type expressions
273 extern void swallowMacro (void);
274 extern void yyerror (char *);
276 # include "lclintMacros.nf"
278 # include "cscanner.h"
279 # include "cgrammar.h"
280 # include "exprChecks.h"
285 # define SHOWCSYM FALSE
288 ** This is necessary, or else when the bison-generated code #include's malloc.h,
289 ** there will be a parse error.
291 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
292 ** in bison-generated files under Win32.
309 /*@dependent@*/ sRef sr;
312 /*@only@*/ functionClauseList funcclauselist;
313 /*@only@*/ functionClause funcclause;
314 /*@only@*/ flagSpec flagspec;
315 /*@only@*/ globalsClause globsclause;
316 /*@only@*/ modifiesClause modsclause;
317 /*@only@*/ warnClause warnclause;
318 /*@only@*/ stateClause stateclause;
320 /*@only@*/ functionConstraint fcnconstraint;
322 /*@only@*/ metaStateConstraint msconstraint;
323 /*@only@*/ metaStateSpecifier msspec;
324 /*@only@*/ metaStateExpression msexpr;
325 /*@observer@*/ metaStateInfo msinfo;
327 /*@only@*/ sRefList srlist;
328 /*@only@*/ globSet globset;
329 /*@only@*/ qtype qtyp;
330 /*@only@*/ cstring cname;
331 /*@observer@*/ annotationInfo annotation;
332 /*@only@*/ idDecl ntyp;
333 /*@only@*/ idDeclList ntyplist;
334 /*@only@*/ uentryList flist;
335 /*@owned@*/ uentryList entrylist;
336 /*@observer@*/ /*@dependent@*/ uentry entry;
337 /*@only@*/ uentry oentry;
338 /*@only@*/ exprNode expr;
339 /*@only@*/ enumNameList enumnamelist;
340 /*@only@*/ exprNodeList exprlist;
341 /*@only@*/ sRefSet srset;
342 /*@only@*/ cstringList cstringlist;
367 #define YYFLAG -32768
370 #define YYTRANSLATE(x) ((unsigned)(x) <= 445 ? yytranslate[x] : 447)
372 static const short yytranslate[] = { 0,
373 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
374 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
375 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
376 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
377 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
378 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
379 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
380 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
381 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
382 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
383 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
384 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
385 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
386 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
387 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
388 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
389 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
390 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
391 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
392 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
393 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
394 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
395 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
396 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
397 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
398 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
399 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
400 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
401 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
402 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
403 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
404 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
405 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
406 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
407 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
408 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
409 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
410 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
411 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
412 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
413 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
414 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
415 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
416 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
417 187, 188, 189, 190, 191
421 static const short yyprhs[] = { 0,
422 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
423 21, 23, 32, 44, 45, 51, 53, 57, 59, 62,
424 64, 71, 75, 82, 83, 90, 91, 99, 101, 108,
425 112, 119, 120, 127, 128, 136, 137, 138, 149, 153,
426 157, 161, 164, 166, 170, 171, 176, 177, 182, 184,
427 188, 190, 194, 196, 200, 202, 204, 206, 208, 210,
428 212, 217, 223, 225, 227, 229, 231, 235, 240, 243,
429 247, 251, 255, 257, 259, 261, 262, 265, 266, 269,
430 271, 273, 275, 277, 279, 281, 283, 285, 287, 289,
431 291, 293, 296, 297, 302, 304, 307, 308, 312, 314,
432 318, 320, 322, 323, 326, 330, 333, 335, 339, 342,
433 343, 346, 348, 350, 352, 354, 356, 358, 360, 362,
434 364, 366, 368, 370, 372, 374, 376, 378, 382, 383,
435 387, 388, 389, 394, 397, 400, 402, 404, 406, 410,
436 415, 418, 422, 426, 430, 432, 434, 436, 440, 442,
437 444, 448, 453, 456, 460, 464, 468, 469, 471, 473,
438 477, 479, 481, 483, 487, 489, 491, 493, 498, 502,
439 507, 514, 520, 526, 529, 532, 534, 538, 540, 543,
440 546, 549, 552, 555, 558, 561, 564, 566, 568, 572,
441 574, 584, 585, 589, 594, 597, 602, 605, 607, 612,
442 614, 618, 622, 626, 628, 632, 636, 638, 642, 646,
443 648, 652, 656, 660, 664, 666, 670, 674, 676, 680,
444 682, 686, 688, 692, 694, 695, 700, 702, 703, 708,
445 710, 711, 712, 720, 722, 726, 730, 734, 738, 742,
446 746, 750, 754, 758, 762, 766, 768, 772, 773, 775,
447 777, 779, 781, 783, 787, 788, 798, 799, 811, 814,
448 815, 822, 823, 832, 837, 842, 843, 844, 847, 849,
449 854, 855, 860, 862, 866, 871, 873, 877, 879, 881,
450 883, 885, 887, 890, 893, 894, 901, 904, 907, 908,
451 915, 916, 922, 924, 926, 928, 930, 932, 934, 936,
452 938, 940, 942, 944, 946, 948, 950, 952, 954, 956,
453 958, 960, 962, 964, 966, 968, 970, 972, 974, 976,
454 978, 980, 982, 984, 986, 988, 990, 992, 994, 996,
455 998, 1000, 1002, 1004, 1006, 1008, 1010, 1012, 1014, 1016,
456 1018, 1020, 1022, 1024, 1026, 1029, 1032, 1035, 1038, 1041,
457 1044, 1047, 1050, 1053, 1056, 1059, 1062, 1065, 1068, 1071,
458 1074, 1077, 1080, 1083, 1086, 1089, 1092, 1095, 1098, 1101,
459 1105, 1107, 1112, 1114, 1118, 1121, 1124, 1127, 1128, 1130,
460 1131, 1132, 1144, 1145, 1146, 1158, 1165, 1172, 1173, 1174,
461 1185, 1186, 1187, 1198, 1204, 1210, 1215, 1220, 1221, 1223,
462 1225, 1228, 1234, 1238, 1241, 1246, 1248, 1252, 1257, 1264,
463 1265, 1274, 1279, 1281, 1285, 1288, 1290, 1295, 1297, 1299,
464 1302, 1305, 1307, 1310, 1312, 1315, 1317, 1319, 1321, 1324,
465 1326, 1329, 1332, 1336, 1338, 1342, 1344, 1348, 1350, 1352,
466 1356, 1357, 1360, 1361, 1366, 1371, 1373, 1375, 1378, 1380,
467 1382, 1385, 1386, 1388, 1394, 1397, 1401, 1405, 1410, 1414,
468 1419, 1424, 1430, 1432, 1434, 1436, 1438, 1440, 1442, 1444,
469 1446, 1448, 1450, 1452, 1454, 1457, 1460, 1468, 1475, 1478,
470 1479, 1480, 1491, 1492, 1499, 1501, 1503, 1505, 1507, 1510,
471 1512, 1514, 1516, 1518, 1520, 1522, 1524, 1528, 1530, 1533,
472 1536, 1539, 1541, 1543, 1545, 1547, 1549, 1551, 1553, 1555,
473 1557, 1559, 1563, 1565, 1567, 1570, 1573, 1574, 1577, 1578,
474 1583, 1584, 1591, 1592, 1596, 1597, 1603, 1607, 1610, 1614,
475 1615, 1616, 1617, 1618, 1619, 1621, 1624, 1627, 1631, 1634,
476 1638, 1642, 1647, 1650, 1653, 1657, 1661, 1666, 1668, 1671,
477 1673, 1676, 1678, 1681, 1683, 1686, 1688, 1691, 1693, 1698,
478 1701, 1702, 1708, 1709, 1716, 1721, 1726, 1727, 1728, 1739,
479 1741, 1742, 1747, 1749, 1751, 1753, 1755, 1757, 1760, 1762,
480 1766, 1768, 1773, 1777, 1782, 1789, 1795, 1801, 1804, 1807,
481 1809, 1812, 1815, 1818, 1821, 1824, 1827, 1830, 1833, 1835,
482 1837, 1842, 1844, 1848, 1852, 1856, 1858, 1862, 1866, 1868,
483 1872, 1876, 1878, 1882, 1886, 1890, 1894, 1896, 1900, 1904,
484 1906, 1910, 1912, 1916, 1918, 1922, 1924, 1928, 1930, 1934,
485 1936, 1937, 1938, 1946, 1948, 1952, 1956, 1960, 1964, 1968,
486 1972, 1976, 1980, 1984, 1988, 1992, 1994, 1995, 1997, 2000,
487 2008, 2011, 2014, 2022, 2029, 2032, 2036, 2039, 2043, 2046,
488 2050, 2054, 2058, 2062, 2065, 2069, 2070, 2072, 2074, 2076,
489 2078, 2080, 2082, 2084, 2086
492 static const short yyrhs[] = { -1,
493 193, 0, 194, 0, 193, 194, 0, 254, 443, 0,
494 195, 0, 196, 0, 206, 0, 209, 0, 291, 0,
495 1, 0, 76, 329, 342, 352, 342, 443, 299, 89,
496 0, 76, 329, 342, 352, 342, 23, 299, 304, 303,
497 443, 89, 0, 0, 77, 197, 198, 443, 89, 0,
498 199, 0, 329, 342, 199, 0, 203, 0, 356, 203,
499 0, 445, 0, 299, 24, 342, 352, 299, 25, 0,
500 200, 26, 27, 0, 200, 26, 299, 290, 27, 342,
501 0, 0, 200, 300, 24, 25, 201, 226, 0, 0,
502 200, 300, 24, 353, 25, 202, 226, 0, 445, 0,
503 299, 24, 342, 199, 299, 25, 0, 203, 26, 27,
504 0, 203, 26, 299, 290, 27, 342, 0, 0, 203,
505 300, 24, 25, 204, 227, 0, 0, 203, 300, 24,
506 353, 25, 205, 227, 0, 0, 0, 78, 445, 24,
507 353, 25, 207, 227, 208, 443, 89, 0, 90, 382,
508 93, 0, 91, 369, 93, 0, 92, 370, 93, 0,
509 90, 93, 0, 249, 0, 212, 23, 215, 0, 0,
510 223, 213, 22, 216, 0, 0, 5, 214, 22, 216,
511 0, 212, 0, 212, 40, 215, 0, 191, 0, 218,
512 182, 217, 0, 218, 0, 221, 220, 221, 0, 179,
513 0, 180, 0, 52, 0, 51, 0, 53, 0, 222,
514 0, 224, 24, 221, 25, 0, 24, 221, 225, 221,
515 25, 0, 223, 0, 187, 0, 444, 0, 184, 0,
516 223, 26, 27, 0, 223, 26, 187, 27, 0, 34,
517 223, 0, 24, 223, 25, 0, 223, 28, 445, 0,
518 223, 44, 445, 0, 219, 0, 33, 0, 32, 0,
519 0, 228, 226, 0, 0, 229, 227, 0, 230, 0,
520 234, 0, 233, 0, 307, 0, 310, 0, 240, 0,
521 231, 0, 235, 0, 233, 0, 308, 0, 312, 0,
522 241, 0, 231, 89, 0, 0, 73, 232, 242, 443,
523 0, 75, 0, 235, 89, 0, 0, 74, 236, 255,
524 0, 238, 0, 238, 40, 237, 0, 184, 0, 240,
525 0, 0, 241, 89, 0, 72, 237, 419, 0, 72,
526 237, 0, 243, 0, 242, 21, 243, 0, 244, 245,
527 0, 0, 246, 244, 0, 444, 0, 184, 0, 291,
528 0, 87, 0, 88, 0, 117, 0, 118, 0, 131,
529 0, 79, 0, 80, 0, 81, 0, 82, 0, 83,
530 0, 84, 0, 85, 0, 352, 0, 329, 342, 352,
531 0, 0, 19, 251, 399, 0, 0, 0, 252, 403,
532 253, 392, 0, 210, 250, 0, 258, 443, 0, 443,
533 0, 444, 0, 184, 0, 256, 26, 27, 0, 256,
534 26, 257, 27, 0, 34, 256, 0, 24, 256, 25,
535 0, 256, 28, 445, 0, 256, 44, 445, 0, 256,
536 0, 419, 0, 256, 0, 258, 21, 256, 0, 444,
537 0, 184, 0, 259, 26, 27, 0, 259, 26, 257,
538 27, 0, 34, 259, 0, 24, 259, 25, 0, 259,
539 28, 445, 0, 259, 44, 445, 0, 0, 261, 0,
540 259, 0, 261, 21, 259, 0, 444, 0, 184, 0,
541 419, 0, 24, 288, 25, 0, 185, 0, 112, 0,
542 262, 0, 263, 26, 288, 27, 0, 263, 24, 25,
543 0, 263, 24, 264, 25, 0, 70, 24, 287, 21,
544 364, 25, 0, 263, 342, 28, 445, 299, 0, 263,
545 342, 44, 445, 299, 0, 263, 47, 0, 263, 48,
546 0, 287, 0, 264, 21, 287, 0, 263, 0, 47,
547 265, 0, 48, 265, 0, 29, 271, 0, 34, 271,
548 0, 33, 271, 0, 32, 271, 0, 31, 271, 0,
549 30, 271, 0, 268, 0, 267, 0, 266, 28, 445,
550 0, 445, 0, 46, 299, 24, 364, 342, 21, 266,
551 25, 299, 0, 0, 299, 269, 270, 0, 42, 24,
552 364, 25, 0, 42, 265, 0, 43, 24, 364, 25,
553 0, 43, 265, 0, 265, 0, 24, 364, 25, 271,
554 0, 271, 0, 272, 34, 271, 0, 272, 35, 271,
555 0, 272, 36, 271, 0, 272, 0, 273, 33, 272,
556 0, 273, 32, 272, 0, 273, 0, 274, 49, 273,
557 0, 274, 50, 273, 0, 274, 0, 275, 37, 274,
558 0, 275, 38, 274, 0, 275, 51, 274, 0, 275,
559 52, 274, 0, 275, 0, 276, 53, 275, 0, 276,
560 54, 275, 0, 276, 0, 277, 29, 276, 0, 277,
561 0, 278, 39, 277, 0, 278, 0, 279, 40, 278,
562 0, 279, 0, 0, 280, 55, 281, 279, 0, 280,
563 0, 0, 282, 56, 283, 280, 0, 282, 0, 0,
564 0, 282, 41, 285, 288, 22, 286, 284, 0, 284,
565 0, 265, 23, 287, 0, 265, 57, 287, 0, 265,
566 58, 287, 0, 265, 59, 287, 0, 265, 60, 287,
567 0, 265, 61, 287, 0, 265, 62, 287, 0, 265,
568 63, 287, 0, 265, 64, 287, 0, 265, 65, 287,
569 0, 265, 66, 287, 0, 287, 0, 288, 21, 287,
570 0, 0, 288, 0, 284, 0, 292, 0, 71, 0,
571 297, 0, 329, 299, 18, 0, 0, 329, 342, 352,
572 342, 293, 299, 303, 18, 299, 0, 0, 329, 342,
573 352, 342, 23, 294, 299, 304, 303, 18, 299, 0,
574 352, 342, 0, 0, 352, 342, 23, 296, 299, 304,
575 0, 0, 45, 329, 298, 342, 301, 299, 239, 18,
576 0, 45, 329, 299, 18, 0, 45, 301, 299, 18,
577 0, 0, 0, 302, 299, 0, 295, 0, 301, 21,
578 342, 295, 0, 0, 303, 21, 342, 295, 0, 287,
579 0, 19, 305, 20, 0, 19, 305, 21, 20, 0,
580 304, 0, 305, 21, 304, 0, 113, 0, 111, 0,
581 114, 0, 115, 0, 116, 0, 176, 299, 0, 308,
582 89, 0, 0, 247, 342, 309, 261, 443, 299, 0,
583 312, 89, 0, 248, 342, 0, 0, 311, 318, 313,
584 260, 443, 299, 0, 0, 311, 314, 315, 443, 299,
585 0, 217, 0, 211, 0, 140, 0, 141, 0, 143,
586 0, 144, 0, 142, 0, 125, 0, 128, 0, 126,
587 0, 127, 0, 133, 0, 134, 0, 119, 0, 121,
588 0, 120, 0, 129, 0, 130, 0, 122, 0, 124,
589 0, 137, 0, 139, 0, 152, 0, 151, 0, 136,
590 0, 138, 0, 176, 0, 186, 0, 135, 0, 150,
591 0, 149, 0, 159, 0, 157, 0, 158, 0, 153,
592 0, 154, 0, 155, 0, 156, 0, 160, 0, 161,
593 0, 164, 0, 165, 0, 162, 0, 163, 0, 148,
594 0, 145, 0, 146, 0, 147, 0, 117, 0, 118,
595 0, 131, 0, 132, 0, 109, 299, 0, 110, 299,
596 0, 325, 299, 0, 318, 299, 0, 316, 299, 0,
597 319, 299, 0, 317, 299, 0, 321, 299, 0, 320,
598 299, 0, 322, 299, 0, 323, 299, 0, 166, 342,
599 0, 168, 342, 0, 167, 342, 0, 169, 342, 0,
600 170, 342, 0, 171, 342, 0, 172, 342, 0, 173,
601 342, 0, 174, 342, 0, 175, 342, 0, 446, 342,
602 0, 333, 342, 0, 347, 342, 0, 324, 342, 0,
603 299, 329, 299, 0, 331, 0, 331, 86, 330, 89,
604 0, 364, 0, 364, 21, 330, 0, 306, 332, 0,
605 326, 332, 0, 327, 332, 0, 0, 329, 0, 0,
606 0, 342, 67, 445, 299, 19, 334, 396, 343, 397,
607 335, 20, 0, 0, 0, 342, 68, 445, 299, 19,
608 336, 396, 343, 397, 337, 20, 0, 342, 67, 445,
609 299, 19, 20, 0, 342, 68, 445, 299, 19, 20,
610 0, 0, 0, 342, 67, 299, 19, 338, 396, 343,
611 397, 339, 20, 0, 0, 0, 342, 68, 299, 19,
612 340, 396, 343, 397, 341, 20, 0, 342, 67, 299,
613 19, 20, 0, 342, 68, 299, 19, 20, 0, 342,
614 67, 445, 342, 0, 342, 68, 445, 342, 0, 0,
615 344, 0, 209, 0, 343, 344, 0, 329, 342, 345,
616 299, 18, 0, 329, 299, 18, 0, 346, 342, 0,
617 345, 21, 346, 342, 0, 352, 0, 22, 299, 290,
618 0, 352, 22, 299, 290, 0, 342, 69, 19, 349,
619 20, 299, 0, 0, 342, 69, 445, 19, 348, 349,
620 20, 299, 0, 342, 69, 445, 299, 0, 350, 0,
621 349, 21, 350, 0, 349, 21, 0, 445, 0, 445,
622 23, 299, 290, 0, 200, 0, 366, 0, 356, 190,
623 0, 356, 351, 0, 200, 0, 356, 200, 0, 359,
624 0, 342, 357, 0, 109, 0, 110, 0, 354, 0,
625 355, 354, 0, 34, 0, 34, 355, 0, 34, 356,
626 0, 34, 355, 356, 0, 358, 0, 358, 21, 5,
627 0, 445, 0, 358, 21, 445, 0, 5, 0, 360,
628 0, 360, 21, 5, 0, 0, 361, 363, 0, 0,
629 360, 21, 362, 363, 0, 299, 329, 351, 299, 0,
630 445, 0, 328, 0, 328, 365, 0, 356, 0, 367,
631 0, 356, 367, 0, 0, 367, 0, 299, 24, 342,
632 365, 25, 0, 26, 27, 0, 26, 290, 27, 0,
633 367, 26, 27, 0, 367, 26, 290, 27, 0, 299,
634 24, 25, 0, 299, 24, 359, 25, 0, 367, 299,
635 24, 25, 0, 367, 299, 24, 359, 25, 0, 384,
636 0, 386, 0, 389, 0, 392, 0, 405, 0, 408,
637 0, 440, 0, 413, 0, 442, 0, 371, 0, 369,
638 0, 378, 0, 371, 378, 0, 412, 371, 0, 439,
639 383, 11, 24, 288, 25, 18, 0, 439, 383, 11,
640 24, 288, 25, 0, 373, 378, 0, 0, 0, 13,
641 24, 289, 18, 289, 18, 374, 289, 375, 25, 0,
642 0, 188, 394, 24, 377, 416, 25, 0, 189, 0,
643 384, 0, 386, 0, 389, 0, 380, 403, 0, 380,
644 0, 381, 0, 405, 0, 379, 0, 372, 0, 376,
645 0, 442, 0, 24, 378, 25, 0, 1, 0, 407,
646 378, 0, 394, 19, 0, 398, 20, 0, 383, 0,
647 402, 0, 384, 0, 386, 0, 389, 0, 393, 0,
648 406, 0, 408, 0, 413, 0, 441, 0, 24, 383,
649 25, 0, 442, 0, 1, 0, 445, 22, 0, 108,
650 368, 0, 0, 99, 385, 0, 0, 6, 290, 387,
651 22, 0, 0, 99, 385, 6, 290, 388, 22, 0,
652 0, 7, 390, 22, 0, 0, 99, 385, 7, 391,
653 22, 0, 24, 392, 25, 0, 394, 400, 0, 394,
654 401, 395, 0, 0, 0, 0, 0, 0, 20, 0,
655 108, 20, 0, 404, 20, 0, 404, 108, 20, 0,
656 403, 20, 0, 403, 108, 20, 0, 403, 404, 20,
657 0, 403, 404, 108, 20, 0, 19, 399, 0, 19,
658 20, 0, 19, 402, 20, 0, 19, 403, 20, 0,
659 19, 403, 404, 20, 0, 383, 0, 402, 383, 0,
660 291, 0, 403, 291, 0, 368, 0, 404, 368, 0,
661 18, 0, 288, 18, 0, 18, 0, 288, 18, 0,
662 288, 0, 8, 24, 288, 25, 0, 407, 368, 0,
663 0, 407, 368, 9, 409, 368, 0, 0, 10, 24,
664 288, 410, 25, 368, 0, 11, 24, 288, 25, 0,
665 11, 24, 288, 25, 0, 0, 0, 188, 414, 394,
666 24, 415, 416, 25, 392, 438, 395, 0, 418, 0,
667 0, 416, 417, 21, 418, 0, 437, 0, 444, 0,
668 185, 0, 184, 0, 187, 0, 419, 187, 0, 419,
669 0, 24, 288, 25, 0, 420, 0, 263, 26, 288,
670 27, 0, 263, 24, 25, 0, 263, 24, 264, 25,
671 0, 70, 24, 287, 21, 364, 25, 0, 263, 342,
672 28, 445, 299, 0, 263, 342, 44, 445, 299, 0,
673 263, 47, 0, 263, 48, 0, 421, 0, 47, 265,
674 0, 48, 265, 0, 29, 271, 0, 34, 271, 0,
675 33, 271, 0, 32, 271, 0, 31, 271, 0, 30,
676 271, 0, 268, 0, 422, 0, 24, 364, 25, 271,
677 0, 423, 0, 272, 34, 271, 0, 272, 35, 271,
678 0, 272, 36, 271, 0, 424, 0, 273, 33, 272,
679 0, 273, 32, 272, 0, 425, 0, 274, 49, 273,
680 0, 274, 50, 273, 0, 426, 0, 275, 37, 274,
681 0, 275, 38, 274, 0, 275, 51, 274, 0, 275,
682 52, 274, 0, 427, 0, 276, 53, 275, 0, 276,
683 54, 275, 0, 428, 0, 277, 29, 276, 0, 429,
684 0, 278, 39, 277, 0, 430, 0, 279, 40, 278,
685 0, 431, 0, 280, 55, 279, 0, 432, 0, 282,
686 56, 280, 0, 433, 0, 0, 0, 282, 41, 435,
687 288, 22, 436, 284, 0, 434, 0, 265, 23, 287,
688 0, 265, 57, 287, 0, 265, 58, 287, 0, 265,
689 59, 287, 0, 265, 60, 287, 0, 265, 61, 287,
690 0, 265, 62, 287, 0, 265, 63, 287, 0, 265,
691 64, 287, 0, 265, 65, 287, 0, 265, 66, 287,
692 0, 189, 0, 0, 12, 0, 411, 368, 0, 439,
693 368, 11, 24, 288, 25, 18, 0, 373, 368, 0,
694 411, 383, 0, 439, 383, 11, 24, 288, 25, 18,
695 0, 439, 383, 11, 24, 288, 25, 0, 373, 383,
696 0, 14, 445, 18, 0, 15, 18, 0, 98, 15,
697 18, 0, 16, 18, 0, 94, 16, 18, 0, 95,
698 16, 18, 0, 96, 16, 18, 0, 97, 16, 18,
699 0, 17, 18, 0, 17, 288, 18, 0, 0, 18,
700 0, 183, 0, 184, 0, 188, 0, 189, 0, 444,
701 0, 185, 0, 190, 0, 185, 0
707 static const short yyrline[] = { 0,
708 318, 319, 322, 323, 326, 327, 328, 329, 330, 331,
709 332, 335, 337, 341, 341, 348, 354, 358, 359, 363,
710 364, 366, 368, 380, 383, 393, 396, 404, 405, 407,
711 409, 425, 428, 436, 439, 447, 449, 449, 453, 454,
712 455, 456, 459, 462, 466, 466, 469, 469, 474, 475,
713 478, 483, 484, 487, 492, 493, 496, 497, 498, 501,
714 502, 503, 508, 509, 512, 514, 516, 518, 527, 529,
715 531, 533, 549, 553, 554, 561, 562, 570, 572, 576,
716 577, 578, 579, 580, 581, 584, 585, 586, 587, 588,
717 589, 592, 595, 596, 603, 606, 609, 615, 623, 625,
718 629, 632, 633, 636, 639, 645, 649, 650, 653, 656,
719 657, 660, 661, 662, 665, 666, 667, 668, 669, 672,
720 673, 674, 675, 676, 679, 680, 683, 689, 693, 695,
721 699, 700, 702, 709, 719, 720, 723, 724, 725, 726,
722 727, 728, 729, 730, 734, 735, 739, 740, 743, 745,
723 747, 748, 749, 750, 751, 753, 757, 758, 761, 765,
724 777, 778, 779, 780, 781, 782, 785, 786, 787, 788,
725 789, 790, 791, 792, 793, 796, 797, 800, 801, 802,
726 803, 804, 805, 806, 807, 808, 809, 810, 813, 814,
727 817, 821, 822, 825, 826, 827, 828, 831, 832, 836,
728 837, 838, 839, 842, 843, 844, 847, 848, 849, 852,
729 853, 854, 855, 856, 859, 860, 861, 864, 865, 868,
730 869, 873, 874, 877, 878, 883, 889, 890, 896, 902,
731 903, 903, 905, 908, 909, 910, 911, 912, 913, 914,
732 915, 916, 917, 918, 919, 922, 923, 926, 927, 930,
733 935, 936, 937, 940, 954, 959, 965, 967, 973, 978,
734 978, 982, 983, 985, 986, 989, 992, 995, 998, 999,
735 1002, 1003, 1006, 1007, 1008, 1012, 1014, 1023, 1024, 1025,
736 1026, 1027, 1029, 1033, 1036, 1042, 1051, 1054, 1057, 1064,
737 1071, 1077, 1102, 1103, 1106, 1107, 1108, 1109, 1110, 1113,
738 1114, 1115, 1116, 1119, 1120, 1121, 1122, 1123, 1124, 1125,
739 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135,
740 1139, 1140, 1143, 1144, 1147, 1148, 1151, 1152, 1153, 1154,
741 1157, 1158, 1159, 1160, 1161, 1162, 1165, 1166, 1167, 1168,
742 1171, 1172, 1173, 1174, 1177, 1178, 1179, 1180, 1181, 1182,
743 1183, 1184, 1185, 1186, 1187, 1194, 1195, 1196, 1197, 1198,
744 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1210,
745 1214, 1215, 1219, 1220, 1224, 1225, 1226, 1229, 1230, 1233,
746 1235, 1237, 1238, 1240, 1242, 1243, 1245, 1247, 1249, 1251,
747 1252, 1253, 1256, 1257, 1259, 1261, 1262, 1265, 1268, 1269,
748 1270, 1273, 1275, 1279, 1281, 1285, 1286, 1287, 1291, 1293,
749 1293, 1295, 1298, 1300, 1302, 1305, 1310, 1317, 1318, 1319,
750 1326, 1330, 1331, 1335, 1336, 1339, 1340, 1343, 1344, 1347,
751 1348, 1349, 1350, 1353, 1354, 1357, 1358, 1361, 1362, 1363,
752 1366, 1366, 1367, 1368, 1371, 1383, 1399, 1400, 1403, 1404,
753 1405, 1408, 1409, 1412, 1414, 1415, 1417, 1418, 1420, 1422,
754 1424, 1426, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439,
755 1440, 1455, 1458, 1461, 1462, 1466, 1468, 1470, 1472, 1476,
756 1477, 1479, 1483, 1485, 1487, 1490, 1491, 1492, 1493, 1494,
757 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1505, 1511,
758 1514, 1517, 1518, 1521, 1522, 1523, 1524, 1525, 1526, 1527,
759 1528, 1529, 1530, 1531, 1534, 1535, 1542, 1543, 1549, 1550,
760 1551, 1552, 1555, 1556, 1557, 1558, 1561, 1562, 1566, 1569,
761 1572, 1575, 1578, 1581, 1584, 1585, 1586, 1587, 1589, 1590,
762 1592, 1594, 1600, 1604, 1606, 1608, 1610, 1614, 1615, 1618,
763 1619, 1622, 1623, 1626, 1627, 1630, 1631, 1632, 1635, 1643,
764 1648, 1649, 1653, 1654, 1657, 1662, 1665, 1666, 1667, 1675,
765 1676, 1676, 1680, 1681, 1682, 1693, 1700, 1701, 1704, 1705,
766 1708, 1709, 1710, 1711, 1712, 1714, 1715, 1716, 1717, 1720,
767 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1732,
768 1733, 1736, 1737, 1738, 1739, 1742, 1743, 1744, 1747, 1748,
769 1749, 1752, 1753, 1754, 1755, 1756, 1759, 1760, 1761, 1764,
770 1765, 1768, 1769, 1773, 1774, 1777, 1778, 1781, 1782, 1785,
771 1786, 1787, 1788, 1791, 1792, 1793, 1794, 1795, 1796, 1797,
772 1798, 1799, 1800, 1801, 1802, 1805, 1806, 1809, 1812, 1814,
773 1816, 1820, 1821, 1823, 1825, 1828, 1829, 1830, 1832, 1833,
774 1834, 1835, 1836, 1837, 1838, 1841, 1842, 1845, 1848, 1849,
775 1850, 1851, 1852, 1855, 1856
780 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
782 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
783 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
784 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
785 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
786 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
787 "TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP",
788 "DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP",
789 "MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
790 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
791 "VA_ARG","VA_DCL","QWARN","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION",
792 "QITER","QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
793 "QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND","TENDMACRO",
794 "QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE","QFALLTHROUGH",
795 "QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED","QPRINTFLIKE",
796 "QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST","QVOLATILE",
797 "QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT","QIN",
798 "QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED",
799 "QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED",
800 "QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT",
801 "QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT",
802 "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE",
803 "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF",
804 "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE",
805 "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED",
806 "QSETBUFFERSIZE","QSETSTRINGLENGTH","QMAXSET","QMAXREAD","QTESTINRANGE","TCAND",
807 "IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID","CANNOTATION","CCONSTANT","ITER_NAME",
808 "ITER_ENDNAME","TYPE_NAME","METASTATE_NAME","file","externalDefs","externalDef",
809 "constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2",
810 "@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
811 "metaStateConstraint","metaStateSpecifier","@8","@9","metaStateExpression","metaStateName",
812 "BufConstraintList","BufConstraint","bufferModifier","relationalOp","BufConstraintExpr",
813 "BufConstraintTerm","BufConstraintSrefExpr","BufUnaryOp","BufBinaryOp","functionClauses",
814 "functionClausesPlain","functionClause","functionClausePlain","globalsClause",
815 "globalsClausePlain","@10","nomodsClause","modifiesClause","modifiesClausePlain",
816 "@11","flagSpec","flagId","optWarnClause","warnClause","warnClausePlain","globIdList",
817 "globIdListExpr","optGlobQuals","globId","globQual","stateTag","conditionTag",
818 "fcnDefHdrAux","fcnBody","@12","@13","@14","fcnDef","locModifies","modListExpr",
819 "mExpr","modList","specClauseListExpr","optSpecClauseList","specClauseList",
820 "primaryExpr","postfixExpr","argumentExprList","unaryExpr","fieldDesignator",
821 "offsetofExpr","sizeofExpr","@15","sizeofExprAux","castExpr","timesExpr","plusExpr",
822 "shiftExpr","relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr",
823 "andExpr","@16","orExpr","@17","conditionalExpr","@18","@19","assignExpr","expr",
824 "optExpr","constantExpr","initializer","instanceDecl","@20","@21","namedInitializer",
825 "@22","typeDecl","@23","IsType","PushType","namedInitializerList","namedInitializerListAux",
826 "optDeclarators","init","initList","storageSpecifier","stateClause","stateClausePlain",
827 "@24","conditionClause","startConditionClause","conditionClausePlain","@25",
828 "@26","functionConstraint","exitsQualifier","checkQualifier","stateQualifier",
829 "paramQualifier","visibilityQualifier","returnQualifier","typedefQualifier",
830 "refcountQualifier","typeModifier","definedQualifier","typeQualifier","typeSpecifier",
831 "completeType","completeTypeSpecifier","altType","completeTypeSpecifierAux",
832 "optCompleteType","suSpc","@27","@28","@29","@30","@31","@32","@33","@34","NotType",
833 "structDeclList","structDecl","structNamedDeclList","structNamedDecl","enumSpc",
834 "@35","enumeratorList","enumerator","optNamedDecl","namedDecl","genericParamList",
835 "innerMods","innerModsList","pointers","paramIdList","idList","paramTypeList",
836 "paramList","@36","@37","paramDecl","typeExpression","abstractDecl","optAbstractDeclBase",
837 "abstractDeclBase","stmt","iterBody","endBody","iterDefStmtList","iterDefIterationStmt",
838 "forPred","@38","@39","partialIterStmt","@40","iterDefStmt","iterSelectionStmt",
839 "openScope","closeScope","macroBody","stmtErr","labeledStmt","optExtraFallThroughs",
840 "caseStmt","@41","@42","defaultStmt","@43","@44","compoundStmt","compoundStmtErr",
841 "CreateInnerScope","DeleteInnerScope","CreateStructInnerScope","DeleteStructInnerScope",
842 "DeleteInnerScopeSafe","compoundStmtRest","compoundStmtAux","compoundStmtAuxErr",
843 "stmtListErr","initializerList","stmtList","expressionStmt","expressionStmtErr",
844 "ifPred","selectionStmt","@45","@46","whilePred","iterWhilePred","iterStmt",
845 "@47","@48","iterArgList","@49","iterArgExpr","cconstantExpr","primaryIterExpr",
846 "postfixIterExpr","unaryIterExpr","castIterExpr","timesIterExpr","plusIterExpr",
847 "shiftIterExpr","relationalIterExpr","equalityIterExpr","bitandIterExpr","xorIterExpr",
848 "bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr","@50","@51",
849 "assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr","jumpStmt",
850 "optSemi","id","newId","typeName", NULL
854 static const short yyr1[] = { 0,
855 192, 192, 193, 193, 194, 194, 194, 194, 194, 194,
856 194, 195, 195, 197, 196, 198, 198, 199, 199, 200,
857 200, 200, 200, 201, 200, 202, 200, 203, 203, 203,
858 203, 204, 203, 205, 203, 207, 208, 206, 209, 209,
859 209, 209, 210, 211, 213, 212, 214, 212, 215, 215,
860 216, 217, 217, 218, 219, 219, 220, 220, 220, 221,
861 221, 221, 222, 222, 223, 223, 223, 223, 223, 223,
862 223, 223, 224, 225, 225, 226, 226, 227, 227, 228,
863 228, 228, 228, 228, 228, 229, 229, 229, 229, 229,
864 229, 230, 232, 231, 233, 234, 236, 235, 237, 237,
865 238, 239, 239, 240, 241, 241, 242, 242, 243, 244,
866 244, 245, 245, 245, 246, 246, 246, 246, 246, 247,
867 247, 247, 247, 247, 248, 248, 249, 249, 251, 250,
868 252, 253, 250, 254, 255, 255, 256, 256, 256, 256,
869 256, 256, 256, 256, 257, 257, 258, 258, 259, 259,
870 259, 259, 259, 259, 259, 259, 260, 260, 261, 261,
871 262, 262, 262, 262, 262, 262, 263, 263, 263, 263,
872 263, 263, 263, 263, 263, 264, 264, 265, 265, 265,
873 265, 265, 265, 265, 265, 265, 265, 265, 266, 266,
874 267, 269, 268, 270, 270, 270, 270, 271, 271, 272,
875 272, 272, 272, 273, 273, 273, 274, 274, 274, 275,
876 275, 275, 275, 275, 276, 276, 276, 277, 277, 278,
877 278, 279, 279, 280, 281, 280, 282, 283, 282, 284,
878 285, 286, 284, 287, 287, 287, 287, 287, 287, 287,
879 287, 287, 287, 287, 287, 288, 288, 289, 289, 290,
880 291, 291, 291, 292, 293, 292, 294, 292, 295, 296,
881 295, 298, 297, 297, 297, 299, 300, 301, 302, 302,
882 303, 303, 304, 304, 304, 305, 305, 306, 306, 306,
883 306, 306, -1, 307, 309, 308, 310, 311, 313, 312,
884 314, 312, 315, 315, 316, 316, 316, 316, 316, 317,
885 317, 317, 317, 318, 318, 318, 318, 318, 318, 318,
886 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
887 319, 319, 320, 320, 321, 321, 322, 322, 322, 322,
888 323, 323, 323, 323, 323, 323, 324, 324, 324, 324,
889 325, 325, 325, 325, 326, 326, 326, 326, 326, 326,
890 326, 326, 326, 326, 326, 327, 327, 327, 327, 327,
891 327, 327, 327, 327, 327, 327, 327, 327, 327, 328,
892 329, 329, 330, 330, 331, 331, 331, 332, 332, 334,
893 335, 333, 336, 337, 333, 333, 333, 338, 339, 333,
894 340, 341, 333, 333, 333, 333, 333, 342, 343, 343,
895 343, 344, 344, 345, 345, 346, 346, 346, 347, 348,
896 347, 347, 349, 349, 349, 350, 350, 351, 351, 351,
897 351, 352, 352, 353, 353, 354, 354, 355, 355, 356,
898 356, 356, 356, 357, 357, 358, 358, 359, 359, 359,
899 361, 360, 362, 360, 363, 363, 364, 364, 365, 365,
900 365, 366, 366, 367, 367, 367, 367, 367, 367, 367,
901 367, 367, 368, 368, 368, 368, 368, 368, 368, 368,
902 368, 369, 370, 371, 371, 372, 372, 372, 372, 374,
903 375, 373, 377, 376, 376, 378, 378, 378, 378, 378,
904 378, 378, 378, 378, 378, 378, 378, 378, 379, 380,
905 381, 382, 382, 383, 383, 383, 383, 383, 383, 383,
906 383, 383, 383, 383, 384, 384, 385, 385, 387, 386,
907 388, 386, 390, 389, 391, 389, 392, 392, 393, 394,
908 395, 396, 397, 398, 399, 399, 399, 399, 399, 399,
909 399, 399, 400, 401, 401, 401, 401, 402, 402, 403,
910 403, 404, 404, 405, 405, 406, 406, 406, 407, 408,
911 409, 408, 410, 408, 411, 412, 414, 415, 413, 416,
912 417, 416, 418, 418, 418, 418, 419, 419, 420, 420,
913 421, 421, 421, 421, 421, 421, 421, 421, 421, 422,
914 422, 422, 422, 422, 422, 422, 422, 422, 422, 423,
915 423, 424, 424, 424, 424, 425, 425, 425, 426, 426,
916 426, 427, 427, 427, 427, 427, 428, 428, 428, 429,
917 429, 430, 430, 431, 431, 432, 432, 433, 433, 434,
918 435, 436, 434, 437, 437, 437, 437, 437, 437, 437,
919 437, 437, 437, 437, 437, 438, 438, 439, 440, 440,
920 440, 441, 441, 441, 441, 442, 442, 442, 442, 442,
921 442, 442, 442, 442, 442, 443, 443, 444, 445, 445,
922 445, 445, 445, 446, 446
925 static const short yyr2[] = { 0,
926 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
927 1, 8, 11, 0, 5, 1, 3, 1, 2, 1,
928 6, 3, 6, 0, 6, 0, 7, 1, 6, 3,
929 6, 0, 6, 0, 7, 0, 0, 10, 3, 3,
930 3, 2, 1, 3, 0, 4, 0, 4, 1, 3,
931 1, 3, 1, 3, 1, 1, 1, 1, 1, 1,
932 4, 5, 1, 1, 1, 1, 3, 4, 2, 3,
933 3, 3, 1, 1, 1, 0, 2, 0, 2, 1,
934 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
935 1, 2, 0, 4, 1, 2, 0, 3, 1, 3,
936 1, 1, 0, 2, 3, 2, 1, 3, 2, 0,
937 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
938 1, 1, 1, 1, 1, 1, 1, 3, 0, 3,
939 0, 0, 4, 2, 2, 1, 1, 1, 3, 4,
940 2, 3, 3, 3, 1, 1, 1, 3, 1, 1,
941 3, 4, 2, 3, 3, 3, 0, 1, 1, 3,
942 1, 1, 1, 3, 1, 1, 1, 4, 3, 4,
943 6, 5, 5, 2, 2, 1, 3, 1, 2, 2,
944 2, 2, 2, 2, 2, 2, 1, 1, 3, 1,
945 9, 0, 3, 4, 2, 4, 2, 1, 4, 1,
946 3, 3, 3, 1, 3, 3, 1, 3, 3, 1,
947 3, 3, 3, 3, 1, 3, 3, 1, 3, 1,
948 3, 1, 3, 1, 0, 4, 1, 0, 4, 1,
949 0, 0, 7, 1, 3, 3, 3, 3, 3, 3,
950 3, 3, 3, 3, 3, 1, 3, 0, 1, 1,
951 1, 1, 1, 3, 0, 9, 0, 11, 2, 0,
952 6, 0, 8, 4, 4, 0, 0, 2, 1, 4,
953 0, 4, 1, 3, 4, 1, 3, 1, 1, 1,
954 1, 1, 2, 2, 0, 6, 2, 2, 0, 6,
955 0, 5, 1, 1, 1, 1, 1, 1, 1, 1,
956 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
957 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
958 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
959 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
960 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
961 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
962 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
963 1, 4, 1, 3, 2, 2, 2, 0, 1, 0,
964 0, 11, 0, 0, 11, 6, 6, 0, 0, 10,
965 0, 0, 10, 5, 5, 4, 4, 0, 1, 1,
966 2, 5, 3, 2, 4, 1, 3, 4, 6, 0,
967 8, 4, 1, 3, 2, 1, 4, 1, 1, 2,
968 2, 1, 2, 1, 2, 1, 1, 1, 2, 1,
969 2, 2, 3, 1, 3, 1, 3, 1, 1, 3,
970 0, 2, 0, 4, 4, 1, 1, 2, 1, 1,
971 2, 0, 1, 5, 2, 3, 3, 4, 3, 4,
972 4, 5, 1, 1, 1, 1, 1, 1, 1, 1,
973 1, 1, 1, 1, 2, 2, 7, 6, 2, 0,
974 0, 10, 0, 6, 1, 1, 1, 1, 2, 1,
975 1, 1, 1, 1, 1, 1, 3, 1, 2, 2,
976 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
977 1, 3, 1, 1, 2, 2, 0, 2, 0, 4,
978 0, 6, 0, 3, 0, 5, 3, 2, 3, 0,
979 0, 0, 0, 0, 1, 2, 2, 3, 2, 3,
980 3, 4, 2, 2, 3, 3, 4, 1, 2, 1,
981 2, 1, 2, 1, 2, 1, 2, 1, 4, 2,
982 0, 5, 0, 6, 4, 4, 0, 0, 10, 1,
983 0, 4, 1, 1, 1, 1, 1, 2, 1, 3,
984 1, 4, 3, 4, 6, 5, 5, 2, 2, 1,
985 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
986 4, 1, 3, 3, 3, 1, 3, 3, 1, 3,
987 3, 1, 3, 3, 3, 3, 1, 3, 3, 1,
988 3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
989 0, 0, 7, 1, 3, 3, 3, 3, 3, 3,
990 3, 3, 3, 3, 3, 1, 0, 1, 2, 7,
991 2, 2, 7, 6, 2, 3, 2, 3, 2, 3,
992 3, 3, 3, 2, 3, 0, 1, 1, 1, 1,
996 static const short yydefact[] = { 0,
997 11, 430, 398, 252, 398, 14, 0, 0, 0, 0,
998 266, 266, 279, 278, 280, 281, 282, 341, 342, 306,
999 308, 307, 311, 312, 300, 302, 303, 301, 309, 310,
1000 343, 344, 304, 305, 321, 317, 313, 318, 314, 295,
1001 296, 299, 297, 298, 338, 339, 340, 337, 323, 322,
1002 316, 315, 327, 328, 329, 330, 325, 326, 324, 331,
1003 332, 335, 336, 333, 334, 398, 398, 398, 398, 398,
1004 398, 398, 398, 398, 398, 319, 668, 669, 673, 320,
1005 670, 671, 674, 0, 3, 6, 7, 422, 8, 9,
1006 131, 43, 666, 10, 251, 253, 0, 378, 266, 266,
1007 266, 266, 266, 266, 266, 266, 398, 266, 378, 378,
1008 398, 371, 398, 0, 398, 127, 266, 672, 20, 398,
1009 426, 427, 428, 431, 432, 269, 266, 266, 262, 398,
1010 675, 398, 398, 673, 0, 514, 266, 523, 0, 0,
1011 0, 648, 0, 0, 0, 0, 266, 556, 0, 266,
1012 266, 266, 266, 266, 266, 266, 266, 266, 0, 42,
1013 0, 0, 0, 0, 0, 517, 266, 166, 162, 165,
1014 577, 567, 167, 178, 198, 188, 187, 200, 204, 207,
1015 210, 215, 218, 220, 222, 224, 227, 230, 234, 246,
1016 558, 192, 0, 0, 548, 504, 505, 506, 507, 0,
1017 0, 508, 266, 509, 0, 510, 163, 0, 511, 513,
1018 161, 0, 498, 0, 554, 0, 530, 485, 0, 0,
1019 0, 494, 0, 495, 474, 493, 490, 491, 486, 487,
1020 488, 0, 0, 492, 0, 0, 0, 496, 473, 0,
1021 345, 346, 356, 358, 357, 359, 360, 361, 362, 363,
1022 364, 365, 4, 266, 0, 129, 134, 398, 667, 5,
1023 398, 379, 375, 349, 351, 348, 350, 353, 352, 354,
1024 355, 369, 347, 376, 377, 0, 266, 266, 367, 266,
1025 266, 0, 368, 423, 366, 429, 433, 398, 0, 268,
1026 398, 0, 259, 266, 666, 16, 18, 0, 398, 266,
1027 28, 441, 266, 162, 165, 198, 250, 519, 161, 0,
1028 266, 266, 266, 266, 0, 657, 659, 664, 0, 0,
1029 398, 447, 0, 0, 181, 186, 185, 184, 183, 182,
1030 0, 266, 179, 180, 266, 0, 0, 0, 0, 0,
1031 517, 0, 266, 516, 266, 463, 464, 465, 466, 0,
1032 467, 468, 266, 470, 266, 469, 471, 530, 266, 266,
1033 174, 175, 0, 266, 266, 266, 266, 266, 266, 266,
1034 266, 266, 266, 266, 266, 266, 266, 266, 266, 266,
1035 266, 266, 266, 266, 266, 266, 266, 266, 266, 266,
1036 225, 231, 228, 557, 266, 0, 655, 39, 0, 531,
1037 549, 560, 652, 578, 0, 515, 266, 0, 0, 0,
1038 555, 40, 475, 479, 550, 398, 489, 500, 501, 499,
1039 0, 0, 41, 22, 266, 441, 398, 398, 266, 254,
1040 128, 398, 0, 373, 0, 398, 0, 398, 0, 266,
1041 266, 265, 266, 264, 260, 398, 0, 266, 0, 398,
1042 266, 19, 438, 0, 0, 424, 439, 266, 0, 0,
1043 524, 0, 563, 0, 249, 0, 656, 665, 164, 266,
1044 266, 0, 449, 448, 450, 266, 512, 266, 0, 660,
1045 661, 662, 663, 658, 518, 266, 525, 0, 651, 398,
1046 528, 649, 0, 0, 169, 0, 176, 0, 0, 0,
1047 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1048 245, 201, 202, 203, 206, 205, 208, 209, 211, 212,
1049 213, 214, 216, 217, 219, 221, 223, 266, 266, 266,
1050 247, 266, 266, 193, 544, 165, 548, 0, 398, 529,
1051 561, 0, 0, 497, 483, 266, 551, 0, 0, 24,
1052 0, 535, 266, 552, 130, 398, 266, 530, 266, 255,
1053 372, 266, 388, 0, 396, 391, 0, 397, 0, 413,
1054 416, 410, 412, 270, 266, 266, 666, 15, 30, 266,
1055 441, 266, 17, 425, 434, 436, 36, 443, 398, 442,
1056 446, 520, 559, 0, 565, 266, 370, 455, 0, 441,
1057 451, 266, 0, 199, 398, 266, 521, 0, 527, 543,
1058 0, 568, 266, 170, 168, 266, 266, 226, 0, 229,
1059 266, 195, 266, 197, 545, 546, 266, 266, 266, 566,
1060 266, 398, 266, 398, 76, 26, 536, 539, 266, 266,
1061 537, 266, 553, 530, 133, 0, 257, 266, 374, 394,
1062 532, 380, 395, 532, 383, 266, 415, 266, 0, 103,
1063 266, 266, 266, 0, 32, 0, 266, 0, 78, 440,
1064 266, 452, 266, 0, 456, 459, 266, 0, 457, 0,
1065 441, 0, 0, 0, 526, 266, 266, 177, 172, 173,
1066 232, 0, 0, 547, 562, 0, 266, 266, 266, 266,
1067 266, 266, 266, 266, 266, 0, 162, 165, 178, 198,
1068 187, 204, 207, 210, 215, 218, 220, 222, 224, 227,
1069 0, 571, 570, 163, 581, 590, 600, 602, 606, 609,
1070 612, 617, 620, 622, 624, 626, 628, 630, 634, 573,
1071 161, 0, 23, 0, 93, 97, 95, 120, 121, 122,
1072 123, 124, 125, 126, 25, 76, 80, 0, 82, 81,
1073 0, 85, 0, 398, 398, 83, 0, 84, 291, 0,
1074 76, 540, 541, 266, 538, 21, 266, 271, 398, 386,
1075 532, 398, 387, 532, 409, 414, 266, 0, 0, 102,
1076 266, 273, 261, 266, 0, 398, 78, 34, 0, 435,
1077 437, 37, 78, 86, 88, 87, 91, 89, 90, 444,
1078 418, 0, 266, 452, 419, 453, 564, 480, 0, 460,
1079 458, 461, 0, 0, 171, 522, 0, 571, 266, 194,
1080 196, 654, 0, 0, 181, 186, 185, 184, 183, 182,
1081 179, 180, 266, 266, 266, 174, 175, 0, 266, 266,
1082 266, 266, 266, 266, 266, 266, 266, 266, 266, 266,
1083 266, 266, 266, 266, 266, 266, 266, 266, 266, 266,
1084 266, 266, 266, 266, 266, 225, 631, 228, 484, 0,
1085 478, 101, 106, 99, 110, 666, 77, 92, 96, 104,
1086 285, 288, 284, 0, 289, 287, 27, 542, 266, 0,
1087 400, 398, 398, 399, 398, 398, 398, 417, 266, 263,
1088 276, 0, 271, 12, 31, 33, 78, 29, 666, 79,
1089 441, 445, 420, 421, 266, 454, 462, 0, 190, 0,
1090 530, 233, 653, 164, 266, 0, 169, 0, 0, 0,
1091 0, 635, 636, 637, 638, 639, 640, 641, 642, 643,
1092 644, 645, 201, 202, 203, 206, 205, 208, 209, 211,
1093 212, 213, 214, 216, 217, 219, 221, 223, 627, 266,
1094 629, 266, 477, 105, 0, 115, 116, 117, 118, 119,
1095 666, 107, 398, 110, 0, 0, 138, 98, 147, 666,
1096 136, 137, 0, 47, 0, 0, 55, 56, 66, 64,
1097 294, 0, 293, 53, 73, 0, 60, 63, 0, 666,
1098 65, 157, 271, 266, 398, 0, 266, 401, 389, 398,
1099 392, 398, 411, 274, 266, 666, 35, 0, 266, 481,
1100 266, 0, 650, 647, 199, 266, 170, 168, 266, 266,
1101 0, 572, 100, 110, 94, 113, 109, 114, 112, 111,
1102 0, 141, 0, 0, 0, 0, 135, 0, 0, 150,
1103 159, 666, 149, 0, 0, 63, 0, 69, 0, 0,
1104 58, 57, 59, 0, 0, 0, 0, 0, 0, 266,
1105 666, 158, 0, 256, 266, 403, 266, 266, 398, 406,
1106 0, 381, 0, 384, 275, 277, 0, 38, 266, 0,
1107 191, 189, 646, 531, 0, 172, 173, 632, 108, 142,
1108 139, 145, 0, 146, 143, 144, 148, 0, 153, 0,
1109 0, 0, 0, 266, 0, 75, 74, 0, 70, 0,
1110 49, 44, 45, 52, 63, 54, 67, 0, 71, 72,
1111 0, 0, 292, 266, 266, 272, 266, 266, 0, 404,
1112 266, 390, 0, 393, 0, 13, 482, 569, 171, 266,
1113 140, 154, 151, 0, 155, 156, 160, 286, 51, 48,
1114 0, 0, 68, 46, 61, 290, 258, 407, 398, 402,
1115 266, 382, 385, 633, 152, 62, 50, 405, 408, 0,
1119 static const short yydefgoto[] = { 1190,
1120 84, 85, 86, 87, 133, 295, 296, 88, 635, 771,
1121 297, 797, 917, 89, 669, 919, 901, 91, 1001, 1131,
1122 1078, 1064, 1132, 1170, 1003, 1004, 1005, 1074, 1006, 1007,
1123 1135, 1009, 1128, 755, 802, 756, 803, 757, 804, 885,
1124 805, 760, 806, 886, 883, 884, 789, 762, 763, 981,
1125 982, 983, 1047, 984, 764, 765, 92, 257, 427, 258,
1126 558, 93, 988, 1112, 1113, 990, 1061, 1081, 1062, 173,
1127 174, 496, 175, 928, 176, 177, 396, 534, 178, 179,
1128 180, 181, 182, 183, 184, 185, 186, 187, 528, 188,
1129 530, 189, 529, 829, 190, 219, 466, 308, 415, 95,
1130 648, 777, 126, 576, 96, 291, 192, 255, 127, 128,
1131 900, 793, 912, 98, 766, 808, 993, 768, 769, 809,
1132 1012, 894, 1010, 99, 100, 101, 102, 103, 104, 105,
1133 106, 107, 108, 109, 110, 322, 416, 433, 112, 263,
1134 113, 781, 1153, 784, 1155, 651, 1091, 654, 1093, 114,
1135 903, 904, 1088, 1089, 115, 659, 569, 570, 813, 130,
1136 455, 123, 124, 117, 584, 585, 456, 457, 458, 671,
1137 590, 323, 819, 815, 475, 344, 220, 240, 221, 222,
1138 345, 925, 1100, 224, 631, 225, 226, 227, 228, 194,
1139 401, 346, 342, 347, 460, 684, 348, 310, 608, 349,
1140 199, 350, 540, 779, 1019, 233, 555, 491, 400, 201,
1141 556, 557, 351, 202, 203, 352, 628, 594, 353, 236,
1142 354, 358, 687, 722, 880, 723, 207, 725, 726, 727,
1143 728, 729, 730, 731, 732, 733, 734, 735, 736, 737,
1144 738, 739, 970, 1160, 740, 1104, 355, 356, 209, 357,
1148 static const short yypact[] = { 1940,
1149 -32768, 44, 5141,-32768, 6239,-32768, 777, 2916, 3298, 3298,
1150 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1151 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1152 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1153 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1154 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1155 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1156 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 618,-32768,
1157 -32768,-32768,-32768, 2117,-32768,-32768,-32768, 517,-32768,-32768,
1158 83,-32768, 119,-32768,-32768,-32768, 142, 6074,-32768,-32768,
1159 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 6074, 6074,
1160 133, 22,-32768, 931,-32768,-32768, 777,-32768,-32768,-32768,
1161 -32768,-32768,-32768, 44,-32768,-32768, 155,-32768, 133,-32768,
1162 -32768,-32768, 5141,-32768, 163,-32768, 5370,-32768, 200, 241,
1163 262,-32768, 279, 777, 293, 331, 1396,-32768, 2493, 5370,
1164 5370, 5370, 5370, 5370, 5370,-32768, 5399, 5399, 340,-32768,
1165 374, 388, 410, 417, 433, 351, 4585,-32768, 440, 446,
1166 -32768, 459,-32768, 810, 1052,-32768,-32768,-32768, 1005, 127,
1167 65, 514, 461, 428, 448, 456, 519, 84,-32768,-32768,
1168 302,-32768, 3446, 490, 495,-32768,-32768,-32768,-32768, 484,
1169 3064,-32768, 4585,-32768, 3446,-32768, 429, 3446,-32768,-32768,
1170 582, 589,-32768, 599,-32768, 2683, 459, 634, 336, 542,
1171 3107,-32768, 3298,-32768,-32768,-32768, 5700,-32768,-32768,-32768,
1172 -32768, 642, 647,-32768, 3298, 3298, 3446,-32768,-32768, 607,
1173 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1174 -32768,-32768,-32768, 714, 689,-32768,-32768, 5964,-32768,-32768,
1175 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1176 -32768,-32768,-32768,-32768,-32768, 725, 667,-32768,-32768, 777,
1177 777, 11,-32768, 517,-32768,-32768,-32768,-32768, 747,-32768,
1178 -32768, 766, 767, 667, 119,-32768, 571, 763,-32768, 777,
1179 -32768, 287, 5370,-32768,-32768,-32768,-32768,-32768,-32768, 795,
1180 5370, 5370, 5370, 1711, 804,-32768,-32768,-32768, 391, 164,
1181 5568, 363, 800, 802,-32768,-32768,-32768,-32768,-32768,-32768,
1182 806, 5370,-32768,-32768, 5370, 814, 817, 835, 886, 893,
1183 351, 728, 3402,-32768, 4585,-32768,-32768,-32768,-32768, 898,
1184 -32768,-32768, 4585,-32768, 4585,-32768,-32768,-32768, 1859, 5370,
1185 -32768,-32768, 46, 5370, 5370, 5370, 5370, 5370, 5370, 5370,
1186 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370,
1187 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370,
1188 -32768,-32768,-32768,-32768, 5370, 635,-32768,-32768, 2303,-32768,
1189 -32768, 861,-32768,-32768, 945,-32768, 5370, 367, 938, 839,
1190 -32768,-32768,-32768,-32768,-32768, 133, 5700,-32768,-32768,-32768,
1191 2873, 997,-32768,-32768, 5370, 125, 3549, 4666, 667,-32768,
1192 319, 6239, 879, 992, 1001, 1006, 1014, 1006, 777, 1030,
1193 667,-32768, 667,-32768,-32768,-32768, 962, 1036, 1033,-32768,
1194 667, 571,-32768, 777, 1039,-32768, 1045, 777, 226, 1046,
1195 -32768, 266, 1057, 394, 1057, 1064,-32768,-32768,-32768,-32768,
1196 5152, 1060, 617,-32768, 695, 5370,-32768,-32768, 1065,-32768,
1197 -32768,-32768,-32768,-32768,-32768, 5370,-32768, 1067,-32768, 3549,
1198 -32768,-32768, 1078, 1066,-32768, 403,-32768, 58, 777, 777,
1199 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1200 -32768,-32768,-32768,-32768, 1005, 1005, 127, 127, 65, 65,
1201 65, 65, 514, 514, 461, 428, 448, 5370, 5370, 5370,
1202 -32768, 5419, 5430,-32768,-32768, 4899,-32768, 3255, 3734,-32768,
1203 -32768, 1073, 424,-32768,-32768, 667,-32768, 1076, 1074,-32768,
1204 1077,-32768, 4104,-32768,-32768, 3919, 4147, 1079,-32768, 1081,
1205 -32768,-32768, 1085, 1087,-32768, 1088, 1100,-32768, 752,-32768,
1206 1101,-32768,-32768,-32768, 155,-32768, 225,-32768,-32768, 5370,
1207 481, 667,-32768,-32768, 1104,-32768,-32768, 1122, 6239,-32768,
1208 -32768,-32768,-32768, 1107,-32768, 1711,-32768,-32768, 1099, 67,
1209 695, 5314, 1109,-32768,-32768,-32768,-32768, 1112,-32768,-32768,
1210 1111,-32768, 5370,-32768,-32768,-32768,-32768, 456, 778, 519,
1211 5370,-32768, 5370,-32768,-32768,-32768, 4250, 4585, 5370,-32768,
1212 5489,-32768, 5370,-32768, 1083,-32768,-32768,-32768, 4293, 4396,
1213 -32768, 4439,-32768, 1079,-32768, 1113,-32768,-32768,-32768,-32768,
1214 -32768, 1116,-32768,-32768, 1119,-32768, 777,-32768, 777, 1068,
1215 5062,-32768,-32768, 1114,-32768, 1117,-32768, 496, 1083,-32768,
1216 777, 396, 4585, 1125,-32768,-32768, 204, 1129,-32768, 1120,
1217 82, 1123, 1134, 1124,-32768, 5370, 5489,-32768,-32768,-32768,
1218 -32768, 1145, 1146,-32768,-32768, 457, 5370, 5370, 5370, 5370,
1219 5370, 5370, 5370, 5399, 5399, 1126, 512, 537, 888, 1310,
1220 551, 1037, 779, 811, 840, 845, 1148, 1135, 1138, 1127,
1221 105, 1154,-32768, 10,-32768,-32768,-32768,-32768,-32768,-32768,
1222 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1223 552, 584,-32768, 996,-32768,-32768,-32768,-32768,-32768,-32768,
1224 -32768,-32768,-32768,-32768,-32768, 1083,-32768, 1094,-32768,-32768,
1225 1096,-32768, 1102,-32768,-32768,-32768, 1103,-32768, 1824, 1105,
1226 1083,-32768,-32768, 4542,-32768,-32768,-32768,-32768, 6161,-32768,
1227 -32768, 6161,-32768,-32768,-32768,-32768, 5370, 906, 1172,-32768,
1228 5062,-32768,-32768, 5062, 1106,-32768, 1083,-32768, 1168,-32768,
1229 -32768,-32768, 1083,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1230 517, 1174,-32768, 838,-32768, 695,-32768,-32768, 1171,-32768,
1231 -32768,-32768, 1175, 777,-32768,-32768, 673, 1177, 5370,-32768,
1232 -32768, 1185, 674, 1180, 723, 729, 730, 750, 764, 798,
1233 854, 855, 5370, 5325, 5370, 860, 872, 78, 5370, 5370,
1234 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370,
1235 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370,
1236 5370, 5370, 5370, 5370, 5370, 5370,-32768, 5370,-32768, 1186,
1237 1188,-32768, 1021, 1169, -7, 23,-32768,-32768,-32768,-32768,
1238 -32768,-32768,-32768, 544,-32768,-32768,-32768,-32768, 5062, 585,
1239 -32768, 133, 4744,-32768, 6161, 4744, 6161,-32768,-32768,-32768,
1240 -32768, 922,-32768,-32768,-32768,-32768, 1083,-32768, 119,-32768,
1241 620,-32768,-32768,-32768, 5345,-32768,-32768, 593,-32768, 1193,
1242 1079,-32768,-32768, 897, 5370, 1191, 903, 928, 61, 777,
1243 777,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1244 -32768,-32768, 933, 948, 950, 812, 912, 300, 875, 79,
1245 382, 505, 613, 701, 743, 102, 114, 147, 456, 5370,
1246 519, 5489,-32768, 429, 996,-32768,-32768,-32768,-32768,-32768,
1247 632,-32768, 5832, -7, 62, 62,-32768,-32768, 412, 637,
1248 -32768,-32768, 85,-32768, 797, 92,-32768,-32768,-32768,-32768,
1249 -32768, 1190,-32768, 1032,-32768, 1043,-32768, 77, 1202, 119,
1250 -32768, 85,-32768,-32768,-32768, 1225, 309,-32768,-32768, 4744,
1251 -32768, 4744,-32768,-32768, 1732, 671,-32768, 1155, 656,-32768,
1252 -32768, 777,-32768, 1056, 967,-32768, 976, 993,-32768,-32768,
1253 957,-32768,-32768, -7,-32768,-32768,-32768,-32768,-32768,-32768,
1254 435, 412, 682, 777, 777, 62,-32768, 85, 85,-32768,
1255 492, 711,-32768, 1226, 958, 506, 92, 543, 49, 797,
1256 -32768,-32768,-32768, 797, 15, 777, 777, 1227, 797,-32768,
1257 119, 1229, 745,-32768, 667,-32768,-32768, 1230,-32768, 1237,
1258 1240,-32768, 1241,-32768,-32768,-32768, 1176,-32768, 594, 1242,
1259 -32768,-32768,-32768,-32768, 1243, 1010, 1025,-32768,-32768,-32768,
1260 -32768, 412, 1239, 429,-32768,-32768, 412, 686, 492, 722,
1261 777, 777, 85,-32768, 1082,-32768,-32768, 797,-32768, 506,
1262 1232,-32768, 543,-32768, 543,-32768,-32768, 1247,-32768,-32768,
1263 1082, 1253,-32768,-32768,-32768,-32768, 5370, 309, 1251,-32768,
1264 -32768,-32768, 1259,-32768, 1260,-32768,-32768,-32768, 1027, 5370,
1265 -32768,-32768,-32768, 1255,-32768,-32768, 492,-32768,-32768,-32768,
1266 1258, 49,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1267 5370,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1285,
1271 static const short yypgoto[] = {-32768,
1272 -32768, 1204,-32768,-32768,-32768,-32768, -405, -112,-32768,-32768,
1273 989,-32768,-32768,-32768,-32768,-32768, 68,-32768,-32768, 397,
1274 -32768,-32768, 118, 151, 223,-32768,-32768,-32768, -661,-32768,
1275 -825,-32768,-32768, -608, -744,-32768,-32768,-32768, -573,-32768,
1276 -373,-32768, -287,-32768, 320,-32768,-32768, 639, -613,-32768,
1277 250, 313,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1278 -32768,-32768,-32768, -828, 180,-32768, -982,-32768, 289,-32768,
1279 -616, 458, 852,-32768,-32768, -593,-32768,-32768, 59, -359,
1280 -358, -357, -343, -382, -365, -335, -499, -513,-32768, -592,
1281 -32768, -136,-32768,-32768, 851, 944, -584, -411, 36,-32768,
1282 -32768,-32768, -437,-32768,-32768,-32768, 267, -230, 862,-32768,
1283 -848, -754,-32768,-32768,-32768, -276,-32768,-32768,-32768, -254,
1284 -32768,-32768,-32768,-32768,-32768, 539,-32768,-32768,-32768,-32768,
1285 -32768,-32768,-32768,-32768,-32768,-32768, 131, 748,-32768, 951,
1286 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 186,
1287 -590, -495,-32768, 161,-32768,-32768, 652, 655, 499, 13,
1288 -356, 1192,-32768, 14,-32768,-32768, -539,-32768,-32768,-32768,
1289 644, -260, 995,-32768, -452, 844, 1308,-32768, 1084,-32768,
1290 666,-32768,-32768,-32768,-32768, -171,-32768,-32768,-32768,-32768,
1291 90, 1121, 978, 1254,-32768,-32768, 1389,-32768,-32768, -332,
1292 -32768, 1244, 217, -603, -858,-32768, 834,-32768,-32768, 926,
1293 -195, -490, 103,-32768, 170, 26,-32768,-32768, 209,-32768,
1294 393,-32768,-32768, 640,-32768, 359, -598,-32768,-32768,-32768,
1295 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1296 -32768,-32768,-32768,-32768,-32768,-32768, 1398,-32768,-32768, 1642,
1304 static const short yytable[] = { 118,
1305 307, 447, 118, 574, 284, 525, 118, 211, 211, 211,
1306 488, 674, 116, 549, 709, 125, 620, 434, 515, 516,
1307 601, 517, 518, 526, 519, 520, 521, 522, 618, 439,
1308 -579, 417, 724, 204, -579, 94, 911, 711, 721, 913,
1309 259, 1137, 523, 524, 409, 583, 985, 1021, 627, 413,
1310 782, 414, 916, 994, 527, 807, 986, 989, 920, 599,
1311 678, 758, 428, 420, 1026, 640, 449, 90, 1008, 551,
1312 709, 453, 1067, 499, 607, 1118, 1119, 2, 395, 976,
1313 977, 395, 996, 118, 615, 985, 453, 1038, 724, 500,
1314 -398, 676, -398, 711, 721, 986, 116, 195, -45, -613,
1315 -398, 256, 1075, -613, 1076, 940, 822, 278, 1058, 978,
1316 979, 234, 234, 380, 381, 1067, 118, 720, 1059, 94,
1317 1077, 941, -621, 980, 392, 996, -621, 380, 381, 453,
1318 111, 719, 118, 129, -623, 132, 259, 287, -623, 393,
1319 1167, 823, 388, 118, 1013, 877, 300, 887, 211, 550,
1320 -266, 90, 121, 122, 386, 387, 1051, 1052, 378, 379,
1321 878, 1092, 897, 1094, 1083, 261, 211, -625, 664, 1066,
1322 1068, -625, 1027, 720, 204, 288, 667, 905, 235, 235,
1323 907, 394, 758, 807, 395, 389, 302, 719, 469, 807,
1324 680, 906, 211, 77, 78, 134, 404, 758, 81, 82,
1325 211, 1138, 211, 539, 211, 77, 987, 211, 325, 326,
1326 327, 328, 329, 330, 111, 211, 205, 605, 204, 816,
1327 211, 449, 211, 311, 666, 645, 204, 1117, 262, 471,
1328 204, 77, 999, 204, 211, 211, 211, 2, 324, 262,
1329 262, 1130, 259, 1133, 77, 987, 395, 662, 716, 413,
1330 469, 243, 244, 245, 246, 247, 248, 249, 250, 251,
1331 252, 759, 204, 299, 312, 717, 97, 77, 1060, 97,
1332 1096, 712, 713, 714, 77, 999, 118, 241, 242, 118,
1333 118, 118, 397, 663, 974, 313, 395, 715, 307, 431,
1334 593, 453, 272, 118, 403, 718, 277, 405, 279, 118,
1335 283, 434, 314, 807, 716, 285, 446, -398, -398, -398,
1336 316, 488, -398, -398, 1020, 293, 1022, 294, 234, 394,
1337 -610, 717, 395, 234, -610, 234, 422, 712, 713, 714,
1338 1087, 378, 379, 1065, 307, 473, -398, 234, 234, -398,
1339 1030, -398, 2, 715, 211, 683, 1133, 761, 317, 307,
1340 97, 718, 211, 411, 211, 709, 395, 205, 767, 363,
1341 692, 816, 693, 335, 971, 264, 265, 266, 267, 268,
1342 269, 270, 271, 724, 273, 908, 969, 276, 711, 721,
1343 770, 678, 759, 97, 411, 235, -266, 395, 471, 336,
1344 235, 469, 235, 289, 290, 292, 2, 759, 211, 298,
1345 206, 205, -614, 337, 235, 235, -614, 1018, 468, 205,
1346 1018, 395, 1136, 205, 395, 321, 205, 1142, 595, -266,
1347 211, 471, 331, 613, 204, 338, 211, 614, 118, 2,
1348 380, 381, 339, 512, 513, 514, 834, 1053, 118, 1054,
1349 118, 559, 118, 307, 395, 205, 429, 340, 630, 341,
1350 118, 470, 547, 118, 1114, 1055, 388, 118, 720, 1110,
1351 1053, -669, 1054, 547, 300, 307, 1171, -673, 761, -398,
1352 -398, -398, 719, 441, -398, -398, 443, 395, 1055, 767,
1353 -670, 832, 321, 761, 451, 453, 389, 454, 537, 211,
1354 966, 77, 78, 134, 767, 390, 81, 82, 118, 118,
1355 800, 770, 399, 956, 957, 665, 958, 959, 967, 960,
1356 961, 962, 963, 386, 387, 119, 770, 1120, 119, 1121,
1357 425, 1114, 135, 234, 1018, -615, 1018, 964, 965, -615,
1358 1129, 1075, -576, 1076, 604, 1122, -576, 211, 211, 968,
1359 -267, 206, 254, 97, 432, 118, 435, 437, 994, 1077,
1360 382, 383, 211, 380, 381, 211, 211, -575, 632, 811,
1361 97, -575, 470, 204, 384, 385, 298, 995, 1075, 321,
1362 1076, -599, -574, 391, 547, -599, -574, 996, 77, 78,
1363 134, 118, 398, 81, 82, 206, 1077, -502, 472, 716,
1364 235, 547, 991, 206, -267, 300, 448, 206, 1034, 119,
1365 206, 546, 1014, -672, 395, 1015, 717, 205, 881, 321,
1366 406, 454, 712, 713, 714, 404, 560, 1031, -449, 471,
1367 1032, 565, 407, 568, 453, 1028, 211, 211, 715, 206,
1368 741, 577, 119, -616, 412, 582, 718, -616, 211, 211,
1369 -266, 211, 471, -398, 676, -398, 601, 1146, 301, 259,
1370 307, -675, 1044, -398, 259, -671, 118, 1056, 118, 315,
1371 418, 380, 381, -398, -398, -398, 419, 118, -398, -398,
1372 118, 118, 211, 193, 223, 223, 532, 533, 77, 78,
1373 134, 471, 276, 81, 82, 814, 741, 1045, 259, 2,
1374 473, 1015, 932, 395, 395, 97, 1057, 930, 934, 423,
1375 2, 811, 564, -675, 567, 985, 573, 97, 1111, 97,
1376 1162, 1120, 426, 1121, 580, 986, 1080, 298, -266, 672,
1377 602, -618, 997, 998, 589, -618, 77, 999, 259, 1122,
1378 1000, 1123, 1097, 486, 487, 1178, 597, 382, 383, 472,
1379 424, 603, 430, -593, 432, 985, 205, -593, 1163, -598,
1380 -597, 384, 385, -598, -597, 986, 835, 836, 837, 838,
1381 839, 840, 1145, -619, 442, 1015, 454, -619, 1124, 1189,
1382 -596, 656, 657, 211, -596, 1105, 77, 78, 134, 382,
1383 383, 81, 82, 444, -595, 677, 450, 1144, -595, 445,
1384 682, 206, 119, 384, 385, 436, 438, 440, 395, 691,
1385 -675, -675, -398, -398, -398, -675, -675, -398, -398, 119,
1386 863, 864, 97, 118, 193, 301, 461, 560, -594, 743,
1387 995, 467, -594, 118, 476, 646, 477, 814, 432, 478,
1388 996, 480, -608, 359, 481, 360, -608, -398, 77, 78,
1389 134, 660, 661, 81, 82, 375, 376, 377, 298, 77,
1390 78, 134, 482, -398, 81, 82, 361, 362, 193, 865,
1391 866, -266, 545, 471, 77, 987, 193, 603, 171, 541,
1392 193, 2, 432, 193, -591, -592, 867, 868, -591, -592,
1393 -588, 223, 689, 690, -588, 992, 223, 321, 223, 321,
1394 869, 870, -589, 1011, 848, -611, -589, 871, 872, -611,
1395 223, 223, 193, 483, 77, 987, 378, 379, 171, 902,
1396 484, 844, 902, 845, 778, -398, 490, -580, 953, 954,
1397 955, -580, 785, -583, 787, 909, 657, -583, 794, 795,
1398 206, -398, -607, 799, 846, 847, -607, 589, 812, 118,
1399 118, 1024, 1025, 472, 119, 375, 376, 377, 613, 891,
1400 892, 191, 1037, -603, 571, 542, 119, -603, 119, 77,
1401 78, 134, 544, 321, 81, 82, 301, 561, -604, 586,
1402 -605, 741, -604, 591, -605, 997, 998, 395, 1108, 77,
1403 999, 915, 1049, 1000, 992, 992, 284, -601, 306, 1126,
1404 1127, -601, 1063, 1035, 1011, 1011, -584, 280, 281, 282,
1405 -584, 306, 306, 306, 306, 306, 306, 548, 333, 334,
1406 307, 1063, 562, -582, 616, 617, 118, -582, 1048, 563,
1407 77, 78, 134, 1184, -266, 81, 82, 923, 118, 1090,
1408 -586, 118, 566, 902, -586, 902, 902, 902, 375, 376,
1409 377, 559, 1099, 899, 307, -587, 402, -585, 572, -587,
1410 578, -585, 992, 118, 118, 992, 581, 1063, 1063, 274,
1411 275, 119, 579, 587, 193, 588, 1011, 592, 1011, 1011,
1412 860, 861, 862, 1011, 364, 118, 118, 395, 1011, 922,
1413 812, 596, 603, 600, 118, 606, 223, 1017, 611, 612,
1414 319, 609, 320, 1071, 1072, 1073, 629, 301, 118, 633,
1415 634, 636, 644, 647, 650, 652, 1029, 653, 365, 366,
1416 367, 368, 369, 370, 371, 372, 373, 374, 655, 992,
1417 118, 118, 1063, 658, 668, 675, 670, 1011, 196, 229,
1418 229, 673, 681, 685, 686, 780, 191, 776, 783, 744,
1419 796, 798, 818, 824, 191, 826, 821, 118, 191, 843,
1420 902, 191, 902, 820, 744, 745, 746, 747, 825, 408,
1421 1090, 748, 749, 750, 751, 752, 753, 754, 1016, 830,
1422 831, 1011, 571, 874, 571, 1023, 873, 875, 879, 882,
1423 191, 876, 888, 801, 889, 479, 591, 119, 489, 910,
1424 890, 893, 918, 896, 914, 926, 492, 921, 493, 927,
1425 1085, 931, 933, 193, 935, 973, 972, 171, 975, 497,
1426 1033, 1036, 1069, 1070, 501, 502, 503, 504, 505, 506,
1427 507, 508, 509, 510, 511, 1079, 306, 306, 306, 306,
1428 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
1429 306, 306, 1086, 1098, 1103, 531, 459, 1125, 1141, 1123,
1430 1148, 200, 232, 232, 462, 463, 464, 465, 1151, 1152,
1431 1154, 197, 230, 230, 1156, 1161, 1157, 1159, 1180, 196,
1432 554, 1172, 1169, 1173, 1150, 459, 306, 1175, 1182, 1183,
1433 1084, 1185, 1186, 97, 1191, 1192, 459, 253, 452, 1187,
1434 1002, 1174, 1134, 1109, 1043, 812, 1050, 1101, 790, 1164,
1435 1082, 938, 432, 498, 575, 1106, 1107, 895, 1179, 649,
1436 788, 786, 924, 196, 810, 286, 474, 239, 485, 421,
1437 1158, 196, 306, 610, 538, 196, 828, 306, 196, 119,
1438 1042, 0, 849, 554, 0, 0, 229, 306, 0, 929,
1439 0, 229, 191, 229, 0, 0, 1143, 0, 0, 0,
1440 543, 97, 0, 1147, 1149, 229, 229, 196, 0, 0,
1441 0, 0, 0, 0, 1188, 812, 850, 851, 852, 853,
1442 854, 855, 856, 857, 858, 859, 0, 0, 0, 306,
1443 0, 306, 554, 622, 624, 0, 0, 0, 0, 0,
1444 1168, 0, 200, 0, 0, 0, 198, 231, 231, 554,
1445 643, 0, 197, 0, 0, 208, 237, 237, 0, 0,
1446 1176, 1177, 0, 318, 97, 0, 0, 1181, 0, 303,
1447 0, 0, 0, 0, 150, 151, 152, 153, 154, 155,
1448 0, 306, 0, 0, 0, 0, 200, 0, 0, 0,
1449 0, 156, 157, 158, 200, 0, 197, 0, 200, 0,
1450 0, 200, 0, 306, 197, 1039, 1040, 0, 197, 232,
1451 410, 197, 0, 688, 232, 159, 232, 0, 0, 230,
1452 643, 695, 619, 0, 230, 0, 230, 0, 232, 232,
1453 200, 191, 710, 643, 0, 0, 0, 0, 230, 230,
1454 197, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1455 0, 0, 0, 0, 0, 0, 0, 168, 0, 0,
1456 0, 792, 0, 0, 0, 0, 817, 0, 0, 196,
1457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1458 0, 0, 119, 0, 0, 0, 0, 198, 710, 465,
1459 0, 229, 0, 0, 119, 0, 208, 1102, 0, 306,
1460 306, 306, 306, 306, 306, 841, 842, 0, 0, 0,
1461 0, 0, 0, 0, 459, 0, 459, 0, 0, 1115,
1462 1116, 0, 696, 0, 0, 0, 742, 0, 77, 304,
1463 305, 198, 171, 0, 0, 0, 0, 0, 0, 198,
1464 208, 1139, 1140, 198, 0, 0, 198, 0, 208, 0,
1465 119, 494, 208, 0, 231, 208, 0, 0, 0, 231,
1466 0, 231, 0, 237, 119, 0, 0, 0, 237, 0,
1467 237, 0, 0, 231, 231, 198, 0, 0, 0, 827,
1468 0, 0, 237, 237, 208, 0, 1165, 1166, 306, 0,
1469 833, 792, 200, 0, 792, 0, 0, 0, 0, 210,
1470 238, 238, 197, 0, 0, 0, 0, 0, 196, 0,
1471 0, 0, 0, 119, 232, 0, 0, 0, 0, 0,
1472 0, 0, 0, 0, 230, 0, 0, 0, 0, 0,
1473 306, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1474 0, 0, 0, 936, 497, 0, 0, 0, 0, 942,
1475 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,
1476 0, 306, 306, 306, 306, 306, 306, 306, 306, 306,
1477 306, 306, 306, 306, 306, 306, 306, 306, -248, 306,
1478 0, 0, 0, 0, 303, 0, 0, 0, 0, 150,
1479 151, 152, 153, 154, 155, 0, 0, 0, 0, 792,
1480 791, 1095, 0, 0, 0, 303, 156, 157, 158, 0,
1481 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1482 0, 0, 0, 0, 0, 0, 0, 156, 157, 158,
1483 159, 200, 0, 0, 0, 0, 306, 198, 939, 0,
1484 210, 197, 0, 0, 0, 0, 208, 0, 0, 0,
1485 0, 159, 0, 0, 0, 0, 0, 0, 0, 231,
1486 0, 0, 0, 0, 0, 0, 0, 0, 237, 0,
1487 0, 0, 168, 710, 0, 0, 0, 0, 0, 0,
1488 0, 0, 0, 0, 210, 0, 0, 0, 0, 0,
1489 0, 0, 210, 168, 0, 0, 210, 0, 0, 210,
1490 0, 0, 0, 0, 0, 0, 0, 238, 0, 0,
1491 0, 0, 238, 0, 238, 0, 0, 0, 465, 0,
1492 0, 0, 0, 0, 0, 792, 238, 238, 210, 0,
1493 0, 0, 303, 495, 0, 0, 0, 150, 151, 152,
1494 153, 154, 155, 77, 304, 305, 0, 171, 0, 0,
1495 0, 0, 0, 0, 156, 157, 158, 0, 0, 0,
1496 0, 0, 0, 1041, 77, 304, 305, 0, 171, 0,
1497 0, 0, 0, 0, 0, 0, 198, 0, 159, 0,
1498 0, 0, 0, 0, 0, 208, 0, 0, 0, -1,
1499 1, 0, 20, 21, 22, 23, 0, 24, 0, 0,
1500 0, 0, 29, 30, 0, 0, 33, 34, 0, 36,
1501 37, 38, 39, -266, 0, 0, 0, 0, 0, 0,
1502 168, 0, 0, 2, 51, 52, 0, 0, 0, 0,
1503 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
1504 0, 0, 0, 0, 0, 0, 0, 0, 306, 76,
1505 0, 0, 0, 0, 0, 0, -398, -398, -398, 80,
1506 4, 306, 0, 0, 0, 5, 6, 7, 0, 0,
1507 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
1508 9, 10, 306, 0, 0, 0, 0, 0, 0, 0,
1509 210, 77, 304, 305, 0, 171, 0, 0, 11, 12,
1510 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1511 22, 23, 238, 24, 25, 26, 27, 28, 29, 30,
1512 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1513 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1514 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1515 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1516 71, 72, 73, 74, 75, 76, -2, 1, 0, 0,
1517 0, 0, 77, 78, 79, 80, 0, 81, 82, 83,
1518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1519 -266, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1520 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1521 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
1522 0, 0, 0, 0, 0, 0, 0, 0, 0, 210,
1523 0, 0, 0, -398, -398, -398, 0, 4, 0, 0,
1524 0, 0, 5, 6, 7, 0, 0, 0, 0, 0,
1525 0, 0, 0, 0, 0, 0, 8, 9, 10, 0,
1526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1527 0, 0, 0, 0, 0, 11, 12, 13, 0, 14,
1528 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1529 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1530 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1531 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1532 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1533 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1534 74, 75, 76, 0, 0, 0, 0, 0, 0, 77,
1535 78, 79, 80, 136, 81, 82, 83, 0, 137, 138,
1536 139, 0, 140, 141, 142, 143, 144, 145, 146, 147,
1537 148, -530, 535, 0, 0, 0, 149, 0, 0, 0,
1538 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1539 0, 0, 0, 0, -266, -266, 0, 3, 156, 157,
1540 158, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1541 0, 0, 0, 0, 0, 0, 0, 0, 0, -398,
1542 -398, -398, 159, 4, 0, 0, 0, 0, 0, 0,
1543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1544 0, 0, 0, 0, 0, 0, 161, 162, 163, 164,
1545 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1546 167, 11, 12, 13, 168, 14, 15, 16, 17, 18,
1547 19, 20, 21, 22, 23, 0, 24, 25, 26, 27,
1548 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1549 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1550 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1551 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1552 68, 69, 70, 71, 72, 73, 74, 75, 76, 0,
1553 0, 0, 0, 0, 0, 77, 169, 536, 80, 171,
1554 172, 82, 83, 136, 0, 0, 0, 0, 137, 138,
1555 139, 0, 140, 141, 142, 143, 144, 145, 146, 147,
1556 148, -530, 0, 0, 0, 0, 149, 0, 0, 0,
1557 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1558 0, 0, 0, 0, -266, -266, 0, 0, 156, 157,
1559 158, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1560 0, 0, 0, 0, 0, 0, 0, 0, 0, -266,
1561 -266, -266, 159, 0, 0, 0, 0, 0, 0, 0,
1562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1563 0, 0, 0, 0, 0, 0, 161, 162, 163, 164,
1564 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1565 167, -266, -266, -266, 168, -266, -266, -266, -266, -266,
1566 -266, -266, -266, -266, -266, 0, -266, -266, -266, -266,
1567 -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
1568 -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
1569 -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
1570 -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
1571 -266, -266, -266, -266, -266, -266, -266, -266, -266, 0,
1572 0, 0, 0, 0, 0, 77, 169, 170, -266, 171,
1573 172, 82, -266, 213, 0, 0, 0, 0, 137, 138,
1574 139, 0, 0, 214, 142, 143, 144, 145, 146, 147,
1575 215, -530, -534, 0, 0, 0, 216, 0, 0, 0,
1576 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1577 0, 0, 0, 0, -266, -266, 0, 0, 156, 157,
1578 158, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1579 0, 0, 0, 0, 0, 0, 0, 0, 0, -266,
1580 -266, -266, 159, 0, 0, 0, 0, 0, 0, 0,
1581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1582 0, 0, 0, 0, 0, 0, 161, 162, 163, 164,
1583 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1584 167, -266, -266, -266, 168, -266, -266, -266, -266, -266,
1585 -266, -266, -266, -266, -266, 0, -266, -266, -266, -266,
1586 -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
1587 -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
1588 -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
1589 -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
1590 -266, -266, -266, -266, -266, -266, -266, -266, -266, 0,
1591 0, 0, 0, 0, 0, 77, 169, 170, -266, 171,
1592 217, 218, -266, 213, 0, 0, 0, 0, 137, 138,
1593 139, 0, 0, 214, 142, 143, 144, 145, 146, 147,
1594 215, -476, -476, 0, 0, 0, 216, -476, 0, 0,
1595 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1596 0, 0, 0, 0, -266, -266, 136, 0, 156, 157,
1597 158, 137, 138, 139, 0, 140, 141, 142, 143, 144,
1598 145, 146, 147, 148, -530, 0, 0, 0, 0, 149,
1599 0, 0, 159, 0, 150, 151, 152, 153, 154, 155,
1600 0, 0, 0, 0, 0, 0, 0, -266, -266, 0,
1601 0, 156, 157, 158, 0, -476, 161, 162, 163, 164,
1602 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1603 167, 0, 0, 0, 168, 159, 0, 0, 0, 0,
1604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1605 0, 0, 0, 0, 0, 0, 0, 0, 160, 161,
1606 162, 163, 164, 165, 166, 0, 0, 0, 0, 0,
1607 0, 0, 0, 167, 0, 0, 0, 168, 0, 0,
1608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1610 0, 0, 0, 0, 0, 77, 169, 170, 0, 171,
1611 217, 218, 0, 0, 136, 0, 0, 0, 0, 137,
1612 138, 139, 0, 140, 141, 142, 143, 144, 145, 146,
1613 147, 148, -530, 0, 0, 0, 0, 149, 0, 0,
1614 0, 0, 150, 151, 152, 153, 154, 155, 77, 169,
1615 170, 0, 171, 172, 82, -266, -266, 213, 0, 156,
1616 157, 158, 137, 138, 139, 0, 0, 214, 142, 143,
1617 144, 145, 146, 147, 215, -530, -534, 0, 0, 0,
1618 216, 0, 0, 159, 0, 150, 151, 152, 153, 154,
1619 155, 0, 0, 0, 0, 0, 0, 0, -266, -266,
1620 0, 0, 156, 157, 158, 0, -503, 161, 162, 163,
1621 164, 165, 166, 0, 0, 0, 0, 0, 0, 0,
1622 0, 167, 0, 0, 0, 168, 159, 0, 0, 0,
1623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1624 0, 0, 0, 0, 0, 0, 0, 0, 0, -472,
1625 161, 162, 163, 164, 165, 166, 0, 0, 0, 0,
1626 0, 0, 0, 0, 167, 0, 0, 0, 168, 0,
1627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1629 0, 0, 0, 0, 0, 0, 77, 169, 170, 0,
1630 171, 172, 82, 0, 0, 136, 0, 0, 0, 0,
1631 137, 138, 139, 0, 140, 141, 142, 143, 144, 145,
1632 146, 147, 148, -530, 625, 0, 0, 0, 149, 0,
1633 0, 0, 0, 150, 151, 152, 153, 154, 155, 77,
1634 169, 170, 0, 171, 217, 218, -266, -266, 213, 0,
1635 156, 157, 158, 137, 138, 139, 0, 0, 214, 142,
1636 143, 144, 145, 146, 147, 215, -530, -534, 0, 0,
1637 0, 216, 0, 0, 159, 0, 150, 151, 152, 153,
1638 154, 155, 0, 0, 0, 0, 0, 0, 0, -266,
1639 -266, 0, 0, 156, 157, 158, 0, 0, 161, 162,
1640 163, 164, 165, 166, 0, 0, 0, 0, 0, 0,
1641 0, 0, 167, 0, 0, 0, 168, 159, 0, 0,
1642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1644 0, 161, 162, 163, 164, 165, 166, 0, 0, 0,
1645 0, 0, 0, 0, 0, 167, 0, 0, 0, 168,
1646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1647 -530, 0, 0, 0, 0, 343, 0, 0, 0, 0,
1648 150, 151, 152, 153, 154, 155, 0, 77, 169, 170,
1649 0, 171, 172, 82, 0, 0, 136, 156, 157, 158,
1650 0, 137, 138, 139, 0, 140, 141, 142, 143, 144,
1651 145, 146, 147, 148, -530, 0, 0, 0, 0, 149,
1652 0, 159, 0, 0, 150, 151, 152, 153, 154, 155,
1653 77, 169, 170, 0, 171, 217, 218, -266, -266, 0,
1654 0, 156, 157, 158, 0, 0, 0, 0, 0, 0,
1655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1656 0, 0, 0, 168, 0, 159, 0, 0, 0, 0,
1657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1658 0, 0, 0, 0, 0, 0, 0, 0, 0, 161,
1659 162, 163, 164, 165, 166, 0, 0, 0, 0, 0,
1660 0, 0, 0, 167, 137, 138, 139, 168, 140, 141,
1661 142, 143, 144, 145, 146, 147, 215, -530, 552, 0,
1662 0, 0, 343, 0, 0, 0, 0, 150, 151, 152,
1663 153, 154, 155, 0, 77, 304, 305, 0, 171, 0,
1664 -266, -266, 0, 3, 156, 157, 158, 0, 0, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666 0, 0, 0, 0, 0, 0, 0, 0, 159, 4,
1667 0, 0, 0, 0, 0, 0, 0, 0, 77, 169,
1668 170, 0, 171, 172, 82, 0, 0, 0, 0, 0,
1669 0, 0, 161, 162, 163, 164, 165, 166, 0, 0,
1670 0, 0, 0, 0, 0, 0, 553, 11, 12, 13,
1671 168, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1672 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1673 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1674 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1675 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1676 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1677 72, 73, 74, 75, 76, 0, 0, 0, 0, 0,
1678 0, 77, 169, 536, 80, 171, 172, 82, 83, 137,
1679 138, 139, 0, 140, 141, 142, 143, 144, 145, 146,
1680 147, 215, -530, 626, 0, 0, 0, 343, 0, 0,
1681 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1682 0, 0, 0, 0, 0, -266, -266, 0, 3, 156,
1683 157, 158, 0, 0, 0, 0, 0, 0, 0, 0,
1684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1685 0, 0, 0, 159, 4, 0, 0, 0, 0, 0,
1686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1687 0, 0, 0, 0, 0, 0, 0, 161, 162, 163,
1688 164, 165, 166, 0, 0, 0, 0, 0, 0, 0,
1689 0, 167, 11, 12, 13, 168, 14, 15, 16, 17,
1690 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1691 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1692 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1693 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1694 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1695 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1696 0, 0, 0, 0, 0, 0, 77, 169, 536, 80,
1697 171, 172, 82, 83, 137, 138, 139, 0, 140, 141,
1698 142, 143, 144, 145, 146, 147, 215, -530, 638, 0,
1699 0, 0, 343, 0, 0, 0, 0, 150, 151, 152,
1700 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1701 -266, -266, 0, 3, 156, 157, 158, 0, 0, 0,
1702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1703 0, 0, 0, 0, 0, 0, 0, 0, 159, 4,
1704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1706 0, 0, 161, 162, 163, 164, 165, 166, 0, 0,
1707 0, 0, 0, 0, 0, 0, 639, 11, 12, 13,
1708 168, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1709 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1710 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1711 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1712 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1713 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1714 72, 73, 74, 75, 76, 0, 0, 0, 0, 0,
1715 0, 77, 169, 536, 80, 171, 172, 82, 83, 137,
1716 138, 139, 0, 140, 141, 142, 143, 144, 145, 146,
1717 147, 215, -530, 637, 0, 0, 0, 343, 0, 0,
1718 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1719 0, 0, 0, 0, 0, 0, 0, 0, 0, 156,
1720 157, 158, 137, 138, 139, 0, 140, 141, 142, 143,
1721 144, 145, 146, 147, 215, -530, 641, 0, 0, 0,
1722 343, 0, 0, 159, 0, 150, 151, 152, 153, 154,
1723 155, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1724 0, 0, 156, 157, 158, 0, 0, 161, 162, 163,
1725 164, 165, 166, 0, 0, 0, 0, 0, 0, 0,
1726 0, 167, 0, 0, 0, 168, 159, 0, 0, 0,
1727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1729 161, 162, 163, 164, 165, 166, 0, 0, 0, 0,
1730 0, 0, 0, 0, 642, 137, 138, 139, 168, 140,
1731 141, 142, 143, 144, 145, 146, 147, 215, -530, 694,
1732 0, 0, 0, 343, 0, 0, 0, 0, 150, 151,
1733 152, 153, 154, 155, 0, 0, 77, 169, 170, 0,
1734 171, 172, 82, 0, 0, 156, 157, 158, 137, 138,
1735 139, 0, 140, 141, 142, 143, 144, 145, 146, 147,
1736 215, -530, 772, 0, 0, 0, 343, 0, 0, 159,
1737 0, 150, 151, 152, 153, 154, 155, 0, 0, 77,
1738 169, 170, 0, 171, 172, 82, 0, 0, 156, 157,
1739 158, 0, 0, 161, 162, 163, 164, 165, 166, 0,
1740 0, 0, 0, 0, 0, 0, 0, 167, 0, 0,
1741 0, 168, 159, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 0, 0, 0, 0, 0, 161, 162, 163, 164,
1744 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1745 167, 137, 138, 139, 168, 140, 141, 142, 143, 144,
1746 145, 146, 147, 215, -530, 773, 0, 0, 0, 343,
1747 0, 0, 0, 0, 150, 151, 152, 153, 154, 155,
1748 0, 0, 77, 169, 170, 0, 171, 172, 82, 0,
1749 0, 156, 157, 158, 137, 138, 139, 0, 140, 141,
1750 142, 143, 144, 145, 146, 147, 215, -530, 775, 0,
1751 0, 0, 343, 0, 0, 159, 0, 150, 151, 152,
1752 153, 154, 155, 0, 0, 77, 169, 170, 0, 171,
1753 172, 82, 0, 0, 156, 157, 158, 0, 0, 161,
1754 162, 163, 164, 165, 166, 0, 0, 0, 0, 0,
1755 0, 0, 0, 774, 0, 0, 0, 168, 159, 0,
1756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1758 0, 0, 161, 162, 163, 164, 165, 166, 0, 0,
1759 0, 0, 0, 0, 0, 0, 167, 137, 138, 139,
1760 168, 140, 141, 142, 143, 144, 145, 146, 147, 215,
1761 -530, 898, 0, 0, 0, 343, 0, 0, 0, 0,
1762 150, 151, 152, 153, 154, 155, 0, 0, 77, 169,
1763 170, 0, 171, 172, 82, 0, 0, 156, 157, 158,
1764 137, 138, 139, 0, 140, 141, 142, 143, 144, 145,
1765 146, 147, 215, -530, 0, 0, 0, 0, 343, 0,
1766 0, 159, 0, 150, 151, 152, 153, 154, 155, 0,
1767 0, 77, 169, 170, 0, 171, 172, 82, 0, 0,
1768 156, 157, 158, 0, 0, 161, 162, 163, 164, 165,
1769 166, 0, 0, 0, 0, 0, 0, 0, 0, 167,
1770 0, 0, 0, 168, 159, 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, 161, 162,
1773 163, 164, 165, 166, -132, 0, 0, 0, 0, -132,
1774 0, 0, 167, 0, 0, 0, 168, 0, 0, 0,
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1776 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1777 0, 0, 0, 0, 77, 169, 170, 0, 171, 172,
1778 82, 0, 0, 0, 0, 0, 4, 0, 0, 0,
1779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1781 0, 0, 0, -533, 0, 0, 0, 77, 169, 170,
1782 0, 171, 172, 82, 11, 12, 13, 0, 14, 15,
1783 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1784 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1785 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1786 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1787 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1788 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1789 75, 76, 0, 0, 0, 0, 0, 0, 0, 0,
1790 131, 80, 11, 12, 13, 83, 14, 15, 16, 17,
1791 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1792 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1793 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1794 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1795 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1796 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1797 -673, 0, 0, 0, 0, 0, 0, 0, 131, 80,
1798 0, 0, 0, 83, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801 0, 0, 0, 0, 0, -675, -675, -675, 0, 0,
1802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1803 0, 0, 0, 0, -675, 0, 0, 0, 0, 0,
1804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1805 0, 0, 0, 0, 0, 0, 0, -675, -675, -675,
1806 0, -675, -675, -675, -675, -675, -675, -675, -675, -675,
1807 -675, 0, -675, -675, -675, -675, -675, -675, -675, -675,
1808 -675, -675, -675, -675, -675, -675, -675, -675, -675, -675,
1809 -675, -675, -675, -675, -675, -675, -675, -675, -675, -675,
1810 -675, -675, -675, -675, -675, -675, -675, -675, -675, -675,
1811 -675, -675, -675, -675, -675, -675, -675, -675, -675, -675,
1812 -675, -675, -675, -675, -675, 0, 0, 0, 0, 0,
1813 791, 0, 0, 0, -675, 303, 0, 0, -675, 0,
1814 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1815 0, 0, 0, 0, 0, 0, 0, 156, 157, 158,
1816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1818 0, 159, 0, 0, 0, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1821 0, 0, 0, 0, -266, 0, 0, 0, 0, 0,
1822 0, 0, 0, 168, 2, 303, 0, 0, 598, 0,
1823 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 156, 157, 158,
1825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1827 0, 159, 0, 0, 0, 0, 0, 0, 0, 0,
1828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1829 0, 0, 0, 0, 77, 304, 305, 0, 171, 11,
1830 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1831 21, 22, 23, 168, 24, 25, 26, 27, 28, 29,
1832 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1833 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1834 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1835 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1836 70, 71, 72, 73, 74, 75, 76, 0, 0, 0,
1837 0, 0, 0, 77, 78, 79, 80, 0, 81, 82,
1838 83, 0, 0, 0, 77, 304, 305, 303, 171, 0,
1839 679, 0, 150, 151, 152, 153, 154, 155, 303, 937,
1840 0, 0, 0, 150, 151, 152, 153, 154, 155, 156,
1841 157, 158, 0, 0, 0, 0, 0, 0, 303, -248,
1842 156, 157, 158, 150, 151, 152, 153, 154, 155, 0,
1843 0, 0, 0, 159, 0, 0, 0, 0, 0, 0,
1844 156, 157, 158, 303, 159, 0, 0, 0, 150, 151,
1845 152, 153, 154, 155, 0, 0, 0, 0, 0, 0,
1846 0, 0, 0, 0, 159, 156, 157, 158, 0, 0,
1847 0, 0, 332, 0, 0, 168, 0, 150, 151, 152,
1848 153, 154, 155, 0, 0, 0, 168, 0, 0, 159,
1849 0, 0, 621, 0, 156, 157, 158, 150, 151, 152,
1850 153, 154, 155, 623, 0, 0, 168, 0, 150, 151,
1851 152, 153, 154, 155, 156, 157, 158, 0, 159, 0,
1852 0, 0, 0, 0, 0, 156, 157, 158, 0, 0,
1853 0, 168, 0, 0, 0, 0, 0, 0, 159, 0,
1854 0, 0, 0, 0, 0, 0, 77, 304, 305, 159,
1855 171, 0, 0, 0, 0, 0, 0, 77, 304, 305,
1856 168, 171, 697, 0, 0, 0, 0, 698, 699, 700,
1857 701, 702, 703, 0, 0, 0, 0, 77, 304, 305,
1858 168, 171, 0, 0, 156, 704, 705, 0, 0, 0,
1859 0, 168, 0, 0, 0, 0, 0, 0, 0, 0,
1860 0, 0, 77, 304, 305, 0, 171, 0, 706, 0,
1861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1863 0, 77, 304, 305, 0, 171, 0, 0, 0, 0,
1864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1865 168, 77, 304, 305, 0, 171, 0, 0, 0, -192,
1866 -192, 0, 77, 304, 305, 0, 171, 0, 0, 0,
1867 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1872 0, 77, 707, 708, 0, 171, 11, 12, 13, 0,
1873 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1874 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1875 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1876 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1877 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1878 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1879 73, 74, 75, 76, 3, 0, 0, 0, 0, 0,
1880 0, 0, 131, 80, 0, 0, 0, 83, 0, 0,
1881 0, 0, 0, 0, 0, 0, -398, -398, -398, 0,
1882 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1885 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1886 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1887 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1888 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1889 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1890 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1891 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1892 71, 72, 73, 74, 75, 76, 3, 0, 0, 0,
1893 0, 0, 0, 0, 131, 80, 0, 0, 0, 83,
1894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1895 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
1896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1899 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1900 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1901 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1902 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1903 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1904 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1905 69, 70, 71, 72, 73, 74, 75, 76, 3, 0,
1906 0, 0, 0, 0, 77, 1046, 131, 80, 0, 0,
1907 0, 83, 0, 0, 0, 0, 0, 0, 0, 0,
1908 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
1909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1912 0, 0, 11, 12, 13, 0, 14, 15, 16, 17,
1913 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1914 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1915 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1916 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1917 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1918 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1919 -398, -398, -398, 0, 0, 0, 0, 0, 131, 80,
1920 0, 0, 0, 83, 0, 0, 0, 0, 0, 0,
1921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1923 0, 0, 11, 12, 13, 0, 14, 15, 16, 17,
1924 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1925 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1926 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1927 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1928 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1929 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1930 8, 9, 10, 0, 0, 0, 0, 0, 131, 80,
1931 0, 0, 0, 83, 0, 0, 0, 0, 0, 11,
1932 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1933 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1934 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1935 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1936 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1937 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1938 70, 71, 72, 73, 74, 75, 76, 0, 0, 0,
1939 0, 0, 0, 0, 0, 131, 80, 11, 12, 13,
1940 83, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1941 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1942 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1943 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1944 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1945 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1946 72, 73, 74, 75, 76, 0, 0, 0, 0, 0,
1947 0, 0, 0, 131, 80, 0, 0, 0, 83
1950 static const short yycheck[] = { 0,
1951 137, 295, 3, 441, 117, 388, 7, 8, 9, 10,
1952 343, 596, 0, 425, 631, 2, 530, 278, 378, 379,
1953 473, 380, 381, 389, 382, 383, 384, 385, 528, 19,
1954 21, 227, 631, 8, 25, 0, 791, 631, 631, 794,
1955 18, 27, 386, 387, 216, 451, 24, 906, 539, 221,
1956 654, 223, 797, 5, 390, 669, 34, 886, 803, 471,
1957 600, 635, 258, 235, 913, 556, 297, 0, 894, 426,
1958 687, 5, 24, 28, 486, 1058, 1059, 34, 21, 87,
1959 88, 21, 34, 84, 27, 24, 5, 27, 687, 44,
1960 24, 25, 26, 687, 687, 34, 84, 8, 22, 21,
1961 34, 19, 26, 25, 28, 28, 25, 86, 24, 117,
1962 118, 9, 10, 49, 50, 24, 117, 631, 34, 84,
1963 44, 44, 21, 131, 41, 34, 25, 49, 50, 5,
1964 0, 631, 133, 3, 21, 5, 18, 124, 25, 56,
1965 1123, 681, 29, 144, 899, 41, 133, 756, 149, 25,
1966 18, 84, 109, 110, 53, 54, 985, 986, 32, 33,
1967 56, 1020, 771, 1022, 1013, 24, 167, 21, 580, 995,
1968 996, 25, 917, 687, 149, 21, 582, 781, 9, 10,
1969 784, 18, 756, 797, 21, 39, 24, 687, 25, 803,
1970 602, 782, 193, 183, 184, 185, 187, 771, 188, 189,
1971 201, 187, 203, 399, 205, 183, 184, 208, 150, 151,
1972 152, 153, 154, 155, 84, 216, 8, 478, 193, 672,
1973 221, 452, 223, 24, 581, 558, 201, 1056, 98, 26,
1974 205, 183, 184, 208, 235, 236, 237, 34, 149, 109,
1975 110, 1067, 18, 1069, 183, 184, 21, 23, 631, 421,
1976 25, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1977 75, 635, 237, 133, 24, 631, 0, 183, 184, 3,
1978 1025, 631, 631, 631, 183, 184, 277, 11, 12, 280,
1979 281, 282, 193, 577, 883, 24, 21, 631, 425, 277,
1980 25, 5, 107, 294, 205, 631, 111, 208, 113, 300,
1981 115, 562, 24, 917, 687, 120, 294, 183, 184, 185,
1982 18, 644, 188, 189, 905, 130, 907, 132, 216, 18,
1983 21, 687, 21, 221, 25, 223, 237, 687, 687, 687,
1984 22, 32, 33, 995, 471, 322, 18, 235, 236, 21,
1985 925, 23, 34, 687, 345, 606, 1172, 635, 18, 486,
1986 84, 687, 353, 18, 355, 972, 21, 149, 635, 174,
1987 621, 814, 623, 24, 878, 99, 100, 101, 102, 103,
1988 104, 105, 106, 972, 108, 787, 876, 111, 972, 972,
1989 635, 921, 756, 117, 18, 216, 24, 21, 26, 16,
1990 221, 25, 223, 127, 128, 129, 34, 771, 399, 133,
1991 8, 193, 21, 16, 235, 236, 25, 903, 18, 201,
1992 906, 21, 1074, 205, 21, 149, 208, 1079, 25, 24,
1993 421, 26, 156, 21, 399, 16, 427, 25, 429, 34,
1994 49, 50, 16, 375, 376, 377, 697, 26, 439, 28,
1995 441, 429, 443, 580, 21, 237, 261, 15, 25, 99,
1996 451, 321, 417, 454, 1053, 44, 29, 458, 972, 25,
1997 26, 22, 28, 428, 451, 602, 1128, 22, 756, 183,
1998 184, 185, 972, 288, 188, 189, 291, 21, 44, 756,
1999 22, 25, 216, 771, 299, 5, 39, 302, 399, 490,
2000 873, 183, 184, 185, 771, 40, 188, 189, 499, 500,
2001 5, 756, 19, 863, 864, 25, 865, 866, 874, 867,
2002 868, 869, 870, 53, 54, 0, 771, 26, 3, 28,
2003 254, 1120, 7, 421, 1020, 21, 1022, 871, 872, 25,
2004 25, 26, 21, 28, 476, 44, 25, 538, 539, 875,
2005 24, 149, 26, 277, 278, 546, 280, 281, 5, 44,
2006 37, 38, 553, 49, 50, 556, 557, 21, 546, 672,
2007 294, 25, 432, 538, 51, 52, 300, 24, 26, 303,
2008 28, 21, 21, 55, 539, 25, 25, 34, 183, 184,
2009 185, 582, 93, 188, 189, 193, 44, 93, 322, 972,
2010 421, 556, 886, 201, 24, 582, 26, 205, 931, 84,
2011 208, 416, 18, 22, 21, 21, 972, 399, 25, 343,
2012 22, 426, 972, 972, 972, 187, 431, 25, 25, 26,
2013 28, 436, 24, 438, 5, 919, 627, 628, 972, 237,
2014 631, 446, 117, 21, 93, 450, 972, 25, 639, 640,
2015 24, 642, 26, 24, 25, 26, 1099, 1085, 133, 18,
2016 787, 34, 21, 34, 18, 22, 657, 21, 659, 144,
2017 19, 49, 50, 183, 184, 185, 20, 668, 188, 189,
2018 671, 672, 673, 8, 9, 10, 42, 43, 183, 184,
2019 185, 26, 416, 188, 189, 672, 687, 981, 18, 34,
2020 677, 21, 829, 21, 21, 429, 990, 25, 25, 93,
2021 34, 814, 436, 86, 438, 24, 440, 441, 27, 443,
2022 25, 26, 24, 28, 448, 34, 1010, 451, 24, 589,
2023 26, 21, 179, 180, 458, 25, 183, 184, 18, 44,
2024 187, 21, 1026, 6, 7, 1147, 470, 37, 38, 473,
2025 27, 475, 18, 21, 478, 24, 538, 25, 27, 21,
2026 21, 51, 52, 25, 25, 34, 698, 699, 700, 701,
2027 702, 703, 18, 21, 18, 21, 581, 25, 1062, 1181,
2028 21, 20, 21, 774, 25, 1036, 183, 184, 185, 37,
2029 38, 188, 189, 18, 21, 600, 24, 1081, 25, 23,
2030 605, 399, 277, 51, 52, 280, 281, 282, 21, 22,
2031 183, 184, 183, 184, 185, 188, 189, 188, 189, 294,
2032 32, 33, 546, 814, 149, 300, 22, 632, 21, 634,
2033 24, 18, 25, 824, 25, 559, 25, 814, 562, 24,
2034 34, 18, 21, 24, 18, 26, 25, 28, 183, 184,
2035 185, 575, 576, 188, 189, 34, 35, 36, 582, 183,
2036 184, 185, 18, 44, 188, 189, 47, 48, 193, 49,
2037 50, 24, 24, 26, 183, 184, 201, 601, 187, 9,
2038 205, 34, 606, 208, 21, 21, 37, 38, 25, 25,
2039 21, 216, 616, 617, 25, 886, 221, 621, 223, 623,
2040 51, 52, 21, 894, 709, 21, 25, 53, 54, 25,
2041 235, 236, 237, 18, 183, 184, 32, 33, 187, 779,
2042 18, 24, 782, 26, 648, 28, 19, 21, 860, 861,
2043 862, 25, 656, 21, 658, 20, 21, 25, 662, 663,
2044 538, 44, 21, 667, 47, 48, 25, 671, 672, 940,
2045 941, 20, 21, 677, 429, 34, 35, 36, 21, 764,
2046 765, 8, 25, 21, 439, 11, 441, 25, 443, 183,
2047 184, 185, 25, 697, 188, 189, 451, 89, 21, 454,
2048 21, 972, 25, 458, 25, 179, 180, 21, 22, 183,
2049 184, 796, 983, 187, 985, 986, 1099, 21, 137, 32,
2050 33, 25, 993, 935, 995, 996, 21, 67, 68, 69,
2051 25, 150, 151, 152, 153, 154, 155, 11, 157, 158,
2052 1147, 1012, 21, 21, 499, 500, 1017, 25, 983, 19,
2053 183, 184, 185, 1160, 19, 188, 189, 190, 1029, 1017,
2054 21, 1032, 19, 903, 25, 905, 906, 907, 34, 35,
2055 36, 1029, 1029, 777, 1181, 21, 203, 21, 19, 25,
2056 89, 25, 1053, 1054, 1055, 1056, 24, 1058, 1059, 109,
2057 110, 546, 27, 25, 399, 21, 1067, 22, 1069, 1070,
2058 34, 35, 36, 1074, 23, 1076, 1077, 21, 1079, 813,
2059 814, 18, 816, 24, 1085, 21, 421, 902, 11, 24,
2060 147, 25, 149, 51, 52, 53, 24, 582, 1099, 24,
2061 27, 25, 24, 23, 20, 19, 921, 20, 57, 58,
2062 59, 60, 61, 62, 63, 64, 65, 66, 19, 1120,
2063 1121, 1122, 1123, 23, 21, 27, 5, 1128, 8, 9,
2064 10, 25, 24, 22, 24, 20, 193, 25, 20, 72,
2065 27, 25, 18, 21, 201, 22, 27, 1148, 205, 24,
2066 1020, 208, 1022, 25, 72, 73, 74, 75, 25, 216,
2067 1148, 79, 80, 81, 82, 83, 84, 85, 902, 25,
2068 25, 1172, 657, 39, 659, 909, 29, 40, 25, 184,
2069 237, 55, 89, 668, 89, 335, 671, 672, 345, 18,
2070 89, 89, 25, 89, 89, 25, 353, 24, 355, 25,
2071 1015, 25, 18, 538, 25, 18, 21, 187, 40, 359,
2072 18, 21, 23, 182, 364, 365, 366, 367, 368, 369,
2073 370, 371, 372, 373, 374, 24, 375, 376, 377, 378,
2074 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
2075 389, 390, 18, 89, 189, 395, 303, 22, 22, 21,
2076 21, 8, 9, 10, 311, 312, 313, 314, 22, 20,
2077 20, 8, 9, 10, 89, 27, 25, 25, 18, 149,
2078 427, 40, 191, 27, 1089, 332, 425, 25, 20, 20,
2079 1014, 27, 25, 1017, 0, 0, 343, 84, 300, 1172,
2080 894, 1141, 1070, 1044, 975, 1029, 984, 1031, 660, 1120,
2081 1012, 844, 1036, 360, 443, 1039, 1040, 769, 1148, 562,
2082 659, 657, 814, 193, 671, 124, 322, 10, 341, 236,
2083 1104, 201, 471, 490, 399, 205, 687, 476, 208, 814,
2084 972, -1, 23, 490, -1, -1, 216, 486, -1, 824,
2085 -1, 221, 399, 223, -1, -1, 1080, -1, -1, -1,
2086 407, 1085, -1, 1087, 1088, 235, 236, 237, -1, -1,
2087 -1, -1, -1, -1, 1179, 1099, 57, 58, 59, 60,
2088 61, 62, 63, 64, 65, 66, -1, -1, -1, 528,
2089 -1, 530, 539, 532, 533, -1, -1, -1, -1, -1,
2090 1124, -1, 149, -1, -1, -1, 8, 9, 10, 556,
2091 557, -1, 149, -1, -1, 8, 9, 10, -1, -1,
2092 1144, 1145, -1, 18, 1148, -1, -1, 1151, -1, 24,
2093 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2094 -1, 580, -1, -1, -1, -1, 193, -1, -1, -1,
2095 -1, 46, 47, 48, 201, -1, 193, -1, 205, -1,
2096 -1, 208, -1, 602, 201, 940, 941, -1, 205, 216,
2097 217, 208, -1, 613, 221, 70, 223, -1, -1, 216,
2098 627, 628, 529, -1, 221, -1, 223, -1, 235, 236,
2099 237, 538, 631, 640, -1, -1, -1, -1, 235, 236,
2100 237, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2101 -1, -1, -1, -1, -1, -1, -1, 112, -1, -1,
2102 -1, 661, -1, -1, -1, -1, 673, -1, -1, 399,
2103 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2104 -1, -1, 1017, -1, -1, -1, -1, 149, 687, 596,
2105 -1, 421, -1, -1, 1029, -1, 149, 1032, -1, 698,
2106 699, 700, 701, 702, 703, 704, 705, -1, -1, -1,
2107 -1, -1, -1, -1, 621, -1, 623, -1, -1, 1054,
2108 1055, -1, 629, -1, -1, -1, 633, -1, 183, 184,
2109 185, 193, 187, -1, -1, -1, -1, -1, -1, 201,
2110 193, 1076, 1077, 205, -1, -1, 208, -1, 201, -1,
2111 1085, 358, 205, -1, 216, 208, -1, -1, -1, 221,
2112 -1, 223, -1, 216, 1099, -1, -1, -1, 221, -1,
2113 223, -1, -1, 235, 236, 237, -1, -1, -1, 686,
2114 -1, -1, 235, 236, 237, -1, 1121, 1122, 787, -1,
2115 697, 791, 399, -1, 794, -1, -1, -1, -1, 8,
2116 9, 10, 399, -1, -1, -1, -1, -1, 538, -1,
2117 -1, -1, -1, 1148, 421, -1, -1, -1, -1, -1,
2118 -1, -1, -1, -1, 421, -1, -1, -1, -1, -1,
2119 829, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2120 -1, -1, -1, 843, 844, -1, -1, -1, -1, 849,
2121 850, 851, 852, 853, 854, 855, 856, 857, 858, 859,
2122 -1, 860, 861, 862, 863, 864, 865, 866, 867, 868,
2123 869, 870, 871, 872, 873, 874, 875, 876, 18, 878,
2124 -1, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2125 30, 31, 32, 33, 34, -1, -1, -1, -1, 899,
2126 19, 20, -1, -1, -1, 24, 46, 47, 48, -1,
2127 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2128 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2129 70, 538, -1, -1, -1, -1, 935, 399, 845, -1,
2130 149, 538, -1, -1, -1, -1, 399, -1, -1, -1,
2131 -1, 70, -1, -1, -1, -1, -1, -1, -1, 421,
2132 -1, -1, -1, -1, -1, -1, -1, -1, 421, -1,
2133 -1, -1, 112, 972, -1, -1, -1, -1, -1, -1,
2134 -1, -1, -1, -1, 193, -1, -1, -1, -1, -1,
2135 -1, -1, 201, 112, -1, -1, 205, -1, -1, 208,
2136 -1, -1, -1, -1, -1, -1, -1, 216, -1, -1,
2137 -1, -1, 221, -1, 223, -1, -1, -1, 925, -1,
2138 -1, -1, -1, -1, -1, 1025, 235, 236, 237, -1,
2139 -1, -1, 24, 25, -1, -1, -1, 29, 30, 31,
2140 32, 33, 34, 183, 184, 185, -1, 187, -1, -1,
2141 -1, -1, -1, -1, 46, 47, 48, -1, -1, -1,
2142 -1, -1, -1, 970, 183, 184, 185, -1, 187, -1,
2143 -1, -1, -1, -1, -1, -1, 538, -1, 70, -1,
2144 -1, -1, -1, -1, -1, 538, -1, -1, -1, 0,
2145 1, -1, 119, 120, 121, 122, -1, 124, -1, -1,
2146 -1, -1, 129, 130, -1, -1, 133, 134, -1, 136,
2147 137, 138, 139, 24, -1, -1, -1, -1, -1, -1,
2148 112, -1, -1, 34, 151, 152, -1, -1, -1, -1,
2149 -1, -1, -1, -1, 45, -1, -1, -1, -1, -1,
2150 -1, -1, -1, -1, -1, -1, -1, -1, 1147, 176,
2151 -1, -1, -1, -1, -1, -1, 67, 68, 69, 186,
2152 71, 1160, -1, -1, -1, 76, 77, 78, -1, -1,
2153 -1, -1, -1, -1, -1, -1, -1, -1, -1, 90,
2154 91, 92, 1181, -1, -1, -1, -1, -1, -1, -1,
2155 399, 183, 184, 185, -1, 187, -1, -1, 109, 110,
2156 111, -1, 113, 114, 115, 116, 117, 118, 119, 120,
2157 121, 122, 421, 124, 125, 126, 127, 128, 129, 130,
2158 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2159 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2160 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2161 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2162 171, 172, 173, 174, 175, 176, 0, 1, -1, -1,
2163 -1, -1, 183, 184, 185, 186, -1, 188, 189, 190,
2164 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2165 24, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2166 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2167 -1, 45, -1, -1, -1, -1, -1, -1, -1, -1,
2168 -1, -1, -1, -1, -1, -1, -1, -1, -1, 538,
2169 -1, -1, -1, 67, 68, 69, -1, 71, -1, -1,
2170 -1, -1, 76, 77, 78, -1, -1, -1, -1, -1,
2171 -1, -1, -1, -1, -1, -1, 90, 91, 92, -1,
2172 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2173 -1, -1, -1, -1, -1, 109, 110, 111, -1, 113,
2174 114, 115, 116, 117, 118, 119, 120, 121, 122, -1,
2175 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2176 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2177 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2178 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2179 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2180 174, 175, 176, -1, -1, -1, -1, -1, -1, 183,
2181 184, 185, 186, 1, 188, 189, 190, -1, 6, 7,
2182 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2183 18, 19, 20, -1, -1, -1, 24, -1, -1, -1,
2184 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2185 -1, -1, -1, -1, 42, 43, -1, 45, 46, 47,
2186 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2187 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
2188 68, 69, 70, 71, -1, -1, -1, -1, -1, -1,
2189 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2190 -1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
2191 98, 99, -1, -1, -1, -1, -1, -1, -1, -1,
2192 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2193 118, 119, 120, 121, 122, -1, 124, 125, 126, 127,
2194 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2195 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2196 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2197 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2198 168, 169, 170, 171, 172, 173, 174, 175, 176, -1,
2199 -1, -1, -1, -1, -1, 183, 184, 185, 186, 187,
2200 188, 189, 190, 1, -1, -1, -1, -1, 6, 7,
2201 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2202 18, 19, -1, -1, -1, -1, 24, -1, -1, -1,
2203 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2204 -1, -1, -1, -1, 42, 43, -1, -1, 46, 47,
2205 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2206 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
2207 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2208 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2209 -1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
2210 98, 99, -1, -1, -1, -1, -1, -1, -1, -1,
2211 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2212 118, 119, 120, 121, 122, -1, 124, 125, 126, 127,
2213 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2214 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2215 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2216 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2217 168, 169, 170, 171, 172, 173, 174, 175, 176, -1,
2218 -1, -1, -1, -1, -1, 183, 184, 185, 186, 187,
2219 188, 189, 190, 1, -1, -1, -1, -1, 6, 7,
2220 8, -1, -1, 11, 12, 13, 14, 15, 16, 17,
2221 18, 19, 20, -1, -1, -1, 24, -1, -1, -1,
2222 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2223 -1, -1, -1, -1, 42, 43, -1, -1, 46, 47,
2224 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2225 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
2226 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2227 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2228 -1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
2229 98, 99, -1, -1, -1, -1, -1, -1, -1, -1,
2230 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2231 118, 119, 120, 121, 122, -1, 124, 125, 126, 127,
2232 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2233 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2234 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2235 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2236 168, 169, 170, 171, 172, 173, 174, 175, 176, -1,
2237 -1, -1, -1, -1, -1, 183, 184, 185, 186, 187,
2238 188, 189, 190, 1, -1, -1, -1, -1, 6, 7,
2239 8, -1, -1, 11, 12, 13, 14, 15, 16, 17,
2240 18, 19, 20, -1, -1, -1, 24, 25, -1, -1,
2241 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2242 -1, -1, -1, -1, 42, 43, 1, -1, 46, 47,
2243 48, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2244 15, 16, 17, 18, 19, -1, -1, -1, -1, 24,
2245 -1, -1, 70, -1, 29, 30, 31, 32, 33, 34,
2246 -1, -1, -1, -1, -1, -1, -1, 42, 43, -1,
2247 -1, 46, 47, 48, -1, 93, 94, 95, 96, 97,
2248 98, 99, -1, -1, -1, -1, -1, -1, -1, -1,
2249 108, -1, -1, -1, 112, 70, -1, -1, -1, -1,
2250 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2251 -1, -1, -1, -1, -1, -1, -1, -1, 93, 94,
2252 95, 96, 97, 98, 99, -1, -1, -1, -1, -1,
2253 -1, -1, -1, 108, -1, -1, -1, 112, -1, -1,
2254 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2255 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2256 -1, -1, -1, -1, -1, 183, 184, 185, -1, 187,
2257 188, 189, -1, -1, 1, -1, -1, -1, -1, 6,
2258 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2259 17, 18, 19, -1, -1, -1, -1, 24, -1, -1,
2260 -1, -1, 29, 30, 31, 32, 33, 34, 183, 184,
2261 185, -1, 187, 188, 189, 42, 43, 1, -1, 46,
2262 47, 48, 6, 7, 8, -1, -1, 11, 12, 13,
2263 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2264 24, -1, -1, 70, -1, 29, 30, 31, 32, 33,
2265 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
2266 -1, -1, 46, 47, 48, -1, 93, 94, 95, 96,
2267 97, 98, 99, -1, -1, -1, -1, -1, -1, -1,
2268 -1, 108, -1, -1, -1, 112, 70, -1, -1, -1,
2269 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2270 -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
2271 94, 95, 96, 97, 98, 99, -1, -1, -1, -1,
2272 -1, -1, -1, -1, 108, -1, -1, -1, 112, -1,
2273 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2274 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2275 -1, -1, -1, -1, -1, -1, 183, 184, 185, -1,
2276 187, 188, 189, -1, -1, 1, -1, -1, -1, -1,
2277 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2278 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2279 -1, -1, -1, 29, 30, 31, 32, 33, 34, 183,
2280 184, 185, -1, 187, 188, 189, 42, 43, 1, -1,
2281 46, 47, 48, 6, 7, 8, -1, -1, 11, 12,
2282 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2283 -1, 24, -1, -1, 70, -1, 29, 30, 31, 32,
2284 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2285 43, -1, -1, 46, 47, 48, -1, -1, 94, 95,
2286 96, 97, 98, 99, -1, -1, -1, -1, -1, -1,
2287 -1, -1, 108, -1, -1, -1, 112, 70, -1, -1,
2288 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2289 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2290 -1, 94, 95, 96, 97, 98, 99, -1, -1, -1,
2291 -1, -1, -1, -1, -1, 108, -1, -1, -1, 112,
2292 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2293 19, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2294 29, 30, 31, 32, 33, 34, -1, 183, 184, 185,
2295 -1, 187, 188, 189, -1, -1, 1, 46, 47, 48,
2296 -1, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2297 15, 16, 17, 18, 19, -1, -1, -1, -1, 24,
2298 -1, 70, -1, -1, 29, 30, 31, 32, 33, 34,
2299 183, 184, 185, -1, 187, 188, 189, 42, 43, -1,
2300 -1, 46, 47, 48, -1, -1, -1, -1, -1, -1,
2301 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2302 -1, -1, -1, 112, -1, 70, -1, -1, -1, -1,
2303 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2304 -1, -1, -1, -1, -1, -1, -1, -1, -1, 94,
2305 95, 96, 97, 98, 99, -1, -1, -1, -1, -1,
2306 -1, -1, -1, 108, 6, 7, 8, 112, 10, 11,
2307 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2308 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2309 32, 33, 34, -1, 183, 184, 185, -1, 187, -1,
2310 42, 43, -1, 45, 46, 47, 48, -1, -1, -1,
2311 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2312 -1, -1, -1, -1, -1, -1, -1, -1, 70, 71,
2313 -1, -1, -1, -1, -1, -1, -1, -1, 183, 184,
2314 185, -1, 187, 188, 189, -1, -1, -1, -1, -1,
2315 -1, -1, 94, 95, 96, 97, 98, 99, -1, -1,
2316 -1, -1, -1, -1, -1, -1, 108, 109, 110, 111,
2317 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2318 122, -1, 124, 125, 126, 127, 128, 129, 130, 131,
2319 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2320 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2321 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2322 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2323 172, 173, 174, 175, 176, -1, -1, -1, -1, -1,
2324 -1, 183, 184, 185, 186, 187, 188, 189, 190, 6,
2325 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2326 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2327 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2328 -1, -1, -1, -1, -1, 42, 43, -1, 45, 46,
2329 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2330 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2331 -1, -1, -1, 70, 71, -1, -1, -1, -1, -1,
2332 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2333 -1, -1, -1, -1, -1, -1, -1, 94, 95, 96,
2334 97, 98, 99, -1, -1, -1, -1, -1, -1, -1,
2335 -1, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2336 117, 118, 119, 120, 121, 122, -1, 124, 125, 126,
2337 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2338 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2339 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2340 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2341 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2342 -1, -1, -1, -1, -1, -1, 183, 184, 185, 186,
2343 187, 188, 189, 190, 6, 7, 8, -1, 10, 11,
2344 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2345 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2346 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2347 42, 43, -1, 45, 46, 47, 48, -1, -1, -1,
2348 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2349 -1, -1, -1, -1, -1, -1, -1, -1, 70, 71,
2350 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2351 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2352 -1, -1, 94, 95, 96, 97, 98, 99, -1, -1,
2353 -1, -1, -1, -1, -1, -1, 108, 109, 110, 111,
2354 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2355 122, -1, 124, 125, 126, 127, 128, 129, 130, 131,
2356 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2357 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2358 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2359 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2360 172, 173, 174, 175, 176, -1, -1, -1, -1, -1,
2361 -1, 183, 184, 185, 186, 187, 188, 189, 190, 6,
2362 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2363 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2364 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2365 -1, -1, -1, -1, -1, -1, -1, -1, -1, 46,
2366 47, 48, 6, 7, 8, -1, 10, 11, 12, 13,
2367 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2368 24, -1, -1, 70, -1, 29, 30, 31, 32, 33,
2369 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2370 -1, -1, 46, 47, 48, -1, -1, 94, 95, 96,
2371 97, 98, 99, -1, -1, -1, -1, -1, -1, -1,
2372 -1, 108, -1, -1, -1, 112, 70, -1, -1, -1,
2373 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2374 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2375 94, 95, 96, 97, 98, 99, -1, -1, -1, -1,
2376 -1, -1, -1, -1, 108, 6, 7, 8, 112, 10,
2377 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2378 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2379 31, 32, 33, 34, -1, -1, 183, 184, 185, -1,
2380 187, 188, 189, -1, -1, 46, 47, 48, 6, 7,
2381 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2382 18, 19, 20, -1, -1, -1, 24, -1, -1, 70,
2383 -1, 29, 30, 31, 32, 33, 34, -1, -1, 183,
2384 184, 185, -1, 187, 188, 189, -1, -1, 46, 47,
2385 48, -1, -1, 94, 95, 96, 97, 98, 99, -1,
2386 -1, -1, -1, -1, -1, -1, -1, 108, -1, -1,
2387 -1, 112, 70, -1, -1, -1, -1, -1, -1, -1,
2388 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2389 -1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
2390 98, 99, -1, -1, -1, -1, -1, -1, -1, -1,
2391 108, 6, 7, 8, 112, 10, 11, 12, 13, 14,
2392 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2393 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2394 -1, -1, 183, 184, 185, -1, 187, 188, 189, -1,
2395 -1, 46, 47, 48, 6, 7, 8, -1, 10, 11,
2396 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2397 -1, -1, 24, -1, -1, 70, -1, 29, 30, 31,
2398 32, 33, 34, -1, -1, 183, 184, 185, -1, 187,
2399 188, 189, -1, -1, 46, 47, 48, -1, -1, 94,
2400 95, 96, 97, 98, 99, -1, -1, -1, -1, -1,
2401 -1, -1, -1, 108, -1, -1, -1, 112, 70, -1,
2402 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2403 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2404 -1, -1, 94, 95, 96, 97, 98, 99, -1, -1,
2405 -1, -1, -1, -1, -1, -1, 108, 6, 7, 8,
2406 112, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2407 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2408 29, 30, 31, 32, 33, 34, -1, -1, 183, 184,
2409 185, -1, 187, 188, 189, -1, -1, 46, 47, 48,
2410 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2411 16, 17, 18, 19, -1, -1, -1, -1, 24, -1,
2412 -1, 70, -1, 29, 30, 31, 32, 33, 34, -1,
2413 -1, 183, 184, 185, -1, 187, 188, 189, -1, -1,
2414 46, 47, 48, -1, -1, 94, 95, 96, 97, 98,
2415 99, -1, -1, -1, -1, -1, -1, -1, -1, 108,
2416 -1, -1, -1, 112, 70, -1, -1, -1, -1, -1,
2417 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2418 -1, -1, -1, -1, -1, -1, -1, -1, 94, 95,
2419 96, 97, 98, 99, 19, -1, -1, -1, -1, 24,
2420 -1, -1, 108, -1, -1, -1, 112, -1, -1, -1,
2421 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2422 45, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2423 -1, -1, -1, -1, 183, 184, 185, -1, 187, 188,
2424 189, -1, -1, -1, -1, -1, 71, -1, -1, -1,
2425 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2426 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2427 -1, -1, -1, 20, -1, -1, -1, 183, 184, 185,
2428 -1, 187, 188, 189, 109, 110, 111, -1, 113, 114,
2429 115, 116, 117, 118, 119, 120, 121, 122, -1, 124,
2430 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2431 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2432 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2433 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2434 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2435 175, 176, -1, -1, -1, -1, -1, -1, -1, -1,
2436 185, 186, 109, 110, 111, 190, 113, 114, 115, 116,
2437 117, 118, 119, 120, 121, 122, -1, 124, 125, 126,
2438 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2439 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2440 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2441 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2442 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2443 22, -1, -1, -1, -1, -1, -1, -1, 185, 186,
2444 -1, -1, -1, 190, -1, -1, -1, -1, -1, -1,
2445 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2446 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2447 -1, -1, -1, -1, -1, 67, 68, 69, -1, -1,
2448 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2449 -1, -1, -1, -1, 86, -1, -1, -1, -1, -1,
2450 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2451 -1, -1, -1, -1, -1, -1, -1, 109, 110, 111,
2452 -1, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2453 122, -1, 124, 125, 126, 127, 128, 129, 130, 131,
2454 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2455 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2456 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2457 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2458 172, 173, 174, 175, 176, -1, -1, -1, -1, -1,
2459 19, -1, -1, -1, 186, 24, -1, -1, 190, -1,
2460 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2461 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2462 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2463 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2464 -1, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2465 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2466 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2467 -1, -1, -1, -1, 24, -1, -1, -1, -1, -1,
2468 -1, -1, -1, 112, 34, 24, -1, -1, 27, -1,
2469 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2470 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2471 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2472 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2473 -1, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2475 -1, -1, -1, -1, 183, 184, 185, -1, 187, 109,
2476 110, 111, -1, 113, 114, 115, 116, 117, 118, 119,
2477 120, 121, 122, 112, 124, 125, 126, 127, 128, 129,
2478 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2479 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2480 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2481 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2482 170, 171, 172, 173, 174, 175, 176, -1, -1, -1,
2483 -1, -1, -1, 183, 184, 185, 186, -1, 188, 189,
2484 190, -1, -1, -1, 183, 184, 185, 24, 187, -1,
2485 27, -1, 29, 30, 31, 32, 33, 34, 24, 25,
2486 -1, -1, -1, 29, 30, 31, 32, 33, 34, 46,
2487 47, 48, -1, -1, -1, -1, -1, -1, 24, 25,
2488 46, 47, 48, 29, 30, 31, 32, 33, 34, -1,
2489 -1, -1, -1, 70, -1, -1, -1, -1, -1, -1,
2490 46, 47, 48, 24, 70, -1, -1, -1, 29, 30,
2491 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2492 -1, -1, -1, -1, 70, 46, 47, 48, -1, -1,
2493 -1, -1, 24, -1, -1, 112, -1, 29, 30, 31,
2494 32, 33, 34, -1, -1, -1, 112, -1, -1, 70,
2495 -1, -1, 24, -1, 46, 47, 48, 29, 30, 31,
2496 32, 33, 34, 24, -1, -1, 112, -1, 29, 30,
2497 31, 32, 33, 34, 46, 47, 48, -1, 70, -1,
2498 -1, -1, -1, -1, -1, 46, 47, 48, -1, -1,
2499 -1, 112, -1, -1, -1, -1, -1, -1, 70, -1,
2500 -1, -1, -1, -1, -1, -1, 183, 184, 185, 70,
2501 187, -1, -1, -1, -1, -1, -1, 183, 184, 185,
2502 112, 187, 24, -1, -1, -1, -1, 29, 30, 31,
2503 32, 33, 34, -1, -1, -1, -1, 183, 184, 185,
2504 112, 187, -1, -1, 46, 47, 48, -1, -1, -1,
2505 -1, 112, -1, -1, -1, -1, -1, -1, -1, -1,
2506 -1, -1, 183, 184, 185, -1, 187, -1, 70, -1,
2507 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2508 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2509 -1, 183, 184, 185, -1, 187, -1, -1, -1, -1,
2510 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2511 112, 183, 184, 185, -1, 187, -1, -1, -1, 42,
2512 43, -1, 183, 184, 185, -1, 187, -1, -1, -1,
2513 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2514 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2516 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2517 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2518 -1, 183, 184, 185, -1, 187, 109, 110, 111, -1,
2519 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2520 -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2521 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2522 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2523 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2524 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2525 173, 174, 175, 176, 45, -1, -1, -1, -1, -1,
2526 -1, -1, 185, 186, -1, -1, -1, 190, -1, -1,
2527 -1, -1, -1, -1, -1, -1, 67, 68, 69, -1,
2528 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2530 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2531 -1, -1, -1, -1, -1, -1, -1, -1, 109, 110,
2532 111, -1, 113, 114, 115, 116, 117, 118, 119, 120,
2533 121, 122, -1, 124, 125, 126, 127, 128, 129, 130,
2534 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2535 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2536 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2537 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2538 171, 172, 173, 174, 175, 176, 45, -1, -1, -1,
2539 -1, -1, -1, -1, 185, 186, -1, -1, -1, 190,
2540 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2541 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
2542 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2543 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2544 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2545 109, 110, 111, -1, 113, 114, 115, 116, 117, 118,
2546 119, 120, 121, 122, -1, 124, 125, 126, 127, 128,
2547 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2548 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2549 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2550 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2551 169, 170, 171, 172, 173, 174, 175, 176, 45, -1,
2552 -1, -1, -1, -1, 183, 184, 185, 186, -1, -1,
2553 -1, 190, -1, -1, -1, -1, -1, -1, -1, -1,
2554 -1, -1, -1, -1, 71, -1, -1, -1, -1, -1,
2555 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2556 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2557 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2558 -1, -1, 109, 110, 111, -1, 113, 114, 115, 116,
2559 117, 118, 119, 120, 121, 122, -1, 124, 125, 126,
2560 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2561 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2562 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2563 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2564 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2565 67, 68, 69, -1, -1, -1, -1, -1, 185, 186,
2566 -1, -1, -1, 190, -1, -1, -1, -1, -1, -1,
2567 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2569 -1, -1, 109, 110, 111, -1, 113, 114, 115, 116,
2570 117, 118, 119, 120, 121, 122, -1, 124, 125, 126,
2571 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2572 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2573 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2574 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2575 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2576 90, 91, 92, -1, -1, -1, -1, -1, 185, 186,
2577 -1, -1, -1, 190, -1, -1, -1, -1, -1, 109,
2578 110, 111, -1, 113, 114, 115, 116, 117, 118, 119,
2579 120, 121, 122, -1, 124, 125, 126, 127, 128, 129,
2580 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2581 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2582 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2583 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2584 170, 171, 172, 173, 174, 175, 176, -1, -1, -1,
2585 -1, -1, -1, -1, -1, 185, 186, 109, 110, 111,
2586 190, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2587 122, -1, 124, 125, 126, 127, 128, 129, 130, 131,
2588 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2589 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2590 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2591 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2592 172, 173, 174, 175, 176, -1, -1, -1, -1, -1,
2593 -1, -1, -1, 185, 186, -1, -1, -1, 190
2595 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2597 /* This file comes from bison-1.28. */
2599 /* Skeleton output parser for bison,
2600 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2602 This program is free software; you can redistribute it and/or modify
2603 it under the terms of the GNU General Public License as published by
2604 the Free Software Foundation; either version 2, or (at your option)
2607 This program is distributed in the hope that it will be useful,
2608 but WITHOUT ANY WARRANTY; without even the implied warranty of
2609 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2610 GNU General Public License for more details.
2612 You should have received a copy of the GNU General Public License
2613 along with this program; if not, write to the Free Software
2614 Foundation, Inc., 59 Temple Place - Suite 330,
2615 Boston, MA 02111-1307, USA. */
2617 /* As a special exception, when this file is copied by Bison into a
2618 Bison output file, you may use that output file without restriction.
2619 This special exception was added by the Free Software Foundation
2620 in version 1.24 of Bison. */
2622 /* This is the parser code that is written into each bison parser
2623 when the %semantic_parser declaration is not specified in the grammar.
2624 It was written by Richard Stallman by simplifying the hairy parser
2625 used when %semantic_parser is specified. */
2627 #ifndef YYSTACK_USE_ALLOCA
2629 #define YYSTACK_USE_ALLOCA
2630 #else /* alloca not defined */
2632 #define YYSTACK_USE_ALLOCA
2633 #define alloca __builtin_alloca
2634 #else /* not GNU C. */
2635 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
2636 #define YYSTACK_USE_ALLOCA
2638 #else /* not sparc */
2639 /* We think this test detects Watcom and Microsoft C. */
2640 /* This used to test MSDOS, but that is a bad idea
2641 since that symbol is in the user namespace. */
2642 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
2643 #if 0 /* No need for malloc.h, which pollutes the namespace;
2644 instead, just don't use alloca. */
2647 #else /* not MSDOS, or __TURBOC__ */
2649 /* I don't know what this was needed for, but it pollutes the namespace.
2650 So I turned it off. rms, 2 May 1997. */
2651 /* #include <malloc.h> */
2653 #define YYSTACK_USE_ALLOCA
2654 #else /* not MSDOS, or __TURBOC__, or _AIX */
2656 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
2657 and on HPUX 10. Eventually we can turn this on. */
2658 #define YYSTACK_USE_ALLOCA
2659 #define alloca __builtin_alloca
2662 #endif /* not _AIX */
2663 #endif /* not MSDOS, or __TURBOC__ */
2664 #endif /* not sparc */
2665 #endif /* not GNU C */
2666 #endif /* alloca not defined */
2667 #endif /* YYSTACK_USE_ALLOCA not defined */
2669 #ifdef YYSTACK_USE_ALLOCA
2670 #define YYSTACK_ALLOC alloca
2672 #define YYSTACK_ALLOC malloc
2675 /* Note: there must be only one dollar sign in this file.
2676 It is replaced by the list of actions, each action
2677 as one case of the switch. */
2679 #define yyerrok (yyerrstatus = 0)
2680 #define yyclearin (yychar = YYEMPTY)
2683 #define YYACCEPT goto yyacceptlab
2684 #define YYABORT goto yyabortlab
2685 #define YYERROR goto yyerrlab1
2686 /* Like YYERROR except do call yyerror.
2687 This remains here temporarily to ease the
2688 transition to the new meaning of YYERROR, for GCC.
2689 Once GCC version 2 has supplanted version 1, this can go. */
2690 #define YYFAIL goto yyerrlab
2691 #define YYRECOVERING() (!!yyerrstatus)
2692 #define YYBACKUP(token, value) \
2694 if (yychar == YYEMPTY && yylen == 1) \
2695 { yychar = (token), yylval = (value); \
2696 yychar1 = YYTRANSLATE (yychar); \
2701 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2705 #define YYERRCODE 256
2708 #define YYLEX yylex()
2714 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2716 #define YYLEX yylex(&yylval, &yylloc)
2718 #else /* not YYLSP_NEEDED */
2720 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2722 #define YYLEX yylex(&yylval)
2724 #endif /* not YYLSP_NEEDED */
2727 /* If nonreentrant, generate the variables here */
2731 int yychar; /* the lookahead symbol */
2732 YYSTYPE yylval; /* the semantic value of the */
2733 /* lookahead symbol */
2736 YYLTYPE yylloc; /* location data for the lookahead */
2740 int yynerrs; /* number of parse errors so far */
2741 #endif /* not YYPURE */
2744 int yydebug; /* nonzero means print parse trace */
2745 /* Since this is uninitialized, it does not stop multiple parsers
2749 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2752 #define YYINITDEPTH 200
2755 /* YYMAXDEPTH is the maximum size the stacks can grow to
2756 (effective only if the built-in stack extension method is used). */
2763 #define YYMAXDEPTH 10000
2766 /* Define __yy_memcpy. Note that the size argument
2767 should be passed with type unsigned int, because that is what the non-GCC
2768 definitions require. With GCC, __builtin_memcpy takes an arg
2769 of type size_t, but it can handle unsigned int. */
2771 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2772 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2773 #else /* not GNU C or C++ */
2776 /* This is the most reliable way to avoid incompatibilities
2777 in available built-in functions on various systems. */
2779 __yy_memcpy (to, from, count)
2784 register char *f = from;
2785 register char *t = to;
2786 register int i = count;
2792 #else /* __cplusplus */
2794 /* This is the most reliable way to avoid incompatibilities
2795 in available built-in functions on various systems. */
2797 __yy_memcpy (char *to, char *from, unsigned int count)
2799 register char *t = to;
2800 register char *f = from;
2801 register int i = count;
2812 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2813 into yyparse. The argument should have type void *.
2814 It should actually point to an object.
2815 Grammar actions can access the variable by casting it
2816 to the proper pointer type. */
2818 #ifdef YYPARSE_PARAM
2820 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2821 #define YYPARSE_PARAM_DECL
2822 #else /* not __cplusplus */
2823 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2824 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2825 #endif /* not __cplusplus */
2826 #else /* not YYPARSE_PARAM */
2827 #define YYPARSE_PARAM_ARG
2828 #define YYPARSE_PARAM_DECL
2829 #endif /* not YYPARSE_PARAM */
2831 /* Prevent warning if -Wstrict-prototypes. */
2833 #ifdef YYPARSE_PARAM
2834 int yyparse (void *);
2841 yyparse(YYPARSE_PARAM_ARG)
2844 register int yystate;
2846 register short *yyssp;
2847 register YYSTYPE *yyvsp;
2848 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2849 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2851 short yyssa[YYINITDEPTH]; /* the state stack */
2852 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2854 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2855 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2858 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2859 YYLTYPE *yyls = yylsa;
2862 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2864 #define YYPOPSTACK (yyvsp--, yyssp--)
2867 int yystacksize = YYINITDEPTH;
2868 int yyfree_stacks = 0;
2879 YYSTYPE yyval; /* the variable used to return */
2880 /* semantic values from the action */
2887 fprintf(stderr, "Starting parse\n");
2893 yychar = YYEMPTY; /* Cause a token to be read. */
2895 /* Initialize stack pointers.
2896 Waste one element of value and location stack
2897 so that they stay on the same level as the state stack.
2898 The wasted elements are never initialized. */
2906 /* Push a new state, which is found in yystate . */
2907 /* In all cases, when you get here, the value and location stacks
2908 have just been pushed. so pushing a state here evens the stacks. */
2913 if (yyssp >= yyss + yystacksize - 1)
2915 /* Give user a chance to reallocate the stack */
2916 /* Use copies of these so that the &'s don't force the real ones into memory. */
2917 YYSTYPE *yyvs1 = yyvs;
2918 short *yyss1 = yyss;
2920 YYLTYPE *yyls1 = yyls;
2923 /* Get the current used size of the three stacks, in elements. */
2924 int size = yyssp - yyss + 1;
2927 /* Each stack pointer address is followed by the size of
2928 the data in use in that stack, in bytes. */
2930 /* This used to be a conditional around just the two extra args,
2931 but that might be undefined if yyoverflow is a macro. */
2932 yyoverflow("parser stack overflow",
2933 &yyss1, size * sizeof (*yyssp),
2934 &yyvs1, size * sizeof (*yyvsp),
2935 &yyls1, size * sizeof (*yylsp),
2938 yyoverflow("parser stack overflow",
2939 &yyss1, size * sizeof (*yyssp),
2940 &yyvs1, size * sizeof (*yyvsp),
2944 yyss = yyss1; yyvs = yyvs1;
2948 #else /* no yyoverflow */
2949 /* Extend the stack our own way. */
2950 if (yystacksize >= YYMAXDEPTH)
2952 yyerror("parser stack overflow");
2964 if (yystacksize > YYMAXDEPTH)
2965 yystacksize = YYMAXDEPTH;
2966 #ifndef YYSTACK_USE_ALLOCA
2969 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
2970 __yy_memcpy ((char *)yyss, (char *)yyss1,
2971 size * (unsigned int) sizeof (*yyssp));
2972 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
2973 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
2974 size * (unsigned int) sizeof (*yyvsp));
2976 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
2977 __yy_memcpy ((char *)yyls, (char *)yyls1,
2978 size * (unsigned int) sizeof (*yylsp));
2980 #endif /* no yyoverflow */
2982 yyssp = yyss + size - 1;
2983 yyvsp = yyvs + size - 1;
2985 yylsp = yyls + size - 1;
2990 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2993 if (yyssp >= yyss + yystacksize - 1)
2999 fprintf(stderr, "Entering state %d\n", yystate);
3005 /* Do appropriate processing given the current state. */
3006 /* Read a lookahead token if we need one and don't already have one. */
3009 /* First try to decide what to do without reference to lookahead token. */
3011 yyn = yypact[yystate];
3015 /* Not known => get a lookahead token if don't already have one. */
3017 /* yychar is either YYEMPTY or YYEOF
3018 or a valid token in external form. */
3020 if (yychar == YYEMPTY)
3024 fprintf(stderr, "Reading a token: ");
3029 /* Convert token to internal form (in yychar1) for indexing tables with */
3031 if (yychar <= 0) /* This means end of input. */
3034 yychar = YYEOF; /* Don't call YYLEX any more */
3038 fprintf(stderr, "Now at end of input.\n");
3043 yychar1 = YYTRANSLATE(yychar);
3048 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3049 /* Give the individual parser a way to print the precise meaning
3050 of a token, for further debugging info. */
3052 YYPRINT (stderr, yychar, yylval);
3054 fprintf (stderr, ")\n");
3060 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3065 /* yyn is what to do for this token type in this state.
3066 Negative => reduce, -yyn is rule number.
3067 Positive => shift, yyn is new state.
3068 New state is final state => don't bother to shift,
3069 just return success.
3070 0, or most negative number => error. */
3085 /* Shift the lookahead token. */
3089 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3092 /* Discard the token being shifted unless it is eof. */
3093 if (yychar != YYEOF)
3101 /* count tokens shifted since error; after three, turn off error status. */
3102 if (yyerrstatus) yyerrstatus--;
3107 /* Do the default action for the current state. */
3110 yyn = yydefact[yystate];
3114 /* Do a reduction. yyn is the number of a rule to reduce with. */
3118 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3125 fprintf (stderr, "Reducing via rule %d (line %d), ",
3128 /* Print the symbols being reduced, and their result. */
3129 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3130 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3131 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3139 { context_checkGlobalScope (); ;
3142 { context_checkGlobalScope (); ;
3145 { uentry_clearDecl (); ;
3148 { uentry_clearDecl (); ;
3151 { uentry_clearDecl (); ;
3154 { uentry_clearDecl (); ;
3157 { uentry_clearDecl (); ;
3160 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3163 { uentry_clearDecl (); ;
3166 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3169 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3172 { context_enterFunctionHeader (); ;
3176 declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3177 context_exitFunctionHeader ();
3182 qtype qint = qtype_create (ctype_int);
3183 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3188 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3191 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3194 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3197 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3200 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3204 exprNode_findValue(yyvsp[-2].expr);
3205 if (exprNode_hasValue (yyvsp[-2].expr))
3207 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), exprNode_getLongValue (yyvsp[-2].expr)));
3211 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-5].ntyp)));
3216 { setCurrentParams (uentryList_missingParams); ;
3219 { /* need to support globals and modifies here! */
3220 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3221 uentryList_makeMissingParams ());
3223 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3224 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3226 /*drl 7/25/01 added*/
3227 setImplictfcnConstraints();
3231 { setCurrentParams (yyvsp[-1].entrylist); ;
3234 { setImplictfcnConstraints ();
3235 clearCurrentParams ();
3236 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3237 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3242 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3245 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3248 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3254 if (exprNode_hasValue (yyvsp[-2].expr)
3255 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3257 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3264 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3268 { setCurrentParams (uentryList_missingParams); ;
3272 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3273 uentryList_makeMissingParams ());
3275 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3276 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3281 { setCurrentParams (yyvsp[-1].entrylist); ;
3285 clearCurrentParams ();
3286 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3287 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3292 { setCurrentParams (yyvsp[-1].entrylist); ;
3295 { clearCurrentParams (); ;
3298 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3301 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3304 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3307 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3310 { exprChecks_checkEmptyMacroBody (); ;
3313 { clabstract_declareFunction (yyvsp[0].ntyp); ;
3316 { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3319 { cscanner_expectingMetaStateName (); ;
3322 { cscanner_clearExpectingMetaStateName ();
3323 yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo); ;
3326 { cscanner_expectingMetaStateName (); ;
3329 { cscanner_clearExpectingMetaStateName ();
3330 yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo); ;
3333 { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
3336 { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3339 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
3342 { yyval.conL = constraintList_single (yyvsp[0].con); ;
3346 yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
3347 DPRINTF(("Done BufConstraint1\n")); ;
3350 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3354 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3355 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3358 { yyval.conE = constraintExpr_makeTermsRef (yyvsp[0].sr);;
3361 { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
3364 { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
3367 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3370 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3376 t = cstring_toCharsSafe (exprNode_unparse($3));
3379 yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
3383 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3386 { yyval.sr = yyvsp[-1].sr; ;
3389 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3392 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3395 { yyval.funcclauselist = functionClauseList_new (); ;
3398 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3401 { yyval.funcclauselist = functionClauseList_new (); ;
3404 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3407 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3410 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3413 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3416 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3419 { yyval.funcclause = yyvsp[0].funcclause; ;
3422 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3425 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3428 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3431 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3434 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3437 { yyval.funcclause = yyvsp[0].funcclause; ;
3440 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3443 { yyval.globsclause = yyvsp[-1].globsclause; ;
3446 { setProcessingGlobalsList (); ;
3450 unsetProcessingGlobals ();
3451 yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset);
3455 { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
3458 { yyval.modsclause = yyvsp[-1].modsclause; ;
3462 context_setProtectVars (); enterParamsTemp ();
3463 sRef_setGlobalScopeSafe ();
3469 sRef_clearGlobalScopeSafe ();
3470 context_releaseVars ();
3471 yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
3475 { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
3478 { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
3481 { yyval.warnclause = warnClause_undefined; ;
3484 { yyval.warnclause = yyvsp[-1].warnclause; ;
3488 llassert (exprNode_knownStringValue (yyvsp[0].expr));
3489 yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr))));
3490 exprNode_free (yyvsp[0].expr);
3494 { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
3497 { yyval.globset = globSet_single (yyvsp[0].sr); ;
3500 { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
3503 { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3506 { yyval.tquallist = qualList_undefined; ;
3509 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3512 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3515 { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
3518 { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
3521 { yyval.typequal = qual_createUndef (); ;
3524 { yyval.typequal = qual_createKilled (); ;
3527 { yyval.typequal = qual_createOut (); ;
3530 { yyval.typequal = qual_createIn (); ;
3533 { yyval.typequal = qual_createPartial (); ;
3537 qtype qint = qtype_create (ctype_int);
3538 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3543 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3546 { checkDoneParams (); context_enterInnerContext (); ;
3550 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3551 context_exitInner (yyvsp[0].expr);
3555 { context_enterOldStyleScope (); ;
3558 { oldStyleDoneParams (); context_enterInnerContext (); ;
3562 exprNode_checkFunctionBody (yyvsp[0].expr);
3563 yyval.expr = yyvsp[0].expr; /* oldstyle */
3564 context_exitInner (yyvsp[0].expr);
3569 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3570 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3573 context_exitFunction ();
3577 { yyval.srset = yyvsp[-1].srset; ;
3580 { yyval.srset = sRefSet_new (); ;
3583 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3586 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3589 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3592 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3595 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3598 { yyval.sr = yyvsp[-1].sr; ;
3601 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3604 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3607 { yyval.sr = yyvsp[0].sr; ;
3610 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3613 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3616 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3619 { yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
3622 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3625 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3628 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3631 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3634 { yyval.sr = yyvsp[-1].sr; ;
3637 { cstring_markOwned (yyvsp[0].cname);
3638 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3641 { cstring_markOwned (yyvsp[0].cname);
3642 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3645 { yyval.srset = sRefSet_undefined ;
3648 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3649 else { yyval.srset = sRefSet_undefined; }
3653 { if (sRef_isValid (yyvsp[0].sr))
3655 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3659 yyval.srset = yyvsp[-2].srset;
3664 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3667 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3670 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3673 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3676 { yyval.expr = exprNode_makeError (); ;
3679 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3682 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3685 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
3688 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3691 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3694 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3697 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3700 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3703 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3706 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
3709 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3712 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3715 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3718 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3721 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3724 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3727 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3730 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3733 { yyval.expr = yyvsp[0].expr; ;
3736 { yyval.expr = yyvsp[0].expr; ;
3739 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3742 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3745 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3748 { context_setProtectVars (); ;
3751 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3754 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3757 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3760 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3763 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3766 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3769 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3772 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3775 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3778 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3781 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3784 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3787 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3790 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3793 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3796 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3799 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3802 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3805 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3808 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3811 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3814 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3817 { exprNode_produceGuards (yyvsp[-1].expr);
3818 context_enterAndClause (yyvsp[-1].expr);
3823 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3824 context_exitAndClause (yyval.expr, yyvsp[0].expr);
3829 exprNode_produceGuards (yyvsp[-1].expr);
3830 context_enterOrClause (yyvsp[-1].expr);
3835 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3836 context_exitOrClause (yyval.expr, yyvsp[0].expr);
3840 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3843 { context_enterFalseClause (yyvsp[-4].expr); ;
3846 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
3849 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3852 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3855 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3858 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3861 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3864 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3867 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3870 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3873 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3876 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3879 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3882 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
3885 { yyval.expr = exprNode_undefined; ;
3888 { yyval.expr = yyvsp[0].expr; ;
3891 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
3894 { yyval.expr = exprNode_makeError (); ;
3897 { yyval.expr = exprNode_makeError (); ;
3901 setProcessingVars (yyvsp[-3].qtyp);
3902 processNamedDecl (yyvsp[-1].ntyp);
3907 unsetProcessingVars ();
3908 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp);
3909 DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
3913 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
3916 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
3917 unsetProcessingVars ();
3922 processNamedDecl (yyvsp[-1].ntyp);
3923 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
3927 { processNamedDecl (yyvsp[-2].ntyp); ;
3930 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
3933 { setProcessingTypedef (yyvsp[0].qtyp); ;
3936 { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
3939 { /* in the ANSI grammar, semantics unclear */ ;
3942 { /* in the ANSI grammar, semantics unclear */ ;
3945 { g_expectingTypeName = TRUE; ;
3948 { g_expectingTypeName = TRUE; context_pushLoc (); ;
3951 { yyval.exprlist = yyvsp[-1].exprlist; ;
3954 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3957 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
3960 { yyval.expr = exprNode_makeError (); ;
3963 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
3966 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); ;
3969 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); ;
3972 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3975 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
3978 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
3981 { yyval.typequal = qual_createInline (); ;
3984 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
3987 { yyval.typequal = qual_createAuto (); ;
3990 { yyval.typequal = qual_createRegister (); ;
3993 { yyval.typequal = qual_createNullTerminated (); ;
3996 { yyval.stateclause = yyvsp[-1].stateclause; ;
4000 context_setProtectVars ();
4002 sRef_setGlobalScopeSafe ();
4008 sRef_clearGlobalScopeSafe ();
4009 context_releaseVars ();
4010 yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
4014 { yyval.funcclause = yyvsp[-1].funcclause; ;
4017 { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
4021 context_exitFunctionHeader ();
4022 context_setProtectVars ();
4024 sRef_setGlobalScopeSafe ();
4030 sRef_clearGlobalScopeSafe ();
4031 context_releaseVars ();
4032 yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
4037 context_setProtectVars ();
4039 sRef_setGlobalScopeSafe ();
4044 context_exitFunctionHeader ();
4046 sRef_clearGlobalScopeSafe ();
4047 context_releaseVars ();
4048 DPRINTF (("done optGlobBufConstraintsAux\n"));
4050 if (lltok_isEnsures (yyvsp[-4].tok))
4052 yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint);
4054 else if (lltok_isRequires (yyvsp[-4].tok))
4056 yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint);
4063 DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
4067 { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
4070 { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
4073 { yyval.typequal = qual_createExits (); ;
4076 { yyval.typequal = qual_createMayExit (); ;
4079 { yyval.typequal = qual_createTrueExit (); ;
4082 { yyval.typequal = qual_createFalseExit (); ;
4085 { yyval.typequal = qual_createNeverExit (); ;
4088 { yyval.typequal = qual_createChecked (); ;
4091 { yyval.typequal = qual_createCheckMod (); ;
4094 { yyval.typequal = qual_createUnchecked (); ;
4097 { yyval.typequal = qual_createCheckedStrict (); ;
4100 { yyval.typequal = qual_createOwned (); ;
4103 { yyval.typequal = qual_createDependent (); ;
4106 { yyval.typequal = qual_createYield (); ;
4109 { yyval.typequal = qual_createTemp (); ;
4112 { yyval.typequal = qual_createOnly (); ;
4115 { yyval.typequal = qual_createKeep (); ;
4118 { yyval.typequal = qual_createKept (); ;
4121 { yyval.typequal = qual_createShared (); ;
4124 { yyval.typequal = qual_createUnique (); ;
4127 { yyval.typequal = qual_createNull (); ;
4130 { yyval.typequal = qual_createIsNull (); ;
4133 { yyval.typequal = qual_createRelNull (); ;
4136 { yyval.typequal = qual_createNotNull (); ;
4139 { yyval.typequal = qual_createExposed (); ;
4142 { yyval.typequal = qual_createObserver (); ;
4145 { yyval.typequal = qual_createNullTerminated (); ;
4148 { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
4151 { yyval.typequal = qual_createReturned (); ;
4154 { yyval.typequal = qual_createSef (); ;
4157 { yyval.typequal = qual_createUnused (); ;
4160 { yyval.typequal = qual_createExternal (); ;
4163 { yyval.typequal = qual_createTrueNull (); ;
4166 { yyval.typequal = qual_createFalseNull (); ;
4169 { yyval.typequal = qual_createAbstract (); ;
4172 { yyval.typequal = qual_createConcrete (); ;
4175 { yyval.typequal = qual_createMutable (); ;
4178 { yyval.typequal = qual_createImmutable (); ;
4181 { yyval.typequal = qual_createRefCounted (); ;
4184 { yyval.typequal = qual_createRefs (); ;
4187 { yyval.typequal = qual_createKillRef (); ;
4190 { yyval.typequal = qual_createRelDef (); ;
4193 { yyval.typequal = qual_createNewRef (); ;
4196 { yyval.typequal = qual_createTempRef (); ;
4199 { yyval.typequal = qual_createShort (); ;
4202 { yyval.typequal = qual_createLong (); ;
4205 { yyval.typequal = qual_createSigned (); ;
4208 { yyval.typequal = qual_createUnsigned (); ;
4211 { yyval.typequal = qual_createOut (); ;
4214 { yyval.typequal = qual_createIn (); ;
4217 { yyval.typequal = qual_createPartial (); ;
4220 { yyval.typequal = qual_createSpecial (); ;
4223 { yyval.typequal = qual_createConst (); ;
4226 { yyval.typequal = qual_createVolatile (); ;
4229 { yyval.typequal = yyvsp[-1].typequal; ;
4232 { yyval.typequal = yyvsp[-1].typequal; ;
4235 { yyval.typequal = yyvsp[-1].typequal; ;
4238 { yyval.typequal = yyvsp[-1].typequal; ;
4241 { yyval.typequal = yyvsp[-1].typequal; ;
4244 { yyval.typequal = yyvsp[-1].typequal; ;
4247 { yyval.typequal = yyvsp[-1].typequal; ;
4250 { yyval.typequal = yyvsp[-1].typequal; ;
4253 { yyval.typequal = yyvsp[-1].typequal; ;
4256 { yyval.ctyp = ctype_unknown; ;
4259 { yyval.ctyp = ctype_anyintegral; ;
4262 { yyval.ctyp = ctype_unsignedintegral; ;
4265 { yyval.ctyp = ctype_signedintegral; ;
4268 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4271 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4274 { yyval.qtyp = yyvsp[0].qtyp; ;
4277 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4280 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4283 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4286 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4289 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4292 { yyval.qtyp = qtype_unknown (); ;
4295 { yyval.qtyp = yyvsp[0].qtyp; ;
4298 { sRef_setGlobalScopeSafe (); ;
4301 { sRef_clearGlobalScopeSafe (); ;
4304 { yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ;
4307 { sRef_setGlobalScopeSafe (); ;
4310 { sRef_clearGlobalScopeSafe (); ;
4313 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4316 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4319 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4322 { sRef_setGlobalScopeSafe (); ;
4325 { sRef_clearGlobalScopeSafe (); ;
4328 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4331 { sRef_setGlobalScopeSafe (); ;
4334 { sRef_clearGlobalScopeSafe (); ;
4337 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4340 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4343 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4346 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4349 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4352 { g_expectingTypeName = FALSE; ;
4355 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4358 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4361 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4364 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4367 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4370 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4373 { yyval.ntyp = yyvsp[0].ntyp; ;
4376 { yyval.ntyp = idDecl_undefined; ;
4379 { yyval.ntyp = yyvsp[-3].ntyp; ;
4382 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4385 { context_pushLoc (); ;
4388 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4391 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4394 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4397 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4400 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4401 usymtab_supGlobalEntry (ue);
4402 yyval.cname = yyvsp[0].cname;
4406 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4407 usymtab_supGlobalEntry (ue);
4408 yyval.cname = yyvsp[-3].cname;
4412 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4416 qtype qt = qtype_unknown ();
4418 qtype_adjustPointers (yyvsp[-1].count, qt);
4419 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4423 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4426 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4429 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4432 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4435 { /* ignored for now */; ;
4447 { yyval.count = 1; ;
4450 { yyval.count = 1; ;
4453 { yyval.count = 1 + yyvsp[0].count; ;
4456 { yyval.count = 1 + yyvsp[0].count; ;
4459 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4462 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4465 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4468 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4471 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4477 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4483 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4487 if (isFlipOldStyle ())
4489 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4495 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4500 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4504 llparseerror (message ("Inconsistent function parameter syntax: %q",
4505 idDecl_unparse (tparam)));
4509 yyval.oentry = makeCurrentParam (tparam);
4510 idDecl_free (tparam);
4514 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4517 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4520 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4523 { yyval.ctyp = ctype_unknown; ;
4526 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4529 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4532 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4535 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4538 { yyval.ctyp = ctype_makeFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4541 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4544 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4547 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4550 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4553 { yyval.expr = yyvsp[0].expr; ;
4556 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4559 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4562 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4565 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4568 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4571 { context_setProtectVars (); ;
4574 { context_sizeofReleaseVars (); ;
4577 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4578 context_enterForClause (yyvsp[-5].expr); ;
4581 { setProcessingIterVars (yyvsp[-2].entry); ;
4584 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
4587 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4590 { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
4593 { yyval.expr = yyvsp[-1].expr; ;
4596 { yyval.expr = exprNode_makeError (); ;
4599 { /* don't: context_exitTrueClause ($1, $2); */
4600 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4604 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4607 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4610 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4613 { yyval.expr = exprNode_makeError (); ;
4616 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
4619 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4628 { context_enterCaseClause (yyvsp[0].expr); ;
4631 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4634 { context_enterCaseClause (yyvsp[0].expr); ;
4637 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4640 { context_enterCaseClause (exprNode_undefined); ;
4643 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
4646 { context_enterCaseClause (exprNode_undefined); ;
4649 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
4652 { yyval.expr = yyvsp[-1].expr; ;
4655 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4658 { yyval.expr = yyvsp[-1].expr; ;
4661 { context_enterInnerContext (); ;
4664 { context_exitInnerPlain (); ;
4667 { context_enterStructInnerContext (); ;
4670 { context_exitStructInnerContext (); ;
4673 { context_exitInnerSafe (); ;
4676 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4679 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4682 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4685 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4688 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4691 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4694 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4697 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
4698 lltok_getLoc (yyvsp[-1].tok)));
4702 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
4705 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4708 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4711 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4714 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4717 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4720 { yyval.expr = yyvsp[0].expr; ;
4723 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4726 { yyval.expr = yyvsp[0].expr; ;
4729 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4732 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4735 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4738 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4741 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4744 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
4747 { yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4751 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
4752 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4756 { context_enterFalseClause (yyvsp[-2].expr); ;
4760 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4761 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4765 { context_enterSwitch (yyvsp[0].expr); ;
4768 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
4771 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
4774 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
4777 { context_enterIterClause (); ;
4780 { setProcessingIterVars (yyvsp[-3].entry); ;
4784 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry);
4789 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4792 { nextIterParam (); ;
4795 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4798 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
4801 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
4804 { uentry ue = coerceIterId (yyvsp[0].cname);
4806 if (uentry_isValid (ue))
4808 yyval.expr = exprNode_iterId (ue);
4812 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
4817 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
4820 { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
4823 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4826 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4829 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4832 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
4835 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
4838 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4841 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4844 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4847 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4850 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4853 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4856 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4859 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4862 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4865 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4868 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4871 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4874 { yyval.expr = yyvsp[0].expr; ;
4877 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
4880 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4883 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4886 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4889 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4892 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4895 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4898 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4901 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4904 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4907 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4910 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4913 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4916 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4919 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4922 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4925 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4928 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4931 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4934 { context_enterTrueClause (yyvsp[-1].expr); ;
4937 { context_enterFalseClause (yyvsp[-4].expr); ;
4940 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
4943 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4946 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4949 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4952 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4955 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4958 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4961 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4964 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4967 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4970 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4973 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4976 { yyval.entry = yyvsp[0].entry; ;
4979 { yyval.entry = uentry_undefined; ;
4982 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
4985 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
4988 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
4991 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
4994 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
4997 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5000 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5003 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5006 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5009 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5012 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5015 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5018 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5021 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5024 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5027 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5030 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5033 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5039 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5042 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5045 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5048 { yyval.cname = yyvsp[0].cname; ;
5051 { yyval.ctyp = ctype_unknown; ;
5054 /* the action file gets copied in in place of this dollarsign */
5066 short *ssp1 = yyss - 1;
5067 fprintf (stderr, "state stack now");
5068 while (ssp1 != yyssp)
5069 fprintf (stderr, " %d", *++ssp1);
5070 fprintf (stderr, "\n");
5080 yylsp->first_line = yylloc.first_line;
5081 yylsp->first_column = yylloc.first_column;
5082 yylsp->last_line = (yylsp-1)->last_line;
5083 yylsp->last_column = (yylsp-1)->last_column;
5088 yylsp->last_line = (yylsp+yylen-1)->last_line;
5089 yylsp->last_column = (yylsp+yylen-1)->last_column;
5093 /* Now "shift" the result of the reduction.
5094 Determine what state that goes to,
5095 based on the state we popped back to
5096 and the rule number reduced by. */
5100 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5101 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5102 yystate = yytable[yystate];
5104 yystate = yydefgoto[yyn - YYNTBASE];
5108 yyerrlab: /* here on detecting error */
5111 /* If not already recovering from an error, report this error. */
5115 #ifdef YYERROR_VERBOSE
5116 yyn = yypact[yystate];
5118 if (yyn > YYFLAG && yyn < YYLAST)
5125 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5126 for (x = (yyn < 0 ? -yyn : 0);
5127 x < (sizeof(yytname) / sizeof(char *)); x++)
5128 if (yycheck[x + yyn] == x)
5129 size += strlen(yytname[x]) + 15, count++;
5130 msg = (char *) malloc(size + 15);
5133 strcpy(msg, "parse error");
5138 for (x = (yyn < 0 ? -yyn : 0);
5139 x < (sizeof(yytname) / sizeof(char *)); x++)
5140 if (yycheck[x + yyn] == x)
5142 strcat(msg, count == 0 ? ", expecting `" : " or `");
5143 strcat(msg, yytname[x]);
5152 yyerror ("parse error; also virtual memory exceeded");
5155 #endif /* YYERROR_VERBOSE */
5156 yyerror("parse error");
5160 yyerrlab1: /* here on error raised explicitly by an action */
5162 if (yyerrstatus == 3)
5164 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5166 /* return failure if at end of input */
5167 if (yychar == YYEOF)
5172 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5178 /* Else will try to reuse lookahead token
5179 after shifting the error token. */
5181 yyerrstatus = 3; /* Each real token shifted decrements this */
5185 yyerrdefault: /* current state does not do anything special for the error token. */
5188 /* This is wrong; only states that explicitly want error tokens
5189 should shift them. */
5190 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5191 if (yyn) goto yydefault;
5194 yyerrpop: /* pop the current state because it cannot handle the error token */
5196 if (yyssp == yyss) YYABORT;
5206 short *ssp1 = yyss - 1;
5207 fprintf (stderr, "Error: state stack now");
5208 while (ssp1 != yyssp)
5209 fprintf (stderr, " %d", *++ssp1);
5210 fprintf (stderr, "\n");
5216 yyn = yypact[yystate];
5221 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5240 fprintf(stderr, "Shifting error token, ");
5252 /* YYACCEPT comes here. */
5264 /* YYABORT comes here. */
5277 /*@-redecl@*/ /*@-namechecks@*/
5278 extern char *yytext;
5279 /*@=redecl@*/ /*@=namechecks@*/
5281 # include "bison.reset"
5283 void yyerror (/*@unused@*/ char *s)
5285 static bool givehint = FALSE;
5287 if (context_inIterDef ())
5289 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5290 context_inFunctionName ()));
5292 else if (context_inIterEnd ())
5294 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5295 context_inFunctionName ()));
5297 else if (context_inMacro ())
5299 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5300 context_inFunctionName ()));
5302 if (context_inUnknownMacro ())
5306 llhint (cstring_makeLiteral
5307 ("Precede macro definition with /*@notfunction@*/ "
5308 "to suppress checking and force expansion"));
5314 context_exitAllClausesQuiet ();
5318 llparseerror (cstring_undefined);
5334 ** Resets all flags in bison.head
5356 /*@=evalorderuncon@*/
5365 /*@=elseifcomplete@*/
5369 /*@=readonlytrans@*/
5372 /*@=systemunrecog@*/
5373 /*@=dependenttrans@*/
5374 /*@=unqualifiedtrans@*/
5378 /*drl added 11/27/2001*/
5380 /*@=arrayboundsread@*/