2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
45 /* < end of bison.head > */
48 /* A Bison parser, made from cgrammar.y
49 by GNU Bison version 1.25
52 #define YYBISON 1 /* Identify Bison output. */
56 #define CTOK_ELIPSIS 260
80 #define TAMPERSAND 284
108 #define MUL_ASSIGN 312
109 #define DIV_ASSIGN 313
110 #define MOD_ASSIGN 314
111 #define ADD_ASSIGN 315
112 #define SUB_ASSIGN 316
113 #define LEFT_ASSIGN 317
114 #define RIGHT_ASSIGN 318
115 #define AND_ASSIGN 319
116 #define XOR_ASSIGN 320
117 #define OR_ASSIGN 321
124 #define QMODIFIES 328
126 #define QCONSTANT 330
127 #define QFUNCTION 331
131 #define QALLOCATES 335
133 #define QRELEASES 337
134 #define QPRECLAUSE 338
135 #define QPOSTCLAUSE 339
139 #define QENDMACRO 343
141 #define LLMACROITER 345
142 #define LLMACROEND 346
143 #define TENDMACRO 347
144 #define QSWITCHBREAK 348
145 #define QLOOPBREAK 349
146 #define QINNERBREAK 350
147 #define QSAFEBREAK 351
148 #define QINNERCONTINUE 352
149 #define QFALLTHROUGH 353
150 #define QLINTNOTREACHED 354
151 #define QLINTFALLTHROUGH 355
152 #define QLINTFALLTHRU 356
153 #define QARGSUSED 357
154 #define QPRINTFLIKE 358
155 #define QLINTPRINTFLIKE 359
156 #define QSCANFLIKE 360
157 #define QMESSAGELIKE 361
158 #define QNOTREACHED 362
160 #define QVOLATILE 364
162 #define QEXTENSION 366
166 #define QREGISTER 370
176 #define QUNCHECKED 380
177 #define QCHECKEDSTRICT 381
178 #define QCHECKMOD 382
184 #define QDEPENDENT 388
185 #define QRETURNED 389
188 #define QOBSERVER 392
192 #define QNEVEREXIT 396
193 #define QTRUEEXIT 397
194 #define QFALSEEXIT 398
197 #define QUNSIGNED 401
203 #define QABSTRACT 407
204 #define QCONCRETE 408
206 #define QIMMUTABLE 410
207 #define QTRUENULL 411
208 #define QFALSENULL 412
209 #define QEXTERNAL 413
210 #define QREFCOUNTED 414
223 #define QINTEGRALTYPE 427
224 #define QUNSIGNEDINTEGRALTYPE 428
225 #define QSIGNEDINTEGRALTYPE 429
226 #define QNULLTERMINATED 430
227 #define QSETBUFFERSIZE 431
228 #define QBUFFERCONSTRAINT 432
229 #define QENSURESCONSTRAINT 433
230 #define QSETSTRINGLENGTH 434
233 #define QTESTINRANGE 437
234 #define IDENTIFIER 438
235 #define NEW_IDENTIFIER 439
236 #define TYPE_NAME_OR_ID 440
237 #define CCONSTANT 441
238 #define ITER_NAME 442
239 #define ITER_ENDNAME 443
240 #define TYPE_NAME 444
242 #line 19 "cgrammar.y"
248 ** Yacc/Bison grammar for extended ANSI C used by LCLint.
250 ** original grammar by Nate Osgood ---
251 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
253 ** changes for LCLint --- handle typedef names correctly
254 ** fix struct/union parsing bug (empty struct is accepted)
255 ** add productions to handle macros --- require
256 ** error correction --- main source of conflicts in grammar.
257 ** need to process initializations sequentially, L->R
259 ** production names are cryptic, so more productions fit on one line
261 ** conflicts: 87 shift/reduce, 18 reduce/reduce
262 ** most of these are due to handling macros
263 ** a few are due to handling type expressions
269 extern void swallowMacro (void);
271 # include "lclintMacros.nf"
273 # include "cgrammar.h"
274 # include "exprChecks.h"
279 # define SHOWCSYM FALSE
280 void yyerror (char *s);
283 ** This is necessary, or else when the bison-generated code #include's malloc.h,
284 ** there will be a parse error.
286 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
287 ** in bison-generated files under Win32.
296 void checkandsetBufState(idDecl id, exprNode is);
298 #line 75 "cgrammar.y"
303 specialClauseKind sck;
308 /*@only@*/ qtype qtyp;
309 /*@only@*/ cstring cname;
310 /*@only@*/ idDecl ntyp;
311 /*@only@*/ idDeclList ntyplist;
312 /*@only@*/ uentryList flist;
313 /*@owned@*/ uentryList entrylist;
314 /*@observer@*/ /*@dependent@*/ uentry entry;
315 /*@only@*/ uentry oentry;
316 /*@only@*/ exprNode expr;
317 /*@only@*/ enumNameList enumnamelist;
318 /*@only@*/ exprNodeList alist;
319 /*@only@*/ sRefSet srset;
320 /*@only@*/ cstringList cstringlist;
344 #define YYFLAG -32768
347 #define YYTRANSLATE(x) ((unsigned)(x) <= 444 ? yytranslate[x] : 434)
349 static const short yytranslate[] = { 0,
350 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
351 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
352 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
353 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
354 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
355 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
356 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
357 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
358 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
359 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
360 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
361 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
362 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
363 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
364 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
365 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
366 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
367 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
368 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
369 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
370 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
371 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
372 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
373 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
374 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
375 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
376 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
377 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
378 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
379 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
380 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
381 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
382 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
383 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
384 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
385 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
386 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
387 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
388 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
389 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
390 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
391 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
392 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
393 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
398 static const short yyprhs[] = { 0,
399 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
400 21, 23, 32, 44, 45, 51, 53, 57, 59, 62,
401 64, 71, 75, 82, 83, 91, 92, 101, 103, 110,
402 114, 121, 122, 129, 130, 138, 139, 140, 151, 155,
403 159, 163, 166, 168, 169, 172, 173, 176, 179, 180,
404 185, 186, 187, 192, 193, 196, 198, 203, 205, 207,
405 209, 211, 213, 215, 220, 226, 228, 230, 232, 234,
406 238, 243, 246, 250, 254, 258, 260, 262, 264, 265,
407 268, 269, 272, 274, 277, 279, 282, 284, 287, 289,
408 293, 296, 298, 300, 302, 304, 306, 308, 310, 311,
409 314, 315, 322, 323, 330, 332, 334, 335, 336, 342,
410 343, 349, 351, 353, 354, 356, 357, 358, 362, 363,
411 367, 369, 371, 373, 375, 377, 379, 381, 383, 385,
412 387, 389, 391, 393, 395, 397, 399, 401, 402, 410,
413 411, 420, 422, 426, 427, 431, 432, 436, 439, 443,
414 446, 449, 451, 453, 455, 459, 464, 467, 471, 475,
415 479, 481, 483, 485, 489, 491, 493, 497, 502, 505,
416 509, 513, 517, 519, 523, 525, 527, 529, 533, 535,
417 537, 539, 544, 548, 553, 560, 566, 572, 575, 578,
418 580, 584, 586, 589, 592, 595, 598, 601, 604, 607,
419 610, 612, 614, 618, 620, 630, 631, 635, 640, 643,
420 648, 651, 653, 658, 660, 664, 668, 672, 674, 678,
421 682, 684, 688, 692, 694, 698, 702, 706, 710, 712,
422 716, 720, 722, 726, 728, 732, 734, 738, 740, 741,
423 746, 748, 749, 754, 756, 757, 758, 766, 768, 772,
424 776, 780, 784, 788, 792, 796, 800, 804, 808, 812,
425 814, 818, 819, 821, 823, 825, 827, 829, 833, 834,
426 844, 845, 857, 860, 861, 868, 869, 877, 882, 887,
427 888, 889, 892, 894, 899, 900, 905, 907, 911, 916,
428 918, 922, 924, 926, 928, 930, 932, 935, 938, 941,
429 944, 947, 950, 953, 956, 959, 962, 965, 968, 971,
430 974, 977, 980, 983, 986, 989, 992, 995, 998, 1001,
431 1004, 1007, 1010, 1013, 1016, 1019, 1022, 1025, 1028, 1031,
432 1034, 1037, 1040, 1043, 1046, 1049, 1052, 1055, 1058, 1061,
433 1064, 1067, 1070, 1072, 1074, 1076, 1078, 1081, 1084, 1087,
434 1090, 1093, 1096, 1099, 1102, 1105, 1108, 1111, 1114, 1117,
435 1120, 1124, 1126, 1131, 1133, 1137, 1140, 1143, 1146, 1147,
436 1149, 1150, 1151, 1163, 1164, 1165, 1177, 1184, 1191, 1192,
437 1193, 1204, 1205, 1206, 1217, 1223, 1229, 1234, 1239, 1240,
438 1242, 1244, 1247, 1253, 1257, 1260, 1265, 1267, 1271, 1276,
439 1283, 1284, 1293, 1298, 1300, 1304, 1307, 1309, 1314, 1316,
440 1318, 1321, 1324, 1326, 1329, 1331, 1334, 1336, 1338, 1340,
441 1343, 1345, 1348, 1351, 1355, 1357, 1361, 1363, 1367, 1369,
442 1371, 1375, 1376, 1379, 1380, 1385, 1390, 1392, 1394, 1397,
443 1399, 1401, 1404, 1405, 1407, 1413, 1416, 1420, 1424, 1429,
444 1433, 1438, 1443, 1449, 1451, 1453, 1455, 1457, 1459, 1461,
445 1463, 1465, 1467, 1469, 1474, 1479, 1484, 1487, 1489, 1491,
446 1493, 1496, 1499, 1507, 1514, 1517, 1518, 1519, 1530, 1531,
447 1538, 1540, 1542, 1544, 1546, 1549, 1551, 1553, 1555, 1557,
448 1559, 1561, 1563, 1567, 1569, 1572, 1575, 1578, 1580, 1582,
449 1584, 1586, 1588, 1590, 1592, 1594, 1596, 1598, 1602, 1604,
450 1606, 1609, 1612, 1613, 1618, 1619, 1625, 1626, 1630, 1631,
451 1636, 1640, 1643, 1647, 1648, 1649, 1650, 1651, 1652, 1654,
452 1657, 1660, 1664, 1667, 1671, 1675, 1680, 1683, 1686, 1690,
453 1694, 1699, 1701, 1704, 1706, 1709, 1711, 1714, 1716, 1719,
454 1721, 1724, 1726, 1731, 1734, 1735, 1741, 1742, 1749, 1754,
455 1759, 1760, 1761, 1772, 1774, 1775, 1780, 1782, 1784, 1786,
456 1788, 1790, 1794, 1796, 1801, 1805, 1810, 1817, 1823, 1829,
457 1832, 1835, 1837, 1840, 1843, 1846, 1849, 1852, 1855, 1858,
458 1861, 1863, 1865, 1870, 1872, 1876, 1880, 1884, 1886, 1890,
459 1894, 1896, 1900, 1904, 1906, 1910, 1914, 1918, 1922, 1924,
460 1928, 1932, 1934, 1938, 1940, 1944, 1946, 1950, 1952, 1956,
461 1958, 1962, 1964, 1965, 1966, 1974, 1976, 1980, 1984, 1988,
462 1992, 1996, 2000, 2004, 2008, 2012, 2016, 2020, 2022, 2023,
463 2025, 2028, 2036, 2039, 2042, 2050, 2057, 2060, 2064, 2067,
464 2071, 2074, 2078, 2082, 2086, 2090, 2093, 2097, 2098, 2100,
465 2102, 2104, 2106, 2108, 2110, 2112, 2114
468 static const short yyrhs[] = { -1,
469 191, 0, 192, 0, 191, 192, 0, 260, 430, 0,
470 193, 0, 194, 0, 204, 0, 207, 0, 297, 0,
471 1, 0, 75, 317, 330, 340, 330, 430, 305, 88,
472 0, 75, 317, 330, 340, 330, 23, 305, 310, 309,
473 430, 88, 0, 0, 76, 195, 196, 430, 88, 0,
474 197, 0, 317, 330, 197, 0, 201, 0, 344, 201,
475 0, 432, 0, 305, 24, 330, 340, 305, 25, 0,
476 198, 26, 27, 0, 198, 26, 305, 296, 27, 330,
477 0, 0, 198, 306, 24, 25, 199, 209, 211, 0,
478 0, 198, 306, 24, 341, 25, 200, 209, 211, 0,
479 432, 0, 305, 24, 330, 197, 305, 25, 0, 201,
480 26, 27, 0, 201, 26, 305, 296, 27, 330, 0,
481 0, 201, 306, 24, 25, 202, 227, 0, 0, 201,
482 306, 24, 341, 25, 203, 227, 0, 0, 0, 77,
483 432, 24, 341, 25, 205, 227, 206, 430, 88, 0,
484 89, 371, 92, 0, 90, 358, 92, 0, 91, 359,
485 92, 0, 89, 92, 0, 256, 0, 0, 210, 229,
486 0, 0, 212, 213, 0, 216, 214, 0, 0, 215,
487 178, 218, 88, 0, 0, 0, 217, 177, 218, 88,
488 0, 0, 219, 218, 0, 219, 0, 222, 221, 222,
489 18, 0, 180, 0, 181, 0, 52, 0, 51, 0,
490 53, 0, 223, 0, 225, 24, 222, 25, 0, 24,
491 222, 226, 222, 25, 0, 224, 0, 186, 0, 431,
492 0, 184, 0, 224, 26, 27, 0, 224, 26, 186,
493 27, 0, 34, 224, 0, 24, 224, 25, 0, 224,
494 28, 432, 0, 224, 44, 432, 0, 220, 0, 33,
495 0, 32, 0, 0, 0, 230, 0, 0, 228, 230,
496 0, 237, 0, 231, 237, 0, 240, 0, 231, 240,
497 0, 253, 0, 253, 231, 0, 233, 0, 232, 21,
498 233, 0, 236, 234, 0, 431, 0, 184, 0, 86,
499 0, 87, 0, 116, 0, 117, 0, 130, 0, 0,
500 235, 236, 0, 0, 72, 238, 391, 430, 88, 243,
501 0, 0, 72, 239, 232, 430, 88, 243, 0, 74,
502 0, 244, 0, 0, 0, 72, 241, 391, 430, 243,
503 0, 0, 72, 242, 232, 430, 243, 0, 74, 0,
504 246, 0, 0, 244, 0, 0, 0, 73, 245, 261,
505 0, 0, 73, 247, 262, 0, 78, 0, 79, 0,
506 80, 0, 81, 0, 82, 0, 88, 0, 88, 0,
507 83, 0, 84, 0, 119, 0, 137, 0, 135, 0,
508 133, 0, 132, 0, 121, 0, 138, 0, 150, 0,
509 0, 248, 330, 254, 267, 430, 250, 305, 0, 0,
510 251, 330, 252, 255, 267, 430, 249, 305, 0, 340,
511 0, 317, 330, 340, 0, 0, 19, 258, 387, 0,
512 0, 391, 259, 380, 0, 208, 257, 0, 265, 430,
513 88, 0, 430, 88, 0, 265, 430, 0, 430, 0,
514 431, 0, 184, 0, 263, 26, 27, 0, 263, 26,
515 264, 27, 0, 34, 263, 0, 24, 263, 25, 0,
516 263, 28, 432, 0, 263, 44, 432, 0, 263, 0,
517 186, 0, 263, 0, 265, 21, 263, 0, 431, 0,
518 184, 0, 266, 26, 27, 0, 266, 26, 264, 27,
519 0, 34, 266, 0, 24, 266, 25, 0, 266, 28,
520 432, 0, 266, 44, 432, 0, 266, 0, 267, 21,
521 266, 0, 431, 0, 184, 0, 186, 0, 24, 294,
522 25, 0, 185, 0, 111, 0, 268, 0, 269, 26,
523 294, 27, 0, 269, 24, 25, 0, 269, 24, 270,
524 25, 0, 70, 24, 293, 21, 352, 25, 0, 269,
525 330, 28, 432, 305, 0, 269, 330, 44, 432, 305,
526 0, 269, 47, 0, 269, 48, 0, 293, 0, 270,
527 21, 293, 0, 269, 0, 47, 271, 0, 48, 271,
528 0, 29, 277, 0, 34, 277, 0, 33, 277, 0,
529 32, 277, 0, 31, 277, 0, 30, 277, 0, 274,
530 0, 273, 0, 272, 28, 432, 0, 432, 0, 46,
531 305, 24, 352, 330, 21, 272, 25, 305, 0, 0,
532 305, 275, 276, 0, 42, 24, 352, 25, 0, 42,
533 271, 0, 43, 24, 352, 25, 0, 43, 271, 0,
534 271, 0, 24, 352, 25, 277, 0, 277, 0, 278,
535 34, 277, 0, 278, 35, 277, 0, 278, 36, 277,
536 0, 278, 0, 279, 33, 278, 0, 279, 32, 278,
537 0, 279, 0, 280, 49, 279, 0, 280, 50, 279,
538 0, 280, 0, 281, 37, 280, 0, 281, 38, 280,
539 0, 281, 51, 280, 0, 281, 52, 280, 0, 281,
540 0, 282, 53, 281, 0, 282, 54, 281, 0, 282,
541 0, 283, 29, 282, 0, 283, 0, 284, 39, 283,
542 0, 284, 0, 285, 40, 284, 0, 285, 0, 0,
543 286, 55, 287, 285, 0, 286, 0, 0, 288, 56,
544 289, 286, 0, 288, 0, 0, 0, 288, 41, 291,
545 294, 22, 292, 290, 0, 290, 0, 271, 23, 293,
546 0, 271, 57, 293, 0, 271, 58, 293, 0, 271,
547 59, 293, 0, 271, 60, 293, 0, 271, 61, 293,
548 0, 271, 62, 293, 0, 271, 63, 293, 0, 271,
549 64, 293, 0, 271, 65, 293, 0, 271, 66, 293,
550 0, 293, 0, 294, 21, 293, 0, 0, 294, 0,
551 290, 0, 298, 0, 71, 0, 303, 0, 317, 305,
552 18, 0, 0, 317, 330, 340, 330, 299, 305, 309,
553 18, 305, 0, 0, 317, 330, 340, 330, 23, 300,
554 305, 310, 309, 18, 305, 0, 340, 330, 0, 0,
555 340, 330, 23, 302, 305, 310, 0, 0, 45, 317,
556 304, 330, 307, 305, 18, 0, 45, 317, 305, 18,
557 0, 45, 307, 305, 18, 0, 0, 0, 308, 305,
558 0, 301, 0, 307, 21, 330, 301, 0, 0, 309,
559 21, 330, 301, 0, 293, 0, 19, 311, 20, 0,
560 19, 311, 21, 20, 0, 310, 0, 311, 21, 310,
561 0, 112, 0, 110, 0, 113, 0, 114, 0, 115,
562 0, 108, 305, 0, 109, 305, 0, 116, 305, 0,
563 117, 305, 0, 130, 305, 0, 131, 305, 0, 132,
564 305, 0, 133, 305, 0, 118, 305, 0, 120, 305,
565 0, 119, 305, 0, 128, 305, 0, 129, 305, 0,
566 121, 305, 0, 123, 305, 0, 139, 305, 0, 140,
567 305, 0, 142, 305, 0, 143, 305, 0, 141, 305,
568 0, 136, 305, 0, 151, 305, 0, 134, 305, 0,
569 135, 305, 0, 137, 305, 0, 124, 305, 0, 127,
570 305, 0, 125, 305, 0, 126, 305, 0, 156, 305,
571 0, 157, 305, 0, 148, 305, 0, 158, 305, 0,
572 149, 305, 0, 152, 305, 0, 153, 305, 0, 154,
573 305, 0, 155, 305, 0, 150, 305, 0, 159, 305,
574 0, 160, 305, 0, 163, 305, 0, 164, 305, 0,
575 161, 305, 0, 162, 305, 0, 175, 305, 0, 147,
576 0, 144, 0, 145, 0, 146, 0, 165, 330, 0,
577 167, 330, 0, 166, 330, 0, 168, 330, 0, 169,
578 330, 0, 170, 330, 0, 171, 330, 0, 172, 330,
579 0, 173, 330, 0, 174, 330, 0, 433, 330, 0,
580 321, 330, 0, 335, 330, 0, 314, 330, 0, 305,
581 317, 305, 0, 319, 0, 319, 85, 318, 88, 0,
582 352, 0, 352, 21, 318, 0, 312, 320, 0, 313,
583 320, 0, 315, 320, 0, 0, 317, 0, 0, 0,
584 330, 67, 432, 305, 19, 322, 384, 331, 385, 323,
585 20, 0, 0, 0, 330, 68, 432, 305, 19, 324,
586 384, 331, 385, 325, 20, 0, 330, 67, 432, 305,
587 19, 20, 0, 330, 68, 432, 305, 19, 20, 0,
588 0, 0, 330, 67, 305, 19, 326, 384, 331, 385,
589 327, 20, 0, 0, 0, 330, 68, 305, 19, 328,
590 384, 331, 385, 329, 20, 0, 330, 67, 305, 19,
591 20, 0, 330, 68, 305, 19, 20, 0, 330, 67,
592 432, 330, 0, 330, 68, 432, 330, 0, 0, 332,
593 0, 207, 0, 331, 332, 0, 317, 330, 333, 305,
594 18, 0, 317, 305, 18, 0, 334, 330, 0, 333,
595 21, 334, 330, 0, 340, 0, 22, 305, 296, 0,
596 340, 22, 305, 296, 0, 330, 69, 19, 337, 20,
597 305, 0, 0, 330, 69, 432, 19, 336, 337, 20,
598 305, 0, 330, 69, 432, 305, 0, 338, 0, 337,
599 21, 338, 0, 337, 21, 0, 432, 0, 432, 23,
600 305, 296, 0, 198, 0, 354, 0, 344, 189, 0,
601 344, 339, 0, 198, 0, 344, 198, 0, 347, 0,
602 330, 345, 0, 108, 0, 109, 0, 342, 0, 343,
603 342, 0, 34, 0, 34, 343, 0, 34, 344, 0,
604 34, 343, 344, 0, 346, 0, 346, 21, 5, 0,
605 432, 0, 346, 21, 432, 0, 5, 0, 348, 0,
606 348, 21, 5, 0, 0, 349, 351, 0, 0, 348,
607 21, 350, 351, 0, 305, 317, 339, 305, 0, 432,
608 0, 316, 0, 316, 353, 0, 344, 0, 355, 0,
609 344, 355, 0, 0, 355, 0, 305, 24, 330, 353,
610 25, 0, 26, 27, 0, 26, 296, 27, 0, 355,
611 26, 27, 0, 355, 26, 296, 27, 0, 305, 24,
612 25, 0, 305, 24, 347, 25, 0, 355, 305, 24,
613 25, 0, 355, 305, 24, 347, 25, 0, 373, 0,
614 374, 0, 377, 0, 380, 0, 393, 0, 396, 0,
615 427, 0, 401, 0, 429, 0, 357, 0, 176, 431,
616 186, 88, 0, 179, 431, 186, 88, 0, 182, 431,
617 186, 88, 0, 22, 432, 0, 360, 0, 358, 0,
618 367, 0, 360, 367, 0, 400, 360, 0, 426, 372,
619 11, 24, 294, 25, 18, 0, 426, 372, 11, 24,
620 294, 25, 0, 362, 367, 0, 0, 0, 13, 24,
621 295, 18, 295, 18, 363, 295, 364, 25, 0, 0,
622 187, 382, 24, 366, 404, 25, 0, 188, 0, 373,
623 0, 374, 0, 377, 0, 369, 391, 0, 369, 0,
624 370, 0, 393, 0, 368, 0, 361, 0, 365, 0,
625 429, 0, 24, 367, 25, 0, 1, 0, 395, 367,
626 0, 382, 19, 0, 386, 20, 0, 372, 0, 390,
627 0, 373, 0, 374, 0, 377, 0, 381, 0, 394,
628 0, 396, 0, 401, 0, 428, 0, 24, 372, 25,
629 0, 429, 0, 1, 0, 432, 22, 0, 107, 356,
630 0, 0, 6, 296, 375, 22, 0, 0, 98, 6,
631 296, 376, 22, 0, 0, 7, 378, 22, 0, 0,
632 98, 7, 379, 22, 0, 24, 380, 25, 0, 382,
633 388, 0, 382, 389, 383, 0, 0, 0, 0, 0,
634 0, 20, 0, 107, 20, 0, 392, 20, 0, 392,
635 107, 20, 0, 391, 20, 0, 391, 107, 20, 0,
636 391, 392, 20, 0, 391, 392, 107, 20, 0, 19,
637 387, 0, 19, 20, 0, 19, 390, 20, 0, 19,
638 391, 20, 0, 19, 391, 392, 20, 0, 372, 0,
639 390, 372, 0, 297, 0, 391, 297, 0, 356, 0,
640 392, 356, 0, 18, 0, 294, 18, 0, 18, 0,
641 294, 18, 0, 294, 0, 8, 24, 294, 25, 0,
642 395, 356, 0, 0, 395, 356, 9, 397, 356, 0,
643 0, 10, 24, 294, 398, 25, 356, 0, 11, 24,
644 294, 25, 0, 11, 24, 294, 25, 0, 0, 0,
645 187, 402, 382, 24, 403, 404, 25, 380, 425, 383,
646 0, 406, 0, 0, 404, 405, 21, 406, 0, 424,
647 0, 431, 0, 185, 0, 184, 0, 186, 0, 24,
648 294, 25, 0, 407, 0, 269, 26, 294, 27, 0,
649 269, 24, 25, 0, 269, 24, 270, 25, 0, 70,
650 24, 293, 21, 352, 25, 0, 269, 330, 28, 432,
651 305, 0, 269, 330, 44, 432, 305, 0, 269, 47,
652 0, 269, 48, 0, 408, 0, 47, 271, 0, 48,
653 271, 0, 29, 277, 0, 34, 277, 0, 33, 277,
654 0, 32, 277, 0, 31, 277, 0, 30, 277, 0,
655 274, 0, 409, 0, 24, 352, 25, 277, 0, 410,
656 0, 278, 34, 277, 0, 278, 35, 277, 0, 278,
657 36, 277, 0, 411, 0, 279, 33, 278, 0, 279,
658 32, 278, 0, 412, 0, 280, 49, 279, 0, 280,
659 50, 279, 0, 413, 0, 281, 37, 280, 0, 281,
660 38, 280, 0, 281, 51, 280, 0, 281, 52, 280,
661 0, 414, 0, 282, 53, 281, 0, 282, 54, 281,
662 0, 415, 0, 283, 29, 282, 0, 416, 0, 284,
663 39, 283, 0, 417, 0, 285, 40, 284, 0, 418,
664 0, 286, 55, 285, 0, 419, 0, 288, 56, 286,
665 0, 420, 0, 0, 0, 288, 41, 422, 294, 22,
666 423, 290, 0, 421, 0, 271, 23, 293, 0, 271,
667 57, 293, 0, 271, 58, 293, 0, 271, 59, 293,
668 0, 271, 60, 293, 0, 271, 61, 293, 0, 271,
669 62, 293, 0, 271, 63, 293, 0, 271, 64, 293,
670 0, 271, 65, 293, 0, 271, 66, 293, 0, 188,
671 0, 0, 12, 0, 399, 356, 0, 426, 356, 11,
672 24, 294, 25, 18, 0, 362, 356, 0, 399, 372,
673 0, 426, 372, 11, 24, 294, 25, 18, 0, 426,
674 372, 11, 24, 294, 25, 0, 362, 372, 0, 14,
675 432, 18, 0, 15, 18, 0, 97, 15, 18, 0,
676 16, 18, 0, 93, 16, 18, 0, 94, 16, 18,
677 0, 95, 16, 18, 0, 96, 16, 18, 0, 17,
678 18, 0, 17, 294, 18, 0, 0, 18, 0, 183,
679 0, 184, 0, 187, 0, 188, 0, 431, 0, 185,
686 static const short yyrline[] = { 0,
687 269, 270, 273, 274, 277, 278, 279, 280, 281, 282,
688 283, 286, 288, 292, 292, 297, 303, 307, 308, 312,
689 313, 315, 317, 321, 324, 332, 335, 344, 345, 347,
690 349, 365, 369, 376, 380, 386, 388, 388, 392, 393,
691 394, 395, 398, 401, 402, 408, 409, 413, 417, 422,
692 429, 433, 438, 445, 448, 449, 452, 457, 458, 461,
693 462, 463, 466, 467, 468, 473, 474, 482, 485, 487,
694 488, 493, 494, 495, 497, 513, 517, 518, 523, 524,
695 534, 535, 538, 539, 542, 543, 546, 547, 550, 551,
696 554, 557, 558, 561, 562, 563, 564, 565, 568, 569,
697 572, 572, 575, 575, 578, 582, 583, 586, 586, 589,
698 589, 592, 596, 597, 600, 601, 604, 610, 617, 623,
699 630, 631, 632, 633, 634, 637, 640, 643, 644, 647,
700 648, 649, 650, 651, 652, 653, 654, 657, 663, 670,
701 676, 685, 691, 695, 697, 701, 704, 711, 721, 722,
702 725, 726, 729, 730, 731, 732, 733, 734, 735, 736,
703 740, 741, 745, 746, 749, 751, 753, 754, 755, 756,
704 757, 759, 763, 767, 779, 780, 781, 782, 783, 784,
705 787, 788, 789, 790, 791, 792, 793, 794, 795, 798,
706 799, 802, 803, 804, 805, 806, 807, 808, 809, 810,
707 811, 812, 815, 816, 819, 823, 824, 827, 828, 829,
708 830, 833, 834, 838, 839, 840, 841, 844, 845, 846,
709 849, 850, 851, 854, 855, 856, 857, 858, 861, 862,
710 863, 866, 867, 870, 871, 875, 876, 879, 880, 885,
711 891, 892, 898, 904, 905, 905, 907, 910, 911, 912,
712 913, 914, 915, 916, 917, 918, 919, 920, 921, 924,
713 925, 928, 929, 932, 937, 938, 939, 942, 955, 959,
714 960, 963, 968, 969, 969, 974, 975, 976, 977, 980,
715 983, 986, 989, 990, 993, 994, 997, 998, 999, 1003,
716 1005, 1014, 1015, 1016, 1017, 1018, 1021, 1022, 1023, 1024,
717 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034,
718 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044,
719 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054,
720 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064,
721 1065, 1066, 1072, 1073, 1074, 1075, 1078, 1079, 1080, 1081,
722 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091,
723 1094, 1098, 1099, 1103, 1104, 1108, 1109, 1110, 1113, 1114,
724 1117, 1119, 1121, 1122, 1124, 1126, 1127, 1129, 1131, 1133,
725 1135, 1136, 1138, 1140, 1141, 1143, 1145, 1146, 1149, 1152,
726 1153, 1154, 1157, 1159, 1163, 1165, 1169, 1170, 1171, 1175,
727 1177, 1177, 1179, 1182, 1184, 1186, 1189, 1194, 1201, 1202,
728 1203, 1210, 1214, 1215, 1219, 1220, 1223, 1224, 1227, 1228,
729 1231, 1232, 1233, 1234, 1237, 1238, 1241, 1242, 1245, 1246,
730 1247, 1250, 1250, 1251, 1252, 1255, 1267, 1283, 1284, 1287,
731 1288, 1289, 1292, 1293, 1296, 1298, 1299, 1301, 1302, 1304,
732 1306, 1308, 1310, 1316, 1317, 1318, 1319, 1320, 1321, 1322,
733 1323, 1324, 1326, 1330, 1332, 1334, 1340, 1345, 1348, 1351,
734 1352, 1356, 1358, 1360, 1362, 1366, 1367, 1369, 1373, 1375,
735 1377, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388,
736 1389, 1390, 1391, 1392, 1395, 1401, 1404, 1407, 1408, 1411,
737 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421,
738 1424, 1425, 1431, 1432, 1433, 1434, 1437, 1438, 1439, 1440,
739 1443, 1444, 1448, 1451, 1454, 1457, 1460, 1463, 1466, 1467,
740 1468, 1469, 1471, 1472, 1474, 1476, 1483, 1487, 1489, 1491,
741 1493, 1497, 1498, 1501, 1502, 1505, 1506, 1509, 1510, 1513,
742 1514, 1515, 1518, 1526, 1531, 1532, 1536, 1537, 1540, 1545,
743 1548, 1549, 1550, 1558, 1559, 1559, 1563, 1564, 1565, 1576,
744 1583, 1584, 1587, 1588, 1589, 1590, 1591, 1593, 1594, 1595,
745 1596, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607,
746 1608, 1611, 1612, 1615, 1616, 1617, 1618, 1621, 1622, 1623,
747 1626, 1627, 1628, 1631, 1632, 1633, 1634, 1635, 1638, 1639,
748 1640, 1643, 1644, 1647, 1648, 1652, 1653, 1656, 1657, 1660,
749 1661, 1664, 1665, 1666, 1667, 1670, 1671, 1672, 1673, 1674,
750 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1684, 1685, 1688,
751 1691, 1693, 1695, 1699, 1700, 1702, 1704, 1707, 1708, 1709,
752 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1720, 1721, 1724,
753 1727, 1728, 1729, 1730, 1731, 1734, 1735
758 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
760 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
761 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
762 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
763 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
764 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
765 "TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP",
766 "DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP",
767 "MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
768 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
769 "VA_ARG","VA_DCL","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION","QITER",
770 "QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
771 "QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND","TENDMACRO",
772 "QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE","QFALLTHROUGH",
773 "QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED","QPRINTFLIKE",
774 "QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST","QVOLATILE",
775 "QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT","QIN",
776 "QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED",
777 "QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED",
778 "QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT",
779 "QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT",
780 "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE",
781 "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF",
782 "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE",
783 "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED",
784 "QSETBUFFERSIZE","QBUFFERCONSTRAINT","QENSURESCONSTRAINT","QSETSTRINGLENGTH",
785 "QMAXSET","QMAXREAD","QTESTINRANGE","IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID",
786 "CCONSTANT","ITER_NAME","ITER_ENDNAME","TYPE_NAME","file","externalDefs","externalDef",
787 "constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2",
788 "@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
789 "optGlobMods","@8","optGlobBufConstraints","@9","optGlobBufConstraintsRest",
790 "optGlobEnsuresConstraintsAux","@10","optGlobBufConstraintsAux","@11","BufConstraintList",
791 "BufConstraint","bufferModifier","relationalOp","BufConstraintExpr","BufConstraintTerm",
792 "BufConstraintSrefExpr","BufUnaryOp","BufBinaryOp","optPlainGlobMods","@13",
793 "optGlobModsRest","optPlainGlobModsRest","specialClauses","globIdList","globIdListExpr",
794 "globId","globQual","optGlobQuals","optGlobModsAux","@14","@15","optPlainGlobModsAux",
795 "@16","@17","optMods","fcnMods","@18","fcnPlainMods","@19","specialTag","endStateTag",
796 "endSpecialTag","stateSpecialClause","specialClauseType","specialClause","@20",
797 "@21","fcnDefHdrAux","fcnBody","@22","@23","fcnDef","locModifies","locPlainModifies",
798 "modListExpr","mExpr","modList","specClauseListExpr","specClauseList","primaryExpr",
799 "postfixExpr","argumentExprList","unaryExpr","fieldDesignator","offsetofExpr",
800 "sizeofExpr","@24","sizeofExprAux","castExpr","timesExpr","plusExpr","shiftExpr",
801 "relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr","andExpr",
802 "@25","orExpr","@26","conditionalExpr","@27","@28","assignExpr","expr","optExpr",
803 "constantExpr","initializer","instanceDecl","@29","@30","namedInitializer","@31",
804 "typeDecl","@32","IsType","PushType","namedInitializerList","namedInitializerListAux",
805 "optDeclarators","init","initList","storageSpecifier","typeQualifier","typeModifier",
806 "typeSpecifier","completeType","completeTypeSpecifier","altType","completeTypeSpecifierAux",
807 "optCompleteType","suSpc","@33","@34","@35","@36","@37","@38","@39","@40","NotType",
808 "structDeclList","structDecl","structNamedDeclList","structNamedDecl","enumSpc",
809 "@41","enumeratorList","enumerator","optNamedDecl","namedDecl","genericParamList",
810 "innerMods","innerModsList","pointers","paramIdList","idList","paramTypeList",
811 "paramList","@42","@43","paramDecl","typeExpression","abstractDecl","optAbstractDeclBase",
812 "abstractDeclBase","stmt","lclintassertion","iterBody","endBody","iterDefStmtList",
813 "iterDefIterationStmt","forPred","@44","@45","partialIterStmt","@46","iterDefStmt",
814 "iterSelectionStmt","openScope","closeScope","macroBody","stmtErr","labeledStmt",
815 "caseStmt","@47","@48","defaultStmt","@49","@50","compoundStmt","compoundStmtErr",
816 "CreateInnerScope","DeleteInnerScope","CreateStructInnerScope","DeleteStructInnerScope",
817 "DeleteInnerScopeSafe","compoundStmtRest","compoundStmtAux","compoundStmtAuxErr",
818 "stmtListErr","initializerList","stmtList","expressionStmt","expressionStmtErr",
819 "ifPred","selectionStmt","@51","@52","whilePred","iterWhilePred","iterStmt",
820 "@53","@54","iterArgList","@55","iterArgExpr","primaryIterExpr","postfixIterExpr",
821 "unaryIterExpr","castIterExpr","timesIterExpr","plusIterExpr","shiftIterExpr",
822 "relationalIterExpr","equalityIterExpr","bitandIterExpr","xorIterExpr","bitorIterExpr",
823 "andIterExpr","orIterExpr","conditionalIterExpr","@56","@57","assignIterExpr",
824 "endIter","doHeader","iterationStmt","iterationStmtErr","jumpStmt","optSemi",
825 "id","newId","typeName", NULL
829 static const short yyr1[] = { 0,
830 190, 190, 191, 191, 192, 192, 192, 192, 192, 192,
831 192, 193, 193, 195, 194, 196, 196, 197, 197, 198,
832 198, 198, 198, 199, 198, 200, 198, 201, 201, 201,
833 201, 202, 201, 203, 201, 205, 206, 204, 207, 207,
834 207, 207, 208, 210, 209, 212, 211, 213, 215, 214,
835 214, 217, 216, 216, 218, 218, 219, 220, 220, 221,
836 221, 221, 222, 222, 222, 223, 223, 224, 224, 224,
837 224, 224, 224, 224, 224, 225, 226, 226, -1, -1,
838 228, 227, 229, 229, 230, 230, 231, 231, 232, 232,
839 233, 234, 234, 235, 235, 235, 235, 235, 236, 236,
840 238, 237, 239, 237, 237, 237, 237, 241, 240, 242,
841 240, 240, 240, 240, 243, 243, 245, 244, 247, 246,
842 248, 248, 248, 248, 248, 249, 250, 251, 251, 252,
843 252, 252, 252, 252, 252, 252, 252, 254, 253, 255,
844 253, 256, 256, 258, 257, 259, 257, 260, 261, 261,
845 262, 262, 263, 263, 263, 263, 263, 263, 263, 263,
846 264, 264, 265, 265, 266, 266, 266, 266, 266, 266,
847 266, 266, 267, 267, 268, 268, 268, 268, 268, 268,
848 269, 269, 269, 269, 269, 269, 269, 269, 269, 270,
849 270, 271, 271, 271, 271, 271, 271, 271, 271, 271,
850 271, 271, 272, 272, 273, 275, 274, 276, 276, 276,
851 276, 277, 277, 278, 278, 278, 278, 279, 279, 279,
852 280, 280, 280, 281, 281, 281, 281, 281, 282, 282,
853 282, 283, 283, 284, 284, 285, 285, 286, 287, 286,
854 288, 289, 288, 290, 291, 292, 290, 293, 293, 293,
855 293, 293, 293, 293, 293, 293, 293, 293, 293, 294,
856 294, 295, 295, 296, 297, 297, 297, 298, 299, 298,
857 300, 298, 301, 302, 301, 304, 303, 303, 303, 305,
858 306, 307, 308, 308, 309, 309, 310, 310, 310, 311,
859 311, 312, 312, 312, 312, 312, 313, 313, 313, 313,
860 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
861 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
862 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
863 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
864 313, 313, 314, 314, 314, 314, 315, 315, 315, 315,
865 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
866 316, 317, 317, 318, 318, 319, 319, 319, 320, 320,
867 322, 323, 321, 324, 325, 321, 321, 321, 326, 327,
868 321, 328, 329, 321, 321, 321, 321, 321, 330, 331,
869 331, 331, 332, 332, 333, 333, 334, 334, 334, 335,
870 336, 335, 335, 337, 337, 337, 338, 338, 339, 339,
871 339, 339, 340, 340, 341, 341, 342, 342, 343, 343,
872 344, 344, 344, 344, 345, 345, 346, 346, 347, 347,
873 347, 349, 348, 350, 348, 351, 351, 352, 352, 353,
874 353, 353, 354, 354, 355, 355, 355, 355, 355, 355,
875 355, 355, 355, 356, 356, 356, 356, 356, 356, 356,
876 356, 356, 356, 357, 357, 357, -1, 358, 359, 360,
877 360, 361, 361, 361, 361, 363, 364, 362, 366, 365,
878 365, 367, 367, 367, 367, 367, 367, 367, 367, 367,
879 367, 367, 367, 367, 368, 369, 370, 371, 371, 372,
880 372, 372, 372, 372, 372, 372, 372, 372, 372, 372,
881 373, 373, 375, 374, 376, 374, 378, 377, 379, 377,
882 380, 380, 381, 382, 383, 384, 385, 386, 387, 387,
883 387, 387, 387, 387, 387, 387, 388, 389, 389, 389,
884 389, 390, 390, 391, 391, 392, 392, 393, 393, 394,
885 394, 394, 395, 396, 397, 396, 398, 396, 399, 400,
886 402, 403, 401, 404, 405, 404, 406, 406, 406, 406,
887 407, 407, 408, 408, 408, 408, 408, 408, 408, 408,
888 408, 409, 409, 409, 409, 409, 409, 409, 409, 409,
889 409, 410, 410, 411, 411, 411, 411, 412, 412, 412,
890 413, 413, 413, 414, 414, 414, 414, 414, 415, 415,
891 415, 416, 416, 417, 417, 418, 418, 419, 419, 420,
892 420, 421, 422, 423, 421, 424, 424, 424, 424, 424,
893 424, 424, 424, 424, 424, 424, 424, 425, 425, 426,
894 427, 427, 427, 428, 428, 428, 428, 429, 429, 429,
895 429, 429, 429, 429, 429, 429, 429, 430, 430, 431,
896 432, 432, 432, 432, 432, 433, 433
899 static const short yyr2[] = { 0,
900 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
901 1, 8, 11, 0, 5, 1, 3, 1, 2, 1,
902 6, 3, 6, 0, 7, 0, 8, 1, 6, 3,
903 6, 0, 6, 0, 7, 0, 0, 10, 3, 3,
904 3, 2, 1, 0, 2, 0, 2, 2, 0, 4,
905 0, 0, 4, 0, 2, 1, 4, 1, 1, 1,
906 1, 1, 1, 4, 5, 1, 1, 1, 1, 3,
907 4, 2, 3, 3, 3, 1, 1, 1, 0, 2,
908 0, 2, 1, 2, 1, 2, 1, 2, 1, 3,
909 2, 1, 1, 1, 1, 1, 1, 1, 0, 2,
910 0, 6, 0, 6, 1, 1, 0, 0, 5, 0,
911 5, 1, 1, 0, 1, 0, 0, 3, 0, 3,
912 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
913 1, 1, 1, 1, 1, 1, 1, 0, 7, 0,
914 8, 1, 3, 0, 3, 0, 3, 2, 3, 2,
915 2, 1, 1, 1, 3, 4, 2, 3, 3, 3,
916 1, 1, 1, 3, 1, 1, 3, 4, 2, 3,
917 3, 3, 1, 3, 1, 1, 1, 3, 1, 1,
918 1, 4, 3, 4, 6, 5, 5, 2, 2, 1,
919 3, 1, 2, 2, 2, 2, 2, 2, 2, 2,
920 1, 1, 3, 1, 9, 0, 3, 4, 2, 4,
921 2, 1, 4, 1, 3, 3, 3, 1, 3, 3,
922 1, 3, 3, 1, 3, 3, 3, 3, 1, 3,
923 3, 1, 3, 1, 3, 1, 3, 1, 0, 4,
924 1, 0, 4, 1, 0, 0, 7, 1, 3, 3,
925 3, 3, 3, 3, 3, 3, 3, 3, 3, 1,
926 3, 0, 1, 1, 1, 1, 1, 3, 0, 9,
927 0, 11, 2, 0, 6, 0, 7, 4, 4, 0,
928 0, 2, 1, 4, 0, 4, 1, 3, 4, 1,
929 3, 1, 1, 1, 1, 1, 2, 2, 2, 2,
930 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
931 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
932 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
933 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
934 2, 2, 1, 1, 1, 1, 2, 2, 2, 2,
935 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
936 3, 1, 4, 1, 3, 2, 2, 2, 0, 1,
937 0, 0, 11, 0, 0, 11, 6, 6, 0, 0,
938 10, 0, 0, 10, 5, 5, 4, 4, 0, 1,
939 1, 2, 5, 3, 2, 4, 1, 3, 4, 6,
940 0, 8, 4, 1, 3, 2, 1, 4, 1, 1,
941 2, 2, 1, 2, 1, 2, 1, 1, 1, 2,
942 1, 2, 2, 3, 1, 3, 1, 3, 1, 1,
943 3, 0, 2, 0, 4, 4, 1, 1, 2, 1,
944 1, 2, 0, 1, 5, 2, 3, 3, 4, 3,
945 4, 4, 5, 1, 1, 1, 1, 1, 1, 1,
946 1, 1, 1, 4, 4, 4, 2, 1, 1, 1,
947 2, 2, 7, 6, 2, 0, 0, 10, 0, 6,
948 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
949 1, 1, 3, 1, 2, 2, 2, 1, 1, 1,
950 1, 1, 1, 1, 1, 1, 1, 3, 1, 1,
951 2, 2, 0, 4, 0, 5, 0, 3, 0, 4,
952 3, 2, 3, 0, 0, 0, 0, 0, 1, 2,
953 2, 3, 2, 3, 3, 4, 2, 2, 3, 3,
954 4, 1, 2, 1, 2, 1, 2, 1, 2, 1,
955 2, 1, 4, 2, 0, 5, 0, 6, 4, 4,
956 0, 0, 10, 1, 0, 4, 1, 1, 1, 1,
957 1, 3, 1, 4, 3, 4, 6, 5, 5, 2,
958 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
959 1, 1, 4, 1, 3, 3, 3, 1, 3, 3,
960 1, 3, 3, 1, 3, 3, 3, 3, 1, 3,
961 3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
962 3, 1, 0, 0, 7, 1, 3, 3, 3, 3,
963 3, 3, 3, 3, 3, 3, 3, 1, 0, 1,
964 2, 7, 2, 2, 7, 6, 2, 3, 2, 3,
965 2, 3, 3, 3, 3, 2, 3, 0, 1, 1,
969 static const short yydefact[] = { 0,
970 11, 421, 389, 266, 389, 14, 0, 0, 0, 0,
971 280, 280, 293, 292, 294, 295, 296, 280, 280, 280,
972 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
973 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
974 280, 280, 280, 344, 345, 346, 343, 280, 280, 280,
975 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
976 280, 280, 280, 280, 389, 389, 389, 389, 389, 389,
977 389, 389, 389, 389, 280, 660, 661, 665, 662, 663,
978 666, 0, 3, 6, 7, 413, 8, 9, 389, 43,
979 658, 10, 265, 267, 0, 369, 369, 389, 369, 389,
980 362, 389, 0, 389, 142, 280, 664, 20, 389, 417,
981 418, 419, 422, 423, 283, 280, 280, 276, 389, 667,
982 389, 389, 665, 0, 510, 280, 517, 0, 0, 0,
983 640, 0, 0, 0, 0, 280, 550, 0, 280, 280,
984 280, 280, 280, 280, 280, 280, 280, 0, 42, 0,
985 0, 0, 0, 0, 0, 280, 180, 176, 179, 177,
986 561, 181, 192, 212, 202, 201, 214, 218, 221, 224,
987 229, 232, 234, 236, 238, 241, 244, 248, 260, 552,
988 206, 0, 0, 542, 500, 501, 502, 503, 0, 0,
989 504, 280, 505, 0, 506, 0, 507, 509, 175, 0,
990 494, 0, 548, 0, 524, 481, 0, 0, 0, 490,
991 0, 491, 470, 489, 486, 487, 482, 483, 484, 0,
992 0, 488, 0, 0, 0, 492, 469, 0, 297, 298,
993 299, 300, 305, 307, 306, 310, 311, 322, 324, 325,
994 323, 308, 309, 301, 302, 303, 304, 319, 320, 317,
995 321, 312, 313, 316, 314, 315, 328, 330, 335, 318,
996 331, 332, 333, 334, 326, 327, 329, 336, 337, 340,
997 341, 338, 339, 347, 349, 348, 350, 351, 352, 353,
998 354, 355, 356, 342, 4, 280, 0, 144, 148, 544,
999 389, 389, 659, 5, 389, 370, 366, 367, 360, 368,
1000 0, 280, 280, 358, 280, 280, 0, 359, 414, 357,
1001 420, 424, 389, 0, 282, 389, 0, 273, 280, 658,
1002 16, 18, 0, 389, 280, 28, 432, 280, 176, 179,
1003 212, 264, 513, 175, 0, 280, 280, 280, 280, 0,
1004 649, 651, 656, 0, 0, 389, 438, 0, 0, 195,
1005 200, 199, 198, 197, 196, 0, 280, 193, 194, 280,
1006 0, 0, 0, 0, 0, 280, 519, 280, 0, 0,
1007 0, 512, 463, 280, 454, 455, 456, 457, 0, 458,
1008 459, 280, 461, 280, 460, 462, 524, 280, 280, 188,
1009 189, 0, 280, 280, 280, 280, 280, 280, 280, 280,
1010 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
1011 280, 280, 280, 280, 280, 280, 280, 280, 280, 239,
1012 245, 242, 551, 280, 0, 647, 39, 0, 525, 543,
1013 554, 644, 0, 511, 280, 0, 0, 0, 549, 40,
1014 471, 475, 485, 496, 497, 495, 0, 0, 41, 22,
1015 280, 432, 389, 280, 524, 545, 280, 268, 143, 389,
1016 0, 364, 0, 389, 0, 389, 0, 280, 280, 279,
1017 280, 278, 274, 389, 0, 280, 0, 389, 280, 19,
1018 429, 0, 0, 415, 430, 280, 0, 0, 518, 0,
1019 557, 0, 263, 0, 648, 657, 178, 280, 280, 0,
1020 440, 439, 441, 280, 508, 280, 0, 652, 653, 654,
1021 655, 650, 515, 0, 0, 0, 0, 0, 643, 389,
1022 522, 641, 0, 0, 183, 0, 190, 0, 0, 0,
1023 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
1024 259, 215, 216, 217, 220, 219, 222, 223, 225, 226,
1025 227, 228, 230, 231, 233, 235, 237, 280, 280, 280,
1026 261, 280, 280, 207, 538, 179, 542, 0, 389, 523,
1027 555, 0, 0, 493, 479, 0, 0, 24, 0, 529,
1028 280, 546, 145, 389, 280, 389, 524, 147, 280, 269,
1029 363, 280, 379, 0, 387, 382, 0, 388, 0, 404,
1030 407, 401, 403, 284, 280, 280, 658, 15, 30, 280,
1031 432, 280, 17, 416, 425, 427, 36, 434, 389, 433,
1032 437, 514, 553, 0, 559, 280, 361, 446, 0, 432,
1033 442, 280, 0, 213, 389, 280, 0, 520, 521, 0,
1034 0, 0, 537, 0, 562, 280, 184, 182, 280, 280,
1035 240, 0, 243, 280, 209, 280, 211, 539, 540, 280,
1036 280, 280, 560, 280, 280, 389, 44, 26, 530, 533,
1037 280, 280, 531, 280, 547, 0, 271, 280, 365, 385,
1038 526, 371, 386, 526, 374, 280, 406, 280, 0, 0,
1039 280, 280, 280, 0, 32, 0, 280, 0, 81, 431,
1040 280, 443, 280, 0, 447, 450, 280, 0, 448, 0,
1041 432, 0, 0, 516, 464, 465, 466, 280, 280, 191,
1042 186, 187, 246, 0, 0, 541, 556, 0, 280, 280,
1043 280, 280, 280, 280, 280, 280, 280, 0, 176, 179,
1044 177, 192, 212, 201, 218, 221, 224, 229, 232, 234,
1045 236, 238, 241, 0, 565, 564, 573, 582, 592, 594,
1046 598, 601, 604, 609, 612, 614, 616, 618, 620, 622,
1047 626, 567, 175, 0, 23, 46, 107, 44, 534, 535,
1048 280, 532, 21, 280, 285, 389, 377, 526, 389, 378,
1049 526, 400, 405, 280, 0, 277, 280, 287, 275, 280,
1050 0, 389, 81, 34, 0, 426, 428, 37, 114, 435,
1051 409, 0, 280, 443, 410, 444, 558, 476, 0, 451,
1052 449, 452, 0, 0, 185, 0, 565, 280, 208, 210,
1053 646, 0, 0, 195, 200, 199, 198, 197, 196, 193,
1054 194, 280, 280, 280, 188, 189, 0, 280, 280, 280,
1055 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
1056 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
1057 280, 280, 280, 280, 239, 623, 242, 480, 0, 474,
1058 25, 54, 101, 117, 105, 121, 122, 123, 124, 125,
1059 128, 129, 45, 107, 83, 106, 389, 389, 87, 46,
1060 536, 280, 0, 391, 389, 389, 390, 389, 389, 389,
1061 408, 280, 290, 0, 285, 12, 31, 33, 81, 29,
1062 658, 108, 119, 112, 82, 114, 85, 113, 432, 436,
1063 411, 412, 280, 445, 453, 0, 204, 0, 524, 247,
1064 645, 178, 280, 0, 183, 0, 0, 0, 0, 627,
1065 628, 629, 630, 631, 632, 633, 634, 635, 636, 637,
1066 215, 216, 217, 220, 219, 222, 223, 225, 226, 227,
1067 228, 230, 231, 233, 235, 237, 619, 280, 621, 280,
1068 473, 47, 51, 0, 389, 99, 658, 84, 138, 0,
1069 88, 27, 285, 280, 389, 0, 280, 392, 380, 389,
1070 383, 389, 402, 288, 280, 658, 35, 0, 389, 99,
1071 658, 86, 280, 477, 280, 0, 642, 639, 213, 280,
1072 184, 182, 280, 280, 0, 566, 48, 0, 0, 389,
1073 94, 95, 96, 97, 98, 658, 89, 99, 0, 0,
1074 0, 154, 118, 163, 658, 0, 153, 0, 130, 135,
1075 134, 133, 132, 131, 136, 137, 140, 0, 270, 280,
1076 394, 280, 280, 389, 397, 0, 372, 0, 375, 289,
1077 291, 0, 38, 658, 658, 120, 658, 152, 280, 0,
1078 205, 203, 638, 525, 0, 186, 187, 624, 0, 0,
1079 0, 58, 59, 69, 67, 0, 56, 76, 0, 63,
1080 66, 0, 68, 0, 99, 0, 100, 93, 91, 92,
1081 0, 157, 0, 0, 0, 0, 0, 150, 0, 0,
1082 166, 173, 658, 165, 0, 280, 286, 280, 280, 0,
1083 395, 280, 381, 0, 384, 0, 13, 116, 116, 151,
1084 478, 563, 185, 280, 0, 0, 66, 0, 72, 53,
1085 55, 61, 60, 62, 0, 0, 0, 0, 0, 116,
1086 90, 116, 158, 155, 162, 161, 0, 159, 160, 164,
1087 149, 0, 169, 0, 0, 0, 0, 0, 658, 272,
1088 398, 389, 393, 280, 373, 376, 109, 115, 111, 625,
1089 50, 78, 77, 0, 73, 0, 0, 70, 0, 74,
1090 75, 0, 102, 104, 156, 170, 167, 0, 171, 172,
1091 174, 127, 280, 0, 396, 399, 0, 57, 71, 64,
1092 168, 139, 126, 280, 65, 141, 0, 0, 0
1095 static const short yydefgoto[] = { 1227,
1096 82, 83, 84, 85, 122, 320, 321, 86, 667, 778,
1097 322, 803, 919, 87, 699, 921, 904, 89, 776, 777,
1098 881, 882, 982, 1027, 1028, 983, 984, 1096, 1097, 1098,
1099 1155, 1099, 1100, 1101, 1102, 1194, 808, 809, 893, 925,
1100 894, 1036, 1037, 1109, 1038, 1039, 895, 985, 986, 927,
1101 1009, 1010, 1187, 1188, 987, 928, 1011, 897, 1224, 1213,
1102 898, 1057, 899, 1048, 1125, 90, 289, 453, 455, 91,
1103 1043, 1076, 1044, 1167, 1045, 1122, 1123, 162, 163, 526,
1104 164, 936, 165, 166, 425, 564, 167, 168, 169, 170,
1105 171, 172, 173, 174, 175, 176, 558, 177, 560, 178,
1106 559, 828, 179, 207, 494, 333, 290, 93, 678, 784,
1107 115, 606, 94, 316, 181, 287, 116, 117, 903, 799,
1108 914, 96, 97, 98, 99, 347, 291, 461, 101, 297,
1109 102, 788, 1134, 791, 1136, 681, 1066, 684, 1068, 103,
1110 906, 907, 1063, 1064, 104, 689, 599, 600, 813, 119,
1111 483, 112, 113, 106, 614, 615, 484, 485, 486, 701,
1112 620, 348, 819, 815, 503, 372, 373, 208, 228, 209,
1113 210, 374, 933, 1080, 212, 664, 213, 214, 215, 216,
1114 183, 430, 375, 376, 488, 637, 377, 335, 514, 378,
1115 188, 379, 570, 786, 999, 221, 583, 521, 429, 190,
1116 584, 585, 380, 191, 192, 381, 661, 624, 382, 224,
1117 383, 387, 719, 755, 879, 756, 757, 758, 759, 760,
1118 761, 762, 763, 764, 765, 766, 767, 768, 769, 770,
1119 771, 978, 1144, 772, 1084, 384, 385, 197, 386, 294,
1123 static const short yypact[] = { 2240,
1124 -32768, 108, 6007,-32768, 6677,-32768, 697, 3211, 3591, 3591,
1125 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1126 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1127 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1128 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1129 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1130 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1131 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 431,-32768,-32768,
1132 -32768, 2416,-32768,-32768,-32768, 355,-32768,-32768, 5623,-32768,
1133 114,-32768,-32768,-32768, 74, 6512, 6512,-32768, 6512, 140,
1134 149,-32768, 766,-32768,-32768, 697,-32768,-32768,-32768,-32768,
1135 -32768,-32768, 108,-32768,-32768, 191,-32768, 140,-32768,-32768,
1136 -32768, 6007,-32768, 217,-32768, 4477,-32768, 225, 234, 253,
1137 -32768, 268, 697, 306, 319, 762,-32768, 2790, 4477, 4477,
1138 4477, 4477, 4477, 4477,-32768, 4703, 4703, 398,-32768, 393,
1139 425, 434, 445, 413, 219, 5070,-32768, 450, 456,-32768,
1140 486,-32768, 905, 898,-32768,-32768,-32768, 1049, 423, 577,
1141 723, 752, 488, 508, 487, 521, 67,-32768,-32768, 325,
1142 -32768, 3738, 468, 502,-32768,-32768,-32768,-32768, 615, 3358,
1143 -32768, 5070,-32768, 3738,-32768, 3738,-32768,-32768, 580, 636,
1144 -32768, 620,-32768, 2979, 486, 647, 344, 599, 3401,-32768,
1145 3591,-32768,-32768,-32768, 6272,-32768,-32768,-32768,-32768, 656,
1146 676,-32768, 3591, 3591, 3738,-32768,-32768, 629,-32768,-32768,
1147 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1148 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1149 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1150 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1151 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1152 -32768,-32768,-32768,-32768,-32768, 687, 708,-32768,-32768,-32768,
1153 140, 5466,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1154 722, 477,-32768,-32768, 697, 697, 59,-32768, 355,-32768,
1155 -32768,-32768,-32768, 749,-32768,-32768, 758, 724, 477, 114,
1156 -32768, 540, 759,-32768, 697,-32768, 255, 4477,-32768,-32768,
1157 -32768,-32768,-32768,-32768, 768, 4477, 4477, 4477, 797, 770,
1158 -32768,-32768,-32768, 516, 464, 6141, 296, 786, 800,-32768,
1159 -32768,-32768,-32768,-32768,-32768, 816, 4477,-32768,-32768, 4477,
1160 828, 838, 879, 886, 891, 4477,-32768, 1718, 693, 693,
1161 693,-32768,-32768, 5070,-32768,-32768,-32768,-32768, 892,-32768,
1162 -32768, 5070,-32768, 5070,-32768,-32768,-32768, 1451, 4477,-32768,
1163 -32768, 96, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477,
1164 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477,
1165 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477,-32768,
1166 -32768,-32768,-32768, 4477, 716,-32768,-32768, 2601,-32768,-32768,
1167 910,-32768, 913,-32768, 4477, 505, 901, 920,-32768,-32768,
1168 -32768,-32768, 6272,-32768,-32768,-32768, 3168, 954,-32768,-32768,
1169 4477, 68, 3840, 477, 949,-32768, 477,-32768, 570, 6677,
1170 896, 972, 992, 998, 1006, 998, 697, 1035, 477,-32768,
1171 477,-32768,-32768,-32768, 912, 1025, 1037,-32768, 477, 540,
1172 -32768, 697, 1047,-32768, 1045, 697, 279, 1059,-32768, 333,
1173 1079, 385, 1079, 1069,-32768,-32768,-32768,-32768, 2008, 1078,
1174 587,-32768, 627, 4477,-32768,-32768, 1085,-32768,-32768,-32768,
1175 -32768,-32768,-32768, 1109, 1116, 948, 957, 963,-32768, 3840,
1176 -32768,-32768, 1139, 1134,-32768, 412,-32768, 99, 697, 697,
1177 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1178 -32768,-32768,-32768,-32768, 1049, 1049, 423, 423, 577, 577,
1179 577, 577, 723, 723, 752, 488, 508, 4477, 4477, 4477,
1180 -32768, 4929, 4940,-32768,-32768, 5855,-32768, 3548, 4024,-32768,
1181 -32768, 1137, 426,-32768,-32768, 1138, 1140,-32768, 1141,-32768,
1182 2110,-32768,-32768, 4208, 4392,-32768, 949,-32768,-32768, 1146,
1183 -32768,-32768, 1144, 1151,-32768, 1152, 1157,-32768, 843,-32768,
1184 1148,-32768,-32768,-32768, 191,-32768, 406,-32768,-32768, 4477,
1185 358, 477,-32768,-32768, 1156,-32768,-32768, 1176, 6677,-32768,
1186 -32768,-32768,-32768, 1158,-32768, 797,-32768,-32768, 1155, 556,
1187 627, 2412, 1160,-32768,-32768,-32768, 1164,-32768,-32768, 1099,
1188 1100, 1102,-32768, 1165,-32768, 4477,-32768,-32768,-32768,-32768,
1189 487, 914, 521, 4477,-32768, 4477,-32768,-32768,-32768, 4435,
1190 5070, 4477,-32768, 5178, 4477,-32768,-32768,-32768,-32768,-32768,
1191 4618, 4661,-32768, 4844,-32768, 1166,-32768,-32768,-32768,-32768,
1192 -32768, 1175,-32768,-32768, 1177,-32768, 697,-32768, 697, 1178,
1193 2040,-32768,-32768, 1171,-32768, 1180,-32768, 348,-32768,-32768,
1194 697, 614, 5070, 1182,-32768,-32768, 137, 1181,-32768, 1183,
1195 109, 1186, 1184,-32768,-32768,-32768,-32768, 4477, 5178,-32768,
1196 -32768,-32768,-32768, 1187, 1189,-32768,-32768, 452, 4477, 4477,
1197 4477, 4477, 4477, 4477, 4477, 4703, 4703, 1179, 504, 575,
1198 582, 1077, 1033, 604, 1081, 918, 981, 850, 1024, 1173,
1199 1169, 1185, 1161, 90, 1190,-32768,-32768,-32768,-32768,-32768,
1200 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1201 -32768,-32768, 612, 660,-32768,-32768, 1326,-32768,-32768,-32768,
1202 4887,-32768,-32768,-32768,-32768, 6599,-32768,-32768, 6599,-32768,
1203 -32768,-32768,-32768, 4477, 1054,-32768, 2040,-32768,-32768, 2040,
1204 1123,-32768,-32768,-32768, 1193,-32768,-32768,-32768, 1429,-32768,
1205 355, 1195,-32768, 539,-32768, 627,-32768,-32768, 1196,-32768,
1206 -32768,-32768, 1197, 697,-32768, 695, 1201, 4477,-32768,-32768,
1207 1202, 729, 1205, 782, 798, 830, 853, 874, 885, 893,
1208 895, 4477, 1633, 4477, 902, 909, 155, 4477, 4477, 4477,
1209 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477,
1210 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477,
1211 4477, 4477, 4477, 4477, 4477,-32768, 4477,-32768, 1211, 1215,
1212 -32768, 1057, 24,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1213 -32768,-32768,-32768, 1066,-32768,-32768,-32768,-32768, 1030,-32768,
1214 -32768, 2040, 583,-32768, 140, 5701,-32768, 6599, 5701, 6599,
1215 -32768,-32768,-32768, 1098,-32768,-32768,-32768,-32768,-32768,-32768,
1216 114, 300,-32768,-32768,-32768, 1080,-32768,-32768, 189,-32768,
1217 -32768,-32768, 3694,-32768,-32768, 638,-32768, 1220, 949,-32768,
1218 -32768, 916, 4477, 1221, 945, 946, 240, 697, 697,-32768,
1219 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1220 947, 970, 971, 858, 993, 523, 673, 410, 489, 622,
1221 662, 467, 652, 427, 254, 336, 487, 4477, 521, 5178,
1222 -32768,-32768, 1065, 1067, 6403, 57, 81,-32768,-32768, 866,
1223 -32768,-32768,-32768,-32768,-32768, 1228, 366,-32768,-32768, 5701,
1224 -32768, 5701,-32768,-32768, 1979, 764,-32768, 1159, 6403, 57,
1225 81,-32768, 755,-32768,-32768, 697,-32768, 1061, 1021,-32768,
1226 1022, 1023,-32768,-32768, 1101,-32768,-32768, 1073, 101, 5309,
1227 -32768,-32768,-32768,-32768,-32768, 840,-32768, 57, 944, 55,
1228 55,-32768,-32768, 285, 987, 1167,-32768, 151,-32768,-32768,
1229 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1001,-32768, 477,
1230 -32768,-32768, 1232,-32768, 1235, 1236,-32768, 1239,-32768,-32768,
1231 -32768, 1188,-32768, 5151, 840,-32768, 987,-32768, 654, 1229,
1232 -32768,-32768,-32768,-32768, 1238, 1032, 1034,-32768, 101, 101,
1233 156,-32768,-32768,-32768,-32768, 1194, 101,-32768, 1104,-32768,
1234 370, 1237,-32768, 1198, 57, 1199,-32768,-32768,-32768,-32768,
1235 705, 285, 85, 697, 697, 55, 1204,-32768, 151, 151,
1236 -32768, 543, 1052,-32768, 151,-32768,-32768, 4477, 366, 1250,
1237 -32768,-32768,-32768, 1249,-32768, 1251,-32768, 1200, 1200,-32768,
1238 -32768,-32768, 1043, 4477, 1207, 1113, 711, 156, 370,-32768,
1239 -32768,-32768,-32768,-32768, 101, 41, 697, 697, 101, 1200,
1240 -32768, 1200,-32768,-32768,-32768, 285, 1245,-32768,-32768, 285,
1241 -32768, 792, 543, 823, 697, 697, 151, 1208, 1052,-32768,
1242 -32768,-32768,-32768, 4477,-32768,-32768,-32768,-32768,-32768,-32768,
1243 -32768,-32768,-32768, 101,-32768, 711, 1256,-32768, 1248,-32768,
1244 -32768, 1259,-32768,-32768,-32768,-32768,-32768, 1254,-32768,-32768,
1245 543,-32768,-32768, 1209,-32768,-32768, 1264,-32768,-32768,-32768,
1246 -32768,-32768,-32768,-32768,-32768,-32768, 1290, 1293,-32768
1249 static const short yypgoto[] = {-32768,
1250 -32768, 1216,-32768,-32768,-32768,-32768, -391, -105,-32768,-32768,
1251 974,-32768,-32768,-32768,-32768,-32768, 107,-32768, 522,-32768,
1252 405,-32768,-32768,-32768,-32768,-32768,-32768, -897,-32768,-32768,
1253 -32768, -931,-32768, -943,-32768,-32768, -709,-32768,-32768,-32768,
1254 -696, 299, 201,-32768,-32768, 272, 417,-32768,-32768, 386,
1255 -32768,-32768, -863, -674,-32768,-32768,-32768,-32768,-32768,-32768,
1256 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1257 -32768,-32768, -884, 141, 303, -959, 194,-32768, -647, 475,
1258 1234,-32768,-32768, -590,-32768,-32768, 11, -363, -402, -245,
1259 -350, -348, -371, -352, -471, -483,-32768, -578,-32768, -24,
1260 -32768,-32768, 928, 1332, -610, -360, 15,-32768,-32768,-32768,
1261 -465,-32768,-32768,-32768, 0, -226, 849,-32768, -811, -716,
1262 -32768,-32768,-32768,-32768,-32768,-32768, 80, 740,-32768, 585,
1263 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 967,
1264 -699, -611,-32768, 204,-32768,-32768, 645, 648, 524, 13,
1265 -376, 1224,-32768, 8,-32768,-32768, -584,-32768,-32768,-32768,
1266 640, -233, 995,-32768, -496, 193,-32768, 1329,-32768, 1120,
1267 -32768, 1041,-32768,-32768,-32768,-32768, -39,-32768,-32768,-32768,
1268 -32768, 63, 1231, 1362,-32768,-32768, 1616,-32768,-32768, -354,
1269 -32768, 969, 264, -551, -582,-32768, 829,-32768,-32768, 922,
1270 -87, -420, 127,-32768, 221, 84,-32768,-32768, 170,-32768,
1271 211,-32768,-32768, 632,-32768, 373,-32768,-32768,-32768,-32768,
1272 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1273 -32768,-32768,-32768,-32768,-32768, 1686,-32768,-32768, 1731, -311,
1281 static const short yytable[] = { 95,
1282 309, 292, 95, 604, 631, 513, 547, 548, 475, 114,
1283 229, 230, 105, 515, 92, 704, 742, 231, 232, 233,
1284 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
1285 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
1286 254, 255, 256, 545, 546, 708, 556, 257, 258, 259,
1287 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1288 270, 271, 272, 273, 553, 554, 557, 1198, 555, 462,
1289 184, 742, 481, 744, 284, 579, 653, 467, 1040, 100,
1290 913, 95, 118, 915, 121, 754, 651, 613, 1041, 909,
1291 577, 193, 578, 918, 105, 477, 92, 295, 293, 301,
1292 588, 332, 896, 1006, 1040, 95, 88, 421, 1040, -103,
1293 -103, 1164, 926, 481, 1041, 314, 315, 317, 1041, 424,
1294 312, 323, 422, 529, 1090, 648, 823, 443, 744, 325,
1295 876, 293, 789, 822, 1091, 222, 222, 346, 629, 530,
1296 754, 2, 1031, 1032, 356, 877, 1147, 1149, 660, 350,
1297 351, 352, 353, 354, 355, 1111, 1112, -280, 1146, 1172,
1298 1173, 100, 499, 672, 437, 549, 550, 551, 552, 441,
1299 2, 442, 1033, 1034, 1119, 296, 296, 194, 296, 1148,
1300 753, 1058, 948, 446, 1120, 993, 1035, 107, 88, 1091,
1301 107, 1145, 752, 481, 107, 199, 199, 199, 949, 1151,
1302 349, 324, 991, 346, 1196, 816, -103, -103, 1000, 1007,
1303 1002, 313, -389, 706, -389, 110, 111, 1211, 195, 896,
1304 697, 193, -389, 1197, 366, 367, 1199, 1202, 1166, 223,
1305 223, 1170, 515, 303, 696, 753, 908, 76, 1042, 910,
1306 327, 76, 77, 123, 426, 79, 80, 752, 336, 694,
1307 -389, -389, -389, 477, -389, -389, 432, 337, 433, 481,
1308 424, 746, 1217, 76, 1042, 193, 1022, 76, 1042, 107,
1309 1165, 710, 635, 193, -615, 1189, 338, 193, -615, 193,
1310 1092, 1093, 417, 76, 1094, 451, 1095, 448, 1071, 1166,
1311 301, 339, 750, 107, 998, 693, 1203, 998, 1204, 424,
1312 745, 95, 460, 497, 463, 465, 456, 194, 193, 107,
1313 1113, 751, 1114, 748, 459, 749, 746, 816, 95, -280,
1314 107, 499, 1014, 341, 323, 199, 1001, 346, 1115, 2,
1315 222, 474, 742, 76, 1121, 222, 342, 222, 76, 1094,
1316 569, 332, 423, 199, 708, 424, 500, 750, 195, 222,
1317 222, 194, 806, 424, 501, 745, -617, 623, 462, 194,
1318 -617, 439, 481, 194, 424, 194, 751, 346, 748, 199,
1319 749, -389, -389, -389, 418, -389, -389, 199, -281, 199,
1320 286, 199, 695, 199, 431, -110, -110, 1062, 998, 744,
1321 998, 199, 195, 979, 194, 1156, 199, 1157, 199, 2,
1322 195, 754, 713, 977, 195, 424, 195, 441, 361, 625,
1323 199, 199, 199, 1158, 542, 543, 544, 1067, 747, 1069,
1324 724, 360, 725, 293, 223, 498, 332, 365, 692, 223,
1325 -605, 223, 646, 911, -605, 195, 647, -389, -389, -389,
1326 362, -389, -389, 223, 223, 108, 424, -613, 108, 363,
1327 663, -613, 124, 95, 407, 408, 95, 456, 409, 410,
1328 364, 966, 967, 594, -667, 597, 586, 603, 95, 589,
1329 95, -661, 424, 747, 332, 610, 831, -665, 323, 415,
1330 416, 423, -110, -110, 424, 619, 325, -610, 497, 107,
1331 567, -610, 107, 107, 107, 833, 753, 627, 964, 965,
1332 500, 975, 633, 411, 412, 460, 107, -662, 752, -606,
1333 2, 193, 107, -606, 634, -667, 417, 413, 414, 972,
1334 973, 976, 439, 974, -570, 424, 419, 108, -570, 497,
1335 76, 77, 123, 496, 79, 80, 424, 409, 410, 498,
1336 -389, -389, -389, -602, -389, -389, 418, -602, 76, 77,
1337 123, 108, 79, 80, 407, 408, 516, 517, 518, 427,
1338 481, 199, -280, -281, 499, 476, 519, 326, 1174, 199,
1339 1175, 199, 2, 222, 522, 420, 523, 746, 340, -389,
1340 706, -389, 631, 456, 1018, 332, 1176, -389, 676, -389,
1341 -389, 460, -389, -498, 1127, -569, 811, 194, 456, -569,
1342 994, -664, -571, 995, 690, 691, -571, 332, 750, 1008,
1343 -280, 323, 499, -667, -667, 199, 745, -667, -667, 325,
1344 968, 969, 970, 971, -591, 409, 410, 751, -591, 748,
1345 633, 749, -568, 428, 199, 460, -568, -280, 195, 499,
1346 199, 107, -607, 435, 107, 582, -607, 2, 721, 722,
1347 -280, 193, 632, 346, 107, 346, 107, 434, 107, 76,
1348 77, 123, 1015, 79, 80, 1016, 107, 223, -663, 107,
1349 409, 410, -611, 107, 444, 1046, -611, 785, -440, 499,
1350 424, 298, -608, 300, 880, 792, -608, 794, 411, 412,
1351 440, 800, 801, -603, 1072, 445, 805, -603, 702, 1078,
1352 619, 812, 413, 414, 407, 408, 500, 199, 811, 814,
1353 409, 410, 582, 450, 501, 424, 107, 107, 1104, 938,
1354 449, 76, 77, 123, 1106, 79, 80, 931, 346, 1163,
1355 1113, 452, 1114, 1117, 747, 1195, 1156, 194, 1157, 458,
1356 834, 835, 836, 837, 838, 839, 473, 108, 1115, 424,
1357 464, 466, 468, 942, 1158, 199, 199, 562, 563, 411,
1358 412, 582, 1138, 1139, 108, 1140, 470, 1181, 199, 332,
1359 326, 199, 199, 413, 414, 472, 582, 675, 195, 343,
1360 499, 293, 478, 902, 995, 328, 1085, 495, 2, 489,
1361 139, 140, 141, 142, 143, 144, 76, 77, 123, 107,
1362 79, 80, -585, 940, 415, 416, -585, 145, 146, 147,
1363 504, 1178, 930, 812, -262, 633, 1206, 1174, -590, 1175,
1364 328, 814, -590, 1216, 505, 139, 140, 141, 142, 143,
1365 144, 148, 305, 306, 307, 1176, 76, 77, 123, 506,
1366 79, 80, 145, 146, 147, 508, 1040, 199, 199, 1207,
1367 -589, 773, 675, 727, -589, 509, 1041, 293, 199, 199,
1368 1105, 199, 686, 687, 675, 905, 148, 1214, 905, 961,
1369 962, 963, 157, -588, 107, 76, 107, -588, -600, 76,
1370 77, 123, -600, 79, 80, 107, 866, 867, 107, 107,
1371 199, 404, 405, 406, -587, 817, 510, 1030, -587, 108,
1372 868, 869, 108, 511, 996, -586, 773, 157, 512, -586,
1373 520, 1003, 601, -583, 108, -584, 108, -583, 571, -584,
1374 393, 1074, -580, 572, 326, 574, -580, 616, 388, -581,
1375 389, 621, -389, -581, 424, 723, -572, 76, 77, 123,
1376 -572, 79, 80, 575, 76, 329, 330, 160, -389, 862,
1377 863, 390, 391, 1019, 394, 395, 396, 397, 398, 399,
1378 400, 401, 402, 403, 576, -575, 646, -595, 199, -575,
1379 1021, -595, 587, 309, 649, 650, 189, 220, 220, 76,
1380 329, 330, 160, 591, 1049, 905, 1050, 905, 905, 905,
1381 -596, -597, 592, 1059, -596, -597, 95, 1051, 1052, 608,
1382 1053, 107, 1054, 1055, 293, 76, 1042, 1116, 1165, 1065,
1383 593, 107, 812, -599, 1081, 1056, -280, -599, 1126, 460,
1384 1079, 995, 1086, 1087, 596, 589, 404, 405, 406, 864,
1385 865, 274, 275, 276, 277, 278, 279, 280, 281, 282,
1386 283, -593, -576, -574, 456, -593, -576, -574, 182, 211,
1387 211, 609, -578, 602, -579, 848, -578, 326, -579, 95,
1388 611, 1128, 1130, -577, 299, 618, 302, -577, 304, 293,
1389 308, 617, 1177, 912, 687, 310, 870, 871, 812, 905,
1390 622, 905, 404, 405, 406, 318, 626, 319, 456, 849,
1391 850, 851, 852, 853, 854, 855, 856, 857, 858, 424,
1392 843, 630, 844, 332, -389, 636, 189, 886, 887, 888,
1393 889, 890, 891, 892, 859, 860, 861, 1004, 1005, 1190,
1394 -389, 424, 1088, 845, 846, 1180, 76, 1108, 95, 392,
1395 638, 1184, 601, 640, 601, 107, 107, 883, 884, 885,
1396 639, 1065, 641, 807, 1192, 1193, 621, 108, 642, 644,
1397 189, 922, 923, 924, 1152, 1153, 1154, 645, 189, 332,
1398 662, 665, 189, 680, 189, 668, 666, 773, 677, 682,
1399 688, 683, 220, 438, 1047, 685, 698, 220, 182, 220,
1400 700, 705, 703, 711, 107, 714, 715, 716, 718, 717,
1401 783, 220, 220, 189, 787, 796, 790, 802, 1047, 818,
1402 107, 872, 842, 107, 804, 820, 824, 873, 825, 821,
1403 916, 829, 1222, 830, 878, 875, 1103, 920, 929, 941,
1404 934, 935, 182, 1226, 874, 939, 1110, 1047, 1047, 943,
1405 182, 980, 981, -52, 182, 1124, 182, 1017, 185, 217,
1406 217, 1020, -49, 1029, 211, 1061, 1073, 107, 1083, 211,
1407 1089, 211, 1129, 1141, 1118, 1133, 1132, 454, 1135, 108,
1408 1159, 457, 1143, 211, 211, 182, 107, 1183, 1185, 937,
1409 1186, 1205, 884, 1218, 1219, 1137, 1103, 1103, 1103, 469,
1410 1221, 1150, 471, 1220, 1103, 1160, 1162, 507, 1225, 1228,
1411 479, 1171, 1229, 482, 1191, 1212, 1223, 285, 480, 900,
1412 1047, 107, 107, 1047, 992, 1161, 1124, 1124, 1075, 1107,
1413 988, 1012, 1124, 1077, 1208, 527, 107, 946, 1179, 605,
1414 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
1415 541, 679, 1182, 795, 793, 1103, 311, 932, 227, 180,
1416 810, 502, 1103, 447, 107, 107, 1103, 1142, 643, 568,
1417 827, 561, 1026, 0, 0, 524, 0, 0, 0, 331,
1418 0, 1047, 107, 107, 1124, 0, 0, 0, 185, 186,
1419 218, 218, 331, 331, 331, 331, 331, 331, 0, 358,
1420 359, 1103, 0, 0, 0, 0, 0, 0, 0, 0,
1421 0, 0, 0, 1023, 1024, 0, 189, 883, 884, 885,
1422 0, 0, 0, 886, 887, 888, 889, 890, 891, 892,
1423 0, 0, 185, 0, 0, 220, 0, 0, 482, 0,
1424 185, 0, 0, 0, 185, 590, 185, 0, 0, 0,
1425 595, 0, 598, 0, 217, 0, 0, 0, 0, 217,
1426 607, 217, 108, 0, 612, 0, 0, 0, 0, 0,
1427 0, 0, 0, 217, 217, 185, 0, 0, 108, 0,
1428 0, 1082, 0, 0, 0, 0, 0, 344, 182, 345,
1429 0, 0, 0, 0, 328, 525, 0, 0, 0, 139,
1430 140, 141, 142, 143, 144, 0, 0, 211, 0, 0,
1431 0, 0, 0, 0, 0, 0, 145, 146, 147, 186,
1432 922, 923, 924, 0, 0, 108, 886, 887, 888, 889,
1433 890, 891, 892, 180, 0, 0, 0, 0, 0, 0,
1434 148, 180, 0, 0, 108, 180, 0, 180, 0, 0,
1435 0, 0, 0, 0, 0, 436, 189, 0, 0, 0,
1436 0, 0, 0, 186, 0, 0, 0, 0, 0, 0,
1437 0, 186, 590, 0, 0, 186, 180, 186, 0, 1168,
1438 1169, 157, 0, 0, 0, 218, 0, 0, 0, 0,
1439 218, 0, 218, 720, 108, 0, 0, 482, 0, 0,
1440 0, 0, 0, 0, 218, 218, 186, 0, 0, 0,
1441 0, 0, 0, 0, 0, 0, 707, 0, 0, 331,
1442 0, 712, 1200, 1201, 0, 0, 0, 0, 182, 0,
1443 0, 0, 0, 0, 0, 0, 0, 0, 798, 0,
1444 1209, 1210, 0, 187, 219, 219, 0, 0, 0, 0,
1445 0, 0, 775, 76, 329, 330, 160, 331, 331, 331,
1446 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
1447 331, 331, 331, 0, 0, 0, 328, 945, 185, 487,
1448 0, 139, 140, 141, 142, 143, 144, 490, 491, 492,
1449 493, 0, 0, 0, 0, 0, 0, 217, 145, 146,
1450 147, 0, 0, 0, 331, 0, 0, 0, 487, 0,
1451 0, 0, 0, 196, 225, 225, 0, 0, 0, 487,
1452 0, 0, 148, 0, 0, 0, 0, 0, 847, 0,
1453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1454 528, 0, 0, 0, 798, 0, 0, 798, 0, 0,
1455 0, 0, 331, 0, 0, 0, -524, 331, 198, 226,
1456 226, 368, 0, 157, 0, 0, 139, 140, 141, 142,
1457 143, 144, 0, 187, 0, 0, 0, 0, 0, 180,
1458 0, 0, 0, 145, 146, 147, 573, 0, 917, 944,
1459 527, 0, 0, 0, 0, 950, 951, 952, 953, 954,
1460 955, 956, 957, 958, 959, 960, 0, 148, 0, 186,
1461 0, 331, 0, 331, 0, 655, 657, 187, 185, 0,
1462 0, 0, 0, 0, 0, 187, 0, 0, 218, 187,
1463 0, 187, 0, 0, 0, 76, 329, 330, 160, 219,
1464 0, 0, 0, 196, 219, 0, 219, 0, 157, 798,
1465 0, 0, 0, 0, 0, 0, 0, 0, 219, 219,
1466 187, 0, 0, 331, 0, 0, 0, 0, 0, 0,
1467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1468 0, 0, 0, 989, 990, 331, 0, 196, 198, 0,
1469 0, 997, 0, 0, 0, 196, 0, 0, 0, 196,
1470 0, 196, 0, 0, 0, 0, 0, 0, 0, 225,
1471 652, 0, 0, 0, 225, 1013, 225, 743, 0, 180,
1472 76, 329, 330, 160, 0, 0, 0, 0, 225, 225,
1473 196, 0, 198, 0, 0, 0, 0, 0, 0, 0,
1474 198, 0, 0, 0, 198, 0, 198, 0, 0, 186,
1475 0, 0, 798, 0, 226, 0, 0, 0, 0, 226,
1476 0, 226, 0, 0, 0, 0, 0, 0, 0, 0,
1477 0, 0, 743, 226, 226, 198, 0, 493, 0, 0,
1478 0, 1060, 0, 331, 331, 331, 331, 331, 331, 840,
1479 841, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1480 0, 0, 0, 0, 0, 487, 0, 487, 0, 0,
1481 0, 0, 0, 728, 0, 0, 774, 797, 1070, 0,
1482 0, 0, 328, 0, 0, 0, 0, 139, 140, 141,
1483 142, 143, 144, 0, 0, 0, 0, 0, 0, 0,
1484 0, 0, 0, 0, 145, 146, 147, 331, 0, 0,
1485 1131, 328, 0, 0, 628, 0, 139, 140, 141, 142,
1486 143, 144, 0, 187, 0, 0, 0, 0, 148, 826,
1487 0, 0, 0, 145, 146, 147, 0, 0, 797, 0,
1488 832, 331, 219, 328, 0, 0, 0, 0, 139, 140,
1489 141, 142, 143, 144, 0, 0, 0, 148, 0, 0,
1490 0, 0, 0, 0, 0, 145, 146, 147, 0, 157,
1491 0, 0, 331, 331, 331, 331, 331, 331, 331, 331,
1492 331, 331, 331, 331, 331, 331, 331, 331, 331, 148,
1493 331, 0, 0, 196, 0, 126, 127, 128, 157, 129,
1494 130, 131, 132, 133, 134, 135, 136, 203, -524, 669,
1495 0, 0, 225, 368, 0, 0, 0, 0, 139, 140,
1496 141, 142, 143, 144, 0, 0, 0, 0, 1215, 0,
1497 157, 0, 0, 0, 0, 145, 146, 147, 198, 0,
1498 0, 76, 329, 330, 160, 0, 0, 0, 0, 0,
1499 0, 0, 0, 0, 0, 947, 331, 226, 0, 148,
1500 0, 0, 0, 187, 0, 0, 0, 0, 0, 0,
1501 76, 329, 330, 160, 0, 0, 0, 0, 0, 0,
1502 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1503 0, 0, 0, 743, 0, 0, 156, 0, 0, 0,
1504 157, 0, 76, 329, 330, 160, 0, 0, 0, 0,
1505 0, 0, 0, 0, 0, 0, 0, 0, 0, -1,
1506 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1507 0, 0, 0, 196, 0, 0, 0, 0, 0, 0,
1508 0, 0, 0, -280, 493, 0, 0, 0, 0, 0,
1509 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
1510 0, 0, 0, 0, 3, 369, 0, 0, 370, 0,
1511 0, 371, 76, 158, 159, 160, 161, 80, 198, 0,
1512 0, 0, 0, 0, 0, 0, -389, -389, -389, 1025,
1513 4, 0, 0, 0, 5, 6, 7, 0, 0, 0,
1514 0, 0, 0, 0, 0, 0, 0, 0, 8, 9,
1515 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1516 0, 0, 0, 0, 0, 0, 0, 11, 12, 13,
1517 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1518 23, 331, 24, 25, 26, 27, 28, 29, 30, 31,
1519 32, 33, 34, 35, 36, 37, 38, 331, 39, 40,
1520 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1521 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1522 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1523 71, 72, 73, 74, 75, -2, 1, 331, 0, 0,
1524 0, 0, 76, 77, 78, 0, 79, 80, 81, 0,
1525 0, 0, 0, 0, 0, 328, 0, 0, 709, -280,
1526 139, 140, 141, 142, 143, 144, 0, 0, 0, 2,
1527 0, 0, 0, 0, 0, 0, 0, 145, 146, 147,
1528 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1530 0, 148, -389, -389, -389, 0, 4, 0, 0, 0,
1531 5, 6, 7, 0, 0, 0, 0, 0, 0, 0,
1532 0, 0, 0, 0, 8, 9, 10, 0, 0, 0,
1533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1534 0, 0, 157, 11, 12, 13, 0, 14, 15, 16,
1535 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
1536 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1537 36, 37, 38, 0, 39, 40, 41, 42, 43, 44,
1538 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1539 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1540 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1541 75, 0, 0, 0, 76, 329, 330, 160, 76, 77,
1542 78, 125, 79, 80, 81, 0, 126, 127, 128, 0,
1543 129, 130, 131, 132, 133, 134, 135, 136, 137, -524,
1544 565, 0, 0, 0, 138, 0, 0, 0, 0, 139,
1545 140, 141, 142, 143, 144, 0, 0, 0, 0, 0,
1546 0, 0, -280, -280, 0, 3, 145, 146, 147, 0,
1547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1548 0, 0, 0, 0, 0, 0, 0, -389, -389, -389,
1549 148, 4, 0, 0, 0, 0, 0, 0, 0, 0,
1550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1551 0, 0, 0, 150, 151, 152, 153, 154, 155, 0,
1552 0, 0, 0, 0, 0, 0, 0, 156, 11, 12,
1553 13, 157, 14, 15, 16, 17, 18, 19, 20, 21,
1554 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1555 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1556 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1557 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1558 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1559 70, 71, 72, 73, 74, 75, 0, 0, 0, 0,
1560 0, 0, 0, 76, 158, 566, 160, 161, 80, 81,
1561 125, 0, 0, 0, 0, 126, 127, 128, 0, 129,
1562 130, 131, 132, 133, 134, 135, 136, 137, -524, 0,
1563 0, 0, 0, 138, 0, 0, 0, 0, 139, 140,
1564 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1565 0, -280, -280, 0, 0, 145, 146, 147, 0, 0,
1566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1567 0, 0, 0, 0, 0, 0, -280, -280, -280, 148,
1568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1570 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1571 0, 0, 0, 0, 0, 0, 156, -280, -280, -280,
1572 157, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1573 -280, 0, -280, -280, -280, -280, -280, -280, -280, -280,
1574 -280, -280, -280, -280, -280, -280, -280, 0, -280, -280,
1575 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1576 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1577 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1578 -280, -280, -280, -280, -280, 0, 0, 0, 0, 0,
1579 0, 0, 76, 158, 159, 160, 161, 80, -280, 201,
1580 0, 0, 0, 0, 126, 127, 128, 0, 0, 202,
1581 131, 132, 133, 134, 135, 136, 203, -524, -528, 0,
1582 0, 0, 204, 0, 0, 0, 0, 139, 140, 141,
1583 142, 143, 144, 0, 0, 0, 0, 0, 0, 0,
1584 -280, -280, 0, 0, 145, 146, 147, 0, 0, 0,
1585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1586 0, 0, 0, 0, 0, -280, -280, -280, 148, 0,
1587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1589 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1590 0, 0, 0, 0, 0, 156, -280, -280, -280, 157,
1591 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1592 0, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1593 -280, -280, -280, -280, -280, -280, 0, -280, -280, -280,
1594 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1595 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1596 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1597 -280, -280, -280, -280, 0, 0, 0, 0, 0, 0,
1598 0, 76, 158, 159, 160, 205, 206, -280, 201, 0,
1599 0, 0, 0, 126, 127, 128, 0, 0, 202, 131,
1600 132, 133, 134, 135, 136, 203, -472, -472, 0, 0,
1601 0, 204, -472, 0, 0, 0, 139, 140, 141, 142,
1602 143, 144, 0, 0, 0, 0, 0, 0, 0, -280,
1603 -280, 125, 0, 145, 146, 147, 126, 127, 128, 0,
1604 129, 130, 131, 132, 133, 134, 135, 136, 137, -524,
1605 0, 0, 0, 0, 138, 0, 0, 148, 0, 139,
1606 140, 141, 142, 143, 144, 0, 0, 0, 0, 0,
1607 0, 0, -280, -280, 0, 0, 145, 146, 147, -472,
1608 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1609 0, 0, 0, 0, 156, 0, 0, 0, 157, 0,
1610 148, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1612 0, 0, 149, 150, 151, 152, 153, 154, 155, 0,
1613 0, 0, 0, 0, 0, 0, 0, 156, 0, 0,
1614 0, 157, 0, 0, 0, 0, 0, 0, 0, 0,
1615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1617 76, 158, 159, 160, 205, 206, 0, 0, 125, 0,
1618 0, 0, 0, 126, 127, 128, 0, 129, 130, 131,
1619 132, 133, 134, 135, 136, 137, -524, 0, 0, 0,
1620 0, 138, 0, 0, 0, 0, 139, 140, 141, 142,
1621 143, 144, 0, 76, 158, 159, 160, 161, 80, -280,
1622 -280, 201, 0, 145, 146, 147, 126, 127, 128, 0,
1623 0, 202, 131, 132, 133, 134, 135, 136, 203, -524,
1624 -528, 0, 0, 0, 204, 0, 0, 148, 0, 139,
1625 140, 141, 142, 143, 144, 0, 0, 0, 0, 0,
1626 0, 0, -280, -280, 0, 0, 145, 146, 147, -499,
1627 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1628 0, 0, 0, 0, 156, 0, 0, 0, 157, 0,
1629 148, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1631 0, 0, -468, 150, 151, 152, 153, 154, 155, 0,
1632 0, 0, 0, 0, 0, 0, 0, 156, 0, 0,
1633 0, 157, 0, 0, 0, 0, 0, 0, 0, 0,
1634 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1635 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1636 76, 158, 159, 160, 161, 80, 0, 0, 125, 0,
1637 0, 0, 0, 126, 127, 128, 0, 129, 130, 131,
1638 132, 133, 134, 135, 136, 137, -524, 658, 0, 0,
1639 0, 138, 0, 0, 0, 0, 139, 140, 141, 142,
1640 143, 144, 0, 76, 158, 159, 160, 205, 206, -280,
1641 -280, 201, 0, 145, 146, 147, 126, 127, 128, 0,
1642 0, 202, 131, 132, 133, 134, 135, 136, 203, -524,
1643 -528, 0, 0, 0, 204, 0, 0, 148, 0, 139,
1644 140, 141, 142, 143, 144, 0, 0, 0, 0, 0,
1645 0, 0, -280, -280, 0, 0, 145, 146, 147, 0,
1646 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1647 0, 0, 0, 0, 156, 0, 0, 0, 157, 0,
1648 148, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1650 0, 0, 0, 150, 151, 152, 153, 154, 155, 0,
1651 0, 0, 0, 0, 0, 0, 0, 156, 0, 0,
1652 0, 157, 0, 0, 0, 0, 0, 0, 0, 0,
1653 0, 0, 0, 0, 0, 0, 0, 328, -262, 0,
1654 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1655 76, 158, 159, 160, 161, 80, 0, 0, 125, 145,
1656 146, 147, 0, 126, 127, 128, 0, 129, 130, 131,
1657 132, 133, 134, 135, 136, 137, -524, 0, 0, 0,
1658 0, 138, 0, 148, 0, 0, 139, 140, 141, 142,
1659 143, 144, 0, 76, 158, 159, 160, 205, 206, -280,
1660 -280, 0, 0, 145, 146, 147, 0, 0, 0, 0,
1661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1662 0, 0, 0, 0, 157, 0, 0, 148, 0, 0,
1663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1665 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1666 0, 0, 0, 0, 156, 126, 127, 128, 157, 129,
1667 130, 131, 132, 133, 134, 135, 136, 203, -524, 580,
1668 0, 0, 0, 368, 0, 0, 0, 0, 139, 140,
1669 141, 142, 143, 144, 0, 0, 76, 329, 330, 160,
1670 0, -280, -280, 0, 3, 145, 146, 147, 0, 0,
1671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1672 0, 0, 0, 0, 0, 0, 0, 0, 0, 148,
1673 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1674 76, 158, 159, 160, 161, 80, 0, 0, 0, 0,
1675 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1676 0, 0, 0, 0, 0, 0, 581, 11, 12, 13,
1677 157, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1678 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1679 32, 33, 34, 35, 36, 37, 38, 0, 39, 40,
1680 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1681 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1682 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1683 71, 72, 73, 74, 75, 369, 0, 0, 370, 0,
1684 0, 371, 76, 158, 566, 160, 161, 80, 81, 126,
1685 127, 128, 0, 129, 130, 131, 132, 133, 134, 135,
1686 136, 203, -524, 659, 0, 0, 0, 368, 0, 0,
1687 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1688 0, 0, 0, 0, 0, -280, -280, 0, 3, 145,
1689 146, 147, 0, 0, 0, 0, 0, 0, 0, 0,
1690 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1691 0, 0, 0, 148, 4, 0, 0, 0, 0, 0,
1692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1693 0, 0, 0, 0, 0, 0, 150, 151, 152, 153,
1694 154, 155, 0, 0, 0, 0, 0, 0, 0, 0,
1695 156, 11, 12, 13, 157, 14, 15, 16, 17, 18,
1696 19, 20, 21, 22, 23, 0, 24, 25, 26, 27,
1697 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1698 38, 0, 39, 40, 41, 42, 43, 44, 45, 46,
1699 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1700 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1701 67, 68, 69, 70, 71, 72, 73, 74, 75, 369,
1702 0, 0, 370, 0, 0, 371, 76, 158, 566, 160,
1703 161, 80, 81, 126, 127, 128, 0, 129, 130, 131,
1704 132, 133, 134, 135, 136, 203, -524, 670, 0, 0,
1705 0, 368, 0, 0, 0, 0, 139, 140, 141, 142,
1706 143, 144, 0, 0, 0, 0, 0, 0, 0, -280,
1707 -280, 0, 3, 145, 146, 147, 0, 0, 0, 0,
1708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1709 0, 0, 0, 0, 0, 0, 0, 148, 4, 0,
1710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1712 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1713 0, 0, 0, 0, 671, 11, 12, 13, 157, 14,
1714 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1715 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1716 34, 35, 36, 37, 38, 0, 39, 40, 41, 42,
1717 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1718 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1719 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1720 73, 74, 75, 369, 0, 0, 370, 0, 0, 371,
1721 76, 158, 566, 160, 161, 80, 81, 126, 127, 128,
1722 0, 129, 130, 131, 132, 133, 134, 135, 136, 203,
1723 -524, 673, 0, 0, 0, 368, 0, 0, 0, 0,
1724 139, 140, 141, 142, 143, 144, 0, 0, 0, 0,
1725 0, 0, 0, 0, 0, 0, 0, 145, 146, 147,
1726 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1727 135, 136, 203, -524, 726, 0, 0, 0, 368, 0,
1728 0, 148, 0, 139, 140, 141, 142, 143, 144, 0,
1729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1730 145, 146, 147, 0, 150, 151, 152, 153, 154, 155,
1731 0, 0, 0, 0, 0, 0, 0, 0, 674, 0,
1732 328, 0, 157, 0, 148, 139, 140, 141, 142, 143,
1733 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1734 0, 0, 145, 146, 147, 0, 0, 150, 151, 152,
1735 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1736 0, 156, 0, 0, 0, 157, 148, 0, 0, 0,
1737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1738 0, 0, 0, 0, 0, 0, 0, 369, 0, 0,
1739 370, 0, 0, 371, 76, 158, 159, 160, 161, 80,
1740 0, 0, 0, 0, 0, 0, 0, 157, 0, 0,
1741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 369, 0, 0, 370, 0, 0, 371, 76, 158, 159,
1744 160, 161, 80, 126, 127, 128, 0, 129, 130, 131,
1745 132, 133, 134, 135, 136, 203, -524, 779, 0, 0,
1746 0, 368, 0, 0, 0, 0, 139, 140, 141, 142,
1747 143, 144, 0, 0, 0, 0, 0, 0, 0, 76,
1748 329, 330, 160, 145, 146, 147, 126, 127, 128, 0,
1749 129, 130, 131, 132, 133, 134, 135, 136, 203, -524,
1750 780, 0, 0, 0, 368, 0, 0, 148, 0, 139,
1751 140, 141, 142, 143, 144, 0, 0, 0, 0, 0,
1752 0, 0, 0, 0, 0, 0, 145, 146, 147, 0,
1753 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1754 0, 0, 0, 0, 156, 0, 357, 0, 157, 0,
1755 148, 139, 140, 141, 142, 143, 144, 0, 0, 0,
1756 0, 0, 0, 0, 0, 0, 0, 0, 145, 146,
1757 147, 0, 0, 150, 151, 152, 153, 154, 155, 0,
1758 0, 0, 0, 0, 0, 0, 0, 781, 0, 0,
1759 0, 157, 148, 0, 0, 0, 0, 0, 0, 0,
1760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761 0, 0, 0, 369, 0, 0, 370, 0, 0, 371,
1762 76, 158, 159, 160, 161, 80, 0, 0, 0, 0,
1763 0, 0, 0, 157, 0, 0, 0, 0, 0, 0,
1764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1765 0, 0, 0, 0, 0, 0, 369, 0, 0, 370,
1766 0, 0, 371, 76, 158, 159, 160, 161, 80, 126,
1767 127, 128, 0, 129, 130, 131, 132, 133, 134, 135,
1768 136, 203, -524, 782, 0, 0, 0, 368, 0, 0,
1769 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1770 0, 0, 0, 0, 0, 76, 329, 330, 160, 145,
1771 146, 147, 126, 127, 128, 0, 129, 130, 131, 132,
1772 133, 134, 135, 136, 203, -524, 901, 0, 0, 0,
1773 368, 0, 0, 148, 0, 139, 140, 141, 142, 143,
1774 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1775 0, 0, 145, 146, 147, 0, 150, 151, 152, 153,
1776 154, 155, 0, 0, 0, 0, 0, 0, 0, 0,
1777 156, 0, 654, 0, 157, 0, 148, 139, 140, 141,
1778 142, 143, 144, 656, 0, 0, 0, 0, 139, 140,
1779 141, 142, 143, 144, 145, 146, 147, 0, 0, 150,
1780 151, 152, 153, 154, 155, 145, 146, 147, 0, 0,
1781 0, 0, 0, 156, 0, 0, 0, 157, 148, 0,
1782 0, 0, 0, 0, 0, 0, 0, 0, 0, 148,
1783 0, 0, 0, 0, 0, 0, 0, 0, 0, 369,
1784 0, 0, 370, 0, 0, 371, 76, 158, 159, 160,
1785 161, 80, 0, 0, 0, 0, 0, 0, 0, 157,
1786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1787 157, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1788 0, 0, 369, 0, 0, 370, 0, 0, 371, 76,
1789 158, 159, 160, 161, 80, 126, 127, 128, 0, 129,
1790 130, 131, 132, 133, 134, 135, 136, 203, -524, 0,
1791 0, 0, 0, 368, 0, 0, 0, 0, 139, 140,
1792 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1793 0, 76, 329, 330, 160, 145, 146, 147, 0, 0,
1794 0, 0, 76, 329, 330, 160, 0, 0, 0, 0,
1795 0, 0, 0, 0, 0, 0, 0, 0, 0, 148,
1796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1798 0, 0, 150, 151, 152, 153, 154, 155, 293, 0,
1799 0, 0, 0, 0, 0, 0, 156, 0, 0, 0,
1800 157, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
1802 0, 729, 0, 0, 0, 0, 730, 731, 732, 733,
1803 734, 735, 0, 0, 0, 0, 0, -389, -389, -389,
1804 0, 4, 0, 145, 736, 737, 0, 0, 0, 0,
1805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1806 0, 0, 0, 0, 0, 369, 0, 738, 370, 0,
1807 0, 371, 76, 158, 159, 160, 161, 80, 11, 12,
1808 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1809 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1810 31, 32, 33, 34, 35, 36, 37, 38, 157, 39,
1811 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1812 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1813 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1814 70, 71, 72, 73, 74, 75, 293, 0, 0, 0,
1815 0, 0, 0, 0, 0, 120, 0, 0, 0, 81,
1816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1817 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
1818 76, 739, 740, 741, 0, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
1820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1821 0, 0, 0, 0, 0, 0, -658, 0, 0, 0,
1822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1823 0, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1824 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1825 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1826 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1827 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1828 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1829 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1830 72, 73, 74, 75, -146, 0, 0, 0, 0, -146,
1831 0, 0, 0, 120, 0, 0, 0, 81, 0, 0,
1832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1833 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1835 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
1836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1839 0, 0, 0, 11, 12, 13, 0, 14, 15, 16,
1840 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
1841 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1842 36, 37, 38, 0, 39, 40, 41, 42, 43, 44,
1843 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1844 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1845 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1846 75, 288, 0, 0, 0, 0, 0, 0, 0, 0,
1847 120, 0, 0, 0, 81, 0, 0, 0, 0, 0,
1848 0, 0, 0, 0, 0, 0, 0, 3, 0, 0,
1849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1851 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
1852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1854 -527, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1855 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1856 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1857 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1858 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1859 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1860 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1861 68, 69, 70, 71, 72, 73, 74, 75, 0, 0,
1862 0, 0, 0, 0, 0, 0, 0, 120, 11, 12,
1863 13, 81, 14, 15, 16, 17, 18, 19, 20, 21,
1864 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1865 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1866 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1867 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1868 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1869 70, 71, 72, 73, 74, 75, -665, 0, 0, 0,
1870 0, 0, 0, 0, 0, 120, 0, 0, 0, 81,
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, -667, -667, -667, 0, 0, 0, 0, 0, 0,
1875 0, 0, 0, 0, 0, 0, 0, 0, 0, -667,
1876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1878 0, 0, -667, -667, -667, 0, -667, -667, -667, -667,
1879 -667, -667, -667, -667, -667, -667, 0, -667, -667, -667,
1880 -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
1881 -667, -667, 0, -667, -667, -667, -667, -667, -667, -667,
1882 -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
1883 -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
1884 -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
1885 -280, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1886 2, 0, 0, -667, 0, 0, 0, 0, 0, 0,
1887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1893 0, 0, 0, 0, 11, 12, 13, 0, 14, 15,
1894 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1895 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1896 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1897 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1898 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1899 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1900 74, 75, -206, -206, 0, 0, 0, 0, 0, 76,
1901 77, 78, 0, 79, 80, 81, 0, 0, 0, 0,
1902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1906 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1907 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1908 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1909 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1910 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1911 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1912 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1913 70, 71, 72, 73, 74, 75, 3, 0, 0, 0,
1914 0, 0, 0, 0, 0, 120, 0, 0, 0, 81,
1915 0, 0, 0, 0, 0, 0, 0, 0, -389, -389,
1916 -389, 0, 4, 0, 0, 0, 0, 0, 0, 0,
1917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1919 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
1920 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1921 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1922 30, 31, 32, 33, 34, 35, 36, 37, 38, 0,
1923 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1924 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1925 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1926 69, 70, 71, 72, 73, 74, 75, 3, 0, 0,
1927 0, 0, 0, 0, 0, 0, 120, 0, 0, 0,
1928 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1929 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
1930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1933 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1934 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1935 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1936 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1937 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1938 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1939 68, 69, 70, 71, 72, 73, 74, 75, -389, -389,
1940 -389, 0, 0, 0, 0, 0, 0, 120, 0, 0,
1941 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1943 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
1944 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1945 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1946 30, 31, 32, 33, 34, 35, 36, 37, 38, 0,
1947 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1948 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1949 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1950 69, 70, 71, 72, 73, 74, 75, 8, 9, 10,
1951 0, 0, 0, 0, 0, 0, 120, 0, 0, 0,
1952 81, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1953 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1954 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1955 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1956 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1957 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1958 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1959 72, 73, 74, 75, 0, 0, 0, 0, 0, 0,
1960 0, 0, 0, 120, 11, 12, 13, 81, 14, 15,
1961 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1962 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1963 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1964 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1965 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1966 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1967 74, 75, 0, 0, 0, 0, 0, 0, 0, 0,
1971 static const short yycheck[] = { 0,
1972 106, 89, 3, 469, 501, 366, 409, 410, 320, 2,
1973 11, 12, 0, 368, 0, 626, 664, 18, 19, 20,
1974 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1975 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1976 41, 42, 43, 407, 408, 630, 418, 48, 49, 50,
1977 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1978 61, 62, 63, 64, 415, 416, 419, 27, 417, 303,
1979 8, 719, 5, 664, 75, 452, 560, 19, 24, 0,
1980 797, 82, 3, 800, 5, 664, 558, 479, 34, 789,
1981 451, 8, 25, 803, 82, 322, 82, 24, 18, 100,
1982 455, 126, 777, 915, 24, 106, 0, 41, 24, 86,
1983 87, 27, 809, 5, 34, 116, 117, 118, 34, 21,
1984 113, 122, 56, 28, 24, 27, 711, 215, 719, 122,
1985 41, 18, 684, 25, 34, 9, 10, 138, 499, 44,
1986 719, 34, 86, 87, 145, 56, 1090, 1091, 569, 139,
1987 140, 141, 142, 143, 144, 1040, 1041, 18, 1090, 1119,
1988 1120, 82, 26, 584, 204, 411, 412, 413, 414, 209,
1989 34, 211, 116, 117, 24, 96, 97, 8, 99, 24,
1990 664, 993, 28, 223, 34, 902, 130, 0, 82, 34,
1991 3, 1089, 664, 5, 7, 8, 9, 10, 44, 1097,
1992 138, 122, 899, 204, 1148, 702, 183, 184, 908, 919,
1993 910, 21, 24, 25, 26, 108, 109, 1177, 8, 894,
1994 612, 138, 34, 1155, 6, 7, 186, 1159, 1113, 9,
1995 10, 1116, 587, 85, 611, 719, 788, 183, 184, 791,
1996 24, 183, 184, 185, 182, 187, 188, 719, 24, 610,
1997 183, 184, 185, 480, 187, 188, 194, 24, 196, 5,
1998 21, 664, 1194, 183, 184, 182, 27, 183, 184, 82,
1999 186, 632, 506, 190, 21, 1139, 24, 194, 25, 196,
2000 180, 181, 29, 183, 184, 286, 186, 225, 1005, 1174,
2001 291, 24, 664, 106, 906, 607, 1160, 909, 1162, 21,
2002 664, 302, 303, 25, 305, 306, 292, 138, 225, 122,
2003 26, 664, 28, 664, 302, 664, 719, 814, 319, 24,
2004 133, 26, 933, 18, 325, 138, 909, 328, 44, 34,
2005 204, 319, 980, 183, 184, 209, 18, 211, 183, 184,
2006 428, 366, 18, 156, 929, 21, 347, 719, 138, 223,
2007 224, 182, 5, 21, 347, 719, 21, 25, 592, 190,
2008 25, 18, 5, 194, 21, 196, 719, 368, 719, 182,
2009 719, 183, 184, 185, 39, 187, 188, 190, 24, 192,
2010 26, 194, 25, 196, 192, 86, 87, 22, 1000, 980,
2011 1002, 204, 182, 877, 225, 26, 209, 28, 211, 34,
2012 190, 980, 636, 875, 194, 21, 196, 447, 16, 25,
2013 223, 224, 225, 44, 404, 405, 406, 1000, 664, 1002,
2014 654, 24, 656, 18, 204, 346, 451, 15, 23, 209,
2015 21, 211, 21, 794, 25, 225, 25, 183, 184, 185,
2016 16, 187, 188, 223, 224, 0, 21, 21, 3, 16,
2017 25, 25, 7, 454, 32, 33, 457, 443, 49, 50,
2018 16, 864, 865, 464, 34, 466, 454, 468, 469, 457,
2019 471, 22, 21, 719, 499, 476, 25, 22, 479, 53,
2020 54, 18, 183, 184, 21, 486, 479, 21, 25, 302,
2021 428, 25, 305, 306, 307, 729, 980, 498, 862, 863,
2022 501, 873, 503, 37, 38, 506, 319, 22, 980, 21,
2023 34, 428, 325, 25, 504, 85, 29, 51, 52, 870,
2024 871, 874, 18, 872, 21, 21, 40, 82, 25, 25,
2025 183, 184, 185, 18, 187, 188, 21, 49, 50, 460,
2026 183, 184, 185, 21, 187, 188, 39, 25, 183, 184,
2027 185, 106, 187, 188, 32, 33, 369, 370, 371, 92,
2028 5, 374, 24, 24, 26, 26, 374, 122, 26, 382,
2029 28, 384, 34, 447, 382, 55, 384, 980, 133, 24,
2030 25, 26, 1079, 569, 939, 610, 44, 18, 589, 34,
2031 21, 592, 23, 92, 1060, 21, 702, 428, 584, 25,
2032 18, 22, 21, 21, 605, 606, 25, 632, 980, 921,
2033 24, 612, 26, 183, 184, 428, 980, 187, 188, 612,
2034 866, 867, 868, 869, 21, 49, 50, 980, 25, 980,
2035 631, 980, 21, 19, 447, 636, 25, 24, 428, 26,
2036 453, 454, 21, 24, 457, 453, 25, 34, 649, 650,
2037 24, 568, 26, 654, 467, 656, 469, 22, 471, 183,
2038 184, 185, 25, 187, 188, 28, 479, 447, 22, 482,
2039 49, 50, 21, 486, 19, 987, 25, 678, 25, 26,
2040 21, 97, 21, 99, 25, 686, 25, 688, 37, 38,
2041 92, 692, 693, 21, 1006, 20, 697, 25, 619, 1011,
2042 701, 702, 51, 52, 32, 33, 707, 520, 814, 702,
2043 49, 50, 520, 27, 707, 21, 529, 530, 1030, 25,
2044 92, 183, 184, 185, 1036, 187, 188, 189, 729, 25,
2045 26, 24, 28, 1045, 980, 25, 26, 568, 28, 18,
2046 730, 731, 732, 733, 734, 735, 23, 302, 44, 21,
2047 305, 306, 307, 25, 44, 568, 569, 42, 43, 37,
2048 38, 569, 1074, 1075, 319, 1077, 18, 1128, 581, 794,
2049 325, 584, 585, 51, 52, 18, 584, 585, 568, 18,
2050 26, 18, 24, 784, 21, 24, 1020, 18, 34, 22,
2051 29, 30, 31, 32, 33, 34, 183, 184, 185, 612,
2052 187, 188, 21, 828, 53, 54, 25, 46, 47, 48,
2053 25, 1123, 813, 814, 18, 816, 25, 26, 21, 28,
2054 24, 814, 25, 1184, 25, 29, 30, 31, 32, 33,
2055 34, 70, 67, 68, 69, 44, 183, 184, 185, 24,
2056 187, 188, 46, 47, 48, 18, 24, 660, 661, 27,
2057 21, 664, 660, 661, 25, 18, 34, 18, 671, 672,
2058 21, 674, 20, 21, 672, 786, 70, 1179, 789, 859,
2059 860, 861, 111, 21, 687, 183, 689, 25, 21, 183,
2060 184, 185, 25, 187, 188, 698, 37, 38, 701, 702,
2061 703, 34, 35, 36, 21, 703, 18, 985, 25, 454,
2062 51, 52, 457, 18, 905, 21, 719, 111, 18, 25,
2063 19, 912, 467, 21, 469, 21, 471, 25, 9, 25,
2064 23, 1009, 21, 11, 479, 25, 25, 482, 24, 21,
2065 26, 486, 28, 25, 21, 22, 21, 183, 184, 185,
2066 25, 187, 188, 24, 183, 184, 185, 186, 44, 32,
2067 33, 47, 48, 943, 57, 58, 59, 60, 61, 62,
2068 63, 64, 65, 66, 11, 21, 21, 21, 781, 25,
2069 25, 25, 24, 1079, 529, 530, 8, 9, 10, 183,
2070 184, 185, 186, 88, 119, 906, 121, 908, 909, 910,
2071 21, 21, 21, 994, 25, 25, 997, 132, 133, 88,
2072 135, 814, 137, 138, 18, 183, 184, 21, 186, 997,
2073 19, 824, 1013, 21, 1015, 150, 19, 25, 18, 1020,
2074 1013, 21, 1023, 1024, 19, 1013, 34, 35, 36, 49,
2075 50, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2076 74, 21, 21, 21, 1030, 25, 25, 25, 8, 9,
2077 10, 27, 21, 19, 21, 23, 25, 612, 25, 1060,
2078 24, 1062, 1063, 21, 98, 21, 100, 25, 102, 18,
2079 104, 25, 21, 20, 21, 109, 53, 54, 1079, 1000,
2080 22, 1002, 34, 35, 36, 119, 18, 121, 1074, 57,
2081 58, 59, 60, 61, 62, 63, 64, 65, 66, 21,
2082 24, 24, 26, 1128, 28, 21, 138, 78, 79, 80,
2083 81, 82, 83, 84, 34, 35, 36, 20, 21, 1144,
2084 44, 21, 22, 47, 48, 1126, 183, 184, 1129, 163,
2085 22, 1132, 687, 186, 689, 948, 949, 72, 73, 74,
2086 25, 1129, 186, 698, 32, 33, 701, 702, 186, 11,
2087 182, 72, 73, 74, 51, 52, 53, 24, 190, 1184,
2088 24, 24, 194, 20, 196, 25, 27, 980, 23, 19,
2089 23, 20, 204, 205, 987, 19, 21, 209, 138, 211,
2090 5, 27, 25, 24, 997, 22, 88, 88, 24, 88,
2091 25, 223, 224, 225, 20, 18, 20, 27, 1011, 18,
2092 1013, 29, 24, 1016, 25, 25, 21, 39, 25, 27,
2093 88, 25, 1213, 25, 25, 55, 1029, 25, 24, 18,
2094 25, 25, 182, 1224, 40, 25, 1039, 1040, 1041, 25,
2095 190, 21, 18, 177, 194, 1048, 196, 18, 8, 9,
2096 10, 21, 178, 177, 204, 18, 88, 1060, 188, 209,
2097 178, 211, 21, 25, 88, 20, 22, 291, 20, 814,
2098 24, 295, 25, 223, 224, 225, 1079, 18, 20, 824,
2099 20, 27, 73, 18, 27, 88, 1089, 1090, 1091, 313,
2100 27, 88, 316, 25, 1097, 88, 88, 360, 25, 0,
2101 324, 88, 0, 327, 88, 88, 88, 82, 325, 778,
2102 1113, 1114, 1115, 1116, 900, 1105, 1119, 1120, 1010, 1038,
2103 894, 926, 1125, 1011, 1174, 388, 1129, 843, 1125, 471,
2104 393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
2105 403, 592, 1129, 689, 687, 1148, 113, 814, 10, 8,
2106 701, 347, 1155, 224, 1157, 1158, 1159, 1084, 520, 428,
2107 719, 424, 980, -1, -1, 387, -1, -1, -1, 126,
2108 -1, 1174, 1175, 1176, 1177, -1, -1, -1, 138, 8,
2109 9, 10, 139, 140, 141, 142, 143, 144, -1, 146,
2110 147, 1194, -1, -1, -1, -1, -1, -1, -1, -1,
2111 -1, -1, -1, 948, 949, -1, 428, 72, 73, 74,
2112 -1, -1, -1, 78, 79, 80, 81, 82, 83, 84,
2113 -1, -1, 182, -1, -1, 447, -1, -1, 452, -1,
2114 190, -1, -1, -1, 194, 459, 196, -1, -1, -1,
2115 464, -1, 466, -1, 204, -1, -1, -1, -1, 209,
2116 474, 211, 997, -1, 478, -1, -1, -1, -1, -1,
2117 -1, -1, -1, 223, 224, 225, -1, -1, 1013, -1,
2118 -1, 1016, -1, -1, -1, -1, -1, 136, 428, 138,
2119 -1, -1, -1, -1, 24, 25, -1, -1, -1, 29,
2120 30, 31, 32, 33, 34, -1, -1, 447, -1, -1,
2121 -1, -1, -1, -1, -1, -1, 46, 47, 48, 138,
2122 72, 73, 74, -1, -1, 1060, 78, 79, 80, 81,
2123 82, 83, 84, 182, -1, -1, -1, -1, -1, -1,
2124 70, 190, -1, -1, 1079, 194, -1, 196, -1, -1,
2125 -1, -1, -1, -1, -1, 204, 568, -1, -1, -1,
2126 -1, -1, -1, 182, -1, -1, -1, -1, -1, -1,
2127 -1, 190, 586, -1, -1, 194, 225, 196, -1, 1114,
2128 1115, 111, -1, -1, -1, 204, -1, -1, -1, -1,
2129 209, -1, 211, 646, 1129, -1, -1, 611, -1, -1,
2130 -1, -1, -1, -1, 223, 224, 225, -1, -1, -1,
2131 -1, -1, -1, -1, -1, -1, 630, -1, -1, 366,
2132 -1, 635, 1157, 1158, -1, -1, -1, -1, 568, -1,
2133 -1, -1, -1, -1, -1, -1, -1, -1, 691, -1,
2134 1175, 1176, -1, 8, 9, 10, -1, -1, -1, -1,
2135 -1, -1, 666, 183, 184, 185, 186, 404, 405, 406,
2136 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
2137 417, 418, 419, -1, -1, -1, 24, 25, 428, 328,
2138 -1, 29, 30, 31, 32, 33, 34, 336, 337, 338,
2139 339, -1, -1, -1, -1, -1, -1, 447, 46, 47,
2140 48, -1, -1, -1, 451, -1, -1, -1, 357, -1,
2141 -1, -1, -1, 8, 9, 10, -1, -1, -1, 368,
2142 -1, -1, 70, -1, -1, -1, -1, -1, 742, -1,
2143 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2144 389, -1, -1, -1, 797, -1, -1, 800, -1, -1,
2145 -1, -1, 499, -1, -1, -1, 19, 504, 8, 9,
2146 10, 24, -1, 111, -1, -1, 29, 30, 31, 32,
2147 33, 34, -1, 138, -1, -1, -1, -1, -1, 428,
2148 -1, -1, -1, 46, 47, 48, 435, -1, 802, 842,
2149 843, -1, -1, -1, -1, 848, 849, 850, 851, 852,
2150 853, 854, 855, 856, 857, 858, -1, 70, -1, 428,
2151 -1, 558, -1, 560, -1, 562, 563, 182, 568, -1,
2152 -1, -1, -1, -1, -1, 190, -1, -1, 447, 194,
2153 -1, 196, -1, -1, -1, 183, 184, 185, 186, 204,
2154 -1, -1, -1, 138, 209, -1, 211, -1, 111, 902,
2155 -1, -1, -1, -1, -1, -1, -1, -1, 223, 224,
2156 225, -1, -1, 610, -1, -1, -1, -1, -1, -1,
2157 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2158 -1, -1, -1, 897, 898, 632, -1, 182, 138, -1,
2159 -1, 905, -1, -1, -1, 190, -1, -1, -1, 194,
2160 -1, 196, -1, -1, -1, -1, -1, -1, -1, 204,
2161 559, -1, -1, -1, 209, 929, 211, 664, -1, 568,
2162 183, 184, 185, 186, -1, -1, -1, -1, 223, 224,
2163 225, -1, 182, -1, -1, -1, -1, -1, -1, -1,
2164 190, -1, -1, -1, 194, -1, 196, -1, -1, 568,
2165 -1, -1, 1005, -1, 204, -1, -1, -1, -1, 209,
2166 -1, 211, -1, -1, -1, -1, -1, -1, -1, -1,
2167 -1, -1, 719, 223, 224, 225, -1, 626, -1, -1,
2168 -1, 995, -1, 730, 731, 732, 733, 734, 735, 736,
2169 737, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2170 -1, -1, -1, -1, -1, 654, -1, 656, -1, -1,
2171 -1, -1, -1, 662, -1, -1, 665, 19, 20, -1,
2172 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2173 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2174 -1, -1, -1, -1, 46, 47, 48, 794, -1, -1,
2175 1064, 24, -1, -1, 27, -1, 29, 30, 31, 32,
2176 33, 34, -1, 428, -1, -1, -1, -1, 70, 718,
2177 -1, -1, -1, 46, 47, 48, -1, -1, 19, -1,
2178 729, 828, 447, 24, -1, -1, -1, -1, 29, 30,
2179 31, 32, 33, 34, -1, -1, -1, 70, -1, -1,
2180 -1, -1, -1, -1, -1, 46, 47, 48, -1, 111,
2181 -1, -1, 859, 860, 861, 862, 863, 864, 865, 866,
2182 867, 868, 869, 870, 871, 872, 873, 874, 875, 70,
2183 877, -1, -1, 428, -1, 6, 7, 8, 111, 10,
2184 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2185 -1, -1, 447, 24, -1, -1, -1, -1, 29, 30,
2186 31, 32, 33, 34, -1, -1, -1, -1, 1182, -1,
2187 111, -1, -1, -1, -1, 46, 47, 48, 428, -1,
2188 -1, 183, 184, 185, 186, -1, -1, -1, -1, -1,
2189 -1, -1, -1, -1, -1, 844, 943, 447, -1, 70,
2190 -1, -1, -1, 568, -1, -1, -1, -1, -1, -1,
2191 183, 184, 185, 186, -1, -1, -1, -1, -1, -1,
2192 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2193 -1, -1, -1, 980, -1, -1, 107, -1, -1, -1,
2194 111, -1, 183, 184, 185, 186, -1, -1, -1, -1,
2195 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,
2196 1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2197 -1, -1, -1, 568, -1, -1, -1, -1, -1, -1,
2198 -1, -1, -1, 24, 933, -1, -1, -1, -1, -1,
2199 -1, -1, -1, 34, -1, -1, -1, -1, -1, -1,
2200 -1, -1, -1, -1, 45, 176, -1, -1, 179, -1,
2201 -1, 182, 183, 184, 185, 186, 187, 188, 568, -1,
2202 -1, -1, -1, -1, -1, -1, 67, 68, 69, 978,
2203 71, -1, -1, -1, 75, 76, 77, -1, -1, -1,
2204 -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
2205 91, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2206 -1, -1, -1, -1, -1, -1, -1, 108, 109, 110,
2207 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2208 121, 1128, 123, 124, 125, 126, 127, 128, 129, 130,
2209 131, 132, 133, 134, 135, 136, 137, 1144, 139, 140,
2210 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2211 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2212 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2213 171, 172, 173, 174, 175, 0, 1, 1184, -1, -1,
2214 -1, -1, 183, 184, 185, -1, 187, 188, 189, -1,
2215 -1, -1, -1, -1, -1, 24, -1, -1, 27, 24,
2216 29, 30, 31, 32, 33, 34, -1, -1, -1, 34,
2217 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2218 45, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2219 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2220 -1, 70, 67, 68, 69, -1, 71, -1, -1, -1,
2221 75, 76, 77, -1, -1, -1, -1, -1, -1, -1,
2222 -1, -1, -1, -1, 89, 90, 91, -1, -1, -1,
2223 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2224 -1, -1, 111, 108, 109, 110, -1, 112, 113, 114,
2225 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
2226 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2227 135, 136, 137, -1, 139, 140, 141, 142, 143, 144,
2228 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2229 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2230 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2231 175, -1, -1, -1, 183, 184, 185, 186, 183, 184,
2232 185, 1, 187, 188, 189, -1, 6, 7, 8, -1,
2233 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2234 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2235 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2236 -1, -1, 42, 43, -1, 45, 46, 47, 48, -1,
2237 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2238 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
2239 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2240 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2241 -1, -1, -1, 93, 94, 95, 96, 97, 98, -1,
2242 -1, -1, -1, -1, -1, -1, -1, 107, 108, 109,
2243 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2244 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2245 130, 131, 132, 133, 134, 135, 136, 137, -1, 139,
2246 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2247 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2248 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2249 170, 171, 172, 173, 174, 175, -1, -1, -1, -1,
2250 -1, -1, -1, 183, 184, 185, 186, 187, 188, 189,
2251 1, -1, -1, -1, -1, 6, 7, 8, -1, 10,
2252 11, 12, 13, 14, 15, 16, 17, 18, 19, -1,
2253 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2254 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2255 -1, 42, 43, -1, -1, 46, 47, 48, -1, -1,
2256 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2257 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
2258 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2259 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2260 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2261 -1, -1, -1, -1, -1, -1, 107, 108, 109, 110,
2262 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2263 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2264 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2265 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2266 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2267 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2268 171, 172, 173, 174, 175, -1, -1, -1, -1, -1,
2269 -1, -1, 183, 184, 185, 186, 187, 188, 189, 1,
2270 -1, -1, -1, -1, 6, 7, 8, -1, -1, 11,
2271 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2272 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2273 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2274 42, 43, -1, -1, 46, 47, 48, -1, -1, -1,
2275 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2276 -1, -1, -1, -1, -1, 67, 68, 69, 70, -1,
2277 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2278 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2279 -1, 93, 94, 95, 96, 97, 98, -1, -1, -1,
2280 -1, -1, -1, -1, -1, 107, 108, 109, 110, 111,
2281 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2282 -1, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2283 132, 133, 134, 135, 136, 137, -1, 139, 140, 141,
2284 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2285 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2286 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2287 172, 173, 174, 175, -1, -1, -1, -1, -1, -1,
2288 -1, 183, 184, 185, 186, 187, 188, 189, 1, -1,
2289 -1, -1, -1, 6, 7, 8, -1, -1, 11, 12,
2290 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2291 -1, 24, 25, -1, -1, -1, 29, 30, 31, 32,
2292 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2293 43, 1, -1, 46, 47, 48, 6, 7, 8, -1,
2294 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2295 -1, -1, -1, -1, 24, -1, -1, 70, -1, 29,
2296 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2297 -1, -1, 42, 43, -1, -1, 46, 47, 48, 92,
2298 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2299 -1, -1, -1, -1, 107, -1, -1, -1, 111, -1,
2300 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2301 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2302 -1, -1, 92, 93, 94, 95, 96, 97, 98, -1,
2303 -1, -1, -1, -1, -1, -1, -1, 107, -1, -1,
2304 -1, 111, -1, -1, -1, -1, -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, -1,
2307 183, 184, 185, 186, 187, 188, -1, -1, 1, -1,
2308 -1, -1, -1, 6, 7, 8, -1, 10, 11, 12,
2309 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2310 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2311 33, 34, -1, 183, 184, 185, 186, 187, 188, 42,
2312 43, 1, -1, 46, 47, 48, 6, 7, 8, -1,
2313 -1, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2314 20, -1, -1, -1, 24, -1, -1, 70, -1, 29,
2315 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2316 -1, -1, 42, 43, -1, -1, 46, 47, 48, 92,
2317 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2318 -1, -1, -1, -1, 107, -1, -1, -1, 111, -1,
2319 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2320 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2321 -1, -1, 92, 93, 94, 95, 96, 97, 98, -1,
2322 -1, -1, -1, -1, -1, -1, -1, 107, -1, -1,
2323 -1, 111, -1, -1, -1, -1, -1, -1, -1, -1,
2324 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2325 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2326 183, 184, 185, 186, 187, 188, -1, -1, 1, -1,
2327 -1, -1, -1, 6, 7, 8, -1, 10, 11, 12,
2328 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2329 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2330 33, 34, -1, 183, 184, 185, 186, 187, 188, 42,
2331 43, 1, -1, 46, 47, 48, 6, 7, 8, -1,
2332 -1, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2333 20, -1, -1, -1, 24, -1, -1, 70, -1, 29,
2334 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2335 -1, -1, 42, 43, -1, -1, 46, 47, 48, -1,
2336 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2337 -1, -1, -1, -1, 107, -1, -1, -1, 111, -1,
2338 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2339 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2340 -1, -1, -1, 93, 94, 95, 96, 97, 98, -1,
2341 -1, -1, -1, -1, -1, -1, -1, 107, -1, -1,
2342 -1, 111, -1, -1, -1, -1, -1, -1, -1, -1,
2343 -1, -1, -1, -1, -1, -1, -1, 24, 25, -1,
2344 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2345 183, 184, 185, 186, 187, 188, -1, -1, 1, 46,
2346 47, 48, -1, 6, 7, 8, -1, 10, 11, 12,
2347 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2348 -1, 24, -1, 70, -1, -1, 29, 30, 31, 32,
2349 33, 34, -1, 183, 184, 185, 186, 187, 188, 42,
2350 43, -1, -1, 46, 47, 48, -1, -1, -1, -1,
2351 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2352 -1, -1, -1, -1, 111, -1, -1, 70, -1, -1,
2353 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2354 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2355 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2356 -1, -1, -1, -1, 107, 6, 7, 8, 111, 10,
2357 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2358 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2359 31, 32, 33, 34, -1, -1, 183, 184, 185, 186,
2360 -1, 42, 43, -1, 45, 46, 47, 48, -1, -1,
2361 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2362 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2363 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2364 183, 184, 185, 186, 187, 188, -1, -1, -1, -1,
2365 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2366 -1, -1, -1, -1, -1, -1, 107, 108, 109, 110,
2367 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2368 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2369 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2370 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2371 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2372 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2373 171, 172, 173, 174, 175, 176, -1, -1, 179, -1,
2374 -1, 182, 183, 184, 185, 186, 187, 188, 189, 6,
2375 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2376 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2377 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2378 -1, -1, -1, -1, -1, 42, 43, -1, 45, 46,
2379 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2380 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2381 -1, -1, -1, 70, 71, -1, -1, -1, -1, -1,
2382 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2383 -1, -1, -1, -1, -1, -1, 93, 94, 95, 96,
2384 97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
2385 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2386 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
2387 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2388 137, -1, 139, 140, 141, 142, 143, 144, 145, 146,
2389 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2390 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2391 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2392 -1, -1, 179, -1, -1, 182, 183, 184, 185, 186,
2393 187, 188, 189, 6, 7, 8, -1, 10, 11, 12,
2394 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2395 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2396 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2397 43, -1, 45, 46, 47, 48, -1, -1, -1, -1,
2398 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2399 -1, -1, -1, -1, -1, -1, -1, 70, 71, -1,
2400 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2401 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2402 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2403 -1, -1, -1, -1, 107, 108, 109, 110, 111, 112,
2404 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
2405 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2406 133, 134, 135, 136, 137, -1, 139, 140, 141, 142,
2407 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2408 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2409 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2410 173, 174, 175, 176, -1, -1, 179, -1, -1, 182,
2411 183, 184, 185, 186, 187, 188, 189, 6, 7, 8,
2412 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2413 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2414 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2415 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2416 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2417 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2418 -1, 70, -1, 29, 30, 31, 32, 33, 34, -1,
2419 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2420 46, 47, 48, -1, 93, 94, 95, 96, 97, 98,
2421 -1, -1, -1, -1, -1, -1, -1, -1, 107, -1,
2422 24, -1, 111, -1, 70, 29, 30, 31, 32, 33,
2423 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2424 -1, -1, 46, 47, 48, -1, -1, 93, 94, 95,
2425 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2426 -1, 107, -1, -1, -1, 111, 70, -1, -1, -1,
2427 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2428 -1, -1, -1, -1, -1, -1, -1, 176, -1, -1,
2429 179, -1, -1, 182, 183, 184, 185, 186, 187, 188,
2430 -1, -1, -1, -1, -1, -1, -1, 111, -1, -1,
2431 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2432 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2433 176, -1, -1, 179, -1, -1, 182, 183, 184, 185,
2434 186, 187, 188, 6, 7, 8, -1, 10, 11, 12,
2435 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2436 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2437 33, 34, -1, -1, -1, -1, -1, -1, -1, 183,
2438 184, 185, 186, 46, 47, 48, 6, 7, 8, -1,
2439 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2440 20, -1, -1, -1, 24, -1, -1, 70, -1, 29,
2441 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2442 -1, -1, -1, -1, -1, -1, 46, 47, 48, -1,
2443 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2444 -1, -1, -1, -1, 107, -1, 24, -1, 111, -1,
2445 70, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2446 -1, -1, -1, -1, -1, -1, -1, -1, 46, 47,
2447 48, -1, -1, 93, 94, 95, 96, 97, 98, -1,
2448 -1, -1, -1, -1, -1, -1, -1, 107, -1, -1,
2449 -1, 111, 70, -1, -1, -1, -1, -1, -1, -1,
2450 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2451 -1, -1, -1, 176, -1, -1, 179, -1, -1, 182,
2452 183, 184, 185, 186, 187, 188, -1, -1, -1, -1,
2453 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1,
2454 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2455 -1, -1, -1, -1, -1, -1, 176, -1, -1, 179,
2456 -1, -1, 182, 183, 184, 185, 186, 187, 188, 6,
2457 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2458 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2459 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2460 -1, -1, -1, -1, -1, 183, 184, 185, 186, 46,
2461 47, 48, 6, 7, 8, -1, 10, 11, 12, 13,
2462 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2463 24, -1, -1, 70, -1, 29, 30, 31, 32, 33,
2464 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2465 -1, -1, 46, 47, 48, -1, 93, 94, 95, 96,
2466 97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
2467 107, -1, 24, -1, 111, -1, 70, 29, 30, 31,
2468 32, 33, 34, 24, -1, -1, -1, -1, 29, 30,
2469 31, 32, 33, 34, 46, 47, 48, -1, -1, 93,
2470 94, 95, 96, 97, 98, 46, 47, 48, -1, -1,
2471 -1, -1, -1, 107, -1, -1, -1, 111, 70, -1,
2472 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2473 -1, -1, -1, -1, -1, -1, -1, -1, -1, 176,
2474 -1, -1, 179, -1, -1, 182, 183, 184, 185, 186,
2475 187, 188, -1, -1, -1, -1, -1, -1, -1, 111,
2476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2477 111, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2478 -1, -1, 176, -1, -1, 179, -1, -1, 182, 183,
2479 184, 185, 186, 187, 188, 6, 7, 8, -1, 10,
2480 11, 12, 13, 14, 15, 16, 17, 18, 19, -1,
2481 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2482 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2483 -1, 183, 184, 185, 186, 46, 47, 48, -1, -1,
2484 -1, -1, 183, 184, 185, 186, -1, -1, -1, -1,
2485 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2486 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2488 -1, -1, 93, 94, 95, 96, 97, 98, 18, -1,
2489 -1, -1, -1, -1, -1, -1, 107, -1, -1, -1,
2490 111, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2491 -1, -1, -1, -1, -1, 45, -1, -1, -1, -1,
2492 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2493 33, 34, -1, -1, -1, -1, -1, 67, 68, 69,
2494 -1, 71, -1, 46, 47, 48, -1, -1, -1, -1,
2495 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2496 -1, -1, -1, -1, -1, 176, -1, 70, 179, -1,
2497 -1, 182, 183, 184, 185, 186, 187, 188, 108, 109,
2498 110, -1, 112, 113, 114, 115, 116, 117, 118, 119,
2499 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2500 130, 131, 132, 133, 134, 135, 136, 137, 111, 139,
2501 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2502 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2503 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2504 170, 171, 172, 173, 174, 175, 18, -1, -1, -1,
2505 -1, -1, -1, -1, -1, 185, -1, -1, -1, 189,
2506 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2507 -1, -1, -1, 45, -1, -1, -1, -1, -1, -1,
2508 183, 184, 185, 186, -1, -1, -1, -1, -1, -1,
2509 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2510 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2511 -1, -1, -1, -1, -1, -1, 88, -1, -1, -1,
2512 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2513 -1, -1, -1, -1, -1, -1, 108, 109, 110, -1,
2514 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2515 -1, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2516 132, 133, 134, 135, 136, 137, -1, 139, 140, 141,
2517 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2518 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2519 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2520 172, 173, 174, 175, 19, -1, -1, -1, -1, 24,
2521 -1, -1, -1, 185, -1, -1, -1, 189, -1, -1,
2522 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2523 45, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2525 -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
2526 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2527 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2528 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2529 -1, -1, -1, 108, 109, 110, -1, 112, 113, 114,
2530 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
2531 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2532 135, 136, 137, -1, 139, 140, 141, 142, 143, 144,
2533 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2534 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2535 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2536 175, 19, -1, -1, -1, -1, -1, -1, -1, -1,
2537 185, -1, -1, -1, 189, -1, -1, -1, -1, -1,
2538 -1, -1, -1, -1, -1, -1, -1, 45, -1, -1,
2539 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2540 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2541 -1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2542 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2543 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2544 20, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2545 108, 109, 110, -1, 112, 113, 114, 115, 116, 117,
2546 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2547 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2548 -1, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2549 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2550 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2551 168, 169, 170, 171, 172, 173, 174, 175, -1, -1,
2552 -1, -1, -1, -1, -1, -1, -1, 185, 108, 109,
2553 110, 189, 112, 113, 114, 115, 116, 117, 118, 119,
2554 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2555 130, 131, 132, 133, 134, 135, 136, 137, -1, 139,
2556 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2557 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2558 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2559 170, 171, 172, 173, 174, 175, 22, -1, -1, -1,
2560 -1, -1, -1, -1, -1, 185, -1, -1, -1, 189,
2561 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2562 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2563 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2564 -1, 67, 68, 69, -1, -1, -1, -1, -1, -1,
2565 -1, -1, -1, -1, -1, -1, -1, -1, -1, 85,
2566 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2567 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2568 -1, -1, 108, 109, 110, -1, 112, 113, 114, 115,
2569 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2570 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2571 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2572 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2573 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2574 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2575 24, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2576 34, -1, -1, 189, -1, -1, -1, -1, -1, -1,
2577 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2578 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2579 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2581 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2583 -1, -1, -1, -1, 108, 109, 110, -1, 112, 113,
2584 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
2585 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2586 134, 135, 136, 137, -1, 139, 140, 141, 142, 143,
2587 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2588 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2589 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2590 174, 175, 42, 43, -1, -1, -1, -1, -1, 183,
2591 184, 185, -1, 187, 188, 189, -1, -1, -1, -1,
2592 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2593 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2594 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2596 -1, -1, -1, -1, -1, -1, -1, -1, 108, 109,
2597 110, -1, 112, 113, 114, 115, 116, 117, 118, 119,
2598 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2599 130, 131, 132, 133, 134, 135, 136, 137, -1, 139,
2600 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2601 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2602 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2603 170, 171, 172, 173, 174, 175, 45, -1, -1, -1,
2604 -1, -1, -1, -1, -1, 185, -1, -1, -1, 189,
2605 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
2606 69, -1, 71, -1, -1, -1, -1, -1, -1, -1,
2607 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2608 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2609 -1, -1, -1, -1, -1, -1, -1, -1, -1, 108,
2610 109, 110, -1, 112, 113, 114, 115, 116, 117, 118,
2611 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
2612 129, 130, 131, 132, 133, 134, 135, 136, 137, -1,
2613 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2614 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2615 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2616 169, 170, 171, 172, 173, 174, 175, 45, -1, -1,
2617 -1, -1, -1, -1, -1, -1, 185, -1, -1, -1,
2618 189, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2619 -1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2620 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2621 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2622 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2623 108, 109, 110, -1, 112, 113, 114, 115, 116, 117,
2624 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2625 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2626 -1, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2627 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2628 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2629 168, 169, 170, 171, 172, 173, 174, 175, 67, 68,
2630 69, -1, -1, -1, -1, -1, -1, 185, -1, -1,
2631 -1, 189, -1, -1, -1, -1, -1, -1, -1, -1,
2632 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2633 -1, -1, -1, -1, -1, -1, -1, -1, -1, 108,
2634 109, 110, -1, 112, 113, 114, 115, 116, 117, 118,
2635 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
2636 129, 130, 131, 132, 133, 134, 135, 136, 137, -1,
2637 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2638 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2639 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2640 169, 170, 171, 172, 173, 174, 175, 89, 90, 91,
2641 -1, -1, -1, -1, -1, -1, 185, -1, -1, -1,
2642 189, -1, -1, -1, -1, -1, 108, 109, 110, -1,
2643 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2644 -1, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2645 132, 133, 134, 135, 136, 137, -1, 139, 140, 141,
2646 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2647 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2648 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2649 172, 173, 174, 175, -1, -1, -1, -1, -1, -1,
2650 -1, -1, -1, 185, 108, 109, 110, 189, 112, 113,
2651 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
2652 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2653 134, 135, 136, 137, -1, 139, 140, 141, 142, 143,
2654 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2655 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2656 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2657 174, 175, -1, -1, -1, -1, -1, -1, -1, -1,
2658 -1, 185, -1, -1, -1, 189
2660 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2661 #line 3 "/gnu/share/bison.simple"
2663 /* Skeleton output parser for bison,
2664 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2666 This program is free software; you can redistribute it and/or modify
2667 it under the terms of the GNU General Public License as published by
2668 the Free Software Foundation; either version 2, or (at your option)
2671 This program is distributed in the hope that it will be useful,
2672 but WITHOUT ANY WARRANTY; without even the implied warranty of
2673 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2674 GNU General Public License for more details.
2676 You should have received a copy of the GNU General Public License
2677 along with this program; if not, write to the Free Software
2678 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
2680 /* As a special exception, when this file is copied by Bison into a
2681 Bison output file, you may use that output file without restriction.
2682 This special exception was added by the Free Software Foundation
2683 in version 1.24 of Bison. */
2687 #define alloca __builtin_alloca
2688 #else /* not GNU C. */
2689 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
2691 #else /* not sparc */
2692 #if defined (MSDOS) && !defined (__TURBOC__)
2694 #else /* not MSDOS, or __TURBOC__ */
2698 #else /* not MSDOS, __TURBOC__, or _AIX */
2702 void *alloca (unsigned int);
2704 #else /* not __cplusplus */
2706 #endif /* not __cplusplus */
2708 #endif /* not _AIX */
2709 #endif /* not MSDOS, or __TURBOC__ */
2710 #endif /* not sparc. */
2711 #endif /* not GNU C. */
2712 #endif /* alloca not defined. */
2714 /* This is the parser code that is written into each bison parser
2715 when the %semantic_parser declaration is not specified in the grammar.
2716 It was written by Richard Stallman by simplifying the hairy parser
2717 used when %semantic_parser is specified. */
2719 /* Note: there must be only one dollar sign in this file.
2720 It is replaced by the list of actions, each action
2721 as one case of the switch. */
2723 #define yyerrok (yyerrstatus = 0)
2724 #define yyclearin (yychar = YYEMPTY)
2727 #define YYACCEPT return(0)
2728 #define YYABORT return(1)
2729 #define YYERROR goto yyerrlab1
2730 /* Like YYERROR except do call yyerror.
2731 This remains here temporarily to ease the
2732 transition to the new meaning of YYERROR, for GCC.
2733 Once GCC version 2 has supplanted version 1, this can go. */
2734 #define YYFAIL goto yyerrlab
2735 #define YYRECOVERING() (!!yyerrstatus)
2736 #define YYBACKUP(token, value) \
2738 if (yychar == YYEMPTY && yylen == 1) \
2739 { yychar = (token), yylval = (value); \
2740 yychar1 = YYTRANSLATE (yychar); \
2745 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2749 #define YYERRCODE 256
2752 #define YYLEX yylex()
2758 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2760 #define YYLEX yylex(&yylval, &yylloc)
2762 #else /* not YYLSP_NEEDED */
2764 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2766 #define YYLEX yylex(&yylval)
2768 #endif /* not YYLSP_NEEDED */
2771 /* If nonreentrant, generate the variables here */
2775 int yychar; /* the lookahead symbol */
2776 YYSTYPE yylval; /* the semantic value of the */
2777 /* lookahead symbol */
2780 YYLTYPE yylloc; /* location data for the lookahead */
2784 int yynerrs; /* number of parse errors so far */
2785 #endif /* not YYPURE */
2788 int yydebug; /* nonzero means print parse trace */
2789 /* Since this is uninitialized, it does not stop multiple parsers
2793 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2796 #define YYINITDEPTH 200
2799 /* YYMAXDEPTH is the maximum size the stacks can grow to
2800 (effective only if the built-in stack extension method is used). */
2807 #define YYMAXDEPTH 10000
2810 /* Prevent warning if -Wstrict-prototypes. */
2815 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2816 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2817 #else /* not GNU C or C++ */
2820 /* This is the most reliable way to avoid incompatibilities
2821 in available built-in functions on various systems. */
2823 __yy_memcpy (to, from, count)
2828 register char *f = from;
2829 register char *t = to;
2830 register int i = count;
2836 #else /* __cplusplus */
2838 /* This is the most reliable way to avoid incompatibilities
2839 in available built-in functions on various systems. */
2841 __yy_memcpy (char *to, char *from, int count)
2843 register char *f = from;
2844 register char *t = to;
2845 register int i = count;
2854 #line 196 "/gnu/share/bison.simple"
2856 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2857 into yyparse. The argument should have type void *.
2858 It should actually point to an object.
2859 Grammar actions can access the variable by casting it
2860 to the proper pointer type. */
2862 #ifdef YYPARSE_PARAM
2864 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2865 #define YYPARSE_PARAM_DECL
2866 #else /* not __cplusplus */
2867 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2868 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2869 #endif /* not __cplusplus */
2870 #else /* not YYPARSE_PARAM */
2871 #define YYPARSE_PARAM_ARG
2872 #define YYPARSE_PARAM_DECL
2873 #endif /* not YYPARSE_PARAM */
2876 yyparse(YYPARSE_PARAM_ARG)
2879 register int yystate;
2881 register short *yyssp;
2882 register YYSTYPE *yyvsp;
2883 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2884 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2886 short yyssa[YYINITDEPTH]; /* the state stack */
2887 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2889 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2890 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2893 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2894 YYLTYPE *yyls = yylsa;
2897 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2899 #define YYPOPSTACK (yyvsp--, yyssp--)
2902 int yystacksize = YYINITDEPTH;
2913 YYSTYPE yyval; /* the variable used to return */
2914 /* semantic values from the action */
2921 fprintf(stderr, "Starting parse\n");
2927 yychar = YYEMPTY; /* Cause a token to be read. */
2929 /* Initialize stack pointers.
2930 Waste one element of value and location stack
2931 so that they stay on the same level as the state stack.
2932 The wasted elements are never initialized. */
2940 /* Push a new state, which is found in yystate . */
2941 /* In all cases, when you get here, the value and location stacks
2942 have just been pushed. so pushing a state here evens the stacks. */
2947 if (yyssp >= yyss + yystacksize - 1)
2949 /* Give user a chance to reallocate the stack */
2950 /* Use copies of these so that the &'s don't force the real ones into memory. */
2951 YYSTYPE *yyvs1 = yyvs;
2952 short *yyss1 = yyss;
2954 YYLTYPE *yyls1 = yyls;
2957 /* Get the current used size of the three stacks, in elements. */
2958 int size = yyssp - yyss + 1;
2961 /* Each stack pointer address is followed by the size of
2962 the data in use in that stack, in bytes. */
2964 /* This used to be a conditional around just the two extra args,
2965 but that might be undefined if yyoverflow is a macro. */
2966 yyoverflow("parser stack overflow",
2967 &yyss1, size * sizeof (*yyssp),
2968 &yyvs1, size * sizeof (*yyvsp),
2969 &yyls1, size * sizeof (*yylsp),
2972 yyoverflow("parser stack overflow",
2973 &yyss1, size * sizeof (*yyssp),
2974 &yyvs1, size * sizeof (*yyvsp),
2978 yyss = yyss1; yyvs = yyvs1;
2982 #else /* no yyoverflow */
2983 /* Extend the stack our own way. */
2984 if (yystacksize >= YYMAXDEPTH)
2986 yyerror("parser stack overflow");
2990 if (yystacksize > YYMAXDEPTH)
2991 yystacksize = YYMAXDEPTH;
2992 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
2993 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
2994 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
2995 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
2997 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
2998 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
3000 #endif /* no yyoverflow */
3002 yyssp = yyss + size - 1;
3003 yyvsp = yyvs + size - 1;
3005 yylsp = yyls + size - 1;
3010 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3013 if (yyssp >= yyss + yystacksize - 1)
3019 fprintf(stderr, "Entering state %d\n", yystate);
3025 /* Do appropriate processing given the current state. */
3026 /* Read a lookahead token if we need one and don't already have one. */
3029 /* First try to decide what to do without reference to lookahead token. */
3031 yyn = yypact[yystate];
3035 /* Not known => get a lookahead token if don't already have one. */
3037 /* yychar is either YYEMPTY or YYEOF
3038 or a valid token in external form. */
3040 if (yychar == YYEMPTY)
3044 fprintf(stderr, "Reading a token: ");
3049 /* Convert token to internal form (in yychar1) for indexing tables with */
3051 if (yychar <= 0) /* This means end of input. */
3054 yychar = YYEOF; /* Don't call YYLEX any more */
3058 fprintf(stderr, "Now at end of input.\n");
3063 yychar1 = YYTRANSLATE(yychar);
3068 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3069 /* Give the individual parser a way to print the precise meaning
3070 of a token, for further debugging info. */
3072 YYPRINT (stderr, yychar, yylval);
3074 fprintf (stderr, ")\n");
3080 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3085 /* yyn is what to do for this token type in this state.
3086 Negative => reduce, -yyn is rule number.
3087 Positive => shift, yyn is new state.
3088 New state is final state => don't bother to shift,
3089 just return success.
3090 0, or most negative number => error. */
3105 /* Shift the lookahead token. */
3109 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3112 /* Discard the token being shifted unless it is eof. */
3113 if (yychar != YYEOF)
3121 /* count tokens shifted since error; after three, turn off error status. */
3122 if (yyerrstatus) yyerrstatus--;
3127 /* Do the default action for the current state. */
3130 yyn = yydefact[yystate];
3134 /* Do a reduction. yyn is the number of a rule to reduce with. */
3138 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3145 fprintf (stderr, "Reducing via rule %d (line %d), ",
3148 /* Print the symbols being reduced, and their result. */
3149 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3150 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3151 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3159 #line 277 "cgrammar.y"
3160 { uentry_clearDecl (); ;
3163 #line 278 "cgrammar.y"
3164 { uentry_clearDecl (); ;
3167 #line 279 "cgrammar.y"
3168 { uentry_clearDecl (); ;
3171 #line 280 "cgrammar.y"
3172 { uentry_clearDecl (); ;
3175 #line 281 "cgrammar.y"
3176 { uentry_clearDecl (); ;
3179 #line 282 "cgrammar.y"
3180 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3183 #line 283 "cgrammar.y"
3184 { uentry_clearDecl (); ;
3187 #line 287 "cgrammar.y"
3188 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3191 #line 289 "cgrammar.y"
3192 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3195 #line 292 "cgrammar.y"
3196 { context_enterFunctionDecl (); ;
3199 #line 293 "cgrammar.y"
3200 { declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3201 context_exitFunctionDecl (); ;
3204 #line 298 "cgrammar.y"
3206 qtype qint = qtype_create (ctype_int);
3207 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3212 #line 304 "cgrammar.y"
3213 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3216 #line 309 "cgrammar.y"
3217 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3220 #line 312 "cgrammar.y"
3221 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3224 #line 314 "cgrammar.y"
3225 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3228 #line 316 "cgrammar.y"
3229 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3232 #line 318 "cgrammar.y"
3234 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), exprNode_getLongValue (yyvsp[-2].expr)));
3238 #line 322 "cgrammar.y"
3239 { setCurrentParams (uentryList_missingParams);
3243 #line 325 "cgrammar.y"
3244 { /* need to support globals and modifies here! */
3245 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp),
3246 uentryList_makeMissingParams ());
3248 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ct);
3253 #line 333 "cgrammar.y"
3254 { setCurrentParams (yyvsp[-1].entrylist);
3258 #line 336 "cgrammar.y"
3259 { clearCurrentParams ();
3260 yyval.ntyp = idDecl_replaceCtype (yyvsp[-7].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-7].ntyp), yyvsp[-4].entrylist));
3263 // printf("Done nameDeclBase\n");
3267 #line 344 "cgrammar.y"
3268 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3271 #line 346 "cgrammar.y"
3272 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3275 #line 348 "cgrammar.y"
3276 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3279 #line 350 "cgrammar.y"
3283 if (exprNode_hasValue (yyvsp[-2].expr)
3284 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3286 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3293 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3297 #line 366 "cgrammar.y"
3298 { setCurrentParams (uentryList_missingParams);
3302 #line 369 "cgrammar.y"
3303 { /* need to support globals and modifies here! */
3304 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3305 uentryList_makeMissingParams ());
3307 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3312 #line 377 "cgrammar.y"
3313 { setCurrentParams (yyvsp[-1].entrylist);
3317 #line 380 "cgrammar.y"
3318 { clearCurrentParams ();
3319 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3324 #line 387 "cgrammar.y"
3325 { setCurrentParams (yyvsp[-1].entrylist); ;
3328 #line 388 "cgrammar.y"
3329 { clearCurrentParams (); ;
3332 #line 389 "cgrammar.y"
3333 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3336 #line 392 "cgrammar.y"
3337 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3340 #line 393 "cgrammar.y"
3341 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3344 #line 394 "cgrammar.y"
3345 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3348 #line 395 "cgrammar.y"
3349 { exprChecks_checkEmptyMacroBody (); ;
3352 #line 398 "cgrammar.y"
3353 { declareFunction (yyvsp[0].ntyp); ;
3356 #line 401 "cgrammar.y"
3357 { setProcessingGlobMods (); ;
3360 #line 402 "cgrammar.y"
3361 { clearProcessingGlobMods (); ;
3364 #line 408 "cgrammar.y"
3365 { setProcessingGlobMods (); ;
3368 #line 409 "cgrammar.y"
3369 { clearProcessingGlobMods (); ;
3372 #line 417 "cgrammar.y"
3374 DPRINTF ( ("doing optGlobEnsuresConstraintsAux\n") );
3375 context_setProtectVars (); enterParamsTemp ();
3376 sRef_setGlobalScopeSafe ();
3381 #line 423 "cgrammar.y"
3383 setEnsuresConstraints (yyvsp[-1].conL);
3385 sRef_clearGlobalScopeSafe ();
3386 context_releaseVars ();
3387 DPRINTF (("done optGlobBufConstraintsAux\n"));;
3390 #line 433 "cgrammar.y"
3392 DPRINTF ( ("doing optGlobBufConstraintsAux\n") );
3393 context_setProtectVars (); enterParamsTemp ();
3394 sRef_setGlobalScopeSafe ();
3399 #line 439 "cgrammar.y"
3401 setFunctionConstraints (yyvsp[-1].conL);
3403 sRef_clearGlobalScopeSafe ();
3404 context_releaseVars ();
3405 DPRINTF (("done optGlobBufConstraintsAux\n"));;
3408 #line 448 "cgrammar.y"
3409 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-1].con); ;
3412 #line 449 "cgrammar.y"
3413 {constraintList c; c = constraintList_new(); c = constraintList_add (c, yyvsp[0].con); yyval.conL = c;
3416 #line 452 "cgrammar.y"
3418 yyval.con = makeConstraintParse3 (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE);
3419 DPRINTF(("Done BufConstraint1\n")); ;
3422 #line 467 "cgrammar.y"
3423 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3426 #line 468 "cgrammar.y"
3428 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3429 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3432 #line 473 "cgrammar.y"
3433 { yyval.conE = constraintExpr_makeTermsRef(yyvsp[0].sr);;
3436 #line 474 "cgrammar.y"
3438 t = cstring_toCharsSafe (exprNode_unparse(yyvsp[0].expr));
3440 yyval.conE = constraintExpr_makeIntLiteral (c);
3444 #line 482 "cgrammar.y"
3447 checkbufferConstraintClausesId (yyvsp[0].entry);;
3450 #line 485 "cgrammar.y"
3451 { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
3454 #line 487 "cgrammar.y"
3455 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3458 #line 488 "cgrammar.y"
3461 t = cstring_toCharsSafe (exprNode_unparse(yyvsp[-1].expr));
3463 yyval.sr = sRef_makeArrayFetchKnown(yyvsp[-3].sr, c); ;
3466 #line 493 "cgrammar.y"
3467 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3470 #line 494 "cgrammar.y"
3471 { yyval.sr = yyvsp[-1].sr; ;
3474 #line 495 "cgrammar.y"
3475 { cstring_markOwned (yyvsp[0].cname);
3476 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3479 #line 497 "cgrammar.y"
3480 { cstring_markOwned (yyvsp[0].cname);
3481 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3484 #line 523 "cgrammar.y"
3485 { setProcessingGlobMods (); ;
3488 #line 524 "cgrammar.y"
3489 { clearProcessingGlobMods (); ;
3492 #line 534 "cgrammar.y"
3493 { setProcessingGlobMods (); ;
3496 #line 535 "cgrammar.y"
3497 { clearProcessingGlobMods (); ;
3500 #line 550 "cgrammar.y"
3504 #line 551 "cgrammar.y"
3508 #line 554 "cgrammar.y"
3509 { globListAdd (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3512 #line 557 "cgrammar.y"
3513 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3516 #line 558 "cgrammar.y"
3517 { yyval.sr = globListUnrecognized (yyvsp[0].cname); ;
3520 #line 561 "cgrammar.y"
3521 { yyval.typequal = qual_createUndef (); ;
3524 #line 562 "cgrammar.y"
3525 { yyval.typequal = qual_createKilled (); ;
3528 #line 563 "cgrammar.y"
3529 { yyval.typequal = qual_createOut (); ;
3532 #line 564 "cgrammar.y"
3533 { yyval.typequal = qual_createIn (); ;
3536 #line 565 "cgrammar.y"
3537 { yyval.typequal = qual_createPartial (); ;
3540 #line 568 "cgrammar.y"
3541 { yyval.tquallist = qualList_undefined; ;
3544 #line 569 "cgrammar.y"
3545 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3548 #line 572 "cgrammar.y"
3549 { setProcessingGlobalsList (); ;
3552 #line 574 "cgrammar.y"
3553 { unsetProcessingGlobals (); ;
3556 #line 575 "cgrammar.y"
3557 { setProcessingGlobalsList (); ;
3560 #line 577 "cgrammar.y"
3561 { unsetProcessingGlobals (); ;
3564 #line 579 "cgrammar.y"
3565 { setFunctionNoGlobals ();
3566 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3570 #line 586 "cgrammar.y"
3571 { setProcessingGlobalsList (); ;
3574 #line 588 "cgrammar.y"
3575 { unsetProcessingGlobals (); ;
3578 #line 589 "cgrammar.y"
3579 { setProcessingGlobalsList (); ;
3582 #line 591 "cgrammar.y"
3583 { unsetProcessingGlobals (); ;
3586 #line 593 "cgrammar.y"
3587 { setFunctionNoGlobals ();
3588 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3592 #line 605 "cgrammar.y"
3594 context_setProtectVars (); enterParamsTemp ();
3595 sRef_setGlobalScopeSafe ();
3599 #line 610 "cgrammar.y"
3601 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3602 sRef_clearGlobalScopeSafe ();
3603 context_releaseVars ();
3607 #line 618 "cgrammar.y"
3609 context_setProtectVars (); enterParamsTemp ();
3610 sRef_setGlobalScopeSafe ();
3614 #line 623 "cgrammar.y"
3616 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3617 sRef_clearGlobalScopeSafe ();
3618 context_releaseVars ();
3622 #line 647 "cgrammar.y"
3623 { yyval.sck = SP_ISONLY; ;
3626 #line 648 "cgrammar.y"
3627 { yyval.sck = SP_ISOBSERVER; ;
3630 #line 649 "cgrammar.y"
3631 { yyval.sck = SP_ISEXPOSED; ;
3634 #line 650 "cgrammar.y"
3635 { yyval.sck = SP_ISDEPENDENT; ;
3638 #line 651 "cgrammar.y"
3639 { yyval.sck = SP_ISOWNED; ;
3642 #line 652 "cgrammar.y"
3643 { yyval.sck = SP_ISSHARED; ;
3646 #line 653 "cgrammar.y"
3647 { yyval.sck = SP_ISNULL; ;
3650 #line 654 "cgrammar.y"
3651 { yyval.sck = SP_ISNOTNULL; ;
3654 #line 658 "cgrammar.y"
3656 context_setProtectVars ();
3658 sRef_setGlobalScopeSafe ();
3662 #line 664 "cgrammar.y"
3664 setFunctionSpecialClause (yyvsp[-6].tok, yyvsp[-3].srset, yyvsp[-1].tok);
3666 sRef_clearGlobalScopeSafe ();
3667 context_releaseVars ();
3671 #line 671 "cgrammar.y"
3673 context_setProtectVars ();
3675 sRef_setGlobalScopeSafe ();
3679 #line 677 "cgrammar.y"
3681 setFunctionStateSpecialClause (yyvsp[-7].tok, yyvsp[-5].sck, yyvsp[-3].srset, yyvsp[-1].tok);
3683 sRef_clearGlobalScopeSafe ();
3684 context_releaseVars ();
3688 #line 686 "cgrammar.y"
3690 qtype qint = qtype_create (ctype_int);
3691 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3696 #line 692 "cgrammar.y"
3697 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3700 #line 695 "cgrammar.y"
3701 { checkDoneParams (); context_enterInnerContext (); ;
3704 #line 697 "cgrammar.y"
3706 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3707 context_exitInner (yyvsp[0].expr);
3711 #line 702 "cgrammar.y"
3712 { doneParams (); context_enterInnerContext (); ;
3715 #line 704 "cgrammar.y"
3717 context_exitInner (yyvsp[0].expr);
3718 exprNode_checkFunctionBody (yyvsp[0].expr);
3719 yyval.expr = yyvsp[0].expr; /* old style */
3723 #line 712 "cgrammar.y"
3725 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3726 /* exprNode_checkFunction (context_getHeader (), $2); */
3729 context_exitFunction ();
3733 #line 721 "cgrammar.y"
3734 { yyval.srset = yyvsp[-2].srset; ;
3737 #line 722 "cgrammar.y"
3738 { yyval.srset = sRefSet_new (); ;
3741 #line 725 "cgrammar.y"
3742 { yyval.srset = yyvsp[-1].srset; ;
3745 #line 726 "cgrammar.y"
3746 { yyval.srset = sRefSet_new (); ;
3749 #line 729 "cgrammar.y"
3750 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3753 #line 730 "cgrammar.y"
3754 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3757 #line 731 "cgrammar.y"
3758 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3761 #line 732 "cgrammar.y"
3762 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3765 #line 733 "cgrammar.y"
3766 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3769 #line 734 "cgrammar.y"
3770 { yyval.sr = yyvsp[-1].sr; ;
3773 #line 735 "cgrammar.y"
3774 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3777 #line 736 "cgrammar.y"
3778 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3781 #line 740 "cgrammar.y"
3782 { yyval.sr = yyvsp[0].sr; ;
3785 #line 741 "cgrammar.y"
3786 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3789 #line 745 "cgrammar.y"
3790 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3793 #line 746 "cgrammar.y"
3794 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3797 #line 750 "cgrammar.y"
3798 { yyval.sr = checkSpecClausesId (yyvsp[0].entry); ;
3801 #line 752 "cgrammar.y"
3802 { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
3805 #line 753 "cgrammar.y"
3806 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3809 #line 754 "cgrammar.y"
3810 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3813 #line 755 "cgrammar.y"
3814 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3817 #line 756 "cgrammar.y"
3818 { yyval.sr = yyvsp[-1].sr; ;
3821 #line 757 "cgrammar.y"
3822 { cstring_markOwned (yyvsp[0].cname);
3823 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3826 #line 759 "cgrammar.y"
3827 { cstring_markOwned (yyvsp[0].cname);
3828 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3831 #line 764 "cgrammar.y"
3832 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3833 else { yyval.srset = sRefSet_undefined; }
3837 #line 768 "cgrammar.y"
3838 { if (sRef_isValid (yyvsp[0].sr))
3840 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3844 yyval.srset = yyvsp[-2].srset;
3849 #line 779 "cgrammar.y"
3850 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3853 #line 780 "cgrammar.y"
3854 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3857 #line 781 "cgrammar.y"
3858 { yyval.expr = yyvsp[0].expr; ;
3861 #line 782 "cgrammar.y"
3862 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3865 #line 783 "cgrammar.y"
3866 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3869 #line 784 "cgrammar.y"
3870 { yyval.expr = exprNode_makeError (); ;
3873 #line 788 "cgrammar.y"
3874 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3877 #line 789 "cgrammar.y"
3878 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3881 #line 790 "cgrammar.y"
3882 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
3885 #line 791 "cgrammar.y"
3886 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3889 #line 792 "cgrammar.y"
3890 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3893 #line 793 "cgrammar.y"
3894 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3897 #line 794 "cgrammar.y"
3898 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3901 #line 795 "cgrammar.y"
3902 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3905 #line 798 "cgrammar.y"
3906 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
3909 #line 799 "cgrammar.y"
3910 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
3913 #line 803 "cgrammar.y"
3914 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3917 #line 804 "cgrammar.y"
3918 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3921 #line 805 "cgrammar.y"
3922 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3925 #line 806 "cgrammar.y"
3926 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3929 #line 807 "cgrammar.y"
3930 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3933 #line 808 "cgrammar.y"
3934 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3937 #line 809 "cgrammar.y"
3938 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3941 #line 810 "cgrammar.y"
3942 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3945 #line 811 "cgrammar.y"
3946 { yyval.expr = yyvsp[0].expr; ;
3949 #line 812 "cgrammar.y"
3950 { yyval.expr = yyvsp[0].expr; ;
3953 #line 815 "cgrammar.y"
3954 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3957 #line 816 "cgrammar.y"
3958 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3961 #line 820 "cgrammar.y"
3962 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3965 #line 823 "cgrammar.y"
3966 { context_setProtectVars (); ;
3969 #line 824 "cgrammar.y"
3970 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3973 #line 827 "cgrammar.y"
3974 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3977 #line 828 "cgrammar.y"
3978 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3981 #line 829 "cgrammar.y"
3982 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3985 #line 830 "cgrammar.y"
3986 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3989 #line 835 "cgrammar.y"
3990 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3993 #line 839 "cgrammar.y"
3994 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3997 #line 840 "cgrammar.y"
3998 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4001 #line 841 "cgrammar.y"
4002 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4005 #line 845 "cgrammar.y"
4006 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4009 #line 846 "cgrammar.y"
4010 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4013 #line 850 "cgrammar.y"
4014 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4017 #line 851 "cgrammar.y"
4018 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4021 #line 855 "cgrammar.y"
4022 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4025 #line 856 "cgrammar.y"
4026 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4029 #line 857 "cgrammar.y"
4030 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4033 #line 858 "cgrammar.y"
4034 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4037 #line 862 "cgrammar.y"
4038 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4041 #line 863 "cgrammar.y"
4042 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4045 #line 867 "cgrammar.y"
4046 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4049 #line 871 "cgrammar.y"
4050 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4053 #line 876 "cgrammar.y"
4054 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4057 #line 881 "cgrammar.y"
4058 { exprNode_produceGuards (yyvsp[-1].expr);
4059 context_enterAndClause (yyvsp[-1].expr);
4063 #line 885 "cgrammar.y"
4065 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4066 context_exitAndClause (yyval.expr, yyvsp[0].expr);
4070 #line 893 "cgrammar.y"
4072 exprNode_produceGuards (yyvsp[-1].expr);
4073 context_enterOrClause (yyvsp[-1].expr);
4077 #line 898 "cgrammar.y"
4079 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4080 context_exitOrClause (yyval.expr, yyvsp[0].expr);
4084 #line 905 "cgrammar.y"
4085 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4088 #line 906 "cgrammar.y"
4089 { context_enterFalseClause (yyvsp[-4].expr); ;
4092 #line 907 "cgrammar.y"
4093 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
4096 #line 911 "cgrammar.y"
4097 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4100 #line 912 "cgrammar.y"
4101 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4104 #line 913 "cgrammar.y"
4105 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4108 #line 914 "cgrammar.y"
4109 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4112 #line 915 "cgrammar.y"
4113 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4116 #line 916 "cgrammar.y"
4117 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4120 #line 917 "cgrammar.y"
4121 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4124 #line 918 "cgrammar.y"
4125 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4128 #line 919 "cgrammar.y"
4129 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4132 #line 920 "cgrammar.y"
4133 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4136 #line 921 "cgrammar.y"
4137 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4140 #line 925 "cgrammar.y"
4141 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
4144 #line 928 "cgrammar.y"
4145 { yyval.expr = exprNode_undefined; ;
4148 #line 937 "cgrammar.y"
4149 { yyval.expr = yyvsp[0].expr; ;
4152 #line 938 "cgrammar.y"
4153 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
4156 #line 939 "cgrammar.y"
4157 { yyval.expr = exprNode_makeError (); ;
4160 #line 942 "cgrammar.y"
4161 { yyval.expr = exprNode_makeError (); ;
4164 #line 956 "cgrammar.y"
4166 setProcessingVars (yyvsp[-3].qtyp);
4167 processNamedDecl (yyvsp[-1].ntyp); ;
4170 #line 959 "cgrammar.y"
4171 { unsetProcessingVars (); yyval.expr = yyvsp[-2].expr; ;
4174 #line 961 "cgrammar.y"
4175 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp);
4179 #line 964 "cgrammar.y"
4180 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
4181 unsetProcessingVars ();
4185 #line 968 "cgrammar.y"
4186 { processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeError (); ;
4189 #line 969 "cgrammar.y"
4190 { processNamedDecl (yyvsp[-2].ntyp); ;
4193 #line 970 "cgrammar.y"
4194 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
4197 #line 974 "cgrammar.y"
4198 { setProcessingTypedef (yyvsp[0].qtyp); ;
4201 #line 975 "cgrammar.y"
4202 { unsetProcessingTypedef (); ;
4205 #line 976 "cgrammar.y"
4206 { /* in the ANSI grammar, semantics unclear */ ;
4209 #line 977 "cgrammar.y"
4210 { /* in the ANSI grammar, semantics unclear */ ;
4213 #line 980 "cgrammar.y"
4214 { g_expectingTypeName = TRUE; ;
4217 #line 983 "cgrammar.y"
4218 { g_expectingTypeName = TRUE; context_pushLoc (); ;
4221 #line 986 "cgrammar.y"
4225 #line 989 "cgrammar.y"
4229 #line 990 "cgrammar.y"
4233 #line 993 "cgrammar.y"
4234 { yyval.expr = exprNode_makeError (); ;
4237 #line 994 "cgrammar.y"
4238 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4241 #line 997 "cgrammar.y"
4242 { yyval.expr = yyvsp[0].expr; ;
4245 #line 998 "cgrammar.y"
4246 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].alist); ;
4249 #line 999 "cgrammar.y"
4250 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].alist); ;
4253 #line 1004 "cgrammar.y"
4254 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
4257 #line 1006 "cgrammar.y"
4258 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
4261 #line 1014 "cgrammar.y"
4262 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4265 #line 1015 "cgrammar.y"
4266 { yyval.typequal = qual_createInline (); ;
4269 #line 1016 "cgrammar.y"
4270 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4273 #line 1017 "cgrammar.y"
4274 { yyval.typequal = qual_createAuto (); ;
4277 #line 1018 "cgrammar.y"
4278 { yyval.typequal = qual_createRegister (); ;
4281 #line 1021 "cgrammar.y"
4282 { yyval.typequal = qual_createConst (); ;
4285 #line 1022 "cgrammar.y"
4286 { yyval.typequal = qual_createVolatile (); ;
4289 #line 1023 "cgrammar.y"
4290 { yyval.typequal = qual_createOut (); ;
4293 #line 1024 "cgrammar.y"
4294 { yyval.typequal = qual_createIn (); ;
4297 #line 1025 "cgrammar.y"
4298 { yyval.typequal = qual_createPartial (); ;
4301 #line 1026 "cgrammar.y"
4302 { yyval.typequal = qual_createSpecial (); ;
4305 #line 1027 "cgrammar.y"
4306 { yyval.typequal = qual_createOwned (); ;
4309 #line 1028 "cgrammar.y"
4310 { yyval.typequal = qual_createDependent (); ;
4313 #line 1029 "cgrammar.y"
4314 { yyval.typequal = qual_createYield (); ;
4317 #line 1030 "cgrammar.y"
4318 { yyval.typequal = qual_createTemp (); ;
4321 #line 1031 "cgrammar.y"
4322 { yyval.typequal = qual_createOnly (); ;
4325 #line 1032 "cgrammar.y"
4326 { yyval.typequal = qual_createKeep (); ;
4329 #line 1033 "cgrammar.y"
4330 { yyval.typequal = qual_createKept (); ;
4333 #line 1034 "cgrammar.y"
4334 { yyval.typequal = qual_createShared (); ;
4337 #line 1035 "cgrammar.y"
4338 { yyval.typequal = qual_createUnique (); ;
4341 #line 1036 "cgrammar.y"
4342 { yyval.typequal = qual_createExits (); ;
4345 #line 1037 "cgrammar.y"
4346 { yyval.typequal = qual_createMayExit (); ;
4349 #line 1038 "cgrammar.y"
4350 { yyval.typequal = qual_createTrueExit (); ;
4353 #line 1039 "cgrammar.y"
4354 { yyval.typequal = qual_createFalseExit (); ;
4357 #line 1040 "cgrammar.y"
4358 { yyval.typequal = qual_createNeverExit (); ;
4361 #line 1041 "cgrammar.y"
4362 { yyval.typequal = qual_createNull (); ;
4365 #line 1042 "cgrammar.y"
4366 { yyval.typequal = qual_createRelNull (); ;
4369 #line 1043 "cgrammar.y"
4370 { yyval.typequal = qual_createReturned (); ;
4373 #line 1044 "cgrammar.y"
4374 { yyval.typequal = qual_createExposed (); ;
4377 #line 1045 "cgrammar.y"
4378 { yyval.typequal = qual_createObserver (); ;
4381 #line 1046 "cgrammar.y"
4382 { yyval.typequal = qual_createChecked (); ;
4385 #line 1047 "cgrammar.y"
4386 { yyval.typequal = qual_createCheckMod (); ;
4389 #line 1048 "cgrammar.y"
4390 { yyval.typequal = qual_createUnchecked (); ;
4393 #line 1049 "cgrammar.y"
4394 { yyval.typequal = qual_createCheckedStrict (); ;
4397 #line 1050 "cgrammar.y"
4398 { yyval.typequal = qual_createTrueNull (); ;
4401 #line 1051 "cgrammar.y"
4402 { yyval.typequal = qual_createFalseNull (); ;
4405 #line 1052 "cgrammar.y"
4406 { yyval.typequal = qual_createUnused (); ;
4409 #line 1053 "cgrammar.y"
4410 { yyval.typequal = qual_createExternal (); ;
4413 #line 1054 "cgrammar.y"
4414 { yyval.typequal = qual_createSef (); ;
4417 #line 1055 "cgrammar.y"
4418 { yyval.typequal = qual_createAbstract (); ;
4421 #line 1056 "cgrammar.y"
4422 { yyval.typequal = qual_createConcrete (); ;
4425 #line 1057 "cgrammar.y"
4426 { yyval.typequal = qual_createMutable (); ;
4429 #line 1058 "cgrammar.y"
4430 { yyval.typequal = qual_createImmutable (); ;
4433 #line 1059 "cgrammar.y"
4434 { yyval.typequal = qual_createNotNull (); ;
4437 #line 1060 "cgrammar.y"
4438 { yyval.typequal = qual_createRefCounted (); ;
4441 #line 1061 "cgrammar.y"
4442 { yyval.typequal = qual_createRefs (); ;
4445 #line 1062 "cgrammar.y"
4446 { yyval.typequal = qual_createKillRef (); ;
4449 #line 1063 "cgrammar.y"
4450 { yyval.typequal = qual_createRelDef (); ;
4453 #line 1064 "cgrammar.y"
4454 { yyval.typequal = qual_createNewRef (); ;
4457 #line 1065 "cgrammar.y"
4458 { yyval.typequal = qual_createTempRef (); ;
4461 #line 1066 "cgrammar.y"
4462 { yyval.typequal = qual_createNullTerminated (); ;
4465 #line 1072 "cgrammar.y"
4466 { yyval.typequal = qual_createShort (); ;
4469 #line 1073 "cgrammar.y"
4470 { yyval.typequal = qual_createLong (); ;
4473 #line 1074 "cgrammar.y"
4474 { yyval.typequal = qual_createSigned (); ;
4477 #line 1075 "cgrammar.y"
4478 { yyval.typequal = qual_createUnsigned (); ;
4481 #line 1084 "cgrammar.y"
4482 { yyval.ctyp = ctype_unknown; ;
4485 #line 1085 "cgrammar.y"
4486 { yyval.ctyp = ctype_anyintegral; ;
4489 #line 1086 "cgrammar.y"
4490 { yyval.ctyp = ctype_unsignedintegral; ;
4493 #line 1087 "cgrammar.y"
4494 { yyval.ctyp = ctype_signedintegral; ;
4497 #line 1091 "cgrammar.y"
4498 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4501 #line 1095 "cgrammar.y"
4502 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4505 #line 1098 "cgrammar.y"
4506 { yyval.qtyp = yyvsp[0].qtyp; ;
4509 #line 1100 "cgrammar.y"
4510 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4513 #line 1105 "cgrammar.y"
4514 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4517 #line 1108 "cgrammar.y"
4518 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4521 #line 1109 "cgrammar.y"
4522 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4525 #line 1110 "cgrammar.y"
4526 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4529 #line 1113 "cgrammar.y"
4530 { yyval.qtyp = qtype_unknown (); ;
4533 #line 1114 "cgrammar.y"
4534 { yyval.qtyp = yyvsp[0].qtyp; ;
4537 #line 1117 "cgrammar.y"
4538 { sRef_setGlobalScopeSafe (); ;
4541 #line 1119 "cgrammar.y"
4542 { sRef_clearGlobalScopeSafe (); ;
4545 #line 1121 "cgrammar.y"
4546 { yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ;
4549 #line 1122 "cgrammar.y"
4550 { sRef_setGlobalScopeSafe (); ;
4553 #line 1124 "cgrammar.y"
4554 { sRef_clearGlobalScopeSafe (); ;
4557 #line 1126 "cgrammar.y"
4558 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4561 #line 1128 "cgrammar.y"
4562 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4565 #line 1130 "cgrammar.y"
4566 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4569 #line 1131 "cgrammar.y"
4570 { sRef_setGlobalScopeSafe (); ;
4573 #line 1133 "cgrammar.y"
4574 { sRef_clearGlobalScopeSafe (); ;
4577 #line 1135 "cgrammar.y"
4578 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4581 #line 1136 "cgrammar.y"
4582 { sRef_setGlobalScopeSafe (); ;
4585 #line 1138 "cgrammar.y"
4586 { sRef_clearGlobalScopeSafe (); ;
4589 #line 1140 "cgrammar.y"
4590 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4593 #line 1142 "cgrammar.y"
4594 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4597 #line 1144 "cgrammar.y"
4598 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4601 #line 1145 "cgrammar.y"
4602 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4605 #line 1146 "cgrammar.y"
4606 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4609 #line 1149 "cgrammar.y"
4610 { g_expectingTypeName = FALSE; ;
4613 #line 1153 "cgrammar.y"
4614 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4617 #line 1154 "cgrammar.y"
4618 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4621 #line 1158 "cgrammar.y"
4622 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4625 #line 1160 "cgrammar.y"
4626 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4629 #line 1164 "cgrammar.y"
4630 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4633 #line 1166 "cgrammar.y"
4634 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4637 #line 1169 "cgrammar.y"
4638 { yyval.ntyp = yyvsp[0].ntyp; ;
4641 #line 1170 "cgrammar.y"
4642 { yyval.ntyp = idDecl_undefined; ;
4645 #line 1171 "cgrammar.y"
4646 { yyval.ntyp = yyvsp[-3].ntyp; ;
4649 #line 1176 "cgrammar.y"
4650 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4653 #line 1177 "cgrammar.y"
4654 { context_pushLoc (); ;
4657 #line 1178 "cgrammar.y"
4658 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4661 #line 1179 "cgrammar.y"
4662 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4665 #line 1183 "cgrammar.y"
4666 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4669 #line 1185 "cgrammar.y"
4670 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4673 #line 1190 "cgrammar.y"
4674 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4675 usymtab_supGlobalEntry (ue);
4676 yyval.cname = yyvsp[0].cname;
4680 #line 1195 "cgrammar.y"
4681 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4682 usymtab_supGlobalEntry (ue);
4683 yyval.cname = yyvsp[-3].cname;
4687 #line 1202 "cgrammar.y"
4688 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4691 #line 1204 "cgrammar.y"
4693 qtype qt = qtype_unknown ();
4695 qtype_adjustPointers (yyvsp[-1].count, qt);
4696 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4700 #line 1211 "cgrammar.y"
4701 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4704 #line 1216 "cgrammar.y"
4705 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4708 #line 1219 "cgrammar.y"
4709 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4712 #line 1220 "cgrammar.y"
4713 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4716 #line 1223 "cgrammar.y"
4717 { /* ignored for now */; ;
4720 #line 1224 "cgrammar.y"
4724 #line 1227 "cgrammar.y"
4728 #line 1228 "cgrammar.y"
4732 #line 1231 "cgrammar.y"
4733 { yyval.count = 1; ;
4736 #line 1232 "cgrammar.y"
4737 { yyval.count = 1; ;
4740 #line 1233 "cgrammar.y"
4741 { yyval.count = 1 + yyvsp[0].count; ;
4744 #line 1234 "cgrammar.y"
4745 { yyval.count = 1 + yyvsp[0].count; ;
4748 #line 1238 "cgrammar.y"
4749 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4752 #line 1241 "cgrammar.y"
4753 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4756 #line 1242 "cgrammar.y"
4757 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4760 #line 1245 "cgrammar.y"
4761 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4764 #line 1247 "cgrammar.y"
4765 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4768 #line 1250 "cgrammar.y"
4772 #line 1250 "cgrammar.y"
4773 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4776 #line 1251 "cgrammar.y"
4780 #line 1252 "cgrammar.y"
4781 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4784 #line 1256 "cgrammar.y"
4786 if (isFlipOldStyle ())
4788 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4794 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4798 #line 1268 "cgrammar.y"
4800 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4804 llparseerror (message ("Inconsistent function parameter syntax: %q",
4805 idDecl_unparse (tparam)));
4809 yyval.oentry = makeCurrentParam (tparam);
4810 idDecl_free (tparam);
4814 #line 1284 "cgrammar.y"
4815 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4818 #line 1287 "cgrammar.y"
4819 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4822 #line 1289 "cgrammar.y"
4823 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4826 #line 1292 "cgrammar.y"
4827 { yyval.ctyp = ctype_unknown; ;
4830 #line 1297 "cgrammar.y"
4831 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4834 #line 1298 "cgrammar.y"
4835 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4838 #line 1300 "cgrammar.y"
4839 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4842 #line 1301 "cgrammar.y"
4843 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4846 #line 1303 "cgrammar.y"
4847 { yyval.ctyp = ctype_makeFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4850 #line 1305 "cgrammar.y"
4851 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4854 #line 1307 "cgrammar.y"
4855 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4858 #line 1309 "cgrammar.y"
4859 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4862 #line 1311 "cgrammar.y"
4863 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4866 #line 1326 "cgrammar.y"
4867 {yyval.expr = yyvsp[0].expr; printf ("Doing stmt lclintassertion\n"); ;
4870 #line 1330 "cgrammar.y"
4871 { printf(" QSETBUFFERSIZE id CCONSTANT HEllo World\n"); uentry_setBufferSize(yyvsp[-2].entry, yyvsp[-1].expr); yyval.expr = exprNode_createTok (yyvsp[0].tok);
4875 #line 1332 "cgrammar.y"
4876 { printf(" QSETSTRINGLENGTH id CCONSTANT HEllo World\n"); uentry_setStringLength(yyvsp[-2].entry, yyvsp[-1].expr); yyval.expr = exprNode_createTok (yyvsp[0].tok);
4880 #line 1334 "cgrammar.y"
4881 {printf(" QTESTINRANGE\n"); uentry_testInRange(yyvsp[-2].entry, yyvsp[-1].expr); yyval.expr = exprNode_createTok (yyvsp[0].tok);
4885 #line 1340 "cgrammar.y"
4886 { yyval.expr = exprNode_labelMarker (yyvsp[0].cname); ;
4889 #line 1345 "cgrammar.y"
4890 { yyval.expr = yyvsp[0].expr; ;
4893 #line 1353 "cgrammar.y"
4894 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4897 #line 1357 "cgrammar.y"
4898 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4901 #line 1359 "cgrammar.y"
4902 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4905 #line 1361 "cgrammar.y"
4906 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4909 #line 1363 "cgrammar.y"
4910 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4913 #line 1367 "cgrammar.y"
4914 { context_setProtectVars (); ;
4917 #line 1367 "cgrammar.y"
4918 { context_sizeofReleaseVars (); ;
4921 #line 1369 "cgrammar.y"
4922 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4923 context_enterForClause (yyvsp[-5].expr); ;
4926 #line 1374 "cgrammar.y"
4927 { setProcessingIterVars (yyvsp[-2].entry); ;
4930 #line 1376 "cgrammar.y"
4931 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].alist); ;
4934 #line 1377 "cgrammar.y"
4935 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4938 #line 1383 "cgrammar.y"
4939 { yyval.expr = yyvsp[0].expr; ;
4942 #line 1391 "cgrammar.y"
4943 { yyval.expr = yyvsp[-1].expr; ;
4946 #line 1392 "cgrammar.y"
4947 { yyval.expr = exprNode_makeError (); ;
4950 #line 1396 "cgrammar.y"
4951 { /* don't: context_exitTrueClause ($1, $2); */
4952 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4956 #line 1401 "cgrammar.y"
4957 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4960 #line 1404 "cgrammar.y"
4961 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4964 #line 1419 "cgrammar.y"
4965 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4968 #line 1421 "cgrammar.y"
4969 { yyval.expr = exprNode_makeError (); ;
4972 #line 1424 "cgrammar.y"
4973 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
4976 #line 1425 "cgrammar.y"
4977 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4980 #line 1431 "cgrammar.y"
4981 { context_enterCaseClause (yyvsp[0].expr); ;
4984 #line 1432 "cgrammar.y"
4985 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4988 #line 1433 "cgrammar.y"
4989 { context_enterCaseClause (yyvsp[0].expr); ;
4992 #line 1434 "cgrammar.y"
4993 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4996 #line 1437 "cgrammar.y"
4997 { context_enterCaseClause (exprNode_undefined); ;
5000 #line 1438 "cgrammar.y"
5001 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
5004 #line 1439 "cgrammar.y"
5005 { context_enterCaseClause (exprNode_undefined); ;
5008 #line 1440 "cgrammar.y"
5009 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
5012 #line 1443 "cgrammar.y"
5013 { yyval.expr = yyvsp[-1].expr; ;
5016 #line 1445 "cgrammar.y"
5017 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
5020 #line 1448 "cgrammar.y"
5021 { yyval.expr = yyvsp[-1].expr; ;
5024 #line 1451 "cgrammar.y"
5025 { context_enterInnerContext (); ;
5028 #line 1454 "cgrammar.y"
5029 { context_exitInnerPlain (); ;
5032 #line 1457 "cgrammar.y"
5033 { context_enterStructInnerContext (); ;
5036 #line 1460 "cgrammar.y"
5037 { context_exitStructInnerContext (); ;
5040 #line 1463 "cgrammar.y"
5041 { context_exitInnerSafe (); ;
5044 #line 1466 "cgrammar.y"
5045 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5048 #line 1467 "cgrammar.y"
5049 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
5052 #line 1468 "cgrammar.y"
5053 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5056 #line 1470 "cgrammar.y"
5057 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5060 #line 1471 "cgrammar.y"
5061 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5064 #line 1473 "cgrammar.y"
5065 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5068 #line 1475 "cgrammar.y"
5069 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5072 #line 1477 "cgrammar.y"
5073 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
5074 lltok_getLoc (yyvsp[-1].tok)));
5078 #line 1484 "cgrammar.y"
5079 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
5082 #line 1488 "cgrammar.y"
5083 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5086 #line 1490 "cgrammar.y"
5087 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5090 #line 1492 "cgrammar.y"
5091 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5094 #line 1494 "cgrammar.y"
5095 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5098 #line 1498 "cgrammar.y"
5099 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5102 #line 1501 "cgrammar.y"
5103 { yyval.expr = yyvsp[0].expr; ;
5106 #line 1502 "cgrammar.y"
5107 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5110 #line 1505 "cgrammar.y"
5111 { yyval.expr = yyvsp[0].expr; ;
5114 #line 1506 "cgrammar.y"
5115 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5118 #line 1509 "cgrammar.y"
5119 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5122 #line 1510 "cgrammar.y"
5123 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5126 #line 1513 "cgrammar.y"
5127 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5130 #line 1514 "cgrammar.y"
5131 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5134 #line 1515 "cgrammar.y"
5135 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
5138 #line 1519 "cgrammar.y"
5139 { yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
5142 #line 1527 "cgrammar.y"
5144 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
5145 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
5149 #line 1531 "cgrammar.y"
5150 { context_enterFalseClause (yyvsp[-2].expr); ;
5153 #line 1532 "cgrammar.y"
5155 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5156 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5160 #line 1536 "cgrammar.y"
5161 { context_enterSwitch (yyvsp[0].expr); ;
5164 #line 1537 "cgrammar.y"
5165 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
5168 #line 1541 "cgrammar.y"
5169 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
5172 #line 1545 "cgrammar.y"
5173 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
5176 #line 1548 "cgrammar.y"
5177 { context_enterIterClause (); ;
5180 #line 1549 "cgrammar.y"
5181 { setProcessingIterVars (yyvsp[-3].entry); ;
5184 #line 1552 "cgrammar.y"
5186 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].alist, yyvsp[-2].expr, yyvsp[-1].entry);
5191 #line 1558 "cgrammar.y"
5192 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
5195 #line 1559 "cgrammar.y"
5196 { nextIterParam (); ;
5199 #line 1560 "cgrammar.y"
5200 { yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ;
5203 #line 1563 "cgrammar.y"
5204 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
5207 #line 1564 "cgrammar.y"
5208 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
5211 #line 1565 "cgrammar.y"
5212 { uentry ue = coerceIterId (yyvsp[0].cname);
5214 if (uentry_isValid (ue))
5216 yyval.expr = exprNode_iterId (ue);
5220 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
5225 #line 1576 "cgrammar.y"
5226 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
5229 #line 1584 "cgrammar.y"
5230 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5233 #line 1588 "cgrammar.y"
5234 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
5237 #line 1589 "cgrammar.y"
5238 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
5241 #line 1590 "cgrammar.y"
5242 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
5245 #line 1592 "cgrammar.y"
5246 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
5249 #line 1593 "cgrammar.y"
5250 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
5253 #line 1594 "cgrammar.y"
5254 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
5257 #line 1595 "cgrammar.y"
5258 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5261 #line 1596 "cgrammar.y"
5262 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5265 #line 1600 "cgrammar.y"
5266 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5269 #line 1601 "cgrammar.y"
5270 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5273 #line 1602 "cgrammar.y"
5274 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5277 #line 1603 "cgrammar.y"
5278 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5281 #line 1604 "cgrammar.y"
5282 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5285 #line 1605 "cgrammar.y"
5286 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5289 #line 1606 "cgrammar.y"
5290 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5293 #line 1607 "cgrammar.y"
5294 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5297 #line 1608 "cgrammar.y"
5298 { yyval.expr = yyvsp[0].expr; ;
5301 #line 1612 "cgrammar.y"
5302 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
5305 #line 1616 "cgrammar.y"
5306 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5309 #line 1617 "cgrammar.y"
5310 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5313 #line 1618 "cgrammar.y"
5314 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5317 #line 1622 "cgrammar.y"
5318 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5321 #line 1623 "cgrammar.y"
5322 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5325 #line 1627 "cgrammar.y"
5326 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5329 #line 1628 "cgrammar.y"
5330 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5333 #line 1632 "cgrammar.y"
5334 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5337 #line 1633 "cgrammar.y"
5338 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5341 #line 1634 "cgrammar.y"
5342 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5345 #line 1635 "cgrammar.y"
5346 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5349 #line 1639 "cgrammar.y"
5350 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5353 #line 1640 "cgrammar.y"
5354 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5357 #line 1644 "cgrammar.y"
5358 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5361 #line 1648 "cgrammar.y"
5362 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5365 #line 1653 "cgrammar.y"
5366 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5369 #line 1657 "cgrammar.y"
5370 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5373 #line 1661 "cgrammar.y"
5374 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5377 #line 1665 "cgrammar.y"
5378 { context_enterTrueClause (yyvsp[-1].expr); ;
5381 #line 1666 "cgrammar.y"
5382 { context_enterFalseClause (yyvsp[-4].expr); ;
5385 #line 1667 "cgrammar.y"
5386 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5389 #line 1671 "cgrammar.y"
5390 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5393 #line 1672 "cgrammar.y"
5394 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5397 #line 1673 "cgrammar.y"
5398 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5401 #line 1674 "cgrammar.y"
5402 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5405 #line 1675 "cgrammar.y"
5406 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5409 #line 1676 "cgrammar.y"
5410 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5413 #line 1677 "cgrammar.y"
5414 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5417 #line 1678 "cgrammar.y"
5418 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5421 #line 1679 "cgrammar.y"
5422 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5425 #line 1680 "cgrammar.y"
5426 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5429 #line 1681 "cgrammar.y"
5430 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5433 #line 1684 "cgrammar.y"
5434 { yyval.entry = yyvsp[0].entry; ;
5437 #line 1685 "cgrammar.y"
5438 { yyval.entry = uentry_undefined; ;
5441 #line 1688 "cgrammar.y"
5442 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5445 #line 1692 "cgrammar.y"
5446 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5449 #line 1694 "cgrammar.y"
5450 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5453 #line 1696 "cgrammar.y"
5454 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5457 #line 1699 "cgrammar.y"
5458 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5461 #line 1701 "cgrammar.y"
5462 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5465 #line 1703 "cgrammar.y"
5466 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5469 #line 1704 "cgrammar.y"
5470 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5473 #line 1707 "cgrammar.y"
5474 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5477 #line 1708 "cgrammar.y"
5478 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5481 #line 1710 "cgrammar.y"
5482 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5485 #line 1711 "cgrammar.y"
5486 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5489 #line 1712 "cgrammar.y"
5490 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5493 #line 1713 "cgrammar.y"
5494 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5497 #line 1714 "cgrammar.y"
5498 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5501 #line 1715 "cgrammar.y"
5502 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5505 #line 1716 "cgrammar.y"
5506 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5509 #line 1717 "cgrammar.y"
5510 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5513 #line 1721 "cgrammar.y"
5517 #line 1728 "cgrammar.y"
5518 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5521 #line 1729 "cgrammar.y"
5522 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5525 #line 1730 "cgrammar.y"
5526 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5529 #line 1731 "cgrammar.y"
5530 { yyval.cname = yyvsp[0].cname; ;
5533 #line 1735 "cgrammar.y"
5534 { yyval.ctyp = ctype_unknown; ;
5537 /* the action file gets copied in in place of this dollarsign */
5538 #line 498 "/gnu/share/bison.simple"
5549 short *ssp1 = yyss - 1;
5550 fprintf (stderr, "state stack now");
5551 while (ssp1 != yyssp)
5552 fprintf (stderr, " %d", *++ssp1);
5553 fprintf (stderr, "\n");
5563 yylsp->first_line = yylloc.first_line;
5564 yylsp->first_column = yylloc.first_column;
5565 yylsp->last_line = (yylsp-1)->last_line;
5566 yylsp->last_column = (yylsp-1)->last_column;
5571 yylsp->last_line = (yylsp+yylen-1)->last_line;
5572 yylsp->last_column = (yylsp+yylen-1)->last_column;
5576 /* Now "shift" the result of the reduction.
5577 Determine what state that goes to,
5578 based on the state we popped back to
5579 and the rule number reduced by. */
5583 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5584 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5585 yystate = yytable[yystate];
5587 yystate = yydefgoto[yyn - YYNTBASE];
5591 yyerrlab: /* here on detecting error */
5594 /* If not already recovering from an error, report this error. */
5598 #ifdef YYERROR_VERBOSE
5599 yyn = yypact[yystate];
5601 if (yyn > YYFLAG && yyn < YYLAST)
5608 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5609 for (x = (yyn < 0 ? -yyn : 0);
5610 x < (sizeof(yytname) / sizeof(char *)); x++)
5611 if (yycheck[x + yyn] == x)
5612 size += strlen(yytname[x]) + 15, count++;
5613 msg = (char *) malloc(size + 15);
5616 strcpy(msg, "parse error");
5621 for (x = (yyn < 0 ? -yyn : 0);
5622 x < (sizeof(yytname) / sizeof(char *)); x++)
5623 if (yycheck[x + yyn] == x)
5625 strcat(msg, count == 0 ? ", expecting `" : " or `");
5626 strcat(msg, yytname[x]);
5635 yyerror ("parse error; also virtual memory exceeded");
5638 #endif /* YYERROR_VERBOSE */
5639 yyerror("parse error");
5643 yyerrlab1: /* here on error raised explicitly by an action */
5645 if (yyerrstatus == 3)
5647 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5649 /* return failure if at end of input */
5650 if (yychar == YYEOF)
5655 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5661 /* Else will try to reuse lookahead token
5662 after shifting the error token. */
5664 yyerrstatus = 3; /* Each real token shifted decrements this */
5668 yyerrdefault: /* current state does not do anything special for the error token. */
5671 /* This is wrong; only states that explicitly want error tokens
5672 should shift them. */
5673 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5674 if (yyn) goto yydefault;
5677 yyerrpop: /* pop the current state because it cannot handle the error token */
5679 if (yyssp == yyss) YYABORT;
5689 short *ssp1 = yyss - 1;
5690 fprintf (stderr, "Error: state stack now");
5691 while (ssp1 != yyssp)
5692 fprintf (stderr, " %d", *++ssp1);
5693 fprintf (stderr, "\n");
5699 yyn = yypact[yystate];
5704 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5723 fprintf(stderr, "Shifting error token, ");
5734 #line 1737 "cgrammar.y"
5738 extern char *yytext;
5741 # include "bison.reset"
5743 void yyerror (/*@unused@*/ char *s)
5745 static bool givehint = FALSE;
5747 if (context_inIterDef ())
5749 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5750 context_inFunctionName ()));
5752 else if (context_inIterEnd ())
5754 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5755 context_inFunctionName ()));
5757 else if (context_inMacro ())
5759 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5760 context_inFunctionName ()));
5762 if (context_inMacroUnknown ())
5766 llhint (cstring_makeLiteral
5767 ("Precede macro definition with /*@notfunction@*/ "
5768 "to suppress checking and force expansion"));
5777 llparseerror (cstring_undefined);
5781 void printState (idDecl t) {
5782 cstring id = idDecl_getName (t);
5783 uentry ue = usymtab_lookupSafe (id);
5785 sRef s = uentry_getSref (ue);
5787 printf("State = %d\n", s->bufinfo.bufstate);
5791 /*take this out soon */
5792 /* void testassert1 (cstring id, icstring cons ) { */
5793 /* uentry ue =usymtab_lookupSafe (id); */
5794 /* sRef s = uentry_getSref (ue); */
5795 /* printf ("Doing testassert1 with setbuffersize\n"); */
5796 /* printf("State = %d\n", s->bufinfo.bufstate); */
5798 /* void testassert2 (cstring id) { */
5799 /* uentry ue =usymtab_lookupSafe (id); */
5800 /* sRef s = uentry_getSref (ue); */
5801 /* printf ("Doing testassert2 with setbuffersize\n"); */
5802 /* printf("State = %d\n", s->bufinfo.bufstate); */