2 /* A Bison parser, made from cgrammar.y
3 by GNU Bison version 1.25
6 #define YYBISON 1 /* Identify Bison output. */
10 #define CTOK_ELIPSIS 260
34 #define TAMPERSAND 284
62 #define MUL_ASSIGN 312
63 #define DIV_ASSIGN 313
64 #define MOD_ASSIGN 314
65 #define ADD_ASSIGN 315
66 #define SUB_ASSIGN 316
67 #define LEFT_ASSIGN 317
68 #define RIGHT_ASSIGN 318
69 #define AND_ASSIGN 319
70 #define XOR_ASSIGN 320
85 #define QALLOCATES 335
88 #define QPRECLAUSE 338
89 #define QPOSTCLAUSE 339
95 #define LLMACROITER 345
96 #define LLMACROEND 346
98 #define QSWITCHBREAK 348
99 #define QLOOPBREAK 349
100 #define QINNERBREAK 350
101 #define QSAFEBREAK 351
102 #define QINNERCONTINUE 352
103 #define QFALLTHROUGH 353
104 #define QLINTNOTREACHED 354
105 #define QLINTFALLTHROUGH 355
106 #define QLINTFALLTHRU 356
107 #define QARGSUSED 357
108 #define QPRINTFLIKE 358
109 #define QLINTPRINTFLIKE 359
110 #define QSCANFLIKE 360
111 #define QMESSAGELIKE 361
112 #define QNOTREACHED 362
114 #define QVOLATILE 364
116 #define QEXTENSION 366
120 #define QREGISTER 370
130 #define QUNCHECKED 380
131 #define QCHECKEDSTRICT 381
132 #define QCHECKMOD 382
138 #define QDEPENDENT 388
139 #define QRETURNED 389
142 #define QOBSERVER 392
146 #define QNEVEREXIT 396
147 #define QTRUEEXIT 397
148 #define QFALSEEXIT 398
151 #define QUNSIGNED 401
157 #define QABSTRACT 407
158 #define QCONCRETE 408
160 #define QIMMUTABLE 410
161 #define QTRUENULL 411
162 #define QFALSENULL 412
163 #define QEXTERNAL 413
164 #define QREFCOUNTED 414
177 #define QINTEGRALTYPE 427
178 #define QUNSIGNEDINTEGRALTYPE 428
179 #define QSIGNEDINTEGRALTYPE 429
180 #define QNULLTERMINATED 430
181 #define QSETBUFFERSIZE 431
182 #define QBUFFERCONSTRAINT 432
183 #define QENSURESCONSTRAINT 433
184 #define QSETSTRINGLENGTH 434
187 #define QTESTINRANGE 437
188 #define IDENTIFIER 438
189 #define NEW_IDENTIFIER 439
190 #define TYPE_NAME_OR_ID 440
191 #define CCONSTANT 441
192 #define ITER_NAME 442
193 #define ITER_ENDNAME 443
194 #define TYPE_NAME 444
196 #line 19 "cgrammar.y"
202 ** Yacc/Bison grammar for extended ANSI C used by LCLint.
204 ** original grammar by Nate Osgood ---
205 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
207 ** changes for LCLint --- handle typedef names correctly
208 ** fix struct/union parsing bug (empty struct is accepted)
209 ** add productions to handle macros --- require
210 ** error correction --- main source of conflicts in grammar.
211 ** need to process initializations sequentially, L->R
213 ** production names are cryptic, so more productions fit on one line
215 ** conflicts: 87 shift/reduce, 18 reduce/reduce
216 ** most of these are due to handling macros
217 ** a few are due to handling type expressions
223 extern void swallowMacro (void);
225 # include "lclintMacros.nf"
227 # include "cgrammar.h"
228 # include "exprChecks.h"
233 # define SHOWCSYM FALSE
234 void yyerror (char *s);
237 ** This is necessary, or else when the bison-generated code #include's malloc.h,
238 ** there will be a parse error.
240 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
241 ** in bison-generated files under Win32.
250 void checkandsetBufState(idDecl id, exprNode is);
252 #line 75 "cgrammar.y"
257 specialClauseKind sck;
262 /*@only@*/ qtype qtyp;
263 /*@only@*/ cstring cname;
264 /*@only@*/ idDecl ntyp;
265 /*@only@*/ idDeclList ntyplist;
266 /*@only@*/ uentryList flist;
267 /*@owned@*/ uentryList entrylist;
268 /*@observer@*/ /*@dependent@*/ uentry entry;
269 /*@only@*/ uentry oentry;
270 /*@only@*/ exprNode expr;
271 /*@only@*/ enumNameList enumnamelist;
272 /*@only@*/ exprNodeList alist;
273 /*@only@*/ sRefSet srset;
274 /*@only@*/ cstringList cstringlist;
298 #define YYFLAG -32768
301 #define YYTRANSLATE(x) ((unsigned)(x) <= 444 ? yytranslate[x] : 433)
303 static const short yytranslate[] = { 0,
304 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
305 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
306 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
307 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
308 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
309 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
310 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
311 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
312 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
313 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
314 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
315 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
316 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
317 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
318 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
319 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
321 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
322 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
323 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
325 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
330 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
331 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
332 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
333 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
334 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
335 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
336 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
337 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
338 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
339 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
340 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
341 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
342 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
343 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
344 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
345 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
346 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
347 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
352 static const short yyprhs[] = { 0,
353 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
354 21, 23, 32, 44, 45, 51, 53, 57, 59, 62,
355 64, 71, 75, 82, 83, 91, 92, 101, 103, 110,
356 114, 121, 122, 129, 130, 138, 139, 140, 151, 155,
357 159, 163, 166, 168, 169, 172, 173, 176, 179, 180,
358 185, 186, 187, 192, 193, 196, 198, 203, 205, 207,
359 209, 211, 213, 215, 220, 226, 228, 230, 232, 234,
360 238, 243, 246, 250, 254, 258, 260, 262, 264, 265,
361 268, 269, 272, 274, 277, 279, 282, 284, 287, 289,
362 293, 296, 298, 300, 302, 304, 306, 308, 310, 311,
363 314, 315, 322, 323, 330, 332, 334, 335, 336, 342,
364 343, 349, 351, 353, 354, 356, 357, 358, 362, 363,
365 367, 369, 371, 373, 375, 377, 379, 381, 383, 385,
366 387, 389, 391, 393, 395, 397, 399, 401, 402, 410,
367 411, 420, 422, 426, 427, 431, 432, 436, 439, 443,
368 446, 449, 451, 453, 455, 459, 464, 467, 471, 475,
369 479, 481, 483, 485, 489, 491, 493, 497, 502, 505,
370 509, 513, 517, 519, 523, 525, 527, 529, 533, 535,
371 537, 539, 544, 548, 553, 560, 566, 572, 575, 578,
372 580, 584, 586, 589, 592, 595, 598, 601, 604, 607,
373 610, 612, 614, 618, 620, 630, 631, 635, 640, 643,
374 648, 651, 653, 658, 660, 664, 668, 672, 674, 678,
375 682, 684, 688, 692, 694, 698, 702, 706, 710, 712,
376 716, 720, 722, 726, 728, 732, 734, 738, 740, 741,
377 746, 748, 749, 754, 756, 757, 758, 766, 768, 772,
378 776, 780, 784, 788, 792, 796, 800, 804, 808, 812,
379 814, 818, 819, 821, 823, 825, 827, 829, 833, 834,
380 844, 845, 857, 860, 861, 868, 869, 877, 882, 887,
381 888, 889, 892, 894, 899, 900, 905, 907, 911, 916,
382 918, 922, 924, 926, 928, 930, 932, 935, 938, 941,
383 944, 947, 950, 953, 956, 959, 962, 965, 968, 971,
384 974, 977, 980, 983, 986, 989, 992, 995, 998, 1001,
385 1004, 1007, 1010, 1013, 1016, 1019, 1022, 1025, 1028, 1031,
386 1034, 1037, 1040, 1043, 1046, 1049, 1052, 1055, 1058, 1061,
387 1064, 1067, 1070, 1072, 1074, 1076, 1078, 1081, 1084, 1087,
388 1090, 1093, 1096, 1099, 1102, 1105, 1108, 1111, 1114, 1117,
389 1120, 1124, 1126, 1131, 1133, 1137, 1140, 1143, 1146, 1147,
390 1149, 1150, 1151, 1163, 1164, 1165, 1177, 1184, 1191, 1192,
391 1193, 1204, 1205, 1206, 1217, 1223, 1229, 1234, 1239, 1240,
392 1242, 1244, 1247, 1253, 1257, 1260, 1265, 1267, 1271, 1276,
393 1283, 1284, 1293, 1298, 1300, 1304, 1307, 1309, 1314, 1316,
394 1318, 1321, 1324, 1326, 1329, 1331, 1334, 1336, 1338, 1340,
395 1343, 1345, 1348, 1351, 1355, 1357, 1361, 1363, 1367, 1369,
396 1371, 1375, 1376, 1379, 1380, 1385, 1390, 1392, 1394, 1397,
397 1399, 1401, 1404, 1405, 1407, 1413, 1416, 1420, 1424, 1429,
398 1433, 1438, 1443, 1449, 1451, 1453, 1455, 1457, 1459, 1461,
399 1463, 1465, 1467, 1470, 1472, 1474, 1476, 1479, 1482, 1490,
400 1497, 1500, 1501, 1502, 1513, 1514, 1521, 1523, 1525, 1527,
401 1529, 1532, 1534, 1536, 1538, 1540, 1542, 1544, 1546, 1550,
402 1552, 1555, 1558, 1561, 1563, 1565, 1567, 1569, 1571, 1573,
403 1575, 1577, 1579, 1581, 1585, 1587, 1589, 1592, 1595, 1596,
404 1601, 1602, 1608, 1609, 1613, 1614, 1619, 1623, 1626, 1630,
405 1631, 1632, 1633, 1634, 1635, 1637, 1640, 1643, 1647, 1650,
406 1654, 1658, 1663, 1666, 1669, 1673, 1677, 1682, 1684, 1687,
407 1689, 1692, 1694, 1697, 1699, 1702, 1704, 1707, 1709, 1714,
408 1717, 1718, 1724, 1725, 1732, 1737, 1742, 1743, 1744, 1755,
409 1757, 1758, 1763, 1765, 1767, 1769, 1771, 1773, 1777, 1779,
410 1784, 1788, 1793, 1800, 1806, 1812, 1815, 1818, 1820, 1823,
411 1826, 1829, 1832, 1835, 1838, 1841, 1844, 1846, 1848, 1853,
412 1855, 1859, 1863, 1867, 1869, 1873, 1877, 1879, 1883, 1887,
413 1889, 1893, 1897, 1901, 1905, 1907, 1911, 1915, 1917, 1921,
414 1923, 1927, 1929, 1933, 1935, 1939, 1941, 1945, 1947, 1948,
415 1949, 1957, 1959, 1963, 1967, 1971, 1975, 1979, 1983, 1987,
416 1991, 1995, 1999, 2003, 2005, 2006, 2008, 2011, 2019, 2022,
417 2025, 2033, 2040, 2043, 2047, 2050, 2054, 2057, 2061, 2065,
418 2069, 2073, 2076, 2080, 2081, 2083, 2085, 2087, 2089, 2091,
422 static const short yyrhs[] = { -1,
423 191, 0, 192, 0, 191, 192, 0, 260, 429, 0,
424 193, 0, 194, 0, 204, 0, 207, 0, 297, 0,
425 1, 0, 75, 317, 330, 340, 330, 429, 305, 88,
426 0, 75, 317, 330, 340, 330, 23, 305, 310, 309,
427 429, 88, 0, 0, 76, 195, 196, 429, 88, 0,
428 197, 0, 317, 330, 197, 0, 201, 0, 344, 201,
429 0, 431, 0, 305, 24, 330, 340, 305, 25, 0,
430 198, 26, 27, 0, 198, 26, 305, 296, 27, 330,
431 0, 0, 198, 306, 24, 25, 199, 209, 211, 0,
432 0, 198, 306, 24, 341, 25, 200, 209, 211, 0,
433 431, 0, 305, 24, 330, 197, 305, 25, 0, 201,
434 26, 27, 0, 201, 26, 305, 296, 27, 330, 0,
435 0, 201, 306, 24, 25, 202, 227, 0, 0, 201,
436 306, 24, 341, 25, 203, 227, 0, 0, 0, 77,
437 431, 24, 341, 25, 205, 227, 206, 429, 88, 0,
438 89, 370, 92, 0, 90, 357, 92, 0, 91, 358,
439 92, 0, 89, 92, 0, 256, 0, 0, 210, 229,
440 0, 0, 212, 213, 0, 216, 214, 0, 0, 215,
441 178, 218, 88, 0, 0, 0, 217, 177, 218, 88,
442 0, 0, 219, 218, 0, 219, 0, 222, 221, 222,
443 18, 0, 180, 0, 181, 0, 52, 0, 51, 0,
444 53, 0, 223, 0, 225, 24, 222, 25, 0, 24,
445 222, 226, 222, 25, 0, 224, 0, 186, 0, 430,
446 0, 184, 0, 224, 26, 27, 0, 224, 26, 186,
447 27, 0, 34, 224, 0, 24, 224, 25, 0, 224,
448 28, 431, 0, 224, 44, 431, 0, 220, 0, 33,
449 0, 32, 0, 0, 0, 230, 0, 0, 228, 230,
450 0, 237, 0, 231, 237, 0, 240, 0, 231, 240,
451 0, 253, 0, 253, 231, 0, 233, 0, 232, 21,
452 233, 0, 236, 234, 0, 430, 0, 184, 0, 86,
453 0, 87, 0, 116, 0, 117, 0, 130, 0, 0,
454 235, 236, 0, 0, 72, 238, 390, 429, 88, 243,
455 0, 0, 72, 239, 232, 429, 88, 243, 0, 74,
456 0, 244, 0, 0, 0, 72, 241, 390, 429, 243,
457 0, 0, 72, 242, 232, 429, 243, 0, 74, 0,
458 246, 0, 0, 244, 0, 0, 0, 73, 245, 261,
459 0, 0, 73, 247, 262, 0, 78, 0, 79, 0,
460 80, 0, 81, 0, 82, 0, 88, 0, 88, 0,
461 83, 0, 84, 0, 119, 0, 137, 0, 135, 0,
462 133, 0, 132, 0, 121, 0, 138, 0, 150, 0,
463 0, 248, 330, 254, 267, 429, 250, 305, 0, 0,
464 251, 330, 252, 255, 267, 429, 249, 305, 0, 340,
465 0, 317, 330, 340, 0, 0, 19, 258, 386, 0,
466 0, 390, 259, 379, 0, 208, 257, 0, 265, 429,
467 88, 0, 429, 88, 0, 265, 429, 0, 429, 0,
468 430, 0, 184, 0, 263, 26, 27, 0, 263, 26,
469 264, 27, 0, 34, 263, 0, 24, 263, 25, 0,
470 263, 28, 431, 0, 263, 44, 431, 0, 263, 0,
471 186, 0, 263, 0, 265, 21, 263, 0, 430, 0,
472 184, 0, 266, 26, 27, 0, 266, 26, 264, 27,
473 0, 34, 266, 0, 24, 266, 25, 0, 266, 28,
474 431, 0, 266, 44, 431, 0, 266, 0, 267, 21,
475 266, 0, 430, 0, 184, 0, 186, 0, 24, 294,
476 25, 0, 185, 0, 111, 0, 268, 0, 269, 26,
477 294, 27, 0, 269, 24, 25, 0, 269, 24, 270,
478 25, 0, 70, 24, 293, 21, 352, 25, 0, 269,
479 330, 28, 431, 305, 0, 269, 330, 44, 431, 305,
480 0, 269, 47, 0, 269, 48, 0, 293, 0, 270,
481 21, 293, 0, 269, 0, 47, 271, 0, 48, 271,
482 0, 29, 277, 0, 34, 277, 0, 33, 277, 0,
483 32, 277, 0, 31, 277, 0, 30, 277, 0, 274,
484 0, 273, 0, 272, 28, 431, 0, 431, 0, 46,
485 305, 24, 352, 330, 21, 272, 25, 305, 0, 0,
486 305, 275, 276, 0, 42, 24, 352, 25, 0, 42,
487 271, 0, 43, 24, 352, 25, 0, 43, 271, 0,
488 271, 0, 24, 352, 25, 277, 0, 277, 0, 278,
489 34, 277, 0, 278, 35, 277, 0, 278, 36, 277,
490 0, 278, 0, 279, 33, 278, 0, 279, 32, 278,
491 0, 279, 0, 280, 49, 279, 0, 280, 50, 279,
492 0, 280, 0, 281, 37, 280, 0, 281, 38, 280,
493 0, 281, 51, 280, 0, 281, 52, 280, 0, 281,
494 0, 282, 53, 281, 0, 282, 54, 281, 0, 282,
495 0, 283, 29, 282, 0, 283, 0, 284, 39, 283,
496 0, 284, 0, 285, 40, 284, 0, 285, 0, 0,
497 286, 55, 287, 285, 0, 286, 0, 0, 288, 56,
498 289, 286, 0, 288, 0, 0, 0, 288, 41, 291,
499 294, 22, 292, 290, 0, 290, 0, 271, 23, 293,
500 0, 271, 57, 293, 0, 271, 58, 293, 0, 271,
501 59, 293, 0, 271, 60, 293, 0, 271, 61, 293,
502 0, 271, 62, 293, 0, 271, 63, 293, 0, 271,
503 64, 293, 0, 271, 65, 293, 0, 271, 66, 293,
504 0, 293, 0, 294, 21, 293, 0, 0, 294, 0,
505 290, 0, 298, 0, 71, 0, 303, 0, 317, 305,
506 18, 0, 0, 317, 330, 340, 330, 299, 305, 309,
507 18, 305, 0, 0, 317, 330, 340, 330, 23, 300,
508 305, 310, 309, 18, 305, 0, 340, 330, 0, 0,
509 340, 330, 23, 302, 305, 310, 0, 0, 45, 317,
510 304, 330, 307, 305, 18, 0, 45, 317, 305, 18,
511 0, 45, 307, 305, 18, 0, 0, 0, 308, 305,
512 0, 301, 0, 307, 21, 330, 301, 0, 0, 309,
513 21, 330, 301, 0, 293, 0, 19, 311, 20, 0,
514 19, 311, 21, 20, 0, 310, 0, 311, 21, 310,
515 0, 112, 0, 110, 0, 113, 0, 114, 0, 115,
516 0, 108, 305, 0, 109, 305, 0, 116, 305, 0,
517 117, 305, 0, 130, 305, 0, 131, 305, 0, 132,
518 305, 0, 133, 305, 0, 118, 305, 0, 120, 305,
519 0, 119, 305, 0, 128, 305, 0, 129, 305, 0,
520 121, 305, 0, 123, 305, 0, 139, 305, 0, 140,
521 305, 0, 142, 305, 0, 143, 305, 0, 141, 305,
522 0, 136, 305, 0, 151, 305, 0, 134, 305, 0,
523 135, 305, 0, 137, 305, 0, 124, 305, 0, 127,
524 305, 0, 125, 305, 0, 126, 305, 0, 156, 305,
525 0, 157, 305, 0, 148, 305, 0, 158, 305, 0,
526 149, 305, 0, 152, 305, 0, 153, 305, 0, 154,
527 305, 0, 155, 305, 0, 150, 305, 0, 159, 305,
528 0, 160, 305, 0, 163, 305, 0, 164, 305, 0,
529 161, 305, 0, 162, 305, 0, 175, 305, 0, 147,
530 0, 144, 0, 145, 0, 146, 0, 165, 330, 0,
531 167, 330, 0, 166, 330, 0, 168, 330, 0, 169,
532 330, 0, 170, 330, 0, 171, 330, 0, 172, 330,
533 0, 173, 330, 0, 174, 330, 0, 432, 330, 0,
534 321, 330, 0, 335, 330, 0, 314, 330, 0, 305,
535 317, 305, 0, 319, 0, 319, 85, 318, 88, 0,
536 352, 0, 352, 21, 318, 0, 312, 320, 0, 313,
537 320, 0, 315, 320, 0, 0, 317, 0, 0, 0,
538 330, 67, 431, 305, 19, 322, 383, 331, 384, 323,
539 20, 0, 0, 0, 330, 68, 431, 305, 19, 324,
540 383, 331, 384, 325, 20, 0, 330, 67, 431, 305,
541 19, 20, 0, 330, 68, 431, 305, 19, 20, 0,
542 0, 0, 330, 67, 305, 19, 326, 383, 331, 384,
543 327, 20, 0, 0, 0, 330, 68, 305, 19, 328,
544 383, 331, 384, 329, 20, 0, 330, 67, 305, 19,
545 20, 0, 330, 68, 305, 19, 20, 0, 330, 67,
546 431, 330, 0, 330, 68, 431, 330, 0, 0, 332,
547 0, 207, 0, 331, 332, 0, 317, 330, 333, 305,
548 18, 0, 317, 305, 18, 0, 334, 330, 0, 333,
549 21, 334, 330, 0, 340, 0, 22, 305, 296, 0,
550 340, 22, 305, 296, 0, 330, 69, 19, 337, 20,
551 305, 0, 0, 330, 69, 431, 19, 336, 337, 20,
552 305, 0, 330, 69, 431, 305, 0, 338, 0, 337,
553 21, 338, 0, 337, 21, 0, 431, 0, 431, 23,
554 305, 296, 0, 198, 0, 354, 0, 344, 189, 0,
555 344, 339, 0, 198, 0, 344, 198, 0, 347, 0,
556 330, 345, 0, 108, 0, 109, 0, 342, 0, 343,
557 342, 0, 34, 0, 34, 343, 0, 34, 344, 0,
558 34, 343, 344, 0, 346, 0, 346, 21, 5, 0,
559 431, 0, 346, 21, 431, 0, 5, 0, 348, 0,
560 348, 21, 5, 0, 0, 349, 351, 0, 0, 348,
561 21, 350, 351, 0, 305, 317, 339, 305, 0, 431,
562 0, 316, 0, 316, 353, 0, 344, 0, 355, 0,
563 344, 355, 0, 0, 355, 0, 305, 24, 330, 353,
564 25, 0, 26, 27, 0, 26, 296, 27, 0, 355,
565 26, 27, 0, 355, 26, 296, 27, 0, 305, 24,
566 25, 0, 305, 24, 347, 25, 0, 355, 305, 24,
567 25, 0, 355, 305, 24, 347, 25, 0, 372, 0,
568 373, 0, 376, 0, 379, 0, 392, 0, 395, 0,
569 426, 0, 400, 0, 428, 0, 22, 431, 0, 359,
570 0, 357, 0, 366, 0, 359, 366, 0, 399, 359,
571 0, 425, 371, 11, 24, 294, 25, 18, 0, 425,
572 371, 11, 24, 294, 25, 0, 361, 366, 0, 0,
573 0, 13, 24, 295, 18, 295, 18, 362, 295, 363,
574 25, 0, 0, 187, 381, 24, 365, 403, 25, 0,
575 188, 0, 372, 0, 373, 0, 376, 0, 368, 390,
576 0, 368, 0, 369, 0, 392, 0, 367, 0, 360,
577 0, 364, 0, 428, 0, 24, 366, 25, 0, 1,
578 0, 394, 366, 0, 381, 19, 0, 385, 20, 0,
579 371, 0, 389, 0, 372, 0, 373, 0, 376, 0,
580 380, 0, 393, 0, 395, 0, 400, 0, 427, 0,
581 24, 371, 25, 0, 428, 0, 1, 0, 431, 22,
582 0, 107, 356, 0, 0, 6, 296, 374, 22, 0,
583 0, 98, 6, 296, 375, 22, 0, 0, 7, 377,
584 22, 0, 0, 98, 7, 378, 22, 0, 24, 379,
585 25, 0, 381, 387, 0, 381, 388, 382, 0, 0,
586 0, 0, 0, 0, 20, 0, 107, 20, 0, 391,
587 20, 0, 391, 107, 20, 0, 390, 20, 0, 390,
588 107, 20, 0, 390, 391, 20, 0, 390, 391, 107,
589 20, 0, 19, 386, 0, 19, 20, 0, 19, 389,
590 20, 0, 19, 390, 20, 0, 19, 390, 391, 20,
591 0, 371, 0, 389, 371, 0, 297, 0, 390, 297,
592 0, 356, 0, 391, 356, 0, 18, 0, 294, 18,
593 0, 18, 0, 294, 18, 0, 294, 0, 8, 24,
594 294, 25, 0, 394, 356, 0, 0, 394, 356, 9,
595 396, 356, 0, 0, 10, 24, 294, 397, 25, 356,
596 0, 11, 24, 294, 25, 0, 11, 24, 294, 25,
597 0, 0, 0, 187, 401, 381, 24, 402, 403, 25,
598 379, 424, 382, 0, 405, 0, 0, 403, 404, 21,
599 405, 0, 423, 0, 430, 0, 185, 0, 184, 0,
600 186, 0, 24, 294, 25, 0, 406, 0, 269, 26,
601 294, 27, 0, 269, 24, 25, 0, 269, 24, 270,
602 25, 0, 70, 24, 293, 21, 352, 25, 0, 269,
603 330, 28, 431, 305, 0, 269, 330, 44, 431, 305,
604 0, 269, 47, 0, 269, 48, 0, 407, 0, 47,
605 271, 0, 48, 271, 0, 29, 277, 0, 34, 277,
606 0, 33, 277, 0, 32, 277, 0, 31, 277, 0,
607 30, 277, 0, 274, 0, 408, 0, 24, 352, 25,
608 277, 0, 409, 0, 278, 34, 277, 0, 278, 35,
609 277, 0, 278, 36, 277, 0, 410, 0, 279, 33,
610 278, 0, 279, 32, 278, 0, 411, 0, 280, 49,
611 279, 0, 280, 50, 279, 0, 412, 0, 281, 37,
612 280, 0, 281, 38, 280, 0, 281, 51, 280, 0,
613 281, 52, 280, 0, 413, 0, 282, 53, 281, 0,
614 282, 54, 281, 0, 414, 0, 283, 29, 282, 0,
615 415, 0, 284, 39, 283, 0, 416, 0, 285, 40,
616 284, 0, 417, 0, 286, 55, 285, 0, 418, 0,
617 288, 56, 286, 0, 419, 0, 0, 0, 288, 41,
618 421, 294, 22, 422, 290, 0, 420, 0, 271, 23,
619 293, 0, 271, 57, 293, 0, 271, 58, 293, 0,
620 271, 59, 293, 0, 271, 60, 293, 0, 271, 61,
621 293, 0, 271, 62, 293, 0, 271, 63, 293, 0,
622 271, 64, 293, 0, 271, 65, 293, 0, 271, 66,
623 293, 0, 188, 0, 0, 12, 0, 398, 356, 0,
624 425, 356, 11, 24, 294, 25, 18, 0, 361, 356,
625 0, 398, 371, 0, 425, 371, 11, 24, 294, 25,
626 18, 0, 425, 371, 11, 24, 294, 25, 0, 361,
627 371, 0, 14, 431, 18, 0, 15, 18, 0, 97,
628 15, 18, 0, 16, 18, 0, 93, 16, 18, 0,
629 94, 16, 18, 0, 95, 16, 18, 0, 96, 16,
630 18, 0, 17, 18, 0, 17, 294, 18, 0, 0,
631 18, 0, 183, 0, 184, 0, 187, 0, 188, 0,
632 430, 0, 185, 0, 189, 0, 185, 0
638 static const short yyrline[] = { 0,
639 269, 270, 273, 274, 277, 278, 279, 280, 281, 282,
640 283, 286, 288, 292, 292, 297, 303, 307, 308, 312,
641 313, 315, 317, 321, 324, 332, 335, 344, 345, 347,
642 349, 365, 369, 376, 380, 386, 388, 388, 392, 393,
643 394, 395, 398, 401, 402, 408, 409, 413, 417, 422,
644 429, 433, 438, 445, 448, 449, 452, 457, 458, 461,
645 462, 463, 466, 467, 468, 473, 474, 482, 485, 487,
646 488, 493, 494, 495, 497, 513, 517, 518, 523, 524,
647 534, 535, 538, 539, 542, 543, 546, 547, 550, 551,
648 554, 557, 558, 561, 562, 563, 564, 565, 568, 569,
649 572, 572, 575, 575, 578, 582, 583, 586, 586, 589,
650 589, 592, 596, 597, 600, 601, 604, 610, 617, 623,
651 630, 631, 632, 633, 634, 637, 640, 643, 644, 647,
652 648, 649, 650, 651, 652, 653, 654, 657, 663, 670,
653 676, 685, 691, 695, 697, 701, 704, 711, 721, 722,
654 725, 726, 729, 730, 731, 732, 733, 734, 735, 736,
655 740, 741, 745, 746, 749, 751, 753, 754, 755, 756,
656 757, 759, 763, 767, 779, 780, 781, 782, 783, 784,
657 787, 788, 789, 790, 791, 792, 793, 794, 795, 798,
658 799, 802, 803, 804, 805, 806, 807, 808, 809, 810,
659 811, 812, 815, 816, 819, 823, 824, 827, 828, 829,
660 830, 833, 834, 838, 839, 840, 841, 844, 845, 846,
661 849, 850, 851, 854, 855, 856, 857, 858, 861, 862,
662 863, 866, 867, 870, 871, 875, 876, 879, 880, 885,
663 891, 892, 898, 904, 905, 905, 907, 910, 911, 912,
664 913, 914, 915, 916, 917, 918, 919, 920, 921, 924,
665 925, 928, 929, 932, 937, 938, 939, 942, 955, 959,
666 960, 963, 968, 969, 969, 974, 975, 976, 977, 980,
667 983, 986, 989, 990, 993, 994, 997, 998, 999, 1003,
668 1005, 1014, 1015, 1016, 1017, 1018, 1021, 1022, 1023, 1024,
669 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034,
670 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044,
671 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054,
672 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064,
673 1065, 1066, 1072, 1073, 1074, 1075, 1078, 1079, 1080, 1081,
674 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091,
675 1094, 1098, 1099, 1103, 1104, 1108, 1109, 1110, 1113, 1114,
676 1117, 1119, 1121, 1122, 1124, 1126, 1127, 1129, 1131, 1133,
677 1135, 1136, 1138, 1140, 1141, 1143, 1145, 1146, 1149, 1152,
678 1153, 1154, 1157, 1159, 1163, 1165, 1169, 1170, 1171, 1175,
679 1177, 1177, 1179, 1182, 1184, 1186, 1189, 1194, 1201, 1202,
680 1203, 1210, 1214, 1215, 1219, 1220, 1223, 1224, 1227, 1228,
681 1231, 1232, 1233, 1234, 1237, 1238, 1241, 1242, 1245, 1246,
682 1247, 1250, 1250, 1251, 1252, 1255, 1267, 1283, 1284, 1287,
683 1288, 1289, 1292, 1293, 1296, 1298, 1299, 1301, 1302, 1304,
684 1306, 1308, 1310, 1316, 1317, 1318, 1319, 1320, 1321, 1322,
685 1323, 1324, 1339, 1344, 1347, 1350, 1351, 1355, 1357, 1359,
686 1361, 1365, 1366, 1368, 1372, 1374, 1376, 1379, 1380, 1381,
687 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391,
688 1394, 1400, 1403, 1406, 1407, 1410, 1411, 1412, 1413, 1414,
689 1415, 1416, 1417, 1418, 1419, 1420, 1423, 1424, 1430, 1431,
690 1432, 1433, 1436, 1437, 1438, 1439, 1442, 1443, 1447, 1450,
691 1453, 1456, 1459, 1462, 1465, 1466, 1467, 1468, 1470, 1471,
692 1473, 1475, 1482, 1486, 1488, 1490, 1492, 1496, 1497, 1500,
693 1501, 1504, 1505, 1508, 1509, 1512, 1513, 1514, 1517, 1525,
694 1530, 1531, 1535, 1536, 1539, 1544, 1547, 1548, 1549, 1557,
695 1558, 1558, 1562, 1563, 1564, 1575, 1582, 1583, 1586, 1587,
696 1588, 1589, 1590, 1592, 1593, 1594, 1595, 1598, 1599, 1600,
697 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1610, 1611, 1614,
698 1615, 1616, 1617, 1620, 1621, 1622, 1625, 1626, 1627, 1630,
699 1631, 1632, 1633, 1634, 1637, 1638, 1639, 1642, 1643, 1646,
700 1647, 1651, 1652, 1655, 1656, 1659, 1660, 1663, 1664, 1665,
701 1666, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677,
702 1678, 1679, 1680, 1683, 1684, 1687, 1690, 1692, 1694, 1698,
703 1699, 1701, 1703, 1706, 1707, 1708, 1710, 1711, 1712, 1713,
704 1714, 1715, 1716, 1719, 1720, 1723, 1726, 1727, 1728, 1729,
710 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
712 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
713 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
714 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
715 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
716 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
717 "TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP",
718 "DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP",
719 "MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
720 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
721 "VA_ARG","VA_DCL","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION","QITER",
722 "QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
723 "QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND","TENDMACRO",
724 "QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE","QFALLTHROUGH",
725 "QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED","QPRINTFLIKE",
726 "QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST","QVOLATILE",
727 "QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT","QIN",
728 "QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED",
729 "QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED",
730 "QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT",
731 "QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT",
732 "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE",
733 "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF",
734 "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE",
735 "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED",
736 "QSETBUFFERSIZE","QBUFFERCONSTRAINT","QENSURESCONSTRAINT","QSETSTRINGLENGTH",
737 "QMAXSET","QMAXREAD","QTESTINRANGE","IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID",
738 "CCONSTANT","ITER_NAME","ITER_ENDNAME","TYPE_NAME","file","externalDefs","externalDef",
739 "constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2",
740 "@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
741 "optGlobMods","@8","optGlobBufConstraints","@9","optGlobBufConstraintsRest",
742 "optGlobEnsuresConstraintsAux","@10","optGlobBufConstraintsAux","@11","BufConstraintList",
743 "BufConstraint","bufferModifier","relationalOp","BufConstraintExpr","BufConstraintTerm",
744 "BufConstraintSrefExpr","BufUnaryOp","BufBinaryOp","optPlainGlobMods","@13",
745 "optGlobModsRest","optPlainGlobModsRest","specialClauses","globIdList","globIdListExpr",
746 "globId","globQual","optGlobQuals","optGlobModsAux","@14","@15","optPlainGlobModsAux",
747 "@16","@17","optMods","fcnMods","@18","fcnPlainMods","@19","specialTag","endStateTag",
748 "endSpecialTag","stateSpecialClause","specialClauseType","specialClause","@20",
749 "@21","fcnDefHdrAux","fcnBody","@22","@23","fcnDef","locModifies","locPlainModifies",
750 "modListExpr","mExpr","modList","specClauseListExpr","specClauseList","primaryExpr",
751 "postfixExpr","argumentExprList","unaryExpr","fieldDesignator","offsetofExpr",
752 "sizeofExpr","@24","sizeofExprAux","castExpr","timesExpr","plusExpr","shiftExpr",
753 "relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr","andExpr",
754 "@25","orExpr","@26","conditionalExpr","@27","@28","assignExpr","expr","optExpr",
755 "constantExpr","initializer","instanceDecl","@29","@30","namedInitializer","@31",
756 "typeDecl","@32","IsType","PushType","namedInitializerList","namedInitializerListAux",
757 "optDeclarators","init","initList","storageSpecifier","typeQualifier","typeModifier",
758 "typeSpecifier","completeType","completeTypeSpecifier","altType","completeTypeSpecifierAux",
759 "optCompleteType","suSpc","@33","@34","@35","@36","@37","@38","@39","@40","NotType",
760 "structDeclList","structDecl","structNamedDeclList","structNamedDecl","enumSpc",
761 "@41","enumeratorList","enumerator","optNamedDecl","namedDecl","genericParamList",
762 "innerMods","innerModsList","pointers","paramIdList","idList","paramTypeList",
763 "paramList","@42","@43","paramDecl","typeExpression","abstractDecl","optAbstractDeclBase",
764 "abstractDeclBase","stmt","iterBody","endBody","iterDefStmtList","iterDefIterationStmt",
765 "forPred","@44","@45","partialIterStmt","@46","iterDefStmt","iterSelectionStmt",
766 "openScope","closeScope","macroBody","stmtErr","labeledStmt","caseStmt","@47",
767 "@48","defaultStmt","@49","@50","compoundStmt","compoundStmtErr","CreateInnerScope",
768 "DeleteInnerScope","CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe",
769 "compoundStmtRest","compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList",
770 "stmtList","expressionStmt","expressionStmtErr","ifPred","selectionStmt","@51",
771 "@52","whilePred","iterWhilePred","iterStmt","@53","@54","iterArgList","@55",
772 "iterArgExpr","primaryIterExpr","postfixIterExpr","unaryIterExpr","castIterExpr",
773 "timesIterExpr","plusIterExpr","shiftIterExpr","relationalIterExpr","equalityIterExpr",
774 "bitandIterExpr","xorIterExpr","bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr",
775 "@56","@57","assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr",
776 "jumpStmt","optSemi","id","newId","typeName", NULL
780 static const short yyr1[] = { 0,
781 190, 190, 191, 191, 192, 192, 192, 192, 192, 192,
782 192, 193, 193, 195, 194, 196, 196, 197, 197, 198,
783 198, 198, 198, 199, 198, 200, 198, 201, 201, 201,
784 201, 202, 201, 203, 201, 205, 206, 204, 207, 207,
785 207, 207, 208, 210, 209, 212, 211, 213, 215, 214,
786 214, 217, 216, 216, 218, 218, 219, 220, 220, 221,
787 221, 221, 222, 222, 222, 223, 223, 224, 224, 224,
788 224, 224, 224, 224, 224, 225, 226, 226, -1, -1,
789 228, 227, 229, 229, 230, 230, 231, 231, 232, 232,
790 233, 234, 234, 235, 235, 235, 235, 235, 236, 236,
791 238, 237, 239, 237, 237, 237, 237, 241, 240, 242,
792 240, 240, 240, 240, 243, 243, 245, 244, 247, 246,
793 248, 248, 248, 248, 248, 249, 250, 251, 251, 252,
794 252, 252, 252, 252, 252, 252, 252, 254, 253, 255,
795 253, 256, 256, 258, 257, 259, 257, 260, 261, 261,
796 262, 262, 263, 263, 263, 263, 263, 263, 263, 263,
797 264, 264, 265, 265, 266, 266, 266, 266, 266, 266,
798 266, 266, 267, 267, 268, 268, 268, 268, 268, 268,
799 269, 269, 269, 269, 269, 269, 269, 269, 269, 270,
800 270, 271, 271, 271, 271, 271, 271, 271, 271, 271,
801 271, 271, 272, 272, 273, 275, 274, 276, 276, 276,
802 276, 277, 277, 278, 278, 278, 278, 279, 279, 279,
803 280, 280, 280, 281, 281, 281, 281, 281, 282, 282,
804 282, 283, 283, 284, 284, 285, 285, 286, 287, 286,
805 288, 289, 288, 290, 291, 292, 290, 293, 293, 293,
806 293, 293, 293, 293, 293, 293, 293, 293, 293, 294,
807 294, 295, 295, 296, 297, 297, 297, 298, 299, 298,
808 300, 298, 301, 302, 301, 304, 303, 303, 303, 305,
809 306, 307, 308, 308, 309, 309, 310, 310, 310, 311,
810 311, 312, 312, 312, 312, 312, 313, 313, 313, 313,
811 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
812 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
813 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
814 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
815 313, 313, 314, 314, 314, 314, 315, 315, 315, 315,
816 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
817 316, 317, 317, 318, 318, 319, 319, 319, 320, 320,
818 322, 323, 321, 324, 325, 321, 321, 321, 326, 327,
819 321, 328, 329, 321, 321, 321, 321, 321, 330, 331,
820 331, 331, 332, 332, 333, 333, 334, 334, 334, 335,
821 336, 335, 335, 337, 337, 337, 338, 338, 339, 339,
822 339, 339, 340, 340, 341, 341, 342, 342, 343, 343,
823 344, 344, 344, 344, 345, 345, 346, 346, 347, 347,
824 347, 349, 348, 350, 348, 351, 351, 352, 352, 353,
825 353, 353, 354, 354, 355, 355, 355, 355, 355, 355,
826 355, 355, 355, 356, 356, 356, 356, 356, 356, 356,
827 356, 356, -1, 357, 358, 359, 359, 360, 360, 360,
828 360, 362, 363, 361, 365, 364, 364, 366, 366, 366,
829 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
830 367, 368, 369, 370, 370, 371, 371, 371, 371, 371,
831 371, 371, 371, 371, 371, 371, 372, 372, 374, 373,
832 375, 373, 377, 376, 378, 376, 379, 379, 380, 381,
833 382, 383, 384, 385, 386, 386, 386, 386, 386, 386,
834 386, 386, 387, 388, 388, 388, 388, 389, 389, 390,
835 390, 391, 391, 392, 392, 393, 393, 393, 394, 395,
836 396, 395, 397, 395, 398, 399, 401, 402, 400, 403,
837 404, 403, 405, 405, 405, 405, 406, 406, 407, 407,
838 407, 407, 407, 407, 407, 407, 407, 408, 408, 408,
839 408, 408, 408, 408, 408, 408, 408, 409, 409, 410,
840 410, 410, 410, 411, 411, 411, 412, 412, 412, 413,
841 413, 413, 413, 413, 414, 414, 414, 415, 415, 416,
842 416, 417, 417, 418, 418, 419, 419, 420, 421, 422,
843 420, 423, 423, 423, 423, 423, 423, 423, 423, 423,
844 423, 423, 423, 424, 424, 425, 426, 426, 426, 427,
845 427, 427, 427, 428, 428, 428, 428, 428, 428, 428,
846 428, 428, 428, 429, 429, 430, 431, 431, 431, 431,
850 static const short yyr2[] = { 0,
851 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
852 1, 8, 11, 0, 5, 1, 3, 1, 2, 1,
853 6, 3, 6, 0, 7, 0, 8, 1, 6, 3,
854 6, 0, 6, 0, 7, 0, 0, 10, 3, 3,
855 3, 2, 1, 0, 2, 0, 2, 2, 0, 4,
856 0, 0, 4, 0, 2, 1, 4, 1, 1, 1,
857 1, 1, 1, 4, 5, 1, 1, 1, 1, 3,
858 4, 2, 3, 3, 3, 1, 1, 1, 0, 2,
859 0, 2, 1, 2, 1, 2, 1, 2, 1, 3,
860 2, 1, 1, 1, 1, 1, 1, 1, 0, 2,
861 0, 6, 0, 6, 1, 1, 0, 0, 5, 0,
862 5, 1, 1, 0, 1, 0, 0, 3, 0, 3,
863 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
864 1, 1, 1, 1, 1, 1, 1, 0, 7, 0,
865 8, 1, 3, 0, 3, 0, 3, 2, 3, 2,
866 2, 1, 1, 1, 3, 4, 2, 3, 3, 3,
867 1, 1, 1, 3, 1, 1, 3, 4, 2, 3,
868 3, 3, 1, 3, 1, 1, 1, 3, 1, 1,
869 1, 4, 3, 4, 6, 5, 5, 2, 2, 1,
870 3, 1, 2, 2, 2, 2, 2, 2, 2, 2,
871 1, 1, 3, 1, 9, 0, 3, 4, 2, 4,
872 2, 1, 4, 1, 3, 3, 3, 1, 3, 3,
873 1, 3, 3, 1, 3, 3, 3, 3, 1, 3,
874 3, 1, 3, 1, 3, 1, 3, 1, 0, 4,
875 1, 0, 4, 1, 0, 0, 7, 1, 3, 3,
876 3, 3, 3, 3, 3, 3, 3, 3, 3, 1,
877 3, 0, 1, 1, 1, 1, 1, 3, 0, 9,
878 0, 11, 2, 0, 6, 0, 7, 4, 4, 0,
879 0, 2, 1, 4, 0, 4, 1, 3, 4, 1,
880 3, 1, 1, 1, 1, 1, 2, 2, 2, 2,
881 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
882 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
883 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
884 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
885 2, 2, 1, 1, 1, 1, 2, 2, 2, 2,
886 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
887 3, 1, 4, 1, 3, 2, 2, 2, 0, 1,
888 0, 0, 11, 0, 0, 11, 6, 6, 0, 0,
889 10, 0, 0, 10, 5, 5, 4, 4, 0, 1,
890 1, 2, 5, 3, 2, 4, 1, 3, 4, 6,
891 0, 8, 4, 1, 3, 2, 1, 4, 1, 1,
892 2, 2, 1, 2, 1, 2, 1, 1, 1, 2,
893 1, 2, 2, 3, 1, 3, 1, 3, 1, 1,
894 3, 0, 2, 0, 4, 4, 1, 1, 2, 1,
895 1, 2, 0, 1, 5, 2, 3, 3, 4, 3,
896 4, 4, 5, 1, 1, 1, 1, 1, 1, 1,
897 1, 1, 2, 1, 1, 1, 2, 2, 7, 6,
898 2, 0, 0, 10, 0, 6, 1, 1, 1, 1,
899 2, 1, 1, 1, 1, 1, 1, 1, 3, 1,
900 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
901 1, 1, 1, 3, 1, 1, 2, 2, 0, 4,
902 0, 5, 0, 3, 0, 4, 3, 2, 3, 0,
903 0, 0, 0, 0, 1, 2, 2, 3, 2, 3,
904 3, 4, 2, 2, 3, 3, 4, 1, 2, 1,
905 2, 1, 2, 1, 2, 1, 2, 1, 4, 2,
906 0, 5, 0, 6, 4, 4, 0, 0, 10, 1,
907 0, 4, 1, 1, 1, 1, 1, 3, 1, 4,
908 3, 4, 6, 5, 5, 2, 2, 1, 2, 2,
909 2, 2, 2, 2, 2, 2, 1, 1, 4, 1,
910 3, 3, 3, 1, 3, 3, 1, 3, 3, 1,
911 3, 3, 3, 3, 1, 3, 3, 1, 3, 1,
912 3, 1, 3, 1, 3, 1, 3, 1, 0, 0,
913 7, 1, 3, 3, 3, 3, 3, 3, 3, 3,
914 3, 3, 3, 1, 0, 1, 2, 7, 2, 2,
915 7, 6, 2, 3, 2, 3, 2, 3, 3, 3,
916 3, 2, 3, 0, 1, 1, 1, 1, 1, 1,
920 static const short yydefact[] = { 0,
921 11, 421, 389, 266, 389, 14, 0, 0, 0, 0,
922 280, 280, 293, 292, 294, 295, 296, 280, 280, 280,
923 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
924 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
925 280, 280, 280, 344, 345, 346, 343, 280, 280, 280,
926 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
927 280, 280, 280, 280, 389, 389, 389, 389, 389, 389,
928 389, 389, 389, 389, 280, 656, 657, 661, 658, 659,
929 662, 0, 3, 6, 7, 413, 8, 9, 389, 43,
930 654, 10, 265, 267, 0, 369, 369, 389, 369, 389,
931 362, 389, 0, 389, 142, 280, 660, 20, 389, 417,
932 418, 419, 422, 423, 283, 280, 280, 276, 389, 663,
933 389, 389, 661, 0, 506, 280, 513, 0, 0, 0,
934 636, 0, 0, 0, 0, 280, 546, 0, 280, 280,
935 280, 280, 280, 280, 280, 280, 280, 0, 42, 0,
936 0, 0, 0, 0, 0, 280, 180, 176, 179, 177,
937 557, 181, 192, 212, 202, 201, 214, 218, 221, 224,
938 229, 232, 234, 236, 238, 241, 244, 248, 260, 548,
939 206, 0, 0, 538, 496, 497, 498, 499, 0, 0,
940 500, 280, 501, 0, 502, 0, 503, 505, 175, 0,
941 490, 0, 544, 0, 520, 477, 0, 0, 0, 486,
942 0, 487, 466, 485, 482, 483, 478, 479, 480, 0,
943 0, 484, 0, 0, 0, 488, 465, 0, 297, 298,
944 299, 300, 305, 307, 306, 310, 311, 322, 324, 325,
945 323, 308, 309, 301, 302, 303, 304, 319, 320, 317,
946 321, 312, 313, 316, 314, 315, 328, 330, 335, 318,
947 331, 332, 333, 334, 326, 327, 329, 336, 337, 340,
948 341, 338, 339, 347, 349, 348, 350, 351, 352, 353,
949 354, 355, 356, 342, 4, 280, 0, 144, 148, 540,
950 389, 389, 655, 5, 389, 370, 366, 367, 360, 368,
951 0, 280, 280, 358, 280, 280, 0, 359, 414, 357,
952 420, 424, 389, 0, 282, 389, 0, 273, 280, 654,
953 16, 18, 0, 389, 280, 28, 432, 280, 176, 179,
954 212, 264, 509, 175, 0, 280, 280, 280, 280, 0,
955 645, 647, 652, 0, 0, 389, 438, 0, 0, 195,
956 200, 199, 198, 197, 196, 0, 280, 193, 194, 280,
957 0, 0, 0, 0, 0, 280, 515, 280, 508, 280,
958 454, 455, 456, 457, 0, 458, 459, 280, 461, 280,
959 460, 462, 520, 280, 280, 188, 189, 0, 280, 280,
960 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
961 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
962 280, 280, 280, 280, 280, 239, 245, 242, 547, 280,
963 0, 643, 39, 0, 521, 539, 550, 640, 0, 507,
964 280, 0, 0, 0, 545, 40, 467, 471, 481, 492,
965 493, 491, 0, 0, 41, 22, 280, 432, 389, 280,
966 520, 541, 280, 268, 143, 389, 0, 364, 0, 389,
967 0, 389, 0, 280, 280, 279, 280, 278, 274, 389,
968 0, 280, 0, 389, 280, 19, 429, 0, 0, 415,
969 430, 280, 0, 0, 514, 0, 553, 0, 263, 0,
970 644, 653, 178, 280, 280, 0, 440, 439, 441, 280,
971 504, 280, 0, 648, 649, 650, 651, 646, 511, 0,
972 0, 639, 389, 518, 637, 0, 0, 183, 0, 190,
973 0, 0, 0, 249, 250, 251, 252, 253, 254, 255,
974 256, 257, 258, 259, 215, 216, 217, 220, 219, 222,
975 223, 225, 226, 227, 228, 230, 231, 233, 235, 237,
976 280, 280, 280, 261, 280, 280, 207, 534, 179, 538,
977 0, 389, 519, 551, 0, 0, 489, 475, 0, 0,
978 24, 0, 525, 280, 542, 145, 389, 280, 389, 520,
979 147, 280, 269, 363, 280, 379, 0, 387, 382, 0,
980 388, 0, 404, 407, 401, 403, 284, 280, 280, 654,
981 15, 30, 280, 432, 280, 17, 416, 425, 427, 36,
982 434, 389, 433, 437, 510, 549, 0, 555, 280, 361,
983 446, 0, 432, 442, 280, 0, 213, 389, 280, 0,
984 516, 517, 533, 0, 558, 280, 184, 182, 280, 280,
985 240, 0, 243, 280, 209, 280, 211, 535, 536, 280,
986 280, 280, 556, 280, 280, 389, 44, 26, 526, 529,
987 280, 280, 527, 280, 543, 0, 271, 280, 365, 385,
988 522, 371, 386, 522, 374, 280, 406, 280, 0, 0,
989 280, 280, 280, 0, 32, 0, 280, 0, 81, 431,
990 280, 443, 280, 0, 447, 450, 280, 0, 448, 0,
991 432, 0, 0, 512, 280, 280, 191, 186, 187, 246,
992 0, 0, 537, 552, 0, 280, 280, 280, 280, 280,
993 280, 280, 280, 280, 0, 176, 179, 177, 192, 212,
994 201, 218, 221, 224, 229, 232, 234, 236, 238, 241,
995 0, 561, 560, 569, 578, 588, 590, 594, 597, 600,
996 605, 608, 610, 612, 614, 616, 618, 622, 563, 175,
997 0, 23, 46, 107, 44, 530, 531, 280, 528, 21,
998 280, 285, 389, 377, 522, 389, 378, 522, 400, 405,
999 280, 0, 277, 280, 287, 275, 280, 0, 389, 81,
1000 34, 0, 426, 428, 37, 114, 435, 409, 0, 280,
1001 443, 410, 444, 554, 472, 0, 451, 449, 452, 0,
1002 0, 185, 0, 561, 280, 208, 210, 642, 0, 0,
1003 195, 200, 199, 198, 197, 196, 193, 194, 280, 280,
1004 280, 188, 189, 0, 280, 280, 280, 280, 280, 280,
1005 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
1006 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
1007 280, 239, 619, 242, 476, 0, 470, 25, 54, 101,
1008 117, 105, 121, 122, 123, 124, 125, 128, 129, 45,
1009 107, 83, 106, 389, 389, 87, 46, 532, 280, 0,
1010 391, 389, 389, 390, 389, 389, 389, 408, 280, 290,
1011 0, 285, 12, 31, 33, 81, 29, 654, 108, 119,
1012 112, 82, 114, 85, 113, 432, 436, 411, 412, 280,
1013 445, 453, 0, 204, 0, 520, 247, 641, 178, 280,
1014 0, 183, 0, 0, 0, 0, 623, 624, 625, 626,
1015 627, 628, 629, 630, 631, 632, 633, 215, 216, 217,
1016 220, 219, 222, 223, 225, 226, 227, 228, 230, 231,
1017 233, 235, 237, 615, 280, 617, 280, 469, 47, 51,
1018 0, 389, 99, 654, 84, 138, 0, 88, 27, 285,
1019 280, 389, 0, 280, 392, 380, 389, 383, 389, 402,
1020 288, 280, 654, 35, 0, 389, 99, 654, 86, 280,
1021 473, 280, 0, 638, 635, 213, 280, 184, 182, 280,
1022 280, 0, 562, 48, 0, 0, 389, 94, 95, 96,
1023 97, 98, 654, 89, 99, 0, 0, 0, 154, 118,
1024 163, 654, 0, 153, 0, 130, 135, 134, 133, 132,
1025 131, 136, 137, 140, 0, 270, 280, 394, 280, 280,
1026 389, 397, 0, 372, 0, 375, 289, 291, 0, 38,
1027 654, 654, 120, 654, 152, 280, 0, 205, 203, 634,
1028 521, 0, 186, 187, 620, 0, 0, 0, 58, 59,
1029 69, 67, 0, 56, 76, 0, 63, 66, 0, 68,
1030 0, 99, 0, 100, 93, 91, 92, 0, 157, 0,
1031 0, 0, 0, 0, 150, 0, 0, 166, 173, 654,
1032 165, 0, 280, 286, 280, 280, 0, 395, 280, 381,
1033 0, 384, 0, 13, 116, 116, 151, 474, 559, 185,
1034 280, 0, 0, 66, 0, 72, 53, 55, 61, 60,
1035 62, 0, 0, 0, 0, 0, 116, 90, 116, 158,
1036 155, 162, 161, 0, 159, 160, 164, 149, 0, 169,
1037 0, 0, 0, 0, 0, 654, 272, 398, 389, 393,
1038 280, 373, 376, 109, 115, 111, 621, 50, 78, 77,
1039 0, 73, 0, 0, 70, 0, 74, 75, 0, 102,
1040 104, 156, 170, 167, 0, 171, 172, 174, 127, 280,
1041 0, 396, 399, 0, 57, 71, 64, 168, 139, 126,
1042 280, 65, 141, 0, 0, 0
1045 static const short yydefgoto[] = { 1214,
1046 82, 83, 84, 85, 122, 320, 321, 86, 657, 765,
1047 322, 790, 906, 87, 689, 908, 891, 89, 763, 764,
1048 868, 869, 969, 1014, 1015, 970, 971, 1083, 1084, 1085,
1049 1142, 1086, 1087, 1088, 1089, 1181, 795, 796, 880, 912,
1050 881, 1023, 1024, 1096, 1025, 1026, 882, 972, 973, 914,
1051 996, 997, 1174, 1175, 974, 915, 998, 884, 1211, 1200,
1052 885, 1044, 886, 1035, 1112, 90, 289, 449, 451, 91,
1053 1030, 1063, 1031, 1154, 1032, 1109, 1110, 162, 163, 519,
1054 164, 923, 165, 166, 421, 557, 167, 168, 169, 170,
1055 171, 172, 173, 174, 175, 176, 551, 177, 553, 178,
1056 552, 815, 179, 207, 490, 333, 290, 93, 668, 771,
1057 115, 599, 94, 316, 181, 287, 116, 117, 890, 786,
1058 901, 96, 97, 98, 99, 347, 291, 457, 101, 297,
1059 102, 775, 1121, 778, 1123, 671, 1053, 674, 1055, 103,
1060 893, 894, 1050, 1051, 104, 679, 592, 593, 800, 119,
1061 479, 112, 113, 106, 607, 608, 480, 481, 482, 691,
1062 613, 348, 806, 802, 499, 369, 208, 228, 209, 210,
1063 370, 920, 1067, 212, 654, 213, 214, 215, 216, 183,
1064 426, 371, 372, 484, 630, 373, 335, 510, 374, 188,
1065 375, 563, 773, 986, 221, 576, 514, 425, 190, 577,
1066 578, 376, 191, 192, 377, 651, 617, 378, 224, 379,
1067 383, 706, 742, 866, 743, 744, 745, 746, 747, 748,
1068 749, 750, 751, 752, 753, 754, 755, 756, 757, 758,
1069 965, 1131, 759, 1071, 380, 381, 197, 382, 294, 334,
1073 static const short yypact[] = { 2064,
1074 -32768, 361, 5617,-32768, 6626,-32768, 803, 2992, 3372, 3372,
1075 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1076 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1077 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1078 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1079 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1080 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1081 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 134,-32768,-32768,
1082 -32768, 2240,-32768,-32768,-32768, 273,-32768,-32768, 5145,-32768,
1083 170,-32768,-32768,-32768, 189, 6461, 6461,-32768, 6461, 253,
1084 151,-32768, 654,-32768,-32768, 803,-32768,-32768,-32768,-32768,
1085 -32768,-32768, 361,-32768,-32768, 269,-32768, 253,-32768,-32768,
1086 -32768, 5617,-32768, 319,-32768, 5853,-32768, 330, 337, 351,
1087 -32768, 366, 803, 397, 412, 1980,-32768, 2614, 5853, 5853,
1088 5853, 5853, 5853, 5853,-32768, 5888, 5888, 439,-32768, 457,
1089 463, 494, 516, 502, 479, 4592,-32768, 536, 559,-32768,
1090 579,-32768, 760, 1080,-32768,-32768,-32768, 1076, 538, 94,
1091 585, 554, 604, 549, 588, 598, 111,-32768,-32768, 406,
1092 -32768, 3415, 567, 601,-32768,-32768,-32768,-32768, 689, 3035,
1093 -32768, 4592,-32768, 3415,-32768, 3415,-32768,-32768, 693, 719,
1094 -32768, 728,-32768, 2803, 579, 761, 436, 666, 3182,-32768,
1095 3372,-32768,-32768,-32768, 6221,-32768,-32768,-32768,-32768, 778,
1096 779,-32768, 3372, 3372, 3415,-32768,-32768, 721,-32768,-32768,
1097 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1098 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1099 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1100 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1101 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1102 -32768,-32768,-32768,-32768,-32768, 796, 787,-32768,-32768,-32768,
1103 253, 4988,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1104 788, 541,-32768,-32768, 803, 803, 50,-32768, 273,-32768,
1105 -32768,-32768,-32768, 827,-32768,-32768, 860, 798, 541, 170,
1106 -32768, 514, 861,-32768, 803,-32768, 293, 5853,-32768,-32768,
1107 -32768,-32768,-32768,-32768, 865, 5853, 5853, 5853, 2236, 872,
1108 -32768,-32768,-32768, 450, 291, 6090, 232, 870, 880,-32768,
1109 -32768,-32768,-32768,-32768,-32768, 893, 5853,-32768,-32768, 5853,
1110 913, 919, 924, 939, 942, 5853,-32768, 5404,-32768, 4592,
1111 -32768,-32768,-32768,-32768, 944,-32768,-32768, 4592,-32768, 4592,
1112 -32768,-32768,-32768, 5628, 5853,-32768,-32768, 106, 5853, 5853,
1113 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853,
1114 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853,
1115 5853, 5853, 5853, 5853, 5853,-32768,-32768,-32768,-32768, 5853,
1116 599,-32768,-32768, 2425,-32768,-32768, 970,-32768, 974,-32768,
1117 5853, 529, 967, 977,-32768,-32768,-32768,-32768, 6221,-32768,
1118 -32768,-32768, 1890, 993,-32768,-32768, 5853, 96, 3562, 541,
1119 982,-32768, 541,-32768, 90, 6626, 921, 1022, 1018, 1034,
1120 1037, 1034, 803, 1050, 541,-32768, 541,-32768,-32768,-32768,
1121 926, 1019, 1048,-32768, 541, 514,-32768, 803, 1051,-32768,
1122 1054, 803, 201, 1060,-32768, 302, 1062, 323, 1062, 1075,
1123 -32768,-32768,-32768,-32768, 5791, 1072, 593,-32768, 707, 5853,
1124 -32768,-32768, 1079,-32768,-32768,-32768,-32768,-32768,-32768, 1082,
1125 1083,-32768, 3562,-32768,-32768, 1086, 1077,-32768, 356,-32768,
1126 145, 803, 803,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1127 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1076, 1076, 538,
1128 538, 94, 94, 94, 94, 585, 585, 554, 604, 549,
1129 5853, 5853, 5853,-32768, 5919, 5980,-32768,-32768, 5377,-32768,
1130 3225, 3746,-32768,-32768, 1081, 389,-32768,-32768, 1091, 1093,
1131 -32768, 1100,-32768, 4114,-32768,-32768, 3930, 4157,-32768, 982,
1132 -32768,-32768, 1084,-32768,-32768, 1106, 1114,-32768, 1127, 1129,
1133 -32768, 752,-32768, 1130,-32768,-32768,-32768, 269,-32768, 255,
1134 -32768,-32768, 5853, 250, 541,-32768,-32768, 1134,-32768,-32768,
1135 1159, 6626,-32768,-32768,-32768,-32768, 1140,-32768, 2236,-32768,
1136 -32768, 1141, 578, 707, 5802, 1143,-32768,-32768,-32768, 1161,
1137 -32768,-32768,-32768, 1157,-32768, 5853,-32768,-32768,-32768,-32768,
1138 588, 770, 598, 5853,-32768, 5853,-32768,-32768,-32768, 4259,
1139 4592, 5853,-32768, 6011, 5853,-32768,-32768,-32768,-32768,-32768,
1140 4302, 4404,-32768, 4447,-32768, 1162,-32768,-32768,-32768,-32768,
1141 -32768, 1164,-32768,-32768, 1166,-32768, 803,-32768, 803, 1171,
1142 5538,-32768,-32768, 1163,-32768, 1167,-32768, 346,-32768,-32768,
1143 803, 741, 4592, 1173,-32768,-32768, 143, 1168,-32768, 1169,
1144 122, 1176, 1174,-32768, 5853, 6011,-32768,-32768,-32768,-32768,
1145 1179, 1180,-32768,-32768, 411, 5853, 5853, 5853, 5853, 5853,
1146 5853, 5853, 5888, 5888, 1170, 475, 483, 530, 1016, 1113,
1147 543, 1088, 836, 848, 726, 869, 1172, 1177, 1175, 1151,
1148 156, 1182,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1149 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 566,
1150 572,-32768,-32768, 1007,-32768,-32768,-32768, 4549,-32768,-32768,
1151 -32768,-32768, 6548,-32768,-32768, 6548,-32768,-32768,-32768,-32768,
1152 5853, 891,-32768, 5538,-32768,-32768, 5538, 1124,-32768,-32768,
1153 -32768, 1188,-32768,-32768,-32768, 1257,-32768, 273, 1194,-32768,
1154 641,-32768, 707,-32768,-32768, 1195,-32768,-32768,-32768, 1199,
1155 803,-32768, 629, 1200, 5853,-32768,-32768, 1208, 645, 1203,
1156 777, 784, 814, 837, 846, 875, 889, 909, 5853, 5822,
1157 5853, 915, 922, 137, 5853, 5853, 5853, 5853, 5853, 5853,
1158 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853,
1159 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853,
1160 5853, 5853,-32768, 5853,-32768, 1210, 1214,-32768, 1056, 77,
1161 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1162 1078,-32768,-32768,-32768,-32768, 1221,-32768,-32768, 5538, 477,
1163 -32768, 253, 5223,-32768, 6548, 5223, 6548,-32768,-32768,-32768,
1164 931,-32768,-32768,-32768,-32768,-32768,-32768, 170, 93,-32768,
1165 -32768,-32768, 1085,-32768,-32768, 149,-32768,-32768,-32768, 5833,
1166 -32768,-32768, 623,-32768, 1216, 982,-32768,-32768, 941, 5853,
1167 1215, 952, 953, 241, 803, 803,-32768,-32768,-32768,-32768,
1168 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 992, 995, 1020,
1169 675, 806, 681, 736, 367, 613, 631, 669, 856, 987,
1170 503, 342, 114, 588, 5853, 598, 6011,-32768,-32768, 1057,
1171 1061, 6352, 429, 112,-32768,-32768, 783,-32768,-32768,-32768,
1172 -32768,-32768, 1222, 56,-32768,-32768, 5223,-32768, 5223,-32768,
1173 -32768, 4858, 653,-32768, 1153, 6352, 429, 112,-32768, 501,
1174 -32768,-32768, 803,-32768, 1055, 1027,-32768, 1030, 1033,-32768,
1175 -32768, 950,-32768,-32768, 1068, 218, 4831,-32768,-32768,-32768,
1176 -32768,-32768, 680,-32768, 429, 815, 65, 65,-32768,-32768,
1177 150, 816, 1165,-32768, 117,-32768,-32768,-32768,-32768,-32768,
1178 -32768,-32768,-32768,-32768, 839,-32768, 541,-32768,-32768, 1218,
1179 -32768, 1225, 1229,-32768, 1230,-32768,-32768,-32768, 1181,-32768,
1180 4673, 680,-32768, 816,-32768, 426, 1232,-32768,-32768,-32768,
1181 -32768, 1236, 1040, 1046,-32768, 218, 218, 175,-32768,-32768,
1182 -32768,-32768, 1183, 218,-32768, 1109,-32768, 495, 1231,-32768,
1183 1184, 429, 1186,-32768,-32768,-32768,-32768, 722, 150, 258,
1184 803, 803, 65, 1187,-32768, 117, 117,-32768, 551, 858,
1185 -32768, 117,-32768,-32768, 5853, 56, 1244,-32768,-32768,-32768,
1186 1234,-32768, 1243,-32768, 1191, 1191,-32768,-32768,-32768, 1049,
1187 5853, 1189, 990, 768, 175, 495,-32768,-32768,-32768,-32768,
1188 -32768, 218, 17, 803, 803, 218, 1191,-32768, 1191,-32768,
1189 -32768,-32768, 150, 1238,-32768,-32768, 150,-32768, 794, 551,
1190 432, 803, 803, 117, 1190, 858,-32768,-32768,-32768,-32768,
1191 5853,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1192 218,-32768, 768, 1250,-32768, 1252,-32768,-32768, 1255,-32768,
1193 -32768,-32768,-32768,-32768, 1254,-32768,-32768, 551,-32768,-32768,
1194 1198,-32768,-32768, 1262,-32768,-32768,-32768,-32768,-32768,-32768,
1195 -32768,-32768,-32768, 1290, 1293,-32768
1198 static const short yypgoto[] = {-32768,
1199 -32768, 1213,-32768,-32768,-32768,-32768, -389, -102,-32768,-32768,
1200 971,-32768,-32768,-32768,-32768,-32768, 129,-32768, 532,-32768,
1201 420,-32768,-32768,-32768,-32768,-32768,-32768, -655,-32768,-32768,
1202 -32768, -928,-32768, -907,-32768,-32768, -705,-32768,-32768,-32768,
1203 -691, 311, 217,-32768,-32768, 285, 430,-32768,-32768, 399,
1204 -32768,-32768, -1016, -676,-32768,-32768,-32768,-32768,-32768,-32768,
1205 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1206 -32768,-32768, -581, 155, 324, -570, 211,-32768, -587, 504,
1207 988,-32768,-32768, -583,-32768,-32768, 18, -324, -340, -312,
1208 -309, -367, -346, -341, -506, -461,-32768, -582,-32768, -112,
1209 -32768,-32768, 637, 1237, -610, -353, 1,-32768,-32768,-32768,
1210 -463,-32768,-32768,-32768, 0, -229, 881,-32768, -793, -703,
1211 -32768,-32768,-32768,-32768,-32768,-32768, 326, 740,-32768, 580,
1212 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 782,
1213 -672, -484,-32768, 226,-32768,-32768, 668, 672, 550, 5,
1214 -372, 1239,-32768, 15,-32768,-32768, -576,-32768,-32768,-32768,
1215 659, -233, 1006,-32768, -490, 714, 1345,-32768, 1132,-32768,
1216 745,-32768,-32768,-32768,-32768, -97,-32768,-32768,-32768,-32768,
1217 2, 1311, 1408,-32768,-32768, 1434,-32768,-32768, -360,-32768,
1218 771, 286, -554, -781,-32768, 845,-32768,-32768, 935, -83,
1219 -331, 6,-32768, 146, 69,-32768,-32768, 249,-32768, 371,
1220 -32768,-32768, 656,-32768, 393,-32768,-32768,-32768,-32768,-32768,
1221 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1222 -32768,-32768,-32768,-32768, 1547,-32768,-32768, 1600, -247, 182,
1230 static const short yytable[] = { 95,
1231 92, 597, 95, 309, 105, 292, 624, 511, 694, 184,
1232 229, 230, 509, 332, 222, 222, 114, 231, 232, 233,
1233 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
1234 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
1235 254, 255, 256, 1185, 641, 548, 698, 257, 258, 259,
1236 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1237 270, 271, 272, 273, 540, 541, 729, 549, 463, 458,
1238 731, 741, 471, 550, 284, 572, 193, 1049, 538, 539,
1239 900, 95, 92, 902, 905, 606, 105, 883, 1027, 2,
1240 581, 643, 473, 570, 542, 543, 544, 545, 1028, 301,
1241 477, 546, 547, 896, 913, 95, 433, -389, 993, 1176,
1242 -389, 437, -389, 438, 988, 314, 315, 317, 729, 776,
1243 571, 323, 731, 741, 810, 442, 477, 312, 88, 293,
1244 1190, 439, 1191, 522, -613, 1027, 325, 346, -613, 349,
1245 1106, 622, 405, 406, 356, 1028, 809, 739, 1133, 523,
1246 1107, 417, 414, 477, 223, 223, 350, 351, 352, 353,
1247 354, 355, -103, -103, 935, 420, 418, -663, 495, 1134,
1248 1136, 638, -389, 696, -389, 1100, 2, 1101, -110, -110,
1249 936, 107, -389, 422, 107, 980, 1045, 293, 107, 199,
1250 199, 199, 740, 1102, 978, 428, 863, 429, 1135, 739,
1251 994, 803, 1186, 346, 883, 1054, 193, 1056, 1078, 222,
1252 88, 864, 295, 1184, 222, 687, 222, 1189, -663, 511,
1253 895, 420, 987, 897, 989, 493, 444, 1183, 222, 222,
1254 650, 686, 76, 77, 123, 303, 79, 80, 76, 77,
1255 123, 1077, 79, 80, 740, 662, 473, 76, 1029, 684,
1256 193, 1078, 1204, 332, 477, -280, 194, 495, 193, -103,
1257 -103, 420, 193, 107, 193, 2, 108, 1009, 628, 108,
1258 -280, 700, 293, 124, 685, -110, -110, 682, -389, -389,
1259 -389, 1027, -389, -389, 1151, 447, 736, 107, 1058, 313,
1260 301, 1028, 452, 193, 76, 1029, -281, 477, 286, 76,
1261 1108, 95, 456, 107, 459, 461, 455, 737, 419, 1001,
1262 803, 420, 738, 733, 107, 493, -663, -663, 95, 199,
1263 -663, -663, 420, 470, 323, 100, 616, 346, 118, 732,
1264 121, -389, -389, -389, 332, -389, -389, 199, 736, 698,
1265 562, 734, 327, 420, 735, 437, 496, 618, 108, 223,
1266 793, 458, 683, 336, 223, 964, 223, 76, 1081, 737,
1267 337, 497, -611, 199, 738, 733, -611, 346, 223, 223,
1268 413, 199, 108, 199, 338, 199, 636, 199, 195, 729,
1269 637, 732, 332, 731, 741, 199, 194, -601, 326, 339,
1270 199, -601, 199, 734, 2, 703, 735, 1079, 1080, 340,
1271 76, 1081, 966, 1082, 199, 199, 199, 100, 985, 420,
1272 711, 985, 712, 653, 341, 405, 406, 535, 536, 537,
1273 1132, 296, 296, 419, 296, 560, 420, 898, 1138, 342,
1274 194, 420, -389, -389, -389, 818, -389, -389, 194, 452,
1275 76, 1029, 194, 1152, 194, 1098, 1099, 324, 222, 95,
1276 -440, 495, 95, 435, 579, 1027, 420, 582, 1194, 587,
1277 739, 590, 360, 596, 95, 1028, 95, 492, 110, 111,
1278 420, 603, 361, 194, 323, -389, -389, -389, 362, -389,
1279 -389, 612, 820, 107, 366, 367, 107, 107, 107, 325,
1280 332, 961, 193, 620, 981, -566, 496, 982, 626, -566,
1281 107, 456, 985, -565, 985, 740, 107, -565, 195, 363,
1282 953, 954, 332, 962, 1018, 1019, 365, 627, 1153, 963,
1283 1143, 1157, 1144, -609, 951, 952, 495, -609, 76, 77,
1284 123, 364, 79, 80, 2, 1159, 1160, -281, 1145, 472,
1285 955, 956, 957, 958, 1020, 1021, 435, 959, 960, 420,
1286 -567, 199, 195, 493, -567, 411, 412, -657, 1022, 199,
1287 195, 199, 452, -587, 195, 1005, 195, -587, 108, 403,
1288 404, 460, 462, 464, 2, 624, 1161, 452, 1162, 1153,
1289 -661, 666, 477, 1114, 456, 108, -564, 414, 223, 798,
1290 -564, 326, 420, 1198, 1163, 195, 867, 680, 681, 736,
1291 -658, -389, 696, -389, 323, 199, 411, 412, 76, 77,
1292 123, -389, 79, 80, 76, 1029, -280, 1152, 495, 325,
1293 737, 407, 408, 626, 199, 738, 733, 415, 456, 193,
1294 199, 107, 413, -602, 107, 409, 410, -602, 708, 709,
1295 555, 556, 732, 346, 107, 346, 107, 1002, 107, 420,
1296 1003, -603, 416, 925, 734, -603, 107, 735, 423, 107,
1297 995, 405, 406, 107, -280, 420, 495, 772, 332, 929,
1298 293, 494, 194, 982, 2, 779, 298, 781, 300, 405,
1299 406, 787, 788, 76, 77, 123, 792, 79, 80, -604,
1300 612, 799, -494, -604, 199, -596, 496, 293, 798, -596,
1301 1092, -598, 927, 107, 107, -598, 801, 424, 400, 401,
1302 402, 497, 403, 404, -660, 346, 108, 405, 406, 108,
1303 305, 306, 307, 76, 77, 123, 1033, 79, 80, 594,
1304 -280, 108, 625, 108, 821, 822, 823, 824, 825, 826,
1305 430, 326, 199, 199, 609, 1059, 1150, 1100, 614, 1101,
1306 1065, 431, 182, 211, 211, 199, -599, 436, 199, 199,
1307 -599, 1168, 853, 854, -280, 1102, 495, 403, 404, 1091,
1308 889, 676, 677, 1072, 2, 1093, 855, 856, 189, 220,
1309 220, 494, -659, 384, 1104, 385, 107, -389, 639, 640,
1310 420, 710, 1182, 1143, 195, 1144, 440, -581, 441, 917,
1311 799, -581, 626, -389, -586, 454, 386, 387, -586, 194,
1312 448, 1145, 445, 1125, 1126, 801, 1127, 1203, 1193, 1161,
1313 469, 1162, 446, 76, 77, 123, -595, 79, 80, 918,
1314 -595, 199, 199, 293, -585, 760, 1103, 1163, -585, 400,
1315 401, 402, 199, 199, 466, 199, 274, 275, 276, 277,
1316 278, 279, 280, 281, 282, 283, 1113, -584, 107, 982,
1317 107, -584, 1165, 948, 949, 950, -583, 849, 850, 107,
1318 -583, 326, 107, 107, 199, 293, -606, 468, 1164, 299,
1319 -606, 302, 182, 304, 474, 308, 485, 760, 1017, 491,
1320 310, 983, 407, 408, 500, -582, 851, 852, 990, -582,
1321 318, 1036, 319, 1037, 501, 427, 409, 410, 189, -579,
1322 899, 677, 1061, -579, 1038, 1039, 502, 1040, 1201, 1041,
1323 1042, 857, 858, 76, 77, 123, 182, 79, 80, -580,
1324 504, 195, 1043, -580, 182, -576, 505, 692, 182, -576,
1325 182, 506, -577, 594, 388, 594, -577, 1006, 211, 199,
1326 991, 992, 189, 211, 794, 211, 507, 614, 108, 508,
1327 189, -568, 513, 309, 189, -568, 189, 211, 211, 182,
1328 420, 1075, -571, 636, 220, 434, -571, 1008, 564, 220,
1329 1046, 220, 107, 95, 565, 76, 77, 123, 1052, 79,
1330 80, 567, 107, 220, 220, 189, 503, 76, 1095, 799,
1331 568, 1068, 332, 569, 582, 580, 456, -607, 584, 1073,
1332 1074, -607, -591, 601, 1066, -592, -591, 452, 1177, -592,
1333 520, 1179, 1180, 407, 408, 524, 525, 526, 527, 528,
1334 529, 530, 531, 532, 533, 534, 586, 409, 410, 830,
1335 -593, 831, 585, -389, -593, 602, 95, -589, 1115, 1117,
1336 -572, -589, -280, -570, -572, 589, 554, -570, 332, -389,
1337 -574, 452, 832, 833, -574, 799, -575, 108, 595, -573,
1338 -575, 604, 450, -573, 611, 610, 453, 924, 870, 871,
1339 872, 615, 420, 512, 873, 874, 875, 876, 877, 878,
1340 879, 515, 619, 516, 465, 623, 634, 467, 892, 629,
1341 635, 892, 389, 631, 652, 475, 667, 632, 478, 400,
1342 401, 402, 1167, 331, 655, 95, 107, 107, 1171, 656,
1343 1052, 846, 847, 848, 658, 670, 331, 331, 331, 331,
1344 331, 331, 672, 358, 359, 835, 390, 391, 392, 393,
1345 394, 395, 396, 397, 398, 399, 673, 675, 760, 870,
1346 871, 872, 678, 517, 688, 1034, 909, 910, 911, 1139,
1347 1140, 1141, 575, 690, 693, 107, 701, 695, 182, 836,
1348 837, 838, 839, 840, 841, 842, 843, 844, 845, 1034,
1349 705, 107, 704, 774, 107, 777, 770, 211, 783, 789,
1350 805, 791, 807, 829, 189, 808, 811, 1090, 812, 1209,
1351 859, 1010, 1011, 816, 817, 862, 865, 1097, 1034, 1034,
1352 1213, 903, 907, 220, 861, 860, 1111, 916, 892, 921,
1353 892, 892, 892, 922, 926, 928, 575, 930, 107, 478,
1354 967, 968, -52, 1004, -49, 1007, 583, 1016, 1116, 1048,
1355 1060, 588, 1070, 591, 180, 1076, 1119, 107, 1120, 1122,
1356 108, 600, 1105, 1172, 1146, 605, 1128, 1090, 1090, 1090,
1357 1130, 1170, 1173, 871, 1192, 1090, 108, 1205, 1124, 1069,
1358 1137, 1147, 707, 1149, 1158, 575, 1178, 1199, 1206, 1207,
1359 1208, 1034, 107, 107, 1034, 1210, 1212, 1111, 1111, 1215,
1360 575, 665, 1216, 1111, 285, 476, 887, 107, 873, 874,
1361 875, 876, 877, 878, 879, 182, 979, 1062, 1148, 1094,
1362 975, 999, 892, 108, 892, 1195, 1090, 785, 185, 217,
1363 217, 1064, 1166, 1090, 669, 107, 107, 1090, 909, 910,
1364 911, 189, 108, 933, 873, 874, 875, 876, 877, 878,
1365 879, 1169, 1034, 107, 107, 1111, 782, 598, 780, 797,
1366 919, 311, 498, 331, 227, 443, 1129, 633, 561, 1013,
1367 583, 814, 1090, 665, 714, 0, 0, 1155, 1156, 0,
1368 0, 0, 344, 0, 345, 665, 0, 0, 0, 0,
1369 0, 0, 108, 0, 0, 478, 0, 331, 331, 331,
1370 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
1371 331, 331, 331, 0, 697, 0, 804, 0, 0, 702,
1372 1187, 1188, 0, 0, 0, 186, 218, 218, 180, 0,
1373 785, 0, 0, 785, 0, 0, 180, 0, 1196, 1197,
1374 180, 0, 180, 0, 331, 0, 0, 762, 0, 0,
1375 432, 187, 219, 219, 0, 0, 0, 0, 185, 0,
1376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1377 0, 180, 0, 0, 0, 931, 520, 0, 0, 0,
1378 0, 937, 938, 939, 940, 941, 942, 943, 944, 945,
1379 946, 947, 331, 0, 0, 0, 0, 331, 0, 0,
1380 0, 0, 185, 0, 0, 0, 0, 0, 0, 0,
1381 185, 0, 0, 0, 185, 0, 185, 0, 0, 0,
1382 834, 0, 0, 0, 217, 0, 0, 0, 0, 217,
1383 0, 217, 0, 0, 0, 785, 0, 0, 0, 0,
1384 0, 0, 0, 217, 217, 185, 0, 0, 331, 0,
1385 331, 0, 645, 647, 0, 186, 0, 0, 0, 0,
1386 0, 0, 0, 0, 196, 225, 225, 0, 0, 0,
1387 0, 0, 0, 0, 483, 0, 0, 0, 0, 0,
1388 904, 187, 486, 487, 488, 489, 0, 0, 0, 0,
1389 0, 0, 0, 0, 0, 0, 0, 0, 0, 186,
1390 331, 0, 0, 483, 0, 0, 0, 186, 0, 0,
1391 0, 186, 0, 186, 483, 0, 0, 198, 226, 226,
1392 0, 218, 331, 0, 0, 187, 218, 0, 218, 0,
1393 0, 521, 0, 187, 0, 0, 0, 187, 785, 187,
1394 218, 218, 186, 0, 0, 0, 0, 219, 0, 0,
1395 0, 730, 219, 0, 219, 0, 0, 0, 0, 0,
1396 0, 0, 0, 0, 0, 0, 219, 219, 187, 0,
1397 180, 0, 0, 0, 0, 976, 977, 566, 0, 0,
1398 0, 0, 0, 984, 0, 0, 0, 0, 0, 0,
1399 0, 0, 0, 0, 196, 0, 0, 0, 0, 0,
1400 0, 0, 0, 730, 0, 0, 0, 1000, 0, 0,
1401 0, 0, 0, 0, 331, 331, 331, 331, 331, 331,
1402 827, 828, 0, 0, 0, 0, 0, 0, 0, 0,
1403 0, 0, 0, 0, 0, 0, 0, 0, 196, 0,
1404 0, 0, 0, 0, 185, 0, 196, 198, 0, 0,
1405 196, 0, 196, 0, 0, 0, 0, 0, 0, 0,
1406 225, 0, 0, 217, 0, 225, 0, 225, 0, 0,
1407 0, 0, 0, 1047, 0, 0, 0, 0, 331, 225,
1408 225, 196, 0, 0, 0, 0, 0, 0, 0, 0,
1409 0, 198, 0, 0, 0, 0, 0, 0, 642, 198,
1410 0, 0, 0, 198, 0, 198, 0, 180, 0, 0,
1411 0, 0, 331, 226, 0, 0, 0, 0, 226, 0,
1412 226, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1413 0, 0, 226, 226, 198, 0, 0, 0, 0, 0,
1414 0, 186, 1118, 331, 331, 331, 331, 331, 331, 331,
1415 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
1416 218, 331, 0, 0, 0, 489, 0, 187, 0, 0,
1417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1418 0, 185, 0, 0, 0, 0, 219, 0, 0, 0,
1419 483, 0, 483, 0, 0, 0, 0, 0, 715, 0,
1420 201, 761, 0, 0, 0, 126, 127, 128, 0, 0,
1421 202, 131, 132, 133, 134, 135, 136, 203, -468, -468,
1422 0, 0, 0, 204, -468, 0, 0, 331, 139, 140,
1423 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1424 0, -280, -280, 0, 0, 145, 146, 147, 0, 0,
1425 0, 813, 0, 0, 0, 0, 0, 0, 0, 0,
1426 1202, 0, 819, 0, 730, 0, 0, 0, 0, 148,
1427 0, 0, 0, 0, 0, 0, 0, 0, 186, 0,
1428 196, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1429 0, -468, 150, 151, 152, 153, 154, 155, 0, 225,
1430 0, 0, 0, 0, 187, 0, 156, 343, 0, 0,
1431 157, 0, 0, 328, 0, 0, 0, 0, 139, 140,
1432 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1433 0, 0, 0, 198, 0, 145, 146, 147, 0, 0,
1434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1435 0, 0, 226, 0, 0, 0, 0, 0, 0, 148,
1436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1437 0, 0, 0, -1, 1, 0, 0, 934, 0, 0,
1438 0, 0, 76, 158, 159, 160, 205, 206, 0, 0,
1439 0, 0, 0, 0, 0, 0, 0, -280, 0, 0,
1440 157, 0, 0, 0, 0, 0, 0, 2, 0, 0,
1441 0, 0, 331, 0, 0, 0, 0, 196, 3, 0,
1442 0, 0, 0, 0, 0, 0, 0, 0, 331, 0,
1443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1444 -389, -389, -389, 0, 4, 0, 0, 0, 5, 6,
1445 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1446 0, 0, 8, 9, 10, 0, 489, 0, 331, 0,
1447 198, 0, 76, 329, 330, 160, 0, 0, 0, 0,
1448 0, 11, 12, 13, 0, 14, 15, 16, 17, 18,
1449 19, 20, 21, 22, 23, 0, 24, 25, 26, 27,
1450 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1451 38, 1012, 39, 40, 41, 42, 43, 44, 45, 46,
1452 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1453 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1454 67, 68, 69, 70, 71, 72, 73, 74, 75, -2,
1455 1, 0, 0, 0, 0, 0, 76, 77, 78, 0,
1456 79, 80, 81, -262, 0, 0, 0, 0, 0, 328,
1457 0, 0, 0, -280, 139, 140, 141, 142, 143, 144,
1458 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
1459 0, 145, 146, 147, 3, 0, 0, 0, 0, 0,
1460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1461 0, 0, 0, 0, 0, 148, -389, -389, -389, 0,
1462 4, 0, 0, 0, 5, 6, 7, 0, 0, 0,
1463 0, 0, 0, 0, 0, 0, 0, 0, 8, 9,
1464 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1465 0, 0, 0, 0, 0, 0, 157, 11, 12, 13,
1466 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1467 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1468 32, 33, 34, 35, 36, 37, 38, 0, 39, 40,
1469 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1470 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1471 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1472 71, 72, 73, 74, 75, 0, 0, 0, 76, 329,
1473 330, 160, 76, 77, 78, 125, 79, 80, 81, 0,
1474 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1475 135, 136, 137, -520, 558, 0, 0, 0, 138, 0,
1476 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1477 0, 0, 0, 0, 0, 0, -280, -280, 0, 3,
1478 145, 146, 147, 0, 0, 0, 0, 0, 0, 0,
1479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1480 0, -389, -389, -389, 148, 4, 0, 0, 0, 0,
1481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1482 0, 0, 0, 0, 0, 0, 0, 150, 151, 152,
1483 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1484 0, 156, 11, 12, 13, 157, 14, 15, 16, 17,
1485 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1486 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1487 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1488 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1489 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1490 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1491 0, 0, 0, 0, 0, 0, 0, 76, 158, 559,
1492 160, 161, 80, 81, 125, 0, 0, 0, 0, 126,
1493 127, 128, 0, 129, 130, 131, 132, 133, 134, 135,
1494 136, 137, -520, 0, 0, 0, 0, 138, 0, 0,
1495 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1496 0, 0, 0, 0, 0, -280, -280, 0, 0, 145,
1497 146, 147, 0, 0, 0, 0, 0, 0, 0, 0,
1498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1499 -280, -280, -280, 148, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1501 0, 0, 0, 0, 0, 0, 150, 151, 152, 153,
1502 154, 155, 0, 0, 0, 0, 0, 0, 0, 0,
1503 156, -280, -280, -280, 157, -280, -280, -280, -280, -280,
1504 -280, -280, -280, -280, -280, 0, -280, -280, -280, -280,
1505 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1506 -280, 0, -280, -280, -280, -280, -280, -280, -280, -280,
1507 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1508 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1509 -280, -280, -280, -280, -280, -280, -280, -280, -280, 0,
1510 0, 0, 0, 0, 0, 0, 76, 158, 159, 160,
1511 161, 80, -280, 201, 0, 0, 0, 0, 126, 127,
1512 128, 0, 0, 202, 131, 132, 133, 134, 135, 136,
1513 203, -520, -524, 0, 0, 0, 204, 0, 0, 0,
1514 0, 139, 140, 141, 142, 143, 144, 0, 0, 0,
1515 0, 0, 0, 0, -280, -280, 0, 0, 145, 146,
1516 147, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1517 0, 0, 0, 0, 0, 0, 0, 0, 0, -280,
1518 -280, -280, 148, 0, 0, 0, 0, 0, 0, 0,
1519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1520 0, 0, 0, 0, 0, 150, 151, 152, 153, 154,
1521 155, 0, 0, 0, 0, 0, 0, 0, 0, 156,
1522 -280, -280, -280, 157, -280, -280, -280, -280, -280, -280,
1523 -280, -280, -280, -280, 0, -280, -280, -280, -280, -280,
1524 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1525 0, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1526 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1527 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1528 -280, -280, -280, -280, -280, -280, -280, -280, 0, 0,
1529 0, 0, 0, 0, 0, 76, 158, 159, 160, 205,
1530 206, -280, 125, 0, 0, 0, 0, 126, 127, 128,
1531 0, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1532 -520, 0, 0, 0, 0, 138, 0, 0, 0, 0,
1533 139, 140, 141, 142, 143, 144, 0, 0, 0, 0,
1534 0, 0, 0, -280, -280, 125, 0, 145, 146, 147,
1535 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1536 135, 136, 137, -520, 0, 0, 0, 0, 138, 0,
1537 0, 148, 0, 139, 140, 141, 142, 143, 144, 0,
1538 0, 0, 0, 0, 0, 0, -280, -280, 0, 0,
1539 145, 146, 147, 149, 150, 151, 152, 153, 154, 155,
1540 0, 0, 0, 0, 0, 0, 0, 0, 156, 0,
1541 0, 0, 157, 0, 148, 0, 0, 0, 0, 0,
1542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1543 0, 0, 0, 0, 0, 0, -495, 150, 151, 152,
1544 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1545 0, 156, 0, 0, 0, 157, 0, 0, 0, 0,
1546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1548 0, 0, 0, 0, 76, 158, 159, 160, 161, 80,
1549 0, 0, 201, 0, 0, 0, 0, 126, 127, 128,
1550 0, 0, 202, 131, 132, 133, 134, 135, 136, 203,
1551 -520, -524, 0, 0, 0, 204, 0, 0, 0, 0,
1552 139, 140, 141, 142, 143, 144, 0, 76, 158, 159,
1553 160, 161, 80, -280, -280, 125, 0, 145, 146, 147,
1554 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1555 135, 136, 137, -520, 648, 0, 0, 0, 138, 0,
1556 0, 148, 0, 139, 140, 141, 142, 143, 144, 0,
1557 0, 0, 0, 0, 0, 0, -280, -280, 0, 0,
1558 145, 146, 147, -464, 150, 151, 152, 153, 154, 155,
1559 0, 0, 0, 0, 0, 0, 0, 0, 156, 0,
1560 0, 0, 157, 0, 148, 0, 0, 0, 0, 0,
1561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1562 0, 0, 0, 0, 0, 0, 0, 150, 151, 152,
1563 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1564 0, 156, 0, 0, 0, 157, 0, 0, 0, 0,
1565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1567 0, 0, 0, 0, 76, 158, 159, 160, 205, 206,
1568 0, 0, 201, 0, 0, 0, 0, 126, 127, 128,
1569 0, 0, 202, 131, 132, 133, 134, 135, 136, 203,
1570 -520, -524, 0, 0, 0, 204, 0, 0, 0, 0,
1571 139, 140, 141, 142, 143, 144, 0, 76, 158, 159,
1572 160, 161, 80, -280, -280, 125, 0, 145, 146, 147,
1573 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1574 135, 136, 137, -520, 0, 0, 0, 0, 138, 0,
1575 0, 148, 0, 139, 140, 141, 142, 143, 144, 0,
1576 0, 0, 0, 0, 0, 0, -280, -280, 0, 0,
1577 145, 146, 147, 0, 150, 151, 152, 153, 154, 155,
1578 0, 0, 0, 0, 0, 0, 0, 0, 156, 0,
1579 0, 0, 157, 0, 148, 0, 0, 0, 0, 0,
1580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1581 0, 0, 0, 0, 0, 0, 0, 150, 151, 152,
1582 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1583 0, 156, 0, 0, 0, 157, 0, 0, 0, 0,
1584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1586 0, 0, 0, 0, 76, 158, 159, 160, 205, 206,
1587 0, 0, 0, 0, 0, 0, 0, 126, 127, 128,
1588 0, 129, 130, 131, 132, 133, 134, 135, 136, 203,
1589 -520, 573, 0, 0, 0, 368, 0, 0, 0, 0,
1590 139, 140, 141, 142, 143, 144, 0, 76, 158, 159,
1591 160, 161, 80, -280, -280, 0, 3, 145, 146, 147,
1592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1594 0, 148, 4, 0, 0, 0, 0, 0, 0, 0,
1595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1596 0, 0, 0, 0, 150, 151, 152, 153, 154, 155,
1597 0, 0, 0, 0, 0, 0, 0, 0, 574, 11,
1598 12, 13, 157, 14, 15, 16, 17, 18, 19, 20,
1599 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1600 30, 31, 32, 33, 34, 35, 36, 37, 38, 0,
1601 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1602 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1603 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1604 69, 70, 71, 72, 73, 74, 75, 0, 0, 0,
1605 0, 0, 0, 0, 76, 158, 559, 160, 161, 80,
1606 81, 126, 127, 128, 0, 129, 130, 131, 132, 133,
1607 134, 135, 136, 203, -520, 649, 0, 0, 0, 368,
1608 0, 0, 0, 0, 139, 140, 141, 142, 143, 144,
1609 0, 0, 0, 0, 0, 0, 0, -280, -280, 0,
1610 3, 145, 146, 147, 0, 0, 0, 0, 0, 0,
1611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1612 0, 0, 0, 0, 0, 148, 4, 0, 0, 0,
1613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1614 0, 0, 0, 0, 0, 0, 0, 0, 150, 151,
1615 152, 153, 154, 155, 0, 0, 0, 0, 0, 0,
1616 0, 0, 156, 11, 12, 13, 157, 14, 15, 16,
1617 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
1618 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1619 36, 37, 38, 0, 39, 40, 41, 42, 43, 44,
1620 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1621 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1622 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1623 75, 0, 0, 0, 0, 0, 0, 0, 76, 158,
1624 559, 160, 161, 80, 81, 126, 127, 128, 0, 129,
1625 130, 131, 132, 133, 134, 135, 136, 203, -520, 660,
1626 0, 0, 0, 368, 0, 0, 0, 0, 139, 140,
1627 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1628 0, -280, -280, 0, 3, 145, 146, 147, 0, 0,
1629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1630 0, 0, 0, 0, 0, 0, 0, 0, 0, 148,
1631 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1633 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1634 0, 0, 0, 0, 0, 0, 661, 11, 12, 13,
1635 157, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1636 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1637 32, 33, 34, 35, 36, 37, 38, 0, 39, 40,
1638 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1639 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1640 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1641 71, 72, 73, 74, 75, 0, 0, 0, 0, 0,
1642 0, 0, 76, 158, 559, 160, 161, 80, 81, 126,
1643 127, 128, 0, 129, 130, 131, 132, 133, 134, 135,
1644 136, 203, -520, 659, 0, 0, 0, 368, 0, 0,
1645 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1646 0, 0, 0, 0, 0, 0, 0, 0, 0, 145,
1647 146, 147, 126, 127, 128, 0, 129, 130, 131, 132,
1648 133, 134, 135, 136, 203, -520, 663, 0, 0, 0,
1649 368, 0, 0, 148, 0, 139, 140, 141, 142, 143,
1650 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1651 0, 0, 145, 146, 147, 0, 150, 151, 152, 153,
1652 154, 155, 0, 0, 0, 0, 0, 0, 0, 0,
1653 156, 0, 0, 0, 157, 0, 148, 0, 0, 0,
1654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1655 0, 0, 0, 0, 0, 0, 0, 0, 0, 150,
1656 151, 152, 153, 154, 155, 0, 0, 0, 0, 0,
1657 0, 0, 0, 664, 126, 127, 128, 157, 129, 130,
1658 131, 132, 133, 134, 135, 136, 203, -520, 713, 0,
1659 0, 0, 368, 0, 0, 0, 0, 139, 140, 141,
1660 142, 143, 144, 0, 0, 0, 76, 158, 159, 160,
1661 161, 80, 0, 0, 145, 146, 147, 126, 127, 128,
1662 0, 129, 130, 131, 132, 133, 134, 135, 136, 203,
1663 -520, 766, 0, 0, 0, 368, 0, 0, 148, 0,
1664 139, 140, 141, 142, 143, 144, 0, 0, 0, 76,
1665 158, 159, 160, 161, 80, 0, 0, 145, 146, 147,
1666 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1667 0, 0, 0, 0, 0, 156, 0, 0, 0, 157,
1668 0, 148, 0, 0, 0, 0, 0, 0, 0, 0,
1669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1670 0, 0, 0, 0, 150, 151, 152, 153, 154, 155,
1671 0, 0, 0, 0, 0, 0, 0, 0, 156, 126,
1672 127, 128, 157, 129, 130, 131, 132, 133, 134, 135,
1673 136, 203, -520, 767, 0, 0, 0, 368, 0, 0,
1674 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1675 0, 76, 158, 159, 160, 161, 80, 0, 0, 145,
1676 146, 147, 126, 127, 128, 0, 129, 130, 131, 132,
1677 133, 134, 135, 136, 203, -520, 769, 0, 0, 0,
1678 368, 0, 0, 148, 0, 139, 140, 141, 142, 143,
1679 144, 0, 0, 0, 76, 158, 159, 160, 161, 80,
1680 0, 0, 145, 146, 147, 0, 150, 151, 152, 153,
1681 154, 155, 0, 0, 0, 0, 0, 0, 0, 0,
1682 768, 0, 0, 0, 157, 0, 148, 0, 0, 0,
1683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1684 0, 0, 0, 0, 0, 0, 0, 0, 0, 150,
1685 151, 152, 153, 154, 155, 0, 0, 0, 0, 0,
1686 0, 0, 0, 156, 126, 127, 128, 157, 129, 130,
1687 131, 132, 133, 134, 135, 136, 203, -520, 888, 0,
1688 0, 0, 368, 0, 0, 0, 0, 139, 140, 141,
1689 142, 143, 144, 0, 0, 0, 76, 158, 159, 160,
1690 161, 80, 0, 0, 145, 146, 147, 126, 127, 128,
1691 0, 129, 130, 131, 132, 133, 134, 135, 136, 203,
1692 -520, 0, 0, 0, 0, 368, 0, 0, 148, 0,
1693 139, 140, 141, 142, 143, 144, 0, 0, 0, 76,
1694 158, 159, 160, 161, 80, 0, 0, 145, 146, 147,
1695 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1696 0, 0, 0, 0, 0, 156, 0, 0, 0, 157,
1697 0, 148, 0, 0, 0, 0, 0, 0, 0, 0,
1698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1699 0, 0, 0, 0, 150, 151, 152, 153, 154, 155,
1700 293, 0, 0, 0, 0, 0, 0, 0, 156, 0,
1701 0, 0, 157, 0, 0, 0, 0, 0, 0, 0,
1702 0, 0, 0, 0, 0, 0, 0, 3, 0, 0,
1703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1704 0, 76, 158, 159, 160, 161, 80, 0, 0, -389,
1705 -389, -389, 0, 4, 0, 0, 0, 0, 0, 0,
1706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1708 0, 0, 0, 0, 76, 158, 159, 160, 161, 80,
1709 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1710 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1711 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1712 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1713 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1714 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1715 68, 69, 70, 71, 72, 73, 74, 75, 293, 0,
1716 0, 0, 0, 0, 0, 0, 0, 120, 0, 0,
1717 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1718 0, 0, 0, 0, 0, 3, 784, 1057, 0, 0,
1719 0, 328, 0, 0, 0, 0, 139, 140, 141, 142,
1720 143, 144, 0, 0, 0, 0, 0, 0, 0, 0,
1721 0, 4, 0, 145, 146, 147, 0, 0, 0, 0,
1722 0, 0, 0, 0, 0, 0, 0, 0, -654, 0,
1723 0, 0, 0, 0, 0, 0, 0, 148, 0, 0,
1724 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1725 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1726 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1727 31, 32, 33, 34, 35, 36, 37, 38, 157, 39,
1728 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1729 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1730 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1731 70, 71, 72, 73, 74, 75, -146, 0, 0, 0,
1732 0, -146, 0, 0, 0, 120, 0, 0, 0, 81,
1733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1734 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
1735 76, 329, 330, 160, 0, 0, 0, 0, 0, 0,
1736 0, 0, 0, 0, 0, 0, 0, 0, 4, 0,
1737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1740 0, 0, 0, 0, 0, 11, 12, 13, 0, 14,
1741 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1742 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1743 34, 35, 36, 37, 38, 0, 39, 40, 41, 42,
1744 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1745 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1746 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1747 73, 74, 75, 288, 0, 0, 0, 0, 0, 0,
1748 0, 0, 120, 0, 0, 0, 81, 0, 0, 0,
1749 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,
1750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1752 0, 0, 0, 0, 0, 4, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755 0, 0, -523, 0, 0, 0, 0, 0, 0, 0,
1756 0, 0, 11, 12, 13, 0, 14, 15, 16, 17,
1757 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1758 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1759 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1760 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1761 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1762 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1763 0, 0, 0, 0, 0, 0, 0, 0, 0, 120,
1764 11, 12, 13, 81, 14, 15, 16, 17, 18, 19,
1765 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1766 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1767 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1768 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1769 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1770 68, 69, 70, 71, 72, 73, 74, 75, -661, 0,
1771 0, 0, 0, 0, 0, 0, 0, 120, 0, 0,
1772 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1773 0, 0, -520, 0, 0, 0, 0, 368, 0, 0,
1774 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1775 0, 0, 0, -663, -663, -663, 0, 0, 0, 145,
1776 146, 147, 0, 0, 0, 0, 0, 0, 0, 0,
1777 0, -663, 0, 0, 0, 0, 0, 0, 0, 0,
1778 0, 0, 0, 148, 0, 0, 0, 0, 0, 0,
1779 0, 0, 0, 0, -663, -663, -663, 0, -663, -663,
1780 -663, -663, -663, -663, -663, -663, -663, -663, 0, -663,
1781 -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
1782 -663, -663, -663, -663, 157, -663, -663, -663, -663, -663,
1783 -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
1784 -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
1785 -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
1786 -663, -663, 0, 0, 0, 0, 784, 0, 0, 0,
1787 0, 328, 0, 0, 0, -663, 139, 140, 141, 142,
1788 143, 144, 0, 0, 0, 0, 0, 0, 0, 0,
1789 0, 0, 0, 145, 146, 147, 76, 329, 330, 160,
1790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 148, 0, 0,
1792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1795 -280, 0, 0, 0, 0, 0, 0, 0, 157, 0,
1796 2, 328, 518, 0, 0, 0, 139, 140, 141, 142,
1797 143, 144, 0, 0, 0, 0, 0, 0, 0, 0,
1798 0, 0, 0, 145, 146, 147, 0, 0, 0, 0,
1799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1800 0, 0, 0, 0, 0, 0, 0, 148, 0, 0,
1801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1803 76, 329, 330, 160, 11, 12, 13, 0, 14, 15,
1804 16, 17, 18, 19, 20, 21, 22, 23, 157, 24,
1805 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1806 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1807 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1808 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1809 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1810 74, 75, 0, 0, 0, 0, 0, 0, 0, 76,
1811 77, 78, 0, 79, 80, 81, 0, 0, 0, 0,
1812 76, 329, 330, 160, 328, 0, 0, 621, 0, 139,
1813 140, 141, 142, 143, 144, 328, 0, 0, 699, 0,
1814 139, 140, 141, 142, 143, 144, 145, 146, 147, 0,
1815 0, 0, 0, 0, 0, 328, 932, 145, 146, 147,
1816 139, 140, 141, 142, 143, 144, 328, -262, 0, 0,
1817 148, 139, 140, 141, 142, 143, 144, 145, 146, 147,
1818 0, 148, 0, 0, 0, 0, 328, 0, 145, 146,
1819 147, 139, 140, 141, 142, 143, 144, 0, 0, 0,
1820 0, 148, 0, 0, 0, 0, 0, 0, 145, 146,
1821 147, 157, 148, 0, 0, 0, 0, 0, 0, 0,
1822 0, 357, 157, 0, 0, 0, 139, 140, 141, 142,
1823 143, 144, 148, 0, 0, 0, 0, 0, 0, 0,
1824 0, 0, 157, 145, 146, 147, 0, 0, 0, 0,
1825 0, 0, 644, 157, 0, 0, 0, 139, 140, 141,
1826 142, 143, 144, 0, 0, 0, 0, 148, 0, 0,
1827 0, 0, 0, 157, 145, 146, 147, 0, 0, 0,
1828 0, 0, 0, 76, 329, 330, 160, 0, 0, 0,
1829 0, 0, 0, 0, 76, 329, 330, 160, 148, 0,
1830 0, 0, 0, 0, 0, 0, 0, 0, 157, 0,
1831 0, 0, 0, 646, 76, 329, 330, 160, 139, 140,
1832 141, 142, 143, 144, 0, 76, 329, 330, 160, 0,
1833 0, 0, 0, 0, 0, 145, 146, 147, 0, 157,
1834 0, 0, 0, 0, 716, 76, 329, 330, 160, 717,
1835 718, 719, 720, 721, 722, 0, 0, 0, 0, 148,
1836 0, 0, 0, 0, 0, 0, 145, 723, 724, 0,
1837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838 76, 329, 330, 160, 0, 0, 0, 0, 0, 0,
1839 725, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1840 157, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1841 0, 76, 329, 330, 160, 0, 0, 0, 0, 0,
1842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1843 0, 157, 0, 0, 0, 0, 0, 0, 0, 0,
1844 0, -206, -206, 0, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1847 0, 0, 76, 329, 330, 160, 0, 0, 0, 0,
1848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 0, 0, 76, 726, 727, 728, 11, 12, 13,
1851 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1852 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1853 32, 33, 34, 35, 36, 37, 38, 0, 39, 40,
1854 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1855 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1856 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1857 71, 72, 73, 74, 75, 3, 0, 0, 0, 0,
1858 0, 0, 0, 0, 120, 0, 0, 0, 81, 0,
1859 0, 0, 0, 0, 0, 0, 0, -389, -389, -389,
1860 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
1861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1863 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1864 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1865 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1866 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1867 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1868 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1869 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1870 70, 71, 72, 73, 74, 75, 3, 0, 0, 0,
1871 0, 0, 0, 0, 0, 120, 0, 0, 0, 81,
1872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1873 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
1874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1876 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
1877 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1878 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1879 30, 31, 32, 33, 34, 35, 36, 37, 38, 0,
1880 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1881 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1882 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1883 69, 70, 71, 72, 73, 74, 75, -389, -389, -389,
1884 0, 0, 0, 0, 0, 0, 120, 0, 0, 0,
1885 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1887 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1888 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1889 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1890 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1891 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1892 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1893 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1894 70, 71, 72, 73, 74, 75, 8, 9, 10, 0,
1895 0, 0, 0, 0, 0, 120, 0, 0, 0, 81,
1896 0, 0, 0, 0, 0, 11, 12, 13, 0, 14,
1897 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1898 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1899 34, 35, 36, 37, 38, 0, 39, 40, 41, 42,
1900 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1901 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1902 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1903 73, 74, 75, 0, 0, 0, 0, 0, 0, 0,
1904 0, 0, 120, 11, 12, 13, 81, 14, 15, 16,
1905 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
1906 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1907 36, 37, 38, 0, 39, 40, 41, 42, 43, 44,
1908 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1909 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1910 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1911 75, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1915 static const short yycheck[] = { 0,
1916 0, 465, 3, 106, 0, 89, 497, 368, 619, 8,
1917 11, 12, 366, 126, 9, 10, 2, 18, 19, 20,
1918 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1919 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1920 41, 42, 43, 27, 551, 413, 623, 48, 49, 50,
1921 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1922 61, 62, 63, 64, 405, 406, 654, 414, 19, 303,
1923 654, 654, 320, 415, 75, 448, 8, 22, 403, 404,
1924 784, 82, 82, 787, 790, 475, 82, 764, 24, 34,
1925 451, 553, 322, 447, 407, 408, 409, 410, 34, 100,
1926 5, 411, 412, 776, 796, 106, 204, 18, 902, 1126,
1927 21, 209, 23, 211, 896, 116, 117, 118, 706, 674,
1928 25, 122, 706, 706, 701, 223, 5, 113, 0, 18,
1929 1147, 215, 1149, 28, 21, 24, 122, 138, 25, 138,
1930 24, 495, 49, 50, 145, 34, 25, 654, 1077, 44,
1931 34, 41, 39, 5, 9, 10, 139, 140, 141, 142,
1932 143, 144, 86, 87, 28, 21, 56, 34, 26, 1077,
1933 1078, 27, 24, 25, 26, 26, 34, 28, 86, 87,
1934 44, 0, 34, 182, 3, 889, 980, 18, 7, 8,
1935 9, 10, 654, 44, 886, 194, 41, 196, 24, 706,
1936 906, 692, 186, 204, 881, 987, 138, 989, 34, 204,
1937 82, 56, 24, 1142, 209, 605, 211, 1146, 85, 580,
1938 775, 21, 895, 778, 897, 25, 225, 1135, 223, 224,
1939 562, 604, 183, 184, 185, 85, 187, 188, 183, 184,
1940 185, 24, 187, 188, 706, 577, 476, 183, 184, 603,
1941 182, 34, 1181, 366, 5, 24, 8, 26, 190, 183,
1942 184, 21, 194, 82, 196, 34, 0, 27, 502, 3,
1943 18, 625, 18, 7, 25, 183, 184, 23, 183, 184,
1944 185, 24, 187, 188, 27, 286, 654, 106, 992, 21,
1945 291, 34, 292, 225, 183, 184, 24, 5, 26, 183,
1946 184, 302, 303, 122, 305, 306, 302, 654, 18, 920,
1947 801, 21, 654, 654, 133, 25, 183, 184, 319, 138,
1948 187, 188, 21, 319, 325, 0, 25, 328, 3, 654,
1949 5, 183, 184, 185, 447, 187, 188, 156, 706, 916,
1950 424, 654, 24, 21, 654, 443, 347, 25, 82, 204,
1951 5, 585, 600, 24, 209, 862, 211, 183, 184, 706,
1952 24, 347, 21, 182, 706, 706, 25, 368, 223, 224,
1953 29, 190, 106, 192, 24, 194, 21, 196, 8, 967,
1954 25, 706, 495, 967, 967, 204, 138, 21, 122, 24,
1955 209, 25, 211, 706, 34, 629, 706, 180, 181, 133,
1956 183, 184, 864, 186, 223, 224, 225, 82, 893, 21,
1957 644, 896, 646, 25, 18, 49, 50, 400, 401, 402,
1958 1076, 96, 97, 18, 99, 424, 21, 781, 1084, 18,
1959 182, 21, 183, 184, 185, 25, 187, 188, 190, 439,
1960 183, 184, 194, 186, 196, 1027, 1028, 122, 443, 450,
1961 25, 26, 453, 18, 450, 24, 21, 453, 27, 460,
1962 967, 462, 24, 464, 465, 34, 467, 18, 108, 109,
1963 21, 472, 16, 225, 475, 183, 184, 185, 16, 187,
1964 188, 482, 716, 302, 6, 7, 305, 306, 307, 475,
1965 603, 859, 424, 494, 18, 21, 497, 21, 499, 25,
1966 319, 502, 987, 21, 989, 967, 325, 25, 138, 16,
1967 851, 852, 625, 860, 86, 87, 15, 500, 1100, 861,
1968 26, 1103, 28, 21, 849, 850, 26, 25, 183, 184,
1969 185, 16, 187, 188, 34, 1106, 1107, 24, 44, 26,
1970 853, 854, 855, 856, 116, 117, 18, 857, 858, 21,
1971 21, 370, 182, 25, 25, 53, 54, 22, 130, 378,
1972 190, 380, 562, 21, 194, 926, 196, 25, 302, 32,
1973 33, 305, 306, 307, 34, 1066, 26, 577, 28, 1161,
1974 22, 582, 5, 1047, 585, 319, 21, 39, 443, 692,
1975 25, 325, 21, 1164, 44, 225, 25, 598, 599, 967,
1976 22, 24, 25, 26, 605, 424, 53, 54, 183, 184,
1977 185, 34, 187, 188, 183, 184, 24, 186, 26, 605,
1978 967, 37, 38, 624, 443, 967, 967, 40, 629, 561,
1979 449, 450, 29, 21, 453, 51, 52, 25, 639, 640,
1980 42, 43, 967, 644, 463, 646, 465, 25, 467, 21,
1981 28, 21, 55, 25, 967, 25, 475, 967, 92, 478,
1982 908, 49, 50, 482, 24, 21, 26, 668, 781, 25,
1983 18, 346, 424, 21, 34, 676, 97, 678, 99, 49,
1984 50, 682, 683, 183, 184, 185, 687, 187, 188, 21,
1985 691, 692, 92, 25, 513, 21, 697, 18, 801, 25,
1986 21, 21, 815, 522, 523, 25, 692, 19, 34, 35,
1987 36, 697, 32, 33, 22, 716, 450, 49, 50, 453,
1988 67, 68, 69, 183, 184, 185, 974, 187, 188, 463,
1989 24, 465, 26, 467, 717, 718, 719, 720, 721, 722,
1990 22, 475, 561, 562, 478, 993, 25, 26, 482, 28,
1991 998, 24, 8, 9, 10, 574, 21, 92, 577, 578,
1992 25, 1115, 37, 38, 24, 44, 26, 32, 33, 1017,
1993 771, 20, 21, 1007, 34, 1023, 51, 52, 8, 9,
1994 10, 456, 22, 24, 1032, 26, 605, 28, 522, 523,
1995 21, 22, 25, 26, 424, 28, 19, 21, 20, 800,
1996 801, 25, 803, 44, 21, 18, 47, 48, 25, 561,
1997 24, 44, 92, 1061, 1062, 801, 1064, 1171, 25, 26,
1998 23, 28, 27, 183, 184, 185, 21, 187, 188, 189,
1999 25, 650, 651, 18, 21, 654, 21, 44, 25, 34,
2000 35, 36, 661, 662, 18, 664, 65, 66, 67, 68,
2001 69, 70, 71, 72, 73, 74, 18, 21, 677, 21,
2002 679, 25, 1110, 846, 847, 848, 21, 32, 33, 688,
2003 25, 605, 691, 692, 693, 18, 21, 18, 21, 98,
2004 25, 100, 138, 102, 24, 104, 22, 706, 972, 18,
2005 109, 892, 37, 38, 25, 21, 49, 50, 899, 25,
2006 119, 119, 121, 121, 25, 192, 51, 52, 138, 21,
2007 20, 21, 996, 25, 132, 133, 24, 135, 1166, 137,
2008 138, 53, 54, 183, 184, 185, 182, 187, 188, 21,
2009 18, 561, 150, 25, 190, 21, 18, 612, 194, 25,
2010 196, 18, 21, 677, 163, 679, 25, 930, 204, 768,
2011 20, 21, 182, 209, 688, 211, 18, 691, 692, 18,
2012 190, 21, 19, 1066, 194, 25, 196, 223, 224, 225,
2013 21, 22, 21, 21, 204, 205, 25, 25, 9, 209,
2014 981, 211, 801, 984, 11, 183, 184, 185, 984, 187,
2015 188, 25, 811, 223, 224, 225, 360, 183, 184, 1000,
2016 24, 1002, 1115, 11, 1000, 24, 1007, 21, 88, 1010,
2017 1011, 25, 21, 88, 1000, 21, 25, 1017, 1131, 25,
2018 384, 32, 33, 37, 38, 389, 390, 391, 392, 393,
2019 394, 395, 396, 397, 398, 399, 19, 51, 52, 24,
2020 21, 26, 21, 28, 25, 27, 1047, 21, 1049, 1050,
2021 21, 25, 19, 21, 25, 19, 420, 25, 1171, 44,
2022 21, 1061, 47, 48, 25, 1066, 21, 801, 19, 21,
2023 25, 24, 291, 25, 21, 25, 295, 811, 72, 73,
2024 74, 22, 21, 370, 78, 79, 80, 81, 82, 83,
2025 84, 378, 18, 380, 313, 24, 11, 316, 773, 21,
2026 24, 776, 23, 22, 24, 324, 23, 25, 327, 34,
2027 35, 36, 1113, 126, 24, 1116, 935, 936, 1119, 27,
2028 1116, 34, 35, 36, 25, 20, 139, 140, 141, 142,
2029 143, 144, 19, 146, 147, 23, 57, 58, 59, 60,
2030 61, 62, 63, 64, 65, 66, 20, 19, 967, 72,
2031 73, 74, 23, 383, 21, 974, 72, 73, 74, 51,
2032 52, 53, 449, 5, 25, 984, 24, 27, 424, 57,
2033 58, 59, 60, 61, 62, 63, 64, 65, 66, 998,
2034 24, 1000, 22, 20, 1003, 20, 25, 443, 18, 27,
2035 18, 25, 25, 24, 424, 27, 21, 1016, 25, 1200,
2036 29, 935, 936, 25, 25, 55, 25, 1026, 1027, 1028,
2037 1211, 88, 25, 443, 40, 39, 1035, 24, 893, 25,
2038 895, 896, 897, 25, 25, 18, 513, 25, 1047, 448,
2039 21, 18, 177, 18, 178, 21, 455, 177, 21, 18,
2040 88, 460, 188, 462, 8, 178, 22, 1066, 20, 20,
2041 984, 470, 88, 20, 24, 474, 25, 1076, 1077, 1078,
2042 25, 18, 20, 73, 27, 1084, 1000, 18, 88, 1003,
2043 88, 88, 636, 88, 88, 562, 88, 88, 27, 25,
2044 27, 1100, 1101, 1102, 1103, 88, 25, 1106, 1107, 0,
2045 577, 578, 0, 1112, 82, 325, 765, 1116, 78, 79,
2046 80, 81, 82, 83, 84, 561, 887, 997, 1092, 1025,
2047 881, 913, 987, 1047, 989, 1161, 1135, 681, 8, 9,
2048 10, 998, 1112, 1142, 585, 1144, 1145, 1146, 72, 73,
2049 74, 561, 1066, 830, 78, 79, 80, 81, 82, 83,
2050 84, 1116, 1161, 1162, 1163, 1164, 679, 467, 677, 691,
2051 801, 113, 347, 366, 10, 224, 1071, 513, 424, 967,
2052 579, 706, 1181, 650, 651, -1, -1, 1101, 1102, -1,
2053 -1, -1, 136, -1, 138, 662, -1, -1, -1, -1,
2054 -1, -1, 1116, -1, -1, 604, -1, 400, 401, 402,
2055 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
2056 413, 414, 415, -1, 623, -1, 693, -1, -1, 628,
2057 1144, 1145, -1, -1, -1, 8, 9, 10, 182, -1,
2058 784, -1, -1, 787, -1, -1, 190, -1, 1162, 1163,
2059 194, -1, 196, -1, 447, -1, -1, 656, -1, -1,
2060 204, 8, 9, 10, -1, -1, -1, -1, 138, -1,
2061 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2062 -1, 225, -1, -1, -1, 829, 830, -1, -1, -1,
2063 -1, 835, 836, 837, 838, 839, 840, 841, 842, 843,
2064 844, 845, 495, -1, -1, -1, -1, 500, -1, -1,
2065 -1, -1, 182, -1, -1, -1, -1, -1, -1, -1,
2066 190, -1, -1, -1, 194, -1, 196, -1, -1, -1,
2067 729, -1, -1, -1, 204, -1, -1, -1, -1, 209,
2068 -1, 211, -1, -1, -1, 889, -1, -1, -1, -1,
2069 -1, -1, -1, 223, 224, 225, -1, -1, 551, -1,
2070 553, -1, 555, 556, -1, 138, -1, -1, -1, -1,
2071 -1, -1, -1, -1, 8, 9, 10, -1, -1, -1,
2072 -1, -1, -1, -1, 328, -1, -1, -1, -1, -1,
2073 789, 138, 336, 337, 338, 339, -1, -1, -1, -1,
2074 -1, -1, -1, -1, -1, -1, -1, -1, -1, 182,
2075 603, -1, -1, 357, -1, -1, -1, 190, -1, -1,
2076 -1, 194, -1, 196, 368, -1, -1, 8, 9, 10,
2077 -1, 204, 625, -1, -1, 182, 209, -1, 211, -1,
2078 -1, 385, -1, 190, -1, -1, -1, 194, 992, 196,
2079 223, 224, 225, -1, -1, -1, -1, 204, -1, -1,
2080 -1, 654, 209, -1, 211, -1, -1, -1, -1, -1,
2081 -1, -1, -1, -1, -1, -1, 223, 224, 225, -1,
2082 424, -1, -1, -1, -1, 884, 885, 431, -1, -1,
2083 -1, -1, -1, 892, -1, -1, -1, -1, -1, -1,
2084 -1, -1, -1, -1, 138, -1, -1, -1, -1, -1,
2085 -1, -1, -1, 706, -1, -1, -1, 916, -1, -1,
2086 -1, -1, -1, -1, 717, 718, 719, 720, 721, 722,
2087 723, 724, -1, -1, -1, -1, -1, -1, -1, -1,
2088 -1, -1, -1, -1, -1, -1, -1, -1, 182, -1,
2089 -1, -1, -1, -1, 424, -1, 190, 138, -1, -1,
2090 194, -1, 196, -1, -1, -1, -1, -1, -1, -1,
2091 204, -1, -1, 443, -1, 209, -1, 211, -1, -1,
2092 -1, -1, -1, 982, -1, -1, -1, -1, 781, 223,
2093 224, 225, -1, -1, -1, -1, -1, -1, -1, -1,
2094 -1, 182, -1, -1, -1, -1, -1, -1, 552, 190,
2095 -1, -1, -1, 194, -1, 196, -1, 561, -1, -1,
2096 -1, -1, 815, 204, -1, -1, -1, -1, 209, -1,
2097 211, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2098 -1, -1, 223, 224, 225, -1, -1, -1, -1, -1,
2099 -1, 424, 1051, 846, 847, 848, 849, 850, 851, 852,
2100 853, 854, 855, 856, 857, 858, 859, 860, 861, 862,
2101 443, 864, -1, -1, -1, 619, -1, 424, -1, -1,
2102 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2103 -1, 561, -1, -1, -1, -1, 443, -1, -1, -1,
2104 644, -1, 646, -1, -1, -1, -1, -1, 652, -1,
2105 1, 655, -1, -1, -1, 6, 7, 8, -1, -1,
2106 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2107 -1, -1, -1, 24, 25, -1, -1, 930, 29, 30,
2108 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2109 -1, 42, 43, -1, -1, 46, 47, 48, -1, -1,
2110 -1, 705, -1, -1, -1, -1, -1, -1, -1, -1,
2111 1169, -1, 716, -1, 967, -1, -1, -1, -1, 70,
2112 -1, -1, -1, -1, -1, -1, -1, -1, 561, -1,
2113 424, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2114 -1, 92, 93, 94, 95, 96, 97, 98, -1, 443,
2115 -1, -1, -1, -1, 561, -1, 107, 18, -1, -1,
2116 111, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2117 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2118 -1, -1, -1, 424, -1, 46, 47, 48, -1, -1,
2119 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2120 -1, -1, 443, -1, -1, -1, -1, -1, -1, 70,
2121 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2122 -1, -1, -1, 0, 1, -1, -1, 831, -1, -1,
2123 -1, -1, 183, 184, 185, 186, 187, 188, -1, -1,
2124 -1, -1, -1, -1, -1, -1, -1, 24, -1, -1,
2125 111, -1, -1, -1, -1, -1, -1, 34, -1, -1,
2126 -1, -1, 1115, -1, -1, -1, -1, 561, 45, -1,
2127 -1, -1, -1, -1, -1, -1, -1, -1, 1131, -1,
2128 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2129 67, 68, 69, -1, 71, -1, -1, -1, 75, 76,
2130 77, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2131 -1, -1, 89, 90, 91, -1, 920, -1, 1171, -1,
2132 561, -1, 183, 184, 185, 186, -1, -1, -1, -1,
2133 -1, 108, 109, 110, -1, 112, 113, 114, 115, 116,
2134 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
2135 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2136 137, 965, 139, 140, 141, 142, 143, 144, 145, 146,
2137 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2138 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2139 167, 168, 169, 170, 171, 172, 173, 174, 175, 0,
2140 1, -1, -1, -1, -1, -1, 183, 184, 185, -1,
2141 187, 188, 189, 18, -1, -1, -1, -1, -1, 24,
2142 -1, -1, -1, 24, 29, 30, 31, 32, 33, 34,
2143 -1, -1, -1, 34, -1, -1, -1, -1, -1, -1,
2144 -1, 46, 47, 48, 45, -1, -1, -1, -1, -1,
2145 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2146 -1, -1, -1, -1, -1, 70, 67, 68, 69, -1,
2147 71, -1, -1, -1, 75, 76, 77, -1, -1, -1,
2148 -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
2149 91, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2150 -1, -1, -1, -1, -1, -1, 111, 108, 109, 110,
2151 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2152 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2153 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2154 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2155 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2156 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2157 171, 172, 173, 174, 175, -1, -1, -1, 183, 184,
2158 185, 186, 183, 184, 185, 1, 187, 188, 189, -1,
2159 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2160 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2161 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2162 -1, -1, -1, -1, -1, -1, 42, 43, -1, 45,
2163 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2164 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2165 -1, 67, 68, 69, 70, 71, -1, -1, -1, -1,
2166 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2167 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
2168 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2169 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2170 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2171 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2172 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2173 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2174 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2175 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2176 -1, -1, -1, -1, -1, -1, -1, 183, 184, 185,
2177 186, 187, 188, 189, 1, -1, -1, -1, -1, 6,
2178 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2179 17, 18, 19, -1, -1, -1, -1, 24, -1, -1,
2180 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2181 -1, -1, -1, -1, -1, 42, 43, -1, -1, 46,
2182 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2183 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2184 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2185 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2186 -1, -1, -1, -1, -1, -1, 93, 94, 95, 96,
2187 97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
2188 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2189 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
2190 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2191 137, -1, 139, 140, 141, 142, 143, 144, 145, 146,
2192 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2193 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2194 167, 168, 169, 170, 171, 172, 173, 174, 175, -1,
2195 -1, -1, -1, -1, -1, -1, 183, 184, 185, 186,
2196 187, 188, 189, 1, -1, -1, -1, -1, 6, 7,
2197 8, -1, -1, 11, 12, 13, 14, 15, 16, 17,
2198 18, 19, 20, -1, -1, -1, 24, -1, -1, -1,
2199 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2200 -1, -1, -1, -1, 42, 43, -1, -1, 46, 47,
2201 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2202 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
2203 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2204 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2205 -1, -1, -1, -1, -1, 93, 94, 95, 96, 97,
2206 98, -1, -1, -1, -1, -1, -1, -1, -1, 107,
2207 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2208 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2209 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2210 -1, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2211 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2212 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2213 168, 169, 170, 171, 172, 173, 174, 175, -1, -1,
2214 -1, -1, -1, -1, -1, 183, 184, 185, 186, 187,
2215 188, 189, 1, -1, -1, -1, -1, 6, 7, 8,
2216 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2217 19, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2218 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2219 -1, -1, -1, 42, 43, 1, -1, 46, 47, 48,
2220 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2221 16, 17, 18, 19, -1, -1, -1, -1, 24, -1,
2222 -1, 70, -1, 29, 30, 31, 32, 33, 34, -1,
2223 -1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
2224 46, 47, 48, 92, 93, 94, 95, 96, 97, 98,
2225 -1, -1, -1, -1, -1, -1, -1, -1, 107, -1,
2226 -1, -1, 111, -1, 70, -1, -1, -1, -1, -1,
2227 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2228 -1, -1, -1, -1, -1, -1, 92, 93, 94, 95,
2229 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2230 -1, 107, -1, -1, -1, 111, -1, -1, -1, -1,
2231 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2232 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2233 -1, -1, -1, -1, 183, 184, 185, 186, 187, 188,
2234 -1, -1, 1, -1, -1, -1, -1, 6, 7, 8,
2235 -1, -1, 11, 12, 13, 14, 15, 16, 17, 18,
2236 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2237 29, 30, 31, 32, 33, 34, -1, 183, 184, 185,
2238 186, 187, 188, 42, 43, 1, -1, 46, 47, 48,
2239 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2240 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2241 -1, 70, -1, 29, 30, 31, 32, 33, 34, -1,
2242 -1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
2243 46, 47, 48, 92, 93, 94, 95, 96, 97, 98,
2244 -1, -1, -1, -1, -1, -1, -1, -1, 107, -1,
2245 -1, -1, 111, -1, 70, -1, -1, -1, -1, -1,
2246 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2247 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
2248 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2249 -1, 107, -1, -1, -1, 111, -1, -1, -1, -1,
2250 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2251 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2252 -1, -1, -1, -1, 183, 184, 185, 186, 187, 188,
2253 -1, -1, 1, -1, -1, -1, -1, 6, 7, 8,
2254 -1, -1, 11, 12, 13, 14, 15, 16, 17, 18,
2255 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2256 29, 30, 31, 32, 33, 34, -1, 183, 184, 185,
2257 186, 187, 188, 42, 43, 1, -1, 46, 47, 48,
2258 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2259 16, 17, 18, 19, -1, -1, -1, -1, 24, -1,
2260 -1, 70, -1, 29, 30, 31, 32, 33, 34, -1,
2261 -1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
2262 46, 47, 48, -1, 93, 94, 95, 96, 97, 98,
2263 -1, -1, -1, -1, -1, -1, -1, -1, 107, -1,
2264 -1, -1, 111, -1, 70, -1, -1, -1, -1, -1,
2265 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2266 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
2267 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2268 -1, 107, -1, -1, -1, 111, -1, -1, -1, -1,
2269 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2270 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2271 -1, -1, -1, -1, 183, 184, 185, 186, 187, 188,
2272 -1, -1, -1, -1, -1, -1, -1, 6, 7, 8,
2273 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2274 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2275 29, 30, 31, 32, 33, 34, -1, 183, 184, 185,
2276 186, 187, 188, 42, 43, -1, 45, 46, 47, 48,
2277 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2278 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2279 -1, 70, 71, -1, -1, -1, -1, -1, -1, -1,
2280 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2281 -1, -1, -1, -1, 93, 94, 95, 96, 97, 98,
2282 -1, -1, -1, -1, -1, -1, -1, -1, 107, 108,
2283 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2284 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
2285 129, 130, 131, 132, 133, 134, 135, 136, 137, -1,
2286 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2287 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2288 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2289 169, 170, 171, 172, 173, 174, 175, -1, -1, -1,
2290 -1, -1, -1, -1, 183, 184, 185, 186, 187, 188,
2291 189, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2292 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2293 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2294 -1, -1, -1, -1, -1, -1, -1, 42, 43, -1,
2295 45, 46, 47, 48, -1, -1, -1, -1, -1, -1,
2296 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2297 -1, -1, -1, -1, -1, 70, 71, -1, -1, -1,
2298 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2299 -1, -1, -1, -1, -1, -1, -1, -1, 93, 94,
2300 95, 96, 97, 98, -1, -1, -1, -1, -1, -1,
2301 -1, -1, 107, 108, 109, 110, 111, 112, 113, 114,
2302 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
2303 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2304 135, 136, 137, -1, 139, 140, 141, 142, 143, 144,
2305 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2306 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2307 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2308 175, -1, -1, -1, -1, -1, -1, -1, 183, 184,
2309 185, 186, 187, 188, 189, 6, 7, 8, -1, 10,
2310 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2311 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2312 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2313 -1, 42, 43, -1, 45, 46, 47, 48, -1, -1,
2314 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2315 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2316 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2317 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2318 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2319 -1, -1, -1, -1, -1, -1, 107, 108, 109, 110,
2320 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2321 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2322 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2323 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2324 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2325 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2326 171, 172, 173, 174, 175, -1, -1, -1, -1, -1,
2327 -1, -1, 183, 184, 185, 186, 187, 188, 189, 6,
2328 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2329 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2330 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2331 -1, -1, -1, -1, -1, -1, -1, -1, -1, 46,
2332 47, 48, 6, 7, 8, -1, 10, 11, 12, 13,
2333 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2334 24, -1, -1, 70, -1, 29, 30, 31, 32, 33,
2335 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2336 -1, -1, 46, 47, 48, -1, 93, 94, 95, 96,
2337 97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
2338 107, -1, -1, -1, 111, -1, 70, -1, -1, -1,
2339 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2340 -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
2341 94, 95, 96, 97, 98, -1, -1, -1, -1, -1,
2342 -1, -1, -1, 107, 6, 7, 8, 111, 10, 11,
2343 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2344 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2345 32, 33, 34, -1, -1, -1, 183, 184, 185, 186,
2346 187, 188, -1, -1, 46, 47, 48, 6, 7, 8,
2347 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2348 19, 20, -1, -1, -1, 24, -1, -1, 70, -1,
2349 29, 30, 31, 32, 33, 34, -1, -1, -1, 183,
2350 184, 185, 186, 187, 188, -1, -1, 46, 47, 48,
2351 -1, 93, 94, 95, 96, 97, 98, -1, -1, -1,
2352 -1, -1, -1, -1, -1, 107, -1, -1, -1, 111,
2353 -1, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2354 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2355 -1, -1, -1, -1, 93, 94, 95, 96, 97, 98,
2356 -1, -1, -1, -1, -1, -1, -1, -1, 107, 6,
2357 7, 8, 111, 10, 11, 12, 13, 14, 15, 16,
2358 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2359 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2360 -1, 183, 184, 185, 186, 187, 188, -1, -1, 46,
2361 47, 48, 6, 7, 8, -1, 10, 11, 12, 13,
2362 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2363 24, -1, -1, 70, -1, 29, 30, 31, 32, 33,
2364 34, -1, -1, -1, 183, 184, 185, 186, 187, 188,
2365 -1, -1, 46, 47, 48, -1, 93, 94, 95, 96,
2366 97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
2367 107, -1, -1, -1, 111, -1, 70, -1, -1, -1,
2368 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2369 -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
2370 94, 95, 96, 97, 98, -1, -1, -1, -1, -1,
2371 -1, -1, -1, 107, 6, 7, 8, 111, 10, 11,
2372 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2373 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2374 32, 33, 34, -1, -1, -1, 183, 184, 185, 186,
2375 187, 188, -1, -1, 46, 47, 48, 6, 7, 8,
2376 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2377 19, -1, -1, -1, -1, 24, -1, -1, 70, -1,
2378 29, 30, 31, 32, 33, 34, -1, -1, -1, 183,
2379 184, 185, 186, 187, 188, -1, -1, 46, 47, 48,
2380 -1, 93, 94, 95, 96, 97, 98, -1, -1, -1,
2381 -1, -1, -1, -1, -1, 107, -1, -1, -1, 111,
2382 -1, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2383 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2384 -1, -1, -1, -1, 93, 94, 95, 96, 97, 98,
2385 18, -1, -1, -1, -1, -1, -1, -1, 107, -1,
2386 -1, -1, 111, -1, -1, -1, -1, -1, -1, -1,
2387 -1, -1, -1, -1, -1, -1, -1, 45, -1, -1,
2388 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2389 -1, 183, 184, 185, 186, 187, 188, -1, -1, 67,
2390 68, 69, -1, 71, -1, -1, -1, -1, -1, -1,
2391 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2392 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2393 -1, -1, -1, -1, 183, 184, 185, 186, 187, 188,
2394 108, 109, 110, -1, 112, 113, 114, 115, 116, 117,
2395 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2396 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2397 -1, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2398 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2399 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2400 168, 169, 170, 171, 172, 173, 174, 175, 18, -1,
2401 -1, -1, -1, -1, -1, -1, -1, 185, -1, -1,
2402 -1, 189, -1, -1, -1, -1, -1, -1, -1, -1,
2403 -1, -1, -1, -1, -1, 45, 19, 20, -1, -1,
2404 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2405 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2406 -1, 71, -1, 46, 47, 48, -1, -1, -1, -1,
2407 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
2408 -1, -1, -1, -1, -1, -1, -1, 70, -1, -1,
2409 -1, -1, -1, -1, -1, -1, -1, -1, 108, 109,
2410 110, -1, 112, 113, 114, 115, 116, 117, 118, 119,
2411 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2412 130, 131, 132, 133, 134, 135, 136, 137, 111, 139,
2413 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2414 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2415 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2416 170, 171, 172, 173, 174, 175, 19, -1, -1, -1,
2417 -1, 24, -1, -1, -1, 185, -1, -1, -1, 189,
2418 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2419 -1, -1, 45, -1, -1, -1, -1, -1, -1, -1,
2420 183, 184, 185, 186, -1, -1, -1, -1, -1, -1,
2421 -1, -1, -1, -1, -1, -1, -1, -1, 71, -1,
2422 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2423 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2424 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2425 -1, -1, -1, -1, -1, 108, 109, 110, -1, 112,
2426 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
2427 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2428 133, 134, 135, 136, 137, -1, 139, 140, 141, 142,
2429 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2430 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2431 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2432 173, 174, 175, 19, -1, -1, -1, -1, -1, -1,
2433 -1, -1, 185, -1, -1, -1, 189, -1, -1, -1,
2434 -1, -1, -1, -1, -1, -1, -1, -1, -1, 45,
2435 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2436 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2437 -1, -1, -1, -1, -1, 71, -1, -1, -1, -1,
2438 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2439 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2440 -1, -1, 20, -1, -1, -1, -1, -1, -1, -1,
2441 -1, -1, 108, 109, 110, -1, 112, 113, 114, 115,
2442 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2443 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2444 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2445 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2446 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2447 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2448 -1, -1, -1, -1, -1, -1, -1, -1, -1, 185,
2449 108, 109, 110, 189, 112, 113, 114, 115, 116, 117,
2450 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2451 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2452 -1, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2453 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2454 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2455 168, 169, 170, 171, 172, 173, 174, 175, 22, -1,
2456 -1, -1, -1, -1, -1, -1, -1, 185, -1, -1,
2457 -1, 189, -1, -1, -1, -1, -1, -1, -1, -1,
2458 -1, -1, 19, -1, -1, -1, -1, 24, -1, -1,
2459 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2460 -1, -1, -1, 67, 68, 69, -1, -1, -1, 46,
2461 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2462 -1, 85, -1, -1, -1, -1, -1, -1, -1, -1,
2463 -1, -1, -1, 70, -1, -1, -1, -1, -1, -1,
2464 -1, -1, -1, -1, 108, 109, 110, -1, 112, 113,
2465 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
2466 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2467 134, 135, 136, 137, 111, 139, 140, 141, 142, 143,
2468 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2469 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2470 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2471 174, 175, -1, -1, -1, -1, 19, -1, -1, -1,
2472 -1, 24, -1, -1, -1, 189, 29, 30, 31, 32,
2473 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2474 -1, -1, -1, 46, 47, 48, 183, 184, 185, 186,
2475 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2476 -1, -1, -1, -1, -1, -1, -1, 70, -1, -1,
2477 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2478 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2479 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2480 24, -1, -1, -1, -1, -1, -1, -1, 111, -1,
2481 34, 24, 25, -1, -1, -1, 29, 30, 31, 32,
2482 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2483 -1, -1, -1, 46, 47, 48, -1, -1, -1, -1,
2484 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2485 -1, -1, -1, -1, -1, -1, -1, 70, -1, -1,
2486 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2488 183, 184, 185, 186, 108, 109, 110, -1, 112, 113,
2489 114, 115, 116, 117, 118, 119, 120, 121, 111, 123,
2490 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2491 134, 135, 136, 137, -1, 139, 140, 141, 142, 143,
2492 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2493 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2494 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2495 174, 175, -1, -1, -1, -1, -1, -1, -1, 183,
2496 184, 185, -1, 187, 188, 189, -1, -1, -1, -1,
2497 183, 184, 185, 186, 24, -1, -1, 27, -1, 29,
2498 30, 31, 32, 33, 34, 24, -1, -1, 27, -1,
2499 29, 30, 31, 32, 33, 34, 46, 47, 48, -1,
2500 -1, -1, -1, -1, -1, 24, 25, 46, 47, 48,
2501 29, 30, 31, 32, 33, 34, 24, 25, -1, -1,
2502 70, 29, 30, 31, 32, 33, 34, 46, 47, 48,
2503 -1, 70, -1, -1, -1, -1, 24, -1, 46, 47,
2504 48, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2505 -1, 70, -1, -1, -1, -1, -1, -1, 46, 47,
2506 48, 111, 70, -1, -1, -1, -1, -1, -1, -1,
2507 -1, 24, 111, -1, -1, -1, 29, 30, 31, 32,
2508 33, 34, 70, -1, -1, -1, -1, -1, -1, -1,
2509 -1, -1, 111, 46, 47, 48, -1, -1, -1, -1,
2510 -1, -1, 24, 111, -1, -1, -1, 29, 30, 31,
2511 32, 33, 34, -1, -1, -1, -1, 70, -1, -1,
2512 -1, -1, -1, 111, 46, 47, 48, -1, -1, -1,
2513 -1, -1, -1, 183, 184, 185, 186, -1, -1, -1,
2514 -1, -1, -1, -1, 183, 184, 185, 186, 70, -1,
2515 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1,
2516 -1, -1, -1, 24, 183, 184, 185, 186, 29, 30,
2517 31, 32, 33, 34, -1, 183, 184, 185, 186, -1,
2518 -1, -1, -1, -1, -1, 46, 47, 48, -1, 111,
2519 -1, -1, -1, -1, 24, 183, 184, 185, 186, 29,
2520 30, 31, 32, 33, 34, -1, -1, -1, -1, 70,
2521 -1, -1, -1, -1, -1, -1, 46, 47, 48, -1,
2522 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2523 183, 184, 185, 186, -1, -1, -1, -1, -1, -1,
2524 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2525 111, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2526 -1, 183, 184, 185, 186, -1, -1, -1, -1, -1,
2527 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2528 -1, 111, -1, -1, -1, -1, -1, -1, -1, -1,
2529 -1, 42, 43, -1, -1, -1, -1, -1, -1, -1,
2530 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2531 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2532 -1, -1, 183, 184, 185, 186, -1, -1, -1, -1,
2533 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2534 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2535 -1, -1, -1, 183, 184, 185, 186, 108, 109, 110,
2536 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2537 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2538 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2539 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2540 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2541 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2542 171, 172, 173, 174, 175, 45, -1, -1, -1, -1,
2543 -1, -1, -1, -1, 185, -1, -1, -1, 189, -1,
2544 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
2545 -1, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2546 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2547 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2548 -1, -1, -1, -1, -1, -1, -1, -1, 108, 109,
2549 110, -1, 112, 113, 114, 115, 116, 117, 118, 119,
2550 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2551 130, 131, 132, 133, 134, 135, 136, 137, -1, 139,
2552 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2553 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2554 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2555 170, 171, 172, 173, 174, 175, 45, -1, -1, -1,
2556 -1, -1, -1, -1, -1, 185, -1, -1, -1, 189,
2557 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2558 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
2559 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2561 -1, -1, -1, -1, -1, -1, -1, -1, -1, 108,
2562 109, 110, -1, 112, 113, 114, 115, 116, 117, 118,
2563 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
2564 129, 130, 131, 132, 133, 134, 135, 136, 137, -1,
2565 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2566 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2567 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2568 169, 170, 171, 172, 173, 174, 175, 67, 68, 69,
2569 -1, -1, -1, -1, -1, -1, 185, -1, -1, -1,
2570 189, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2571 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2572 -1, -1, -1, -1, -1, -1, -1, -1, 108, 109,
2573 110, -1, 112, 113, 114, 115, 116, 117, 118, 119,
2574 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2575 130, 131, 132, 133, 134, 135, 136, 137, -1, 139,
2576 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2577 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2578 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2579 170, 171, 172, 173, 174, 175, 89, 90, 91, -1,
2580 -1, -1, -1, -1, -1, 185, -1, -1, -1, 189,
2581 -1, -1, -1, -1, -1, 108, 109, 110, -1, 112,
2582 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
2583 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2584 133, 134, 135, 136, 137, -1, 139, 140, 141, 142,
2585 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2586 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2587 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2588 173, 174, 175, -1, -1, -1, -1, -1, -1, -1,
2589 -1, -1, 185, 108, 109, 110, 189, 112, 113, 114,
2590 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
2591 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2592 135, 136, 137, -1, 139, 140, 141, 142, 143, 144,
2593 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2594 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2595 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2596 175, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2597 185, -1, -1, -1, 189
2599 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2600 #line 3 "/gnu/share/bison.simple"
2602 /* Skeleton output parser for bison,
2603 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2605 This program is free software; you can redistribute it and/or modify
2606 it under the terms of the GNU General Public License as published by
2607 the Free Software Foundation; either version 2, or (at your option)
2610 This program is distributed in the hope that it will be useful,
2611 but WITHOUT ANY WARRANTY; without even the implied warranty of
2612 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2613 GNU General Public License for more details.
2615 You should have received a copy of the GNU General Public License
2616 along with this program; if not, write to the Free Software
2617 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
2619 /* As a special exception, when this file is copied by Bison into a
2620 Bison output file, you may use that output file without restriction.
2621 This special exception was added by the Free Software Foundation
2622 in version 1.24 of Bison. */
2626 #define alloca __builtin_alloca
2627 #else /* not GNU C. */
2628 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
2630 #else /* not sparc */
2631 #if defined (MSDOS) && !defined (__TURBOC__)
2633 #else /* not MSDOS, or __TURBOC__ */
2637 #else /* not MSDOS, __TURBOC__, or _AIX */
2641 void *alloca (unsigned int);
2643 #else /* not __cplusplus */
2645 #endif /* not __cplusplus */
2647 #endif /* not _AIX */
2648 #endif /* not MSDOS, or __TURBOC__ */
2649 #endif /* not sparc. */
2650 #endif /* not GNU C. */
2651 #endif /* alloca not defined. */
2653 /* This is the parser code that is written into each bison parser
2654 when the %semantic_parser declaration is not specified in the grammar.
2655 It was written by Richard Stallman by simplifying the hairy parser
2656 used when %semantic_parser is specified. */
2658 /* Note: there must be only one dollar sign in this file.
2659 It is replaced by the list of actions, each action
2660 as one case of the switch. */
2662 #define yyerrok (yyerrstatus = 0)
2663 #define yyclearin (yychar = YYEMPTY)
2666 #define YYACCEPT return(0)
2667 #define YYABORT return(1)
2668 #define YYERROR goto yyerrlab1
2669 /* Like YYERROR except do call yyerror.
2670 This remains here temporarily to ease the
2671 transition to the new meaning of YYERROR, for GCC.
2672 Once GCC version 2 has supplanted version 1, this can go. */
2673 #define YYFAIL goto yyerrlab
2674 #define YYRECOVERING() (!!yyerrstatus)
2675 #define YYBACKUP(token, value) \
2677 if (yychar == YYEMPTY && yylen == 1) \
2678 { yychar = (token), yylval = (value); \
2679 yychar1 = YYTRANSLATE (yychar); \
2684 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2688 #define YYERRCODE 256
2691 #define YYLEX yylex()
2697 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2699 #define YYLEX yylex(&yylval, &yylloc)
2701 #else /* not YYLSP_NEEDED */
2703 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2705 #define YYLEX yylex(&yylval)
2707 #endif /* not YYLSP_NEEDED */
2710 /* If nonreentrant, generate the variables here */
2714 int yychar; /* the lookahead symbol */
2715 YYSTYPE yylval; /* the semantic value of the */
2716 /* lookahead symbol */
2719 YYLTYPE yylloc; /* location data for the lookahead */
2723 int yynerrs; /* number of parse errors so far */
2724 #endif /* not YYPURE */
2727 int yydebug; /* nonzero means print parse trace */
2728 /* Since this is uninitialized, it does not stop multiple parsers
2732 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2735 #define YYINITDEPTH 200
2738 /* YYMAXDEPTH is the maximum size the stacks can grow to
2739 (effective only if the built-in stack extension method is used). */
2746 #define YYMAXDEPTH 10000
2749 /* Prevent warning if -Wstrict-prototypes. */
2754 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2755 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2756 #else /* not GNU C or C++ */
2759 /* This is the most reliable way to avoid incompatibilities
2760 in available built-in functions on various systems. */
2762 __yy_memcpy (to, from, count)
2767 register char *f = from;
2768 register char *t = to;
2769 register int i = count;
2775 #else /* __cplusplus */
2777 /* This is the most reliable way to avoid incompatibilities
2778 in available built-in functions on various systems. */
2780 __yy_memcpy (char *to, char *from, int count)
2782 register char *f = from;
2783 register char *t = to;
2784 register int i = count;
2793 #line 196 "/gnu/share/bison.simple"
2795 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2796 into yyparse. The argument should have type void *.
2797 It should actually point to an object.
2798 Grammar actions can access the variable by casting it
2799 to the proper pointer type. */
2801 #ifdef YYPARSE_PARAM
2803 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2804 #define YYPARSE_PARAM_DECL
2805 #else /* not __cplusplus */
2806 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2807 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2808 #endif /* not __cplusplus */
2809 #else /* not YYPARSE_PARAM */
2810 #define YYPARSE_PARAM_ARG
2811 #define YYPARSE_PARAM_DECL
2812 #endif /* not YYPARSE_PARAM */
2815 yyparse(YYPARSE_PARAM_ARG)
2818 register int yystate;
2820 register short *yyssp;
2821 register YYSTYPE *yyvsp;
2822 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2823 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2825 short yyssa[YYINITDEPTH]; /* the state stack */
2826 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2828 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2829 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2832 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2833 YYLTYPE *yyls = yylsa;
2836 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2838 #define YYPOPSTACK (yyvsp--, yyssp--)
2841 int yystacksize = YYINITDEPTH;
2852 YYSTYPE yyval; /* the variable used to return */
2853 /* semantic values from the action */
2860 fprintf(stderr, "Starting parse\n");
2866 yychar = YYEMPTY; /* Cause a token to be read. */
2868 /* Initialize stack pointers.
2869 Waste one element of value and location stack
2870 so that they stay on the same level as the state stack.
2871 The wasted elements are never initialized. */
2879 /* Push a new state, which is found in yystate . */
2880 /* In all cases, when you get here, the value and location stacks
2881 have just been pushed. so pushing a state here evens the stacks. */
2886 if (yyssp >= yyss + yystacksize - 1)
2888 /* Give user a chance to reallocate the stack */
2889 /* Use copies of these so that the &'s don't force the real ones into memory. */
2890 YYSTYPE *yyvs1 = yyvs;
2891 short *yyss1 = yyss;
2893 YYLTYPE *yyls1 = yyls;
2896 /* Get the current used size of the three stacks, in elements. */
2897 int size = yyssp - yyss + 1;
2900 /* Each stack pointer address is followed by the size of
2901 the data in use in that stack, in bytes. */
2903 /* This used to be a conditional around just the two extra args,
2904 but that might be undefined if yyoverflow is a macro. */
2905 yyoverflow("parser stack overflow",
2906 &yyss1, size * sizeof (*yyssp),
2907 &yyvs1, size * sizeof (*yyvsp),
2908 &yyls1, size * sizeof (*yylsp),
2911 yyoverflow("parser stack overflow",
2912 &yyss1, size * sizeof (*yyssp),
2913 &yyvs1, size * sizeof (*yyvsp),
2917 yyss = yyss1; yyvs = yyvs1;
2921 #else /* no yyoverflow */
2922 /* Extend the stack our own way. */
2923 if (yystacksize >= YYMAXDEPTH)
2925 yyerror("parser stack overflow");
2929 if (yystacksize > YYMAXDEPTH)
2930 yystacksize = YYMAXDEPTH;
2931 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
2932 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
2933 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
2934 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
2936 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
2937 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
2939 #endif /* no yyoverflow */
2941 yyssp = yyss + size - 1;
2942 yyvsp = yyvs + size - 1;
2944 yylsp = yyls + size - 1;
2949 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2952 if (yyssp >= yyss + yystacksize - 1)
2958 fprintf(stderr, "Entering state %d\n", yystate);
2964 /* Do appropriate processing given the current state. */
2965 /* Read a lookahead token if we need one and don't already have one. */
2968 /* First try to decide what to do without reference to lookahead token. */
2970 yyn = yypact[yystate];
2974 /* Not known => get a lookahead token if don't already have one. */
2976 /* yychar is either YYEMPTY or YYEOF
2977 or a valid token in external form. */
2979 if (yychar == YYEMPTY)
2983 fprintf(stderr, "Reading a token: ");
2988 /* Convert token to internal form (in yychar1) for indexing tables with */
2990 if (yychar <= 0) /* This means end of input. */
2993 yychar = YYEOF; /* Don't call YYLEX any more */
2997 fprintf(stderr, "Now at end of input.\n");
3002 yychar1 = YYTRANSLATE(yychar);
3007 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3008 /* Give the individual parser a way to print the precise meaning
3009 of a token, for further debugging info. */
3011 YYPRINT (stderr, yychar, yylval);
3013 fprintf (stderr, ")\n");
3019 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3024 /* yyn is what to do for this token type in this state.
3025 Negative => reduce, -yyn is rule number.
3026 Positive => shift, yyn is new state.
3027 New state is final state => don't bother to shift,
3028 just return success.
3029 0, or most negative number => error. */
3044 /* Shift the lookahead token. */
3048 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3051 /* Discard the token being shifted unless it is eof. */
3052 if (yychar != YYEOF)
3060 /* count tokens shifted since error; after three, turn off error status. */
3061 if (yyerrstatus) yyerrstatus--;
3066 /* Do the default action for the current state. */
3069 yyn = yydefact[yystate];
3073 /* Do a reduction. yyn is the number of a rule to reduce with. */
3077 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3084 fprintf (stderr, "Reducing via rule %d (line %d), ",
3087 /* Print the symbols being reduced, and their result. */
3088 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3089 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3090 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3098 #line 277 "cgrammar.y"
3099 { uentry_clearDecl (); ;
3102 #line 278 "cgrammar.y"
3103 { uentry_clearDecl (); ;
3106 #line 279 "cgrammar.y"
3107 { uentry_clearDecl (); ;
3110 #line 280 "cgrammar.y"
3111 { uentry_clearDecl (); ;
3114 #line 281 "cgrammar.y"
3115 { uentry_clearDecl (); ;
3118 #line 282 "cgrammar.y"
3119 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3122 #line 283 "cgrammar.y"
3123 { uentry_clearDecl (); ;
3126 #line 287 "cgrammar.y"
3127 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3130 #line 289 "cgrammar.y"
3131 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3134 #line 292 "cgrammar.y"
3135 { context_enterFunctionDecl (); ;
3138 #line 293 "cgrammar.y"
3139 { declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3140 context_exitFunctionDecl (); ;
3143 #line 298 "cgrammar.y"
3145 qtype qint = qtype_create (ctype_int);
3146 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3151 #line 304 "cgrammar.y"
3152 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3155 #line 309 "cgrammar.y"
3156 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3159 #line 312 "cgrammar.y"
3160 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3163 #line 314 "cgrammar.y"
3164 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3167 #line 316 "cgrammar.y"
3168 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3171 #line 318 "cgrammar.y"
3173 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), exprNode_getLongValue (yyvsp[-2].expr)));
3177 #line 322 "cgrammar.y"
3178 { setCurrentParams (uentryList_missingParams);
3182 #line 325 "cgrammar.y"
3183 { /* need to support globals and modifies here! */
3184 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp),
3185 uentryList_makeMissingParams ());
3187 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ct);
3192 #line 333 "cgrammar.y"
3193 { setCurrentParams (yyvsp[-1].entrylist);
3197 #line 336 "cgrammar.y"
3198 { clearCurrentParams ();
3199 yyval.ntyp = idDecl_replaceCtype (yyvsp[-7].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-7].ntyp), yyvsp[-4].entrylist));
3202 // printf("Done nameDeclBase\n");
3206 #line 344 "cgrammar.y"
3207 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3210 #line 346 "cgrammar.y"
3211 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3214 #line 348 "cgrammar.y"
3215 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3218 #line 350 "cgrammar.y"
3222 if (exprNode_hasValue (yyvsp[-2].expr)
3223 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3225 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3232 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3236 #line 366 "cgrammar.y"
3237 { setCurrentParams (uentryList_missingParams);
3241 #line 369 "cgrammar.y"
3242 { /* need to support globals and modifies here! */
3243 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3244 uentryList_makeMissingParams ());
3246 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3251 #line 377 "cgrammar.y"
3252 { setCurrentParams (yyvsp[-1].entrylist);
3256 #line 380 "cgrammar.y"
3257 { clearCurrentParams ();
3258 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3263 #line 387 "cgrammar.y"
3264 { setCurrentParams (yyvsp[-1].entrylist); ;
3267 #line 388 "cgrammar.y"
3268 { clearCurrentParams (); ;
3271 #line 389 "cgrammar.y"
3272 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3275 #line 392 "cgrammar.y"
3276 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3279 #line 393 "cgrammar.y"
3280 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3283 #line 394 "cgrammar.y"
3284 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3287 #line 395 "cgrammar.y"
3288 { exprChecks_checkEmptyMacroBody (); ;
3291 #line 398 "cgrammar.y"
3292 { declareFunction (yyvsp[0].ntyp); ;
3295 #line 401 "cgrammar.y"
3296 { setProcessingGlobMods (); ;
3299 #line 402 "cgrammar.y"
3300 { clearProcessingGlobMods (); ;
3303 #line 408 "cgrammar.y"
3304 { setProcessingGlobMods (); ;
3307 #line 409 "cgrammar.y"
3308 { clearProcessingGlobMods (); ;
3311 #line 417 "cgrammar.y"
3313 DPRINTF ( ("doing optGlobEnsuresConstraintsAux\n") );
3314 context_setProtectVars (); enterParamsTemp ();
3315 sRef_setGlobalScopeSafe ();
3320 #line 423 "cgrammar.y"
3322 setEnsuresConstraints (yyvsp[-1].conL);
3324 sRef_clearGlobalScopeSafe ();
3325 context_releaseVars ();
3326 DPRINTF (("done optGlobBufConstraintsAux\n"));;
3329 #line 433 "cgrammar.y"
3331 DPRINTF ( ("doing optGlobBufConstraintsAux\n") );
3332 context_setProtectVars (); enterParamsTemp ();
3333 sRef_setGlobalScopeSafe ();
3338 #line 439 "cgrammar.y"
3340 setFunctionConstraints (yyvsp[-1].conL);
3342 sRef_clearGlobalScopeSafe ();
3343 context_releaseVars ();
3344 DPRINTF (("done optGlobBufConstraintsAux\n"));;
3347 #line 448 "cgrammar.y"
3348 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-1].con); ;
3351 #line 449 "cgrammar.y"
3352 {constraintList c; c = constraintList_new(); c = constraintList_add (c, yyvsp[0].con); yyval.conL = c;
3355 #line 452 "cgrammar.y"
3357 yyval.con = makeConstraintParse3 (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE);
3358 DPRINTF(("Done BufConstraint1\n")); ;
3361 #line 467 "cgrammar.y"
3362 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3365 #line 468 "cgrammar.y"
3367 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3368 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3371 #line 473 "cgrammar.y"
3372 { yyval.conE = constraintExpr_makeTermsRef(yyvsp[0].sr);;
3375 #line 474 "cgrammar.y"
3377 t = cstring_toCharsSafe (exprNode_unparse(yyvsp[0].expr));
3379 yyval.conE = constraintExpr_makeIntLiteral (c);
3383 #line 482 "cgrammar.y"
3386 checkbufferConstraintClausesId (yyvsp[0].entry);;
3389 #line 485 "cgrammar.y"
3390 { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
3393 #line 487 "cgrammar.y"
3394 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3397 #line 488 "cgrammar.y"
3400 t = cstring_toCharsSafe (exprNode_unparse(yyvsp[-1].expr));
3402 yyval.sr = sRef_makeArrayFetchKnown(yyvsp[-3].sr, c); ;
3405 #line 493 "cgrammar.y"
3406 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3409 #line 494 "cgrammar.y"
3410 { yyval.sr = yyvsp[-1].sr; ;
3413 #line 495 "cgrammar.y"
3414 { cstring_markOwned (yyvsp[0].cname);
3415 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3418 #line 497 "cgrammar.y"
3419 { cstring_markOwned (yyvsp[0].cname);
3420 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3423 #line 523 "cgrammar.y"
3424 { setProcessingGlobMods (); ;
3427 #line 524 "cgrammar.y"
3428 { clearProcessingGlobMods (); ;
3431 #line 534 "cgrammar.y"
3432 { setProcessingGlobMods (); ;
3435 #line 535 "cgrammar.y"
3436 { clearProcessingGlobMods (); ;
3439 #line 550 "cgrammar.y"
3443 #line 551 "cgrammar.y"
3447 #line 554 "cgrammar.y"
3448 { globListAdd (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3451 #line 557 "cgrammar.y"
3452 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3455 #line 558 "cgrammar.y"
3456 { yyval.sr = globListUnrecognized (yyvsp[0].cname); ;
3459 #line 561 "cgrammar.y"
3460 { yyval.typequal = qual_createUndef (); ;
3463 #line 562 "cgrammar.y"
3464 { yyval.typequal = qual_createKilled (); ;
3467 #line 563 "cgrammar.y"
3468 { yyval.typequal = qual_createOut (); ;
3471 #line 564 "cgrammar.y"
3472 { yyval.typequal = qual_createIn (); ;
3475 #line 565 "cgrammar.y"
3476 { yyval.typequal = qual_createPartial (); ;
3479 #line 568 "cgrammar.y"
3480 { yyval.tquallist = qualList_undefined; ;
3483 #line 569 "cgrammar.y"
3484 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3487 #line 572 "cgrammar.y"
3488 { setProcessingGlobalsList (); ;
3491 #line 574 "cgrammar.y"
3492 { unsetProcessingGlobals (); ;
3495 #line 575 "cgrammar.y"
3496 { setProcessingGlobalsList (); ;
3499 #line 577 "cgrammar.y"
3500 { unsetProcessingGlobals (); ;
3503 #line 579 "cgrammar.y"
3504 { setFunctionNoGlobals ();
3505 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3509 #line 586 "cgrammar.y"
3510 { setProcessingGlobalsList (); ;
3513 #line 588 "cgrammar.y"
3514 { unsetProcessingGlobals (); ;
3517 #line 589 "cgrammar.y"
3518 { setProcessingGlobalsList (); ;
3521 #line 591 "cgrammar.y"
3522 { unsetProcessingGlobals (); ;
3525 #line 593 "cgrammar.y"
3526 { setFunctionNoGlobals ();
3527 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3531 #line 605 "cgrammar.y"
3533 context_setProtectVars (); enterParamsTemp ();
3534 sRef_setGlobalScopeSafe ();
3538 #line 610 "cgrammar.y"
3540 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3541 sRef_clearGlobalScopeSafe ();
3542 context_releaseVars ();
3546 #line 618 "cgrammar.y"
3548 context_setProtectVars (); enterParamsTemp ();
3549 sRef_setGlobalScopeSafe ();
3553 #line 623 "cgrammar.y"
3555 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3556 sRef_clearGlobalScopeSafe ();
3557 context_releaseVars ();
3561 #line 647 "cgrammar.y"
3562 { yyval.sck = SP_ISONLY; ;
3565 #line 648 "cgrammar.y"
3566 { yyval.sck = SP_ISOBSERVER; ;
3569 #line 649 "cgrammar.y"
3570 { yyval.sck = SP_ISEXPOSED; ;
3573 #line 650 "cgrammar.y"
3574 { yyval.sck = SP_ISDEPENDENT; ;
3577 #line 651 "cgrammar.y"
3578 { yyval.sck = SP_ISOWNED; ;
3581 #line 652 "cgrammar.y"
3582 { yyval.sck = SP_ISSHARED; ;
3585 #line 653 "cgrammar.y"
3586 { yyval.sck = SP_ISNULL; ;
3589 #line 654 "cgrammar.y"
3590 { yyval.sck = SP_ISNOTNULL; ;
3593 #line 658 "cgrammar.y"
3595 context_setProtectVars ();
3597 sRef_setGlobalScopeSafe ();
3601 #line 664 "cgrammar.y"
3603 setFunctionSpecialClause (yyvsp[-6].tok, yyvsp[-3].srset, yyvsp[-1].tok);
3605 sRef_clearGlobalScopeSafe ();
3606 context_releaseVars ();
3610 #line 671 "cgrammar.y"
3612 context_setProtectVars ();
3614 sRef_setGlobalScopeSafe ();
3618 #line 677 "cgrammar.y"
3620 setFunctionStateSpecialClause (yyvsp[-7].tok, yyvsp[-5].sck, yyvsp[-3].srset, yyvsp[-1].tok);
3622 sRef_clearGlobalScopeSafe ();
3623 context_releaseVars ();
3627 #line 686 "cgrammar.y"
3629 qtype qint = qtype_create (ctype_int);
3630 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3635 #line 692 "cgrammar.y"
3636 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3639 #line 695 "cgrammar.y"
3640 { checkDoneParams (); context_enterInnerContext (); ;
3643 #line 697 "cgrammar.y"
3645 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3646 context_exitInner (yyvsp[0].expr);
3650 #line 702 "cgrammar.y"
3651 { doneParams (); context_enterInnerContext (); ;
3654 #line 704 "cgrammar.y"
3656 context_exitInner (yyvsp[0].expr);
3657 exprNode_checkFunctionBody (yyvsp[0].expr);
3658 yyval.expr = yyvsp[0].expr; /* old style */
3662 #line 712 "cgrammar.y"
3664 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3665 /* exprNode_checkFunction (context_getHeader (), $2); */
3668 context_exitFunction ();
3672 #line 721 "cgrammar.y"
3673 { yyval.srset = yyvsp[-2].srset; ;
3676 #line 722 "cgrammar.y"
3677 { yyval.srset = sRefSet_new (); ;
3680 #line 725 "cgrammar.y"
3681 { yyval.srset = yyvsp[-1].srset; ;
3684 #line 726 "cgrammar.y"
3685 { yyval.srset = sRefSet_new (); ;
3688 #line 729 "cgrammar.y"
3689 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3692 #line 730 "cgrammar.y"
3693 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3696 #line 731 "cgrammar.y"
3697 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3700 #line 732 "cgrammar.y"
3701 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3704 #line 733 "cgrammar.y"
3705 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3708 #line 734 "cgrammar.y"
3709 { yyval.sr = yyvsp[-1].sr; ;
3712 #line 735 "cgrammar.y"
3713 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3716 #line 736 "cgrammar.y"
3717 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3720 #line 740 "cgrammar.y"
3721 { yyval.sr = yyvsp[0].sr; ;
3724 #line 741 "cgrammar.y"
3725 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3728 #line 745 "cgrammar.y"
3729 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3732 #line 746 "cgrammar.y"
3733 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3736 #line 750 "cgrammar.y"
3737 { yyval.sr = checkSpecClausesId (yyvsp[0].entry); ;
3740 #line 752 "cgrammar.y"
3741 { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
3744 #line 753 "cgrammar.y"
3745 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3748 #line 754 "cgrammar.y"
3749 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3752 #line 755 "cgrammar.y"
3753 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3756 #line 756 "cgrammar.y"
3757 { yyval.sr = yyvsp[-1].sr; ;
3760 #line 757 "cgrammar.y"
3761 { cstring_markOwned (yyvsp[0].cname);
3762 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3765 #line 759 "cgrammar.y"
3766 { cstring_markOwned (yyvsp[0].cname);
3767 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3770 #line 764 "cgrammar.y"
3771 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3772 else { yyval.srset = sRefSet_undefined; }
3776 #line 768 "cgrammar.y"
3777 { if (sRef_isValid (yyvsp[0].sr))
3779 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3783 yyval.srset = yyvsp[-2].srset;
3788 #line 779 "cgrammar.y"
3789 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3792 #line 780 "cgrammar.y"
3793 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3796 #line 781 "cgrammar.y"
3797 { yyval.expr = yyvsp[0].expr; ;
3800 #line 782 "cgrammar.y"
3801 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3804 #line 783 "cgrammar.y"
3805 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3808 #line 784 "cgrammar.y"
3809 { yyval.expr = exprNode_makeError (); ;
3812 #line 788 "cgrammar.y"
3813 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3816 #line 789 "cgrammar.y"
3817 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3820 #line 790 "cgrammar.y"
3821 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
3824 #line 791 "cgrammar.y"
3825 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3828 #line 792 "cgrammar.y"
3829 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3832 #line 793 "cgrammar.y"
3833 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3836 #line 794 "cgrammar.y"
3837 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3840 #line 795 "cgrammar.y"
3841 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3844 #line 798 "cgrammar.y"
3845 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
3848 #line 799 "cgrammar.y"
3849 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
3852 #line 803 "cgrammar.y"
3853 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3856 #line 804 "cgrammar.y"
3857 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3860 #line 805 "cgrammar.y"
3861 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3864 #line 806 "cgrammar.y"
3865 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3868 #line 807 "cgrammar.y"
3869 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3872 #line 808 "cgrammar.y"
3873 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3876 #line 809 "cgrammar.y"
3877 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3880 #line 810 "cgrammar.y"
3881 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3884 #line 811 "cgrammar.y"
3885 { yyval.expr = yyvsp[0].expr; ;
3888 #line 812 "cgrammar.y"
3889 { yyval.expr = yyvsp[0].expr; ;
3892 #line 815 "cgrammar.y"
3893 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3896 #line 816 "cgrammar.y"
3897 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3900 #line 820 "cgrammar.y"
3901 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3904 #line 823 "cgrammar.y"
3905 { context_setProtectVars (); ;
3908 #line 824 "cgrammar.y"
3909 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3912 #line 827 "cgrammar.y"
3913 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3916 #line 828 "cgrammar.y"
3917 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3920 #line 829 "cgrammar.y"
3921 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3924 #line 830 "cgrammar.y"
3925 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3928 #line 835 "cgrammar.y"
3929 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3932 #line 839 "cgrammar.y"
3933 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3936 #line 840 "cgrammar.y"
3937 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3940 #line 841 "cgrammar.y"
3941 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3944 #line 845 "cgrammar.y"
3945 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3948 #line 846 "cgrammar.y"
3949 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3952 #line 850 "cgrammar.y"
3953 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3956 #line 851 "cgrammar.y"
3957 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3960 #line 855 "cgrammar.y"
3961 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3964 #line 856 "cgrammar.y"
3965 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3968 #line 857 "cgrammar.y"
3969 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3972 #line 858 "cgrammar.y"
3973 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3976 #line 862 "cgrammar.y"
3977 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3980 #line 863 "cgrammar.y"
3981 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3984 #line 867 "cgrammar.y"
3985 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3988 #line 871 "cgrammar.y"
3989 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3992 #line 876 "cgrammar.y"
3993 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3996 #line 881 "cgrammar.y"
3997 { exprNode_produceGuards (yyvsp[-1].expr);
3998 context_enterAndClause (yyvsp[-1].expr);
4002 #line 885 "cgrammar.y"
4004 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4005 context_exitAndClause (yyval.expr, yyvsp[0].expr);
4009 #line 893 "cgrammar.y"
4011 exprNode_produceGuards (yyvsp[-1].expr);
4012 context_enterOrClause (yyvsp[-1].expr);
4016 #line 898 "cgrammar.y"
4018 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4019 context_exitOrClause (yyval.expr, yyvsp[0].expr);
4023 #line 905 "cgrammar.y"
4024 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4027 #line 906 "cgrammar.y"
4028 { context_enterFalseClause (yyvsp[-4].expr); ;
4031 #line 907 "cgrammar.y"
4032 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
4035 #line 911 "cgrammar.y"
4036 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4039 #line 912 "cgrammar.y"
4040 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4043 #line 913 "cgrammar.y"
4044 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4047 #line 914 "cgrammar.y"
4048 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4051 #line 915 "cgrammar.y"
4052 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4055 #line 916 "cgrammar.y"
4056 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4059 #line 917 "cgrammar.y"
4060 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4063 #line 918 "cgrammar.y"
4064 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4067 #line 919 "cgrammar.y"
4068 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4071 #line 920 "cgrammar.y"
4072 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4075 #line 921 "cgrammar.y"
4076 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4079 #line 925 "cgrammar.y"
4080 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
4083 #line 928 "cgrammar.y"
4084 { yyval.expr = exprNode_undefined; ;
4087 #line 937 "cgrammar.y"
4088 { yyval.expr = yyvsp[0].expr; ;
4091 #line 938 "cgrammar.y"
4092 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
4095 #line 939 "cgrammar.y"
4096 { yyval.expr = exprNode_makeError (); ;
4099 #line 942 "cgrammar.y"
4100 { yyval.expr = exprNode_makeError (); ;
4103 #line 956 "cgrammar.y"
4105 setProcessingVars (yyvsp[-3].qtyp);
4106 processNamedDecl (yyvsp[-1].ntyp); ;
4109 #line 959 "cgrammar.y"
4110 { unsetProcessingVars (); yyval.expr = yyvsp[-2].expr; ;
4113 #line 961 "cgrammar.y"
4114 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp);
4118 #line 964 "cgrammar.y"
4119 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
4120 unsetProcessingVars ();
4124 #line 968 "cgrammar.y"
4125 { processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeError (); ;
4128 #line 969 "cgrammar.y"
4129 { processNamedDecl (yyvsp[-2].ntyp); ;
4132 #line 970 "cgrammar.y"
4133 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
4136 #line 974 "cgrammar.y"
4137 { setProcessingTypedef (yyvsp[0].qtyp); ;
4140 #line 975 "cgrammar.y"
4141 { unsetProcessingTypedef (); ;
4144 #line 976 "cgrammar.y"
4145 { /* in the ANSI grammar, semantics unclear */ ;
4148 #line 977 "cgrammar.y"
4149 { /* in the ANSI grammar, semantics unclear */ ;
4152 #line 980 "cgrammar.y"
4153 { g_expectingTypeName = TRUE; ;
4156 #line 983 "cgrammar.y"
4157 { g_expectingTypeName = TRUE; context_pushLoc (); ;
4160 #line 986 "cgrammar.y"
4164 #line 989 "cgrammar.y"
4168 #line 990 "cgrammar.y"
4172 #line 993 "cgrammar.y"
4173 { yyval.expr = exprNode_makeError (); ;
4176 #line 994 "cgrammar.y"
4177 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4180 #line 997 "cgrammar.y"
4181 { yyval.expr = yyvsp[0].expr; ;
4184 #line 998 "cgrammar.y"
4185 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].alist); ;
4188 #line 999 "cgrammar.y"
4189 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].alist); ;
4192 #line 1004 "cgrammar.y"
4193 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
4196 #line 1006 "cgrammar.y"
4197 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
4200 #line 1014 "cgrammar.y"
4201 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4204 #line 1015 "cgrammar.y"
4205 { yyval.typequal = qual_createInline (); ;
4208 #line 1016 "cgrammar.y"
4209 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4212 #line 1017 "cgrammar.y"
4213 { yyval.typequal = qual_createAuto (); ;
4216 #line 1018 "cgrammar.y"
4217 { yyval.typequal = qual_createRegister (); ;
4220 #line 1021 "cgrammar.y"
4221 { yyval.typequal = qual_createConst (); ;
4224 #line 1022 "cgrammar.y"
4225 { yyval.typequal = qual_createVolatile (); ;
4228 #line 1023 "cgrammar.y"
4229 { yyval.typequal = qual_createOut (); ;
4232 #line 1024 "cgrammar.y"
4233 { yyval.typequal = qual_createIn (); ;
4236 #line 1025 "cgrammar.y"
4237 { yyval.typequal = qual_createPartial (); ;
4240 #line 1026 "cgrammar.y"
4241 { yyval.typequal = qual_createSpecial (); ;
4244 #line 1027 "cgrammar.y"
4245 { yyval.typequal = qual_createOwned (); ;
4248 #line 1028 "cgrammar.y"
4249 { yyval.typequal = qual_createDependent (); ;
4252 #line 1029 "cgrammar.y"
4253 { yyval.typequal = qual_createYield (); ;
4256 #line 1030 "cgrammar.y"
4257 { yyval.typequal = qual_createTemp (); ;
4260 #line 1031 "cgrammar.y"
4261 { yyval.typequal = qual_createOnly (); ;
4264 #line 1032 "cgrammar.y"
4265 { yyval.typequal = qual_createKeep (); ;
4268 #line 1033 "cgrammar.y"
4269 { yyval.typequal = qual_createKept (); ;
4272 #line 1034 "cgrammar.y"
4273 { yyval.typequal = qual_createShared (); ;
4276 #line 1035 "cgrammar.y"
4277 { yyval.typequal = qual_createUnique (); ;
4280 #line 1036 "cgrammar.y"
4281 { yyval.typequal = qual_createExits (); ;
4284 #line 1037 "cgrammar.y"
4285 { yyval.typequal = qual_createMayExit (); ;
4288 #line 1038 "cgrammar.y"
4289 { yyval.typequal = qual_createTrueExit (); ;
4292 #line 1039 "cgrammar.y"
4293 { yyval.typequal = qual_createFalseExit (); ;
4296 #line 1040 "cgrammar.y"
4297 { yyval.typequal = qual_createNeverExit (); ;
4300 #line 1041 "cgrammar.y"
4301 { yyval.typequal = qual_createNull (); ;
4304 #line 1042 "cgrammar.y"
4305 { yyval.typequal = qual_createRelNull (); ;
4308 #line 1043 "cgrammar.y"
4309 { yyval.typequal = qual_createReturned (); ;
4312 #line 1044 "cgrammar.y"
4313 { yyval.typequal = qual_createExposed (); ;
4316 #line 1045 "cgrammar.y"
4317 { yyval.typequal = qual_createObserver (); ;
4320 #line 1046 "cgrammar.y"
4321 { yyval.typequal = qual_createChecked (); ;
4324 #line 1047 "cgrammar.y"
4325 { yyval.typequal = qual_createCheckMod (); ;
4328 #line 1048 "cgrammar.y"
4329 { yyval.typequal = qual_createUnchecked (); ;
4332 #line 1049 "cgrammar.y"
4333 { yyval.typequal = qual_createCheckedStrict (); ;
4336 #line 1050 "cgrammar.y"
4337 { yyval.typequal = qual_createTrueNull (); ;
4340 #line 1051 "cgrammar.y"
4341 { yyval.typequal = qual_createFalseNull (); ;
4344 #line 1052 "cgrammar.y"
4345 { yyval.typequal = qual_createUnused (); ;
4348 #line 1053 "cgrammar.y"
4349 { yyval.typequal = qual_createExternal (); ;
4352 #line 1054 "cgrammar.y"
4353 { yyval.typequal = qual_createSef (); ;
4356 #line 1055 "cgrammar.y"
4357 { yyval.typequal = qual_createAbstract (); ;
4360 #line 1056 "cgrammar.y"
4361 { yyval.typequal = qual_createConcrete (); ;
4364 #line 1057 "cgrammar.y"
4365 { yyval.typequal = qual_createMutable (); ;
4368 #line 1058 "cgrammar.y"
4369 { yyval.typequal = qual_createImmutable (); ;
4372 #line 1059 "cgrammar.y"
4373 { yyval.typequal = qual_createNotNull (); ;
4376 #line 1060 "cgrammar.y"
4377 { yyval.typequal = qual_createRefCounted (); ;
4380 #line 1061 "cgrammar.y"
4381 { yyval.typequal = qual_createRefs (); ;
4384 #line 1062 "cgrammar.y"
4385 { yyval.typequal = qual_createKillRef (); ;
4388 #line 1063 "cgrammar.y"
4389 { yyval.typequal = qual_createRelDef (); ;
4392 #line 1064 "cgrammar.y"
4393 { yyval.typequal = qual_createNewRef (); ;
4396 #line 1065 "cgrammar.y"
4397 { yyval.typequal = qual_createTempRef (); ;
4400 #line 1066 "cgrammar.y"
4401 { yyval.typequal = qual_createNullTerminated (); ;
4404 #line 1072 "cgrammar.y"
4405 { yyval.typequal = qual_createShort (); ;
4408 #line 1073 "cgrammar.y"
4409 { yyval.typequal = qual_createLong (); ;
4412 #line 1074 "cgrammar.y"
4413 { yyval.typequal = qual_createSigned (); ;
4416 #line 1075 "cgrammar.y"
4417 { yyval.typequal = qual_createUnsigned (); ;
4420 #line 1084 "cgrammar.y"
4421 { yyval.ctyp = ctype_unknown; ;
4424 #line 1085 "cgrammar.y"
4425 { yyval.ctyp = ctype_anyintegral; ;
4428 #line 1086 "cgrammar.y"
4429 { yyval.ctyp = ctype_unsignedintegral; ;
4432 #line 1087 "cgrammar.y"
4433 { yyval.ctyp = ctype_signedintegral; ;
4436 #line 1091 "cgrammar.y"
4437 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4440 #line 1095 "cgrammar.y"
4441 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4444 #line 1098 "cgrammar.y"
4445 { yyval.qtyp = yyvsp[0].qtyp; ;
4448 #line 1100 "cgrammar.y"
4449 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4452 #line 1105 "cgrammar.y"
4453 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4456 #line 1108 "cgrammar.y"
4457 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4460 #line 1109 "cgrammar.y"
4461 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4464 #line 1110 "cgrammar.y"
4465 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4468 #line 1113 "cgrammar.y"
4469 { yyval.qtyp = qtype_unknown (); ;
4472 #line 1114 "cgrammar.y"
4473 { yyval.qtyp = yyvsp[0].qtyp; ;
4476 #line 1117 "cgrammar.y"
4477 { sRef_setGlobalScopeSafe (); ;
4480 #line 1119 "cgrammar.y"
4481 { sRef_clearGlobalScopeSafe (); ;
4484 #line 1121 "cgrammar.y"
4485 { yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ;
4488 #line 1122 "cgrammar.y"
4489 { sRef_setGlobalScopeSafe (); ;
4492 #line 1124 "cgrammar.y"
4493 { sRef_clearGlobalScopeSafe (); ;
4496 #line 1126 "cgrammar.y"
4497 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4500 #line 1128 "cgrammar.y"
4501 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4504 #line 1130 "cgrammar.y"
4505 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4508 #line 1131 "cgrammar.y"
4509 { sRef_setGlobalScopeSafe (); ;
4512 #line 1133 "cgrammar.y"
4513 { sRef_clearGlobalScopeSafe (); ;
4516 #line 1135 "cgrammar.y"
4517 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4520 #line 1136 "cgrammar.y"
4521 { sRef_setGlobalScopeSafe (); ;
4524 #line 1138 "cgrammar.y"
4525 { sRef_clearGlobalScopeSafe (); ;
4528 #line 1140 "cgrammar.y"
4529 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4532 #line 1142 "cgrammar.y"
4533 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4536 #line 1144 "cgrammar.y"
4537 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4540 #line 1145 "cgrammar.y"
4541 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4544 #line 1146 "cgrammar.y"
4545 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4548 #line 1149 "cgrammar.y"
4549 { g_expectingTypeName = FALSE; ;
4552 #line 1153 "cgrammar.y"
4553 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4556 #line 1154 "cgrammar.y"
4557 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4560 #line 1158 "cgrammar.y"
4561 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4564 #line 1160 "cgrammar.y"
4565 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4568 #line 1164 "cgrammar.y"
4569 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4572 #line 1166 "cgrammar.y"
4573 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4576 #line 1169 "cgrammar.y"
4577 { yyval.ntyp = yyvsp[0].ntyp; ;
4580 #line 1170 "cgrammar.y"
4581 { yyval.ntyp = idDecl_undefined; ;
4584 #line 1171 "cgrammar.y"
4585 { yyval.ntyp = yyvsp[-3].ntyp; ;
4588 #line 1176 "cgrammar.y"
4589 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4592 #line 1177 "cgrammar.y"
4593 { context_pushLoc (); ;
4596 #line 1178 "cgrammar.y"
4597 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4600 #line 1179 "cgrammar.y"
4601 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4604 #line 1183 "cgrammar.y"
4605 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4608 #line 1185 "cgrammar.y"
4609 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4612 #line 1190 "cgrammar.y"
4613 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4614 usymtab_supGlobalEntry (ue);
4615 yyval.cname = yyvsp[0].cname;
4619 #line 1195 "cgrammar.y"
4620 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4621 usymtab_supGlobalEntry (ue);
4622 yyval.cname = yyvsp[-3].cname;
4626 #line 1202 "cgrammar.y"
4627 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4630 #line 1204 "cgrammar.y"
4632 qtype qt = qtype_unknown ();
4634 qtype_adjustPointers (yyvsp[-1].count, qt);
4635 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4639 #line 1211 "cgrammar.y"
4640 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4643 #line 1216 "cgrammar.y"
4644 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4647 #line 1219 "cgrammar.y"
4648 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4651 #line 1220 "cgrammar.y"
4652 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4655 #line 1223 "cgrammar.y"
4656 { /* ignored for now */; ;
4659 #line 1224 "cgrammar.y"
4663 #line 1227 "cgrammar.y"
4667 #line 1228 "cgrammar.y"
4671 #line 1231 "cgrammar.y"
4672 { yyval.count = 1; ;
4675 #line 1232 "cgrammar.y"
4676 { yyval.count = 1; ;
4679 #line 1233 "cgrammar.y"
4680 { yyval.count = 1 + yyvsp[0].count; ;
4683 #line 1234 "cgrammar.y"
4684 { yyval.count = 1 + yyvsp[0].count; ;
4687 #line 1238 "cgrammar.y"
4688 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4691 #line 1241 "cgrammar.y"
4692 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4695 #line 1242 "cgrammar.y"
4696 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4699 #line 1245 "cgrammar.y"
4700 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4703 #line 1247 "cgrammar.y"
4704 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4707 #line 1250 "cgrammar.y"
4711 #line 1250 "cgrammar.y"
4712 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4715 #line 1251 "cgrammar.y"
4719 #line 1252 "cgrammar.y"
4720 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4723 #line 1256 "cgrammar.y"
4725 if (isFlipOldStyle ())
4727 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4733 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4737 #line 1268 "cgrammar.y"
4739 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4743 llparseerror (message ("Inconsistent function parameter syntax: %q",
4744 idDecl_unparse (tparam)));
4748 yyval.oentry = makeCurrentParam (tparam);
4749 idDecl_free (tparam);
4753 #line 1284 "cgrammar.y"
4754 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4757 #line 1287 "cgrammar.y"
4758 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4761 #line 1289 "cgrammar.y"
4762 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4765 #line 1292 "cgrammar.y"
4766 { yyval.ctyp = ctype_unknown; ;
4769 #line 1297 "cgrammar.y"
4770 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4773 #line 1298 "cgrammar.y"
4774 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4777 #line 1300 "cgrammar.y"
4778 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4781 #line 1301 "cgrammar.y"
4782 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4785 #line 1303 "cgrammar.y"
4786 { yyval.ctyp = ctype_makeFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4789 #line 1305 "cgrammar.y"
4790 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4793 #line 1307 "cgrammar.y"
4794 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4797 #line 1309 "cgrammar.y"
4798 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4801 #line 1311 "cgrammar.y"
4802 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4805 #line 1339 "cgrammar.y"
4806 { yyval.expr = exprNode_labelMarker (yyvsp[0].cname); ;
4809 #line 1344 "cgrammar.y"
4810 { yyval.expr = yyvsp[0].expr; ;
4813 #line 1352 "cgrammar.y"
4814 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4817 #line 1356 "cgrammar.y"
4818 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4821 #line 1358 "cgrammar.y"
4822 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4825 #line 1360 "cgrammar.y"
4826 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4829 #line 1362 "cgrammar.y"
4830 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4833 #line 1366 "cgrammar.y"
4834 { context_setProtectVars (); ;
4837 #line 1366 "cgrammar.y"
4838 { context_sizeofReleaseVars (); ;
4841 #line 1368 "cgrammar.y"
4842 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4843 context_enterForClause (yyvsp[-5].expr); ;
4846 #line 1373 "cgrammar.y"
4847 { setProcessingIterVars (yyvsp[-2].entry); ;
4850 #line 1375 "cgrammar.y"
4851 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].alist); ;
4854 #line 1376 "cgrammar.y"
4855 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4858 #line 1382 "cgrammar.y"
4859 { yyval.expr = yyvsp[0].expr; ;
4862 #line 1390 "cgrammar.y"
4863 { yyval.expr = yyvsp[-1].expr; ;
4866 #line 1391 "cgrammar.y"
4867 { yyval.expr = exprNode_makeError (); ;
4870 #line 1395 "cgrammar.y"
4871 { /* don't: context_exitTrueClause ($1, $2); */
4872 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4876 #line 1400 "cgrammar.y"
4877 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4880 #line 1403 "cgrammar.y"
4881 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4884 #line 1418 "cgrammar.y"
4885 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4888 #line 1420 "cgrammar.y"
4889 { yyval.expr = exprNode_makeError (); ;
4892 #line 1423 "cgrammar.y"
4893 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
4896 #line 1424 "cgrammar.y"
4897 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4900 #line 1430 "cgrammar.y"
4901 { context_enterCaseClause (yyvsp[0].expr); ;
4904 #line 1431 "cgrammar.y"
4905 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4908 #line 1432 "cgrammar.y"
4909 { context_enterCaseClause (yyvsp[0].expr); ;
4912 #line 1433 "cgrammar.y"
4913 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4916 #line 1436 "cgrammar.y"
4917 { context_enterCaseClause (exprNode_undefined); ;
4920 #line 1437 "cgrammar.y"
4921 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
4924 #line 1438 "cgrammar.y"
4925 { context_enterCaseClause (exprNode_undefined); ;
4928 #line 1439 "cgrammar.y"
4929 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
4932 #line 1442 "cgrammar.y"
4933 { yyval.expr = yyvsp[-1].expr; ;
4936 #line 1444 "cgrammar.y"
4937 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4940 #line 1447 "cgrammar.y"
4941 { yyval.expr = yyvsp[-1].expr; ;
4944 #line 1450 "cgrammar.y"
4945 { context_enterInnerContext (); ;
4948 #line 1453 "cgrammar.y"
4949 { context_exitInnerPlain (); ;
4952 #line 1456 "cgrammar.y"
4953 { context_enterStructInnerContext (); ;
4956 #line 1459 "cgrammar.y"
4957 { context_exitStructInnerContext (); ;
4960 #line 1462 "cgrammar.y"
4961 { context_exitInnerSafe (); ;
4964 #line 1465 "cgrammar.y"
4965 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4968 #line 1466 "cgrammar.y"
4969 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4972 #line 1467 "cgrammar.y"
4973 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4976 #line 1469 "cgrammar.y"
4977 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4980 #line 1470 "cgrammar.y"
4981 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4984 #line 1472 "cgrammar.y"
4985 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4988 #line 1474 "cgrammar.y"
4989 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4992 #line 1476 "cgrammar.y"
4993 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
4994 lltok_getLoc (yyvsp[-1].tok)));
4998 #line 1483 "cgrammar.y"
4999 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
5002 #line 1487 "cgrammar.y"
5003 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5006 #line 1489 "cgrammar.y"
5007 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5010 #line 1491 "cgrammar.y"
5011 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5014 #line 1493 "cgrammar.y"
5015 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5018 #line 1497 "cgrammar.y"
5019 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5022 #line 1500 "cgrammar.y"
5023 { yyval.expr = yyvsp[0].expr; ;
5026 #line 1501 "cgrammar.y"
5027 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5030 #line 1504 "cgrammar.y"
5031 { yyval.expr = yyvsp[0].expr; ;
5034 #line 1505 "cgrammar.y"
5035 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5038 #line 1508 "cgrammar.y"
5039 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5042 #line 1509 "cgrammar.y"
5043 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5046 #line 1512 "cgrammar.y"
5047 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5050 #line 1513 "cgrammar.y"
5051 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5054 #line 1514 "cgrammar.y"
5055 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
5058 #line 1518 "cgrammar.y"
5059 { yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
5062 #line 1526 "cgrammar.y"
5064 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
5065 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
5069 #line 1530 "cgrammar.y"
5070 { context_enterFalseClause (yyvsp[-2].expr); ;
5073 #line 1531 "cgrammar.y"
5075 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5076 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5080 #line 1535 "cgrammar.y"
5081 { context_enterSwitch (yyvsp[0].expr); ;
5084 #line 1536 "cgrammar.y"
5085 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
5088 #line 1540 "cgrammar.y"
5089 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
5092 #line 1544 "cgrammar.y"
5093 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
5096 #line 1547 "cgrammar.y"
5097 { context_enterIterClause (); ;
5100 #line 1548 "cgrammar.y"
5101 { setProcessingIterVars (yyvsp[-3].entry); ;
5104 #line 1551 "cgrammar.y"
5106 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].alist, yyvsp[-2].expr, yyvsp[-1].entry);
5111 #line 1557 "cgrammar.y"
5112 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
5115 #line 1558 "cgrammar.y"
5116 { nextIterParam (); ;
5119 #line 1559 "cgrammar.y"
5120 { yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ;
5123 #line 1562 "cgrammar.y"
5124 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
5127 #line 1563 "cgrammar.y"
5128 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
5131 #line 1564 "cgrammar.y"
5132 { uentry ue = coerceIterId (yyvsp[0].cname);
5134 if (uentry_isValid (ue))
5136 yyval.expr = exprNode_iterId (ue);
5140 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
5145 #line 1575 "cgrammar.y"
5146 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
5149 #line 1583 "cgrammar.y"
5150 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5153 #line 1587 "cgrammar.y"
5154 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
5157 #line 1588 "cgrammar.y"
5158 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
5161 #line 1589 "cgrammar.y"
5162 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
5165 #line 1591 "cgrammar.y"
5166 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
5169 #line 1592 "cgrammar.y"
5170 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
5173 #line 1593 "cgrammar.y"
5174 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
5177 #line 1594 "cgrammar.y"
5178 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5181 #line 1595 "cgrammar.y"
5182 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5185 #line 1599 "cgrammar.y"
5186 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5189 #line 1600 "cgrammar.y"
5190 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5193 #line 1601 "cgrammar.y"
5194 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5197 #line 1602 "cgrammar.y"
5198 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5201 #line 1603 "cgrammar.y"
5202 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5205 #line 1604 "cgrammar.y"
5206 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5209 #line 1605 "cgrammar.y"
5210 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5213 #line 1606 "cgrammar.y"
5214 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5217 #line 1607 "cgrammar.y"
5218 { yyval.expr = yyvsp[0].expr; ;
5221 #line 1611 "cgrammar.y"
5222 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
5225 #line 1615 "cgrammar.y"
5226 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5229 #line 1616 "cgrammar.y"
5230 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5233 #line 1617 "cgrammar.y"
5234 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5237 #line 1621 "cgrammar.y"
5238 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5241 #line 1622 "cgrammar.y"
5242 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5245 #line 1626 "cgrammar.y"
5246 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5249 #line 1627 "cgrammar.y"
5250 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5253 #line 1631 "cgrammar.y"
5254 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5257 #line 1632 "cgrammar.y"
5258 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5261 #line 1633 "cgrammar.y"
5262 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5265 #line 1634 "cgrammar.y"
5266 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5269 #line 1638 "cgrammar.y"
5270 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5273 #line 1639 "cgrammar.y"
5274 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5277 #line 1643 "cgrammar.y"
5278 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5281 #line 1647 "cgrammar.y"
5282 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5285 #line 1652 "cgrammar.y"
5286 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5289 #line 1656 "cgrammar.y"
5290 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5293 #line 1660 "cgrammar.y"
5294 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5297 #line 1664 "cgrammar.y"
5298 { context_enterTrueClause (yyvsp[-1].expr); ;
5301 #line 1665 "cgrammar.y"
5302 { context_enterFalseClause (yyvsp[-4].expr); ;
5305 #line 1666 "cgrammar.y"
5306 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5309 #line 1670 "cgrammar.y"
5310 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5313 #line 1671 "cgrammar.y"
5314 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5317 #line 1672 "cgrammar.y"
5318 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5321 #line 1673 "cgrammar.y"
5322 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5325 #line 1674 "cgrammar.y"
5326 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5329 #line 1675 "cgrammar.y"
5330 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5333 #line 1676 "cgrammar.y"
5334 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5337 #line 1677 "cgrammar.y"
5338 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5341 #line 1678 "cgrammar.y"
5342 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5345 #line 1679 "cgrammar.y"
5346 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5349 #line 1680 "cgrammar.y"
5350 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5353 #line 1683 "cgrammar.y"
5354 { yyval.entry = yyvsp[0].entry; ;
5357 #line 1684 "cgrammar.y"
5358 { yyval.entry = uentry_undefined; ;
5361 #line 1687 "cgrammar.y"
5362 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5365 #line 1691 "cgrammar.y"
5366 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5369 #line 1693 "cgrammar.y"
5370 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5373 #line 1695 "cgrammar.y"
5374 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5377 #line 1698 "cgrammar.y"
5378 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5381 #line 1700 "cgrammar.y"
5382 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5385 #line 1702 "cgrammar.y"
5386 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5389 #line 1703 "cgrammar.y"
5390 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5393 #line 1706 "cgrammar.y"
5394 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5397 #line 1707 "cgrammar.y"
5398 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5401 #line 1709 "cgrammar.y"
5402 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5405 #line 1710 "cgrammar.y"
5406 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5409 #line 1711 "cgrammar.y"
5410 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5413 #line 1712 "cgrammar.y"
5414 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5417 #line 1713 "cgrammar.y"
5418 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5421 #line 1714 "cgrammar.y"
5422 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5425 #line 1715 "cgrammar.y"
5426 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5429 #line 1716 "cgrammar.y"
5430 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5433 #line 1720 "cgrammar.y"
5437 #line 1727 "cgrammar.y"
5438 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5441 #line 1728 "cgrammar.y"
5442 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5445 #line 1729 "cgrammar.y"
5446 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5449 #line 1730 "cgrammar.y"
5450 { yyval.cname = yyvsp[0].cname; ;
5453 #line 1734 "cgrammar.y"
5454 { yyval.ctyp = ctype_unknown; ;
5457 /* the action file gets copied in in place of this dollarsign */
5458 #line 498 "/gnu/share/bison.simple"
5469 short *ssp1 = yyss - 1;
5470 fprintf (stderr, "state stack now");
5471 while (ssp1 != yyssp)
5472 fprintf (stderr, " %d", *++ssp1);
5473 fprintf (stderr, "\n");
5483 yylsp->first_line = yylloc.first_line;
5484 yylsp->first_column = yylloc.first_column;
5485 yylsp->last_line = (yylsp-1)->last_line;
5486 yylsp->last_column = (yylsp-1)->last_column;
5491 yylsp->last_line = (yylsp+yylen-1)->last_line;
5492 yylsp->last_column = (yylsp+yylen-1)->last_column;
5496 /* Now "shift" the result of the reduction.
5497 Determine what state that goes to,
5498 based on the state we popped back to
5499 and the rule number reduced by. */
5503 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5504 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5505 yystate = yytable[yystate];
5507 yystate = yydefgoto[yyn - YYNTBASE];
5511 yyerrlab: /* here on detecting error */
5514 /* If not already recovering from an error, report this error. */
5518 #ifdef YYERROR_VERBOSE
5519 yyn = yypact[yystate];
5521 if (yyn > YYFLAG && yyn < YYLAST)
5528 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5529 for (x = (yyn < 0 ? -yyn : 0);
5530 x < (sizeof(yytname) / sizeof(char *)); x++)
5531 if (yycheck[x + yyn] == x)
5532 size += strlen(yytname[x]) + 15, count++;
5533 msg = (char *) malloc(size + 15);
5536 strcpy(msg, "parse error");
5541 for (x = (yyn < 0 ? -yyn : 0);
5542 x < (sizeof(yytname) / sizeof(char *)); x++)
5543 if (yycheck[x + yyn] == x)
5545 strcat(msg, count == 0 ? ", expecting `" : " or `");
5546 strcat(msg, yytname[x]);
5555 yyerror ("parse error; also virtual memory exceeded");
5558 #endif /* YYERROR_VERBOSE */
5559 yyerror("parse error");
5563 yyerrlab1: /* here on error raised explicitly by an action */
5565 if (yyerrstatus == 3)
5567 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5569 /* return failure if at end of input */
5570 if (yychar == YYEOF)
5575 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5581 /* Else will try to reuse lookahead token
5582 after shifting the error token. */
5584 yyerrstatus = 3; /* Each real token shifted decrements this */
5588 yyerrdefault: /* current state does not do anything special for the error token. */
5591 /* This is wrong; only states that explicitly want error tokens
5592 should shift them. */
5593 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5594 if (yyn) goto yydefault;
5597 yyerrpop: /* pop the current state because it cannot handle the error token */
5599 if (yyssp == yyss) YYABORT;
5609 short *ssp1 = yyss - 1;
5610 fprintf (stderr, "Error: state stack now");
5611 while (ssp1 != yyssp)
5612 fprintf (stderr, " %d", *++ssp1);
5613 fprintf (stderr, "\n");
5619 yyn = yypact[yystate];
5624 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5643 fprintf(stderr, "Shifting error token, ");
5654 #line 1736 "cgrammar.y"
5658 extern char *yytext;
5661 # include "bison.reset"
5663 void yyerror (/*@unused@*/ char *s)
5665 static bool givehint = FALSE;
5667 if (context_inIterDef ())
5669 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5670 context_inFunctionName ()));
5672 else if (context_inIterEnd ())
5674 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5675 context_inFunctionName ()));
5677 else if (context_inMacro ())
5679 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5680 context_inFunctionName ()));
5682 if (context_inMacroUnknown ())
5686 llhint (cstring_makeLiteral
5687 ("Precede macro definition with /*@notfunction@*/ "
5688 "to suppress checking and force expansion"));
5697 llparseerror (cstring_undefined);
5701 void printState (idDecl t) {
5702 cstring id = idDecl_getName (t);
5703 uentry ue = usymtab_lookupSafe (id);
5705 sRef s = uentry_getSref (ue);
5707 printf("State = %d\n", s->bufinfo.bufstate);
5711 /*take this out soon */
5712 /* void testassert1 (cstring id, icstring cons ) { */
5713 /* uentry ue =usymtab_lookupSafe (id); */
5714 /* sRef s = uentry_getSref (ue); */
5715 /* printf ("Doing testassert1 with setbuffersize\n"); */
5716 /* printf("State = %d\n", s->bufinfo.bufstate); */
5718 /* void testassert2 (cstring id) { */
5719 /* uentry ue =usymtab_lookupSafe (id); */
5720 /* sRef s = uentry_getSref (ue); */
5721 /* printf ("Doing testassert2 with setbuffersize\n"); */
5722 /* printf("State = %d\n", s->bufinfo.bufstate); */