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
247 #line 24 "cgrammar.y"
253 ** Yacc/Bison grammar for extended ANSI C used by LCLint.
255 ** original grammar by Nate Osgood ---
256 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
258 ** changes for LCLint --- handle typedef names correctly
259 ** fix struct/union parsing bug (empty struct is accepted)
260 ** add productions to handle macros --- require
261 ** error correction --- main source of conflicts in grammar.
262 ** need to process initializations sequentially, L->R
264 ** production names are cryptic, so more productions fit on one line
266 ** conflicts: 87 shift/reduce, 18 reduce/reduce
267 ** most of these are due to handling macros
268 ** a few are due to handling type expressions
274 extern void swallowMacro (void);
275 extern void yyerror (char *);
277 # include "lclintMacros.nf"
279 # include "cscanner.h"
280 # include "cgrammar.h"
281 # include "exprChecks.h"
286 # define SHOWCSYM FALSE
289 ** This is necessary, or else when the bison-generated code #include's malloc.h,
290 ** there will be a parse error.
292 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
293 ** in bison-generated files under Win32.
303 #line 80 "cgrammar.y"
311 /*@dependent@*/ sRef sr;
314 /*@only@*/ functionClauseList funcclauselist;
315 /*@only@*/ functionClause funcclause;
316 /*@only@*/ flagSpec flagspec;
317 /*@only@*/ globalsClause globsclause;
318 /*@only@*/ modifiesClause modsclause;
319 /*@only@*/ warnClause warnclause;
320 /*@only@*/ stateClause stateclause;
322 /*@only@*/ functionConstraint fcnconstraint;
324 /*@only@*/ metaStateConstraint msconstraint;
325 /*@only@*/ metaStateSpecifier msspec;
326 /*@only@*/ metaStateExpression msexpr;
327 /*@observer@*/ metaStateInfo msinfo;
329 /*@only@*/ sRefList srlist;
330 /*@only@*/ globSet globset;
331 /*@only@*/ qtype qtyp;
332 /*@only@*/ cstring cname;
333 /*@observer@*/ annotationInfo annotation;
334 /*@only@*/ idDecl ntyp;
335 /*@only@*/ idDeclList ntyplist;
336 /*@only@*/ uentryList flist;
337 /*@owned@*/ uentryList entrylist;
338 /*@observer@*/ /*@dependent@*/ uentry entry;
339 /*@only@*/ uentry oentry;
340 /*@only@*/ exprNode expr;
341 /*@only@*/ enumNameList enumnamelist;
342 /*@only@*/ exprNodeList exprlist;
343 /*@only@*/ sRefSet srset;
344 /*@only@*/ cstringList cstringlist;
369 #define YYFLAG -32768
372 #define YYTRANSLATE(x) ((unsigned)(x) <= 445 ? yytranslate[x] : 447)
374 static const short yytranslate[] = { 0,
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, 2, 2, 2, 2, 2,
399 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
400 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
401 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
402 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
403 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
404 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
405 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
406 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
407 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
408 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
409 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
410 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
411 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
412 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
413 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
414 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
415 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
416 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
417 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
418 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
419 187, 188, 189, 190, 191
423 static const short yyprhs[] = { 0,
424 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
425 21, 23, 32, 44, 45, 51, 53, 57, 59, 62,
426 64, 71, 75, 82, 83, 90, 91, 99, 101, 108,
427 112, 119, 120, 127, 128, 136, 137, 138, 149, 153,
428 157, 161, 164, 166, 170, 171, 176, 177, 182, 184,
429 188, 190, 194, 196, 200, 202, 204, 206, 208, 210,
430 212, 217, 223, 225, 227, 229, 231, 235, 240, 243,
431 247, 251, 255, 257, 259, 261, 262, 265, 266, 269,
432 271, 273, 275, 277, 279, 281, 283, 285, 287, 289,
433 291, 293, 296, 297, 302, 304, 307, 308, 312, 314,
434 318, 320, 322, 323, 326, 330, 333, 335, 339, 342,
435 343, 346, 348, 350, 352, 354, 356, 358, 360, 362,
436 364, 366, 368, 370, 372, 374, 376, 378, 382, 383,
437 387, 388, 389, 394, 397, 400, 402, 404, 406, 410,
438 415, 418, 422, 426, 430, 432, 434, 436, 440, 442,
439 444, 448, 453, 456, 460, 464, 468, 469, 471, 473,
440 477, 479, 481, 483, 487, 489, 491, 493, 498, 502,
441 507, 514, 520, 526, 529, 532, 534, 538, 540, 543,
442 546, 549, 552, 555, 558, 561, 564, 566, 568, 572,
443 574, 584, 585, 589, 594, 597, 602, 605, 607, 612,
444 614, 618, 622, 626, 628, 632, 636, 638, 642, 646,
445 648, 652, 656, 660, 664, 666, 670, 674, 676, 680,
446 682, 686, 688, 692, 694, 695, 700, 702, 703, 708,
447 710, 711, 712, 720, 722, 726, 730, 734, 738, 742,
448 746, 750, 754, 758, 762, 766, 768, 772, 773, 775,
449 777, 779, 781, 783, 787, 788, 798, 799, 811, 814,
450 815, 822, 823, 832, 837, 842, 843, 844, 847, 849,
451 854, 855, 860, 862, 866, 871, 873, 877, 879, 881,
452 883, 885, 887, 890, 893, 894, 901, 904, 907, 908,
453 915, 916, 922, 924, 926, 928, 930, 932, 934, 936,
454 938, 940, 942, 944, 946, 948, 950, 952, 954, 956,
455 958, 960, 962, 964, 966, 968, 970, 972, 974, 976,
456 978, 980, 982, 984, 986, 988, 990, 992, 994, 996,
457 998, 1000, 1002, 1004, 1006, 1008, 1010, 1012, 1014, 1016,
458 1018, 1020, 1022, 1024, 1026, 1029, 1032, 1035, 1038, 1041,
459 1044, 1047, 1050, 1053, 1056, 1059, 1062, 1065, 1068, 1071,
460 1074, 1077, 1080, 1083, 1086, 1089, 1092, 1095, 1098, 1101,
461 1105, 1107, 1112, 1114, 1118, 1121, 1124, 1127, 1128, 1130,
462 1131, 1132, 1144, 1145, 1146, 1158, 1165, 1172, 1173, 1174,
463 1185, 1186, 1187, 1198, 1204, 1210, 1215, 1220, 1221, 1223,
464 1225, 1228, 1234, 1238, 1241, 1246, 1248, 1252, 1257, 1264,
465 1265, 1274, 1279, 1281, 1285, 1288, 1290, 1295, 1297, 1299,
466 1302, 1305, 1307, 1310, 1312, 1315, 1317, 1319, 1321, 1324,
467 1326, 1329, 1332, 1336, 1338, 1342, 1344, 1348, 1350, 1352,
468 1356, 1357, 1360, 1361, 1366, 1371, 1373, 1375, 1378, 1380,
469 1382, 1385, 1386, 1388, 1394, 1397, 1401, 1405, 1410, 1414,
470 1419, 1424, 1430, 1432, 1434, 1436, 1438, 1440, 1442, 1444,
471 1446, 1448, 1450, 1452, 1454, 1457, 1460, 1468, 1475, 1478,
472 1479, 1480, 1491, 1492, 1499, 1501, 1503, 1505, 1507, 1510,
473 1512, 1514, 1516, 1518, 1520, 1522, 1524, 1528, 1530, 1533,
474 1536, 1539, 1541, 1543, 1545, 1547, 1549, 1551, 1553, 1555,
475 1557, 1559, 1563, 1565, 1567, 1570, 1573, 1574, 1577, 1578,
476 1583, 1584, 1591, 1592, 1596, 1597, 1603, 1607, 1610, 1614,
477 1615, 1616, 1617, 1618, 1619, 1621, 1624, 1627, 1631, 1634,
478 1638, 1642, 1647, 1650, 1653, 1657, 1661, 1666, 1668, 1671,
479 1673, 1676, 1678, 1681, 1683, 1686, 1688, 1691, 1693, 1698,
480 1701, 1702, 1708, 1709, 1716, 1721, 1726, 1727, 1728, 1739,
481 1741, 1742, 1747, 1749, 1751, 1753, 1755, 1757, 1760, 1762,
482 1766, 1768, 1773, 1777, 1782, 1789, 1795, 1801, 1804, 1807,
483 1809, 1812, 1815, 1818, 1821, 1824, 1827, 1830, 1833, 1835,
484 1837, 1842, 1844, 1848, 1852, 1856, 1858, 1862, 1866, 1868,
485 1872, 1876, 1878, 1882, 1886, 1890, 1894, 1896, 1900, 1904,
486 1906, 1910, 1912, 1916, 1918, 1922, 1924, 1928, 1930, 1934,
487 1936, 1937, 1938, 1946, 1948, 1952, 1956, 1960, 1964, 1968,
488 1972, 1976, 1980, 1984, 1988, 1992, 1994, 1995, 1997, 2000,
489 2008, 2011, 2014, 2022, 2029, 2032, 2036, 2039, 2043, 2046,
490 2050, 2054, 2058, 2062, 2065, 2069, 2070, 2072, 2074, 2076,
491 2078, 2080, 2082, 2084, 2086
494 static const short yyrhs[] = { -1,
495 193, 0, 194, 0, 193, 194, 0, 254, 443, 0,
496 195, 0, 196, 0, 206, 0, 209, 0, 291, 0,
497 1, 0, 76, 329, 342, 352, 342, 443, 299, 89,
498 0, 76, 329, 342, 352, 342, 23, 299, 304, 303,
499 443, 89, 0, 0, 77, 197, 198, 443, 89, 0,
500 199, 0, 329, 342, 199, 0, 203, 0, 356, 203,
501 0, 445, 0, 299, 24, 342, 352, 299, 25, 0,
502 200, 26, 27, 0, 200, 26, 299, 290, 27, 342,
503 0, 0, 200, 300, 24, 25, 201, 226, 0, 0,
504 200, 300, 24, 353, 25, 202, 226, 0, 445, 0,
505 299, 24, 342, 199, 299, 25, 0, 203, 26, 27,
506 0, 203, 26, 299, 290, 27, 342, 0, 0, 203,
507 300, 24, 25, 204, 227, 0, 0, 203, 300, 24,
508 353, 25, 205, 227, 0, 0, 0, 78, 445, 24,
509 353, 25, 207, 227, 208, 443, 89, 0, 90, 382,
510 93, 0, 91, 369, 93, 0, 92, 370, 93, 0,
511 90, 93, 0, 249, 0, 212, 23, 215, 0, 0,
512 223, 213, 22, 216, 0, 0, 5, 214, 22, 216,
513 0, 212, 0, 212, 40, 215, 0, 191, 0, 218,
514 182, 217, 0, 218, 0, 221, 220, 221, 0, 179,
515 0, 180, 0, 52, 0, 51, 0, 53, 0, 222,
516 0, 224, 24, 221, 25, 0, 24, 221, 225, 221,
517 25, 0, 223, 0, 187, 0, 444, 0, 184, 0,
518 223, 26, 27, 0, 223, 26, 187, 27, 0, 34,
519 223, 0, 24, 223, 25, 0, 223, 28, 445, 0,
520 223, 44, 445, 0, 219, 0, 33, 0, 32, 0,
521 0, 228, 226, 0, 0, 229, 227, 0, 230, 0,
522 234, 0, 233, 0, 307, 0, 310, 0, 240, 0,
523 231, 0, 235, 0, 233, 0, 308, 0, 312, 0,
524 241, 0, 231, 89, 0, 0, 73, 232, 242, 443,
525 0, 75, 0, 235, 89, 0, 0, 74, 236, 255,
526 0, 238, 0, 238, 40, 237, 0, 184, 0, 240,
527 0, 0, 241, 89, 0, 72, 237, 419, 0, 72,
528 237, 0, 243, 0, 242, 21, 243, 0, 244, 245,
529 0, 0, 246, 244, 0, 444, 0, 184, 0, 291,
530 0, 87, 0, 88, 0, 117, 0, 118, 0, 131,
531 0, 79, 0, 80, 0, 81, 0, 82, 0, 83,
532 0, 84, 0, 85, 0, 352, 0, 329, 342, 352,
533 0, 0, 19, 251, 399, 0, 0, 0, 252, 403,
534 253, 392, 0, 210, 250, 0, 258, 443, 0, 443,
535 0, 444, 0, 184, 0, 256, 26, 27, 0, 256,
536 26, 257, 27, 0, 34, 256, 0, 24, 256, 25,
537 0, 256, 28, 445, 0, 256, 44, 445, 0, 256,
538 0, 419, 0, 256, 0, 258, 21, 256, 0, 444,
539 0, 184, 0, 259, 26, 27, 0, 259, 26, 257,
540 27, 0, 34, 259, 0, 24, 259, 25, 0, 259,
541 28, 445, 0, 259, 44, 445, 0, 0, 261, 0,
542 259, 0, 261, 21, 259, 0, 444, 0, 184, 0,
543 419, 0, 24, 288, 25, 0, 185, 0, 112, 0,
544 262, 0, 263, 26, 288, 27, 0, 263, 24, 25,
545 0, 263, 24, 264, 25, 0, 70, 24, 287, 21,
546 364, 25, 0, 263, 342, 28, 445, 299, 0, 263,
547 342, 44, 445, 299, 0, 263, 47, 0, 263, 48,
548 0, 287, 0, 264, 21, 287, 0, 263, 0, 47,
549 265, 0, 48, 265, 0, 29, 271, 0, 34, 271,
550 0, 33, 271, 0, 32, 271, 0, 31, 271, 0,
551 30, 271, 0, 268, 0, 267, 0, 266, 28, 445,
552 0, 445, 0, 46, 299, 24, 364, 342, 21, 266,
553 25, 299, 0, 0, 299, 269, 270, 0, 42, 24,
554 364, 25, 0, 42, 265, 0, 43, 24, 364, 25,
555 0, 43, 265, 0, 265, 0, 24, 364, 25, 271,
556 0, 271, 0, 272, 34, 271, 0, 272, 35, 271,
557 0, 272, 36, 271, 0, 272, 0, 273, 33, 272,
558 0, 273, 32, 272, 0, 273, 0, 274, 49, 273,
559 0, 274, 50, 273, 0, 274, 0, 275, 37, 274,
560 0, 275, 38, 274, 0, 275, 51, 274, 0, 275,
561 52, 274, 0, 275, 0, 276, 53, 275, 0, 276,
562 54, 275, 0, 276, 0, 277, 29, 276, 0, 277,
563 0, 278, 39, 277, 0, 278, 0, 279, 40, 278,
564 0, 279, 0, 0, 280, 55, 281, 279, 0, 280,
565 0, 0, 282, 56, 283, 280, 0, 282, 0, 0,
566 0, 282, 41, 285, 288, 22, 286, 284, 0, 284,
567 0, 265, 23, 287, 0, 265, 57, 287, 0, 265,
568 58, 287, 0, 265, 59, 287, 0, 265, 60, 287,
569 0, 265, 61, 287, 0, 265, 62, 287, 0, 265,
570 63, 287, 0, 265, 64, 287, 0, 265, 65, 287,
571 0, 265, 66, 287, 0, 287, 0, 288, 21, 287,
572 0, 0, 288, 0, 284, 0, 292, 0, 71, 0,
573 297, 0, 329, 299, 18, 0, 0, 329, 342, 352,
574 342, 293, 299, 303, 18, 299, 0, 0, 329, 342,
575 352, 342, 23, 294, 299, 304, 303, 18, 299, 0,
576 352, 342, 0, 0, 352, 342, 23, 296, 299, 304,
577 0, 0, 45, 329, 298, 342, 301, 299, 239, 18,
578 0, 45, 329, 299, 18, 0, 45, 301, 299, 18,
579 0, 0, 0, 302, 299, 0, 295, 0, 301, 21,
580 342, 295, 0, 0, 303, 21, 342, 295, 0, 287,
581 0, 19, 305, 20, 0, 19, 305, 21, 20, 0,
582 304, 0, 305, 21, 304, 0, 113, 0, 111, 0,
583 114, 0, 115, 0, 116, 0, 176, 299, 0, 308,
584 89, 0, 0, 247, 342, 309, 261, 443, 299, 0,
585 312, 89, 0, 248, 342, 0, 0, 311, 318, 313,
586 260, 443, 299, 0, 0, 311, 314, 315, 443, 299,
587 0, 217, 0, 211, 0, 140, 0, 141, 0, 143,
588 0, 144, 0, 142, 0, 125, 0, 128, 0, 126,
589 0, 127, 0, 133, 0, 134, 0, 119, 0, 121,
590 0, 120, 0, 129, 0, 130, 0, 122, 0, 124,
591 0, 137, 0, 139, 0, 152, 0, 151, 0, 136,
592 0, 138, 0, 176, 0, 186, 0, 135, 0, 150,
593 0, 149, 0, 159, 0, 157, 0, 158, 0, 153,
594 0, 154, 0, 155, 0, 156, 0, 160, 0, 161,
595 0, 164, 0, 165, 0, 162, 0, 163, 0, 148,
596 0, 145, 0, 146, 0, 147, 0, 117, 0, 118,
597 0, 131, 0, 132, 0, 109, 299, 0, 110, 299,
598 0, 325, 299, 0, 318, 299, 0, 316, 299, 0,
599 319, 299, 0, 317, 299, 0, 321, 299, 0, 320,
600 299, 0, 322, 299, 0, 323, 299, 0, 166, 342,
601 0, 168, 342, 0, 167, 342, 0, 169, 342, 0,
602 170, 342, 0, 171, 342, 0, 172, 342, 0, 173,
603 342, 0, 174, 342, 0, 175, 342, 0, 446, 342,
604 0, 333, 342, 0, 347, 342, 0, 324, 342, 0,
605 299, 329, 299, 0, 331, 0, 331, 86, 330, 89,
606 0, 364, 0, 364, 21, 330, 0, 306, 332, 0,
607 326, 332, 0, 327, 332, 0, 0, 329, 0, 0,
608 0, 342, 67, 445, 299, 19, 334, 396, 343, 397,
609 335, 20, 0, 0, 0, 342, 68, 445, 299, 19,
610 336, 396, 343, 397, 337, 20, 0, 342, 67, 445,
611 299, 19, 20, 0, 342, 68, 445, 299, 19, 20,
612 0, 0, 0, 342, 67, 299, 19, 338, 396, 343,
613 397, 339, 20, 0, 0, 0, 342, 68, 299, 19,
614 340, 396, 343, 397, 341, 20, 0, 342, 67, 299,
615 19, 20, 0, 342, 68, 299, 19, 20, 0, 342,
616 67, 445, 342, 0, 342, 68, 445, 342, 0, 0,
617 344, 0, 209, 0, 343, 344, 0, 329, 342, 345,
618 299, 18, 0, 329, 299, 18, 0, 346, 342, 0,
619 345, 21, 346, 342, 0, 352, 0, 22, 299, 290,
620 0, 352, 22, 299, 290, 0, 342, 69, 19, 349,
621 20, 299, 0, 0, 342, 69, 445, 19, 348, 349,
622 20, 299, 0, 342, 69, 445, 299, 0, 350, 0,
623 349, 21, 350, 0, 349, 21, 0, 445, 0, 445,
624 23, 299, 290, 0, 200, 0, 366, 0, 356, 190,
625 0, 356, 351, 0, 200, 0, 356, 200, 0, 359,
626 0, 342, 357, 0, 109, 0, 110, 0, 354, 0,
627 355, 354, 0, 34, 0, 34, 355, 0, 34, 356,
628 0, 34, 355, 356, 0, 358, 0, 358, 21, 5,
629 0, 445, 0, 358, 21, 445, 0, 5, 0, 360,
630 0, 360, 21, 5, 0, 0, 361, 363, 0, 0,
631 360, 21, 362, 363, 0, 299, 329, 351, 299, 0,
632 445, 0, 328, 0, 328, 365, 0, 356, 0, 367,
633 0, 356, 367, 0, 0, 367, 0, 299, 24, 342,
634 365, 25, 0, 26, 27, 0, 26, 290, 27, 0,
635 367, 26, 27, 0, 367, 26, 290, 27, 0, 299,
636 24, 25, 0, 299, 24, 359, 25, 0, 367, 299,
637 24, 25, 0, 367, 299, 24, 359, 25, 0, 384,
638 0, 386, 0, 389, 0, 392, 0, 405, 0, 408,
639 0, 440, 0, 413, 0, 442, 0, 371, 0, 369,
640 0, 378, 0, 371, 378, 0, 412, 371, 0, 439,
641 383, 11, 24, 288, 25, 18, 0, 439, 383, 11,
642 24, 288, 25, 0, 373, 378, 0, 0, 0, 13,
643 24, 289, 18, 289, 18, 374, 289, 375, 25, 0,
644 0, 188, 394, 24, 377, 416, 25, 0, 189, 0,
645 384, 0, 386, 0, 389, 0, 380, 403, 0, 380,
646 0, 381, 0, 405, 0, 379, 0, 372, 0, 376,
647 0, 442, 0, 24, 378, 25, 0, 1, 0, 407,
648 378, 0, 394, 19, 0, 398, 20, 0, 383, 0,
649 402, 0, 384, 0, 386, 0, 389, 0, 393, 0,
650 406, 0, 408, 0, 413, 0, 441, 0, 24, 383,
651 25, 0, 442, 0, 1, 0, 445, 22, 0, 108,
652 368, 0, 0, 99, 385, 0, 0, 6, 290, 387,
653 22, 0, 0, 99, 385, 6, 290, 388, 22, 0,
654 0, 7, 390, 22, 0, 0, 99, 385, 7, 391,
655 22, 0, 24, 392, 25, 0, 394, 400, 0, 394,
656 401, 395, 0, 0, 0, 0, 0, 0, 20, 0,
657 108, 20, 0, 404, 20, 0, 404, 108, 20, 0,
658 403, 20, 0, 403, 108, 20, 0, 403, 404, 20,
659 0, 403, 404, 108, 20, 0, 19, 399, 0, 19,
660 20, 0, 19, 402, 20, 0, 19, 403, 20, 0,
661 19, 403, 404, 20, 0, 383, 0, 402, 383, 0,
662 291, 0, 403, 291, 0, 368, 0, 404, 368, 0,
663 18, 0, 288, 18, 0, 18, 0, 288, 18, 0,
664 288, 0, 8, 24, 288, 25, 0, 407, 368, 0,
665 0, 407, 368, 9, 409, 368, 0, 0, 10, 24,
666 288, 410, 25, 368, 0, 11, 24, 288, 25, 0,
667 11, 24, 288, 25, 0, 0, 0, 188, 414, 394,
668 24, 415, 416, 25, 392, 438, 395, 0, 418, 0,
669 0, 416, 417, 21, 418, 0, 437, 0, 444, 0,
670 185, 0, 184, 0, 187, 0, 419, 187, 0, 419,
671 0, 24, 288, 25, 0, 420, 0, 263, 26, 288,
672 27, 0, 263, 24, 25, 0, 263, 24, 264, 25,
673 0, 70, 24, 287, 21, 364, 25, 0, 263, 342,
674 28, 445, 299, 0, 263, 342, 44, 445, 299, 0,
675 263, 47, 0, 263, 48, 0, 421, 0, 47, 265,
676 0, 48, 265, 0, 29, 271, 0, 34, 271, 0,
677 33, 271, 0, 32, 271, 0, 31, 271, 0, 30,
678 271, 0, 268, 0, 422, 0, 24, 364, 25, 271,
679 0, 423, 0, 272, 34, 271, 0, 272, 35, 271,
680 0, 272, 36, 271, 0, 424, 0, 273, 33, 272,
681 0, 273, 32, 272, 0, 425, 0, 274, 49, 273,
682 0, 274, 50, 273, 0, 426, 0, 275, 37, 274,
683 0, 275, 38, 274, 0, 275, 51, 274, 0, 275,
684 52, 274, 0, 427, 0, 276, 53, 275, 0, 276,
685 54, 275, 0, 428, 0, 277, 29, 276, 0, 429,
686 0, 278, 39, 277, 0, 430, 0, 279, 40, 278,
687 0, 431, 0, 280, 55, 279, 0, 432, 0, 282,
688 56, 280, 0, 433, 0, 0, 0, 282, 41, 435,
689 288, 22, 436, 284, 0, 434, 0, 265, 23, 287,
690 0, 265, 57, 287, 0, 265, 58, 287, 0, 265,
691 59, 287, 0, 265, 60, 287, 0, 265, 61, 287,
692 0, 265, 62, 287, 0, 265, 63, 287, 0, 265,
693 64, 287, 0, 265, 65, 287, 0, 265, 66, 287,
694 0, 189, 0, 0, 12, 0, 411, 368, 0, 439,
695 368, 11, 24, 288, 25, 18, 0, 373, 368, 0,
696 411, 383, 0, 439, 383, 11, 24, 288, 25, 18,
697 0, 439, 383, 11, 24, 288, 25, 0, 373, 383,
698 0, 14, 445, 18, 0, 15, 18, 0, 98, 15,
699 18, 0, 16, 18, 0, 94, 16, 18, 0, 95,
700 16, 18, 0, 96, 16, 18, 0, 97, 16, 18,
701 0, 17, 18, 0, 17, 288, 18, 0, 0, 18,
702 0, 183, 0, 184, 0, 188, 0, 189, 0, 444,
703 0, 185, 0, 190, 0, 185, 0
709 static const short yyrline[] = { 0,
710 318, 319, 322, 323, 326, 327, 328, 329, 330, 331,
711 332, 335, 337, 341, 341, 348, 354, 358, 359, 363,
712 364, 366, 368, 380, 383, 393, 396, 404, 405, 407,
713 409, 425, 428, 436, 439, 447, 449, 449, 453, 454,
714 455, 456, 459, 462, 466, 466, 469, 469, 474, 475,
715 478, 483, 484, 487, 492, 493, 496, 497, 498, 501,
716 502, 503, 508, 509, 512, 514, 516, 518, 527, 529,
717 531, 533, 549, 553, 554, 561, 562, 570, 572, 576,
718 577, 578, 579, 580, 581, 584, 585, 586, 587, 588,
719 589, 592, 595, 596, 603, 606, 609, 615, 623, 625,
720 629, 632, 633, 636, 639, 645, 649, 650, 653, 656,
721 657, 660, 661, 662, 665, 666, 667, 668, 669, 672,
722 673, 674, 675, 676, 679, 680, 683, 689, 693, 695,
723 699, 700, 702, 709, 719, 720, 723, 724, 725, 726,
724 727, 728, 729, 730, 734, 735, 739, 740, 743, 745,
725 747, 748, 749, 750, 751, 753, 757, 758, 761, 765,
726 777, 778, 779, 780, 781, 782, 785, 786, 787, 788,
727 789, 790, 791, 792, 793, 796, 797, 800, 801, 802,
728 803, 804, 805, 806, 807, 808, 809, 810, 813, 814,
729 817, 821, 822, 825, 826, 827, 828, 831, 832, 836,
730 837, 838, 839, 842, 843, 844, 847, 848, 849, 852,
731 853, 854, 855, 856, 859, 860, 861, 864, 865, 868,
732 869, 873, 874, 877, 878, 883, 889, 890, 896, 902,
733 903, 903, 905, 908, 909, 910, 911, 912, 913, 914,
734 915, 916, 917, 918, 919, 922, 923, 926, 927, 930,
735 935, 936, 937, 940, 954, 959, 965, 967, 973, 978,
736 978, 982, 983, 985, 986, 989, 992, 995, 998, 999,
737 1002, 1003, 1006, 1007, 1008, 1012, 1014, 1023, 1024, 1025,
738 1026, 1027, 1029, 1033, 1036, 1042, 1051, 1054, 1057, 1064,
739 1071, 1077, 1102, 1103, 1106, 1107, 1108, 1109, 1110, 1113,
740 1114, 1115, 1116, 1119, 1120, 1121, 1122, 1123, 1124, 1125,
741 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135,
742 1139, 1140, 1143, 1144, 1147, 1148, 1151, 1152, 1153, 1154,
743 1157, 1158, 1159, 1160, 1161, 1162, 1165, 1166, 1167, 1168,
744 1171, 1172, 1173, 1174, 1177, 1178, 1179, 1180, 1181, 1182,
745 1183, 1184, 1185, 1186, 1187, 1194, 1195, 1196, 1197, 1198,
746 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1210,
747 1214, 1215, 1219, 1220, 1224, 1225, 1226, 1229, 1230, 1233,
748 1235, 1237, 1238, 1240, 1242, 1243, 1245, 1247, 1249, 1251,
749 1252, 1253, 1256, 1257, 1259, 1261, 1262, 1265, 1268, 1269,
750 1270, 1273, 1275, 1279, 1281, 1285, 1286, 1287, 1291, 1293,
751 1293, 1295, 1298, 1300, 1302, 1305, 1310, 1317, 1318, 1319,
752 1326, 1330, 1331, 1335, 1336, 1339, 1340, 1343, 1344, 1347,
753 1348, 1349, 1350, 1353, 1354, 1357, 1358, 1361, 1362, 1363,
754 1366, 1366, 1367, 1368, 1371, 1383, 1399, 1400, 1403, 1404,
755 1405, 1408, 1409, 1412, 1414, 1415, 1417, 1418, 1420, 1422,
756 1424, 1426, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439,
757 1440, 1455, 1458, 1461, 1462, 1466, 1468, 1470, 1472, 1476,
758 1477, 1479, 1483, 1485, 1487, 1490, 1491, 1492, 1493, 1494,
759 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1505, 1511,
760 1514, 1517, 1518, 1521, 1522, 1523, 1524, 1525, 1526, 1527,
761 1528, 1529, 1530, 1531, 1534, 1535, 1542, 1543, 1549, 1550,
762 1551, 1552, 1555, 1556, 1557, 1558, 1561, 1562, 1566, 1569,
763 1572, 1575, 1578, 1581, 1584, 1585, 1586, 1587, 1589, 1590,
764 1592, 1594, 1600, 1604, 1606, 1608, 1610, 1614, 1615, 1618,
765 1619, 1622, 1623, 1626, 1627, 1630, 1631, 1632, 1635, 1643,
766 1648, 1649, 1653, 1654, 1657, 1662, 1665, 1666, 1667, 1675,
767 1676, 1676, 1680, 1681, 1682, 1693, 1700, 1701, 1704, 1705,
768 1708, 1709, 1710, 1711, 1712, 1714, 1715, 1716, 1717, 1720,
769 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1732,
770 1733, 1736, 1737, 1738, 1739, 1742, 1743, 1744, 1747, 1748,
771 1749, 1752, 1753, 1754, 1755, 1756, 1759, 1760, 1761, 1764,
772 1765, 1768, 1769, 1773, 1774, 1777, 1778, 1781, 1782, 1785,
773 1786, 1787, 1788, 1791, 1792, 1793, 1794, 1795, 1796, 1797,
774 1798, 1799, 1800, 1801, 1802, 1805, 1806, 1809, 1812, 1814,
775 1816, 1820, 1821, 1823, 1825, 1828, 1829, 1830, 1832, 1833,
776 1834, 1835, 1836, 1837, 1838, 1841, 1842, 1845, 1848, 1849,
777 1850, 1851, 1852, 1855, 1856
782 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
784 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
785 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
786 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
787 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
788 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
789 "TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP",
790 "DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP",
791 "MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
792 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
793 "VA_ARG","VA_DCL","QWARN","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION",
794 "QITER","QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
795 "QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND","TENDMACRO",
796 "QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE","QFALLTHROUGH",
797 "QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED","QPRINTFLIKE",
798 "QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST","QVOLATILE",
799 "QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT","QIN",
800 "QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED",
801 "QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED",
802 "QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT",
803 "QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT",
804 "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE",
805 "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF",
806 "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE",
807 "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED",
808 "QSETBUFFERSIZE","QSETSTRINGLENGTH","QMAXSET","QMAXREAD","QTESTINRANGE","TCAND",
809 "IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID","CANNOTATION","CCONSTANT","ITER_NAME",
810 "ITER_ENDNAME","TYPE_NAME","METASTATE_NAME","file","externalDefs","externalDef",
811 "constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2",
812 "@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
813 "metaStateConstraint","metaStateSpecifier","@8","@9","metaStateExpression","metaStateName",
814 "BufConstraintList","BufConstraint","bufferModifier","relationalOp","BufConstraintExpr",
815 "BufConstraintTerm","BufConstraintSrefExpr","BufUnaryOp","BufBinaryOp","functionClauses",
816 "functionClausesPlain","functionClause","functionClausePlain","globalsClause",
817 "globalsClausePlain","@10","nomodsClause","modifiesClause","modifiesClausePlain",
818 "@11","flagSpec","flagId","optWarnClause","warnClause","warnClausePlain","globIdList",
819 "globIdListExpr","optGlobQuals","globId","globQual","stateTag","conditionTag",
820 "fcnDefHdrAux","fcnBody","@12","@13","@14","fcnDef","locModifies","modListExpr",
821 "mExpr","modList","specClauseListExpr","optSpecClauseList","specClauseList",
822 "primaryExpr","postfixExpr","argumentExprList","unaryExpr","fieldDesignator",
823 "offsetofExpr","sizeofExpr","@15","sizeofExprAux","castExpr","timesExpr","plusExpr",
824 "shiftExpr","relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr",
825 "andExpr","@16","orExpr","@17","conditionalExpr","@18","@19","assignExpr","expr",
826 "optExpr","constantExpr","initializer","instanceDecl","@20","@21","namedInitializer",
827 "@22","typeDecl","@23","IsType","PushType","namedInitializerList","namedInitializerListAux",
828 "optDeclarators","init","initList","storageSpecifier","stateClause","stateClausePlain",
829 "@24","conditionClause","startConditionClause","conditionClausePlain","@25",
830 "@26","functionConstraint","exitsQualifier","checkQualifier","stateQualifier",
831 "paramQualifier","visibilityQualifier","returnQualifier","typedefQualifier",
832 "refcountQualifier","typeModifier","definedQualifier","typeQualifier","typeSpecifier",
833 "completeType","completeTypeSpecifier","altType","completeTypeSpecifierAux",
834 "optCompleteType","suSpc","@27","@28","@29","@30","@31","@32","@33","@34","NotType",
835 "structDeclList","structDecl","structNamedDeclList","structNamedDecl","enumSpc",
836 "@35","enumeratorList","enumerator","optNamedDecl","namedDecl","genericParamList",
837 "innerMods","innerModsList","pointers","paramIdList","idList","paramTypeList",
838 "paramList","@36","@37","paramDecl","typeExpression","abstractDecl","optAbstractDeclBase",
839 "abstractDeclBase","stmt","iterBody","endBody","iterDefStmtList","iterDefIterationStmt",
840 "forPred","@38","@39","partialIterStmt","@40","iterDefStmt","iterSelectionStmt",
841 "openScope","closeScope","macroBody","stmtErr","labeledStmt","optExtraFallThroughs",
842 "caseStmt","@41","@42","defaultStmt","@43","@44","compoundStmt","compoundStmtErr",
843 "CreateInnerScope","DeleteInnerScope","CreateStructInnerScope","DeleteStructInnerScope",
844 "DeleteInnerScopeSafe","compoundStmtRest","compoundStmtAux","compoundStmtAuxErr",
845 "stmtListErr","initializerList","stmtList","expressionStmt","expressionStmtErr",
846 "ifPred","selectionStmt","@45","@46","whilePred","iterWhilePred","iterStmt",
847 "@47","@48","iterArgList","@49","iterArgExpr","cconstantExpr","primaryIterExpr",
848 "postfixIterExpr","unaryIterExpr","castIterExpr","timesIterExpr","plusIterExpr",
849 "shiftIterExpr","relationalIterExpr","equalityIterExpr","bitandIterExpr","xorIterExpr",
850 "bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr","@50","@51",
851 "assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr","jumpStmt",
852 "optSemi","id","newId","typeName", NULL
856 static const short yyr1[] = { 0,
857 192, 192, 193, 193, 194, 194, 194, 194, 194, 194,
858 194, 195, 195, 197, 196, 198, 198, 199, 199, 200,
859 200, 200, 200, 201, 200, 202, 200, 203, 203, 203,
860 203, 204, 203, 205, 203, 207, 208, 206, 209, 209,
861 209, 209, 210, 211, 213, 212, 214, 212, 215, 215,
862 216, 217, 217, 218, 219, 219, 220, 220, 220, 221,
863 221, 221, 222, 222, 223, 223, 223, 223, 223, 223,
864 223, 223, 224, 225, 225, 226, 226, 227, 227, 228,
865 228, 228, 228, 228, 228, 229, 229, 229, 229, 229,
866 229, 230, 232, 231, 233, 234, 236, 235, 237, 237,
867 238, 239, 239, 240, 241, 241, 242, 242, 243, 244,
868 244, 245, 245, 245, 246, 246, 246, 246, 246, 247,
869 247, 247, 247, 247, 248, 248, 249, 249, 251, 250,
870 252, 253, 250, 254, 255, 255, 256, 256, 256, 256,
871 256, 256, 256, 256, 257, 257, 258, 258, 259, 259,
872 259, 259, 259, 259, 259, 259, 260, 260, 261, 261,
873 262, 262, 262, 262, 262, 262, 263, 263, 263, 263,
874 263, 263, 263, 263, 263, 264, 264, 265, 265, 265,
875 265, 265, 265, 265, 265, 265, 265, 265, 266, 266,
876 267, 269, 268, 270, 270, 270, 270, 271, 271, 272,
877 272, 272, 272, 273, 273, 273, 274, 274, 274, 275,
878 275, 275, 275, 275, 276, 276, 276, 277, 277, 278,
879 278, 279, 279, 280, 281, 280, 282, 283, 282, 284,
880 285, 286, 284, 287, 287, 287, 287, 287, 287, 287,
881 287, 287, 287, 287, 287, 288, 288, 289, 289, 290,
882 291, 291, 291, 292, 293, 292, 294, 292, 295, 296,
883 295, 298, 297, 297, 297, 299, 300, 301, 302, 302,
884 303, 303, 304, 304, 304, 305, 305, 306, 306, 306,
885 306, 306, -1, 307, 309, 308, 310, 311, 313, 312,
886 314, 312, 315, 315, 316, 316, 316, 316, 316, 317,
887 317, 317, 317, 318, 318, 318, 318, 318, 318, 318,
888 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
889 319, 319, 320, 320, 321, 321, 322, 322, 322, 322,
890 323, 323, 323, 323, 323, 323, 324, 324, 324, 324,
891 325, 325, 325, 325, 326, 326, 326, 326, 326, 326,
892 326, 326, 326, 326, 326, 327, 327, 327, 327, 327,
893 327, 327, 327, 327, 327, 327, 327, 327, 327, 328,
894 329, 329, 330, 330, 331, 331, 331, 332, 332, 334,
895 335, 333, 336, 337, 333, 333, 333, 338, 339, 333,
896 340, 341, 333, 333, 333, 333, 333, 342, 343, 343,
897 343, 344, 344, 345, 345, 346, 346, 346, 347, 348,
898 347, 347, 349, 349, 349, 350, 350, 351, 351, 351,
899 351, 352, 352, 353, 353, 354, 354, 355, 355, 356,
900 356, 356, 356, 357, 357, 358, 358, 359, 359, 359,
901 361, 360, 362, 360, 363, 363, 364, 364, 365, 365,
902 365, 366, 366, 367, 367, 367, 367, 367, 367, 367,
903 367, 367, 368, 368, 368, 368, 368, 368, 368, 368,
904 368, 369, 370, 371, 371, 372, 372, 372, 372, 374,
905 375, 373, 377, 376, 376, 378, 378, 378, 378, 378,
906 378, 378, 378, 378, 378, 378, 378, 378, 379, 380,
907 381, 382, 382, 383, 383, 383, 383, 383, 383, 383,
908 383, 383, 383, 383, 384, 384, 385, 385, 387, 386,
909 388, 386, 390, 389, 391, 389, 392, 392, 393, 394,
910 395, 396, 397, 398, 399, 399, 399, 399, 399, 399,
911 399, 399, 400, 401, 401, 401, 401, 402, 402, 403,
912 403, 404, 404, 405, 405, 406, 406, 406, 407, 408,
913 409, 408, 410, 408, 411, 412, 414, 415, 413, 416,
914 417, 416, 418, 418, 418, 418, 419, 419, 420, 420,
915 421, 421, 421, 421, 421, 421, 421, 421, 421, 422,
916 422, 422, 422, 422, 422, 422, 422, 422, 422, 423,
917 423, 424, 424, 424, 424, 425, 425, 425, 426, 426,
918 426, 427, 427, 427, 427, 427, 428, 428, 428, 429,
919 429, 430, 430, 431, 431, 432, 432, 433, 433, 434,
920 435, 436, 434, 437, 437, 437, 437, 437, 437, 437,
921 437, 437, 437, 437, 437, 438, 438, 439, 440, 440,
922 440, 441, 441, 441, 441, 442, 442, 442, 442, 442,
923 442, 442, 442, 442, 442, 443, 443, 444, 445, 445,
924 445, 445, 445, 446, 446
927 static const short yyr2[] = { 0,
928 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
929 1, 8, 11, 0, 5, 1, 3, 1, 2, 1,
930 6, 3, 6, 0, 6, 0, 7, 1, 6, 3,
931 6, 0, 6, 0, 7, 0, 0, 10, 3, 3,
932 3, 2, 1, 3, 0, 4, 0, 4, 1, 3,
933 1, 3, 1, 3, 1, 1, 1, 1, 1, 1,
934 4, 5, 1, 1, 1, 1, 3, 4, 2, 3,
935 3, 3, 1, 1, 1, 0, 2, 0, 2, 1,
936 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
937 1, 2, 0, 4, 1, 2, 0, 3, 1, 3,
938 1, 1, 0, 2, 3, 2, 1, 3, 2, 0,
939 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
940 1, 1, 1, 1, 1, 1, 1, 3, 0, 3,
941 0, 0, 4, 2, 2, 1, 1, 1, 3, 4,
942 2, 3, 3, 3, 1, 1, 1, 3, 1, 1,
943 3, 4, 2, 3, 3, 3, 0, 1, 1, 3,
944 1, 1, 1, 3, 1, 1, 1, 4, 3, 4,
945 6, 5, 5, 2, 2, 1, 3, 1, 2, 2,
946 2, 2, 2, 2, 2, 2, 1, 1, 3, 1,
947 9, 0, 3, 4, 2, 4, 2, 1, 4, 1,
948 3, 3, 3, 1, 3, 3, 1, 3, 3, 1,
949 3, 3, 3, 3, 1, 3, 3, 1, 3, 1,
950 3, 1, 3, 1, 0, 4, 1, 0, 4, 1,
951 0, 0, 7, 1, 3, 3, 3, 3, 3, 3,
952 3, 3, 3, 3, 3, 1, 3, 0, 1, 1,
953 1, 1, 1, 3, 0, 9, 0, 11, 2, 0,
954 6, 0, 8, 4, 4, 0, 0, 2, 1, 4,
955 0, 4, 1, 3, 4, 1, 3, 1, 1, 1,
956 1, 1, 2, 2, 0, 6, 2, 2, 0, 6,
957 0, 5, 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, 1, 1, 1, 1, 1, 1,
961 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
962 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
963 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
964 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
965 1, 4, 1, 3, 2, 2, 2, 0, 1, 0,
966 0, 11, 0, 0, 11, 6, 6, 0, 0, 10,
967 0, 0, 10, 5, 5, 4, 4, 0, 1, 1,
968 2, 5, 3, 2, 4, 1, 3, 4, 6, 0,
969 8, 4, 1, 3, 2, 1, 4, 1, 1, 2,
970 2, 1, 2, 1, 2, 1, 1, 1, 2, 1,
971 2, 2, 3, 1, 3, 1, 3, 1, 1, 3,
972 0, 2, 0, 4, 4, 1, 1, 2, 1, 1,
973 2, 0, 1, 5, 2, 3, 3, 4, 3, 4,
974 4, 5, 1, 1, 1, 1, 1, 1, 1, 1,
975 1, 1, 1, 1, 2, 2, 7, 6, 2, 0,
976 0, 10, 0, 6, 1, 1, 1, 1, 2, 1,
977 1, 1, 1, 1, 1, 1, 3, 1, 2, 2,
978 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
979 1, 3, 1, 1, 2, 2, 0, 2, 0, 4,
980 0, 6, 0, 3, 0, 5, 3, 2, 3, 0,
981 0, 0, 0, 0, 1, 2, 2, 3, 2, 3,
982 3, 4, 2, 2, 3, 3, 4, 1, 2, 1,
983 2, 1, 2, 1, 2, 1, 2, 1, 4, 2,
984 0, 5, 0, 6, 4, 4, 0, 0, 10, 1,
985 0, 4, 1, 1, 1, 1, 1, 2, 1, 3,
986 1, 4, 3, 4, 6, 5, 5, 2, 2, 1,
987 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
988 4, 1, 3, 3, 3, 1, 3, 3, 1, 3,
989 3, 1, 3, 3, 3, 3, 1, 3, 3, 1,
990 3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
991 0, 0, 7, 1, 3, 3, 3, 3, 3, 3,
992 3, 3, 3, 3, 3, 1, 0, 1, 2, 7,
993 2, 2, 7, 6, 2, 3, 2, 3, 2, 3,
994 3, 3, 3, 2, 3, 0, 1, 1, 1, 1,
998 static const short yydefact[] = { 0,
999 11, 430, 398, 252, 398, 14, 0, 0, 0, 0,
1000 266, 266, 279, 278, 280, 281, 282, 341, 342, 306,
1001 308, 307, 311, 312, 300, 302, 303, 301, 309, 310,
1002 343, 344, 304, 305, 321, 317, 313, 318, 314, 295,
1003 296, 299, 297, 298, 338, 339, 340, 337, 323, 322,
1004 316, 315, 327, 328, 329, 330, 325, 326, 324, 331,
1005 332, 335, 336, 333, 334, 398, 398, 398, 398, 398,
1006 398, 398, 398, 398, 398, 319, 668, 669, 673, 320,
1007 670, 671, 674, 0, 3, 6, 7, 422, 8, 9,
1008 131, 43, 666, 10, 251, 253, 0, 378, 266, 266,
1009 266, 266, 266, 266, 266, 266, 398, 266, 378, 378,
1010 398, 371, 398, 0, 398, 127, 266, 672, 20, 398,
1011 426, 427, 428, 431, 432, 269, 266, 266, 262, 398,
1012 675, 398, 398, 673, 0, 514, 266, 523, 0, 0,
1013 0, 648, 0, 0, 0, 0, 266, 556, 0, 266,
1014 266, 266, 266, 266, 266, 266, 266, 266, 0, 42,
1015 0, 0, 0, 0, 0, 517, 266, 166, 162, 165,
1016 577, 567, 167, 178, 198, 188, 187, 200, 204, 207,
1017 210, 215, 218, 220, 222, 224, 227, 230, 234, 246,
1018 558, 192, 0, 0, 548, 504, 505, 506, 507, 0,
1019 0, 508, 266, 509, 0, 510, 163, 0, 511, 513,
1020 161, 0, 498, 0, 554, 0, 530, 485, 0, 0,
1021 0, 494, 0, 495, 474, 493, 490, 491, 486, 487,
1022 488, 0, 0, 492, 0, 0, 0, 496, 473, 0,
1023 345, 346, 356, 358, 357, 359, 360, 361, 362, 363,
1024 364, 365, 4, 266, 0, 129, 134, 398, 667, 5,
1025 398, 379, 375, 349, 351, 348, 350, 353, 352, 354,
1026 355, 369, 347, 376, 377, 0, 266, 266, 367, 266,
1027 266, 0, 368, 423, 366, 429, 433, 398, 0, 268,
1028 398, 0, 259, 266, 666, 16, 18, 0, 398, 266,
1029 28, 441, 266, 162, 165, 198, 250, 519, 161, 0,
1030 266, 266, 266, 266, 0, 657, 659, 664, 0, 0,
1031 398, 447, 0, 0, 181, 186, 185, 184, 183, 182,
1032 0, 266, 179, 180, 266, 0, 0, 0, 0, 0,
1033 517, 0, 266, 516, 266, 463, 464, 465, 466, 0,
1034 467, 468, 266, 470, 266, 469, 471, 530, 266, 266,
1035 174, 175, 0, 266, 266, 266, 266, 266, 266, 266,
1036 266, 266, 266, 266, 266, 266, 266, 266, 266, 266,
1037 266, 266, 266, 266, 266, 266, 266, 266, 266, 266,
1038 225, 231, 228, 557, 266, 0, 655, 39, 0, 531,
1039 549, 560, 652, 578, 0, 515, 266, 0, 0, 0,
1040 555, 40, 475, 479, 550, 398, 489, 500, 501, 499,
1041 0, 0, 41, 22, 266, 441, 398, 398, 266, 254,
1042 128, 398, 0, 373, 0, 398, 0, 398, 0, 266,
1043 266, 265, 266, 264, 260, 398, 0, 266, 0, 398,
1044 266, 19, 438, 0, 0, 424, 439, 266, 0, 0,
1045 524, 0, 563, 0, 249, 0, 656, 665, 164, 266,
1046 266, 0, 449, 448, 450, 266, 512, 266, 0, 660,
1047 661, 662, 663, 658, 518, 266, 525, 0, 651, 398,
1048 528, 649, 0, 0, 169, 0, 176, 0, 0, 0,
1049 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1050 245, 201, 202, 203, 206, 205, 208, 209, 211, 212,
1051 213, 214, 216, 217, 219, 221, 223, 266, 266, 266,
1052 247, 266, 266, 193, 544, 165, 548, 0, 398, 529,
1053 561, 0, 0, 497, 483, 266, 551, 0, 0, 24,
1054 0, 535, 266, 552, 130, 398, 266, 530, 266, 255,
1055 372, 266, 388, 0, 396, 391, 0, 397, 0, 413,
1056 416, 410, 412, 270, 266, 266, 666, 15, 30, 266,
1057 441, 266, 17, 425, 434, 436, 36, 443, 398, 442,
1058 446, 520, 559, 0, 565, 266, 370, 455, 0, 441,
1059 451, 266, 0, 199, 398, 266, 521, 0, 527, 543,
1060 0, 568, 266, 170, 168, 266, 266, 226, 0, 229,
1061 266, 195, 266, 197, 545, 546, 266, 266, 266, 566,
1062 266, 398, 266, 398, 76, 26, 536, 539, 266, 266,
1063 537, 266, 553, 530, 133, 0, 257, 266, 374, 394,
1064 532, 380, 395, 532, 383, 266, 415, 266, 0, 103,
1065 266, 266, 266, 0, 32, 0, 266, 0, 78, 440,
1066 266, 452, 266, 0, 456, 459, 266, 0, 457, 0,
1067 441, 0, 0, 0, 526, 266, 266, 177, 172, 173,
1068 232, 0, 0, 547, 562, 0, 266, 266, 266, 266,
1069 266, 266, 266, 266, 266, 0, 162, 165, 178, 198,
1070 187, 204, 207, 210, 215, 218, 220, 222, 224, 227,
1071 0, 571, 570, 163, 581, 590, 600, 602, 606, 609,
1072 612, 617, 620, 622, 624, 626, 628, 630, 634, 573,
1073 161, 0, 23, 0, 93, 97, 95, 120, 121, 122,
1074 123, 124, 125, 126, 25, 76, 80, 0, 82, 81,
1075 0, 85, 0, 398, 398, 83, 0, 84, 291, 0,
1076 76, 540, 541, 266, 538, 21, 266, 271, 398, 386,
1077 532, 398, 387, 532, 409, 414, 266, 0, 0, 102,
1078 266, 273, 261, 266, 0, 398, 78, 34, 0, 435,
1079 437, 37, 78, 86, 88, 87, 91, 89, 90, 444,
1080 418, 0, 266, 452, 419, 453, 564, 480, 0, 460,
1081 458, 461, 0, 0, 171, 522, 0, 571, 266, 194,
1082 196, 654, 0, 0, 181, 186, 185, 184, 183, 182,
1083 179, 180, 266, 266, 266, 174, 175, 0, 266, 266,
1084 266, 266, 266, 266, 266, 266, 266, 266, 266, 266,
1085 266, 266, 266, 266, 266, 266, 266, 266, 266, 266,
1086 266, 266, 266, 266, 266, 225, 631, 228, 484, 0,
1087 478, 101, 106, 99, 110, 666, 77, 92, 96, 104,
1088 285, 288, 284, 0, 289, 287, 27, 542, 266, 0,
1089 400, 398, 398, 399, 398, 398, 398, 417, 266, 263,
1090 276, 0, 271, 12, 31, 33, 78, 29, 666, 79,
1091 441, 445, 420, 421, 266, 454, 462, 0, 190, 0,
1092 530, 233, 653, 164, 266, 0, 169, 0, 0, 0,
1093 0, 635, 636, 637, 638, 639, 640, 641, 642, 643,
1094 644, 645, 201, 202, 203, 206, 205, 208, 209, 211,
1095 212, 213, 214, 216, 217, 219, 221, 223, 627, 266,
1096 629, 266, 477, 105, 0, 115, 116, 117, 118, 119,
1097 666, 107, 398, 110, 0, 0, 138, 98, 147, 666,
1098 136, 137, 0, 47, 0, 0, 55, 56, 66, 64,
1099 294, 0, 293, 53, 73, 0, 60, 63, 0, 666,
1100 65, 157, 271, 266, 398, 0, 266, 401, 389, 398,
1101 392, 398, 411, 274, 266, 666, 35, 0, 266, 481,
1102 266, 0, 650, 647, 199, 266, 170, 168, 266, 266,
1103 0, 572, 100, 110, 94, 113, 109, 114, 112, 111,
1104 0, 141, 0, 0, 0, 0, 135, 0, 0, 150,
1105 159, 666, 149, 0, 0, 63, 0, 69, 0, 0,
1106 58, 57, 59, 0, 0, 0, 0, 0, 0, 266,
1107 666, 158, 0, 256, 266, 403, 266, 266, 398, 406,
1108 0, 381, 0, 384, 275, 277, 0, 38, 266, 0,
1109 191, 189, 646, 531, 0, 172, 173, 632, 108, 142,
1110 139, 145, 0, 146, 143, 144, 148, 0, 153, 0,
1111 0, 0, 0, 266, 0, 75, 74, 0, 70, 0,
1112 49, 44, 45, 52, 63, 54, 67, 0, 71, 72,
1113 0, 0, 292, 266, 266, 272, 266, 266, 0, 404,
1114 266, 390, 0, 393, 0, 13, 482, 569, 171, 266,
1115 140, 154, 151, 0, 155, 156, 160, 286, 51, 48,
1116 0, 0, 68, 46, 61, 290, 258, 407, 398, 402,
1117 266, 382, 385, 633, 152, 62, 50, 405, 408, 0,
1121 static const short yydefgoto[] = { 1190,
1122 84, 85, 86, 87, 133, 295, 296, 88, 635, 771,
1123 297, 797, 917, 89, 669, 919, 901, 91, 1001, 1131,
1124 1078, 1064, 1132, 1170, 1003, 1004, 1005, 1074, 1006, 1007,
1125 1135, 1009, 1128, 755, 802, 756, 803, 757, 804, 885,
1126 805, 760, 806, 886, 883, 884, 789, 762, 763, 981,
1127 982, 983, 1047, 984, 764, 765, 92, 257, 427, 258,
1128 558, 93, 988, 1112, 1113, 990, 1061, 1081, 1062, 173,
1129 174, 496, 175, 928, 176, 177, 396, 534, 178, 179,
1130 180, 181, 182, 183, 184, 185, 186, 187, 528, 188,
1131 530, 189, 529, 829, 190, 219, 466, 308, 415, 95,
1132 648, 777, 126, 576, 96, 291, 192, 255, 127, 128,
1133 900, 793, 912, 98, 766, 808, 993, 768, 769, 809,
1134 1012, 894, 1010, 99, 100, 101, 102, 103, 104, 105,
1135 106, 107, 108, 109, 110, 322, 416, 433, 112, 263,
1136 113, 781, 1153, 784, 1155, 651, 1091, 654, 1093, 114,
1137 903, 904, 1088, 1089, 115, 659, 569, 570, 813, 130,
1138 455, 123, 124, 117, 584, 585, 456, 457, 458, 671,
1139 590, 323, 819, 815, 475, 344, 220, 240, 221, 222,
1140 345, 925, 1100, 224, 631, 225, 226, 227, 228, 194,
1141 401, 346, 342, 347, 460, 684, 348, 310, 608, 349,
1142 199, 350, 540, 779, 1019, 233, 555, 491, 400, 201,
1143 556, 557, 351, 202, 203, 352, 628, 594, 353, 236,
1144 354, 358, 687, 722, 880, 723, 207, 725, 726, 727,
1145 728, 729, 730, 731, 732, 733, 734, 735, 736, 737,
1146 738, 739, 970, 1160, 740, 1104, 355, 356, 209, 357,
1150 static const short yypact[] = { 1940,
1151 -32768, 44, 5141,-32768, 6239,-32768, 777, 2916, 3298, 3298,
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,-32768,-32768,
1157 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1158 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 618,-32768,
1159 -32768,-32768,-32768, 2117,-32768,-32768,-32768, 517,-32768,-32768,
1160 83,-32768, 119,-32768,-32768,-32768, 142, 6074,-32768,-32768,
1161 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 6074, 6074,
1162 133, 22,-32768, 931,-32768,-32768, 777,-32768,-32768,-32768,
1163 -32768,-32768,-32768, 44,-32768,-32768, 155,-32768, 133,-32768,
1164 -32768,-32768, 5141,-32768, 163,-32768, 5370,-32768, 200, 241,
1165 262,-32768, 279, 777, 293, 331, 1396,-32768, 2493, 5370,
1166 5370, 5370, 5370, 5370, 5370,-32768, 5399, 5399, 340,-32768,
1167 374, 388, 410, 417, 433, 351, 4585,-32768, 440, 446,
1168 -32768, 459,-32768, 810, 1052,-32768,-32768,-32768, 1005, 127,
1169 65, 514, 461, 428, 448, 456, 519, 84,-32768,-32768,
1170 302,-32768, 3446, 490, 495,-32768,-32768,-32768,-32768, 484,
1171 3064,-32768, 4585,-32768, 3446,-32768, 429, 3446,-32768,-32768,
1172 582, 589,-32768, 599,-32768, 2683, 459, 634, 336, 542,
1173 3107,-32768, 3298,-32768,-32768,-32768, 5700,-32768,-32768,-32768,
1174 -32768, 642, 647,-32768, 3298, 3298, 3446,-32768,-32768, 607,
1175 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1176 -32768,-32768,-32768, 714, 689,-32768,-32768, 5964,-32768,-32768,
1177 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1178 -32768,-32768,-32768,-32768,-32768, 725, 667,-32768,-32768, 777,
1179 777, 11,-32768, 517,-32768,-32768,-32768,-32768, 747,-32768,
1180 -32768, 766, 767, 667, 119,-32768, 571, 763,-32768, 777,
1181 -32768, 287, 5370,-32768,-32768,-32768,-32768,-32768,-32768, 795,
1182 5370, 5370, 5370, 1711, 804,-32768,-32768,-32768, 391, 164,
1183 5568, 363, 800, 802,-32768,-32768,-32768,-32768,-32768,-32768,
1184 806, 5370,-32768,-32768, 5370, 814, 817, 835, 886, 893,
1185 351, 728, 3402,-32768, 4585,-32768,-32768,-32768,-32768, 898,
1186 -32768,-32768, 4585,-32768, 4585,-32768,-32768,-32768, 1859, 5370,
1187 -32768,-32768, 46, 5370, 5370, 5370, 5370, 5370, 5370, 5370,
1188 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370,
1189 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370,
1190 -32768,-32768,-32768,-32768, 5370, 635,-32768,-32768, 2303,-32768,
1191 -32768, 861,-32768,-32768, 945,-32768, 5370, 367, 938, 839,
1192 -32768,-32768,-32768,-32768,-32768, 133, 5700,-32768,-32768,-32768,
1193 2873, 997,-32768,-32768, 5370, 125, 3549, 4666, 667,-32768,
1194 319, 6239, 879, 992, 1001, 1006, 1014, 1006, 777, 1030,
1195 667,-32768, 667,-32768,-32768,-32768, 962, 1036, 1033,-32768,
1196 667, 571,-32768, 777, 1039,-32768, 1045, 777, 226, 1046,
1197 -32768, 266, 1057, 394, 1057, 1064,-32768,-32768,-32768,-32768,
1198 5152, 1060, 617,-32768, 695, 5370,-32768,-32768, 1065,-32768,
1199 -32768,-32768,-32768,-32768,-32768, 5370,-32768, 1067,-32768, 3549,
1200 -32768,-32768, 1078, 1066,-32768, 403,-32768, 58, 777, 777,
1201 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1202 -32768,-32768,-32768,-32768, 1005, 1005, 127, 127, 65, 65,
1203 65, 65, 514, 514, 461, 428, 448, 5370, 5370, 5370,
1204 -32768, 5419, 5430,-32768,-32768, 4899,-32768, 3255, 3734,-32768,
1205 -32768, 1073, 424,-32768,-32768, 667,-32768, 1076, 1074,-32768,
1206 1077,-32768, 4104,-32768,-32768, 3919, 4147, 1079,-32768, 1081,
1207 -32768,-32768, 1085, 1087,-32768, 1088, 1100,-32768, 752,-32768,
1208 1101,-32768,-32768,-32768, 155,-32768, 225,-32768,-32768, 5370,
1209 481, 667,-32768,-32768, 1104,-32768,-32768, 1122, 6239,-32768,
1210 -32768,-32768,-32768, 1107,-32768, 1711,-32768,-32768, 1099, 67,
1211 695, 5314, 1109,-32768,-32768,-32768,-32768, 1112,-32768,-32768,
1212 1111,-32768, 5370,-32768,-32768,-32768,-32768, 456, 778, 519,
1213 5370,-32768, 5370,-32768,-32768,-32768, 4250, 4585, 5370,-32768,
1214 5489,-32768, 5370,-32768, 1083,-32768,-32768,-32768, 4293, 4396,
1215 -32768, 4439,-32768, 1079,-32768, 1113,-32768,-32768,-32768,-32768,
1216 -32768, 1116,-32768,-32768, 1119,-32768, 777,-32768, 777, 1068,
1217 5062,-32768,-32768, 1114,-32768, 1117,-32768, 496, 1083,-32768,
1218 777, 396, 4585, 1125,-32768,-32768, 204, 1129,-32768, 1120,
1219 82, 1123, 1134, 1124,-32768, 5370, 5489,-32768,-32768,-32768,
1220 -32768, 1145, 1146,-32768,-32768, 457, 5370, 5370, 5370, 5370,
1221 5370, 5370, 5370, 5399, 5399, 1126, 512, 537, 888, 1310,
1222 551, 1037, 779, 811, 840, 845, 1148, 1135, 1138, 1127,
1223 105, 1154,-32768, 10,-32768,-32768,-32768,-32768,-32768,-32768,
1224 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1225 552, 584,-32768, 996,-32768,-32768,-32768,-32768,-32768,-32768,
1226 -32768,-32768,-32768,-32768,-32768, 1083,-32768, 1094,-32768,-32768,
1227 1096,-32768, 1102,-32768,-32768,-32768, 1103,-32768, 1824, 1105,
1228 1083,-32768,-32768, 4542,-32768,-32768,-32768,-32768, 6161,-32768,
1229 -32768, 6161,-32768,-32768,-32768,-32768, 5370, 906, 1172,-32768,
1230 5062,-32768,-32768, 5062, 1106,-32768, 1083,-32768, 1168,-32768,
1231 -32768,-32768, 1083,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1232 517, 1174,-32768, 838,-32768, 695,-32768,-32768, 1171,-32768,
1233 -32768,-32768, 1175, 777,-32768,-32768, 673, 1177, 5370,-32768,
1234 -32768, 1185, 674, 1180, 723, 729, 730, 750, 764, 798,
1235 854, 855, 5370, 5325, 5370, 860, 872, 78, 5370, 5370,
1236 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370,
1237 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370,
1238 5370, 5370, 5370, 5370, 5370, 5370,-32768, 5370,-32768, 1186,
1239 1188,-32768, 1021, 1169, -7, 23,-32768,-32768,-32768,-32768,
1240 -32768,-32768,-32768, 544,-32768,-32768,-32768,-32768, 5062, 585,
1241 -32768, 133, 4744,-32768, 6161, 4744, 6161,-32768,-32768,-32768,
1242 -32768, 922,-32768,-32768,-32768,-32768, 1083,-32768, 119,-32768,
1243 620,-32768,-32768,-32768, 5345,-32768,-32768, 593,-32768, 1193,
1244 1079,-32768,-32768, 897, 5370, 1191, 903, 928, 61, 777,
1245 777,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1246 -32768,-32768, 933, 948, 950, 812, 912, 300, 875, 79,
1247 382, 505, 613, 701, 743, 102, 114, 147, 456, 5370,
1248 519, 5489,-32768, 429, 996,-32768,-32768,-32768,-32768,-32768,
1249 632,-32768, 5832, -7, 62, 62,-32768,-32768, 412, 637,
1250 -32768,-32768, 85,-32768, 797, 92,-32768,-32768,-32768,-32768,
1251 -32768, 1190,-32768, 1032,-32768, 1043,-32768, 77, 1202, 119,
1252 -32768, 85,-32768,-32768,-32768, 1225, 309,-32768,-32768, 4744,
1253 -32768, 4744,-32768,-32768, 1732, 671,-32768, 1155, 656,-32768,
1254 -32768, 777,-32768, 1056, 967,-32768, 976, 993,-32768,-32768,
1255 957,-32768,-32768, -7,-32768,-32768,-32768,-32768,-32768,-32768,
1256 435, 412, 682, 777, 777, 62,-32768, 85, 85,-32768,
1257 492, 711,-32768, 1226, 958, 506, 92, 543, 49, 797,
1258 -32768,-32768,-32768, 797, 15, 777, 777, 1227, 797,-32768,
1259 119, 1229, 745,-32768, 667,-32768,-32768, 1230,-32768, 1237,
1260 1240,-32768, 1241,-32768,-32768,-32768, 1176,-32768, 594, 1242,
1261 -32768,-32768,-32768,-32768, 1243, 1010, 1025,-32768,-32768,-32768,
1262 -32768, 412, 1239, 429,-32768,-32768, 412, 686, 492, 722,
1263 777, 777, 85,-32768, 1082,-32768,-32768, 797,-32768, 506,
1264 1232,-32768, 543,-32768, 543,-32768,-32768, 1247,-32768,-32768,
1265 1082, 1253,-32768,-32768,-32768,-32768, 5370, 309, 1251,-32768,
1266 -32768,-32768, 1259,-32768, 1260,-32768,-32768,-32768, 1027, 5370,
1267 -32768,-32768,-32768, 1255,-32768,-32768, 492,-32768,-32768,-32768,
1268 1258, 49,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1269 5370,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1285,
1273 static const short yypgoto[] = {-32768,
1274 -32768, 1204,-32768,-32768,-32768,-32768, -405, -112,-32768,-32768,
1275 989,-32768,-32768,-32768,-32768,-32768, 68,-32768,-32768, 397,
1276 -32768,-32768, 118, 151, 223,-32768,-32768,-32768, -661,-32768,
1277 -825,-32768,-32768, -608, -744,-32768,-32768,-32768, -573,-32768,
1278 -373,-32768, -287,-32768, 320,-32768,-32768, 639, -613,-32768,
1279 250, 313,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1280 -32768,-32768,-32768, -828, 180,-32768, -982,-32768, 289,-32768,
1281 -616, 458, 852,-32768,-32768, -593,-32768,-32768, 59, -359,
1282 -358, -357, -343, -382, -365, -335, -499, -513,-32768, -592,
1283 -32768, -136,-32768,-32768, 851, 944, -584, -411, 36,-32768,
1284 -32768,-32768, -437,-32768,-32768,-32768, 267, -230, 862,-32768,
1285 -848, -754,-32768,-32768,-32768, -276,-32768,-32768,-32768, -254,
1286 -32768,-32768,-32768,-32768,-32768, 539,-32768,-32768,-32768,-32768,
1287 -32768,-32768,-32768,-32768,-32768,-32768, 131, 748,-32768, 951,
1288 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 186,
1289 -590, -495,-32768, 161,-32768,-32768, 652, 655, 499, 13,
1290 -356, 1192,-32768, 14,-32768,-32768, -539,-32768,-32768,-32768,
1291 644, -260, 995,-32768, -452, 844, 1308,-32768, 1084,-32768,
1292 666,-32768,-32768,-32768,-32768, -171,-32768,-32768,-32768,-32768,
1293 90, 1121, 978, 1254,-32768,-32768, 1389,-32768,-32768, -332,
1294 -32768, 1244, 217, -603, -858,-32768, 834,-32768,-32768, 926,
1295 -195, -490, 103,-32768, 170, 26,-32768,-32768, 209,-32768,
1296 393,-32768,-32768, 640,-32768, 359, -598,-32768,-32768,-32768,
1297 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1298 -32768,-32768,-32768,-32768,-32768,-32768, 1398,-32768,-32768, 1642,
1306 static const short yytable[] = { 118,
1307 307, 447, 118, 574, 284, 525, 118, 211, 211, 211,
1308 488, 674, 116, 549, 709, 125, 620, 434, 515, 516,
1309 601, 517, 518, 526, 519, 520, 521, 522, 618, 439,
1310 -579, 417, 724, 204, -579, 94, 911, 711, 721, 913,
1311 259, 1137, 523, 524, 409, 583, 985, 1021, 627, 413,
1312 782, 414, 916, 994, 527, 807, 986, 989, 920, 599,
1313 678, 758, 428, 420, 1026, 640, 449, 90, 1008, 551,
1314 709, 453, 1067, 499, 607, 1118, 1119, 2, 395, 976,
1315 977, 395, 996, 118, 615, 985, 453, 1038, 724, 500,
1316 -398, 676, -398, 711, 721, 986, 116, 195, -45, -613,
1317 -398, 256, 1075, -613, 1076, 940, 822, 278, 1058, 978,
1318 979, 234, 234, 380, 381, 1067, 118, 720, 1059, 94,
1319 1077, 941, -621, 980, 392, 996, -621, 380, 381, 453,
1320 111, 719, 118, 129, -623, 132, 259, 287, -623, 393,
1321 1167, 823, 388, 118, 1013, 877, 300, 887, 211, 550,
1322 -266, 90, 121, 122, 386, 387, 1051, 1052, 378, 379,
1323 878, 1092, 897, 1094, 1083, 261, 211, -625, 664, 1066,
1324 1068, -625, 1027, 720, 204, 288, 667, 905, 235, 235,
1325 907, 394, 758, 807, 395, 389, 302, 719, 469, 807,
1326 680, 906, 211, 77, 78, 134, 404, 758, 81, 82,
1327 211, 1138, 211, 539, 211, 77, 987, 211, 325, 326,
1328 327, 328, 329, 330, 111, 211, 205, 605, 204, 816,
1329 211, 449, 211, 311, 666, 645, 204, 1117, 262, 471,
1330 204, 77, 999, 204, 211, 211, 211, 2, 324, 262,
1331 262, 1130, 259, 1133, 77, 987, 395, 662, 716, 413,
1332 469, 243, 244, 245, 246, 247, 248, 249, 250, 251,
1333 252, 759, 204, 299, 312, 717, 97, 77, 1060, 97,
1334 1096, 712, 713, 714, 77, 999, 118, 241, 242, 118,
1335 118, 118, 397, 663, 974, 313, 395, 715, 307, 431,
1336 593, 453, 272, 118, 403, 718, 277, 405, 279, 118,
1337 283, 434, 314, 807, 716, 285, 446, -398, -398, -398,
1338 316, 488, -398, -398, 1020, 293, 1022, 294, 234, 394,
1339 -610, 717, 395, 234, -610, 234, 422, 712, 713, 714,
1340 1087, 378, 379, 1065, 307, 473, -398, 234, 234, -398,
1341 1030, -398, 2, 715, 211, 683, 1133, 761, 317, 307,
1342 97, 718, 211, 411, 211, 709, 395, 205, 767, 363,
1343 692, 816, 693, 335, 971, 264, 265, 266, 267, 268,
1344 269, 270, 271, 724, 273, 908, 969, 276, 711, 721,
1345 770, 678, 759, 97, 411, 235, -266, 395, 471, 336,
1346 235, 469, 235, 289, 290, 292, 2, 759, 211, 298,
1347 206, 205, -614, 337, 235, 235, -614, 1018, 468, 205,
1348 1018, 395, 1136, 205, 395, 321, 205, 1142, 595, -266,
1349 211, 471, 331, 613, 204, 338, 211, 614, 118, 2,
1350 380, 381, 339, 512, 513, 514, 834, 1053, 118, 1054,
1351 118, 559, 118, 307, 395, 205, 429, 340, 630, 341,
1352 118, 470, 547, 118, 1114, 1055, 388, 118, 720, 1110,
1353 1053, -669, 1054, 547, 300, 307, 1171, -673, 761, -398,
1354 -398, -398, 719, 441, -398, -398, 443, 395, 1055, 767,
1355 -670, 832, 321, 761, 451, 453, 389, 454, 537, 211,
1356 966, 77, 78, 134, 767, 390, 81, 82, 118, 118,
1357 800, 770, 399, 956, 957, 665, 958, 959, 967, 960,
1358 961, 962, 963, 386, 387, 119, 770, 1120, 119, 1121,
1359 425, 1114, 135, 234, 1018, -615, 1018, 964, 965, -615,
1360 1129, 1075, -576, 1076, 604, 1122, -576, 211, 211, 968,
1361 -267, 206, 254, 97, 432, 118, 435, 437, 994, 1077,
1362 382, 383, 211, 380, 381, 211, 211, -575, 632, 811,
1363 97, -575, 470, 204, 384, 385, 298, 995, 1075, 321,
1364 1076, -599, -574, 391, 547, -599, -574, 996, 77, 78,
1365 134, 118, 398, 81, 82, 206, 1077, -502, 472, 716,
1366 235, 547, 991, 206, -267, 300, 448, 206, 1034, 119,
1367 206, 546, 1014, -672, 395, 1015, 717, 205, 881, 321,
1368 406, 454, 712, 713, 714, 404, 560, 1031, -449, 471,
1369 1032, 565, 407, 568, 453, 1028, 211, 211, 715, 206,
1370 741, 577, 119, -616, 412, 582, 718, -616, 211, 211,
1371 -266, 211, 471, -398, 676, -398, 601, 1146, 301, 259,
1372 307, -675, 1044, -398, 259, -671, 118, 1056, 118, 315,
1373 418, 380, 381, -398, -398, -398, 419, 118, -398, -398,
1374 118, 118, 211, 193, 223, 223, 532, 533, 77, 78,
1375 134, 471, 276, 81, 82, 814, 741, 1045, 259, 2,
1376 473, 1015, 932, 395, 395, 97, 1057, 930, 934, 423,
1377 2, 811, 564, -675, 567, 985, 573, 97, 1111, 97,
1378 1162, 1120, 426, 1121, 580, 986, 1080, 298, -266, 672,
1379 602, -618, 997, 998, 589, -618, 77, 999, 259, 1122,
1380 1000, 1123, 1097, 486, 487, 1178, 597, 382, 383, 472,
1381 424, 603, 430, -593, 432, 985, 205, -593, 1163, -598,
1382 -597, 384, 385, -598, -597, 986, 835, 836, 837, 838,
1383 839, 840, 1145, -619, 442, 1015, 454, -619, 1124, 1189,
1384 -596, 656, 657, 211, -596, 1105, 77, 78, 134, 382,
1385 383, 81, 82, 444, -595, 677, 450, 1144, -595, 445,
1386 682, 206, 119, 384, 385, 436, 438, 440, 395, 691,
1387 -675, -675, -398, -398, -398, -675, -675, -398, -398, 119,
1388 863, 864, 97, 118, 193, 301, 461, 560, -594, 743,
1389 995, 467, -594, 118, 476, 646, 477, 814, 432, 478,
1390 996, 480, -608, 359, 481, 360, -608, -398, 77, 78,
1391 134, 660, 661, 81, 82, 375, 376, 377, 298, 77,
1392 78, 134, 482, -398, 81, 82, 361, 362, 193, 865,
1393 866, -266, 545, 471, 77, 987, 193, 603, 171, 541,
1394 193, 2, 432, 193, -591, -592, 867, 868, -591, -592,
1395 -588, 223, 689, 690, -588, 992, 223, 321, 223, 321,
1396 869, 870, -589, 1011, 848, -611, -589, 871, 872, -611,
1397 223, 223, 193, 483, 77, 987, 378, 379, 171, 902,
1398 484, 844, 902, 845, 778, -398, 490, -580, 953, 954,
1399 955, -580, 785, -583, 787, 909, 657, -583, 794, 795,
1400 206, -398, -607, 799, 846, 847, -607, 589, 812, 118,
1401 118, 1024, 1025, 472, 119, 375, 376, 377, 613, 891,
1402 892, 191, 1037, -603, 571, 542, 119, -603, 119, 77,
1403 78, 134, 544, 321, 81, 82, 301, 561, -604, 586,
1404 -605, 741, -604, 591, -605, 997, 998, 395, 1108, 77,
1405 999, 915, 1049, 1000, 992, 992, 284, -601, 306, 1126,
1406 1127, -601, 1063, 1035, 1011, 1011, -584, 280, 281, 282,
1407 -584, 306, 306, 306, 306, 306, 306, 548, 333, 334,
1408 307, 1063, 562, -582, 616, 617, 118, -582, 1048, 563,
1409 77, 78, 134, 1184, -266, 81, 82, 923, 118, 1090,
1410 -586, 118, 566, 902, -586, 902, 902, 902, 375, 376,
1411 377, 559, 1099, 899, 307, -587, 402, -585, 572, -587,
1412 578, -585, 992, 118, 118, 992, 581, 1063, 1063, 274,
1413 275, 119, 579, 587, 193, 588, 1011, 592, 1011, 1011,
1414 860, 861, 862, 1011, 364, 118, 118, 395, 1011, 922,
1415 812, 596, 603, 600, 118, 606, 223, 1017, 611, 612,
1416 319, 609, 320, 1071, 1072, 1073, 629, 301, 118, 633,
1417 634, 636, 644, 647, 650, 652, 1029, 653, 365, 366,
1418 367, 368, 369, 370, 371, 372, 373, 374, 655, 992,
1419 118, 118, 1063, 658, 668, 675, 670, 1011, 196, 229,
1420 229, 673, 681, 685, 686, 780, 191, 776, 783, 744,
1421 796, 798, 818, 824, 191, 826, 821, 118, 191, 843,
1422 902, 191, 902, 820, 744, 745, 746, 747, 825, 408,
1423 1090, 748, 749, 750, 751, 752, 753, 754, 1016, 830,
1424 831, 1011, 571, 874, 571, 1023, 873, 875, 879, 882,
1425 191, 876, 888, 801, 889, 479, 591, 119, 489, 910,
1426 890, 893, 918, 896, 914, 926, 492, 921, 493, 927,
1427 1085, 931, 933, 193, 935, 973, 972, 171, 975, 497,
1428 1033, 1036, 1069, 1070, 501, 502, 503, 504, 505, 506,
1429 507, 508, 509, 510, 511, 1079, 306, 306, 306, 306,
1430 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
1431 306, 306, 1086, 1098, 1103, 531, 459, 1125, 1141, 1123,
1432 1148, 200, 232, 232, 462, 463, 464, 465, 1151, 1152,
1433 1154, 197, 230, 230, 1156, 1161, 1157, 1159, 1180, 196,
1434 554, 1172, 1169, 1173, 1150, 459, 306, 1175, 1182, 1183,
1435 1084, 1185, 1186, 97, 1191, 1192, 459, 253, 452, 1187,
1436 1002, 1174, 1134, 1109, 1043, 812, 1050, 1101, 790, 1164,
1437 1082, 938, 432, 498, 575, 1106, 1107, 895, 1179, 649,
1438 788, 786, 924, 196, 810, 286, 474, 239, 485, 421,
1439 1158, 196, 306, 610, 538, 196, 828, 306, 196, 119,
1440 1042, 0, 849, 554, 0, 0, 229, 306, 0, 929,
1441 0, 229, 191, 229, 0, 0, 1143, 0, 0, 0,
1442 543, 97, 0, 1147, 1149, 229, 229, 196, 0, 0,
1443 0, 0, 0, 0, 1188, 812, 850, 851, 852, 853,
1444 854, 855, 856, 857, 858, 859, 0, 0, 0, 306,
1445 0, 306, 554, 622, 624, 0, 0, 0, 0, 0,
1446 1168, 0, 200, 0, 0, 0, 198, 231, 231, 554,
1447 643, 0, 197, 0, 0, 208, 237, 237, 0, 0,
1448 1176, 1177, 0, 318, 97, 0, 0, 1181, 0, 303,
1449 0, 0, 0, 0, 150, 151, 152, 153, 154, 155,
1450 0, 306, 0, 0, 0, 0, 200, 0, 0, 0,
1451 0, 156, 157, 158, 200, 0, 197, 0, 200, 0,
1452 0, 200, 0, 306, 197, 1039, 1040, 0, 197, 232,
1453 410, 197, 0, 688, 232, 159, 232, 0, 0, 230,
1454 643, 695, 619, 0, 230, 0, 230, 0, 232, 232,
1455 200, 191, 710, 643, 0, 0, 0, 0, 230, 230,
1456 197, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1457 0, 0, 0, 0, 0, 0, 0, 168, 0, 0,
1458 0, 792, 0, 0, 0, 0, 817, 0, 0, 196,
1459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1460 0, 0, 119, 0, 0, 0, 0, 198, 710, 465,
1461 0, 229, 0, 0, 119, 0, 208, 1102, 0, 306,
1462 306, 306, 306, 306, 306, 841, 842, 0, 0, 0,
1463 0, 0, 0, 0, 459, 0, 459, 0, 0, 1115,
1464 1116, 0, 696, 0, 0, 0, 742, 0, 77, 304,
1465 305, 198, 171, 0, 0, 0, 0, 0, 0, 198,
1466 208, 1139, 1140, 198, 0, 0, 198, 0, 208, 0,
1467 119, 494, 208, 0, 231, 208, 0, 0, 0, 231,
1468 0, 231, 0, 237, 119, 0, 0, 0, 237, 0,
1469 237, 0, 0, 231, 231, 198, 0, 0, 0, 827,
1470 0, 0, 237, 237, 208, 0, 1165, 1166, 306, 0,
1471 833, 792, 200, 0, 792, 0, 0, 0, 0, 210,
1472 238, 238, 197, 0, 0, 0, 0, 0, 196, 0,
1473 0, 0, 0, 119, 232, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 230, 0, 0, 0, 0, 0,
1475 306, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1476 0, 0, 0, 936, 497, 0, 0, 0, 0, 942,
1477 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,
1478 0, 306, 306, 306, 306, 306, 306, 306, 306, 306,
1479 306, 306, 306, 306, 306, 306, 306, 306, -248, 306,
1480 0, 0, 0, 0, 303, 0, 0, 0, 0, 150,
1481 151, 152, 153, 154, 155, 0, 0, 0, 0, 792,
1482 791, 1095, 0, 0, 0, 303, 156, 157, 158, 0,
1483 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 0, 156, 157, 158,
1485 159, 200, 0, 0, 0, 0, 306, 198, 939, 0,
1486 210, 197, 0, 0, 0, 0, 208, 0, 0, 0,
1487 0, 159, 0, 0, 0, 0, 0, 0, 0, 231,
1488 0, 0, 0, 0, 0, 0, 0, 0, 237, 0,
1489 0, 0, 168, 710, 0, 0, 0, 0, 0, 0,
1490 0, 0, 0, 0, 210, 0, 0, 0, 0, 0,
1491 0, 0, 210, 168, 0, 0, 210, 0, 0, 210,
1492 0, 0, 0, 0, 0, 0, 0, 238, 0, 0,
1493 0, 0, 238, 0, 238, 0, 0, 0, 465, 0,
1494 0, 0, 0, 0, 0, 792, 238, 238, 210, 0,
1495 0, 0, 303, 495, 0, 0, 0, 150, 151, 152,
1496 153, 154, 155, 77, 304, 305, 0, 171, 0, 0,
1497 0, 0, 0, 0, 156, 157, 158, 0, 0, 0,
1498 0, 0, 0, 1041, 77, 304, 305, 0, 171, 0,
1499 0, 0, 0, 0, 0, 0, 198, 0, 159, 0,
1500 0, 0, 0, 0, 0, 208, 0, 0, 0, -1,
1501 1, 0, 20, 21, 22, 23, 0, 24, 0, 0,
1502 0, 0, 29, 30, 0, 0, 33, 34, 0, 36,
1503 37, 38, 39, -266, 0, 0, 0, 0, 0, 0,
1504 168, 0, 0, 2, 51, 52, 0, 0, 0, 0,
1505 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
1506 0, 0, 0, 0, 0, 0, 0, 0, 306, 76,
1507 0, 0, 0, 0, 0, 0, -398, -398, -398, 80,
1508 4, 306, 0, 0, 0, 5, 6, 7, 0, 0,
1509 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
1510 9, 10, 306, 0, 0, 0, 0, 0, 0, 0,
1511 210, 77, 304, 305, 0, 171, 0, 0, 11, 12,
1512 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1513 22, 23, 238, 24, 25, 26, 27, 28, 29, 30,
1514 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1515 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1516 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1517 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1518 71, 72, 73, 74, 75, 76, -2, 1, 0, 0,
1519 0, 0, 77, 78, 79, 80, 0, 81, 82, 83,
1520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1521 -266, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1522 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1523 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
1524 0, 0, 0, 0, 0, 0, 0, 0, 0, 210,
1525 0, 0, 0, -398, -398, -398, 0, 4, 0, 0,
1526 0, 0, 5, 6, 7, 0, 0, 0, 0, 0,
1527 0, 0, 0, 0, 0, 0, 8, 9, 10, 0,
1528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1529 0, 0, 0, 0, 0, 11, 12, 13, 0, 14,
1530 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1531 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1532 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1533 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1534 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1535 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1536 74, 75, 76, 0, 0, 0, 0, 0, 0, 77,
1537 78, 79, 80, 136, 81, 82, 83, 0, 137, 138,
1538 139, 0, 140, 141, 142, 143, 144, 145, 146, 147,
1539 148, -530, 535, 0, 0, 0, 149, 0, 0, 0,
1540 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1541 0, 0, 0, 0, -266, -266, 0, 3, 156, 157,
1542 158, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1543 0, 0, 0, 0, 0, 0, 0, 0, 0, -398,
1544 -398, -398, 159, 4, 0, 0, 0, 0, 0, 0,
1545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1546 0, 0, 0, 0, 0, 0, 161, 162, 163, 164,
1547 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1548 167, 11, 12, 13, 168, 14, 15, 16, 17, 18,
1549 19, 20, 21, 22, 23, 0, 24, 25, 26, 27,
1550 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1551 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1552 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1553 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1554 68, 69, 70, 71, 72, 73, 74, 75, 76, 0,
1555 0, 0, 0, 0, 0, 77, 169, 536, 80, 171,
1556 172, 82, 83, 136, 0, 0, 0, 0, 137, 138,
1557 139, 0, 140, 141, 142, 143, 144, 145, 146, 147,
1558 148, -530, 0, 0, 0, 0, 149, 0, 0, 0,
1559 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1560 0, 0, 0, 0, -266, -266, 0, 0, 156, 157,
1561 158, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1562 0, 0, 0, 0, 0, 0, 0, 0, 0, -266,
1563 -266, -266, 159, 0, 0, 0, 0, 0, 0, 0,
1564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1565 0, 0, 0, 0, 0, 0, 161, 162, 163, 164,
1566 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1567 167, -266, -266, -266, 168, -266, -266, -266, -266, -266,
1568 -266, -266, -266, -266, -266, 0, -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, -266,
1572 -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
1573 -266, -266, -266, -266, -266, -266, -266, -266, -266, 0,
1574 0, 0, 0, 0, 0, 77, 169, 170, -266, 171,
1575 172, 82, -266, 213, 0, 0, 0, 0, 137, 138,
1576 139, 0, 0, 214, 142, 143, 144, 145, 146, 147,
1577 215, -530, -534, 0, 0, 0, 216, 0, 0, 0,
1578 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1579 0, 0, 0, 0, -266, -266, 0, 0, 156, 157,
1580 158, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1581 0, 0, 0, 0, 0, 0, 0, 0, 0, -266,
1582 -266, -266, 159, 0, 0, 0, 0, 0, 0, 0,
1583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1584 0, 0, 0, 0, 0, 0, 161, 162, 163, 164,
1585 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1586 167, -266, -266, -266, 168, -266, -266, -266, -266, -266,
1587 -266, -266, -266, -266, -266, 0, -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, -266,
1591 -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
1592 -266, -266, -266, -266, -266, -266, -266, -266, -266, 0,
1593 0, 0, 0, 0, 0, 77, 169, 170, -266, 171,
1594 217, 218, -266, 213, 0, 0, 0, 0, 137, 138,
1595 139, 0, 0, 214, 142, 143, 144, 145, 146, 147,
1596 215, -476, -476, 0, 0, 0, 216, -476, 0, 0,
1597 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1598 0, 0, 0, 0, -266, -266, 136, 0, 156, 157,
1599 158, 137, 138, 139, 0, 140, 141, 142, 143, 144,
1600 145, 146, 147, 148, -530, 0, 0, 0, 0, 149,
1601 0, 0, 159, 0, 150, 151, 152, 153, 154, 155,
1602 0, 0, 0, 0, 0, 0, 0, -266, -266, 0,
1603 0, 156, 157, 158, 0, -476, 161, 162, 163, 164,
1604 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1605 167, 0, 0, 0, 168, 159, 0, 0, 0, 0,
1606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1607 0, 0, 0, 0, 0, 0, 0, 0, 160, 161,
1608 162, 163, 164, 165, 166, 0, 0, 0, 0, 0,
1609 0, 0, 0, 167, 0, 0, 0, 168, 0, 0,
1610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1612 0, 0, 0, 0, 0, 77, 169, 170, 0, 171,
1613 217, 218, 0, 0, 136, 0, 0, 0, 0, 137,
1614 138, 139, 0, 140, 141, 142, 143, 144, 145, 146,
1615 147, 148, -530, 0, 0, 0, 0, 149, 0, 0,
1616 0, 0, 150, 151, 152, 153, 154, 155, 77, 169,
1617 170, 0, 171, 172, 82, -266, -266, 213, 0, 156,
1618 157, 158, 137, 138, 139, 0, 0, 214, 142, 143,
1619 144, 145, 146, 147, 215, -530, -534, 0, 0, 0,
1620 216, 0, 0, 159, 0, 150, 151, 152, 153, 154,
1621 155, 0, 0, 0, 0, 0, 0, 0, -266, -266,
1622 0, 0, 156, 157, 158, 0, -503, 161, 162, 163,
1623 164, 165, 166, 0, 0, 0, 0, 0, 0, 0,
1624 0, 167, 0, 0, 0, 168, 159, 0, 0, 0,
1625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1626 0, 0, 0, 0, 0, 0, 0, 0, 0, -472,
1627 161, 162, 163, 164, 165, 166, 0, 0, 0, 0,
1628 0, 0, 0, 0, 167, 0, 0, 0, 168, 0,
1629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1631 0, 0, 0, 0, 0, 0, 77, 169, 170, 0,
1632 171, 172, 82, 0, 0, 136, 0, 0, 0, 0,
1633 137, 138, 139, 0, 140, 141, 142, 143, 144, 145,
1634 146, 147, 148, -530, 625, 0, 0, 0, 149, 0,
1635 0, 0, 0, 150, 151, 152, 153, 154, 155, 77,
1636 169, 170, 0, 171, 217, 218, -266, -266, 213, 0,
1637 156, 157, 158, 137, 138, 139, 0, 0, 214, 142,
1638 143, 144, 145, 146, 147, 215, -530, -534, 0, 0,
1639 0, 216, 0, 0, 159, 0, 150, 151, 152, 153,
1640 154, 155, 0, 0, 0, 0, 0, 0, 0, -266,
1641 -266, 0, 0, 156, 157, 158, 0, 0, 161, 162,
1642 163, 164, 165, 166, 0, 0, 0, 0, 0, 0,
1643 0, 0, 167, 0, 0, 0, 168, 159, 0, 0,
1644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1646 0, 161, 162, 163, 164, 165, 166, 0, 0, 0,
1647 0, 0, 0, 0, 0, 167, 0, 0, 0, 168,
1648 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1649 -530, 0, 0, 0, 0, 343, 0, 0, 0, 0,
1650 150, 151, 152, 153, 154, 155, 0, 77, 169, 170,
1651 0, 171, 172, 82, 0, 0, 136, 156, 157, 158,
1652 0, 137, 138, 139, 0, 140, 141, 142, 143, 144,
1653 145, 146, 147, 148, -530, 0, 0, 0, 0, 149,
1654 0, 159, 0, 0, 150, 151, 152, 153, 154, 155,
1655 77, 169, 170, 0, 171, 217, 218, -266, -266, 0,
1656 0, 156, 157, 158, 0, 0, 0, 0, 0, 0,
1657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1658 0, 0, 0, 168, 0, 159, 0, 0, 0, 0,
1659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1660 0, 0, 0, 0, 0, 0, 0, 0, 0, 161,
1661 162, 163, 164, 165, 166, 0, 0, 0, 0, 0,
1662 0, 0, 0, 167, 137, 138, 139, 168, 140, 141,
1663 142, 143, 144, 145, 146, 147, 215, -530, 552, 0,
1664 0, 0, 343, 0, 0, 0, 0, 150, 151, 152,
1665 153, 154, 155, 0, 77, 304, 305, 0, 171, 0,
1666 -266, -266, 0, 3, 156, 157, 158, 0, 0, 0,
1667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1668 0, 0, 0, 0, 0, 0, 0, 0, 159, 4,
1669 0, 0, 0, 0, 0, 0, 0, 0, 77, 169,
1670 170, 0, 171, 172, 82, 0, 0, 0, 0, 0,
1671 0, 0, 161, 162, 163, 164, 165, 166, 0, 0,
1672 0, 0, 0, 0, 0, 0, 553, 11, 12, 13,
1673 168, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1674 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1675 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1676 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1677 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1678 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1679 72, 73, 74, 75, 76, 0, 0, 0, 0, 0,
1680 0, 77, 169, 536, 80, 171, 172, 82, 83, 137,
1681 138, 139, 0, 140, 141, 142, 143, 144, 145, 146,
1682 147, 215, -530, 626, 0, 0, 0, 343, 0, 0,
1683 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1684 0, 0, 0, 0, 0, -266, -266, 0, 3, 156,
1685 157, 158, 0, 0, 0, 0, 0, 0, 0, 0,
1686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1687 0, 0, 0, 159, 4, 0, 0, 0, 0, 0,
1688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1689 0, 0, 0, 0, 0, 0, 0, 161, 162, 163,
1690 164, 165, 166, 0, 0, 0, 0, 0, 0, 0,
1691 0, 167, 11, 12, 13, 168, 14, 15, 16, 17,
1692 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1693 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1694 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1695 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1696 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1697 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1698 0, 0, 0, 0, 0, 0, 77, 169, 536, 80,
1699 171, 172, 82, 83, 137, 138, 139, 0, 140, 141,
1700 142, 143, 144, 145, 146, 147, 215, -530, 638, 0,
1701 0, 0, 343, 0, 0, 0, 0, 150, 151, 152,
1702 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1703 -266, -266, 0, 3, 156, 157, 158, 0, 0, 0,
1704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1705 0, 0, 0, 0, 0, 0, 0, 0, 159, 4,
1706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1708 0, 0, 161, 162, 163, 164, 165, 166, 0, 0,
1709 0, 0, 0, 0, 0, 0, 639, 11, 12, 13,
1710 168, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1711 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1712 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1713 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1714 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1715 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1716 72, 73, 74, 75, 76, 0, 0, 0, 0, 0,
1717 0, 77, 169, 536, 80, 171, 172, 82, 83, 137,
1718 138, 139, 0, 140, 141, 142, 143, 144, 145, 146,
1719 147, 215, -530, 637, 0, 0, 0, 343, 0, 0,
1720 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1721 0, 0, 0, 0, 0, 0, 0, 0, 0, 156,
1722 157, 158, 137, 138, 139, 0, 140, 141, 142, 143,
1723 144, 145, 146, 147, 215, -530, 641, 0, 0, 0,
1724 343, 0, 0, 159, 0, 150, 151, 152, 153, 154,
1725 155, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1726 0, 0, 156, 157, 158, 0, 0, 161, 162, 163,
1727 164, 165, 166, 0, 0, 0, 0, 0, 0, 0,
1728 0, 167, 0, 0, 0, 168, 159, 0, 0, 0,
1729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1731 161, 162, 163, 164, 165, 166, 0, 0, 0, 0,
1732 0, 0, 0, 0, 642, 137, 138, 139, 168, 140,
1733 141, 142, 143, 144, 145, 146, 147, 215, -530, 694,
1734 0, 0, 0, 343, 0, 0, 0, 0, 150, 151,
1735 152, 153, 154, 155, 0, 0, 77, 169, 170, 0,
1736 171, 172, 82, 0, 0, 156, 157, 158, 137, 138,
1737 139, 0, 140, 141, 142, 143, 144, 145, 146, 147,
1738 215, -530, 772, 0, 0, 0, 343, 0, 0, 159,
1739 0, 150, 151, 152, 153, 154, 155, 0, 0, 77,
1740 169, 170, 0, 171, 172, 82, 0, 0, 156, 157,
1741 158, 0, 0, 161, 162, 163, 164, 165, 166, 0,
1742 0, 0, 0, 0, 0, 0, 0, 167, 0, 0,
1743 0, 168, 159, 0, 0, 0, 0, 0, 0, 0,
1744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745 0, 0, 0, 0, 0, 0, 161, 162, 163, 164,
1746 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1747 167, 137, 138, 139, 168, 140, 141, 142, 143, 144,
1748 145, 146, 147, 215, -530, 773, 0, 0, 0, 343,
1749 0, 0, 0, 0, 150, 151, 152, 153, 154, 155,
1750 0, 0, 77, 169, 170, 0, 171, 172, 82, 0,
1751 0, 156, 157, 158, 137, 138, 139, 0, 140, 141,
1752 142, 143, 144, 145, 146, 147, 215, -530, 775, 0,
1753 0, 0, 343, 0, 0, 159, 0, 150, 151, 152,
1754 153, 154, 155, 0, 0, 77, 169, 170, 0, 171,
1755 172, 82, 0, 0, 156, 157, 158, 0, 0, 161,
1756 162, 163, 164, 165, 166, 0, 0, 0, 0, 0,
1757 0, 0, 0, 774, 0, 0, 0, 168, 159, 0,
1758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1760 0, 0, 161, 162, 163, 164, 165, 166, 0, 0,
1761 0, 0, 0, 0, 0, 0, 167, 137, 138, 139,
1762 168, 140, 141, 142, 143, 144, 145, 146, 147, 215,
1763 -530, 898, 0, 0, 0, 343, 0, 0, 0, 0,
1764 150, 151, 152, 153, 154, 155, 0, 0, 77, 169,
1765 170, 0, 171, 172, 82, 0, 0, 156, 157, 158,
1766 137, 138, 139, 0, 140, 141, 142, 143, 144, 145,
1767 146, 147, 215, -530, 0, 0, 0, 0, 343, 0,
1768 0, 159, 0, 150, 151, 152, 153, 154, 155, 0,
1769 0, 77, 169, 170, 0, 171, 172, 82, 0, 0,
1770 156, 157, 158, 0, 0, 161, 162, 163, 164, 165,
1771 166, 0, 0, 0, 0, 0, 0, 0, 0, 167,
1772 0, 0, 0, 168, 159, 0, 0, 0, 0, 0,
1773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1774 0, 0, 0, 0, 0, 0, 0, 0, 161, 162,
1775 163, 164, 165, 166, -132, 0, 0, 0, 0, -132,
1776 0, 0, 167, 0, 0, 0, 168, 0, 0, 0,
1777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1778 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1779 0, 0, 0, 0, 77, 169, 170, 0, 171, 172,
1780 82, 0, 0, 0, 0, 0, 4, 0, 0, 0,
1781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1783 0, 0, 0, -533, 0, 0, 0, 77, 169, 170,
1784 0, 171, 172, 82, 11, 12, 13, 0, 14, 15,
1785 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1786 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1787 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1788 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1789 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1790 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1791 75, 76, 0, 0, 0, 0, 0, 0, 0, 0,
1792 131, 80, 11, 12, 13, 83, 14, 15, 16, 17,
1793 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1794 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1795 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1796 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1797 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1798 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1799 -673, 0, 0, 0, 0, 0, 0, 0, 131, 80,
1800 0, 0, 0, 83, 0, 0, 0, 0, 0, 0,
1801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1803 0, 0, 0, 0, 0, -675, -675, -675, 0, 0,
1804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1805 0, 0, 0, 0, -675, 0, 0, 0, 0, 0,
1806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1807 0, 0, 0, 0, 0, 0, 0, -675, -675, -675,
1808 0, -675, -675, -675, -675, -675, -675, -675, -675, -675,
1809 -675, 0, -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, -675, -675, -675, -675, -675,
1813 -675, -675, -675, -675, -675, -675, -675, -675, -675, -675,
1814 -675, -675, -675, -675, -675, 0, 0, 0, 0, 0,
1815 791, 0, 0, 0, -675, 303, 0, 0, -675, 0,
1816 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1817 0, 0, 0, 0, 0, 0, 0, 156, 157, 158,
1818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820 0, 159, 0, 0, 0, 0, 0, 0, 0, 0,
1821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1823 0, 0, 0, 0, -266, 0, 0, 0, 0, 0,
1824 0, 0, 0, 168, 2, 303, 0, 0, 598, 0,
1825 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1826 0, 0, 0, 0, 0, 0, 0, 156, 157, 158,
1827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1829 0, 159, 0, 0, 0, 0, 0, 0, 0, 0,
1830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1831 0, 0, 0, 0, 77, 304, 305, 0, 171, 11,
1832 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1833 21, 22, 23, 168, 24, 25, 26, 27, 28, 29,
1834 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1835 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1836 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1837 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1838 70, 71, 72, 73, 74, 75, 76, 0, 0, 0,
1839 0, 0, 0, 77, 78, 79, 80, 0, 81, 82,
1840 83, 0, 0, 0, 77, 304, 305, 303, 171, 0,
1841 679, 0, 150, 151, 152, 153, 154, 155, 303, 937,
1842 0, 0, 0, 150, 151, 152, 153, 154, 155, 156,
1843 157, 158, 0, 0, 0, 0, 0, 0, 303, -248,
1844 156, 157, 158, 150, 151, 152, 153, 154, 155, 0,
1845 0, 0, 0, 159, 0, 0, 0, 0, 0, 0,
1846 156, 157, 158, 303, 159, 0, 0, 0, 150, 151,
1847 152, 153, 154, 155, 0, 0, 0, 0, 0, 0,
1848 0, 0, 0, 0, 159, 156, 157, 158, 0, 0,
1849 0, 0, 332, 0, 0, 168, 0, 150, 151, 152,
1850 153, 154, 155, 0, 0, 0, 168, 0, 0, 159,
1851 0, 0, 621, 0, 156, 157, 158, 150, 151, 152,
1852 153, 154, 155, 623, 0, 0, 168, 0, 150, 151,
1853 152, 153, 154, 155, 156, 157, 158, 0, 159, 0,
1854 0, 0, 0, 0, 0, 156, 157, 158, 0, 0,
1855 0, 168, 0, 0, 0, 0, 0, 0, 159, 0,
1856 0, 0, 0, 0, 0, 0, 77, 304, 305, 159,
1857 171, 0, 0, 0, 0, 0, 0, 77, 304, 305,
1858 168, 171, 697, 0, 0, 0, 0, 698, 699, 700,
1859 701, 702, 703, 0, 0, 0, 0, 77, 304, 305,
1860 168, 171, 0, 0, 156, 704, 705, 0, 0, 0,
1861 0, 168, 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 0, 77, 304, 305, 0, 171, 0, 706, 0,
1863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1865 0, 77, 304, 305, 0, 171, 0, 0, 0, 0,
1866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1867 168, 77, 304, 305, 0, 171, 0, 0, 0, -192,
1868 -192, 0, 77, 304, 305, 0, 171, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1874 0, 77, 707, 708, 0, 171, 11, 12, 13, 0,
1875 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1876 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1877 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1878 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1879 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1880 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1881 73, 74, 75, 76, 3, 0, 0, 0, 0, 0,
1882 0, 0, 131, 80, 0, 0, 0, 83, 0, 0,
1883 0, 0, 0, 0, 0, 0, -398, -398, -398, 0,
1884 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1887 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1888 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1889 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1890 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1891 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1892 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1893 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1894 71, 72, 73, 74, 75, 76, 3, 0, 0, 0,
1895 0, 0, 0, 0, 131, 80, 0, 0, 0, 83,
1896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1897 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
1898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1901 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1902 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1903 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1904 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1905 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1906 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1907 69, 70, 71, 72, 73, 74, 75, 76, 3, 0,
1908 0, 0, 0, 0, 77, 1046, 131, 80, 0, 0,
1909 0, 83, 0, 0, 0, 0, 0, 0, 0, 0,
1910 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
1911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1914 0, 0, 11, 12, 13, 0, 14, 15, 16, 17,
1915 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1916 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1917 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1918 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1919 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1920 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1921 -398, -398, -398, 0, 0, 0, 0, 0, 131, 80,
1922 0, 0, 0, 83, 0, 0, 0, 0, 0, 0,
1923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1925 0, 0, 11, 12, 13, 0, 14, 15, 16, 17,
1926 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1927 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1928 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1929 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1930 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1931 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1932 8, 9, 10, 0, 0, 0, 0, 0, 131, 80,
1933 0, 0, 0, 83, 0, 0, 0, 0, 0, 11,
1934 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1935 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1936 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1937 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1938 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1939 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1940 70, 71, 72, 73, 74, 75, 76, 0, 0, 0,
1941 0, 0, 0, 0, 0, 131, 80, 11, 12, 13,
1942 83, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1943 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1944 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1945 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1946 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1947 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1948 72, 73, 74, 75, 76, 0, 0, 0, 0, 0,
1949 0, 0, 0, 131, 80, 0, 0, 0, 83
1952 static const short yycheck[] = { 0,
1953 137, 295, 3, 441, 117, 388, 7, 8, 9, 10,
1954 343, 596, 0, 425, 631, 2, 530, 278, 378, 379,
1955 473, 380, 381, 389, 382, 383, 384, 385, 528, 19,
1956 21, 227, 631, 8, 25, 0, 791, 631, 631, 794,
1957 18, 27, 386, 387, 216, 451, 24, 906, 539, 221,
1958 654, 223, 797, 5, 390, 669, 34, 886, 803, 471,
1959 600, 635, 258, 235, 913, 556, 297, 0, 894, 426,
1960 687, 5, 24, 28, 486, 1058, 1059, 34, 21, 87,
1961 88, 21, 34, 84, 27, 24, 5, 27, 687, 44,
1962 24, 25, 26, 687, 687, 34, 84, 8, 22, 21,
1963 34, 19, 26, 25, 28, 28, 25, 86, 24, 117,
1964 118, 9, 10, 49, 50, 24, 117, 631, 34, 84,
1965 44, 44, 21, 131, 41, 34, 25, 49, 50, 5,
1966 0, 631, 133, 3, 21, 5, 18, 124, 25, 56,
1967 1123, 681, 29, 144, 899, 41, 133, 756, 149, 25,
1968 18, 84, 109, 110, 53, 54, 985, 986, 32, 33,
1969 56, 1020, 771, 1022, 1013, 24, 167, 21, 580, 995,
1970 996, 25, 917, 687, 149, 21, 582, 781, 9, 10,
1971 784, 18, 756, 797, 21, 39, 24, 687, 25, 803,
1972 602, 782, 193, 183, 184, 185, 187, 771, 188, 189,
1973 201, 187, 203, 399, 205, 183, 184, 208, 150, 151,
1974 152, 153, 154, 155, 84, 216, 8, 478, 193, 672,
1975 221, 452, 223, 24, 581, 558, 201, 1056, 98, 26,
1976 205, 183, 184, 208, 235, 236, 237, 34, 149, 109,
1977 110, 1067, 18, 1069, 183, 184, 21, 23, 631, 421,
1978 25, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1979 75, 635, 237, 133, 24, 631, 0, 183, 184, 3,
1980 1025, 631, 631, 631, 183, 184, 277, 11, 12, 280,
1981 281, 282, 193, 577, 883, 24, 21, 631, 425, 277,
1982 25, 5, 107, 294, 205, 631, 111, 208, 113, 300,
1983 115, 562, 24, 917, 687, 120, 294, 183, 184, 185,
1984 18, 644, 188, 189, 905, 130, 907, 132, 216, 18,
1985 21, 687, 21, 221, 25, 223, 237, 687, 687, 687,
1986 22, 32, 33, 995, 471, 322, 18, 235, 236, 21,
1987 925, 23, 34, 687, 345, 606, 1172, 635, 18, 486,
1988 84, 687, 353, 18, 355, 972, 21, 149, 635, 174,
1989 621, 814, 623, 24, 878, 99, 100, 101, 102, 103,
1990 104, 105, 106, 972, 108, 787, 876, 111, 972, 972,
1991 635, 921, 756, 117, 18, 216, 24, 21, 26, 16,
1992 221, 25, 223, 127, 128, 129, 34, 771, 399, 133,
1993 8, 193, 21, 16, 235, 236, 25, 903, 18, 201,
1994 906, 21, 1074, 205, 21, 149, 208, 1079, 25, 24,
1995 421, 26, 156, 21, 399, 16, 427, 25, 429, 34,
1996 49, 50, 16, 375, 376, 377, 697, 26, 439, 28,
1997 441, 429, 443, 580, 21, 237, 261, 15, 25, 99,
1998 451, 321, 417, 454, 1053, 44, 29, 458, 972, 25,
1999 26, 22, 28, 428, 451, 602, 1128, 22, 756, 183,
2000 184, 185, 972, 288, 188, 189, 291, 21, 44, 756,
2001 22, 25, 216, 771, 299, 5, 39, 302, 399, 490,
2002 873, 183, 184, 185, 771, 40, 188, 189, 499, 500,
2003 5, 756, 19, 863, 864, 25, 865, 866, 874, 867,
2004 868, 869, 870, 53, 54, 0, 771, 26, 3, 28,
2005 254, 1120, 7, 421, 1020, 21, 1022, 871, 872, 25,
2006 25, 26, 21, 28, 476, 44, 25, 538, 539, 875,
2007 24, 149, 26, 277, 278, 546, 280, 281, 5, 44,
2008 37, 38, 553, 49, 50, 556, 557, 21, 546, 672,
2009 294, 25, 432, 538, 51, 52, 300, 24, 26, 303,
2010 28, 21, 21, 55, 539, 25, 25, 34, 183, 184,
2011 185, 582, 93, 188, 189, 193, 44, 93, 322, 972,
2012 421, 556, 886, 201, 24, 582, 26, 205, 931, 84,
2013 208, 416, 18, 22, 21, 21, 972, 399, 25, 343,
2014 22, 426, 972, 972, 972, 187, 431, 25, 25, 26,
2015 28, 436, 24, 438, 5, 919, 627, 628, 972, 237,
2016 631, 446, 117, 21, 93, 450, 972, 25, 639, 640,
2017 24, 642, 26, 24, 25, 26, 1099, 1085, 133, 18,
2018 787, 34, 21, 34, 18, 22, 657, 21, 659, 144,
2019 19, 49, 50, 183, 184, 185, 20, 668, 188, 189,
2020 671, 672, 673, 8, 9, 10, 42, 43, 183, 184,
2021 185, 26, 416, 188, 189, 672, 687, 981, 18, 34,
2022 677, 21, 829, 21, 21, 429, 990, 25, 25, 93,
2023 34, 814, 436, 86, 438, 24, 440, 441, 27, 443,
2024 25, 26, 24, 28, 448, 34, 1010, 451, 24, 589,
2025 26, 21, 179, 180, 458, 25, 183, 184, 18, 44,
2026 187, 21, 1026, 6, 7, 1147, 470, 37, 38, 473,
2027 27, 475, 18, 21, 478, 24, 538, 25, 27, 21,
2028 21, 51, 52, 25, 25, 34, 698, 699, 700, 701,
2029 702, 703, 18, 21, 18, 21, 581, 25, 1062, 1181,
2030 21, 20, 21, 774, 25, 1036, 183, 184, 185, 37,
2031 38, 188, 189, 18, 21, 600, 24, 1081, 25, 23,
2032 605, 399, 277, 51, 52, 280, 281, 282, 21, 22,
2033 183, 184, 183, 184, 185, 188, 189, 188, 189, 294,
2034 32, 33, 546, 814, 149, 300, 22, 632, 21, 634,
2035 24, 18, 25, 824, 25, 559, 25, 814, 562, 24,
2036 34, 18, 21, 24, 18, 26, 25, 28, 183, 184,
2037 185, 575, 576, 188, 189, 34, 35, 36, 582, 183,
2038 184, 185, 18, 44, 188, 189, 47, 48, 193, 49,
2039 50, 24, 24, 26, 183, 184, 201, 601, 187, 9,
2040 205, 34, 606, 208, 21, 21, 37, 38, 25, 25,
2041 21, 216, 616, 617, 25, 886, 221, 621, 223, 623,
2042 51, 52, 21, 894, 709, 21, 25, 53, 54, 25,
2043 235, 236, 237, 18, 183, 184, 32, 33, 187, 779,
2044 18, 24, 782, 26, 648, 28, 19, 21, 860, 861,
2045 862, 25, 656, 21, 658, 20, 21, 25, 662, 663,
2046 538, 44, 21, 667, 47, 48, 25, 671, 672, 940,
2047 941, 20, 21, 677, 429, 34, 35, 36, 21, 764,
2048 765, 8, 25, 21, 439, 11, 441, 25, 443, 183,
2049 184, 185, 25, 697, 188, 189, 451, 89, 21, 454,
2050 21, 972, 25, 458, 25, 179, 180, 21, 22, 183,
2051 184, 796, 983, 187, 985, 986, 1099, 21, 137, 32,
2052 33, 25, 993, 935, 995, 996, 21, 67, 68, 69,
2053 25, 150, 151, 152, 153, 154, 155, 11, 157, 158,
2054 1147, 1012, 21, 21, 499, 500, 1017, 25, 983, 19,
2055 183, 184, 185, 1160, 19, 188, 189, 190, 1029, 1017,
2056 21, 1032, 19, 903, 25, 905, 906, 907, 34, 35,
2057 36, 1029, 1029, 777, 1181, 21, 203, 21, 19, 25,
2058 89, 25, 1053, 1054, 1055, 1056, 24, 1058, 1059, 109,
2059 110, 546, 27, 25, 399, 21, 1067, 22, 1069, 1070,
2060 34, 35, 36, 1074, 23, 1076, 1077, 21, 1079, 813,
2061 814, 18, 816, 24, 1085, 21, 421, 902, 11, 24,
2062 147, 25, 149, 51, 52, 53, 24, 582, 1099, 24,
2063 27, 25, 24, 23, 20, 19, 921, 20, 57, 58,
2064 59, 60, 61, 62, 63, 64, 65, 66, 19, 1120,
2065 1121, 1122, 1123, 23, 21, 27, 5, 1128, 8, 9,
2066 10, 25, 24, 22, 24, 20, 193, 25, 20, 72,
2067 27, 25, 18, 21, 201, 22, 27, 1148, 205, 24,
2068 1020, 208, 1022, 25, 72, 73, 74, 75, 25, 216,
2069 1148, 79, 80, 81, 82, 83, 84, 85, 902, 25,
2070 25, 1172, 657, 39, 659, 909, 29, 40, 25, 184,
2071 237, 55, 89, 668, 89, 335, 671, 672, 345, 18,
2072 89, 89, 25, 89, 89, 25, 353, 24, 355, 25,
2073 1015, 25, 18, 538, 25, 18, 21, 187, 40, 359,
2074 18, 21, 23, 182, 364, 365, 366, 367, 368, 369,
2075 370, 371, 372, 373, 374, 24, 375, 376, 377, 378,
2076 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
2077 389, 390, 18, 89, 189, 395, 303, 22, 22, 21,
2078 21, 8, 9, 10, 311, 312, 313, 314, 22, 20,
2079 20, 8, 9, 10, 89, 27, 25, 25, 18, 149,
2080 427, 40, 191, 27, 1089, 332, 425, 25, 20, 20,
2081 1014, 27, 25, 1017, 0, 0, 343, 84, 300, 1172,
2082 894, 1141, 1070, 1044, 975, 1029, 984, 1031, 660, 1120,
2083 1012, 844, 1036, 360, 443, 1039, 1040, 769, 1148, 562,
2084 659, 657, 814, 193, 671, 124, 322, 10, 341, 236,
2085 1104, 201, 471, 490, 399, 205, 687, 476, 208, 814,
2086 972, -1, 23, 490, -1, -1, 216, 486, -1, 824,
2087 -1, 221, 399, 223, -1, -1, 1080, -1, -1, -1,
2088 407, 1085, -1, 1087, 1088, 235, 236, 237, -1, -1,
2089 -1, -1, -1, -1, 1179, 1099, 57, 58, 59, 60,
2090 61, 62, 63, 64, 65, 66, -1, -1, -1, 528,
2091 -1, 530, 539, 532, 533, -1, -1, -1, -1, -1,
2092 1124, -1, 149, -1, -1, -1, 8, 9, 10, 556,
2093 557, -1, 149, -1, -1, 8, 9, 10, -1, -1,
2094 1144, 1145, -1, 18, 1148, -1, -1, 1151, -1, 24,
2095 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2096 -1, 580, -1, -1, -1, -1, 193, -1, -1, -1,
2097 -1, 46, 47, 48, 201, -1, 193, -1, 205, -1,
2098 -1, 208, -1, 602, 201, 940, 941, -1, 205, 216,
2099 217, 208, -1, 613, 221, 70, 223, -1, -1, 216,
2100 627, 628, 529, -1, 221, -1, 223, -1, 235, 236,
2101 237, 538, 631, 640, -1, -1, -1, -1, 235, 236,
2102 237, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2103 -1, -1, -1, -1, -1, -1, -1, 112, -1, -1,
2104 -1, 661, -1, -1, -1, -1, 673, -1, -1, 399,
2105 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2106 -1, -1, 1017, -1, -1, -1, -1, 149, 687, 596,
2107 -1, 421, -1, -1, 1029, -1, 149, 1032, -1, 698,
2108 699, 700, 701, 702, 703, 704, 705, -1, -1, -1,
2109 -1, -1, -1, -1, 621, -1, 623, -1, -1, 1054,
2110 1055, -1, 629, -1, -1, -1, 633, -1, 183, 184,
2111 185, 193, 187, -1, -1, -1, -1, -1, -1, 201,
2112 193, 1076, 1077, 205, -1, -1, 208, -1, 201, -1,
2113 1085, 358, 205, -1, 216, 208, -1, -1, -1, 221,
2114 -1, 223, -1, 216, 1099, -1, -1, -1, 221, -1,
2115 223, -1, -1, 235, 236, 237, -1, -1, -1, 686,
2116 -1, -1, 235, 236, 237, -1, 1121, 1122, 787, -1,
2117 697, 791, 399, -1, 794, -1, -1, -1, -1, 8,
2118 9, 10, 399, -1, -1, -1, -1, -1, 538, -1,
2119 -1, -1, -1, 1148, 421, -1, -1, -1, -1, -1,
2120 -1, -1, -1, -1, 421, -1, -1, -1, -1, -1,
2121 829, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2122 -1, -1, -1, 843, 844, -1, -1, -1, -1, 849,
2123 850, 851, 852, 853, 854, 855, 856, 857, 858, 859,
2124 -1, 860, 861, 862, 863, 864, 865, 866, 867, 868,
2125 869, 870, 871, 872, 873, 874, 875, 876, 18, 878,
2126 -1, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2127 30, 31, 32, 33, 34, -1, -1, -1, -1, 899,
2128 19, 20, -1, -1, -1, 24, 46, 47, 48, -1,
2129 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2130 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2131 70, 538, -1, -1, -1, -1, 935, 399, 845, -1,
2132 149, 538, -1, -1, -1, -1, 399, -1, -1, -1,
2133 -1, 70, -1, -1, -1, -1, -1, -1, -1, 421,
2134 -1, -1, -1, -1, -1, -1, -1, -1, 421, -1,
2135 -1, -1, 112, 972, -1, -1, -1, -1, -1, -1,
2136 -1, -1, -1, -1, 193, -1, -1, -1, -1, -1,
2137 -1, -1, 201, 112, -1, -1, 205, -1, -1, 208,
2138 -1, -1, -1, -1, -1, -1, -1, 216, -1, -1,
2139 -1, -1, 221, -1, 223, -1, -1, -1, 925, -1,
2140 -1, -1, -1, -1, -1, 1025, 235, 236, 237, -1,
2141 -1, -1, 24, 25, -1, -1, -1, 29, 30, 31,
2142 32, 33, 34, 183, 184, 185, -1, 187, -1, -1,
2143 -1, -1, -1, -1, 46, 47, 48, -1, -1, -1,
2144 -1, -1, -1, 970, 183, 184, 185, -1, 187, -1,
2145 -1, -1, -1, -1, -1, -1, 538, -1, 70, -1,
2146 -1, -1, -1, -1, -1, 538, -1, -1, -1, 0,
2147 1, -1, 119, 120, 121, 122, -1, 124, -1, -1,
2148 -1, -1, 129, 130, -1, -1, 133, 134, -1, 136,
2149 137, 138, 139, 24, -1, -1, -1, -1, -1, -1,
2150 112, -1, -1, 34, 151, 152, -1, -1, -1, -1,
2151 -1, -1, -1, -1, 45, -1, -1, -1, -1, -1,
2152 -1, -1, -1, -1, -1, -1, -1, -1, 1147, 176,
2153 -1, -1, -1, -1, -1, -1, 67, 68, 69, 186,
2154 71, 1160, -1, -1, -1, 76, 77, 78, -1, -1,
2155 -1, -1, -1, -1, -1, -1, -1, -1, -1, 90,
2156 91, 92, 1181, -1, -1, -1, -1, -1, -1, -1,
2157 399, 183, 184, 185, -1, 187, -1, -1, 109, 110,
2158 111, -1, 113, 114, 115, 116, 117, 118, 119, 120,
2159 121, 122, 421, 124, 125, 126, 127, 128, 129, 130,
2160 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2161 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2162 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2163 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2164 171, 172, 173, 174, 175, 176, 0, 1, -1, -1,
2165 -1, -1, 183, 184, 185, 186, -1, 188, 189, 190,
2166 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2167 24, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2168 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2169 -1, 45, -1, -1, -1, -1, -1, -1, -1, -1,
2170 -1, -1, -1, -1, -1, -1, -1, -1, -1, 538,
2171 -1, -1, -1, 67, 68, 69, -1, 71, -1, -1,
2172 -1, -1, 76, 77, 78, -1, -1, -1, -1, -1,
2173 -1, -1, -1, -1, -1, -1, 90, 91, 92, -1,
2174 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2175 -1, -1, -1, -1, -1, 109, 110, 111, -1, 113,
2176 114, 115, 116, 117, 118, 119, 120, 121, 122, -1,
2177 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2178 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2179 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2180 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2181 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2182 174, 175, 176, -1, -1, -1, -1, -1, -1, 183,
2183 184, 185, 186, 1, 188, 189, 190, -1, 6, 7,
2184 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2185 18, 19, 20, -1, -1, -1, 24, -1, -1, -1,
2186 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2187 -1, -1, -1, -1, 42, 43, -1, 45, 46, 47,
2188 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2189 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
2190 68, 69, 70, 71, -1, -1, -1, -1, -1, -1,
2191 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2192 -1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
2193 98, 99, -1, -1, -1, -1, -1, -1, -1, -1,
2194 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2195 118, 119, 120, 121, 122, -1, 124, 125, 126, 127,
2196 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2197 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2198 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2199 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2200 168, 169, 170, 171, 172, 173, 174, 175, 176, -1,
2201 -1, -1, -1, -1, -1, 183, 184, 185, 186, 187,
2202 188, 189, 190, 1, -1, -1, -1, -1, 6, 7,
2203 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2204 18, 19, -1, -1, -1, -1, 24, -1, -1, -1,
2205 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2206 -1, -1, -1, -1, 42, 43, -1, -1, 46, 47,
2207 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2208 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
2209 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2210 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2211 -1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
2212 98, 99, -1, -1, -1, -1, -1, -1, -1, -1,
2213 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2214 118, 119, 120, 121, 122, -1, 124, 125, 126, 127,
2215 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2216 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2217 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2218 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2219 168, 169, 170, 171, 172, 173, 174, 175, 176, -1,
2220 -1, -1, -1, -1, -1, 183, 184, 185, 186, 187,
2221 188, 189, 190, 1, -1, -1, -1, -1, 6, 7,
2222 8, -1, -1, 11, 12, 13, 14, 15, 16, 17,
2223 18, 19, 20, -1, -1, -1, 24, -1, -1, -1,
2224 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2225 -1, -1, -1, -1, 42, 43, -1, -1, 46, 47,
2226 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2227 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
2228 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2229 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2230 -1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
2231 98, 99, -1, -1, -1, -1, -1, -1, -1, -1,
2232 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2233 118, 119, 120, 121, 122, -1, 124, 125, 126, 127,
2234 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2235 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2236 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2237 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2238 168, 169, 170, 171, 172, 173, 174, 175, 176, -1,
2239 -1, -1, -1, -1, -1, 183, 184, 185, 186, 187,
2240 188, 189, 190, 1, -1, -1, -1, -1, 6, 7,
2241 8, -1, -1, 11, 12, 13, 14, 15, 16, 17,
2242 18, 19, 20, -1, -1, -1, 24, 25, -1, -1,
2243 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2244 -1, -1, -1, -1, 42, 43, 1, -1, 46, 47,
2245 48, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2246 15, 16, 17, 18, 19, -1, -1, -1, -1, 24,
2247 -1, -1, 70, -1, 29, 30, 31, 32, 33, 34,
2248 -1, -1, -1, -1, -1, -1, -1, 42, 43, -1,
2249 -1, 46, 47, 48, -1, 93, 94, 95, 96, 97,
2250 98, 99, -1, -1, -1, -1, -1, -1, -1, -1,
2251 108, -1, -1, -1, 112, 70, -1, -1, -1, -1,
2252 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2253 -1, -1, -1, -1, -1, -1, -1, -1, 93, 94,
2254 95, 96, 97, 98, 99, -1, -1, -1, -1, -1,
2255 -1, -1, -1, 108, -1, -1, -1, 112, -1, -1,
2256 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2257 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2258 -1, -1, -1, -1, -1, 183, 184, 185, -1, 187,
2259 188, 189, -1, -1, 1, -1, -1, -1, -1, 6,
2260 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2261 17, 18, 19, -1, -1, -1, -1, 24, -1, -1,
2262 -1, -1, 29, 30, 31, 32, 33, 34, 183, 184,
2263 185, -1, 187, 188, 189, 42, 43, 1, -1, 46,
2264 47, 48, 6, 7, 8, -1, -1, 11, 12, 13,
2265 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2266 24, -1, -1, 70, -1, 29, 30, 31, 32, 33,
2267 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
2268 -1, -1, 46, 47, 48, -1, 93, 94, 95, 96,
2269 97, 98, 99, -1, -1, -1, -1, -1, -1, -1,
2270 -1, 108, -1, -1, -1, 112, 70, -1, -1, -1,
2271 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2272 -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
2273 94, 95, 96, 97, 98, 99, -1, -1, -1, -1,
2274 -1, -1, -1, -1, 108, -1, -1, -1, 112, -1,
2275 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2276 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2277 -1, -1, -1, -1, -1, -1, 183, 184, 185, -1,
2278 187, 188, 189, -1, -1, 1, -1, -1, -1, -1,
2279 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2280 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2281 -1, -1, -1, 29, 30, 31, 32, 33, 34, 183,
2282 184, 185, -1, 187, 188, 189, 42, 43, 1, -1,
2283 46, 47, 48, 6, 7, 8, -1, -1, 11, 12,
2284 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2285 -1, 24, -1, -1, 70, -1, 29, 30, 31, 32,
2286 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2287 43, -1, -1, 46, 47, 48, -1, -1, 94, 95,
2288 96, 97, 98, 99, -1, -1, -1, -1, -1, -1,
2289 -1, -1, 108, -1, -1, -1, 112, 70, -1, -1,
2290 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2291 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2292 -1, 94, 95, 96, 97, 98, 99, -1, -1, -1,
2293 -1, -1, -1, -1, -1, 108, -1, -1, -1, 112,
2294 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2295 19, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2296 29, 30, 31, 32, 33, 34, -1, 183, 184, 185,
2297 -1, 187, 188, 189, -1, -1, 1, 46, 47, 48,
2298 -1, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2299 15, 16, 17, 18, 19, -1, -1, -1, -1, 24,
2300 -1, 70, -1, -1, 29, 30, 31, 32, 33, 34,
2301 183, 184, 185, -1, 187, 188, 189, 42, 43, -1,
2302 -1, 46, 47, 48, -1, -1, -1, -1, -1, -1,
2303 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2304 -1, -1, -1, 112, -1, 70, -1, -1, -1, -1,
2305 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2306 -1, -1, -1, -1, -1, -1, -1, -1, -1, 94,
2307 95, 96, 97, 98, 99, -1, -1, -1, -1, -1,
2308 -1, -1, -1, 108, 6, 7, 8, 112, 10, 11,
2309 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2310 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2311 32, 33, 34, -1, 183, 184, 185, -1, 187, -1,
2312 42, 43, -1, 45, 46, 47, 48, -1, -1, -1,
2313 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2314 -1, -1, -1, -1, -1, -1, -1, -1, 70, 71,
2315 -1, -1, -1, -1, -1, -1, -1, -1, 183, 184,
2316 185, -1, 187, 188, 189, -1, -1, -1, -1, -1,
2317 -1, -1, 94, 95, 96, 97, 98, 99, -1, -1,
2318 -1, -1, -1, -1, -1, -1, 108, 109, 110, 111,
2319 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2320 122, -1, 124, 125, 126, 127, 128, 129, 130, 131,
2321 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2322 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2323 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2324 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2325 172, 173, 174, 175, 176, -1, -1, -1, -1, -1,
2326 -1, 183, 184, 185, 186, 187, 188, 189, 190, 6,
2327 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2328 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2329 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2330 -1, -1, -1, -1, -1, 42, 43, -1, 45, 46,
2331 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2332 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2333 -1, -1, -1, 70, 71, -1, -1, -1, -1, -1,
2334 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2335 -1, -1, -1, -1, -1, -1, -1, 94, 95, 96,
2336 97, 98, 99, -1, -1, -1, -1, -1, -1, -1,
2337 -1, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2338 117, 118, 119, 120, 121, 122, -1, 124, 125, 126,
2339 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2340 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2341 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2342 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2343 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2344 -1, -1, -1, -1, -1, -1, 183, 184, 185, 186,
2345 187, 188, 189, 190, 6, 7, 8, -1, 10, 11,
2346 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2347 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2348 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2349 42, 43, -1, 45, 46, 47, 48, -1, -1, -1,
2350 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2351 -1, -1, -1, -1, -1, -1, -1, -1, 70, 71,
2352 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2353 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2354 -1, -1, 94, 95, 96, 97, 98, 99, -1, -1,
2355 -1, -1, -1, -1, -1, -1, 108, 109, 110, 111,
2356 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2357 122, -1, 124, 125, 126, 127, 128, 129, 130, 131,
2358 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2359 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2360 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2361 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2362 172, 173, 174, 175, 176, -1, -1, -1, -1, -1,
2363 -1, 183, 184, 185, 186, 187, 188, 189, 190, 6,
2364 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2365 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2366 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2367 -1, -1, -1, -1, -1, -1, -1, -1, -1, 46,
2368 47, 48, 6, 7, 8, -1, 10, 11, 12, 13,
2369 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2370 24, -1, -1, 70, -1, 29, 30, 31, 32, 33,
2371 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2372 -1, -1, 46, 47, 48, -1, -1, 94, 95, 96,
2373 97, 98, 99, -1, -1, -1, -1, -1, -1, -1,
2374 -1, 108, -1, -1, -1, 112, 70, -1, -1, -1,
2375 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2376 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2377 94, 95, 96, 97, 98, 99, -1, -1, -1, -1,
2378 -1, -1, -1, -1, 108, 6, 7, 8, 112, 10,
2379 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2380 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2381 31, 32, 33, 34, -1, -1, 183, 184, 185, -1,
2382 187, 188, 189, -1, -1, 46, 47, 48, 6, 7,
2383 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2384 18, 19, 20, -1, -1, -1, 24, -1, -1, 70,
2385 -1, 29, 30, 31, 32, 33, 34, -1, -1, 183,
2386 184, 185, -1, 187, 188, 189, -1, -1, 46, 47,
2387 48, -1, -1, 94, 95, 96, 97, 98, 99, -1,
2388 -1, -1, -1, -1, -1, -1, -1, 108, -1, -1,
2389 -1, 112, 70, -1, -1, -1, -1, -1, -1, -1,
2390 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2391 -1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
2392 98, 99, -1, -1, -1, -1, -1, -1, -1, -1,
2393 108, 6, 7, 8, 112, 10, 11, 12, 13, 14,
2394 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2395 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2396 -1, -1, 183, 184, 185, -1, 187, 188, 189, -1,
2397 -1, 46, 47, 48, 6, 7, 8, -1, 10, 11,
2398 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2399 -1, -1, 24, -1, -1, 70, -1, 29, 30, 31,
2400 32, 33, 34, -1, -1, 183, 184, 185, -1, 187,
2401 188, 189, -1, -1, 46, 47, 48, -1, -1, 94,
2402 95, 96, 97, 98, 99, -1, -1, -1, -1, -1,
2403 -1, -1, -1, 108, -1, -1, -1, 112, 70, -1,
2404 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2405 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2406 -1, -1, 94, 95, 96, 97, 98, 99, -1, -1,
2407 -1, -1, -1, -1, -1, -1, 108, 6, 7, 8,
2408 112, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2409 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2410 29, 30, 31, 32, 33, 34, -1, -1, 183, 184,
2411 185, -1, 187, 188, 189, -1, -1, 46, 47, 48,
2412 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2413 16, 17, 18, 19, -1, -1, -1, -1, 24, -1,
2414 -1, 70, -1, 29, 30, 31, 32, 33, 34, -1,
2415 -1, 183, 184, 185, -1, 187, 188, 189, -1, -1,
2416 46, 47, 48, -1, -1, 94, 95, 96, 97, 98,
2417 99, -1, -1, -1, -1, -1, -1, -1, -1, 108,
2418 -1, -1, -1, 112, 70, -1, -1, -1, -1, -1,
2419 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2420 -1, -1, -1, -1, -1, -1, -1, -1, 94, 95,
2421 96, 97, 98, 99, 19, -1, -1, -1, -1, 24,
2422 -1, -1, 108, -1, -1, -1, 112, -1, -1, -1,
2423 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2424 45, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2425 -1, -1, -1, -1, 183, 184, 185, -1, 187, 188,
2426 189, -1, -1, -1, -1, -1, 71, -1, -1, -1,
2427 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2428 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2429 -1, -1, -1, 20, -1, -1, -1, 183, 184, 185,
2430 -1, 187, 188, 189, 109, 110, 111, -1, 113, 114,
2431 115, 116, 117, 118, 119, 120, 121, 122, -1, 124,
2432 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2433 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2434 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2435 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2436 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2437 175, 176, -1, -1, -1, -1, -1, -1, -1, -1,
2438 185, 186, 109, 110, 111, 190, 113, 114, 115, 116,
2439 117, 118, 119, 120, 121, 122, -1, 124, 125, 126,
2440 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2441 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2442 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2443 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2444 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2445 22, -1, -1, -1, -1, -1, -1, -1, 185, 186,
2446 -1, -1, -1, 190, -1, -1, -1, -1, -1, -1,
2447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2448 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2449 -1, -1, -1, -1, -1, 67, 68, 69, -1, -1,
2450 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2451 -1, -1, -1, -1, 86, -1, -1, -1, -1, -1,
2452 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2453 -1, -1, -1, -1, -1, -1, -1, 109, 110, 111,
2454 -1, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2455 122, -1, 124, 125, 126, 127, 128, 129, 130, 131,
2456 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2457 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2458 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2459 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2460 172, 173, 174, 175, 176, -1, -1, -1, -1, -1,
2461 19, -1, -1, -1, 186, 24, -1, -1, 190, -1,
2462 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2463 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2464 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2465 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2466 -1, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2467 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2468 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2469 -1, -1, -1, -1, 24, -1, -1, -1, -1, -1,
2470 -1, -1, -1, 112, 34, 24, -1, -1, 27, -1,
2471 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2472 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2473 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2475 -1, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2477 -1, -1, -1, -1, 183, 184, 185, -1, 187, 109,
2478 110, 111, -1, 113, 114, 115, 116, 117, 118, 119,
2479 120, 121, 122, 112, 124, 125, 126, 127, 128, 129,
2480 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2481 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2482 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2483 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2484 170, 171, 172, 173, 174, 175, 176, -1, -1, -1,
2485 -1, -1, -1, 183, 184, 185, 186, -1, 188, 189,
2486 190, -1, -1, -1, 183, 184, 185, 24, 187, -1,
2487 27, -1, 29, 30, 31, 32, 33, 34, 24, 25,
2488 -1, -1, -1, 29, 30, 31, 32, 33, 34, 46,
2489 47, 48, -1, -1, -1, -1, -1, -1, 24, 25,
2490 46, 47, 48, 29, 30, 31, 32, 33, 34, -1,
2491 -1, -1, -1, 70, -1, -1, -1, -1, -1, -1,
2492 46, 47, 48, 24, 70, -1, -1, -1, 29, 30,
2493 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2494 -1, -1, -1, -1, 70, 46, 47, 48, -1, -1,
2495 -1, -1, 24, -1, -1, 112, -1, 29, 30, 31,
2496 32, 33, 34, -1, -1, -1, 112, -1, -1, 70,
2497 -1, -1, 24, -1, 46, 47, 48, 29, 30, 31,
2498 32, 33, 34, 24, -1, -1, 112, -1, 29, 30,
2499 31, 32, 33, 34, 46, 47, 48, -1, 70, -1,
2500 -1, -1, -1, -1, -1, 46, 47, 48, -1, -1,
2501 -1, 112, -1, -1, -1, -1, -1, -1, 70, -1,
2502 -1, -1, -1, -1, -1, -1, 183, 184, 185, 70,
2503 187, -1, -1, -1, -1, -1, -1, 183, 184, 185,
2504 112, 187, 24, -1, -1, -1, -1, 29, 30, 31,
2505 32, 33, 34, -1, -1, -1, -1, 183, 184, 185,
2506 112, 187, -1, -1, 46, 47, 48, -1, -1, -1,
2507 -1, 112, -1, -1, -1, -1, -1, -1, -1, -1,
2508 -1, -1, 183, 184, 185, -1, 187, -1, 70, -1,
2509 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2510 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2511 -1, 183, 184, 185, -1, 187, -1, -1, -1, -1,
2512 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2513 112, 183, 184, 185, -1, 187, -1, -1, -1, 42,
2514 43, -1, 183, 184, 185, -1, 187, -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, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2519 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2520 -1, 183, 184, 185, -1, 187, 109, 110, 111, -1,
2521 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2522 -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2523 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2524 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2525 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2526 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2527 173, 174, 175, 176, 45, -1, -1, -1, -1, -1,
2528 -1, -1, 185, 186, -1, -1, -1, 190, -1, -1,
2529 -1, -1, -1, -1, -1, -1, 67, 68, 69, -1,
2530 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2531 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2532 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2533 -1, -1, -1, -1, -1, -1, -1, -1, 109, 110,
2534 111, -1, 113, 114, 115, 116, 117, 118, 119, 120,
2535 121, 122, -1, 124, 125, 126, 127, 128, 129, 130,
2536 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2537 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2538 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2539 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2540 171, 172, 173, 174, 175, 176, 45, -1, -1, -1,
2541 -1, -1, -1, -1, 185, 186, -1, -1, -1, 190,
2542 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2543 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
2544 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2545 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2546 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2547 109, 110, 111, -1, 113, 114, 115, 116, 117, 118,
2548 119, 120, 121, 122, -1, 124, 125, 126, 127, 128,
2549 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2550 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2551 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2552 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2553 169, 170, 171, 172, 173, 174, 175, 176, 45, -1,
2554 -1, -1, -1, -1, 183, 184, 185, 186, -1, -1,
2555 -1, 190, -1, -1, -1, -1, -1, -1, -1, -1,
2556 -1, -1, -1, -1, 71, -1, -1, -1, -1, -1,
2557 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2558 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2559 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2560 -1, -1, 109, 110, 111, -1, 113, 114, 115, 116,
2561 117, 118, 119, 120, 121, 122, -1, 124, 125, 126,
2562 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2563 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2564 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2565 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2566 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2567 67, 68, 69, -1, -1, -1, -1, -1, 185, 186,
2568 -1, -1, -1, 190, -1, -1, -1, -1, -1, -1,
2569 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2570 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2571 -1, -1, 109, 110, 111, -1, 113, 114, 115, 116,
2572 117, 118, 119, 120, 121, 122, -1, 124, 125, 126,
2573 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2574 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2575 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2576 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2577 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2578 90, 91, 92, -1, -1, -1, -1, -1, 185, 186,
2579 -1, -1, -1, 190, -1, -1, -1, -1, -1, 109,
2580 110, 111, -1, 113, 114, 115, 116, 117, 118, 119,
2581 120, 121, 122, -1, 124, 125, 126, 127, 128, 129,
2582 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2583 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2584 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2585 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2586 170, 171, 172, 173, 174, 175, 176, -1, -1, -1,
2587 -1, -1, -1, -1, -1, 185, 186, 109, 110, 111,
2588 190, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2589 122, -1, 124, 125, 126, 127, 128, 129, 130, 131,
2590 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2591 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2592 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2593 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2594 172, 173, 174, 175, 176, -1, -1, -1, -1, -1,
2595 -1, -1, -1, 185, 186, -1, -1, -1, 190
2597 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2598 #line 3 "/usr/lib/bison.simple"
2599 /* This file comes from bison-1.28. */
2601 /* Skeleton output parser for bison,
2602 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2604 This program is free software; you can redistribute it and/or modify
2605 it under the terms of the GNU General Public License as published by
2606 the Free Software Foundation; either version 2, or (at your option)
2609 This program is distributed in the hope that it will be useful,
2610 but WITHOUT ANY WARRANTY; without even the implied warranty of
2611 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2612 GNU General Public License for more details.
2614 You should have received a copy of the GNU General Public License
2615 along with this program; if not, write to the Free Software
2616 Foundation, Inc., 59 Temple Place - Suite 330,
2617 Boston, MA 02111-1307, USA. */
2619 /* As a special exception, when this file is copied by Bison into a
2620 Bison output file, you may use that output file without restriction.
2621 This special exception was added by the Free Software Foundation
2622 in version 1.24 of Bison. */
2624 /* This is the parser code that is written into each bison parser
2625 when the %semantic_parser declaration is not specified in the grammar.
2626 It was written by Richard Stallman by simplifying the hairy parser
2627 used when %semantic_parser is specified. */
2629 #ifndef YYSTACK_USE_ALLOCA
2631 #define YYSTACK_USE_ALLOCA
2632 #else /* alloca not defined */
2634 #define YYSTACK_USE_ALLOCA
2635 #define alloca __builtin_alloca
2636 #else /* not GNU C. */
2637 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
2638 #define YYSTACK_USE_ALLOCA
2640 #else /* not sparc */
2641 /* We think this test detects Watcom and Microsoft C. */
2642 /* This used to test MSDOS, but that is a bad idea
2643 since that symbol is in the user namespace. */
2644 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
2645 #if 0 /* No need for malloc.h, which pollutes the namespace;
2646 instead, just don't use alloca. */
2649 #else /* not MSDOS, or __TURBOC__ */
2651 /* I don't know what this was needed for, but it pollutes the namespace.
2652 So I turned it off. rms, 2 May 1997. */
2653 /* #include <malloc.h> */
2655 #define YYSTACK_USE_ALLOCA
2656 #else /* not MSDOS, or __TURBOC__, or _AIX */
2658 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
2659 and on HPUX 10. Eventually we can turn this on. */
2660 #define YYSTACK_USE_ALLOCA
2661 #define alloca __builtin_alloca
2664 #endif /* not _AIX */
2665 #endif /* not MSDOS, or __TURBOC__ */
2666 #endif /* not sparc */
2667 #endif /* not GNU C */
2668 #endif /* alloca not defined */
2669 #endif /* YYSTACK_USE_ALLOCA not defined */
2671 #ifdef YYSTACK_USE_ALLOCA
2672 #define YYSTACK_ALLOC alloca
2674 #define YYSTACK_ALLOC malloc
2677 /* Note: there must be only one dollar sign in this file.
2678 It is replaced by the list of actions, each action
2679 as one case of the switch. */
2681 #define yyerrok (yyerrstatus = 0)
2682 #define yyclearin (yychar = YYEMPTY)
2685 #define YYACCEPT goto yyacceptlab
2686 #define YYABORT goto yyabortlab
2687 #define YYERROR goto yyerrlab1
2688 /* Like YYERROR except do call yyerror.
2689 This remains here temporarily to ease the
2690 transition to the new meaning of YYERROR, for GCC.
2691 Once GCC version 2 has supplanted version 1, this can go. */
2692 #define YYFAIL goto yyerrlab
2693 #define YYRECOVERING() (!!yyerrstatus)
2694 #define YYBACKUP(token, value) \
2696 if (yychar == YYEMPTY && yylen == 1) \
2697 { yychar = (token), yylval = (value); \
2698 yychar1 = YYTRANSLATE (yychar); \
2703 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2707 #define YYERRCODE 256
2710 #define YYLEX yylex()
2716 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2718 #define YYLEX yylex(&yylval, &yylloc)
2720 #else /* not YYLSP_NEEDED */
2722 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2724 #define YYLEX yylex(&yylval)
2726 #endif /* not YYLSP_NEEDED */
2729 /* If nonreentrant, generate the variables here */
2733 int yychar; /* the lookahead symbol */
2734 YYSTYPE yylval; /* the semantic value of the */
2735 /* lookahead symbol */
2738 YYLTYPE yylloc; /* location data for the lookahead */
2742 int yynerrs; /* number of parse errors so far */
2743 #endif /* not YYPURE */
2746 int yydebug; /* nonzero means print parse trace */
2747 /* Since this is uninitialized, it does not stop multiple parsers
2751 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2754 #define YYINITDEPTH 200
2757 /* YYMAXDEPTH is the maximum size the stacks can grow to
2758 (effective only if the built-in stack extension method is used). */
2765 #define YYMAXDEPTH 10000
2768 /* Define __yy_memcpy. Note that the size argument
2769 should be passed with type unsigned int, because that is what the non-GCC
2770 definitions require. With GCC, __builtin_memcpy takes an arg
2771 of type size_t, but it can handle unsigned int. */
2773 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2774 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2775 #else /* not GNU C or C++ */
2778 /* This is the most reliable way to avoid incompatibilities
2779 in available built-in functions on various systems. */
2781 __yy_memcpy (to, from, count)
2786 register char *f = from;
2787 register char *t = to;
2788 register int i = count;
2794 #else /* __cplusplus */
2796 /* This is the most reliable way to avoid incompatibilities
2797 in available built-in functions on various systems. */
2799 __yy_memcpy (char *to, char *from, unsigned int count)
2801 register char *t = to;
2802 register char *f = from;
2803 register int i = count;
2812 #line 217 "/usr/lib/bison.simple"
2814 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2815 into yyparse. The argument should have type void *.
2816 It should actually point to an object.
2817 Grammar actions can access the variable by casting it
2818 to the proper pointer type. */
2820 #ifdef YYPARSE_PARAM
2822 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2823 #define YYPARSE_PARAM_DECL
2824 #else /* not __cplusplus */
2825 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2826 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2827 #endif /* not __cplusplus */
2828 #else /* not YYPARSE_PARAM */
2829 #define YYPARSE_PARAM_ARG
2830 #define YYPARSE_PARAM_DECL
2831 #endif /* not YYPARSE_PARAM */
2833 /* Prevent warning if -Wstrict-prototypes. */
2835 #ifdef YYPARSE_PARAM
2836 int yyparse (void *);
2843 yyparse(YYPARSE_PARAM_ARG)
2846 register int yystate;
2848 register short *yyssp;
2849 register YYSTYPE *yyvsp;
2850 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2851 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2853 short yyssa[YYINITDEPTH]; /* the state stack */
2854 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2856 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2857 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2860 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2861 YYLTYPE *yyls = yylsa;
2864 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2866 #define YYPOPSTACK (yyvsp--, yyssp--)
2869 int yystacksize = YYINITDEPTH;
2870 int yyfree_stacks = 0;
2881 YYSTYPE yyval; /* the variable used to return */
2882 /* semantic values from the action */
2889 fprintf(stderr, "Starting parse\n");
2895 yychar = YYEMPTY; /* Cause a token to be read. */
2897 /* Initialize stack pointers.
2898 Waste one element of value and location stack
2899 so that they stay on the same level as the state stack.
2900 The wasted elements are never initialized. */
2908 /* Push a new state, which is found in yystate . */
2909 /* In all cases, when you get here, the value and location stacks
2910 have just been pushed. so pushing a state here evens the stacks. */
2915 if (yyssp >= yyss + yystacksize - 1)
2917 /* Give user a chance to reallocate the stack */
2918 /* Use copies of these so that the &'s don't force the real ones into memory. */
2919 YYSTYPE *yyvs1 = yyvs;
2920 short *yyss1 = yyss;
2922 YYLTYPE *yyls1 = yyls;
2925 /* Get the current used size of the three stacks, in elements. */
2926 int size = yyssp - yyss + 1;
2929 /* Each stack pointer address is followed by the size of
2930 the data in use in that stack, in bytes. */
2932 /* This used to be a conditional around just the two extra args,
2933 but that might be undefined if yyoverflow is a macro. */
2934 yyoverflow("parser stack overflow",
2935 &yyss1, size * sizeof (*yyssp),
2936 &yyvs1, size * sizeof (*yyvsp),
2937 &yyls1, size * sizeof (*yylsp),
2940 yyoverflow("parser stack overflow",
2941 &yyss1, size * sizeof (*yyssp),
2942 &yyvs1, size * sizeof (*yyvsp),
2946 yyss = yyss1; yyvs = yyvs1;
2950 #else /* no yyoverflow */
2951 /* Extend the stack our own way. */
2952 if (yystacksize >= YYMAXDEPTH)
2954 yyerror("parser stack overflow");
2966 if (yystacksize > YYMAXDEPTH)
2967 yystacksize = YYMAXDEPTH;
2968 #ifndef YYSTACK_USE_ALLOCA
2971 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
2972 __yy_memcpy ((char *)yyss, (char *)yyss1,
2973 size * (unsigned int) sizeof (*yyssp));
2974 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
2975 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
2976 size * (unsigned int) sizeof (*yyvsp));
2978 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
2979 __yy_memcpy ((char *)yyls, (char *)yyls1,
2980 size * (unsigned int) sizeof (*yylsp));
2982 #endif /* no yyoverflow */
2984 yyssp = yyss + size - 1;
2985 yyvsp = yyvs + size - 1;
2987 yylsp = yyls + size - 1;
2992 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2995 if (yyssp >= yyss + yystacksize - 1)
3001 fprintf(stderr, "Entering state %d\n", yystate);
3007 /* Do appropriate processing given the current state. */
3008 /* Read a lookahead token if we need one and don't already have one. */
3011 /* First try to decide what to do without reference to lookahead token. */
3013 yyn = yypact[yystate];
3017 /* Not known => get a lookahead token if don't already have one. */
3019 /* yychar is either YYEMPTY or YYEOF
3020 or a valid token in external form. */
3022 if (yychar == YYEMPTY)
3026 fprintf(stderr, "Reading a token: ");
3031 /* Convert token to internal form (in yychar1) for indexing tables with */
3033 if (yychar <= 0) /* This means end of input. */
3036 yychar = YYEOF; /* Don't call YYLEX any more */
3040 fprintf(stderr, "Now at end of input.\n");
3045 yychar1 = YYTRANSLATE(yychar);
3050 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3051 /* Give the individual parser a way to print the precise meaning
3052 of a token, for further debugging info. */
3054 YYPRINT (stderr, yychar, yylval);
3056 fprintf (stderr, ")\n");
3062 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3067 /* yyn is what to do for this token type in this state.
3068 Negative => reduce, -yyn is rule number.
3069 Positive => shift, yyn is new state.
3070 New state is final state => don't bother to shift,
3071 just return success.
3072 0, or most negative number => error. */
3087 /* Shift the lookahead token. */
3091 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3094 /* Discard the token being shifted unless it is eof. */
3095 if (yychar != YYEOF)
3103 /* count tokens shifted since error; after three, turn off error status. */
3104 if (yyerrstatus) yyerrstatus--;
3109 /* Do the default action for the current state. */
3112 yyn = yydefact[yystate];
3116 /* Do a reduction. yyn is the number of a rule to reduce with. */
3120 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3127 fprintf (stderr, "Reducing via rule %d (line %d), ",
3130 /* Print the symbols being reduced, and their result. */
3131 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3132 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3133 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3141 #line 322 "cgrammar.y"
3142 { context_checkGlobalScope (); ;
3145 #line 323 "cgrammar.y"
3146 { context_checkGlobalScope (); ;
3149 #line 326 "cgrammar.y"
3150 { uentry_clearDecl (); ;
3153 #line 327 "cgrammar.y"
3154 { uentry_clearDecl (); ;
3157 #line 328 "cgrammar.y"
3158 { uentry_clearDecl (); ;
3161 #line 329 "cgrammar.y"
3162 { uentry_clearDecl (); ;
3165 #line 330 "cgrammar.y"
3166 { uentry_clearDecl (); ;
3169 #line 331 "cgrammar.y"
3170 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3173 #line 332 "cgrammar.y"
3174 { uentry_clearDecl (); ;
3177 #line 336 "cgrammar.y"
3178 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3181 #line 338 "cgrammar.y"
3182 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3185 #line 341 "cgrammar.y"
3186 { context_enterFunctionHeader (); ;
3189 #line 342 "cgrammar.y"
3191 declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3192 context_exitFunctionHeader ();
3196 #line 349 "cgrammar.y"
3198 qtype qint = qtype_create (ctype_int);
3199 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3204 #line 355 "cgrammar.y"
3205 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3208 #line 360 "cgrammar.y"
3209 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3212 #line 363 "cgrammar.y"
3213 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3216 #line 365 "cgrammar.y"
3217 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3220 #line 367 "cgrammar.y"
3221 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3224 #line 369 "cgrammar.y"
3226 exprNode_findValue(yyvsp[-2].expr);
3227 if (exprNode_hasValue (yyvsp[-2].expr))
3229 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), exprNode_getLongValue (yyvsp[-2].expr)));
3233 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-5].ntyp)));
3238 #line 381 "cgrammar.y"
3239 { setCurrentParams (uentryList_missingParams); ;
3242 #line 383 "cgrammar.y"
3243 { /* need to support globals and modifies here! */
3244 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3245 uentryList_makeMissingParams ());
3247 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3248 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3250 /*drl 7/25/01 added*/
3251 setImplictfcnConstraints();
3255 #line 394 "cgrammar.y"
3256 { setCurrentParams (yyvsp[-1].entrylist); ;
3259 #line 396 "cgrammar.y"
3260 { setImplictfcnConstraints ();
3261 clearCurrentParams ();
3262 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3263 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3268 #line 404 "cgrammar.y"
3269 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3272 #line 406 "cgrammar.y"
3273 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3276 #line 408 "cgrammar.y"
3277 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3280 #line 410 "cgrammar.y"
3284 if (exprNode_hasValue (yyvsp[-2].expr)
3285 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3287 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3294 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3298 #line 426 "cgrammar.y"
3299 { setCurrentParams (uentryList_missingParams); ;
3302 #line 428 "cgrammar.y"
3304 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3305 uentryList_makeMissingParams ());
3307 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3308 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3313 #line 437 "cgrammar.y"
3314 { setCurrentParams (yyvsp[-1].entrylist); ;
3317 #line 439 "cgrammar.y"
3319 clearCurrentParams ();
3320 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3321 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3326 #line 448 "cgrammar.y"
3327 { setCurrentParams (yyvsp[-1].entrylist); ;
3330 #line 449 "cgrammar.y"
3331 { clearCurrentParams (); ;
3334 #line 450 "cgrammar.y"
3335 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3338 #line 453 "cgrammar.y"
3339 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3342 #line 454 "cgrammar.y"
3343 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3346 #line 455 "cgrammar.y"
3347 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3350 #line 456 "cgrammar.y"
3351 { exprChecks_checkEmptyMacroBody (); ;
3354 #line 459 "cgrammar.y"
3355 { clabstract_declareFunction (yyvsp[0].ntyp); ;
3358 #line 463 "cgrammar.y"
3359 { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3362 #line 466 "cgrammar.y"
3363 { cscanner_expectingMetaStateName (); ;
3366 #line 467 "cgrammar.y"
3367 { cscanner_clearExpectingMetaStateName ();
3368 yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo); ;
3371 #line 469 "cgrammar.y"
3372 { cscanner_expectingMetaStateName (); ;
3375 #line 470 "cgrammar.y"
3376 { cscanner_clearExpectingMetaStateName ();
3377 yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo); ;
3380 #line 474 "cgrammar.y"
3381 { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
3384 #line 475 "cgrammar.y"
3385 { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3388 #line 483 "cgrammar.y"
3389 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
3392 #line 484 "cgrammar.y"
3393 { yyval.conL = constraintList_single (yyvsp[0].con); ;
3396 #line 487 "cgrammar.y"
3398 yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
3399 DPRINTF(("Done BufConstraint1\n")); ;
3402 #line 502 "cgrammar.y"
3403 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3406 #line 503 "cgrammar.y"
3408 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3409 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3412 #line 508 "cgrammar.y"
3413 { yyval.conE = constraintExpr_makeTermsRef (yyvsp[0].sr);;
3416 #line 509 "cgrammar.y"
3417 { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
3420 #line 513 "cgrammar.y"
3421 { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
3424 #line 515 "cgrammar.y"
3425 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3428 #line 517 "cgrammar.y"
3429 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3432 #line 519 "cgrammar.y"
3436 t = cstring_toCharsSafe (exprNode_unparse($3));
3439 yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
3443 #line 528 "cgrammar.y"
3444 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3447 #line 530 "cgrammar.y"
3448 { yyval.sr = yyvsp[-1].sr; ;
3451 #line 532 "cgrammar.y"
3452 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3455 #line 534 "cgrammar.y"
3456 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3459 #line 561 "cgrammar.y"
3460 { yyval.funcclauselist = functionClauseList_new (); ;
3463 #line 563 "cgrammar.y"
3464 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3467 #line 571 "cgrammar.y"
3468 { yyval.funcclauselist = functionClauseList_new (); ;
3471 #line 573 "cgrammar.y"
3472 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3475 #line 576 "cgrammar.y"
3476 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3479 #line 577 "cgrammar.y"
3480 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3483 #line 578 "cgrammar.y"
3484 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3487 #line 579 "cgrammar.y"
3488 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3491 #line 580 "cgrammar.y"
3492 { yyval.funcclause = yyvsp[0].funcclause; ;
3495 #line 581 "cgrammar.y"
3496 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3499 #line 584 "cgrammar.y"
3500 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3503 #line 585 "cgrammar.y"
3504 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3507 #line 586 "cgrammar.y"
3508 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3511 #line 587 "cgrammar.y"
3512 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3515 #line 588 "cgrammar.y"
3516 { yyval.funcclause = yyvsp[0].funcclause; ;
3519 #line 589 "cgrammar.y"
3520 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3523 #line 592 "cgrammar.y"
3524 { yyval.globsclause = yyvsp[-1].globsclause; ;
3527 #line 595 "cgrammar.y"
3528 { setProcessingGlobalsList (); ;
3531 #line 597 "cgrammar.y"
3533 unsetProcessingGlobals ();
3534 yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset);
3538 #line 603 "cgrammar.y"
3539 { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
3542 #line 606 "cgrammar.y"
3543 { yyval.modsclause = yyvsp[-1].modsclause; ;
3546 #line 610 "cgrammar.y"
3548 context_setProtectVars (); enterParamsTemp ();
3549 sRef_setGlobalScopeSafe ();
3553 #line 615 "cgrammar.y"
3556 sRef_clearGlobalScopeSafe ();
3557 context_releaseVars ();
3558 yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
3562 #line 624 "cgrammar.y"
3563 { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
3566 #line 626 "cgrammar.y"
3567 { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
3570 #line 633 "cgrammar.y"
3571 { yyval.warnclause = warnClause_undefined; ;
3574 #line 636 "cgrammar.y"
3575 { yyval.warnclause = yyvsp[-1].warnclause; ;
3578 #line 640 "cgrammar.y"
3580 llassert (exprNode_knownStringValue (yyvsp[0].expr));
3581 yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr))));
3582 exprNode_free (yyvsp[0].expr);
3586 #line 646 "cgrammar.y"
3587 { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
3590 #line 649 "cgrammar.y"
3591 { yyval.globset = globSet_single (yyvsp[0].sr); ;
3594 #line 650 "cgrammar.y"
3595 { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
3598 #line 653 "cgrammar.y"
3599 { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3602 #line 656 "cgrammar.y"
3603 { yyval.tquallist = qualList_undefined; ;
3606 #line 657 "cgrammar.y"
3607 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3610 #line 660 "cgrammar.y"
3611 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3614 #line 661 "cgrammar.y"
3615 { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
3618 #line 662 "cgrammar.y"
3619 { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
3622 #line 665 "cgrammar.y"
3623 { yyval.typequal = qual_createUndef (); ;
3626 #line 666 "cgrammar.y"
3627 { yyval.typequal = qual_createKilled (); ;
3630 #line 667 "cgrammar.y"
3631 { yyval.typequal = qual_createOut (); ;
3634 #line 668 "cgrammar.y"
3635 { yyval.typequal = qual_createIn (); ;
3638 #line 669 "cgrammar.y"
3639 { yyval.typequal = qual_createPartial (); ;
3642 #line 684 "cgrammar.y"
3644 qtype qint = qtype_create (ctype_int);
3645 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3650 #line 690 "cgrammar.y"
3651 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3654 #line 693 "cgrammar.y"
3655 { checkDoneParams (); context_enterInnerContext (); ;
3658 #line 695 "cgrammar.y"
3660 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3661 context_exitInner (yyvsp[0].expr);
3665 #line 699 "cgrammar.y"
3666 { context_enterOldStyleScope (); ;
3669 #line 700 "cgrammar.y"
3670 { oldStyleDoneParams (); context_enterInnerContext (); ;
3673 #line 702 "cgrammar.y"
3675 exprNode_checkFunctionBody (yyvsp[0].expr);
3676 yyval.expr = yyvsp[0].expr; /* oldstyle */
3677 context_exitInner (yyvsp[0].expr);
3681 #line 710 "cgrammar.y"
3683 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3684 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3687 context_exitFunction ();
3691 #line 719 "cgrammar.y"
3692 { yyval.srset = yyvsp[-1].srset; ;
3695 #line 720 "cgrammar.y"
3696 { yyval.srset = sRefSet_new (); ;
3699 #line 723 "cgrammar.y"
3700 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3703 #line 724 "cgrammar.y"
3704 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3707 #line 725 "cgrammar.y"
3708 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3711 #line 726 "cgrammar.y"
3712 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3715 #line 727 "cgrammar.y"
3716 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3719 #line 728 "cgrammar.y"
3720 { yyval.sr = yyvsp[-1].sr; ;
3723 #line 729 "cgrammar.y"
3724 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3727 #line 730 "cgrammar.y"
3728 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3731 #line 734 "cgrammar.y"
3732 { yyval.sr = yyvsp[0].sr; ;
3735 #line 735 "cgrammar.y"
3736 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3739 #line 739 "cgrammar.y"
3740 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3743 #line 740 "cgrammar.y"
3744 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3747 #line 744 "cgrammar.y"
3748 { yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
3751 #line 746 "cgrammar.y"
3752 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3755 #line 747 "cgrammar.y"
3756 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3759 #line 748 "cgrammar.y"
3760 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3763 #line 749 "cgrammar.y"
3764 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3767 #line 750 "cgrammar.y"
3768 { yyval.sr = yyvsp[-1].sr; ;
3771 #line 751 "cgrammar.y"
3772 { cstring_markOwned (yyvsp[0].cname);
3773 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3776 #line 753 "cgrammar.y"
3777 { cstring_markOwned (yyvsp[0].cname);
3778 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3781 #line 757 "cgrammar.y"
3782 { yyval.srset = sRefSet_undefined ;
3785 #line 762 "cgrammar.y"
3786 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3787 else { yyval.srset = sRefSet_undefined; }
3791 #line 766 "cgrammar.y"
3792 { if (sRef_isValid (yyvsp[0].sr))
3794 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3798 yyval.srset = yyvsp[-2].srset;
3803 #line 777 "cgrammar.y"
3804 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3807 #line 778 "cgrammar.y"
3808 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3811 #line 780 "cgrammar.y"
3812 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3815 #line 781 "cgrammar.y"
3816 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3819 #line 782 "cgrammar.y"
3820 { yyval.expr = exprNode_makeError (); ;
3823 #line 786 "cgrammar.y"
3824 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3827 #line 787 "cgrammar.y"
3828 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3831 #line 788 "cgrammar.y"
3832 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
3835 #line 789 "cgrammar.y"
3836 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3839 #line 790 "cgrammar.y"
3840 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3843 #line 791 "cgrammar.y"
3844 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3847 #line 792 "cgrammar.y"
3848 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3851 #line 793 "cgrammar.y"
3852 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3855 #line 796 "cgrammar.y"
3856 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3859 #line 797 "cgrammar.y"
3860 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
3863 #line 801 "cgrammar.y"
3864 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3867 #line 802 "cgrammar.y"
3868 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3871 #line 803 "cgrammar.y"
3872 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3875 #line 804 "cgrammar.y"
3876 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3879 #line 805 "cgrammar.y"
3880 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3883 #line 806 "cgrammar.y"
3884 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3887 #line 807 "cgrammar.y"
3888 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3891 #line 808 "cgrammar.y"
3892 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3895 #line 809 "cgrammar.y"
3896 { yyval.expr = yyvsp[0].expr; ;
3899 #line 810 "cgrammar.y"
3900 { yyval.expr = yyvsp[0].expr; ;
3903 #line 813 "cgrammar.y"
3904 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3907 #line 814 "cgrammar.y"
3908 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3911 #line 818 "cgrammar.y"
3912 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3915 #line 821 "cgrammar.y"
3916 { context_setProtectVars (); ;
3919 #line 822 "cgrammar.y"
3920 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3923 #line 825 "cgrammar.y"
3924 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3927 #line 826 "cgrammar.y"
3928 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3931 #line 827 "cgrammar.y"
3932 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3935 #line 828 "cgrammar.y"
3936 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3939 #line 833 "cgrammar.y"
3940 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3943 #line 837 "cgrammar.y"
3944 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3947 #line 838 "cgrammar.y"
3948 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3951 #line 839 "cgrammar.y"
3952 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3955 #line 843 "cgrammar.y"
3956 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3959 #line 844 "cgrammar.y"
3960 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3963 #line 848 "cgrammar.y"
3964 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3967 #line 849 "cgrammar.y"
3968 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3971 #line 853 "cgrammar.y"
3972 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3975 #line 854 "cgrammar.y"
3976 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3979 #line 855 "cgrammar.y"
3980 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3983 #line 856 "cgrammar.y"
3984 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3987 #line 860 "cgrammar.y"
3988 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3991 #line 861 "cgrammar.y"
3992 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3995 #line 865 "cgrammar.y"
3996 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3999 #line 869 "cgrammar.y"
4000 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4003 #line 874 "cgrammar.y"
4004 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4007 #line 879 "cgrammar.y"
4008 { exprNode_produceGuards (yyvsp[-1].expr);
4009 context_enterAndClause (yyvsp[-1].expr);
4013 #line 883 "cgrammar.y"
4015 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4016 context_exitAndClause (yyval.expr, yyvsp[0].expr);
4020 #line 891 "cgrammar.y"
4022 exprNode_produceGuards (yyvsp[-1].expr);
4023 context_enterOrClause (yyvsp[-1].expr);
4027 #line 896 "cgrammar.y"
4029 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4030 context_exitOrClause (yyval.expr, yyvsp[0].expr);
4034 #line 903 "cgrammar.y"
4035 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4038 #line 904 "cgrammar.y"
4039 { context_enterFalseClause (yyvsp[-4].expr); ;
4042 #line 905 "cgrammar.y"
4043 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
4046 #line 909 "cgrammar.y"
4047 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4050 #line 910 "cgrammar.y"
4051 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4054 #line 911 "cgrammar.y"
4055 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4058 #line 912 "cgrammar.y"
4059 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4062 #line 913 "cgrammar.y"
4063 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4066 #line 914 "cgrammar.y"
4067 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4070 #line 915 "cgrammar.y"
4071 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4074 #line 916 "cgrammar.y"
4075 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4078 #line 917 "cgrammar.y"
4079 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4082 #line 918 "cgrammar.y"
4083 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4086 #line 919 "cgrammar.y"
4087 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4090 #line 923 "cgrammar.y"
4091 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
4094 #line 926 "cgrammar.y"
4095 { yyval.expr = exprNode_undefined; ;
4098 #line 935 "cgrammar.y"
4099 { yyval.expr = yyvsp[0].expr; ;
4102 #line 936 "cgrammar.y"
4103 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
4106 #line 937 "cgrammar.y"
4107 { yyval.expr = exprNode_makeError (); ;
4110 #line 941 "cgrammar.y"
4111 { yyval.expr = exprNode_makeError (); ;
4114 #line 955 "cgrammar.y"
4116 setProcessingVars (yyvsp[-3].qtyp);
4117 processNamedDecl (yyvsp[-1].ntyp);
4121 #line 960 "cgrammar.y"
4123 unsetProcessingVars ();
4124 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp);
4125 DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
4129 #line 966 "cgrammar.y"
4130 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
4133 #line 968 "cgrammar.y"
4134 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
4135 unsetProcessingVars ();
4139 #line 974 "cgrammar.y"
4141 processNamedDecl (yyvsp[-1].ntyp);
4142 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
4146 #line 978 "cgrammar.y"
4147 { processNamedDecl (yyvsp[-2].ntyp); ;
4150 #line 979 "cgrammar.y"
4151 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
4154 #line 982 "cgrammar.y"
4155 { setProcessingTypedef (yyvsp[0].qtyp); ;
4158 #line 984 "cgrammar.y"
4159 { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
4162 #line 985 "cgrammar.y"
4163 { /* in the ANSI grammar, semantics unclear */ ;
4166 #line 986 "cgrammar.y"
4167 { /* in the ANSI grammar, semantics unclear */ ;
4170 #line 989 "cgrammar.y"
4171 { g_expectingTypeName = TRUE; ;
4174 #line 992 "cgrammar.y"
4175 { g_expectingTypeName = TRUE; context_pushLoc (); ;
4178 #line 995 "cgrammar.y"
4179 { yyval.exprlist = yyvsp[-1].exprlist; ;
4182 #line 998 "cgrammar.y"
4183 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4186 #line 999 "cgrammar.y"
4187 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4190 #line 1002 "cgrammar.y"
4191 { yyval.expr = exprNode_makeError (); ;
4194 #line 1003 "cgrammar.y"
4195 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4198 #line 1007 "cgrammar.y"
4199 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); ;
4202 #line 1008 "cgrammar.y"
4203 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); ;
4206 #line 1013 "cgrammar.y"
4207 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4210 #line 1015 "cgrammar.y"
4211 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
4214 #line 1023 "cgrammar.y"
4215 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4218 #line 1024 "cgrammar.y"
4219 { yyval.typequal = qual_createInline (); ;
4222 #line 1025 "cgrammar.y"
4223 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4226 #line 1026 "cgrammar.y"
4227 { yyval.typequal = qual_createAuto (); ;
4230 #line 1027 "cgrammar.y"
4231 { yyval.typequal = qual_createRegister (); ;
4234 #line 1030 "cgrammar.y"
4235 { yyval.typequal = qual_createNullTerminated (); ;
4238 #line 1033 "cgrammar.y"
4239 { yyval.stateclause = yyvsp[-1].stateclause; ;
4242 #line 1037 "cgrammar.y"
4244 context_setProtectVars ();
4246 sRef_setGlobalScopeSafe ();
4250 #line 1043 "cgrammar.y"
4253 sRef_clearGlobalScopeSafe ();
4254 context_releaseVars ();
4255 yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
4259 #line 1051 "cgrammar.y"
4260 { yyval.funcclause = yyvsp[-1].funcclause; ;
4263 #line 1054 "cgrammar.y"
4264 { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
4267 #line 1058 "cgrammar.y"
4269 context_exitFunctionHeader ();
4270 context_setProtectVars ();
4272 sRef_setGlobalScopeSafe ();
4276 #line 1065 "cgrammar.y"
4279 sRef_clearGlobalScopeSafe ();
4280 context_releaseVars ();
4281 yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
4285 #line 1072 "cgrammar.y"
4287 context_setProtectVars ();
4289 sRef_setGlobalScopeSafe ();
4293 #line 1078 "cgrammar.y"
4295 context_exitFunctionHeader ();
4297 sRef_clearGlobalScopeSafe ();
4298 context_releaseVars ();
4299 DPRINTF (("done optGlobBufConstraintsAux\n"));
4301 if (lltok_isEnsures (yyvsp[-4].tok))
4303 yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint);
4305 else if (lltok_isRequires (yyvsp[-4].tok))
4307 yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint);
4314 DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
4318 #line 1102 "cgrammar.y"
4319 { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
4322 #line 1103 "cgrammar.y"
4323 { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
4326 #line 1106 "cgrammar.y"
4327 { yyval.typequal = qual_createExits (); ;
4330 #line 1107 "cgrammar.y"
4331 { yyval.typequal = qual_createMayExit (); ;
4334 #line 1108 "cgrammar.y"
4335 { yyval.typequal = qual_createTrueExit (); ;
4338 #line 1109 "cgrammar.y"
4339 { yyval.typequal = qual_createFalseExit (); ;
4342 #line 1110 "cgrammar.y"
4343 { yyval.typequal = qual_createNeverExit (); ;
4346 #line 1113 "cgrammar.y"
4347 { yyval.typequal = qual_createChecked (); ;
4350 #line 1114 "cgrammar.y"
4351 { yyval.typequal = qual_createCheckMod (); ;
4354 #line 1115 "cgrammar.y"
4355 { yyval.typequal = qual_createUnchecked (); ;
4358 #line 1116 "cgrammar.y"
4359 { yyval.typequal = qual_createCheckedStrict (); ;
4362 #line 1119 "cgrammar.y"
4363 { yyval.typequal = qual_createOwned (); ;
4366 #line 1120 "cgrammar.y"
4367 { yyval.typequal = qual_createDependent (); ;
4370 #line 1121 "cgrammar.y"
4371 { yyval.typequal = qual_createYield (); ;
4374 #line 1122 "cgrammar.y"
4375 { yyval.typequal = qual_createTemp (); ;
4378 #line 1123 "cgrammar.y"
4379 { yyval.typequal = qual_createOnly (); ;
4382 #line 1124 "cgrammar.y"
4383 { yyval.typequal = qual_createKeep (); ;
4386 #line 1125 "cgrammar.y"
4387 { yyval.typequal = qual_createKept (); ;
4390 #line 1126 "cgrammar.y"
4391 { yyval.typequal = qual_createShared (); ;
4394 #line 1127 "cgrammar.y"
4395 { yyval.typequal = qual_createUnique (); ;
4398 #line 1128 "cgrammar.y"
4399 { yyval.typequal = qual_createNull (); ;
4402 #line 1129 "cgrammar.y"
4403 { yyval.typequal = qual_createIsNull (); ;
4406 #line 1130 "cgrammar.y"
4407 { yyval.typequal = qual_createRelNull (); ;
4410 #line 1131 "cgrammar.y"
4411 { yyval.typequal = qual_createNotNull (); ;
4414 #line 1132 "cgrammar.y"
4415 { yyval.typequal = qual_createExposed (); ;
4418 #line 1133 "cgrammar.y"
4419 { yyval.typequal = qual_createObserver (); ;
4422 #line 1134 "cgrammar.y"
4423 { yyval.typequal = qual_createNullTerminated (); ;
4426 #line 1135 "cgrammar.y"
4427 { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
4430 #line 1139 "cgrammar.y"
4431 { yyval.typequal = qual_createReturned (); ;
4434 #line 1140 "cgrammar.y"
4435 { yyval.typequal = qual_createSef (); ;
4438 #line 1143 "cgrammar.y"
4439 { yyval.typequal = qual_createUnused (); ;
4442 #line 1144 "cgrammar.y"
4443 { yyval.typequal = qual_createExternal (); ;
4446 #line 1147 "cgrammar.y"
4447 { yyval.typequal = qual_createTrueNull (); ;
4450 #line 1148 "cgrammar.y"
4451 { yyval.typequal = qual_createFalseNull (); ;
4454 #line 1151 "cgrammar.y"
4455 { yyval.typequal = qual_createAbstract (); ;
4458 #line 1152 "cgrammar.y"
4459 { yyval.typequal = qual_createConcrete (); ;
4462 #line 1153 "cgrammar.y"
4463 { yyval.typequal = qual_createMutable (); ;
4466 #line 1154 "cgrammar.y"
4467 { yyval.typequal = qual_createImmutable (); ;
4470 #line 1157 "cgrammar.y"
4471 { yyval.typequal = qual_createRefCounted (); ;
4474 #line 1158 "cgrammar.y"
4475 { yyval.typequal = qual_createRefs (); ;
4478 #line 1159 "cgrammar.y"
4479 { yyval.typequal = qual_createKillRef (); ;
4482 #line 1160 "cgrammar.y"
4483 { yyval.typequal = qual_createRelDef (); ;
4486 #line 1161 "cgrammar.y"
4487 { yyval.typequal = qual_createNewRef (); ;
4490 #line 1162 "cgrammar.y"
4491 { yyval.typequal = qual_createTempRef (); ;
4494 #line 1165 "cgrammar.y"
4495 { yyval.typequal = qual_createShort (); ;
4498 #line 1166 "cgrammar.y"
4499 { yyval.typequal = qual_createLong (); ;
4502 #line 1167 "cgrammar.y"
4503 { yyval.typequal = qual_createSigned (); ;
4506 #line 1168 "cgrammar.y"
4507 { yyval.typequal = qual_createUnsigned (); ;
4510 #line 1171 "cgrammar.y"
4511 { yyval.typequal = qual_createOut (); ;
4514 #line 1172 "cgrammar.y"
4515 { yyval.typequal = qual_createIn (); ;
4518 #line 1173 "cgrammar.y"
4519 { yyval.typequal = qual_createPartial (); ;
4522 #line 1174 "cgrammar.y"
4523 { yyval.typequal = qual_createSpecial (); ;
4526 #line 1177 "cgrammar.y"
4527 { yyval.typequal = qual_createConst (); ;
4530 #line 1178 "cgrammar.y"
4531 { yyval.typequal = qual_createVolatile (); ;
4534 #line 1179 "cgrammar.y"
4535 { yyval.typequal = yyvsp[-1].typequal; ;
4538 #line 1180 "cgrammar.y"
4539 { yyval.typequal = yyvsp[-1].typequal; ;
4542 #line 1181 "cgrammar.y"
4543 { yyval.typequal = yyvsp[-1].typequal; ;
4546 #line 1182 "cgrammar.y"
4547 { yyval.typequal = yyvsp[-1].typequal; ;
4550 #line 1183 "cgrammar.y"
4551 { yyval.typequal = yyvsp[-1].typequal; ;
4554 #line 1184 "cgrammar.y"
4555 { yyval.typequal = yyvsp[-1].typequal; ;
4558 #line 1185 "cgrammar.y"
4559 { yyval.typequal = yyvsp[-1].typequal; ;
4562 #line 1186 "cgrammar.y"
4563 { yyval.typequal = yyvsp[-1].typequal; ;
4566 #line 1187 "cgrammar.y"
4567 { yyval.typequal = yyvsp[-1].typequal; ;
4570 #line 1200 "cgrammar.y"
4571 { yyval.ctyp = ctype_unknown; ;
4574 #line 1201 "cgrammar.y"
4575 { yyval.ctyp = ctype_anyintegral; ;
4578 #line 1202 "cgrammar.y"
4579 { yyval.ctyp = ctype_unsignedintegral; ;
4582 #line 1203 "cgrammar.y"
4583 { yyval.ctyp = ctype_signedintegral; ;
4586 #line 1207 "cgrammar.y"
4587 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4590 #line 1211 "cgrammar.y"
4591 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4594 #line 1214 "cgrammar.y"
4595 { yyval.qtyp = yyvsp[0].qtyp; ;
4598 #line 1216 "cgrammar.y"
4599 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4602 #line 1221 "cgrammar.y"
4603 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4606 #line 1224 "cgrammar.y"
4607 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4610 #line 1225 "cgrammar.y"
4611 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4614 #line 1226 "cgrammar.y"
4615 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4618 #line 1229 "cgrammar.y"
4619 { yyval.qtyp = qtype_unknown (); ;
4622 #line 1230 "cgrammar.y"
4623 { yyval.qtyp = yyvsp[0].qtyp; ;
4626 #line 1233 "cgrammar.y"
4627 { sRef_setGlobalScopeSafe (); ;
4630 #line 1235 "cgrammar.y"
4631 { sRef_clearGlobalScopeSafe (); ;
4634 #line 1237 "cgrammar.y"
4635 { yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ;
4638 #line 1238 "cgrammar.y"
4639 { sRef_setGlobalScopeSafe (); ;
4642 #line 1240 "cgrammar.y"
4643 { sRef_clearGlobalScopeSafe (); ;
4646 #line 1242 "cgrammar.y"
4647 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4650 #line 1244 "cgrammar.y"
4651 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4654 #line 1246 "cgrammar.y"
4655 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4658 #line 1247 "cgrammar.y"
4659 { sRef_setGlobalScopeSafe (); ;
4662 #line 1249 "cgrammar.y"
4663 { sRef_clearGlobalScopeSafe (); ;
4666 #line 1251 "cgrammar.y"
4667 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4670 #line 1252 "cgrammar.y"
4671 { sRef_setGlobalScopeSafe (); ;
4674 #line 1254 "cgrammar.y"
4675 { sRef_clearGlobalScopeSafe (); ;
4678 #line 1256 "cgrammar.y"
4679 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4682 #line 1258 "cgrammar.y"
4683 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4686 #line 1260 "cgrammar.y"
4687 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4690 #line 1261 "cgrammar.y"
4691 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4694 #line 1262 "cgrammar.y"
4695 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4698 #line 1265 "cgrammar.y"
4699 { g_expectingTypeName = FALSE; ;
4702 #line 1269 "cgrammar.y"
4703 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4706 #line 1270 "cgrammar.y"
4707 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4710 #line 1274 "cgrammar.y"
4711 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4714 #line 1276 "cgrammar.y"
4715 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4718 #line 1280 "cgrammar.y"
4719 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4722 #line 1282 "cgrammar.y"
4723 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4726 #line 1285 "cgrammar.y"
4727 { yyval.ntyp = yyvsp[0].ntyp; ;
4730 #line 1286 "cgrammar.y"
4731 { yyval.ntyp = idDecl_undefined; ;
4734 #line 1287 "cgrammar.y"
4735 { yyval.ntyp = yyvsp[-3].ntyp; ;
4738 #line 1292 "cgrammar.y"
4739 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4742 #line 1293 "cgrammar.y"
4743 { context_pushLoc (); ;
4746 #line 1294 "cgrammar.y"
4747 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4750 #line 1295 "cgrammar.y"
4751 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4754 #line 1299 "cgrammar.y"
4755 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4758 #line 1301 "cgrammar.y"
4759 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4762 #line 1306 "cgrammar.y"
4763 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4764 usymtab_supGlobalEntry (ue);
4765 yyval.cname = yyvsp[0].cname;
4769 #line 1311 "cgrammar.y"
4770 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4771 usymtab_supGlobalEntry (ue);
4772 yyval.cname = yyvsp[-3].cname;
4776 #line 1318 "cgrammar.y"
4777 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4780 #line 1320 "cgrammar.y"
4782 qtype qt = qtype_unknown ();
4784 qtype_adjustPointers (yyvsp[-1].count, qt);
4785 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4789 #line 1327 "cgrammar.y"
4790 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4793 #line 1332 "cgrammar.y"
4794 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4797 #line 1335 "cgrammar.y"
4798 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4801 #line 1336 "cgrammar.y"
4802 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4805 #line 1339 "cgrammar.y"
4806 { /* ignored for now */; ;
4809 #line 1340 "cgrammar.y"
4813 #line 1343 "cgrammar.y"
4817 #line 1344 "cgrammar.y"
4821 #line 1347 "cgrammar.y"
4822 { yyval.count = 1; ;
4825 #line 1348 "cgrammar.y"
4826 { yyval.count = 1; ;
4829 #line 1349 "cgrammar.y"
4830 { yyval.count = 1 + yyvsp[0].count; ;
4833 #line 1350 "cgrammar.y"
4834 { yyval.count = 1 + yyvsp[0].count; ;
4837 #line 1354 "cgrammar.y"
4838 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4841 #line 1357 "cgrammar.y"
4842 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4845 #line 1358 "cgrammar.y"
4846 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4849 #line 1361 "cgrammar.y"
4850 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4853 #line 1363 "cgrammar.y"
4854 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4857 #line 1366 "cgrammar.y"
4861 #line 1366 "cgrammar.y"
4862 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4865 #line 1367 "cgrammar.y"
4869 #line 1368 "cgrammar.y"
4870 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4873 #line 1372 "cgrammar.y"
4875 if (isFlipOldStyle ())
4877 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4883 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4887 #line 1384 "cgrammar.y"
4889 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4893 llparseerror (message ("Inconsistent function parameter syntax: %q",
4894 idDecl_unparse (tparam)));
4898 yyval.oentry = makeCurrentParam (tparam);
4899 idDecl_free (tparam);
4903 #line 1400 "cgrammar.y"
4904 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4907 #line 1403 "cgrammar.y"
4908 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4911 #line 1405 "cgrammar.y"
4912 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4915 #line 1408 "cgrammar.y"
4916 { yyval.ctyp = ctype_unknown; ;
4919 #line 1413 "cgrammar.y"
4920 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4923 #line 1414 "cgrammar.y"
4924 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4927 #line 1416 "cgrammar.y"
4928 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4931 #line 1417 "cgrammar.y"
4932 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4935 #line 1419 "cgrammar.y"
4936 { yyval.ctyp = ctype_makeFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4939 #line 1421 "cgrammar.y"
4940 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4943 #line 1423 "cgrammar.y"
4944 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4947 #line 1425 "cgrammar.y"
4948 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4951 #line 1427 "cgrammar.y"
4952 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4955 #line 1455 "cgrammar.y"
4956 { yyval.expr = yyvsp[0].expr; ;
4959 #line 1463 "cgrammar.y"
4960 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4963 #line 1467 "cgrammar.y"
4964 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4967 #line 1469 "cgrammar.y"
4968 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4971 #line 1471 "cgrammar.y"
4972 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4975 #line 1473 "cgrammar.y"
4976 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4979 #line 1477 "cgrammar.y"
4980 { context_setProtectVars (); ;
4983 #line 1477 "cgrammar.y"
4984 { context_sizeofReleaseVars (); ;
4987 #line 1479 "cgrammar.y"
4988 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4989 context_enterForClause (yyvsp[-5].expr); ;
4992 #line 1484 "cgrammar.y"
4993 { setProcessingIterVars (yyvsp[-2].entry); ;
4996 #line 1486 "cgrammar.y"
4997 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
5000 #line 1487 "cgrammar.y"
5001 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
5004 #line 1493 "cgrammar.y"
5005 { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
5008 #line 1501 "cgrammar.y"
5009 { yyval.expr = yyvsp[-1].expr; ;
5012 #line 1502 "cgrammar.y"
5013 { yyval.expr = exprNode_makeError (); ;
5016 #line 1506 "cgrammar.y"
5017 { /* don't: context_exitTrueClause ($1, $2); */
5018 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
5022 #line 1511 "cgrammar.y"
5023 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5026 #line 1514 "cgrammar.y"
5027 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5030 #line 1529 "cgrammar.y"
5031 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5034 #line 1531 "cgrammar.y"
5035 { yyval.expr = exprNode_makeError (); ;
5038 #line 1534 "cgrammar.y"
5039 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
5042 #line 1535 "cgrammar.y"
5043 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
5046 #line 1542 "cgrammar.y"
5050 #line 1543 "cgrammar.y"
5054 #line 1549 "cgrammar.y"
5055 { context_enterCaseClause (yyvsp[0].expr); ;
5058 #line 1550 "cgrammar.y"
5059 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
5062 #line 1551 "cgrammar.y"
5063 { context_enterCaseClause (yyvsp[0].expr); ;
5066 #line 1552 "cgrammar.y"
5067 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
5070 #line 1555 "cgrammar.y"
5071 { context_enterCaseClause (exprNode_undefined); ;
5074 #line 1556 "cgrammar.y"
5075 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
5078 #line 1557 "cgrammar.y"
5079 { context_enterCaseClause (exprNode_undefined); ;
5082 #line 1558 "cgrammar.y"
5083 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
5086 #line 1561 "cgrammar.y"
5087 { yyval.expr = yyvsp[-1].expr; ;
5090 #line 1563 "cgrammar.y"
5091 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
5094 #line 1566 "cgrammar.y"
5095 { yyval.expr = yyvsp[-1].expr; ;
5098 #line 1569 "cgrammar.y"
5099 { context_enterInnerContext (); ;
5102 #line 1572 "cgrammar.y"
5103 { context_exitInnerPlain (); ;
5106 #line 1575 "cgrammar.y"
5107 { context_enterStructInnerContext (); ;
5110 #line 1578 "cgrammar.y"
5111 { context_exitStructInnerContext (); ;
5114 #line 1581 "cgrammar.y"
5115 { context_exitInnerSafe (); ;
5118 #line 1584 "cgrammar.y"
5119 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5122 #line 1585 "cgrammar.y"
5123 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
5126 #line 1586 "cgrammar.y"
5127 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5130 #line 1588 "cgrammar.y"
5131 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5134 #line 1589 "cgrammar.y"
5135 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5138 #line 1591 "cgrammar.y"
5139 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5142 #line 1593 "cgrammar.y"
5143 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5146 #line 1595 "cgrammar.y"
5147 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
5148 lltok_getLoc (yyvsp[-1].tok)));
5152 #line 1601 "cgrammar.y"
5153 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
5156 #line 1605 "cgrammar.y"
5157 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5160 #line 1607 "cgrammar.y"
5161 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5164 #line 1609 "cgrammar.y"
5165 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5168 #line 1611 "cgrammar.y"
5169 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5172 #line 1615 "cgrammar.y"
5173 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5176 #line 1618 "cgrammar.y"
5177 { yyval.expr = yyvsp[0].expr; ;
5180 #line 1619 "cgrammar.y"
5181 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5184 #line 1622 "cgrammar.y"
5185 { yyval.expr = yyvsp[0].expr; ;
5188 #line 1623 "cgrammar.y"
5189 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5192 #line 1626 "cgrammar.y"
5193 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5196 #line 1627 "cgrammar.y"
5197 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5200 #line 1630 "cgrammar.y"
5201 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5204 #line 1631 "cgrammar.y"
5205 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5208 #line 1632 "cgrammar.y"
5209 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
5212 #line 1636 "cgrammar.y"
5213 { yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
5216 #line 1644 "cgrammar.y"
5218 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
5219 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
5223 #line 1648 "cgrammar.y"
5224 { context_enterFalseClause (yyvsp[-2].expr); ;
5227 #line 1649 "cgrammar.y"
5229 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5230 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5234 #line 1653 "cgrammar.y"
5235 { context_enterSwitch (yyvsp[0].expr); ;
5238 #line 1654 "cgrammar.y"
5239 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
5242 #line 1658 "cgrammar.y"
5243 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
5246 #line 1662 "cgrammar.y"
5247 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
5250 #line 1665 "cgrammar.y"
5251 { context_enterIterClause (); ;
5254 #line 1666 "cgrammar.y"
5255 { setProcessingIterVars (yyvsp[-3].entry); ;
5258 #line 1669 "cgrammar.y"
5260 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry);
5265 #line 1675 "cgrammar.y"
5266 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
5269 #line 1676 "cgrammar.y"
5270 { nextIterParam (); ;
5273 #line 1677 "cgrammar.y"
5274 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
5277 #line 1680 "cgrammar.y"
5278 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
5281 #line 1681 "cgrammar.y"
5282 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
5285 #line 1682 "cgrammar.y"
5286 { uentry ue = coerceIterId (yyvsp[0].cname);
5288 if (uentry_isValid (ue))
5290 yyval.expr = exprNode_iterId (ue);
5294 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
5299 #line 1693 "cgrammar.y"
5300 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
5303 #line 1701 "cgrammar.y"
5304 { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
5307 #line 1705 "cgrammar.y"
5308 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5311 #line 1709 "cgrammar.y"
5312 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
5315 #line 1710 "cgrammar.y"
5316 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
5319 #line 1711 "cgrammar.y"
5320 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
5323 #line 1713 "cgrammar.y"
5324 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
5327 #line 1714 "cgrammar.y"
5328 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
5331 #line 1715 "cgrammar.y"
5332 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
5335 #line 1716 "cgrammar.y"
5336 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5339 #line 1717 "cgrammar.y"
5340 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5343 #line 1721 "cgrammar.y"
5344 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5347 #line 1722 "cgrammar.y"
5348 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5351 #line 1723 "cgrammar.y"
5352 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5355 #line 1724 "cgrammar.y"
5356 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5359 #line 1725 "cgrammar.y"
5360 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5363 #line 1726 "cgrammar.y"
5364 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5367 #line 1727 "cgrammar.y"
5368 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5371 #line 1728 "cgrammar.y"
5372 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5375 #line 1729 "cgrammar.y"
5376 { yyval.expr = yyvsp[0].expr; ;
5379 #line 1733 "cgrammar.y"
5380 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
5383 #line 1737 "cgrammar.y"
5384 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5387 #line 1738 "cgrammar.y"
5388 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5391 #line 1739 "cgrammar.y"
5392 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5395 #line 1743 "cgrammar.y"
5396 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5399 #line 1744 "cgrammar.y"
5400 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5403 #line 1748 "cgrammar.y"
5404 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5407 #line 1749 "cgrammar.y"
5408 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5411 #line 1753 "cgrammar.y"
5412 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5415 #line 1754 "cgrammar.y"
5416 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5419 #line 1755 "cgrammar.y"
5420 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5423 #line 1756 "cgrammar.y"
5424 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5427 #line 1760 "cgrammar.y"
5428 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5431 #line 1761 "cgrammar.y"
5432 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5435 #line 1765 "cgrammar.y"
5436 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5439 #line 1769 "cgrammar.y"
5440 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5443 #line 1774 "cgrammar.y"
5444 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5447 #line 1778 "cgrammar.y"
5448 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5451 #line 1782 "cgrammar.y"
5452 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5455 #line 1786 "cgrammar.y"
5456 { context_enterTrueClause (yyvsp[-1].expr); ;
5459 #line 1787 "cgrammar.y"
5460 { context_enterFalseClause (yyvsp[-4].expr); ;
5463 #line 1788 "cgrammar.y"
5464 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5467 #line 1792 "cgrammar.y"
5468 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5471 #line 1793 "cgrammar.y"
5472 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5475 #line 1794 "cgrammar.y"
5476 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5479 #line 1795 "cgrammar.y"
5480 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5483 #line 1796 "cgrammar.y"
5484 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5487 #line 1797 "cgrammar.y"
5488 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5491 #line 1798 "cgrammar.y"
5492 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5495 #line 1799 "cgrammar.y"
5496 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5499 #line 1800 "cgrammar.y"
5500 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5503 #line 1801 "cgrammar.y"
5504 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5507 #line 1802 "cgrammar.y"
5508 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5511 #line 1805 "cgrammar.y"
5512 { yyval.entry = yyvsp[0].entry; ;
5515 #line 1806 "cgrammar.y"
5516 { yyval.entry = uentry_undefined; ;
5519 #line 1809 "cgrammar.y"
5520 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5523 #line 1813 "cgrammar.y"
5524 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5527 #line 1815 "cgrammar.y"
5528 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5531 #line 1817 "cgrammar.y"
5532 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5535 #line 1820 "cgrammar.y"
5536 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5539 #line 1822 "cgrammar.y"
5540 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5543 #line 1824 "cgrammar.y"
5544 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5547 #line 1825 "cgrammar.y"
5548 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5551 #line 1828 "cgrammar.y"
5552 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5555 #line 1829 "cgrammar.y"
5556 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5559 #line 1831 "cgrammar.y"
5560 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5563 #line 1832 "cgrammar.y"
5564 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5567 #line 1833 "cgrammar.y"
5568 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5571 #line 1834 "cgrammar.y"
5572 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5575 #line 1835 "cgrammar.y"
5576 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5579 #line 1836 "cgrammar.y"
5580 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5583 #line 1837 "cgrammar.y"
5584 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5587 #line 1838 "cgrammar.y"
5588 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5591 #line 1842 "cgrammar.y"
5595 #line 1849 "cgrammar.y"
5596 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5599 #line 1850 "cgrammar.y"
5600 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5603 #line 1851 "cgrammar.y"
5604 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5607 #line 1852 "cgrammar.y"
5608 { yyval.cname = yyvsp[0].cname; ;
5611 #line 1856 "cgrammar.y"
5612 { yyval.ctyp = ctype_unknown; ;
5615 /* the action file gets copied in in place of this dollarsign */
5616 #line 543 "/usr/lib/bison.simple"
5627 short *ssp1 = yyss - 1;
5628 fprintf (stderr, "state stack now");
5629 while (ssp1 != yyssp)
5630 fprintf (stderr, " %d", *++ssp1);
5631 fprintf (stderr, "\n");
5641 yylsp->first_line = yylloc.first_line;
5642 yylsp->first_column = yylloc.first_column;
5643 yylsp->last_line = (yylsp-1)->last_line;
5644 yylsp->last_column = (yylsp-1)->last_column;
5649 yylsp->last_line = (yylsp+yylen-1)->last_line;
5650 yylsp->last_column = (yylsp+yylen-1)->last_column;
5654 /* Now "shift" the result of the reduction.
5655 Determine what state that goes to,
5656 based on the state we popped back to
5657 and the rule number reduced by. */
5661 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5662 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5663 yystate = yytable[yystate];
5665 yystate = yydefgoto[yyn - YYNTBASE];
5669 yyerrlab: /* here on detecting error */
5672 /* If not already recovering from an error, report this error. */
5676 #ifdef YYERROR_VERBOSE
5677 yyn = yypact[yystate];
5679 if (yyn > YYFLAG && yyn < YYLAST)
5686 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5687 for (x = (yyn < 0 ? -yyn : 0);
5688 x < (sizeof(yytname) / sizeof(char *)); x++)
5689 if (yycheck[x + yyn] == x)
5690 size += strlen(yytname[x]) + 15, count++;
5691 msg = (char *) malloc(size + 15);
5694 strcpy(msg, "parse error");
5699 for (x = (yyn < 0 ? -yyn : 0);
5700 x < (sizeof(yytname) / sizeof(char *)); x++)
5701 if (yycheck[x + yyn] == x)
5703 strcat(msg, count == 0 ? ", expecting `" : " or `");
5704 strcat(msg, yytname[x]);
5713 yyerror ("parse error; also virtual memory exceeded");
5716 #endif /* YYERROR_VERBOSE */
5717 yyerror("parse error");
5721 yyerrlab1: /* here on error raised explicitly by an action */
5723 if (yyerrstatus == 3)
5725 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5727 /* return failure if at end of input */
5728 if (yychar == YYEOF)
5733 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5739 /* Else will try to reuse lookahead token
5740 after shifting the error token. */
5742 yyerrstatus = 3; /* Each real token shifted decrements this */
5746 yyerrdefault: /* current state does not do anything special for the error token. */
5749 /* This is wrong; only states that explicitly want error tokens
5750 should shift them. */
5751 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5752 if (yyn) goto yydefault;
5755 yyerrpop: /* pop the current state because it cannot handle the error token */
5757 if (yyssp == yyss) YYABORT;
5767 short *ssp1 = yyss - 1;
5768 fprintf (stderr, "Error: state stack now");
5769 while (ssp1 != yyssp)
5770 fprintf (stderr, " %d", *++ssp1);
5771 fprintf (stderr, "\n");
5777 yyn = yypact[yystate];
5782 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5801 fprintf(stderr, "Shifting error token, ");
5813 /* YYACCEPT comes here. */
5825 /* YYABORT comes here. */
5836 #line 1858 "cgrammar.y"
5839 /*@-redecl@*/ /*@-namechecks@*/
5840 extern char *yytext;
5841 /*@=redecl@*/ /*@=namechecks@*/
5843 # include "bison.reset"
5845 void yyerror (/*@unused@*/ char *s)
5847 static bool givehint = FALSE;
5849 if (context_inIterDef ())
5851 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5852 context_inFunctionName ()));
5854 else if (context_inIterEnd ())
5856 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5857 context_inFunctionName ()));
5859 else if (context_inMacro ())
5861 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5862 context_inFunctionName ()));
5864 if (context_inUnknownMacro ())
5868 llhint (cstring_makeLiteral
5869 ("Precede macro definition with /*@notfunction@*/ "
5870 "to suppress checking and force expansion"));
5876 context_exitAllClausesQuiet ();
5880 llparseerror (cstring_undefined);
5896 ** Resets all flags in bison.head
5918 /*@=evalorderuncon@*/
5927 /*@=elseifcomplete@*/
5931 /*@=readonlytrans@*/
5934 /*@=systemunrecog@*/
5935 /*@=dependenttrans@*/
5936 /*@=unqualifiedtrans@*/
5940 /*drl added 11/27/2001*/
5942 /*@=arrayboundsread@*/