2 /* A Bison parser, made from cgrammar.y
3 by GNU Bison version 1.28 */
5 #define YYBISON 1 /* Identify Bison output. */
9 #define CTOK_ELIPSIS 259
33 #define TAMPERSAND 283
61 #define MUL_ASSIGN 311
62 #define DIV_ASSIGN 312
63 #define MOD_ASSIGN 313
64 #define ADD_ASSIGN 314
65 #define SUB_ASSIGN 315
66 #define LEFT_ASSIGN 316
67 #define RIGHT_ASSIGN 317
68 #define AND_ASSIGN 318
69 #define XOR_ASSIGN 319
84 #define QALLOCATES 334
87 #define QPRECLAUSE 337
88 #define QPOSTCLAUSE 338
94 #define LLMACROITER 344
95 #define LLMACROEND 345
97 #define QSWITCHBREAK 347
98 #define QLOOPBREAK 348
99 #define QINNERBREAK 349
100 #define QSAFEBREAK 350
101 #define QINNERCONTINUE 351
102 #define QFALLTHROUGH 352
103 #define QLINTNOTREACHED 353
104 #define QLINTFALLTHROUGH 354
105 #define QLINTFALLTHRU 355
106 #define QARGSUSED 356
107 #define QPRINTFLIKE 357
108 #define QLINTPRINTFLIKE 358
109 #define QSCANFLIKE 359
110 #define QMESSAGELIKE 360
111 #define QNOTREACHED 361
113 #define QVOLATILE 363
115 #define QEXTENSION 365
119 #define QREGISTER 369
129 #define QUNCHECKED 379
130 #define QCHECKEDSTRICT 380
131 #define QCHECKMOD 381
137 #define QDEPENDENT 387
138 #define QRETURNED 388
141 #define QOBSERVER 391
145 #define QNEVEREXIT 395
146 #define QTRUEEXIT 396
147 #define QFALSEEXIT 397
150 #define QUNSIGNED 400
156 #define QABSTRACT 406
157 #define QCONCRETE 407
159 #define QIMMUTABLE 409
160 #define QTRUENULL 410
161 #define QFALSENULL 411
162 #define QEXTERNAL 412
163 #define QREFCOUNTED 413
176 #define QINTEGRALTYPE 426
177 #define QUNSIGNEDINTEGRALTYPE 427
178 #define QSIGNEDINTEGRALTYPE 428
179 #define QNULLTERMINATED 429
180 #define QSETBUFFERSIZE 430
181 #define QBUFFERCONSTRAINT 431
182 #define QENSURESCONSTRAINT 432
183 #define QSETSTRINGLENGTH 433
186 #define QTESTINRANGE 436
187 #define IDENTIFIER 437
188 #define NEW_IDENTIFIER 438
189 #define TYPE_NAME_OR_ID 439
190 #define CCONSTANT 440
191 #define ITER_NAME 441
192 #define ITER_ENDNAME 442
193 #define TYPE_NAME 443
195 #line 19 "cgrammar.y"
201 ** Yacc/Bison grammar for extended ANSI C used by LCLint.
203 ** original grammar by Nate Osgood ---
204 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
206 ** changes for LCLint --- handle typedef names correctly
207 ** fix struct/union parsing bug (empty struct is accepted)
208 ** add productions to handle macros --- require
209 ** error correction --- main source of conflicts in grammar.
210 ** need to process initializations sequentially, L->R
212 ** production names are cryptic, so more productions fit on one line
214 ** conflicts: 87 shift/reduce, 18 reduce/reduce
215 ** most of these are due to handling macros
216 ** a few are due to handling type expressions
222 extern void swallowMacro (void);
224 # include "lclintMacros.nf"
226 # include "cgrammar.h"
227 # include "exprChecks.h"
232 # define SHOWCSYM FALSE
233 void yyerror (char *s);
236 ** This is necessary, or else when the bison-generated code #include's malloc.h,
237 ** there will be a parse error.
239 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
240 ** in bison-generated files under Win32.
251 #line 75 "cgrammar.y"
256 specialClauseKind sck;
261 /*@only@*/ qtype qtyp;
262 /*@only@*/ cstring cname;
263 /*@only@*/ idDecl ntyp;
264 /*@only@*/ idDeclList ntyplist;
265 /*@only@*/ uentryList flist;
266 /*@owned@*/ uentryList entrylist;
267 /*@observer@*/ /*@dependent@*/ uentry entry;
268 /*@only@*/ uentry oentry;
269 /*@only@*/ exprNode expr;
270 /*@only@*/ enumNameList enumnamelist;
271 /*@only@*/ exprNodeList alist;
272 /*@only@*/ sRefSet srset;
273 /*@only@*/ cstringList cstringlist;
297 #define YYFLAG -32768
300 #define YYTRANSLATE(x) ((unsigned)(x) <= 443 ? yytranslate[x] : 433)
302 static const short yytranslate[] = { 0,
303 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
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, 1, 3, 4, 5, 6,
329 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
330 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
331 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
332 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
333 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
334 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
335 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
336 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
337 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
338 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
339 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
340 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
341 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
342 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
343 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
344 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
345 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
346 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
351 static const short yyprhs[] = { 0,
352 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
353 21, 23, 32, 44, 45, 51, 53, 57, 59, 62,
354 64, 71, 75, 82, 83, 91, 92, 101, 103, 110,
355 114, 121, 122, 129, 130, 138, 139, 140, 151, 155,
356 159, 163, 166, 168, 169, 172, 173, 176, 179, 180,
357 185, 186, 187, 192, 193, 196, 198, 203, 205, 207,
358 209, 211, 213, 215, 220, 226, 228, 230, 232, 234,
359 238, 243, 246, 250, 254, 258, 260, 262, 264, 265,
360 268, 269, 272, 274, 277, 279, 282, 284, 287, 289,
361 293, 296, 298, 300, 302, 304, 306, 308, 310, 311,
362 314, 315, 322, 323, 330, 332, 334, 335, 336, 342,
363 343, 349, 351, 353, 354, 356, 357, 358, 362, 363,
364 367, 369, 371, 373, 375, 377, 379, 381, 383, 385,
365 387, 389, 391, 393, 395, 397, 399, 401, 402, 410,
366 411, 420, 422, 426, 427, 431, 432, 436, 439, 443,
367 446, 449, 451, 453, 455, 459, 464, 467, 471, 475,
368 479, 481, 483, 485, 489, 491, 493, 497, 502, 505,
369 509, 513, 517, 519, 523, 525, 527, 529, 533, 535,
370 537, 539, 544, 548, 553, 560, 566, 572, 575, 578,
371 580, 584, 586, 589, 592, 595, 598, 601, 604, 607,
372 610, 612, 614, 618, 620, 630, 631, 635, 640, 643,
373 648, 651, 653, 658, 660, 664, 668, 672, 674, 678,
374 682, 684, 688, 692, 694, 698, 702, 706, 710, 712,
375 716, 720, 722, 726, 728, 732, 734, 738, 740, 741,
376 746, 748, 749, 754, 756, 757, 758, 766, 768, 772,
377 776, 780, 784, 788, 792, 796, 800, 804, 808, 812,
378 814, 818, 819, 821, 823, 825, 827, 829, 833, 834,
379 844, 845, 857, 860, 861, 868, 869, 877, 882, 887,
380 888, 889, 892, 894, 899, 900, 905, 907, 911, 916,
381 918, 922, 924, 926, 928, 930, 932, 935, 938, 941,
382 944, 947, 950, 953, 956, 959, 962, 965, 968, 971,
383 974, 977, 980, 983, 986, 989, 992, 995, 998, 1001,
384 1004, 1007, 1010, 1013, 1016, 1019, 1022, 1025, 1028, 1031,
385 1034, 1037, 1040, 1043, 1046, 1049, 1052, 1055, 1058, 1061,
386 1064, 1067, 1070, 1072, 1074, 1076, 1078, 1081, 1084, 1087,
387 1090, 1093, 1096, 1099, 1102, 1105, 1108, 1111, 1114, 1117,
388 1120, 1124, 1126, 1131, 1133, 1137, 1140, 1143, 1146, 1147,
389 1149, 1150, 1151, 1163, 1164, 1165, 1177, 1184, 1191, 1192,
390 1193, 1204, 1205, 1206, 1217, 1223, 1229, 1234, 1239, 1240,
391 1242, 1244, 1247, 1253, 1257, 1260, 1265, 1267, 1271, 1276,
392 1283, 1284, 1293, 1298, 1300, 1304, 1307, 1309, 1314, 1316,
393 1318, 1321, 1324, 1326, 1329, 1331, 1334, 1336, 1338, 1340,
394 1343, 1345, 1348, 1351, 1355, 1357, 1361, 1363, 1367, 1369,
395 1371, 1375, 1376, 1379, 1380, 1385, 1390, 1392, 1394, 1397,
396 1399, 1401, 1404, 1405, 1407, 1413, 1416, 1420, 1424, 1429,
397 1433, 1438, 1443, 1449, 1451, 1453, 1455, 1457, 1459, 1461,
398 1463, 1465, 1467, 1470, 1472, 1474, 1476, 1479, 1482, 1490,
399 1497, 1500, 1501, 1502, 1513, 1514, 1521, 1523, 1525, 1527,
400 1529, 1532, 1534, 1536, 1538, 1540, 1542, 1544, 1546, 1550,
401 1552, 1555, 1558, 1561, 1563, 1565, 1567, 1569, 1571, 1573,
402 1575, 1577, 1579, 1581, 1585, 1587, 1589, 1592, 1595, 1596,
403 1601, 1602, 1608, 1609, 1613, 1614, 1619, 1623, 1626, 1630,
404 1631, 1632, 1633, 1634, 1635, 1637, 1640, 1643, 1647, 1650,
405 1654, 1658, 1663, 1666, 1669, 1673, 1677, 1682, 1684, 1687,
406 1689, 1692, 1694, 1697, 1699, 1702, 1704, 1707, 1709, 1714,
407 1717, 1718, 1724, 1725, 1732, 1737, 1742, 1743, 1744, 1755,
408 1757, 1758, 1763, 1765, 1767, 1769, 1771, 1773, 1777, 1779,
409 1784, 1788, 1793, 1800, 1806, 1812, 1815, 1818, 1820, 1823,
410 1826, 1829, 1832, 1835, 1838, 1841, 1844, 1846, 1848, 1853,
411 1855, 1859, 1863, 1867, 1869, 1873, 1877, 1879, 1883, 1887,
412 1889, 1893, 1897, 1901, 1905, 1907, 1911, 1915, 1917, 1921,
413 1923, 1927, 1929, 1933, 1935, 1939, 1941, 1945, 1947, 1948,
414 1949, 1957, 1959, 1963, 1967, 1971, 1975, 1979, 1983, 1987,
415 1991, 1995, 1999, 2003, 2005, 2006, 2008, 2011, 2019, 2022,
416 2025, 2033, 2040, 2043, 2047, 2050, 2054, 2057, 2061, 2065,
417 2069, 2073, 2076, 2080, 2081, 2083, 2085, 2087, 2089, 2091,
421 static const short yyrhs[] = { -1,
422 191, 0, 192, 0, 191, 192, 0, 260, 429, 0,
423 193, 0, 194, 0, 204, 0, 207, 0, 297, 0,
424 1, 0, 75, 317, 330, 340, 330, 429, 305, 88,
425 0, 75, 317, 330, 340, 330, 23, 305, 310, 309,
426 429, 88, 0, 0, 76, 195, 196, 429, 88, 0,
427 197, 0, 317, 330, 197, 0, 201, 0, 344, 201,
428 0, 431, 0, 305, 24, 330, 340, 305, 25, 0,
429 198, 26, 27, 0, 198, 26, 305, 296, 27, 330,
430 0, 0, 198, 306, 24, 25, 199, 209, 211, 0,
431 0, 198, 306, 24, 341, 25, 200, 209, 211, 0,
432 431, 0, 305, 24, 330, 197, 305, 25, 0, 201,
433 26, 27, 0, 201, 26, 305, 296, 27, 330, 0,
434 0, 201, 306, 24, 25, 202, 227, 0, 0, 201,
435 306, 24, 341, 25, 203, 227, 0, 0, 0, 77,
436 431, 24, 341, 25, 205, 227, 206, 429, 88, 0,
437 89, 370, 92, 0, 90, 357, 92, 0, 91, 358,
438 92, 0, 89, 92, 0, 256, 0, 0, 210, 229,
439 0, 0, 212, 213, 0, 216, 214, 0, 0, 215,
440 178, 218, 88, 0, 0, 0, 217, 177, 218, 88,
441 0, 0, 219, 218, 0, 219, 0, 222, 221, 222,
442 18, 0, 180, 0, 181, 0, 52, 0, 51, 0,
443 53, 0, 223, 0, 225, 24, 222, 25, 0, 24,
444 222, 226, 222, 25, 0, 224, 0, 186, 0, 430,
445 0, 184, 0, 224, 26, 27, 0, 224, 26, 186,
446 27, 0, 34, 224, 0, 24, 224, 25, 0, 224,
447 28, 431, 0, 224, 44, 431, 0, 220, 0, 33,
448 0, 32, 0, 0, 0, 230, 0, 0, 228, 230,
449 0, 237, 0, 231, 237, 0, 240, 0, 231, 240,
450 0, 253, 0, 253, 231, 0, 233, 0, 232, 21,
451 233, 0, 236, 234, 0, 430, 0, 184, 0, 86,
452 0, 87, 0, 116, 0, 117, 0, 130, 0, 0,
453 235, 236, 0, 0, 72, 238, 390, 429, 88, 243,
454 0, 0, 72, 239, 232, 429, 88, 243, 0, 74,
455 0, 244, 0, 0, 0, 72, 241, 390, 429, 243,
456 0, 0, 72, 242, 232, 429, 243, 0, 74, 0,
457 246, 0, 0, 244, 0, 0, 0, 73, 245, 261,
458 0, 0, 73, 247, 262, 0, 78, 0, 79, 0,
459 80, 0, 81, 0, 82, 0, 88, 0, 88, 0,
460 83, 0, 84, 0, 119, 0, 137, 0, 135, 0,
461 133, 0, 132, 0, 121, 0, 138, 0, 150, 0,
462 0, 248, 330, 254, 267, 429, 250, 305, 0, 0,
463 251, 330, 252, 255, 267, 429, 249, 305, 0, 340,
464 0, 317, 330, 340, 0, 0, 19, 258, 386, 0,
465 0, 390, 259, 379, 0, 208, 257, 0, 265, 429,
466 88, 0, 429, 88, 0, 265, 429, 0, 429, 0,
467 430, 0, 184, 0, 263, 26, 27, 0, 263, 26,
468 264, 27, 0, 34, 263, 0, 24, 263, 25, 0,
469 263, 28, 431, 0, 263, 44, 431, 0, 263, 0,
470 186, 0, 263, 0, 265, 21, 263, 0, 430, 0,
471 184, 0, 266, 26, 27, 0, 266, 26, 264, 27,
472 0, 34, 266, 0, 24, 266, 25, 0, 266, 28,
473 431, 0, 266, 44, 431, 0, 266, 0, 267, 21,
474 266, 0, 430, 0, 184, 0, 186, 0, 24, 294,
475 25, 0, 185, 0, 111, 0, 268, 0, 269, 26,
476 294, 27, 0, 269, 24, 25, 0, 269, 24, 270,
477 25, 0, 70, 24, 293, 21, 352, 25, 0, 269,
478 330, 28, 431, 305, 0, 269, 330, 44, 431, 305,
479 0, 269, 47, 0, 269, 48, 0, 293, 0, 270,
480 21, 293, 0, 269, 0, 47, 271, 0, 48, 271,
481 0, 29, 277, 0, 34, 277, 0, 33, 277, 0,
482 32, 277, 0, 31, 277, 0, 30, 277, 0, 274,
483 0, 273, 0, 272, 28, 431, 0, 431, 0, 46,
484 305, 24, 352, 330, 21, 272, 25, 305, 0, 0,
485 305, 275, 276, 0, 42, 24, 352, 25, 0, 42,
486 271, 0, 43, 24, 352, 25, 0, 43, 271, 0,
487 271, 0, 24, 352, 25, 277, 0, 277, 0, 278,
488 34, 277, 0, 278, 35, 277, 0, 278, 36, 277,
489 0, 278, 0, 279, 33, 278, 0, 279, 32, 278,
490 0, 279, 0, 280, 49, 279, 0, 280, 50, 279,
491 0, 280, 0, 281, 37, 280, 0, 281, 38, 280,
492 0, 281, 51, 280, 0, 281, 52, 280, 0, 281,
493 0, 282, 53, 281, 0, 282, 54, 281, 0, 282,
494 0, 283, 29, 282, 0, 283, 0, 284, 39, 283,
495 0, 284, 0, 285, 40, 284, 0, 285, 0, 0,
496 286, 55, 287, 285, 0, 286, 0, 0, 288, 56,
497 289, 286, 0, 288, 0, 0, 0, 288, 41, 291,
498 294, 22, 292, 290, 0, 290, 0, 271, 23, 293,
499 0, 271, 57, 293, 0, 271, 58, 293, 0, 271,
500 59, 293, 0, 271, 60, 293, 0, 271, 61, 293,
501 0, 271, 62, 293, 0, 271, 63, 293, 0, 271,
502 64, 293, 0, 271, 65, 293, 0, 271, 66, 293,
503 0, 293, 0, 294, 21, 293, 0, 0, 294, 0,
504 290, 0, 298, 0, 71, 0, 303, 0, 317, 305,
505 18, 0, 0, 317, 330, 340, 330, 299, 305, 309,
506 18, 305, 0, 0, 317, 330, 340, 330, 23, 300,
507 305, 310, 309, 18, 305, 0, 340, 330, 0, 0,
508 340, 330, 23, 302, 305, 310, 0, 0, 45, 317,
509 304, 330, 307, 305, 18, 0, 45, 317, 305, 18,
510 0, 45, 307, 305, 18, 0, 0, 0, 308, 305,
511 0, 301, 0, 307, 21, 330, 301, 0, 0, 309,
512 21, 330, 301, 0, 293, 0, 19, 311, 20, 0,
513 19, 311, 21, 20, 0, 310, 0, 311, 21, 310,
514 0, 112, 0, 110, 0, 113, 0, 114, 0, 115,
515 0, 108, 305, 0, 109, 305, 0, 116, 305, 0,
516 117, 305, 0, 130, 305, 0, 131, 305, 0, 132,
517 305, 0, 133, 305, 0, 118, 305, 0, 120, 305,
518 0, 119, 305, 0, 128, 305, 0, 129, 305, 0,
519 121, 305, 0, 123, 305, 0, 139, 305, 0, 140,
520 305, 0, 142, 305, 0, 143, 305, 0, 141, 305,
521 0, 136, 305, 0, 151, 305, 0, 134, 305, 0,
522 135, 305, 0, 137, 305, 0, 124, 305, 0, 127,
523 305, 0, 125, 305, 0, 126, 305, 0, 156, 305,
524 0, 157, 305, 0, 148, 305, 0, 158, 305, 0,
525 149, 305, 0, 152, 305, 0, 153, 305, 0, 154,
526 305, 0, 155, 305, 0, 150, 305, 0, 159, 305,
527 0, 160, 305, 0, 163, 305, 0, 164, 305, 0,
528 161, 305, 0, 162, 305, 0, 175, 305, 0, 147,
529 0, 144, 0, 145, 0, 146, 0, 165, 330, 0,
530 167, 330, 0, 166, 330, 0, 168, 330, 0, 169,
531 330, 0, 170, 330, 0, 171, 330, 0, 172, 330,
532 0, 173, 330, 0, 174, 330, 0, 432, 330, 0,
533 321, 330, 0, 335, 330, 0, 314, 330, 0, 305,
534 317, 305, 0, 319, 0, 319, 85, 318, 88, 0,
535 352, 0, 352, 21, 318, 0, 312, 320, 0, 313,
536 320, 0, 315, 320, 0, 0, 317, 0, 0, 0,
537 330, 67, 431, 305, 19, 322, 383, 331, 384, 323,
538 20, 0, 0, 0, 330, 68, 431, 305, 19, 324,
539 383, 331, 384, 325, 20, 0, 330, 67, 431, 305,
540 19, 20, 0, 330, 68, 431, 305, 19, 20, 0,
541 0, 0, 330, 67, 305, 19, 326, 383, 331, 384,
542 327, 20, 0, 0, 0, 330, 68, 305, 19, 328,
543 383, 331, 384, 329, 20, 0, 330, 67, 305, 19,
544 20, 0, 330, 68, 305, 19, 20, 0, 330, 67,
545 431, 330, 0, 330, 68, 431, 330, 0, 0, 332,
546 0, 207, 0, 331, 332, 0, 317, 330, 333, 305,
547 18, 0, 317, 305, 18, 0, 334, 330, 0, 333,
548 21, 334, 330, 0, 340, 0, 22, 305, 296, 0,
549 340, 22, 305, 296, 0, 330, 69, 19, 337, 20,
550 305, 0, 0, 330, 69, 431, 19, 336, 337, 20,
551 305, 0, 330, 69, 431, 305, 0, 338, 0, 337,
552 21, 338, 0, 337, 21, 0, 431, 0, 431, 23,
553 305, 296, 0, 198, 0, 354, 0, 344, 189, 0,
554 344, 339, 0, 198, 0, 344, 198, 0, 347, 0,
555 330, 345, 0, 108, 0, 109, 0, 342, 0, 343,
556 342, 0, 34, 0, 34, 343, 0, 34, 344, 0,
557 34, 343, 344, 0, 346, 0, 346, 21, 5, 0,
558 431, 0, 346, 21, 431, 0, 5, 0, 348, 0,
559 348, 21, 5, 0, 0, 349, 351, 0, 0, 348,
560 21, 350, 351, 0, 305, 317, 339, 305, 0, 431,
561 0, 316, 0, 316, 353, 0, 344, 0, 355, 0,
562 344, 355, 0, 0, 355, 0, 305, 24, 330, 353,
563 25, 0, 26, 27, 0, 26, 296, 27, 0, 355,
564 26, 27, 0, 355, 26, 296, 27, 0, 305, 24,
565 25, 0, 305, 24, 347, 25, 0, 355, 305, 24,
566 25, 0, 355, 305, 24, 347, 25, 0, 372, 0,
567 373, 0, 376, 0, 379, 0, 392, 0, 395, 0,
568 426, 0, 400, 0, 428, 0, 22, 431, 0, 359,
569 0, 357, 0, 366, 0, 359, 366, 0, 399, 359,
570 0, 425, 371, 11, 24, 294, 25, 18, 0, 425,
571 371, 11, 24, 294, 25, 0, 361, 366, 0, 0,
572 0, 13, 24, 295, 18, 295, 18, 362, 295, 363,
573 25, 0, 0, 187, 381, 24, 365, 403, 25, 0,
574 188, 0, 372, 0, 373, 0, 376, 0, 368, 390,
575 0, 368, 0, 369, 0, 392, 0, 367, 0, 360,
576 0, 364, 0, 428, 0, 24, 366, 25, 0, 1,
577 0, 394, 366, 0, 381, 19, 0, 385, 20, 0,
578 371, 0, 389, 0, 372, 0, 373, 0, 376, 0,
579 380, 0, 393, 0, 395, 0, 400, 0, 427, 0,
580 24, 371, 25, 0, 428, 0, 1, 0, 431, 22,
581 0, 107, 356, 0, 0, 6, 296, 374, 22, 0,
582 0, 98, 6, 296, 375, 22, 0, 0, 7, 377,
583 22, 0, 0, 98, 7, 378, 22, 0, 24, 379,
584 25, 0, 381, 387, 0, 381, 388, 382, 0, 0,
585 0, 0, 0, 0, 20, 0, 107, 20, 0, 391,
586 20, 0, 391, 107, 20, 0, 390, 20, 0, 390,
587 107, 20, 0, 390, 391, 20, 0, 390, 391, 107,
588 20, 0, 19, 386, 0, 19, 20, 0, 19, 389,
589 20, 0, 19, 390, 20, 0, 19, 390, 391, 20,
590 0, 371, 0, 389, 371, 0, 297, 0, 390, 297,
591 0, 356, 0, 391, 356, 0, 18, 0, 294, 18,
592 0, 18, 0, 294, 18, 0, 294, 0, 8, 24,
593 294, 25, 0, 394, 356, 0, 0, 394, 356, 9,
594 396, 356, 0, 0, 10, 24, 294, 397, 25, 356,
595 0, 11, 24, 294, 25, 0, 11, 24, 294, 25,
596 0, 0, 0, 187, 401, 381, 24, 402, 403, 25,
597 379, 424, 382, 0, 405, 0, 0, 403, 404, 21,
598 405, 0, 423, 0, 430, 0, 185, 0, 184, 0,
599 186, 0, 24, 294, 25, 0, 406, 0, 269, 26,
600 294, 27, 0, 269, 24, 25, 0, 269, 24, 270,
601 25, 0, 70, 24, 293, 21, 352, 25, 0, 269,
602 330, 28, 431, 305, 0, 269, 330, 44, 431, 305,
603 0, 269, 47, 0, 269, 48, 0, 407, 0, 47,
604 271, 0, 48, 271, 0, 29, 277, 0, 34, 277,
605 0, 33, 277, 0, 32, 277, 0, 31, 277, 0,
606 30, 277, 0, 274, 0, 408, 0, 24, 352, 25,
607 277, 0, 409, 0, 278, 34, 277, 0, 278, 35,
608 277, 0, 278, 36, 277, 0, 410, 0, 279, 33,
609 278, 0, 279, 32, 278, 0, 411, 0, 280, 49,
610 279, 0, 280, 50, 279, 0, 412, 0, 281, 37,
611 280, 0, 281, 38, 280, 0, 281, 51, 280, 0,
612 281, 52, 280, 0, 413, 0, 282, 53, 281, 0,
613 282, 54, 281, 0, 414, 0, 283, 29, 282, 0,
614 415, 0, 284, 39, 283, 0, 416, 0, 285, 40,
615 284, 0, 417, 0, 286, 55, 285, 0, 418, 0,
616 288, 56, 286, 0, 419, 0, 0, 0, 288, 41,
617 421, 294, 22, 422, 290, 0, 420, 0, 271, 23,
618 293, 0, 271, 57, 293, 0, 271, 58, 293, 0,
619 271, 59, 293, 0, 271, 60, 293, 0, 271, 61,
620 293, 0, 271, 62, 293, 0, 271, 63, 293, 0,
621 271, 64, 293, 0, 271, 65, 293, 0, 271, 66,
622 293, 0, 188, 0, 0, 12, 0, 398, 356, 0,
623 425, 356, 11, 24, 294, 25, 18, 0, 361, 356,
624 0, 398, 371, 0, 425, 371, 11, 24, 294, 25,
625 18, 0, 425, 371, 11, 24, 294, 25, 0, 361,
626 371, 0, 14, 431, 18, 0, 15, 18, 0, 97,
627 15, 18, 0, 16, 18, 0, 93, 16, 18, 0,
628 94, 16, 18, 0, 95, 16, 18, 0, 96, 16,
629 18, 0, 17, 18, 0, 17, 294, 18, 0, 0,
630 18, 0, 183, 0, 184, 0, 187, 0, 188, 0,
631 430, 0, 185, 0, 189, 0, 185, 0
637 static const short yyrline[] = { 0,
638 269, 270, 273, 274, 277, 278, 279, 280, 281, 282,
639 283, 286, 288, 292, 292, 297, 303, 307, 308, 312,
640 313, 315, 317, 321, 324, 332, 336, 346, 347, 349,
641 351, 367, 371, 378, 382, 388, 390, 390, 394, 395,
642 396, 397, 400, 403, 404, 410, 411, 415, 419, 424,
643 431, 435, 440, 447, 450, 451, 454, 459, 460, 463,
644 464, 465, 468, 469, 470, 475, 476, 484, 487, 489,
645 490, 495, 496, 497, 499, 515, 519, 520, 525, 526,
646 536, 537, 540, 541, 544, 545, 548, 549, 552, 553,
647 556, 559, 560, 563, 564, 565, 566, 567, 570, 571,
648 574, 574, 577, 577, 580, 584, 585, 588, 588, 591,
649 591, 594, 598, 599, 602, 603, 606, 612, 619, 625,
650 632, 633, 634, 635, 636, 639, 642, 645, 646, 649,
651 650, 651, 652, 653, 654, 655, 656, 659, 665, 672,
652 678, 687, 693, 697, 699, 703, 706, 713, 723, 724,
653 727, 728, 731, 732, 733, 734, 735, 736, 737, 738,
654 742, 743, 747, 748, 751, 753, 755, 756, 757, 758,
655 759, 761, 765, 769, 781, 782, 783, 784, 785, 786,
656 789, 790, 791, 792, 793, 794, 795, 796, 797, 800,
657 801, 804, 805, 806, 807, 808, 809, 810, 811, 812,
658 813, 814, 817, 818, 821, 825, 826, 829, 830, 831,
659 832, 835, 836, 840, 841, 842, 843, 846, 847, 848,
660 851, 852, 853, 856, 857, 858, 859, 860, 863, 864,
661 865, 868, 869, 872, 873, 877, 878, 881, 882, 887,
662 893, 894, 900, 906, 907, 907, 909, 912, 913, 914,
663 915, 916, 917, 918, 919, 920, 921, 922, 923, 926,
664 927, 930, 931, 934, 939, 940, 941, 944, 957, 961,
665 962, 965, 970, 971, 971, 976, 977, 978, 979, 982,
666 985, 988, 991, 992, 995, 996, 999, 1000, 1001, 1005,
667 1007, 1016, 1017, 1018, 1019, 1020, 1023, 1024, 1025, 1026,
668 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036,
669 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046,
670 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,
671 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066,
672 1067, 1068, 1074, 1075, 1076, 1077, 1080, 1081, 1082, 1083,
673 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093,
674 1096, 1100, 1101, 1105, 1106, 1110, 1111, 1112, 1115, 1116,
675 1119, 1121, 1123, 1124, 1126, 1128, 1129, 1131, 1133, 1135,
676 1137, 1138, 1140, 1142, 1143, 1145, 1147, 1148, 1151, 1154,
677 1155, 1156, 1159, 1161, 1165, 1167, 1171, 1172, 1173, 1177,
678 1179, 1179, 1181, 1184, 1186, 1188, 1191, 1196, 1203, 1204,
679 1205, 1212, 1216, 1217, 1221, 1222, 1225, 1226, 1229, 1230,
680 1233, 1234, 1235, 1236, 1239, 1240, 1243, 1244, 1247, 1248,
681 1249, 1252, 1252, 1253, 1254, 1257, 1269, 1285, 1286, 1289,
682 1290, 1291, 1294, 1295, 1298, 1300, 1301, 1303, 1304, 1306,
683 1308, 1310, 1312, 1318, 1319, 1320, 1321, 1322, 1323, 1324,
684 1325, 1326, 1341, 1346, 1349, 1352, 1353, 1357, 1359, 1361,
685 1363, 1367, 1368, 1370, 1374, 1376, 1378, 1381, 1382, 1383,
686 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393,
687 1396, 1402, 1405, 1408, 1409, 1412, 1413, 1414, 1415, 1416,
688 1417, 1418, 1419, 1420, 1421, 1422, 1425, 1426, 1432, 1433,
689 1434, 1435, 1438, 1439, 1440, 1441, 1444, 1445, 1449, 1452,
690 1455, 1458, 1461, 1464, 1467, 1468, 1469, 1470, 1472, 1473,
691 1475, 1477, 1484, 1488, 1490, 1492, 1494, 1498, 1499, 1502,
692 1503, 1506, 1507, 1510, 1511, 1514, 1515, 1516, 1519, 1527,
693 1532, 1533, 1537, 1538, 1541, 1546, 1549, 1550, 1551, 1559,
694 1560, 1560, 1564, 1565, 1566, 1577, 1584, 1585, 1588, 1589,
695 1590, 1591, 1592, 1594, 1595, 1596, 1597, 1600, 1601, 1602,
696 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1612, 1613, 1616,
697 1617, 1618, 1619, 1622, 1623, 1624, 1627, 1628, 1629, 1632,
698 1633, 1634, 1635, 1636, 1639, 1640, 1641, 1644, 1645, 1648,
699 1649, 1653, 1654, 1657, 1658, 1661, 1662, 1665, 1666, 1667,
700 1668, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679,
701 1680, 1681, 1682, 1685, 1686, 1689, 1692, 1694, 1696, 1700,
702 1701, 1703, 1705, 1708, 1709, 1710, 1712, 1713, 1714, 1715,
703 1716, 1717, 1718, 1721, 1722, 1725, 1728, 1729, 1730, 1731,
709 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
711 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
712 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
713 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
714 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
715 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
716 "TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP",
717 "DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP",
718 "MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
719 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
720 "VA_ARG","VA_DCL","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION","QITER",
721 "QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
722 "QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND","TENDMACRO",
723 "QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE","QFALLTHROUGH",
724 "QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED","QPRINTFLIKE",
725 "QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST","QVOLATILE",
726 "QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT","QIN",
727 "QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED",
728 "QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED",
729 "QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT",
730 "QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT",
731 "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE",
732 "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF",
733 "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE",
734 "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED",
735 "QSETBUFFERSIZE","QBUFFERCONSTRAINT","QENSURESCONSTRAINT","QSETSTRINGLENGTH",
736 "QMAXSET","QMAXREAD","QTESTINRANGE","IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID",
737 "CCONSTANT","ITER_NAME","ITER_ENDNAME","TYPE_NAME","file","externalDefs","externalDef",
738 "constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2",
739 "@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
740 "optGlobMods","@8","optGlobBufConstraints","@9","optGlobBufConstraintsRest",
741 "optGlobEnsuresConstraintsAux","@10","optGlobBufConstraintsAux","@11","BufConstraintList",
742 "BufConstraint","bufferModifier","relationalOp","BufConstraintExpr","BufConstraintTerm",
743 "BufConstraintSrefExpr","BufUnaryOp","BufBinaryOp","optPlainGlobMods","@13",
744 "optGlobModsRest","optPlainGlobModsRest","specialClauses","globIdList","globIdListExpr",
745 "globId","globQual","optGlobQuals","optGlobModsAux","@14","@15","optPlainGlobModsAux",
746 "@16","@17","optMods","fcnMods","@18","fcnPlainMods","@19","specialTag","endStateTag",
747 "endSpecialTag","stateSpecialClause","specialClauseType","specialClause","@20",
748 "@21","fcnDefHdrAux","fcnBody","@22","@23","fcnDef","locModifies","locPlainModifies",
749 "modListExpr","mExpr","modList","specClauseListExpr","specClauseList","primaryExpr",
750 "postfixExpr","argumentExprList","unaryExpr","fieldDesignator","offsetofExpr",
751 "sizeofExpr","@24","sizeofExprAux","castExpr","timesExpr","plusExpr","shiftExpr",
752 "relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr","andExpr",
753 "@25","orExpr","@26","conditionalExpr","@27","@28","assignExpr","expr","optExpr",
754 "constantExpr","initializer","instanceDecl","@29","@30","namedInitializer","@31",
755 "typeDecl","@32","IsType","PushType","namedInitializerList","namedInitializerListAux",
756 "optDeclarators","init","initList","storageSpecifier","typeQualifier","typeModifier",
757 "typeSpecifier","completeType","completeTypeSpecifier","altType","completeTypeSpecifierAux",
758 "optCompleteType","suSpc","@33","@34","@35","@36","@37","@38","@39","@40","NotType",
759 "structDeclList","structDecl","structNamedDeclList","structNamedDecl","enumSpc",
760 "@41","enumeratorList","enumerator","optNamedDecl","namedDecl","genericParamList",
761 "innerMods","innerModsList","pointers","paramIdList","idList","paramTypeList",
762 "paramList","@42","@43","paramDecl","typeExpression","abstractDecl","optAbstractDeclBase",
763 "abstractDeclBase","stmt","iterBody","endBody","iterDefStmtList","iterDefIterationStmt",
764 "forPred","@44","@45","partialIterStmt","@46","iterDefStmt","iterSelectionStmt",
765 "openScope","closeScope","macroBody","stmtErr","labeledStmt","caseStmt","@47",
766 "@48","defaultStmt","@49","@50","compoundStmt","compoundStmtErr","CreateInnerScope",
767 "DeleteInnerScope","CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe",
768 "compoundStmtRest","compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList",
769 "stmtList","expressionStmt","expressionStmtErr","ifPred","selectionStmt","@51",
770 "@52","whilePred","iterWhilePred","iterStmt","@53","@54","iterArgList","@55",
771 "iterArgExpr","primaryIterExpr","postfixIterExpr","unaryIterExpr","castIterExpr",
772 "timesIterExpr","plusIterExpr","shiftIterExpr","relationalIterExpr","equalityIterExpr",
773 "bitandIterExpr","xorIterExpr","bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr",
774 "@56","@57","assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr",
775 "jumpStmt","optSemi","id","newId","typeName", NULL
779 static const short yyr1[] = { 0,
780 190, 190, 191, 191, 192, 192, 192, 192, 192, 192,
781 192, 193, 193, 195, 194, 196, 196, 197, 197, 198,
782 198, 198, 198, 199, 198, 200, 198, 201, 201, 201,
783 201, 202, 201, 203, 201, 205, 206, 204, 207, 207,
784 207, 207, 208, 210, 209, 212, 211, 213, 215, 214,
785 214, 217, 216, 216, 218, 218, 219, 220, 220, 221,
786 221, 221, 222, 222, 222, 223, 223, 224, 224, 224,
787 224, 224, 224, 224, 224, 225, 226, 226, -1, -1,
788 228, 227, 229, 229, 230, 230, 231, 231, 232, 232,
789 233, 234, 234, 235, 235, 235, 235, 235, 236, 236,
790 238, 237, 239, 237, 237, 237, 237, 241, 240, 242,
791 240, 240, 240, 240, 243, 243, 245, 244, 247, 246,
792 248, 248, 248, 248, 248, 249, 250, 251, 251, 252,
793 252, 252, 252, 252, 252, 252, 252, 254, 253, 255,
794 253, 256, 256, 258, 257, 259, 257, 260, 261, 261,
795 262, 262, 263, 263, 263, 263, 263, 263, 263, 263,
796 264, 264, 265, 265, 266, 266, 266, 266, 266, 266,
797 266, 266, 267, 267, 268, 268, 268, 268, 268, 268,
798 269, 269, 269, 269, 269, 269, 269, 269, 269, 270,
799 270, 271, 271, 271, 271, 271, 271, 271, 271, 271,
800 271, 271, 272, 272, 273, 275, 274, 276, 276, 276,
801 276, 277, 277, 278, 278, 278, 278, 279, 279, 279,
802 280, 280, 280, 281, 281, 281, 281, 281, 282, 282,
803 282, 283, 283, 284, 284, 285, 285, 286, 287, 286,
804 288, 289, 288, 290, 291, 292, 290, 293, 293, 293,
805 293, 293, 293, 293, 293, 293, 293, 293, 293, 294,
806 294, 295, 295, 296, 297, 297, 297, 298, 299, 298,
807 300, 298, 301, 302, 301, 304, 303, 303, 303, 305,
808 306, 307, 308, 308, 309, 309, 310, 310, 310, 311,
809 311, 312, 312, 312, 312, 312, 313, 313, 313, 313,
810 313, 313, 313, 313, 313, 313, 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, 314, 314, 314, 314, 315, 315, 315, 315,
815 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
816 316, 317, 317, 318, 318, 319, 319, 319, 320, 320,
817 322, 323, 321, 324, 325, 321, 321, 321, 326, 327,
818 321, 328, 329, 321, 321, 321, 321, 321, 330, 331,
819 331, 331, 332, 332, 333, 333, 334, 334, 334, 335,
820 336, 335, 335, 337, 337, 337, 338, 338, 339, 339,
821 339, 339, 340, 340, 341, 341, 342, 342, 343, 343,
822 344, 344, 344, 344, 345, 345, 346, 346, 347, 347,
823 347, 349, 348, 350, 348, 351, 351, 352, 352, 353,
824 353, 353, 354, 354, 355, 355, 355, 355, 355, 355,
825 355, 355, 355, 356, 356, 356, 356, 356, 356, 356,
826 356, 356, -1, 357, 358, 359, 359, 360, 360, 360,
827 360, 362, 363, 361, 365, 364, 364, 366, 366, 366,
828 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
829 367, 368, 369, 370, 370, 371, 371, 371, 371, 371,
830 371, 371, 371, 371, 371, 371, 372, 372, 374, 373,
831 375, 373, 377, 376, 378, 376, 379, 379, 380, 381,
832 382, 383, 384, 385, 386, 386, 386, 386, 386, 386,
833 386, 386, 387, 388, 388, 388, 388, 389, 389, 390,
834 390, 391, 391, 392, 392, 393, 393, 393, 394, 395,
835 396, 395, 397, 395, 398, 399, 401, 402, 400, 403,
836 404, 403, 405, 405, 405, 405, 406, 406, 407, 407,
837 407, 407, 407, 407, 407, 407, 407, 408, 408, 408,
838 408, 408, 408, 408, 408, 408, 408, 409, 409, 410,
839 410, 410, 410, 411, 411, 411, 412, 412, 412, 413,
840 413, 413, 413, 413, 414, 414, 414, 415, 415, 416,
841 416, 417, 417, 418, 418, 419, 419, 420, 421, 422,
842 420, 423, 423, 423, 423, 423, 423, 423, 423, 423,
843 423, 423, 423, 424, 424, 425, 426, 426, 426, 427,
844 427, 427, 427, 428, 428, 428, 428, 428, 428, 428,
845 428, 428, 428, 429, 429, 430, 431, 431, 431, 431,
849 static const short yyr2[] = { 0,
850 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
851 1, 8, 11, 0, 5, 1, 3, 1, 2, 1,
852 6, 3, 6, 0, 7, 0, 8, 1, 6, 3,
853 6, 0, 6, 0, 7, 0, 0, 10, 3, 3,
854 3, 2, 1, 0, 2, 0, 2, 2, 0, 4,
855 0, 0, 4, 0, 2, 1, 4, 1, 1, 1,
856 1, 1, 1, 4, 5, 1, 1, 1, 1, 3,
857 4, 2, 3, 3, 3, 1, 1, 1, 0, 2,
858 0, 2, 1, 2, 1, 2, 1, 2, 1, 3,
859 2, 1, 1, 1, 1, 1, 1, 1, 0, 2,
860 0, 6, 0, 6, 1, 1, 0, 0, 5, 0,
861 5, 1, 1, 0, 1, 0, 0, 3, 0, 3,
862 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
863 1, 1, 1, 1, 1, 1, 1, 0, 7, 0,
864 8, 1, 3, 0, 3, 0, 3, 2, 3, 2,
865 2, 1, 1, 1, 3, 4, 2, 3, 3, 3,
866 1, 1, 1, 3, 1, 1, 3, 4, 2, 3,
867 3, 3, 1, 3, 1, 1, 1, 3, 1, 1,
868 1, 4, 3, 4, 6, 5, 5, 2, 2, 1,
869 3, 1, 2, 2, 2, 2, 2, 2, 2, 2,
870 1, 1, 3, 1, 9, 0, 3, 4, 2, 4,
871 2, 1, 4, 1, 3, 3, 3, 1, 3, 3,
872 1, 3, 3, 1, 3, 3, 3, 3, 1, 3,
873 3, 1, 3, 1, 3, 1, 3, 1, 0, 4,
874 1, 0, 4, 1, 0, 0, 7, 1, 3, 3,
875 3, 3, 3, 3, 3, 3, 3, 3, 3, 1,
876 3, 0, 1, 1, 1, 1, 1, 3, 0, 9,
877 0, 11, 2, 0, 6, 0, 7, 4, 4, 0,
878 0, 2, 1, 4, 0, 4, 1, 3, 4, 1,
879 3, 1, 1, 1, 1, 1, 2, 2, 2, 2,
880 2, 2, 2, 2, 2, 2, 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, 1, 1, 1, 1, 2, 2, 2, 2,
885 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
886 3, 1, 4, 1, 3, 2, 2, 2, 0, 1,
887 0, 0, 11, 0, 0, 11, 6, 6, 0, 0,
888 10, 0, 0, 10, 5, 5, 4, 4, 0, 1,
889 1, 2, 5, 3, 2, 4, 1, 3, 4, 6,
890 0, 8, 4, 1, 3, 2, 1, 4, 1, 1,
891 2, 2, 1, 2, 1, 2, 1, 1, 1, 2,
892 1, 2, 2, 3, 1, 3, 1, 3, 1, 1,
893 3, 0, 2, 0, 4, 4, 1, 1, 2, 1,
894 1, 2, 0, 1, 5, 2, 3, 3, 4, 3,
895 4, 4, 5, 1, 1, 1, 1, 1, 1, 1,
896 1, 1, 2, 1, 1, 1, 2, 2, 7, 6,
897 2, 0, 0, 10, 0, 6, 1, 1, 1, 1,
898 2, 1, 1, 1, 1, 1, 1, 1, 3, 1,
899 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
900 1, 1, 1, 3, 1, 1, 2, 2, 0, 4,
901 0, 5, 0, 3, 0, 4, 3, 2, 3, 0,
902 0, 0, 0, 0, 1, 2, 2, 3, 2, 3,
903 3, 4, 2, 2, 3, 3, 4, 1, 2, 1,
904 2, 1, 2, 1, 2, 1, 2, 1, 4, 2,
905 0, 5, 0, 6, 4, 4, 0, 0, 10, 1,
906 0, 4, 1, 1, 1, 1, 1, 3, 1, 4,
907 3, 4, 6, 5, 5, 2, 2, 1, 2, 2,
908 2, 2, 2, 2, 2, 2, 1, 1, 4, 1,
909 3, 3, 3, 1, 3, 3, 1, 3, 3, 1,
910 3, 3, 3, 3, 1, 3, 3, 1, 3, 1,
911 3, 1, 3, 1, 3, 1, 3, 1, 0, 0,
912 7, 1, 3, 3, 3, 3, 3, 3, 3, 3,
913 3, 3, 3, 1, 0, 1, 2, 7, 2, 2,
914 7, 6, 2, 3, 2, 3, 2, 3, 3, 3,
915 3, 2, 3, 0, 1, 1, 1, 1, 1, 1,
919 static const short yydefact[] = { 0,
920 11, 421, 389, 266, 389, 14, 0, 0, 0, 0,
921 280, 280, 293, 292, 294, 295, 296, 280, 280, 280,
922 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
923 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
924 280, 280, 280, 344, 345, 346, 343, 280, 280, 280,
925 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
926 280, 280, 280, 280, 389, 389, 389, 389, 389, 389,
927 389, 389, 389, 389, 280, 656, 657, 661, 658, 659,
928 662, 0, 3, 6, 7, 413, 8, 9, 389, 43,
929 654, 10, 265, 267, 0, 369, 369, 389, 369, 389,
930 362, 389, 0, 389, 142, 280, 660, 20, 389, 417,
931 418, 419, 422, 423, 283, 280, 280, 276, 389, 663,
932 389, 389, 661, 0, 506, 280, 513, 0, 0, 0,
933 636, 0, 0, 0, 0, 280, 546, 0, 280, 280,
934 280, 280, 280, 280, 280, 280, 280, 0, 42, 0,
935 0, 0, 0, 0, 0, 280, 180, 176, 179, 177,
936 557, 181, 192, 212, 202, 201, 214, 218, 221, 224,
937 229, 232, 234, 236, 238, 241, 244, 248, 260, 548,
938 206, 0, 0, 538, 496, 497, 498, 499, 0, 0,
939 500, 280, 501, 0, 502, 0, 503, 505, 175, 0,
940 490, 0, 544, 0, 520, 477, 0, 0, 0, 486,
941 0, 487, 466, 485, 482, 483, 478, 479, 480, 0,
942 0, 484, 0, 0, 0, 488, 465, 0, 297, 298,
943 299, 300, 305, 307, 306, 310, 311, 322, 324, 325,
944 323, 308, 309, 301, 302, 303, 304, 319, 320, 317,
945 321, 312, 313, 316, 314, 315, 328, 330, 335, 318,
946 331, 332, 333, 334, 326, 327, 329, 336, 337, 340,
947 341, 338, 339, 347, 349, 348, 350, 351, 352, 353,
948 354, 355, 356, 342, 4, 280, 0, 144, 148, 540,
949 389, 389, 655, 5, 389, 370, 366, 367, 360, 368,
950 0, 280, 280, 358, 280, 280, 0, 359, 414, 357,
951 420, 424, 389, 0, 282, 389, 0, 273, 280, 654,
952 16, 18, 0, 389, 280, 28, 432, 280, 176, 179,
953 212, 264, 509, 175, 0, 280, 280, 280, 280, 0,
954 645, 647, 652, 0, 0, 389, 438, 0, 0, 195,
955 200, 199, 198, 197, 196, 0, 280, 193, 194, 280,
956 0, 0, 0, 0, 0, 280, 515, 280, 508, 280,
957 454, 455, 456, 457, 0, 458, 459, 280, 461, 280,
958 460, 462, 520, 280, 280, 188, 189, 0, 280, 280,
959 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
960 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
961 280, 280, 280, 280, 280, 239, 245, 242, 547, 280,
962 0, 643, 39, 0, 521, 539, 550, 640, 0, 507,
963 280, 0, 0, 0, 545, 40, 467, 471, 481, 492,
964 493, 491, 0, 0, 41, 22, 280, 432, 389, 280,
965 520, 541, 280, 268, 143, 389, 0, 364, 0, 389,
966 0, 389, 0, 280, 280, 279, 280, 278, 274, 389,
967 0, 280, 0, 389, 280, 19, 429, 0, 0, 415,
968 430, 280, 0, 0, 514, 0, 553, 0, 263, 0,
969 644, 653, 178, 280, 280, 0, 440, 439, 441, 280,
970 504, 280, 0, 648, 649, 650, 651, 646, 511, 0,
971 0, 639, 389, 518, 637, 0, 0, 183, 0, 190,
972 0, 0, 0, 249, 250, 251, 252, 253, 254, 255,
973 256, 257, 258, 259, 215, 216, 217, 220, 219, 222,
974 223, 225, 226, 227, 228, 230, 231, 233, 235, 237,
975 280, 280, 280, 261, 280, 280, 207, 534, 179, 538,
976 0, 389, 519, 551, 0, 0, 489, 475, 0, 0,
977 24, 0, 525, 280, 542, 145, 389, 280, 389, 520,
978 147, 280, 269, 363, 280, 379, 0, 387, 382, 0,
979 388, 0, 404, 407, 401, 403, 284, 280, 280, 654,
980 15, 30, 280, 432, 280, 17, 416, 425, 427, 36,
981 434, 389, 433, 437, 510, 549, 0, 555, 280, 361,
982 446, 0, 432, 442, 280, 0, 213, 389, 280, 0,
983 516, 517, 533, 0, 558, 280, 184, 182, 280, 280,
984 240, 0, 243, 280, 209, 280, 211, 535, 536, 280,
985 280, 280, 556, 280, 280, 389, 44, 26, 526, 529,
986 280, 280, 527, 280, 543, 0, 271, 280, 365, 385,
987 522, 371, 386, 522, 374, 280, 406, 280, 0, 0,
988 280, 280, 280, 0, 32, 0, 280, 0, 81, 431,
989 280, 443, 280, 0, 447, 450, 280, 0, 448, 0,
990 432, 0, 0, 512, 280, 280, 191, 186, 187, 246,
991 0, 0, 537, 552, 0, 280, 280, 280, 280, 280,
992 280, 280, 280, 280, 0, 176, 179, 177, 192, 212,
993 201, 218, 221, 224, 229, 232, 234, 236, 238, 241,
994 0, 561, 560, 569, 578, 588, 590, 594, 597, 600,
995 605, 608, 610, 612, 614, 616, 618, 622, 563, 175,
996 0, 23, 46, 107, 44, 530, 531, 280, 528, 21,
997 280, 285, 389, 377, 522, 389, 378, 522, 400, 405,
998 280, 0, 277, 280, 287, 275, 280, 0, 389, 81,
999 34, 0, 426, 428, 37, 114, 435, 409, 0, 280,
1000 443, 410, 444, 554, 472, 0, 451, 449, 452, 0,
1001 0, 185, 0, 561, 280, 208, 210, 642, 0, 0,
1002 195, 200, 199, 198, 197, 196, 193, 194, 280, 280,
1003 280, 188, 189, 0, 280, 280, 280, 280, 280, 280,
1004 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
1005 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
1006 280, 239, 619, 242, 476, 0, 470, 25, 54, 101,
1007 117, 105, 121, 122, 123, 124, 125, 128, 129, 45,
1008 107, 83, 106, 389, 389, 87, 46, 532, 280, 0,
1009 391, 389, 389, 390, 389, 389, 389, 408, 280, 290,
1010 0, 285, 12, 31, 33, 81, 29, 654, 108, 119,
1011 112, 82, 114, 85, 113, 432, 436, 411, 412, 280,
1012 445, 453, 0, 204, 0, 520, 247, 641, 178, 280,
1013 0, 183, 0, 0, 0, 0, 623, 624, 625, 626,
1014 627, 628, 629, 630, 631, 632, 633, 215, 216, 217,
1015 220, 219, 222, 223, 225, 226, 227, 228, 230, 231,
1016 233, 235, 237, 615, 280, 617, 280, 469, 47, 51,
1017 0, 389, 99, 654, 84, 138, 0, 88, 27, 285,
1018 280, 389, 0, 280, 392, 380, 389, 383, 389, 402,
1019 288, 280, 654, 35, 0, 389, 99, 654, 86, 280,
1020 473, 280, 0, 638, 635, 213, 280, 184, 182, 280,
1021 280, 0, 562, 48, 0, 0, 389, 94, 95, 96,
1022 97, 98, 654, 89, 99, 0, 0, 0, 154, 118,
1023 163, 654, 0, 153, 0, 130, 135, 134, 133, 132,
1024 131, 136, 137, 140, 0, 270, 280, 394, 280, 280,
1025 389, 397, 0, 372, 0, 375, 289, 291, 0, 38,
1026 654, 654, 120, 654, 152, 280, 0, 205, 203, 634,
1027 521, 0, 186, 187, 620, 0, 0, 0, 58, 59,
1028 69, 67, 0, 56, 76, 0, 63, 66, 0, 68,
1029 0, 99, 0, 100, 93, 91, 92, 0, 157, 0,
1030 0, 0, 0, 0, 150, 0, 0, 166, 173, 654,
1031 165, 0, 280, 286, 280, 280, 0, 395, 280, 381,
1032 0, 384, 0, 13, 116, 116, 151, 474, 559, 185,
1033 280, 0, 0, 66, 0, 72, 53, 55, 61, 60,
1034 62, 0, 0, 0, 0, 0, 116, 90, 116, 158,
1035 155, 162, 161, 0, 159, 160, 164, 149, 0, 169,
1036 0, 0, 0, 0, 0, 654, 272, 398, 389, 393,
1037 280, 373, 376, 109, 115, 111, 621, 50, 78, 77,
1038 0, 73, 0, 0, 70, 0, 74, 75, 0, 102,
1039 104, 156, 170, 167, 0, 171, 172, 174, 127, 280,
1040 0, 396, 399, 0, 57, 71, 64, 168, 139, 126,
1041 280, 65, 141, 0, 0, 0
1044 static const short yydefgoto[] = { 1214,
1045 82, 83, 84, 85, 122, 320, 321, 86, 657, 765,
1046 322, 790, 906, 87, 689, 908, 891, 89, 763, 764,
1047 868, 869, 969, 1014, 1015, 970, 971, 1083, 1084, 1085,
1048 1142, 1086, 1087, 1088, 1089, 1181, 795, 796, 880, 912,
1049 881, 1023, 1024, 1096, 1025, 1026, 882, 972, 973, 914,
1050 996, 997, 1174, 1175, 974, 915, 998, 884, 1211, 1200,
1051 885, 1044, 886, 1035, 1112, 90, 289, 449, 451, 91,
1052 1030, 1063, 1031, 1154, 1032, 1109, 1110, 162, 163, 519,
1053 164, 923, 165, 166, 421, 557, 167, 168, 169, 170,
1054 171, 172, 173, 174, 175, 176, 551, 177, 553, 178,
1055 552, 815, 179, 207, 490, 333, 290, 93, 668, 771,
1056 115, 599, 94, 316, 181, 287, 116, 117, 890, 786,
1057 901, 96, 97, 98, 99, 347, 291, 457, 101, 297,
1058 102, 775, 1121, 778, 1123, 671, 1053, 674, 1055, 103,
1059 893, 894, 1050, 1051, 104, 679, 592, 593, 800, 119,
1060 479, 112, 113, 106, 607, 608, 480, 481, 482, 691,
1061 613, 348, 806, 802, 499, 369, 208, 228, 209, 210,
1062 370, 920, 1067, 212, 654, 213, 214, 215, 216, 183,
1063 426, 371, 372, 484, 630, 373, 335, 510, 374, 188,
1064 375, 563, 773, 986, 221, 576, 514, 425, 190, 577,
1065 578, 376, 191, 192, 377, 651, 617, 378, 224, 379,
1066 383, 706, 742, 866, 743, 744, 745, 746, 747, 748,
1067 749, 750, 751, 752, 753, 754, 755, 756, 757, 758,
1068 965, 1131, 759, 1071, 380, 381, 197, 382, 294, 334,
1072 static const short yypact[] = { 2064,
1073 -32768, 361, 5617,-32768, 6626,-32768, 803, 2992, 3372, 3372,
1074 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
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, 134,-32768,-32768,
1081 -32768, 2240,-32768,-32768,-32768, 273,-32768,-32768, 5145,-32768,
1082 170,-32768,-32768,-32768, 189, 6461, 6461,-32768, 6461, 253,
1083 151,-32768, 654,-32768,-32768, 803,-32768,-32768,-32768,-32768,
1084 -32768,-32768, 361,-32768,-32768, 269,-32768, 253,-32768,-32768,
1085 -32768, 5617,-32768, 319,-32768, 5853,-32768, 330, 337, 351,
1086 -32768, 366, 803, 397, 412, 1980,-32768, 2614, 5853, 5853,
1087 5853, 5853, 5853, 5853,-32768, 5888, 5888, 439,-32768, 457,
1088 463, 494, 516, 502, 479, 4592,-32768, 536, 559,-32768,
1089 579,-32768, 760, 1080,-32768,-32768,-32768, 1076, 538, 94,
1090 585, 554, 604, 549, 588, 598, 111,-32768,-32768, 406,
1091 -32768, 3415, 567, 601,-32768,-32768,-32768,-32768, 689, 3035,
1092 -32768, 4592,-32768, 3415,-32768, 3415,-32768,-32768, 693, 719,
1093 -32768, 728,-32768, 2803, 579, 761, 436, 666, 3182,-32768,
1094 3372,-32768,-32768,-32768, 6221,-32768,-32768,-32768,-32768, 778,
1095 779,-32768, 3372, 3372, 3415,-32768,-32768, 721,-32768,-32768,
1096 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-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, 796, 787,-32768,-32768,-32768,
1102 253, 4988,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1103 788, 541,-32768,-32768, 803, 803, 50,-32768, 273,-32768,
1104 -32768,-32768,-32768, 827,-32768,-32768, 860, 798, 541, 170,
1105 -32768, 514, 861,-32768, 803,-32768, 293, 5853,-32768,-32768,
1106 -32768,-32768,-32768,-32768, 865, 5853, 5853, 5853, 2236, 872,
1107 -32768,-32768,-32768, 450, 291, 6090, 232, 870, 880,-32768,
1108 -32768,-32768,-32768,-32768,-32768, 893, 5853,-32768,-32768, 5853,
1109 913, 919, 924, 939, 942, 5853,-32768, 5404,-32768, 4592,
1110 -32768,-32768,-32768,-32768, 944,-32768,-32768, 4592,-32768, 4592,
1111 -32768,-32768,-32768, 5628, 5853,-32768,-32768, 106, 5853, 5853,
1112 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853,
1113 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853,
1114 5853, 5853, 5853, 5853, 5853,-32768,-32768,-32768,-32768, 5853,
1115 599,-32768,-32768, 2425,-32768,-32768, 970,-32768, 974,-32768,
1116 5853, 529, 967, 977,-32768,-32768,-32768,-32768, 6221,-32768,
1117 -32768,-32768, 1890, 993,-32768,-32768, 5853, 96, 3562, 541,
1118 982,-32768, 541,-32768, 90, 6626, 921, 1022, 1018, 1034,
1119 1037, 1034, 803, 1050, 541,-32768, 541,-32768,-32768,-32768,
1120 926, 1019, 1048,-32768, 541, 514,-32768, 803, 1051,-32768,
1121 1054, 803, 201, 1060,-32768, 302, 1062, 323, 1062, 1075,
1122 -32768,-32768,-32768,-32768, 5791, 1072, 593,-32768, 707, 5853,
1123 -32768,-32768, 1079,-32768,-32768,-32768,-32768,-32768,-32768, 1082,
1124 1083,-32768, 3562,-32768,-32768, 1086, 1077,-32768, 356,-32768,
1125 145, 803, 803,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1126 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1076, 1076, 538,
1127 538, 94, 94, 94, 94, 585, 585, 554, 604, 549,
1128 5853, 5853, 5853,-32768, 5919, 5980,-32768,-32768, 5377,-32768,
1129 3225, 3746,-32768,-32768, 1081, 389,-32768,-32768, 1091, 1093,
1130 -32768, 1100,-32768, 4114,-32768,-32768, 3930, 4157,-32768, 982,
1131 -32768,-32768, 1084,-32768,-32768, 1106, 1114,-32768, 1127, 1129,
1132 -32768, 752,-32768, 1130,-32768,-32768,-32768, 269,-32768, 255,
1133 -32768,-32768, 5853, 250, 541,-32768,-32768, 1134,-32768,-32768,
1134 1159, 6626,-32768,-32768,-32768,-32768, 1140,-32768, 2236,-32768,
1135 -32768, 1141, 578, 707, 5802, 1143,-32768,-32768,-32768, 1161,
1136 -32768,-32768,-32768, 1157,-32768, 5853,-32768,-32768,-32768,-32768,
1137 588, 770, 598, 5853,-32768, 5853,-32768,-32768,-32768, 4259,
1138 4592, 5853,-32768, 6011, 5853,-32768,-32768,-32768,-32768,-32768,
1139 4302, 4404,-32768, 4447,-32768, 1162,-32768,-32768,-32768,-32768,
1140 -32768, 1164,-32768,-32768, 1166,-32768, 803,-32768, 803, 1171,
1141 5538,-32768,-32768, 1163,-32768, 1167,-32768, 346,-32768,-32768,
1142 803, 741, 4592, 1173,-32768,-32768, 143, 1168,-32768, 1169,
1143 122, 1176, 1174,-32768, 5853, 6011,-32768,-32768,-32768,-32768,
1144 1179, 1180,-32768,-32768, 411, 5853, 5853, 5853, 5853, 5853,
1145 5853, 5853, 5888, 5888, 1170, 475, 483, 530, 1016, 1113,
1146 543, 1088, 836, 848, 726, 869, 1172, 1177, 1175, 1151,
1147 156, 1182,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1148 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 566,
1149 572,-32768,-32768, 1007,-32768,-32768,-32768, 4549,-32768,-32768,
1150 -32768,-32768, 6548,-32768,-32768, 6548,-32768,-32768,-32768,-32768,
1151 5853, 891,-32768, 5538,-32768,-32768, 5538, 1124,-32768,-32768,
1152 -32768, 1188,-32768,-32768,-32768, 1257,-32768, 273, 1194,-32768,
1153 641,-32768, 707,-32768,-32768, 1195,-32768,-32768,-32768, 1199,
1154 803,-32768, 629, 1200, 5853,-32768,-32768, 1208, 645, 1203,
1155 777, 784, 814, 837, 846, 875, 889, 909, 5853, 5822,
1156 5853, 915, 922, 137, 5853, 5853, 5853, 5853, 5853, 5853,
1157 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853,
1158 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853,
1159 5853, 5853,-32768, 5853,-32768, 1210, 1214,-32768, 1056, 77,
1160 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1161 1078,-32768,-32768,-32768,-32768, 1221,-32768,-32768, 5538, 477,
1162 -32768, 253, 5223,-32768, 6548, 5223, 6548,-32768,-32768,-32768,
1163 931,-32768,-32768,-32768,-32768,-32768,-32768, 170, 93,-32768,
1164 -32768,-32768, 1085,-32768,-32768, 149,-32768,-32768,-32768, 5833,
1165 -32768,-32768, 623,-32768, 1216, 982,-32768,-32768, 941, 5853,
1166 1215, 952, 953, 241, 803, 803,-32768,-32768,-32768,-32768,
1167 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 992, 995, 1020,
1168 675, 806, 681, 736, 367, 613, 631, 669, 856, 987,
1169 503, 342, 114, 588, 5853, 598, 6011,-32768,-32768, 1057,
1170 1061, 6352, 429, 112,-32768,-32768, 783,-32768,-32768,-32768,
1171 -32768,-32768, 1222, 56,-32768,-32768, 5223,-32768, 5223,-32768,
1172 -32768, 4858, 653,-32768, 1153, 6352, 429, 112,-32768, 501,
1173 -32768,-32768, 803,-32768, 1055, 1027,-32768, 1030, 1033,-32768,
1174 -32768, 950,-32768,-32768, 1068, 218, 4831,-32768,-32768,-32768,
1175 -32768,-32768, 680,-32768, 429, 815, 65, 65,-32768,-32768,
1176 150, 816, 1165,-32768, 117,-32768,-32768,-32768,-32768,-32768,
1177 -32768,-32768,-32768,-32768, 839,-32768, 541,-32768,-32768, 1218,
1178 -32768, 1225, 1229,-32768, 1230,-32768,-32768,-32768, 1181,-32768,
1179 4673, 680,-32768, 816,-32768, 426, 1232,-32768,-32768,-32768,
1180 -32768, 1236, 1040, 1046,-32768, 218, 218, 175,-32768,-32768,
1181 -32768,-32768, 1183, 218,-32768, 1109,-32768, 495, 1231,-32768,
1182 1184, 429, 1186,-32768,-32768,-32768,-32768, 722, 150, 258,
1183 803, 803, 65, 1187,-32768, 117, 117,-32768, 551, 858,
1184 -32768, 117,-32768,-32768, 5853, 56, 1244,-32768,-32768,-32768,
1185 1234,-32768, 1243,-32768, 1191, 1191,-32768,-32768,-32768, 1049,
1186 5853, 1189, 990, 768, 175, 495,-32768,-32768,-32768,-32768,
1187 -32768, 218, 17, 803, 803, 218, 1191,-32768, 1191,-32768,
1188 -32768,-32768, 150, 1238,-32768,-32768, 150,-32768, 794, 551,
1189 432, 803, 803, 117, 1190, 858,-32768,-32768,-32768,-32768,
1190 5853,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1191 218,-32768, 768, 1250,-32768, 1252,-32768,-32768, 1255,-32768,
1192 -32768,-32768,-32768,-32768, 1254,-32768,-32768, 551,-32768,-32768,
1193 1198,-32768,-32768, 1262,-32768,-32768,-32768,-32768,-32768,-32768,
1194 -32768,-32768,-32768, 1290, 1293,-32768
1197 static const short yypgoto[] = {-32768,
1198 -32768, 1213,-32768,-32768,-32768,-32768, -389, -102,-32768,-32768,
1199 971,-32768,-32768,-32768,-32768,-32768, 129,-32768, 532,-32768,
1200 420,-32768,-32768,-32768,-32768,-32768,-32768, -655,-32768,-32768,
1201 -32768, -928,-32768, -907,-32768,-32768, -705,-32768,-32768,-32768,
1202 -691, 311, 217,-32768,-32768, 285, 430,-32768,-32768, 399,
1203 -32768,-32768, -1016, -676,-32768,-32768,-32768,-32768,-32768,-32768,
1204 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1205 -32768,-32768, -581, 155, 324, -570, 211,-32768, -587, 504,
1206 988,-32768,-32768, -583,-32768,-32768, 18, -324, -340, -312,
1207 -309, -367, -346, -341, -506, -461,-32768, -582,-32768, -112,
1208 -32768,-32768, 637, 1237, -610, -353, 1,-32768,-32768,-32768,
1209 -463,-32768,-32768,-32768, 0, -229, 881,-32768, -793, -703,
1210 -32768,-32768,-32768,-32768,-32768,-32768, 326, 740,-32768, 580,
1211 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 782,
1212 -672, -484,-32768, 226,-32768,-32768, 668, 672, 550, 5,
1213 -372, 1239,-32768, 15,-32768,-32768, -576,-32768,-32768,-32768,
1214 659, -233, 1006,-32768, -490, 714, 1345,-32768, 1132,-32768,
1215 745,-32768,-32768,-32768,-32768, -97,-32768,-32768,-32768,-32768,
1216 2, 1311, 1408,-32768,-32768, 1434,-32768,-32768, -360,-32768,
1217 771, 286, -554, -781,-32768, 845,-32768,-32768, 935, -83,
1218 -331, 6,-32768, 146, 69,-32768,-32768, 249,-32768, 371,
1219 -32768,-32768, 656,-32768, 393,-32768,-32768,-32768,-32768,-32768,
1220 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1221 -32768,-32768,-32768,-32768, 1547,-32768,-32768, 1600, -247, 182,
1229 static const short yytable[] = { 95,
1230 92, 597, 95, 309, 105, 292, 624, 511, 694, 184,
1231 229, 230, 509, 332, 222, 222, 114, 231, 232, 233,
1232 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
1233 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
1234 254, 255, 256, 1185, 641, 548, 698, 257, 258, 259,
1235 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1236 270, 271, 272, 273, 540, 541, 729, 549, 463, 458,
1237 731, 741, 471, 550, 284, 572, 193, 1049, 538, 539,
1238 900, 95, 92, 902, 905, 606, 105, 883, 1027, 2,
1239 581, 643, 473, 570, 542, 543, 544, 545, 1028, 301,
1240 477, 546, 547, 896, 913, 95, 433, -389, 993, 1176,
1241 -389, 437, -389, 438, 988, 314, 315, 317, 729, 776,
1242 571, 323, 731, 741, 810, 442, 477, 312, 88, 293,
1243 1190, 439, 1191, 522, -613, 1027, 325, 346, -613, 349,
1244 1106, 622, 405, 406, 356, 1028, 809, 739, 1133, 523,
1245 1107, 417, 414, 477, 223, 223, 350, 351, 352, 353,
1246 354, 355, -103, -103, 935, 420, 418, -663, 495, 1134,
1247 1136, 638, -389, 696, -389, 1100, 2, 1101, -110, -110,
1248 936, 107, -389, 422, 107, 980, 1045, 293, 107, 199,
1249 199, 199, 740, 1102, 978, 428, 863, 429, 1135, 739,
1250 994, 803, 1186, 346, 883, 1054, 193, 1056, 1078, 222,
1251 88, 864, 295, 1184, 222, 687, 222, 1189, -663, 511,
1252 895, 420, 987, 897, 989, 493, 444, 1183, 222, 222,
1253 650, 686, 76, 77, 123, 303, 79, 80, 76, 77,
1254 123, 1077, 79, 80, 740, 662, 473, 76, 1029, 684,
1255 193, 1078, 1204, 332, 477, -280, 194, 495, 193, -103,
1256 -103, 420, 193, 107, 193, 2, 108, 1009, 628, 108,
1257 -280, 700, 293, 124, 685, -110, -110, 682, -389, -389,
1258 -389, 1027, -389, -389, 1151, 447, 736, 107, 1058, 313,
1259 301, 1028, 452, 193, 76, 1029, -281, 477, 286, 76,
1260 1108, 95, 456, 107, 459, 461, 455, 737, 419, 1001,
1261 803, 420, 738, 733, 107, 493, -663, -663, 95, 199,
1262 -663, -663, 420, 470, 323, 100, 616, 346, 118, 732,
1263 121, -389, -389, -389, 332, -389, -389, 199, 736, 698,
1264 562, 734, 327, 420, 735, 437, 496, 618, 108, 223,
1265 793, 458, 683, 336, 223, 964, 223, 76, 1081, 737,
1266 337, 497, -611, 199, 738, 733, -611, 346, 223, 223,
1267 413, 199, 108, 199, 338, 199, 636, 199, 195, 729,
1268 637, 732, 332, 731, 741, 199, 194, -601, 326, 339,
1269 199, -601, 199, 734, 2, 703, 735, 1079, 1080, 340,
1270 76, 1081, 966, 1082, 199, 199, 199, 100, 985, 420,
1271 711, 985, 712, 653, 341, 405, 406, 535, 536, 537,
1272 1132, 296, 296, 419, 296, 560, 420, 898, 1138, 342,
1273 194, 420, -389, -389, -389, 818, -389, -389, 194, 452,
1274 76, 1029, 194, 1152, 194, 1098, 1099, 324, 222, 95,
1275 -440, 495, 95, 435, 579, 1027, 420, 582, 1194, 587,
1276 739, 590, 360, 596, 95, 1028, 95, 492, 110, 111,
1277 420, 603, 361, 194, 323, -389, -389, -389, 362, -389,
1278 -389, 612, 820, 107, 366, 367, 107, 107, 107, 325,
1279 332, 961, 193, 620, 981, -566, 496, 982, 626, -566,
1280 107, 456, 985, -565, 985, 740, 107, -565, 195, 363,
1281 953, 954, 332, 962, 1018, 1019, 365, 627, 1153, 963,
1282 1143, 1157, 1144, -609, 951, 952, 495, -609, 76, 77,
1283 123, 364, 79, 80, 2, 1159, 1160, -281, 1145, 472,
1284 955, 956, 957, 958, 1020, 1021, 435, 959, 960, 420,
1285 -567, 199, 195, 493, -567, 411, 412, -657, 1022, 199,
1286 195, 199, 452, -587, 195, 1005, 195, -587, 108, 403,
1287 404, 460, 462, 464, 2, 624, 1161, 452, 1162, 1153,
1288 -661, 666, 477, 1114, 456, 108, -564, 414, 223, 798,
1289 -564, 326, 420, 1198, 1163, 195, 867, 680, 681, 736,
1290 -658, -389, 696, -389, 323, 199, 411, 412, 76, 77,
1291 123, -389, 79, 80, 76, 1029, -280, 1152, 495, 325,
1292 737, 407, 408, 626, 199, 738, 733, 415, 456, 193,
1293 199, 107, 413, -602, 107, 409, 410, -602, 708, 709,
1294 555, 556, 732, 346, 107, 346, 107, 1002, 107, 420,
1295 1003, -603, 416, 925, 734, -603, 107, 735, 423, 107,
1296 995, 405, 406, 107, -280, 420, 495, 772, 332, 929,
1297 293, 494, 194, 982, 2, 779, 298, 781, 300, 405,
1298 406, 787, 788, 76, 77, 123, 792, 79, 80, -604,
1299 612, 799, -494, -604, 199, -596, 496, 293, 798, -596,
1300 1092, -598, 927, 107, 107, -598, 801, 424, 400, 401,
1301 402, 497, 403, 404, -660, 346, 108, 405, 406, 108,
1302 305, 306, 307, 76, 77, 123, 1033, 79, 80, 594,
1303 -280, 108, 625, 108, 821, 822, 823, 824, 825, 826,
1304 430, 326, 199, 199, 609, 1059, 1150, 1100, 614, 1101,
1305 1065, 431, 182, 211, 211, 199, -599, 436, 199, 199,
1306 -599, 1168, 853, 854, -280, 1102, 495, 403, 404, 1091,
1307 889, 676, 677, 1072, 2, 1093, 855, 856, 189, 220,
1308 220, 494, -659, 384, 1104, 385, 107, -389, 639, 640,
1309 420, 710, 1182, 1143, 195, 1144, 440, -581, 441, 917,
1310 799, -581, 626, -389, -586, 454, 386, 387, -586, 194,
1311 448, 1145, 445, 1125, 1126, 801, 1127, 1203, 1193, 1161,
1312 469, 1162, 446, 76, 77, 123, -595, 79, 80, 918,
1313 -595, 199, 199, 293, -585, 760, 1103, 1163, -585, 400,
1314 401, 402, 199, 199, 466, 199, 274, 275, 276, 277,
1315 278, 279, 280, 281, 282, 283, 1113, -584, 107, 982,
1316 107, -584, 1165, 948, 949, 950, -583, 849, 850, 107,
1317 -583, 326, 107, 107, 199, 293, -606, 468, 1164, 299,
1318 -606, 302, 182, 304, 474, 308, 485, 760, 1017, 491,
1319 310, 983, 407, 408, 500, -582, 851, 852, 990, -582,
1320 318, 1036, 319, 1037, 501, 427, 409, 410, 189, -579,
1321 899, 677, 1061, -579, 1038, 1039, 502, 1040, 1201, 1041,
1322 1042, 857, 858, 76, 77, 123, 182, 79, 80, -580,
1323 504, 195, 1043, -580, 182, -576, 505, 692, 182, -576,
1324 182, 506, -577, 594, 388, 594, -577, 1006, 211, 199,
1325 991, 992, 189, 211, 794, 211, 507, 614, 108, 508,
1326 189, -568, 513, 309, 189, -568, 189, 211, 211, 182,
1327 420, 1075, -571, 636, 220, 434, -571, 1008, 564, 220,
1328 1046, 220, 107, 95, 565, 76, 77, 123, 1052, 79,
1329 80, 567, 107, 220, 220, 189, 503, 76, 1095, 799,
1330 568, 1068, 332, 569, 582, 580, 456, -607, 584, 1073,
1331 1074, -607, -591, 601, 1066, -592, -591, 452, 1177, -592,
1332 520, 1179, 1180, 407, 408, 524, 525, 526, 527, 528,
1333 529, 530, 531, 532, 533, 534, 586, 409, 410, 830,
1334 -593, 831, 585, -389, -593, 602, 95, -589, 1115, 1117,
1335 -572, -589, -280, -570, -572, 589, 554, -570, 332, -389,
1336 -574, 452, 832, 833, -574, 799, -575, 108, 595, -573,
1337 -575, 604, 450, -573, 611, 610, 453, 924, 870, 871,
1338 872, 615, 420, 512, 873, 874, 875, 876, 877, 878,
1339 879, 515, 619, 516, 465, 623, 634, 467, 892, 629,
1340 635, 892, 389, 631, 652, 475, 667, 632, 478, 400,
1341 401, 402, 1167, 331, 655, 95, 107, 107, 1171, 656,
1342 1052, 846, 847, 848, 658, 670, 331, 331, 331, 331,
1343 331, 331, 672, 358, 359, 835, 390, 391, 392, 393,
1344 394, 395, 396, 397, 398, 399, 673, 675, 760, 870,
1345 871, 872, 678, 517, 688, 1034, 909, 910, 911, 1139,
1346 1140, 1141, 575, 690, 693, 107, 701, 695, 182, 836,
1347 837, 838, 839, 840, 841, 842, 843, 844, 845, 1034,
1348 705, 107, 704, 774, 107, 777, 770, 211, 783, 789,
1349 805, 791, 807, 829, 189, 808, 811, 1090, 812, 1209,
1350 859, 1010, 1011, 816, 817, 862, 865, 1097, 1034, 1034,
1351 1213, 903, 907, 220, 861, 860, 1111, 916, 892, 921,
1352 892, 892, 892, 922, 926, 928, 575, 930, 107, 478,
1353 967, 968, -52, 1004, -49, 1007, 583, 1016, 1116, 1048,
1354 1060, 588, 1070, 591, 180, 1076, 1119, 107, 1120, 1122,
1355 108, 600, 1105, 1172, 1146, 605, 1128, 1090, 1090, 1090,
1356 1130, 1170, 1173, 871, 1192, 1090, 108, 1205, 1124, 1069,
1357 1137, 1147, 707, 1149, 1158, 575, 1178, 1199, 1206, 1207,
1358 1208, 1034, 107, 107, 1034, 1210, 1212, 1111, 1111, 1215,
1359 575, 665, 1216, 1111, 285, 476, 887, 107, 873, 874,
1360 875, 876, 877, 878, 879, 182, 979, 1062, 1148, 1094,
1361 975, 999, 892, 108, 892, 1195, 1090, 785, 185, 217,
1362 217, 1064, 1166, 1090, 669, 107, 107, 1090, 909, 910,
1363 911, 189, 108, 933, 873, 874, 875, 876, 877, 878,
1364 879, 1169, 1034, 107, 107, 1111, 782, 598, 780, 797,
1365 919, 311, 498, 331, 227, 443, 1129, 633, 561, 1013,
1366 583, 814, 1090, 665, 714, 0, 0, 1155, 1156, 0,
1367 0, 0, 344, 0, 345, 665, 0, 0, 0, 0,
1368 0, 0, 108, 0, 0, 478, 0, 331, 331, 331,
1369 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
1370 331, 331, 331, 0, 697, 0, 804, 0, 0, 702,
1371 1187, 1188, 0, 0, 0, 186, 218, 218, 180, 0,
1372 785, 0, 0, 785, 0, 0, 180, 0, 1196, 1197,
1373 180, 0, 180, 0, 331, 0, 0, 762, 0, 0,
1374 432, 187, 219, 219, 0, 0, 0, 0, 185, 0,
1375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1376 0, 180, 0, 0, 0, 931, 520, 0, 0, 0,
1377 0, 937, 938, 939, 940, 941, 942, 943, 944, 945,
1378 946, 947, 331, 0, 0, 0, 0, 331, 0, 0,
1379 0, 0, 185, 0, 0, 0, 0, 0, 0, 0,
1380 185, 0, 0, 0, 185, 0, 185, 0, 0, 0,
1381 834, 0, 0, 0, 217, 0, 0, 0, 0, 217,
1382 0, 217, 0, 0, 0, 785, 0, 0, 0, 0,
1383 0, 0, 0, 217, 217, 185, 0, 0, 331, 0,
1384 331, 0, 645, 647, 0, 186, 0, 0, 0, 0,
1385 0, 0, 0, 0, 196, 225, 225, 0, 0, 0,
1386 0, 0, 0, 0, 483, 0, 0, 0, 0, 0,
1387 904, 187, 486, 487, 488, 489, 0, 0, 0, 0,
1388 0, 0, 0, 0, 0, 0, 0, 0, 0, 186,
1389 331, 0, 0, 483, 0, 0, 0, 186, 0, 0,
1390 0, 186, 0, 186, 483, 0, 0, 198, 226, 226,
1391 0, 218, 331, 0, 0, 187, 218, 0, 218, 0,
1392 0, 521, 0, 187, 0, 0, 0, 187, 785, 187,
1393 218, 218, 186, 0, 0, 0, 0, 219, 0, 0,
1394 0, 730, 219, 0, 219, 0, 0, 0, 0, 0,
1395 0, 0, 0, 0, 0, 0, 219, 219, 187, 0,
1396 180, 0, 0, 0, 0, 976, 977, 566, 0, 0,
1397 0, 0, 0, 984, 0, 0, 0, 0, 0, 0,
1398 0, 0, 0, 0, 196, 0, 0, 0, 0, 0,
1399 0, 0, 0, 730, 0, 0, 0, 1000, 0, 0,
1400 0, 0, 0, 0, 331, 331, 331, 331, 331, 331,
1401 827, 828, 0, 0, 0, 0, 0, 0, 0, 0,
1402 0, 0, 0, 0, 0, 0, 0, 0, 196, 0,
1403 0, 0, 0, 0, 185, 0, 196, 198, 0, 0,
1404 196, 0, 196, 0, 0, 0, 0, 0, 0, 0,
1405 225, 0, 0, 217, 0, 225, 0, 225, 0, 0,
1406 0, 0, 0, 1047, 0, 0, 0, 0, 331, 225,
1407 225, 196, 0, 0, 0, 0, 0, 0, 0, 0,
1408 0, 198, 0, 0, 0, 0, 0, 0, 642, 198,
1409 0, 0, 0, 198, 0, 198, 0, 180, 0, 0,
1410 0, 0, 331, 226, 0, 0, 0, 0, 226, 0,
1411 226, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1412 0, 0, 226, 226, 198, 0, 0, 0, 0, 0,
1413 0, 186, 1118, 331, 331, 331, 331, 331, 331, 331,
1414 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
1415 218, 331, 0, 0, 0, 489, 0, 187, 0, 0,
1416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1417 0, 185, 0, 0, 0, 0, 219, 0, 0, 0,
1418 483, 0, 483, 0, 0, 0, 0, 0, 715, 0,
1419 201, 761, 0, 0, 0, 126, 127, 128, 0, 0,
1420 202, 131, 132, 133, 134, 135, 136, 203, -468, -468,
1421 0, 0, 0, 204, -468, 0, 0, 331, 139, 140,
1422 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1423 0, -280, -280, 0, 0, 145, 146, 147, 0, 0,
1424 0, 813, 0, 0, 0, 0, 0, 0, 0, 0,
1425 1202, 0, 819, 0, 730, 0, 0, 0, 0, 148,
1426 0, 0, 0, 0, 0, 0, 0, 0, 186, 0,
1427 196, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1428 0, -468, 150, 151, 152, 153, 154, 155, 0, 225,
1429 0, 0, 0, 0, 187, 0, 156, 343, 0, 0,
1430 157, 0, 0, 328, 0, 0, 0, 0, 139, 140,
1431 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1432 0, 0, 0, 198, 0, 145, 146, 147, 0, 0,
1433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1434 0, 0, 226, 0, 0, 0, 0, 0, 0, 148,
1435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1436 0, 0, 0, -1, 1, 0, 0, 934, 0, 0,
1437 0, 0, 76, 158, 159, 160, 205, 206, 0, 0,
1438 0, 0, 0, 0, 0, 0, 0, -280, 0, 0,
1439 157, 0, 0, 0, 0, 0, 0, 2, 0, 0,
1440 0, 0, 331, 0, 0, 0, 0, 196, 3, 0,
1441 0, 0, 0, 0, 0, 0, 0, 0, 331, 0,
1442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1443 -389, -389, -389, 0, 4, 0, 0, 0, 5, 6,
1444 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1445 0, 0, 8, 9, 10, 0, 489, 0, 331, 0,
1446 198, 0, 76, 329, 330, 160, 0, 0, 0, 0,
1447 0, 11, 12, 13, 0, 14, 15, 16, 17, 18,
1448 19, 20, 21, 22, 23, 0, 24, 25, 26, 27,
1449 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1450 38, 1012, 39, 40, 41, 42, 43, 44, 45, 46,
1451 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1452 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1453 67, 68, 69, 70, 71, 72, 73, 74, 75, -2,
1454 1, 0, 0, 0, 0, 0, 76, 77, 78, 0,
1455 79, 80, 81, -262, 0, 0, 0, 0, 0, 328,
1456 0, 0, 0, -280, 139, 140, 141, 142, 143, 144,
1457 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
1458 0, 145, 146, 147, 3, 0, 0, 0, 0, 0,
1459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1460 0, 0, 0, 0, 0, 148, -389, -389, -389, 0,
1461 4, 0, 0, 0, 5, 6, 7, 0, 0, 0,
1462 0, 0, 0, 0, 0, 0, 0, 0, 8, 9,
1463 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1464 0, 0, 0, 0, 0, 0, 157, 11, 12, 13,
1465 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1466 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1467 32, 33, 34, 35, 36, 37, 38, 0, 39, 40,
1468 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1469 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1470 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1471 71, 72, 73, 74, 75, 0, 0, 0, 76, 329,
1472 330, 160, 76, 77, 78, 125, 79, 80, 81, 0,
1473 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1474 135, 136, 137, -520, 558, 0, 0, 0, 138, 0,
1475 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1476 0, 0, 0, 0, 0, 0, -280, -280, 0, 3,
1477 145, 146, 147, 0, 0, 0, 0, 0, 0, 0,
1478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1479 0, -389, -389, -389, 148, 4, 0, 0, 0, 0,
1480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1481 0, 0, 0, 0, 0, 0, 0, 150, 151, 152,
1482 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1483 0, 156, 11, 12, 13, 157, 14, 15, 16, 17,
1484 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1485 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1486 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1487 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1488 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1489 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1490 0, 0, 0, 0, 0, 0, 0, 76, 158, 559,
1491 160, 161, 80, 81, 125, 0, 0, 0, 0, 126,
1492 127, 128, 0, 129, 130, 131, 132, 133, 134, 135,
1493 136, 137, -520, 0, 0, 0, 0, 138, 0, 0,
1494 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1495 0, 0, 0, 0, 0, -280, -280, 0, 0, 145,
1496 146, 147, 0, 0, 0, 0, 0, 0, 0, 0,
1497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1498 -280, -280, -280, 148, 0, 0, 0, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 0, 0, 0, 150, 151, 152, 153,
1501 154, 155, 0, 0, 0, 0, 0, 0, 0, 0,
1502 156, -280, -280, -280, 157, -280, -280, -280, -280, -280,
1503 -280, -280, -280, -280, -280, 0, -280, -280, -280, -280,
1504 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1505 -280, 0, -280, -280, -280, -280, -280, -280, -280, -280,
1506 -280, -280, -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, 0,
1509 0, 0, 0, 0, 0, 0, 76, 158, 159, 160,
1510 161, 80, -280, 201, 0, 0, 0, 0, 126, 127,
1511 128, 0, 0, 202, 131, 132, 133, 134, 135, 136,
1512 203, -520, -524, 0, 0, 0, 204, 0, 0, 0,
1513 0, 139, 140, 141, 142, 143, 144, 0, 0, 0,
1514 0, 0, 0, 0, -280, -280, 0, 0, 145, 146,
1515 147, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1516 0, 0, 0, 0, 0, 0, 0, 0, 0, -280,
1517 -280, -280, 148, 0, 0, 0, 0, 0, 0, 0,
1518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1519 0, 0, 0, 0, 0, 150, 151, 152, 153, 154,
1520 155, 0, 0, 0, 0, 0, 0, 0, 0, 156,
1521 -280, -280, -280, 157, -280, -280, -280, -280, -280, -280,
1522 -280, -280, -280, -280, 0, -280, -280, -280, -280, -280,
1523 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1524 0, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1525 -280, -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, 0, 0,
1528 0, 0, 0, 0, 0, 76, 158, 159, 160, 205,
1529 206, -280, 125, 0, 0, 0, 0, 126, 127, 128,
1530 0, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1531 -520, 0, 0, 0, 0, 138, 0, 0, 0, 0,
1532 139, 140, 141, 142, 143, 144, 0, 0, 0, 0,
1533 0, 0, 0, -280, -280, 125, 0, 145, 146, 147,
1534 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1535 135, 136, 137, -520, 0, 0, 0, 0, 138, 0,
1536 0, 148, 0, 139, 140, 141, 142, 143, 144, 0,
1537 0, 0, 0, 0, 0, 0, -280, -280, 0, 0,
1538 145, 146, 147, 149, 150, 151, 152, 153, 154, 155,
1539 0, 0, 0, 0, 0, 0, 0, 0, 156, 0,
1540 0, 0, 157, 0, 148, 0, 0, 0, 0, 0,
1541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1542 0, 0, 0, 0, 0, 0, -495, 150, 151, 152,
1543 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1544 0, 156, 0, 0, 0, 157, 0, 0, 0, 0,
1545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1547 0, 0, 0, 0, 76, 158, 159, 160, 161, 80,
1548 0, 0, 201, 0, 0, 0, 0, 126, 127, 128,
1549 0, 0, 202, 131, 132, 133, 134, 135, 136, 203,
1550 -520, -524, 0, 0, 0, 204, 0, 0, 0, 0,
1551 139, 140, 141, 142, 143, 144, 0, 76, 158, 159,
1552 160, 161, 80, -280, -280, 125, 0, 145, 146, 147,
1553 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1554 135, 136, 137, -520, 648, 0, 0, 0, 138, 0,
1555 0, 148, 0, 139, 140, 141, 142, 143, 144, 0,
1556 0, 0, 0, 0, 0, 0, -280, -280, 0, 0,
1557 145, 146, 147, -464, 150, 151, 152, 153, 154, 155,
1558 0, 0, 0, 0, 0, 0, 0, 0, 156, 0,
1559 0, 0, 157, 0, 148, 0, 0, 0, 0, 0,
1560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1561 0, 0, 0, 0, 0, 0, 0, 150, 151, 152,
1562 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1563 0, 156, 0, 0, 0, 157, 0, 0, 0, 0,
1564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1566 0, 0, 0, 0, 76, 158, 159, 160, 205, 206,
1567 0, 0, 201, 0, 0, 0, 0, 126, 127, 128,
1568 0, 0, 202, 131, 132, 133, 134, 135, 136, 203,
1569 -520, -524, 0, 0, 0, 204, 0, 0, 0, 0,
1570 139, 140, 141, 142, 143, 144, 0, 76, 158, 159,
1571 160, 161, 80, -280, -280, 125, 0, 145, 146, 147,
1572 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1573 135, 136, 137, -520, 0, 0, 0, 0, 138, 0,
1574 0, 148, 0, 139, 140, 141, 142, 143, 144, 0,
1575 0, 0, 0, 0, 0, 0, -280, -280, 0, 0,
1576 145, 146, 147, 0, 150, 151, 152, 153, 154, 155,
1577 0, 0, 0, 0, 0, 0, 0, 0, 156, 0,
1578 0, 0, 157, 0, 148, 0, 0, 0, 0, 0,
1579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1580 0, 0, 0, 0, 0, 0, 0, 150, 151, 152,
1581 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1582 0, 156, 0, 0, 0, 157, 0, 0, 0, 0,
1583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1585 0, 0, 0, 0, 76, 158, 159, 160, 205, 206,
1586 0, 0, 0, 0, 0, 0, 0, 126, 127, 128,
1587 0, 129, 130, 131, 132, 133, 134, 135, 136, 203,
1588 -520, 573, 0, 0, 0, 368, 0, 0, 0, 0,
1589 139, 140, 141, 142, 143, 144, 0, 76, 158, 159,
1590 160, 161, 80, -280, -280, 0, 3, 145, 146, 147,
1591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1593 0, 148, 4, 0, 0, 0, 0, 0, 0, 0,
1594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1595 0, 0, 0, 0, 150, 151, 152, 153, 154, 155,
1596 0, 0, 0, 0, 0, 0, 0, 0, 574, 11,
1597 12, 13, 157, 14, 15, 16, 17, 18, 19, 20,
1598 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1599 30, 31, 32, 33, 34, 35, 36, 37, 38, 0,
1600 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1601 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1602 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1603 69, 70, 71, 72, 73, 74, 75, 0, 0, 0,
1604 0, 0, 0, 0, 76, 158, 559, 160, 161, 80,
1605 81, 126, 127, 128, 0, 129, 130, 131, 132, 133,
1606 134, 135, 136, 203, -520, 649, 0, 0, 0, 368,
1607 0, 0, 0, 0, 139, 140, 141, 142, 143, 144,
1608 0, 0, 0, 0, 0, 0, 0, -280, -280, 0,
1609 3, 145, 146, 147, 0, 0, 0, 0, 0, 0,
1610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1611 0, 0, 0, 0, 0, 148, 4, 0, 0, 0,
1612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1613 0, 0, 0, 0, 0, 0, 0, 0, 150, 151,
1614 152, 153, 154, 155, 0, 0, 0, 0, 0, 0,
1615 0, 0, 156, 11, 12, 13, 157, 14, 15, 16,
1616 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
1617 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1618 36, 37, 38, 0, 39, 40, 41, 42, 43, 44,
1619 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1620 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1621 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1622 75, 0, 0, 0, 0, 0, 0, 0, 76, 158,
1623 559, 160, 161, 80, 81, 126, 127, 128, 0, 129,
1624 130, 131, 132, 133, 134, 135, 136, 203, -520, 660,
1625 0, 0, 0, 368, 0, 0, 0, 0, 139, 140,
1626 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1627 0, -280, -280, 0, 3, 145, 146, 147, 0, 0,
1628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1629 0, 0, 0, 0, 0, 0, 0, 0, 0, 148,
1630 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1632 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1633 0, 0, 0, 0, 0, 0, 661, 11, 12, 13,
1634 157, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1635 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1636 32, 33, 34, 35, 36, 37, 38, 0, 39, 40,
1637 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1638 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1639 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1640 71, 72, 73, 74, 75, 0, 0, 0, 0, 0,
1641 0, 0, 76, 158, 559, 160, 161, 80, 81, 126,
1642 127, 128, 0, 129, 130, 131, 132, 133, 134, 135,
1643 136, 203, -520, 659, 0, 0, 0, 368, 0, 0,
1644 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1645 0, 0, 0, 0, 0, 0, 0, 0, 0, 145,
1646 146, 147, 126, 127, 128, 0, 129, 130, 131, 132,
1647 133, 134, 135, 136, 203, -520, 663, 0, 0, 0,
1648 368, 0, 0, 148, 0, 139, 140, 141, 142, 143,
1649 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1650 0, 0, 145, 146, 147, 0, 150, 151, 152, 153,
1651 154, 155, 0, 0, 0, 0, 0, 0, 0, 0,
1652 156, 0, 0, 0, 157, 0, 148, 0, 0, 0,
1653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1654 0, 0, 0, 0, 0, 0, 0, 0, 0, 150,
1655 151, 152, 153, 154, 155, 0, 0, 0, 0, 0,
1656 0, 0, 0, 664, 126, 127, 128, 157, 129, 130,
1657 131, 132, 133, 134, 135, 136, 203, -520, 713, 0,
1658 0, 0, 368, 0, 0, 0, 0, 139, 140, 141,
1659 142, 143, 144, 0, 0, 0, 76, 158, 159, 160,
1660 161, 80, 0, 0, 145, 146, 147, 126, 127, 128,
1661 0, 129, 130, 131, 132, 133, 134, 135, 136, 203,
1662 -520, 766, 0, 0, 0, 368, 0, 0, 148, 0,
1663 139, 140, 141, 142, 143, 144, 0, 0, 0, 76,
1664 158, 159, 160, 161, 80, 0, 0, 145, 146, 147,
1665 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1666 0, 0, 0, 0, 0, 156, 0, 0, 0, 157,
1667 0, 148, 0, 0, 0, 0, 0, 0, 0, 0,
1668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1669 0, 0, 0, 0, 150, 151, 152, 153, 154, 155,
1670 0, 0, 0, 0, 0, 0, 0, 0, 156, 126,
1671 127, 128, 157, 129, 130, 131, 132, 133, 134, 135,
1672 136, 203, -520, 767, 0, 0, 0, 368, 0, 0,
1673 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1674 0, 76, 158, 159, 160, 161, 80, 0, 0, 145,
1675 146, 147, 126, 127, 128, 0, 129, 130, 131, 132,
1676 133, 134, 135, 136, 203, -520, 769, 0, 0, 0,
1677 368, 0, 0, 148, 0, 139, 140, 141, 142, 143,
1678 144, 0, 0, 0, 76, 158, 159, 160, 161, 80,
1679 0, 0, 145, 146, 147, 0, 150, 151, 152, 153,
1680 154, 155, 0, 0, 0, 0, 0, 0, 0, 0,
1681 768, 0, 0, 0, 157, 0, 148, 0, 0, 0,
1682 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1683 0, 0, 0, 0, 0, 0, 0, 0, 0, 150,
1684 151, 152, 153, 154, 155, 0, 0, 0, 0, 0,
1685 0, 0, 0, 156, 126, 127, 128, 157, 129, 130,
1686 131, 132, 133, 134, 135, 136, 203, -520, 888, 0,
1687 0, 0, 368, 0, 0, 0, 0, 139, 140, 141,
1688 142, 143, 144, 0, 0, 0, 76, 158, 159, 160,
1689 161, 80, 0, 0, 145, 146, 147, 126, 127, 128,
1690 0, 129, 130, 131, 132, 133, 134, 135, 136, 203,
1691 -520, 0, 0, 0, 0, 368, 0, 0, 148, 0,
1692 139, 140, 141, 142, 143, 144, 0, 0, 0, 76,
1693 158, 159, 160, 161, 80, 0, 0, 145, 146, 147,
1694 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1695 0, 0, 0, 0, 0, 156, 0, 0, 0, 157,
1696 0, 148, 0, 0, 0, 0, 0, 0, 0, 0,
1697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1698 0, 0, 0, 0, 150, 151, 152, 153, 154, 155,
1699 293, 0, 0, 0, 0, 0, 0, 0, 156, 0,
1700 0, 0, 157, 0, 0, 0, 0, 0, 0, 0,
1701 0, 0, 0, 0, 0, 0, 0, 3, 0, 0,
1702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1703 0, 76, 158, 159, 160, 161, 80, 0, 0, -389,
1704 -389, -389, 0, 4, 0, 0, 0, 0, 0, 0,
1705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1707 0, 0, 0, 0, 76, 158, 159, 160, 161, 80,
1708 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1709 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1710 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1711 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1712 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1713 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1714 68, 69, 70, 71, 72, 73, 74, 75, 293, 0,
1715 0, 0, 0, 0, 0, 0, 0, 120, 0, 0,
1716 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1717 0, 0, 0, 0, 0, 3, 784, 1057, 0, 0,
1718 0, 328, 0, 0, 0, 0, 139, 140, 141, 142,
1719 143, 144, 0, 0, 0, 0, 0, 0, 0, 0,
1720 0, 4, 0, 145, 146, 147, 0, 0, 0, 0,
1721 0, 0, 0, 0, 0, 0, 0, 0, -654, 0,
1722 0, 0, 0, 0, 0, 0, 0, 148, 0, 0,
1723 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1724 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1725 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1726 31, 32, 33, 34, 35, 36, 37, 38, 157, 39,
1727 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1728 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1729 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1730 70, 71, 72, 73, 74, 75, -146, 0, 0, 0,
1731 0, -146, 0, 0, 0, 120, 0, 0, 0, 81,
1732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1733 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
1734 76, 329, 330, 160, 0, 0, 0, 0, 0, 0,
1735 0, 0, 0, 0, 0, 0, 0, 0, 4, 0,
1736 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 11, 12, 13, 0, 14,
1740 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1741 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1742 34, 35, 36, 37, 38, 0, 39, 40, 41, 42,
1743 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1744 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1745 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1746 73, 74, 75, 288, 0, 0, 0, 0, 0, 0,
1747 0, 0, 120, 0, 0, 0, 81, 0, 0, 0,
1748 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,
1749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751 0, 0, 0, 0, 0, 4, 0, 0, 0, 0,
1752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1754 0, 0, -523, 0, 0, 0, 0, 0, 0, 0,
1755 0, 0, 11, 12, 13, 0, 14, 15, 16, 17,
1756 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1757 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1758 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1759 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1760 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1761 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1762 0, 0, 0, 0, 0, 0, 0, 0, 0, 120,
1763 11, 12, 13, 81, 14, 15, 16, 17, 18, 19,
1764 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1765 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1766 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1767 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1768 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1769 68, 69, 70, 71, 72, 73, 74, 75, -661, 0,
1770 0, 0, 0, 0, 0, 0, 0, 120, 0, 0,
1771 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1772 0, 0, -520, 0, 0, 0, 0, 368, 0, 0,
1773 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1774 0, 0, 0, -663, -663, -663, 0, 0, 0, 145,
1775 146, 147, 0, 0, 0, 0, 0, 0, 0, 0,
1776 0, -663, 0, 0, 0, 0, 0, 0, 0, 0,
1777 0, 0, 0, 148, 0, 0, 0, 0, 0, 0,
1778 0, 0, 0, 0, -663, -663, -663, 0, -663, -663,
1779 -663, -663, -663, -663, -663, -663, -663, -663, 0, -663,
1780 -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
1781 -663, -663, -663, -663, 157, -663, -663, -663, -663, -663,
1782 -663, -663, -663, -663, -663, -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, 0, 0, 0, 0, 784, 0, 0, 0,
1786 0, 328, 0, 0, 0, -663, 139, 140, 141, 142,
1787 143, 144, 0, 0, 0, 0, 0, 0, 0, 0,
1788 0, 0, 0, 145, 146, 147, 76, 329, 330, 160,
1789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1790 0, 0, 0, 0, 0, 0, 0, 148, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 0, 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 -280, 0, 0, 0, 0, 0, 0, 0, 157, 0,
1795 2, 328, 518, 0, 0, 0, 139, 140, 141, 142,
1796 143, 144, 0, 0, 0, 0, 0, 0, 0, 0,
1797 0, 0, 0, 145, 146, 147, 0, 0, 0, 0,
1798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 0, 0, 0, 0, 148, 0, 0,
1800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1802 76, 329, 330, 160, 11, 12, 13, 0, 14, 15,
1803 16, 17, 18, 19, 20, 21, 22, 23, 157, 24,
1804 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1805 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1806 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1807 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1808 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1809 74, 75, 0, 0, 0, 0, 0, 0, 0, 76,
1810 77, 78, 0, 79, 80, 81, 0, 0, 0, 0,
1811 76, 329, 330, 160, 328, 0, 0, 621, 0, 139,
1812 140, 141, 142, 143, 144, 328, 0, 0, 699, 0,
1813 139, 140, 141, 142, 143, 144, 145, 146, 147, 0,
1814 0, 0, 0, 0, 0, 328, 932, 145, 146, 147,
1815 139, 140, 141, 142, 143, 144, 328, -262, 0, 0,
1816 148, 139, 140, 141, 142, 143, 144, 145, 146, 147,
1817 0, 148, 0, 0, 0, 0, 328, 0, 145, 146,
1818 147, 139, 140, 141, 142, 143, 144, 0, 0, 0,
1819 0, 148, 0, 0, 0, 0, 0, 0, 145, 146,
1820 147, 157, 148, 0, 0, 0, 0, 0, 0, 0,
1821 0, 357, 157, 0, 0, 0, 139, 140, 141, 142,
1822 143, 144, 148, 0, 0, 0, 0, 0, 0, 0,
1823 0, 0, 157, 145, 146, 147, 0, 0, 0, 0,
1824 0, 0, 644, 157, 0, 0, 0, 139, 140, 141,
1825 142, 143, 144, 0, 0, 0, 0, 148, 0, 0,
1826 0, 0, 0, 157, 145, 146, 147, 0, 0, 0,
1827 0, 0, 0, 76, 329, 330, 160, 0, 0, 0,
1828 0, 0, 0, 0, 76, 329, 330, 160, 148, 0,
1829 0, 0, 0, 0, 0, 0, 0, 0, 157, 0,
1830 0, 0, 0, 646, 76, 329, 330, 160, 139, 140,
1831 141, 142, 143, 144, 0, 76, 329, 330, 160, 0,
1832 0, 0, 0, 0, 0, 145, 146, 147, 0, 157,
1833 0, 0, 0, 0, 716, 76, 329, 330, 160, 717,
1834 718, 719, 720, 721, 722, 0, 0, 0, 0, 148,
1835 0, 0, 0, 0, 0, 0, 145, 723, 724, 0,
1836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837 76, 329, 330, 160, 0, 0, 0, 0, 0, 0,
1838 725, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1839 157, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1840 0, 76, 329, 330, 160, 0, 0, 0, 0, 0,
1841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1842 0, 157, 0, 0, 0, 0, 0, 0, 0, 0,
1843 0, -206, -206, 0, 0, 0, 0, 0, 0, 0,
1844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1846 0, 0, 76, 329, 330, 160, 0, 0, 0, 0,
1847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1849 0, 0, 0, 76, 726, 727, 728, 11, 12, 13,
1850 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1851 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1852 32, 33, 34, 35, 36, 37, 38, 0, 39, 40,
1853 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1854 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1855 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1856 71, 72, 73, 74, 75, 3, 0, 0, 0, 0,
1857 0, 0, 0, 0, 120, 0, 0, 0, 81, 0,
1858 0, 0, 0, 0, 0, 0, 0, -389, -389, -389,
1859 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
1860 0, 0, 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, 11, 12,
1863 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1864 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1865 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1866 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1867 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1868 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1869 70, 71, 72, 73, 74, 75, 3, 0, 0, 0,
1870 0, 0, 0, 0, 0, 120, 0, 0, 0, 81,
1871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1872 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
1873 0, 0, 0, 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, 11,
1876 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1877 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1878 30, 31, 32, 33, 34, 35, 36, 37, 38, 0,
1879 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1880 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1881 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1882 69, 70, 71, 72, 73, 74, 75, -389, -389, -389,
1883 0, 0, 0, 0, 0, 0, 120, 0, 0, 0,
1884 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1886 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1887 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1888 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1889 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1890 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1891 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1892 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1893 70, 71, 72, 73, 74, 75, 8, 9, 10, 0,
1894 0, 0, 0, 0, 0, 120, 0, 0, 0, 81,
1895 0, 0, 0, 0, 0, 11, 12, 13, 0, 14,
1896 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1897 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1898 34, 35, 36, 37, 38, 0, 39, 40, 41, 42,
1899 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1900 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1901 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1902 73, 74, 75, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 120, 11, 12, 13, 81, 14, 15, 16,
1904 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
1905 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1906 36, 37, 38, 0, 39, 40, 41, 42, 43, 44,
1907 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1908 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1909 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1910 75, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1914 static const short yycheck[] = { 0,
1915 0, 465, 3, 106, 0, 89, 497, 368, 619, 8,
1916 11, 12, 366, 126, 9, 10, 2, 18, 19, 20,
1917 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1918 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1919 41, 42, 43, 27, 551, 413, 623, 48, 49, 50,
1920 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1921 61, 62, 63, 64, 405, 406, 654, 414, 19, 303,
1922 654, 654, 320, 415, 75, 448, 8, 22, 403, 404,
1923 784, 82, 82, 787, 790, 475, 82, 764, 24, 34,
1924 451, 553, 322, 447, 407, 408, 409, 410, 34, 100,
1925 5, 411, 412, 776, 796, 106, 204, 18, 902, 1126,
1926 21, 209, 23, 211, 896, 116, 117, 118, 706, 674,
1927 25, 122, 706, 706, 701, 223, 5, 113, 0, 18,
1928 1147, 215, 1149, 28, 21, 24, 122, 138, 25, 138,
1929 24, 495, 49, 50, 145, 34, 25, 654, 1077, 44,
1930 34, 41, 39, 5, 9, 10, 139, 140, 141, 142,
1931 143, 144, 86, 87, 28, 21, 56, 34, 26, 1077,
1932 1078, 27, 24, 25, 26, 26, 34, 28, 86, 87,
1933 44, 0, 34, 182, 3, 889, 980, 18, 7, 8,
1934 9, 10, 654, 44, 886, 194, 41, 196, 24, 706,
1935 906, 692, 186, 204, 881, 987, 138, 989, 34, 204,
1936 82, 56, 24, 1142, 209, 605, 211, 1146, 85, 580,
1937 775, 21, 895, 778, 897, 25, 225, 1135, 223, 224,
1938 562, 604, 183, 184, 185, 85, 187, 188, 183, 184,
1939 185, 24, 187, 188, 706, 577, 476, 183, 184, 603,
1940 182, 34, 1181, 366, 5, 24, 8, 26, 190, 183,
1941 184, 21, 194, 82, 196, 34, 0, 27, 502, 3,
1942 18, 625, 18, 7, 25, 183, 184, 23, 183, 184,
1943 185, 24, 187, 188, 27, 286, 654, 106, 992, 21,
1944 291, 34, 292, 225, 183, 184, 24, 5, 26, 183,
1945 184, 302, 303, 122, 305, 306, 302, 654, 18, 920,
1946 801, 21, 654, 654, 133, 25, 183, 184, 319, 138,
1947 187, 188, 21, 319, 325, 0, 25, 328, 3, 654,
1948 5, 183, 184, 185, 447, 187, 188, 156, 706, 916,
1949 424, 654, 24, 21, 654, 443, 347, 25, 82, 204,
1950 5, 585, 600, 24, 209, 862, 211, 183, 184, 706,
1951 24, 347, 21, 182, 706, 706, 25, 368, 223, 224,
1952 29, 190, 106, 192, 24, 194, 21, 196, 8, 967,
1953 25, 706, 495, 967, 967, 204, 138, 21, 122, 24,
1954 209, 25, 211, 706, 34, 629, 706, 180, 181, 133,
1955 183, 184, 864, 186, 223, 224, 225, 82, 893, 21,
1956 644, 896, 646, 25, 18, 49, 50, 400, 401, 402,
1957 1076, 96, 97, 18, 99, 424, 21, 781, 1084, 18,
1958 182, 21, 183, 184, 185, 25, 187, 188, 190, 439,
1959 183, 184, 194, 186, 196, 1027, 1028, 122, 443, 450,
1960 25, 26, 453, 18, 450, 24, 21, 453, 27, 460,
1961 967, 462, 24, 464, 465, 34, 467, 18, 108, 109,
1962 21, 472, 16, 225, 475, 183, 184, 185, 16, 187,
1963 188, 482, 716, 302, 6, 7, 305, 306, 307, 475,
1964 603, 859, 424, 494, 18, 21, 497, 21, 499, 25,
1965 319, 502, 987, 21, 989, 967, 325, 25, 138, 16,
1966 851, 852, 625, 860, 86, 87, 15, 500, 1100, 861,
1967 26, 1103, 28, 21, 849, 850, 26, 25, 183, 184,
1968 185, 16, 187, 188, 34, 1106, 1107, 24, 44, 26,
1969 853, 854, 855, 856, 116, 117, 18, 857, 858, 21,
1970 21, 370, 182, 25, 25, 53, 54, 22, 130, 378,
1971 190, 380, 562, 21, 194, 926, 196, 25, 302, 32,
1972 33, 305, 306, 307, 34, 1066, 26, 577, 28, 1161,
1973 22, 582, 5, 1047, 585, 319, 21, 39, 443, 692,
1974 25, 325, 21, 1164, 44, 225, 25, 598, 599, 967,
1975 22, 24, 25, 26, 605, 424, 53, 54, 183, 184,
1976 185, 34, 187, 188, 183, 184, 24, 186, 26, 605,
1977 967, 37, 38, 624, 443, 967, 967, 40, 629, 561,
1978 449, 450, 29, 21, 453, 51, 52, 25, 639, 640,
1979 42, 43, 967, 644, 463, 646, 465, 25, 467, 21,
1980 28, 21, 55, 25, 967, 25, 475, 967, 92, 478,
1981 908, 49, 50, 482, 24, 21, 26, 668, 781, 25,
1982 18, 346, 424, 21, 34, 676, 97, 678, 99, 49,
1983 50, 682, 683, 183, 184, 185, 687, 187, 188, 21,
1984 691, 692, 92, 25, 513, 21, 697, 18, 801, 25,
1985 21, 21, 815, 522, 523, 25, 692, 19, 34, 35,
1986 36, 697, 32, 33, 22, 716, 450, 49, 50, 453,
1987 67, 68, 69, 183, 184, 185, 974, 187, 188, 463,
1988 24, 465, 26, 467, 717, 718, 719, 720, 721, 722,
1989 22, 475, 561, 562, 478, 993, 25, 26, 482, 28,
1990 998, 24, 8, 9, 10, 574, 21, 92, 577, 578,
1991 25, 1115, 37, 38, 24, 44, 26, 32, 33, 1017,
1992 771, 20, 21, 1007, 34, 1023, 51, 52, 8, 9,
1993 10, 456, 22, 24, 1032, 26, 605, 28, 522, 523,
1994 21, 22, 25, 26, 424, 28, 19, 21, 20, 800,
1995 801, 25, 803, 44, 21, 18, 47, 48, 25, 561,
1996 24, 44, 92, 1061, 1062, 801, 1064, 1171, 25, 26,
1997 23, 28, 27, 183, 184, 185, 21, 187, 188, 189,
1998 25, 650, 651, 18, 21, 654, 21, 44, 25, 34,
1999 35, 36, 661, 662, 18, 664, 65, 66, 67, 68,
2000 69, 70, 71, 72, 73, 74, 18, 21, 677, 21,
2001 679, 25, 1110, 846, 847, 848, 21, 32, 33, 688,
2002 25, 605, 691, 692, 693, 18, 21, 18, 21, 98,
2003 25, 100, 138, 102, 24, 104, 22, 706, 972, 18,
2004 109, 892, 37, 38, 25, 21, 49, 50, 899, 25,
2005 119, 119, 121, 121, 25, 192, 51, 52, 138, 21,
2006 20, 21, 996, 25, 132, 133, 24, 135, 1166, 137,
2007 138, 53, 54, 183, 184, 185, 182, 187, 188, 21,
2008 18, 561, 150, 25, 190, 21, 18, 612, 194, 25,
2009 196, 18, 21, 677, 163, 679, 25, 930, 204, 768,
2010 20, 21, 182, 209, 688, 211, 18, 691, 692, 18,
2011 190, 21, 19, 1066, 194, 25, 196, 223, 224, 225,
2012 21, 22, 21, 21, 204, 205, 25, 25, 9, 209,
2013 981, 211, 801, 984, 11, 183, 184, 185, 984, 187,
2014 188, 25, 811, 223, 224, 225, 360, 183, 184, 1000,
2015 24, 1002, 1115, 11, 1000, 24, 1007, 21, 88, 1010,
2016 1011, 25, 21, 88, 1000, 21, 25, 1017, 1131, 25,
2017 384, 32, 33, 37, 38, 389, 390, 391, 392, 393,
2018 394, 395, 396, 397, 398, 399, 19, 51, 52, 24,
2019 21, 26, 21, 28, 25, 27, 1047, 21, 1049, 1050,
2020 21, 25, 19, 21, 25, 19, 420, 25, 1171, 44,
2021 21, 1061, 47, 48, 25, 1066, 21, 801, 19, 21,
2022 25, 24, 291, 25, 21, 25, 295, 811, 72, 73,
2023 74, 22, 21, 370, 78, 79, 80, 81, 82, 83,
2024 84, 378, 18, 380, 313, 24, 11, 316, 773, 21,
2025 24, 776, 23, 22, 24, 324, 23, 25, 327, 34,
2026 35, 36, 1113, 126, 24, 1116, 935, 936, 1119, 27,
2027 1116, 34, 35, 36, 25, 20, 139, 140, 141, 142,
2028 143, 144, 19, 146, 147, 23, 57, 58, 59, 60,
2029 61, 62, 63, 64, 65, 66, 20, 19, 967, 72,
2030 73, 74, 23, 383, 21, 974, 72, 73, 74, 51,
2031 52, 53, 449, 5, 25, 984, 24, 27, 424, 57,
2032 58, 59, 60, 61, 62, 63, 64, 65, 66, 998,
2033 24, 1000, 22, 20, 1003, 20, 25, 443, 18, 27,
2034 18, 25, 25, 24, 424, 27, 21, 1016, 25, 1200,
2035 29, 935, 936, 25, 25, 55, 25, 1026, 1027, 1028,
2036 1211, 88, 25, 443, 40, 39, 1035, 24, 893, 25,
2037 895, 896, 897, 25, 25, 18, 513, 25, 1047, 448,
2038 21, 18, 177, 18, 178, 21, 455, 177, 21, 18,
2039 88, 460, 188, 462, 8, 178, 22, 1066, 20, 20,
2040 984, 470, 88, 20, 24, 474, 25, 1076, 1077, 1078,
2041 25, 18, 20, 73, 27, 1084, 1000, 18, 88, 1003,
2042 88, 88, 636, 88, 88, 562, 88, 88, 27, 25,
2043 27, 1100, 1101, 1102, 1103, 88, 25, 1106, 1107, 0,
2044 577, 578, 0, 1112, 82, 325, 765, 1116, 78, 79,
2045 80, 81, 82, 83, 84, 561, 887, 997, 1092, 1025,
2046 881, 913, 987, 1047, 989, 1161, 1135, 681, 8, 9,
2047 10, 998, 1112, 1142, 585, 1144, 1145, 1146, 72, 73,
2048 74, 561, 1066, 830, 78, 79, 80, 81, 82, 83,
2049 84, 1116, 1161, 1162, 1163, 1164, 679, 467, 677, 691,
2050 801, 113, 347, 366, 10, 224, 1071, 513, 424, 967,
2051 579, 706, 1181, 650, 651, -1, -1, 1101, 1102, -1,
2052 -1, -1, 136, -1, 138, 662, -1, -1, -1, -1,
2053 -1, -1, 1116, -1, -1, 604, -1, 400, 401, 402,
2054 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
2055 413, 414, 415, -1, 623, -1, 693, -1, -1, 628,
2056 1144, 1145, -1, -1, -1, 8, 9, 10, 182, -1,
2057 784, -1, -1, 787, -1, -1, 190, -1, 1162, 1163,
2058 194, -1, 196, -1, 447, -1, -1, 656, -1, -1,
2059 204, 8, 9, 10, -1, -1, -1, -1, 138, -1,
2060 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2061 -1, 225, -1, -1, -1, 829, 830, -1, -1, -1,
2062 -1, 835, 836, 837, 838, 839, 840, 841, 842, 843,
2063 844, 845, 495, -1, -1, -1, -1, 500, -1, -1,
2064 -1, -1, 182, -1, -1, -1, -1, -1, -1, -1,
2065 190, -1, -1, -1, 194, -1, 196, -1, -1, -1,
2066 729, -1, -1, -1, 204, -1, -1, -1, -1, 209,
2067 -1, 211, -1, -1, -1, 889, -1, -1, -1, -1,
2068 -1, -1, -1, 223, 224, 225, -1, -1, 551, -1,
2069 553, -1, 555, 556, -1, 138, -1, -1, -1, -1,
2070 -1, -1, -1, -1, 8, 9, 10, -1, -1, -1,
2071 -1, -1, -1, -1, 328, -1, -1, -1, -1, -1,
2072 789, 138, 336, 337, 338, 339, -1, -1, -1, -1,
2073 -1, -1, -1, -1, -1, -1, -1, -1, -1, 182,
2074 603, -1, -1, 357, -1, -1, -1, 190, -1, -1,
2075 -1, 194, -1, 196, 368, -1, -1, 8, 9, 10,
2076 -1, 204, 625, -1, -1, 182, 209, -1, 211, -1,
2077 -1, 385, -1, 190, -1, -1, -1, 194, 992, 196,
2078 223, 224, 225, -1, -1, -1, -1, 204, -1, -1,
2079 -1, 654, 209, -1, 211, -1, -1, -1, -1, -1,
2080 -1, -1, -1, -1, -1, -1, 223, 224, 225, -1,
2081 424, -1, -1, -1, -1, 884, 885, 431, -1, -1,
2082 -1, -1, -1, 892, -1, -1, -1, -1, -1, -1,
2083 -1, -1, -1, -1, 138, -1, -1, -1, -1, -1,
2084 -1, -1, -1, 706, -1, -1, -1, 916, -1, -1,
2085 -1, -1, -1, -1, 717, 718, 719, 720, 721, 722,
2086 723, 724, -1, -1, -1, -1, -1, -1, -1, -1,
2087 -1, -1, -1, -1, -1, -1, -1, -1, 182, -1,
2088 -1, -1, -1, -1, 424, -1, 190, 138, -1, -1,
2089 194, -1, 196, -1, -1, -1, -1, -1, -1, -1,
2090 204, -1, -1, 443, -1, 209, -1, 211, -1, -1,
2091 -1, -1, -1, 982, -1, -1, -1, -1, 781, 223,
2092 224, 225, -1, -1, -1, -1, -1, -1, -1, -1,
2093 -1, 182, -1, -1, -1, -1, -1, -1, 552, 190,
2094 -1, -1, -1, 194, -1, 196, -1, 561, -1, -1,
2095 -1, -1, 815, 204, -1, -1, -1, -1, 209, -1,
2096 211, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2097 -1, -1, 223, 224, 225, -1, -1, -1, -1, -1,
2098 -1, 424, 1051, 846, 847, 848, 849, 850, 851, 852,
2099 853, 854, 855, 856, 857, 858, 859, 860, 861, 862,
2100 443, 864, -1, -1, -1, 619, -1, 424, -1, -1,
2101 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2102 -1, 561, -1, -1, -1, -1, 443, -1, -1, -1,
2103 644, -1, 646, -1, -1, -1, -1, -1, 652, -1,
2104 1, 655, -1, -1, -1, 6, 7, 8, -1, -1,
2105 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2106 -1, -1, -1, 24, 25, -1, -1, 930, 29, 30,
2107 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2108 -1, 42, 43, -1, -1, 46, 47, 48, -1, -1,
2109 -1, 705, -1, -1, -1, -1, -1, -1, -1, -1,
2110 1169, -1, 716, -1, 967, -1, -1, -1, -1, 70,
2111 -1, -1, -1, -1, -1, -1, -1, -1, 561, -1,
2112 424, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2113 -1, 92, 93, 94, 95, 96, 97, 98, -1, 443,
2114 -1, -1, -1, -1, 561, -1, 107, 18, -1, -1,
2115 111, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2116 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2117 -1, -1, -1, 424, -1, 46, 47, 48, -1, -1,
2118 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2119 -1, -1, 443, -1, -1, -1, -1, -1, -1, 70,
2120 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2121 -1, -1, -1, 0, 1, -1, -1, 831, -1, -1,
2122 -1, -1, 183, 184, 185, 186, 187, 188, -1, -1,
2123 -1, -1, -1, -1, -1, -1, -1, 24, -1, -1,
2124 111, -1, -1, -1, -1, -1, -1, 34, -1, -1,
2125 -1, -1, 1115, -1, -1, -1, -1, 561, 45, -1,
2126 -1, -1, -1, -1, -1, -1, -1, -1, 1131, -1,
2127 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2128 67, 68, 69, -1, 71, -1, -1, -1, 75, 76,
2129 77, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2130 -1, -1, 89, 90, 91, -1, 920, -1, 1171, -1,
2131 561, -1, 183, 184, 185, 186, -1, -1, -1, -1,
2132 -1, 108, 109, 110, -1, 112, 113, 114, 115, 116,
2133 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
2134 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2135 137, 965, 139, 140, 141, 142, 143, 144, 145, 146,
2136 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2137 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2138 167, 168, 169, 170, 171, 172, 173, 174, 175, 0,
2139 1, -1, -1, -1, -1, -1, 183, 184, 185, -1,
2140 187, 188, 189, 18, -1, -1, -1, -1, -1, 24,
2141 -1, -1, -1, 24, 29, 30, 31, 32, 33, 34,
2142 -1, -1, -1, 34, -1, -1, -1, -1, -1, -1,
2143 -1, 46, 47, 48, 45, -1, -1, -1, -1, -1,
2144 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2145 -1, -1, -1, -1, -1, 70, 67, 68, 69, -1,
2146 71, -1, -1, -1, 75, 76, 77, -1, -1, -1,
2147 -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
2148 91, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2149 -1, -1, -1, -1, -1, -1, 111, 108, 109, 110,
2150 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2151 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2152 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2153 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2154 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2155 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2156 171, 172, 173, 174, 175, -1, -1, -1, 183, 184,
2157 185, 186, 183, 184, 185, 1, 187, 188, 189, -1,
2158 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2159 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2160 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2161 -1, -1, -1, -1, -1, -1, 42, 43, -1, 45,
2162 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2163 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2164 -1, 67, 68, 69, 70, 71, -1, -1, -1, -1,
2165 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2166 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
2167 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2168 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2169 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2170 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2171 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2172 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2173 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2174 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2175 -1, -1, -1, -1, -1, -1, -1, 183, 184, 185,
2176 186, 187, 188, 189, 1, -1, -1, -1, -1, 6,
2177 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2178 17, 18, 19, -1, -1, -1, -1, 24, -1, -1,
2179 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2180 -1, -1, -1, -1, -1, 42, 43, -1, -1, 46,
2181 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2182 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2183 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2184 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2185 -1, -1, -1, -1, -1, -1, 93, 94, 95, 96,
2186 97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
2187 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2188 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
2189 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2190 137, -1, 139, 140, 141, 142, 143, 144, 145, 146,
2191 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2192 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2193 167, 168, 169, 170, 171, 172, 173, 174, 175, -1,
2194 -1, -1, -1, -1, -1, -1, 183, 184, 185, 186,
2195 187, 188, 189, 1, -1, -1, -1, -1, 6, 7,
2196 8, -1, -1, 11, 12, 13, 14, 15, 16, 17,
2197 18, 19, 20, -1, -1, -1, 24, -1, -1, -1,
2198 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2199 -1, -1, -1, -1, 42, 43, -1, -1, 46, 47,
2200 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2201 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
2202 68, 69, 70, -1, -1, -1, -1, -1, -1, -1,
2203 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2204 -1, -1, -1, -1, -1, 93, 94, 95, 96, 97,
2205 98, -1, -1, -1, -1, -1, -1, -1, -1, 107,
2206 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2207 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2208 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2209 -1, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2210 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2211 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2212 168, 169, 170, 171, 172, 173, 174, 175, -1, -1,
2213 -1, -1, -1, -1, -1, 183, 184, 185, 186, 187,
2214 188, 189, 1, -1, -1, -1, -1, 6, 7, 8,
2215 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2216 19, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2217 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2218 -1, -1, -1, 42, 43, 1, -1, 46, 47, 48,
2219 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2220 16, 17, 18, 19, -1, -1, -1, -1, 24, -1,
2221 -1, 70, -1, 29, 30, 31, 32, 33, 34, -1,
2222 -1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
2223 46, 47, 48, 92, 93, 94, 95, 96, 97, 98,
2224 -1, -1, -1, -1, -1, -1, -1, -1, 107, -1,
2225 -1, -1, 111, -1, 70, -1, -1, -1, -1, -1,
2226 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2227 -1, -1, -1, -1, -1, -1, 92, 93, 94, 95,
2228 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2229 -1, 107, -1, -1, -1, 111, -1, -1, -1, -1,
2230 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2231 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2232 -1, -1, -1, -1, 183, 184, 185, 186, 187, 188,
2233 -1, -1, 1, -1, -1, -1, -1, 6, 7, 8,
2234 -1, -1, 11, 12, 13, 14, 15, 16, 17, 18,
2235 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2236 29, 30, 31, 32, 33, 34, -1, 183, 184, 185,
2237 186, 187, 188, 42, 43, 1, -1, 46, 47, 48,
2238 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2239 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2240 -1, 70, -1, 29, 30, 31, 32, 33, 34, -1,
2241 -1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
2242 46, 47, 48, 92, 93, 94, 95, 96, 97, 98,
2243 -1, -1, -1, -1, -1, -1, -1, -1, 107, -1,
2244 -1, -1, 111, -1, 70, -1, -1, -1, -1, -1,
2245 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2246 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
2247 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2248 -1, 107, -1, -1, -1, 111, -1, -1, -1, -1,
2249 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2250 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2251 -1, -1, -1, -1, 183, 184, 185, 186, 187, 188,
2252 -1, -1, 1, -1, -1, -1, -1, 6, 7, 8,
2253 -1, -1, 11, 12, 13, 14, 15, 16, 17, 18,
2254 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2255 29, 30, 31, 32, 33, 34, -1, 183, 184, 185,
2256 186, 187, 188, 42, 43, 1, -1, 46, 47, 48,
2257 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2258 16, 17, 18, 19, -1, -1, -1, -1, 24, -1,
2259 -1, 70, -1, 29, 30, 31, 32, 33, 34, -1,
2260 -1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
2261 46, 47, 48, -1, 93, 94, 95, 96, 97, 98,
2262 -1, -1, -1, -1, -1, -1, -1, -1, 107, -1,
2263 -1, -1, 111, -1, 70, -1, -1, -1, -1, -1,
2264 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2265 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
2266 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2267 -1, 107, -1, -1, -1, 111, -1, -1, -1, -1,
2268 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2269 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2270 -1, -1, -1, -1, 183, 184, 185, 186, 187, 188,
2271 -1, -1, -1, -1, -1, -1, -1, 6, 7, 8,
2272 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2273 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2274 29, 30, 31, 32, 33, 34, -1, 183, 184, 185,
2275 186, 187, 188, 42, 43, -1, 45, 46, 47, 48,
2276 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2277 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2278 -1, 70, 71, -1, -1, -1, -1, -1, -1, -1,
2279 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2280 -1, -1, -1, -1, 93, 94, 95, 96, 97, 98,
2281 -1, -1, -1, -1, -1, -1, -1, -1, 107, 108,
2282 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2283 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
2284 129, 130, 131, 132, 133, 134, 135, 136, 137, -1,
2285 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2286 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2287 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2288 169, 170, 171, 172, 173, 174, 175, -1, -1, -1,
2289 -1, -1, -1, -1, 183, 184, 185, 186, 187, 188,
2290 189, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2291 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2292 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2293 -1, -1, -1, -1, -1, -1, -1, 42, 43, -1,
2294 45, 46, 47, 48, -1, -1, -1, -1, -1, -1,
2295 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2296 -1, -1, -1, -1, -1, 70, 71, -1, -1, -1,
2297 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2298 -1, -1, -1, -1, -1, -1, -1, -1, 93, 94,
2299 95, 96, 97, 98, -1, -1, -1, -1, -1, -1,
2300 -1, -1, 107, 108, 109, 110, 111, 112, 113, 114,
2301 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
2302 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2303 135, 136, 137, -1, 139, 140, 141, 142, 143, 144,
2304 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2305 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2306 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2307 175, -1, -1, -1, -1, -1, -1, -1, 183, 184,
2308 185, 186, 187, 188, 189, 6, 7, 8, -1, 10,
2309 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2310 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2311 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2312 -1, 42, 43, -1, 45, 46, 47, 48, -1, -1,
2313 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2314 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2315 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2316 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2317 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2318 -1, -1, -1, -1, -1, -1, 107, 108, 109, 110,
2319 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2320 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2321 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2322 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2323 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2324 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2325 171, 172, 173, 174, 175, -1, -1, -1, -1, -1,
2326 -1, -1, 183, 184, 185, 186, 187, 188, 189, 6,
2327 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2328 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2329 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2330 -1, -1, -1, -1, -1, -1, -1, -1, -1, 46,
2331 47, 48, 6, 7, 8, -1, 10, 11, 12, 13,
2332 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2333 24, -1, -1, 70, -1, 29, 30, 31, 32, 33,
2334 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2335 -1, -1, 46, 47, 48, -1, 93, 94, 95, 96,
2336 97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
2337 107, -1, -1, -1, 111, -1, 70, -1, -1, -1,
2338 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2339 -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
2340 94, 95, 96, 97, 98, -1, -1, -1, -1, -1,
2341 -1, -1, -1, 107, 6, 7, 8, 111, 10, 11,
2342 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2343 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2344 32, 33, 34, -1, -1, -1, 183, 184, 185, 186,
2345 187, 188, -1, -1, 46, 47, 48, 6, 7, 8,
2346 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2347 19, 20, -1, -1, -1, 24, -1, -1, 70, -1,
2348 29, 30, 31, 32, 33, 34, -1, -1, -1, 183,
2349 184, 185, 186, 187, 188, -1, -1, 46, 47, 48,
2350 -1, 93, 94, 95, 96, 97, 98, -1, -1, -1,
2351 -1, -1, -1, -1, -1, 107, -1, -1, -1, 111,
2352 -1, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2353 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2354 -1, -1, -1, -1, 93, 94, 95, 96, 97, 98,
2355 -1, -1, -1, -1, -1, -1, -1, -1, 107, 6,
2356 7, 8, 111, 10, 11, 12, 13, 14, 15, 16,
2357 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2358 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2359 -1, 183, 184, 185, 186, 187, 188, -1, -1, 46,
2360 47, 48, 6, 7, 8, -1, 10, 11, 12, 13,
2361 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2362 24, -1, -1, 70, -1, 29, 30, 31, 32, 33,
2363 34, -1, -1, -1, 183, 184, 185, 186, 187, 188,
2364 -1, -1, 46, 47, 48, -1, 93, 94, 95, 96,
2365 97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
2366 107, -1, -1, -1, 111, -1, 70, -1, -1, -1,
2367 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2368 -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
2369 94, 95, 96, 97, 98, -1, -1, -1, -1, -1,
2370 -1, -1, -1, 107, 6, 7, 8, 111, 10, 11,
2371 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2372 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2373 32, 33, 34, -1, -1, -1, 183, 184, 185, 186,
2374 187, 188, -1, -1, 46, 47, 48, 6, 7, 8,
2375 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2376 19, -1, -1, -1, -1, 24, -1, -1, 70, -1,
2377 29, 30, 31, 32, 33, 34, -1, -1, -1, 183,
2378 184, 185, 186, 187, 188, -1, -1, 46, 47, 48,
2379 -1, 93, 94, 95, 96, 97, 98, -1, -1, -1,
2380 -1, -1, -1, -1, -1, 107, -1, -1, -1, 111,
2381 -1, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2382 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2383 -1, -1, -1, -1, 93, 94, 95, 96, 97, 98,
2384 18, -1, -1, -1, -1, -1, -1, -1, 107, -1,
2385 -1, -1, 111, -1, -1, -1, -1, -1, -1, -1,
2386 -1, -1, -1, -1, -1, -1, -1, 45, -1, -1,
2387 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2388 -1, 183, 184, 185, 186, 187, 188, -1, -1, 67,
2389 68, 69, -1, 71, -1, -1, -1, -1, -1, -1,
2390 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2391 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2392 -1, -1, -1, -1, 183, 184, 185, 186, 187, 188,
2393 108, 109, 110, -1, 112, 113, 114, 115, 116, 117,
2394 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2395 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2396 -1, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2397 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2398 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2399 168, 169, 170, 171, 172, 173, 174, 175, 18, -1,
2400 -1, -1, -1, -1, -1, -1, -1, 185, -1, -1,
2401 -1, 189, -1, -1, -1, -1, -1, -1, -1, -1,
2402 -1, -1, -1, -1, -1, 45, 19, 20, -1, -1,
2403 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2404 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2405 -1, 71, -1, 46, 47, 48, -1, -1, -1, -1,
2406 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
2407 -1, -1, -1, -1, -1, -1, -1, 70, -1, -1,
2408 -1, -1, -1, -1, -1, -1, -1, -1, 108, 109,
2409 110, -1, 112, 113, 114, 115, 116, 117, 118, 119,
2410 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2411 130, 131, 132, 133, 134, 135, 136, 137, 111, 139,
2412 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2413 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2414 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2415 170, 171, 172, 173, 174, 175, 19, -1, -1, -1,
2416 -1, 24, -1, -1, -1, 185, -1, -1, -1, 189,
2417 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2418 -1, -1, 45, -1, -1, -1, -1, -1, -1, -1,
2419 183, 184, 185, 186, -1, -1, -1, -1, -1, -1,
2420 -1, -1, -1, -1, -1, -1, -1, -1, 71, -1,
2421 -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, 108, 109, 110, -1, 112,
2425 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
2426 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2427 133, 134, 135, 136, 137, -1, 139, 140, 141, 142,
2428 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2429 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2430 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2431 173, 174, 175, 19, -1, -1, -1, -1, -1, -1,
2432 -1, -1, 185, -1, -1, -1, 189, -1, -1, -1,
2433 -1, -1, -1, -1, -1, -1, -1, -1, -1, 45,
2434 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2435 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2436 -1, -1, -1, -1, -1, 71, -1, -1, -1, -1,
2437 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2438 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2439 -1, -1, 20, -1, -1, -1, -1, -1, -1, -1,
2440 -1, -1, 108, 109, 110, -1, 112, 113, 114, 115,
2441 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2442 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2443 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2444 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2445 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2446 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2447 -1, -1, -1, -1, -1, -1, -1, -1, -1, 185,
2448 108, 109, 110, 189, 112, 113, 114, 115, 116, 117,
2449 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2450 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2451 -1, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2452 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2453 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2454 168, 169, 170, 171, 172, 173, 174, 175, 22, -1,
2455 -1, -1, -1, -1, -1, -1, -1, 185, -1, -1,
2456 -1, 189, -1, -1, -1, -1, -1, -1, -1, -1,
2457 -1, -1, 19, -1, -1, -1, -1, 24, -1, -1,
2458 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2459 -1, -1, -1, 67, 68, 69, -1, -1, -1, 46,
2460 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2461 -1, 85, -1, -1, -1, -1, -1, -1, -1, -1,
2462 -1, -1, -1, 70, -1, -1, -1, -1, -1, -1,
2463 -1, -1, -1, -1, 108, 109, 110, -1, 112, 113,
2464 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
2465 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2466 134, 135, 136, 137, 111, 139, 140, 141, 142, 143,
2467 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2468 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2469 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2470 174, 175, -1, -1, -1, -1, 19, -1, -1, -1,
2471 -1, 24, -1, -1, -1, 189, 29, 30, 31, 32,
2472 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2473 -1, -1, -1, 46, 47, 48, 183, 184, 185, 186,
2474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2475 -1, -1, -1, -1, -1, -1, -1, 70, -1, -1,
2476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2477 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2478 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2479 24, -1, -1, -1, -1, -1, -1, -1, 111, -1,
2480 34, 24, 25, -1, -1, -1, 29, 30, 31, 32,
2481 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2482 -1, -1, -1, 46, 47, 48, -1, -1, -1, -1,
2483 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2484 -1, -1, -1, -1, -1, -1, -1, 70, -1, -1,
2485 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2486 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2487 183, 184, 185, 186, 108, 109, 110, -1, 112, 113,
2488 114, 115, 116, 117, 118, 119, 120, 121, 111, 123,
2489 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2490 134, 135, 136, 137, -1, 139, 140, 141, 142, 143,
2491 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2492 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2493 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2494 174, 175, -1, -1, -1, -1, -1, -1, -1, 183,
2495 184, 185, -1, 187, 188, 189, -1, -1, -1, -1,
2496 183, 184, 185, 186, 24, -1, -1, 27, -1, 29,
2497 30, 31, 32, 33, 34, 24, -1, -1, 27, -1,
2498 29, 30, 31, 32, 33, 34, 46, 47, 48, -1,
2499 -1, -1, -1, -1, -1, 24, 25, 46, 47, 48,
2500 29, 30, 31, 32, 33, 34, 24, 25, -1, -1,
2501 70, 29, 30, 31, 32, 33, 34, 46, 47, 48,
2502 -1, 70, -1, -1, -1, -1, 24, -1, 46, 47,
2503 48, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2504 -1, 70, -1, -1, -1, -1, -1, -1, 46, 47,
2505 48, 111, 70, -1, -1, -1, -1, -1, -1, -1,
2506 -1, 24, 111, -1, -1, -1, 29, 30, 31, 32,
2507 33, 34, 70, -1, -1, -1, -1, -1, -1, -1,
2508 -1, -1, 111, 46, 47, 48, -1, -1, -1, -1,
2509 -1, -1, 24, 111, -1, -1, -1, 29, 30, 31,
2510 32, 33, 34, -1, -1, -1, -1, 70, -1, -1,
2511 -1, -1, -1, 111, 46, 47, 48, -1, -1, -1,
2512 -1, -1, -1, 183, 184, 185, 186, -1, -1, -1,
2513 -1, -1, -1, -1, 183, 184, 185, 186, 70, -1,
2514 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1,
2515 -1, -1, -1, 24, 183, 184, 185, 186, 29, 30,
2516 31, 32, 33, 34, -1, 183, 184, 185, 186, -1,
2517 -1, -1, -1, -1, -1, 46, 47, 48, -1, 111,
2518 -1, -1, -1, -1, 24, 183, 184, 185, 186, 29,
2519 30, 31, 32, 33, 34, -1, -1, -1, -1, 70,
2520 -1, -1, -1, -1, -1, -1, 46, 47, 48, -1,
2521 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2522 183, 184, 185, 186, -1, -1, -1, -1, -1, -1,
2523 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2524 111, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2525 -1, 183, 184, 185, 186, -1, -1, -1, -1, -1,
2526 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2527 -1, 111, -1, -1, -1, -1, -1, -1, -1, -1,
2528 -1, 42, 43, -1, -1, -1, -1, -1, -1, -1,
2529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2530 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2531 -1, -1, 183, 184, 185, 186, -1, -1, -1, -1,
2532 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2533 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2534 -1, -1, -1, 183, 184, 185, 186, 108, 109, 110,
2535 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2536 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2537 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2538 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2539 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2540 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2541 171, 172, 173, 174, 175, 45, -1, -1, -1, -1,
2542 -1, -1, -1, -1, 185, -1, -1, -1, 189, -1,
2543 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
2544 -1, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2545 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2546 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2547 -1, -1, -1, -1, -1, -1, -1, -1, 108, 109,
2548 110, -1, 112, 113, 114, 115, 116, 117, 118, 119,
2549 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2550 130, 131, 132, 133, 134, 135, 136, 137, -1, 139,
2551 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2552 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2553 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2554 170, 171, 172, 173, 174, 175, 45, -1, -1, -1,
2555 -1, -1, -1, -1, -1, 185, -1, -1, -1, 189,
2556 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2557 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
2558 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2559 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2560 -1, -1, -1, -1, -1, -1, -1, -1, -1, 108,
2561 109, 110, -1, 112, 113, 114, 115, 116, 117, 118,
2562 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
2563 129, 130, 131, 132, 133, 134, 135, 136, 137, -1,
2564 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2565 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2566 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2567 169, 170, 171, 172, 173, 174, 175, 67, 68, 69,
2568 -1, -1, -1, -1, -1, -1, 185, -1, -1, -1,
2569 189, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2570 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2571 -1, -1, -1, -1, -1, -1, -1, -1, 108, 109,
2572 110, -1, 112, 113, 114, 115, 116, 117, 118, 119,
2573 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2574 130, 131, 132, 133, 134, 135, 136, 137, -1, 139,
2575 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2576 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2577 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2578 170, 171, 172, 173, 174, 175, 89, 90, 91, -1,
2579 -1, -1, -1, -1, -1, 185, -1, -1, -1, 189,
2580 -1, -1, -1, -1, -1, 108, 109, 110, -1, 112,
2581 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
2582 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2583 133, 134, 135, 136, 137, -1, 139, 140, 141, 142,
2584 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2585 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2586 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2587 173, 174, 175, -1, -1, -1, -1, -1, -1, -1,
2588 -1, -1, 185, 108, 109, 110, 189, 112, 113, 114,
2589 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
2590 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2591 135, 136, 137, -1, 139, 140, 141, 142, 143, 144,
2592 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2593 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2594 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2595 175, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2596 185, -1, -1, -1, 189
2598 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2599 #line 3 "/usr/lib/bison.simple"
2600 /* This file comes from bison-1.28. */
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., 59 Temple Place - Suite 330,
2618 Boston, MA 02111-1307, USA. */
2620 /* As a special exception, when this file is copied by Bison into a
2621 Bison output file, you may use that output file without restriction.
2622 This special exception was added by the Free Software Foundation
2623 in version 1.24 of Bison. */
2625 /* This is the parser code that is written into each bison parser
2626 when the %semantic_parser declaration is not specified in the grammar.
2627 It was written by Richard Stallman by simplifying the hairy parser
2628 used when %semantic_parser is specified. */
2630 #ifndef YYSTACK_USE_ALLOCA
2632 #define YYSTACK_USE_ALLOCA
2633 #else /* alloca not defined */
2635 #define YYSTACK_USE_ALLOCA
2636 #define alloca __builtin_alloca
2637 #else /* not GNU C. */
2638 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
2639 #define YYSTACK_USE_ALLOCA
2641 #else /* not sparc */
2642 /* We think this test detects Watcom and Microsoft C. */
2643 /* This used to test MSDOS, but that is a bad idea
2644 since that symbol is in the user namespace. */
2645 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
2646 #if 0 /* No need for malloc.h, which pollutes the namespace;
2647 instead, just don't use alloca. */
2650 #else /* not MSDOS, or __TURBOC__ */
2652 /* I don't know what this was needed for, but it pollutes the namespace.
2653 So I turned it off. rms, 2 May 1997. */
2654 /* #include <malloc.h> */
2656 #define YYSTACK_USE_ALLOCA
2657 #else /* not MSDOS, or __TURBOC__, or _AIX */
2659 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
2660 and on HPUX 10. Eventually we can turn this on. */
2661 #define YYSTACK_USE_ALLOCA
2662 #define alloca __builtin_alloca
2665 #endif /* not _AIX */
2666 #endif /* not MSDOS, or __TURBOC__ */
2667 #endif /* not sparc */
2668 #endif /* not GNU C */
2669 #endif /* alloca not defined */
2670 #endif /* YYSTACK_USE_ALLOCA not defined */
2672 #ifdef YYSTACK_USE_ALLOCA
2673 #define YYSTACK_ALLOC alloca
2675 #define YYSTACK_ALLOC malloc
2678 /* Note: there must be only one dollar sign in this file.
2679 It is replaced by the list of actions, each action
2680 as one case of the switch. */
2682 #define yyerrok (yyerrstatus = 0)
2683 #define yyclearin (yychar = YYEMPTY)
2686 #define YYACCEPT goto yyacceptlab
2687 #define YYABORT goto yyabortlab
2688 #define YYERROR goto yyerrlab1
2689 /* Like YYERROR except do call yyerror.
2690 This remains here temporarily to ease the
2691 transition to the new meaning of YYERROR, for GCC.
2692 Once GCC version 2 has supplanted version 1, this can go. */
2693 #define YYFAIL goto yyerrlab
2694 #define YYRECOVERING() (!!yyerrstatus)
2695 #define YYBACKUP(token, value) \
2697 if (yychar == YYEMPTY && yylen == 1) \
2698 { yychar = (token), yylval = (value); \
2699 yychar1 = YYTRANSLATE (yychar); \
2704 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2708 #define YYERRCODE 256
2711 #define YYLEX yylex()
2717 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2719 #define YYLEX yylex(&yylval, &yylloc)
2721 #else /* not YYLSP_NEEDED */
2723 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2725 #define YYLEX yylex(&yylval)
2727 #endif /* not YYLSP_NEEDED */
2730 /* If nonreentrant, generate the variables here */
2734 int yychar; /* the lookahead symbol */
2735 YYSTYPE yylval; /* the semantic value of the */
2736 /* lookahead symbol */
2739 YYLTYPE yylloc; /* location data for the lookahead */
2743 int yynerrs; /* number of parse errors so far */
2744 #endif /* not YYPURE */
2747 int yydebug; /* nonzero means print parse trace */
2748 /* Since this is uninitialized, it does not stop multiple parsers
2752 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2755 #define YYINITDEPTH 200
2758 /* YYMAXDEPTH is the maximum size the stacks can grow to
2759 (effective only if the built-in stack extension method is used). */
2766 #define YYMAXDEPTH 10000
2769 /* Define __yy_memcpy. Note that the size argument
2770 should be passed with type unsigned int, because that is what the non-GCC
2771 definitions require. With GCC, __builtin_memcpy takes an arg
2772 of type size_t, but it can handle unsigned int. */
2774 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2775 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2776 #else /* not GNU C or C++ */
2779 /* This is the most reliable way to avoid incompatibilities
2780 in available built-in functions on various systems. */
2782 __yy_memcpy (to, from, count)
2787 register char *f = from;
2788 register char *t = to;
2789 register int i = count;
2795 #else /* __cplusplus */
2797 /* This is the most reliable way to avoid incompatibilities
2798 in available built-in functions on various systems. */
2800 __yy_memcpy (char *to, char *from, unsigned int count)
2802 register char *t = to;
2803 register char *f = from;
2804 register int i = count;
2813 #line 217 "/usr/lib/bison.simple"
2815 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2816 into yyparse. The argument should have type void *.
2817 It should actually point to an object.
2818 Grammar actions can access the variable by casting it
2819 to the proper pointer type. */
2821 #ifdef YYPARSE_PARAM
2823 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2824 #define YYPARSE_PARAM_DECL
2825 #else /* not __cplusplus */
2826 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2827 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2828 #endif /* not __cplusplus */
2829 #else /* not YYPARSE_PARAM */
2830 #define YYPARSE_PARAM_ARG
2831 #define YYPARSE_PARAM_DECL
2832 #endif /* not YYPARSE_PARAM */
2834 /* Prevent warning if -Wstrict-prototypes. */
2836 #ifdef YYPARSE_PARAM
2837 int yyparse (void *);
2844 yyparse(YYPARSE_PARAM_ARG)
2847 register int yystate;
2849 register short *yyssp;
2850 register YYSTYPE *yyvsp;
2851 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2852 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2854 short yyssa[YYINITDEPTH]; /* the state stack */
2855 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2857 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2858 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2861 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2862 YYLTYPE *yyls = yylsa;
2865 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2867 #define YYPOPSTACK (yyvsp--, yyssp--)
2870 int yystacksize = YYINITDEPTH;
2871 int yyfree_stacks = 0;
2882 YYSTYPE yyval; /* the variable used to return */
2883 /* semantic values from the action */
2890 fprintf(stderr, "Starting parse\n");
2896 yychar = YYEMPTY; /* Cause a token to be read. */
2898 /* Initialize stack pointers.
2899 Waste one element of value and location stack
2900 so that they stay on the same level as the state stack.
2901 The wasted elements are never initialized. */
2909 /* Push a new state, which is found in yystate . */
2910 /* In all cases, when you get here, the value and location stacks
2911 have just been pushed. so pushing a state here evens the stacks. */
2916 if (yyssp >= yyss + yystacksize - 1)
2918 /* Give user a chance to reallocate the stack */
2919 /* Use copies of these so that the &'s don't force the real ones into memory. */
2920 YYSTYPE *yyvs1 = yyvs;
2921 short *yyss1 = yyss;
2923 YYLTYPE *yyls1 = yyls;
2926 /* Get the current used size of the three stacks, in elements. */
2927 int size = yyssp - yyss + 1;
2930 /* Each stack pointer address is followed by the size of
2931 the data in use in that stack, in bytes. */
2933 /* This used to be a conditional around just the two extra args,
2934 but that might be undefined if yyoverflow is a macro. */
2935 yyoverflow("parser stack overflow",
2936 &yyss1, size * sizeof (*yyssp),
2937 &yyvs1, size * sizeof (*yyvsp),
2938 &yyls1, size * sizeof (*yylsp),
2941 yyoverflow("parser stack overflow",
2942 &yyss1, size * sizeof (*yyssp),
2943 &yyvs1, size * sizeof (*yyvsp),
2947 yyss = yyss1; yyvs = yyvs1;
2951 #else /* no yyoverflow */
2952 /* Extend the stack our own way. */
2953 if (yystacksize >= YYMAXDEPTH)
2955 yyerror("parser stack overflow");
2967 if (yystacksize > YYMAXDEPTH)
2968 yystacksize = YYMAXDEPTH;
2969 #ifndef YYSTACK_USE_ALLOCA
2972 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
2973 __yy_memcpy ((char *)yyss, (char *)yyss1,
2974 size * (unsigned int) sizeof (*yyssp));
2975 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
2976 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
2977 size * (unsigned int) sizeof (*yyvsp));
2979 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
2980 __yy_memcpy ((char *)yyls, (char *)yyls1,
2981 size * (unsigned int) sizeof (*yylsp));
2983 #endif /* no yyoverflow */
2985 yyssp = yyss + size - 1;
2986 yyvsp = yyvs + size - 1;
2988 yylsp = yyls + size - 1;
2993 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2996 if (yyssp >= yyss + yystacksize - 1)
3002 fprintf(stderr, "Entering state %d\n", yystate);
3008 /* Do appropriate processing given the current state. */
3009 /* Read a lookahead token if we need one and don't already have one. */
3012 /* First try to decide what to do without reference to lookahead token. */
3014 yyn = yypact[yystate];
3018 /* Not known => get a lookahead token if don't already have one. */
3020 /* yychar is either YYEMPTY or YYEOF
3021 or a valid token in external form. */
3023 if (yychar == YYEMPTY)
3027 fprintf(stderr, "Reading a token: ");
3032 /* Convert token to internal form (in yychar1) for indexing tables with */
3034 if (yychar <= 0) /* This means end of input. */
3037 yychar = YYEOF; /* Don't call YYLEX any more */
3041 fprintf(stderr, "Now at end of input.\n");
3046 yychar1 = YYTRANSLATE(yychar);
3051 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3052 /* Give the individual parser a way to print the precise meaning
3053 of a token, for further debugging info. */
3055 YYPRINT (stderr, yychar, yylval);
3057 fprintf (stderr, ")\n");
3063 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3068 /* yyn is what to do for this token type in this state.
3069 Negative => reduce, -yyn is rule number.
3070 Positive => shift, yyn is new state.
3071 New state is final state => don't bother to shift,
3072 just return success.
3073 0, or most negative number => error. */
3088 /* Shift the lookahead token. */
3092 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3095 /* Discard the token being shifted unless it is eof. */
3096 if (yychar != YYEOF)
3104 /* count tokens shifted since error; after three, turn off error status. */
3105 if (yyerrstatus) yyerrstatus--;
3110 /* Do the default action for the current state. */
3113 yyn = yydefact[yystate];
3117 /* Do a reduction. yyn is the number of a rule to reduce with. */
3121 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3128 fprintf (stderr, "Reducing via rule %d (line %d), ",
3131 /* Print the symbols being reduced, and their result. */
3132 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3133 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3134 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3142 #line 277 "cgrammar.y"
3143 { uentry_clearDecl (); ;
3146 #line 278 "cgrammar.y"
3147 { uentry_clearDecl (); ;
3150 #line 279 "cgrammar.y"
3151 { uentry_clearDecl (); ;
3154 #line 280 "cgrammar.y"
3155 { uentry_clearDecl (); ;
3158 #line 281 "cgrammar.y"
3159 { uentry_clearDecl (); ;
3162 #line 282 "cgrammar.y"
3163 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3166 #line 283 "cgrammar.y"
3167 { uentry_clearDecl (); ;
3170 #line 287 "cgrammar.y"
3171 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3174 #line 289 "cgrammar.y"
3175 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3178 #line 292 "cgrammar.y"
3179 { context_enterFunctionDecl (); ;
3182 #line 293 "cgrammar.y"
3183 { declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3184 context_exitFunctionDecl (); ;
3187 #line 298 "cgrammar.y"
3189 qtype qint = qtype_create (ctype_int);
3190 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3195 #line 304 "cgrammar.y"
3196 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3199 #line 309 "cgrammar.y"
3200 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3203 #line 312 "cgrammar.y"
3204 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3207 #line 314 "cgrammar.y"
3208 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3211 #line 316 "cgrammar.y"
3212 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3215 #line 318 "cgrammar.y"
3217 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), exprNode_getLongValue (yyvsp[-2].expr)));
3221 #line 322 "cgrammar.y"
3222 { setCurrentParams (uentryList_missingParams);
3226 #line 325 "cgrammar.y"
3227 { /* need to support globals and modifies here! */
3228 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp),
3229 uentryList_makeMissingParams ());
3231 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ct);
3236 #line 333 "cgrammar.y"
3237 { setCurrentParams (yyvsp[-1].entrylist);
3242 #line 337 "cgrammar.y"
3243 { setImplictfcnConstraints ();
3244 clearCurrentParams ();
3245 yyval.ntyp = idDecl_replaceCtype (yyvsp[-7].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-7].ntyp), yyvsp[-4].entrylist));
3248 // printf("Done nameDeclBase\n");
3252 #line 346 "cgrammar.y"
3253 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3256 #line 348 "cgrammar.y"
3257 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3260 #line 350 "cgrammar.y"
3261 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3264 #line 352 "cgrammar.y"
3268 if (exprNode_hasValue (yyvsp[-2].expr)
3269 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3271 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3278 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3282 #line 368 "cgrammar.y"
3283 { setCurrentParams (uentryList_missingParams);
3287 #line 371 "cgrammar.y"
3288 { /* need to support globals and modifies here! */
3289 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3290 uentryList_makeMissingParams ());
3292 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3297 #line 379 "cgrammar.y"
3298 { setCurrentParams (yyvsp[-1].entrylist);
3302 #line 382 "cgrammar.y"
3303 { clearCurrentParams ();
3304 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3309 #line 389 "cgrammar.y"
3310 { setCurrentParams (yyvsp[-1].entrylist); ;
3313 #line 390 "cgrammar.y"
3314 { clearCurrentParams (); ;
3317 #line 391 "cgrammar.y"
3318 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3321 #line 394 "cgrammar.y"
3322 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3325 #line 395 "cgrammar.y"
3326 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3329 #line 396 "cgrammar.y"
3330 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3333 #line 397 "cgrammar.y"
3334 { exprChecks_checkEmptyMacroBody (); ;
3337 #line 400 "cgrammar.y"
3338 { declareFunction (yyvsp[0].ntyp); ;
3341 #line 403 "cgrammar.y"
3342 { setProcessingGlobMods (); ;
3345 #line 404 "cgrammar.y"
3346 { clearProcessingGlobMods (); ;
3349 #line 410 "cgrammar.y"
3350 { setProcessingGlobMods (); ;
3353 #line 411 "cgrammar.y"
3354 { clearProcessingGlobMods (); ;
3357 #line 419 "cgrammar.y"
3359 DPRINTF ( ("doing optGlobEnsuresConstraintsAux\n") );
3360 context_setProtectVars (); enterParamsTemp ();
3361 sRef_setGlobalScopeSafe ();
3366 #line 425 "cgrammar.y"
3368 setEnsuresConstraints (yyvsp[-1].conL);
3370 sRef_clearGlobalScopeSafe ();
3371 context_releaseVars ();
3372 DPRINTF (("done optGlobBufConstraintsAux\n"));;
3375 #line 435 "cgrammar.y"
3377 DPRINTF ( ("doing optGlobBufConstraintsAux\n") );
3378 context_setProtectVars (); enterParamsTemp ();
3379 sRef_setGlobalScopeSafe ();
3384 #line 441 "cgrammar.y"
3386 setFunctionConstraints (yyvsp[-1].conL);
3388 sRef_clearGlobalScopeSafe ();
3389 context_releaseVars ();
3390 DPRINTF (("done optGlobBufConstraintsAux\n"));;
3393 #line 450 "cgrammar.y"
3394 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-1].con); ;
3397 #line 451 "cgrammar.y"
3398 {constraintList c; c = constraintList_makeNew(); c = constraintList_add (c, yyvsp[0].con); yyval.conL = c;
3401 #line 454 "cgrammar.y"
3403 yyval.con = makeConstraintParse3 (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE);
3404 DPRINTF(("Done BufConstraint1\n")); ;
3407 #line 469 "cgrammar.y"
3408 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3411 #line 470 "cgrammar.y"
3413 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3414 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3417 #line 475 "cgrammar.y"
3418 { yyval.conE = constraintExpr_makeTermsRef(yyvsp[0].sr);;
3421 #line 476 "cgrammar.y"
3423 t = cstring_toCharsSafe (exprNode_unparse(yyvsp[0].expr));
3425 yyval.conE = constraintExpr_makeIntLiteral (c);
3429 #line 484 "cgrammar.y"
3432 checkbufferConstraintClausesId (yyvsp[0].entry);;
3435 #line 487 "cgrammar.y"
3436 { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
3439 #line 489 "cgrammar.y"
3440 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3443 #line 490 "cgrammar.y"
3446 t = cstring_toCharsSafe (exprNode_unparse(yyvsp[-1].expr));
3448 yyval.sr = sRef_makeArrayFetchKnown(yyvsp[-3].sr, c); ;
3451 #line 495 "cgrammar.y"
3452 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3455 #line 496 "cgrammar.y"
3456 { yyval.sr = yyvsp[-1].sr; ;
3459 #line 497 "cgrammar.y"
3460 { cstring_markOwned (yyvsp[0].cname);
3461 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3464 #line 499 "cgrammar.y"
3465 { cstring_markOwned (yyvsp[0].cname);
3466 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3469 #line 525 "cgrammar.y"
3470 { setProcessingGlobMods (); ;
3473 #line 526 "cgrammar.y"
3474 { clearProcessingGlobMods (); ;
3477 #line 536 "cgrammar.y"
3478 { setProcessingGlobMods (); ;
3481 #line 537 "cgrammar.y"
3482 { clearProcessingGlobMods (); ;
3485 #line 552 "cgrammar.y"
3489 #line 553 "cgrammar.y"
3493 #line 556 "cgrammar.y"
3494 { globListAdd (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3497 #line 559 "cgrammar.y"
3498 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3501 #line 560 "cgrammar.y"
3502 { yyval.sr = globListUnrecognized (yyvsp[0].cname); ;
3505 #line 563 "cgrammar.y"
3506 { yyval.typequal = qual_createUndef (); ;
3509 #line 564 "cgrammar.y"
3510 { yyval.typequal = qual_createKilled (); ;
3513 #line 565 "cgrammar.y"
3514 { yyval.typequal = qual_createOut (); ;
3517 #line 566 "cgrammar.y"
3518 { yyval.typequal = qual_createIn (); ;
3521 #line 567 "cgrammar.y"
3522 { yyval.typequal = qual_createPartial (); ;
3525 #line 570 "cgrammar.y"
3526 { yyval.tquallist = qualList_undefined; ;
3529 #line 571 "cgrammar.y"
3530 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3533 #line 574 "cgrammar.y"
3534 { setProcessingGlobalsList (); ;
3537 #line 576 "cgrammar.y"
3538 { unsetProcessingGlobals (); ;
3541 #line 577 "cgrammar.y"
3542 { setProcessingGlobalsList (); ;
3545 #line 579 "cgrammar.y"
3546 { unsetProcessingGlobals (); ;
3549 #line 581 "cgrammar.y"
3550 { setFunctionNoGlobals ();
3551 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3555 #line 588 "cgrammar.y"
3556 { setProcessingGlobalsList (); ;
3559 #line 590 "cgrammar.y"
3560 { unsetProcessingGlobals (); ;
3563 #line 591 "cgrammar.y"
3564 { setProcessingGlobalsList (); ;
3567 #line 593 "cgrammar.y"
3568 { unsetProcessingGlobals (); ;
3571 #line 595 "cgrammar.y"
3572 { setFunctionNoGlobals ();
3573 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3577 #line 607 "cgrammar.y"
3579 context_setProtectVars (); enterParamsTemp ();
3580 sRef_setGlobalScopeSafe ();
3584 #line 612 "cgrammar.y"
3586 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3587 sRef_clearGlobalScopeSafe ();
3588 context_releaseVars ();
3592 #line 620 "cgrammar.y"
3594 context_setProtectVars (); enterParamsTemp ();
3595 sRef_setGlobalScopeSafe ();
3599 #line 625 "cgrammar.y"
3601 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3602 sRef_clearGlobalScopeSafe ();
3603 context_releaseVars ();
3607 #line 649 "cgrammar.y"
3608 { yyval.sck = SP_ISONLY; ;
3611 #line 650 "cgrammar.y"
3612 { yyval.sck = SP_ISOBSERVER; ;
3615 #line 651 "cgrammar.y"
3616 { yyval.sck = SP_ISEXPOSED; ;
3619 #line 652 "cgrammar.y"
3620 { yyval.sck = SP_ISDEPENDENT; ;
3623 #line 653 "cgrammar.y"
3624 { yyval.sck = SP_ISOWNED; ;
3627 #line 654 "cgrammar.y"
3628 { yyval.sck = SP_ISSHARED; ;
3631 #line 655 "cgrammar.y"
3632 { yyval.sck = SP_ISNULL; ;
3635 #line 656 "cgrammar.y"
3636 { yyval.sck = SP_ISNOTNULL; ;
3639 #line 660 "cgrammar.y"
3641 context_setProtectVars ();
3643 sRef_setGlobalScopeSafe ();
3647 #line 666 "cgrammar.y"
3649 setFunctionSpecialClause (yyvsp[-6].tok, yyvsp[-3].srset, yyvsp[-1].tok);
3651 sRef_clearGlobalScopeSafe ();
3652 context_releaseVars ();
3656 #line 673 "cgrammar.y"
3658 context_setProtectVars ();
3660 sRef_setGlobalScopeSafe ();
3664 #line 679 "cgrammar.y"
3666 setFunctionStateSpecialClause (yyvsp[-7].tok, yyvsp[-5].sck, yyvsp[-3].srset, yyvsp[-1].tok);
3668 sRef_clearGlobalScopeSafe ();
3669 context_releaseVars ();
3673 #line 688 "cgrammar.y"
3675 qtype qint = qtype_create (ctype_int);
3676 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3681 #line 694 "cgrammar.y"
3682 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3685 #line 697 "cgrammar.y"
3686 { checkDoneParams (); context_enterInnerContext (); ;
3689 #line 699 "cgrammar.y"
3691 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3692 context_exitInner (yyvsp[0].expr);
3696 #line 704 "cgrammar.y"
3697 { doneParams (); context_enterInnerContext (); ;
3700 #line 706 "cgrammar.y"
3702 context_exitInner (yyvsp[0].expr);
3703 exprNode_checkFunctionBody (yyvsp[0].expr);
3704 yyval.expr = yyvsp[0].expr; /* old style */
3708 #line 714 "cgrammar.y"
3710 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3711 /* exprNode_checkFunction (context_getHeader (), $2); */
3714 context_exitFunction ();
3718 #line 723 "cgrammar.y"
3719 { yyval.srset = yyvsp[-2].srset; ;
3722 #line 724 "cgrammar.y"
3723 { yyval.srset = sRefSet_new (); ;
3726 #line 727 "cgrammar.y"
3727 { yyval.srset = yyvsp[-1].srset; ;
3730 #line 728 "cgrammar.y"
3731 { yyval.srset = sRefSet_new (); ;
3734 #line 731 "cgrammar.y"
3735 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3738 #line 732 "cgrammar.y"
3739 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3742 #line 733 "cgrammar.y"
3743 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3746 #line 734 "cgrammar.y"
3747 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3750 #line 735 "cgrammar.y"
3751 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3754 #line 736 "cgrammar.y"
3755 { yyval.sr = yyvsp[-1].sr; ;
3758 #line 737 "cgrammar.y"
3759 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3762 #line 738 "cgrammar.y"
3763 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3766 #line 742 "cgrammar.y"
3767 { yyval.sr = yyvsp[0].sr; ;
3770 #line 743 "cgrammar.y"
3771 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3774 #line 747 "cgrammar.y"
3775 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3778 #line 748 "cgrammar.y"
3779 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3782 #line 752 "cgrammar.y"
3783 { yyval.sr = checkSpecClausesId (yyvsp[0].entry); ;
3786 #line 754 "cgrammar.y"
3787 { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
3790 #line 755 "cgrammar.y"
3791 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3794 #line 756 "cgrammar.y"
3795 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3798 #line 757 "cgrammar.y"
3799 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3802 #line 758 "cgrammar.y"
3803 { yyval.sr = yyvsp[-1].sr; ;
3806 #line 759 "cgrammar.y"
3807 { cstring_markOwned (yyvsp[0].cname);
3808 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3811 #line 761 "cgrammar.y"
3812 { cstring_markOwned (yyvsp[0].cname);
3813 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3816 #line 766 "cgrammar.y"
3817 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3818 else { yyval.srset = sRefSet_undefined; }
3822 #line 770 "cgrammar.y"
3823 { if (sRef_isValid (yyvsp[0].sr))
3825 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3829 yyval.srset = yyvsp[-2].srset;
3834 #line 781 "cgrammar.y"
3835 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3838 #line 782 "cgrammar.y"
3839 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3842 #line 783 "cgrammar.y"
3843 { yyval.expr = yyvsp[0].expr; ;
3846 #line 784 "cgrammar.y"
3847 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3850 #line 785 "cgrammar.y"
3851 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3854 #line 786 "cgrammar.y"
3855 { yyval.expr = exprNode_makeError (); ;
3858 #line 790 "cgrammar.y"
3859 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3862 #line 791 "cgrammar.y"
3863 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3866 #line 792 "cgrammar.y"
3867 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
3870 #line 793 "cgrammar.y"
3871 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3874 #line 794 "cgrammar.y"
3875 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3878 #line 795 "cgrammar.y"
3879 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3882 #line 796 "cgrammar.y"
3883 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3886 #line 797 "cgrammar.y"
3887 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3890 #line 800 "cgrammar.y"
3891 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
3894 #line 801 "cgrammar.y"
3895 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
3898 #line 805 "cgrammar.y"
3899 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3902 #line 806 "cgrammar.y"
3903 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3906 #line 807 "cgrammar.y"
3907 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3910 #line 808 "cgrammar.y"
3911 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3914 #line 809 "cgrammar.y"
3915 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3918 #line 810 "cgrammar.y"
3919 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3922 #line 811 "cgrammar.y"
3923 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3926 #line 812 "cgrammar.y"
3927 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3930 #line 813 "cgrammar.y"
3931 { yyval.expr = yyvsp[0].expr; ;
3934 #line 814 "cgrammar.y"
3935 { yyval.expr = yyvsp[0].expr; ;
3938 #line 817 "cgrammar.y"
3939 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3942 #line 818 "cgrammar.y"
3943 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3946 #line 822 "cgrammar.y"
3947 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3950 #line 825 "cgrammar.y"
3951 { context_setProtectVars (); ;
3954 #line 826 "cgrammar.y"
3955 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3958 #line 829 "cgrammar.y"
3959 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3962 #line 830 "cgrammar.y"
3963 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3966 #line 831 "cgrammar.y"
3967 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3970 #line 832 "cgrammar.y"
3971 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3974 #line 837 "cgrammar.y"
3975 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3978 #line 841 "cgrammar.y"
3979 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3982 #line 842 "cgrammar.y"
3983 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3986 #line 843 "cgrammar.y"
3987 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3990 #line 847 "cgrammar.y"
3991 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3994 #line 848 "cgrammar.y"
3995 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3998 #line 852 "cgrammar.y"
3999 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4002 #line 853 "cgrammar.y"
4003 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4006 #line 857 "cgrammar.y"
4007 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4010 #line 858 "cgrammar.y"
4011 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4014 #line 859 "cgrammar.y"
4015 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4018 #line 860 "cgrammar.y"
4019 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4022 #line 864 "cgrammar.y"
4023 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4026 #line 865 "cgrammar.y"
4027 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4030 #line 869 "cgrammar.y"
4031 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4034 #line 873 "cgrammar.y"
4035 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4038 #line 878 "cgrammar.y"
4039 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4042 #line 883 "cgrammar.y"
4043 { exprNode_produceGuards (yyvsp[-1].expr);
4044 context_enterAndClause (yyvsp[-1].expr);
4048 #line 887 "cgrammar.y"
4050 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4051 context_exitAndClause (yyval.expr, yyvsp[0].expr);
4055 #line 895 "cgrammar.y"
4057 exprNode_produceGuards (yyvsp[-1].expr);
4058 context_enterOrClause (yyvsp[-1].expr);
4062 #line 900 "cgrammar.y"
4064 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4065 context_exitOrClause (yyval.expr, yyvsp[0].expr);
4069 #line 907 "cgrammar.y"
4070 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4073 #line 908 "cgrammar.y"
4074 { context_enterFalseClause (yyvsp[-4].expr); ;
4077 #line 909 "cgrammar.y"
4078 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
4081 #line 913 "cgrammar.y"
4082 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4085 #line 914 "cgrammar.y"
4086 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4089 #line 915 "cgrammar.y"
4090 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4093 #line 916 "cgrammar.y"
4094 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4097 #line 917 "cgrammar.y"
4098 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4101 #line 918 "cgrammar.y"
4102 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4105 #line 919 "cgrammar.y"
4106 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4109 #line 920 "cgrammar.y"
4110 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4113 #line 921 "cgrammar.y"
4114 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4117 #line 922 "cgrammar.y"
4118 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4121 #line 923 "cgrammar.y"
4122 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4125 #line 927 "cgrammar.y"
4126 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
4129 #line 930 "cgrammar.y"
4130 { yyval.expr = exprNode_undefined; ;
4133 #line 939 "cgrammar.y"
4134 { yyval.expr = yyvsp[0].expr; ;
4137 #line 940 "cgrammar.y"
4138 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
4141 #line 941 "cgrammar.y"
4142 { yyval.expr = exprNode_makeError (); ;
4145 #line 944 "cgrammar.y"
4146 { yyval.expr = exprNode_makeError (); ;
4149 #line 958 "cgrammar.y"
4151 setProcessingVars (yyvsp[-3].qtyp);
4152 processNamedDecl (yyvsp[-1].ntyp); ;
4155 #line 961 "cgrammar.y"
4156 { unsetProcessingVars (); yyval.expr = yyvsp[-2].expr; ;
4159 #line 963 "cgrammar.y"
4160 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp);
4164 #line 966 "cgrammar.y"
4165 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
4166 unsetProcessingVars ();
4170 #line 970 "cgrammar.y"
4171 { processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeError (); ;
4174 #line 971 "cgrammar.y"
4175 { processNamedDecl (yyvsp[-2].ntyp); ;
4178 #line 972 "cgrammar.y"
4179 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
4182 #line 976 "cgrammar.y"
4183 { setProcessingTypedef (yyvsp[0].qtyp); ;
4186 #line 977 "cgrammar.y"
4187 { unsetProcessingTypedef (); ;
4190 #line 978 "cgrammar.y"
4191 { /* in the ANSI grammar, semantics unclear */ ;
4194 #line 979 "cgrammar.y"
4195 { /* in the ANSI grammar, semantics unclear */ ;
4198 #line 982 "cgrammar.y"
4199 { g_expectingTypeName = TRUE; ;
4202 #line 985 "cgrammar.y"
4203 { g_expectingTypeName = TRUE; context_pushLoc (); ;
4206 #line 988 "cgrammar.y"
4210 #line 991 "cgrammar.y"
4214 #line 992 "cgrammar.y"
4218 #line 995 "cgrammar.y"
4219 { yyval.expr = exprNode_makeError (); ;
4222 #line 996 "cgrammar.y"
4223 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4226 #line 999 "cgrammar.y"
4227 { yyval.expr = yyvsp[0].expr; ;
4230 #line 1000 "cgrammar.y"
4231 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].alist); ;
4234 #line 1001 "cgrammar.y"
4235 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].alist); ;
4238 #line 1006 "cgrammar.y"
4239 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
4242 #line 1008 "cgrammar.y"
4243 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
4246 #line 1016 "cgrammar.y"
4247 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4250 #line 1017 "cgrammar.y"
4251 { yyval.typequal = qual_createInline (); ;
4254 #line 1018 "cgrammar.y"
4255 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4258 #line 1019 "cgrammar.y"
4259 { yyval.typequal = qual_createAuto (); ;
4262 #line 1020 "cgrammar.y"
4263 { yyval.typequal = qual_createRegister (); ;
4266 #line 1023 "cgrammar.y"
4267 { yyval.typequal = qual_createConst (); ;
4270 #line 1024 "cgrammar.y"
4271 { yyval.typequal = qual_createVolatile (); ;
4274 #line 1025 "cgrammar.y"
4275 { yyval.typequal = qual_createOut (); ;
4278 #line 1026 "cgrammar.y"
4279 { yyval.typequal = qual_createIn (); ;
4282 #line 1027 "cgrammar.y"
4283 { yyval.typequal = qual_createPartial (); ;
4286 #line 1028 "cgrammar.y"
4287 { yyval.typequal = qual_createSpecial (); ;
4290 #line 1029 "cgrammar.y"
4291 { yyval.typequal = qual_createOwned (); ;
4294 #line 1030 "cgrammar.y"
4295 { yyval.typequal = qual_createDependent (); ;
4298 #line 1031 "cgrammar.y"
4299 { yyval.typequal = qual_createYield (); ;
4302 #line 1032 "cgrammar.y"
4303 { yyval.typequal = qual_createTemp (); ;
4306 #line 1033 "cgrammar.y"
4307 { yyval.typequal = qual_createOnly (); ;
4310 #line 1034 "cgrammar.y"
4311 { yyval.typequal = qual_createKeep (); ;
4314 #line 1035 "cgrammar.y"
4315 { yyval.typequal = qual_createKept (); ;
4318 #line 1036 "cgrammar.y"
4319 { yyval.typequal = qual_createShared (); ;
4322 #line 1037 "cgrammar.y"
4323 { yyval.typequal = qual_createUnique (); ;
4326 #line 1038 "cgrammar.y"
4327 { yyval.typequal = qual_createExits (); ;
4330 #line 1039 "cgrammar.y"
4331 { yyval.typequal = qual_createMayExit (); ;
4334 #line 1040 "cgrammar.y"
4335 { yyval.typequal = qual_createTrueExit (); ;
4338 #line 1041 "cgrammar.y"
4339 { yyval.typequal = qual_createFalseExit (); ;
4342 #line 1042 "cgrammar.y"
4343 { yyval.typequal = qual_createNeverExit (); ;
4346 #line 1043 "cgrammar.y"
4347 { yyval.typequal = qual_createNull (); ;
4350 #line 1044 "cgrammar.y"
4351 { yyval.typequal = qual_createRelNull (); ;
4354 #line 1045 "cgrammar.y"
4355 { yyval.typequal = qual_createReturned (); ;
4358 #line 1046 "cgrammar.y"
4359 { yyval.typequal = qual_createExposed (); ;
4362 #line 1047 "cgrammar.y"
4363 { yyval.typequal = qual_createObserver (); ;
4366 #line 1048 "cgrammar.y"
4367 { yyval.typequal = qual_createChecked (); ;
4370 #line 1049 "cgrammar.y"
4371 { yyval.typequal = qual_createCheckMod (); ;
4374 #line 1050 "cgrammar.y"
4375 { yyval.typequal = qual_createUnchecked (); ;
4378 #line 1051 "cgrammar.y"
4379 { yyval.typequal = qual_createCheckedStrict (); ;
4382 #line 1052 "cgrammar.y"
4383 { yyval.typequal = qual_createTrueNull (); ;
4386 #line 1053 "cgrammar.y"
4387 { yyval.typequal = qual_createFalseNull (); ;
4390 #line 1054 "cgrammar.y"
4391 { yyval.typequal = qual_createUnused (); ;
4394 #line 1055 "cgrammar.y"
4395 { yyval.typequal = qual_createExternal (); ;
4398 #line 1056 "cgrammar.y"
4399 { yyval.typequal = qual_createSef (); ;
4402 #line 1057 "cgrammar.y"
4403 { yyval.typequal = qual_createAbstract (); ;
4406 #line 1058 "cgrammar.y"
4407 { yyval.typequal = qual_createConcrete (); ;
4410 #line 1059 "cgrammar.y"
4411 { yyval.typequal = qual_createMutable (); ;
4414 #line 1060 "cgrammar.y"
4415 { yyval.typequal = qual_createImmutable (); ;
4418 #line 1061 "cgrammar.y"
4419 { yyval.typequal = qual_createNotNull (); ;
4422 #line 1062 "cgrammar.y"
4423 { yyval.typequal = qual_createRefCounted (); ;
4426 #line 1063 "cgrammar.y"
4427 { yyval.typequal = qual_createRefs (); ;
4430 #line 1064 "cgrammar.y"
4431 { yyval.typequal = qual_createKillRef (); ;
4434 #line 1065 "cgrammar.y"
4435 { yyval.typequal = qual_createRelDef (); ;
4438 #line 1066 "cgrammar.y"
4439 { yyval.typequal = qual_createNewRef (); ;
4442 #line 1067 "cgrammar.y"
4443 { yyval.typequal = qual_createTempRef (); ;
4446 #line 1068 "cgrammar.y"
4447 { yyval.typequal = qual_createNullTerminated (); ;
4450 #line 1074 "cgrammar.y"
4451 { yyval.typequal = qual_createShort (); ;
4454 #line 1075 "cgrammar.y"
4455 { yyval.typequal = qual_createLong (); ;
4458 #line 1076 "cgrammar.y"
4459 { yyval.typequal = qual_createSigned (); ;
4462 #line 1077 "cgrammar.y"
4463 { yyval.typequal = qual_createUnsigned (); ;
4466 #line 1086 "cgrammar.y"
4467 { yyval.ctyp = ctype_unknown; ;
4470 #line 1087 "cgrammar.y"
4471 { yyval.ctyp = ctype_anyintegral; ;
4474 #line 1088 "cgrammar.y"
4475 { yyval.ctyp = ctype_unsignedintegral; ;
4478 #line 1089 "cgrammar.y"
4479 { yyval.ctyp = ctype_signedintegral; ;
4482 #line 1093 "cgrammar.y"
4483 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4486 #line 1097 "cgrammar.y"
4487 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4490 #line 1100 "cgrammar.y"
4491 { yyval.qtyp = yyvsp[0].qtyp; ;
4494 #line 1102 "cgrammar.y"
4495 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4498 #line 1107 "cgrammar.y"
4499 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4502 #line 1110 "cgrammar.y"
4503 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4506 #line 1111 "cgrammar.y"
4507 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4510 #line 1112 "cgrammar.y"
4511 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4514 #line 1115 "cgrammar.y"
4515 { yyval.qtyp = qtype_unknown (); ;
4518 #line 1116 "cgrammar.y"
4519 { yyval.qtyp = yyvsp[0].qtyp; ;
4522 #line 1119 "cgrammar.y"
4523 { sRef_setGlobalScopeSafe (); ;
4526 #line 1121 "cgrammar.y"
4527 { sRef_clearGlobalScopeSafe (); ;
4530 #line 1123 "cgrammar.y"
4531 { yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ;
4534 #line 1124 "cgrammar.y"
4535 { sRef_setGlobalScopeSafe (); ;
4538 #line 1126 "cgrammar.y"
4539 { sRef_clearGlobalScopeSafe (); ;
4542 #line 1128 "cgrammar.y"
4543 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4546 #line 1130 "cgrammar.y"
4547 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4550 #line 1132 "cgrammar.y"
4551 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4554 #line 1133 "cgrammar.y"
4555 { sRef_setGlobalScopeSafe (); ;
4558 #line 1135 "cgrammar.y"
4559 { sRef_clearGlobalScopeSafe (); ;
4562 #line 1137 "cgrammar.y"
4563 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4566 #line 1138 "cgrammar.y"
4567 { sRef_setGlobalScopeSafe (); ;
4570 #line 1140 "cgrammar.y"
4571 { sRef_clearGlobalScopeSafe (); ;
4574 #line 1142 "cgrammar.y"
4575 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4578 #line 1144 "cgrammar.y"
4579 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4582 #line 1146 "cgrammar.y"
4583 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4586 #line 1147 "cgrammar.y"
4587 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4590 #line 1148 "cgrammar.y"
4591 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4594 #line 1151 "cgrammar.y"
4595 { g_expectingTypeName = FALSE; ;
4598 #line 1155 "cgrammar.y"
4599 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4602 #line 1156 "cgrammar.y"
4603 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4606 #line 1160 "cgrammar.y"
4607 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4610 #line 1162 "cgrammar.y"
4611 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4614 #line 1166 "cgrammar.y"
4615 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4618 #line 1168 "cgrammar.y"
4619 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4622 #line 1171 "cgrammar.y"
4623 { yyval.ntyp = yyvsp[0].ntyp; ;
4626 #line 1172 "cgrammar.y"
4627 { yyval.ntyp = idDecl_undefined; ;
4630 #line 1173 "cgrammar.y"
4631 { yyval.ntyp = yyvsp[-3].ntyp; ;
4634 #line 1178 "cgrammar.y"
4635 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4638 #line 1179 "cgrammar.y"
4639 { context_pushLoc (); ;
4642 #line 1180 "cgrammar.y"
4643 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4646 #line 1181 "cgrammar.y"
4647 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4650 #line 1185 "cgrammar.y"
4651 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4654 #line 1187 "cgrammar.y"
4655 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4658 #line 1192 "cgrammar.y"
4659 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4660 usymtab_supGlobalEntry (ue);
4661 yyval.cname = yyvsp[0].cname;
4665 #line 1197 "cgrammar.y"
4666 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4667 usymtab_supGlobalEntry (ue);
4668 yyval.cname = yyvsp[-3].cname;
4672 #line 1204 "cgrammar.y"
4673 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4676 #line 1206 "cgrammar.y"
4678 qtype qt = qtype_unknown ();
4680 qtype_adjustPointers (yyvsp[-1].count, qt);
4681 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4685 #line 1213 "cgrammar.y"
4686 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4689 #line 1218 "cgrammar.y"
4690 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4693 #line 1221 "cgrammar.y"
4694 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4697 #line 1222 "cgrammar.y"
4698 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4701 #line 1225 "cgrammar.y"
4702 { /* ignored for now */; ;
4705 #line 1226 "cgrammar.y"
4709 #line 1229 "cgrammar.y"
4713 #line 1230 "cgrammar.y"
4717 #line 1233 "cgrammar.y"
4718 { yyval.count = 1; ;
4721 #line 1234 "cgrammar.y"
4722 { yyval.count = 1; ;
4725 #line 1235 "cgrammar.y"
4726 { yyval.count = 1 + yyvsp[0].count; ;
4729 #line 1236 "cgrammar.y"
4730 { yyval.count = 1 + yyvsp[0].count; ;
4733 #line 1240 "cgrammar.y"
4734 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4737 #line 1243 "cgrammar.y"
4738 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4741 #line 1244 "cgrammar.y"
4742 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4745 #line 1247 "cgrammar.y"
4746 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4749 #line 1249 "cgrammar.y"
4750 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4753 #line 1252 "cgrammar.y"
4757 #line 1252 "cgrammar.y"
4758 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4761 #line 1253 "cgrammar.y"
4765 #line 1254 "cgrammar.y"
4766 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4769 #line 1258 "cgrammar.y"
4771 if (isFlipOldStyle ())
4773 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4779 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4783 #line 1270 "cgrammar.y"
4785 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4789 llparseerror (message ("Inconsistent function parameter syntax: %q",
4790 idDecl_unparse (tparam)));
4794 yyval.oentry = makeCurrentParam (tparam);
4795 idDecl_free (tparam);
4799 #line 1286 "cgrammar.y"
4800 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4803 #line 1289 "cgrammar.y"
4804 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4807 #line 1291 "cgrammar.y"
4808 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4811 #line 1294 "cgrammar.y"
4812 { yyval.ctyp = ctype_unknown; ;
4815 #line 1299 "cgrammar.y"
4816 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4819 #line 1300 "cgrammar.y"
4820 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4823 #line 1302 "cgrammar.y"
4824 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4827 #line 1303 "cgrammar.y"
4828 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4831 #line 1305 "cgrammar.y"
4832 { yyval.ctyp = ctype_makeFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4835 #line 1307 "cgrammar.y"
4836 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4839 #line 1309 "cgrammar.y"
4840 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4843 #line 1311 "cgrammar.y"
4844 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4847 #line 1313 "cgrammar.y"
4848 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4851 #line 1341 "cgrammar.y"
4852 { yyval.expr = exprNode_labelMarker (yyvsp[0].cname); ;
4855 #line 1346 "cgrammar.y"
4856 { yyval.expr = yyvsp[0].expr; ;
4859 #line 1354 "cgrammar.y"
4860 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4863 #line 1358 "cgrammar.y"
4864 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4867 #line 1360 "cgrammar.y"
4868 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4871 #line 1362 "cgrammar.y"
4872 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4875 #line 1364 "cgrammar.y"
4876 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4879 #line 1368 "cgrammar.y"
4880 { context_setProtectVars (); ;
4883 #line 1368 "cgrammar.y"
4884 { context_sizeofReleaseVars (); ;
4887 #line 1370 "cgrammar.y"
4888 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4889 context_enterForClause (yyvsp[-5].expr); ;
4892 #line 1375 "cgrammar.y"
4893 { setProcessingIterVars (yyvsp[-2].entry); ;
4896 #line 1377 "cgrammar.y"
4897 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].alist); ;
4900 #line 1378 "cgrammar.y"
4901 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4904 #line 1384 "cgrammar.y"
4905 { yyval.expr = yyvsp[0].expr; ;
4908 #line 1392 "cgrammar.y"
4909 { yyval.expr = yyvsp[-1].expr; ;
4912 #line 1393 "cgrammar.y"
4913 { yyval.expr = exprNode_makeError (); ;
4916 #line 1397 "cgrammar.y"
4917 { /* don't: context_exitTrueClause ($1, $2); */
4918 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4922 #line 1402 "cgrammar.y"
4923 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4926 #line 1405 "cgrammar.y"
4927 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4930 #line 1420 "cgrammar.y"
4931 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4934 #line 1422 "cgrammar.y"
4935 { yyval.expr = exprNode_makeError (); ;
4938 #line 1425 "cgrammar.y"
4939 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
4942 #line 1426 "cgrammar.y"
4943 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4946 #line 1432 "cgrammar.y"
4947 { context_enterCaseClause (yyvsp[0].expr); ;
4950 #line 1433 "cgrammar.y"
4951 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4954 #line 1434 "cgrammar.y"
4955 { context_enterCaseClause (yyvsp[0].expr); ;
4958 #line 1435 "cgrammar.y"
4959 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4962 #line 1438 "cgrammar.y"
4963 { context_enterCaseClause (exprNode_undefined); ;
4966 #line 1439 "cgrammar.y"
4967 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
4970 #line 1440 "cgrammar.y"
4971 { context_enterCaseClause (exprNode_undefined); ;
4974 #line 1441 "cgrammar.y"
4975 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
4978 #line 1444 "cgrammar.y"
4979 { yyval.expr = yyvsp[-1].expr; ;
4982 #line 1446 "cgrammar.y"
4983 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4986 #line 1449 "cgrammar.y"
4987 { yyval.expr = yyvsp[-1].expr; ;
4990 #line 1452 "cgrammar.y"
4991 { context_enterInnerContext (); ;
4994 #line 1455 "cgrammar.y"
4995 { context_exitInnerPlain (); ;
4998 #line 1458 "cgrammar.y"
4999 { context_enterStructInnerContext (); ;
5002 #line 1461 "cgrammar.y"
5003 { context_exitStructInnerContext (); ;
5006 #line 1464 "cgrammar.y"
5007 { context_exitInnerSafe (); ;
5010 #line 1467 "cgrammar.y"
5011 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5014 #line 1468 "cgrammar.y"
5015 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
5018 #line 1469 "cgrammar.y"
5019 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5022 #line 1471 "cgrammar.y"
5023 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5026 #line 1472 "cgrammar.y"
5027 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5030 #line 1474 "cgrammar.y"
5031 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5034 #line 1476 "cgrammar.y"
5035 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5038 #line 1478 "cgrammar.y"
5039 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
5040 lltok_getLoc (yyvsp[-1].tok)));
5044 #line 1485 "cgrammar.y"
5045 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
5048 #line 1489 "cgrammar.y"
5049 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5052 #line 1491 "cgrammar.y"
5053 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5056 #line 1493 "cgrammar.y"
5057 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5060 #line 1495 "cgrammar.y"
5061 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5064 #line 1499 "cgrammar.y"
5065 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5068 #line 1502 "cgrammar.y"
5069 { yyval.expr = yyvsp[0].expr; ;
5072 #line 1503 "cgrammar.y"
5073 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5076 #line 1506 "cgrammar.y"
5077 { yyval.expr = yyvsp[0].expr; ;
5080 #line 1507 "cgrammar.y"
5081 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5084 #line 1510 "cgrammar.y"
5085 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5088 #line 1511 "cgrammar.y"
5089 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5092 #line 1514 "cgrammar.y"
5093 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5096 #line 1515 "cgrammar.y"
5097 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5100 #line 1516 "cgrammar.y"
5101 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
5104 #line 1520 "cgrammar.y"
5105 { yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
5108 #line 1528 "cgrammar.y"
5110 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
5111 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
5115 #line 1532 "cgrammar.y"
5116 { context_enterFalseClause (yyvsp[-2].expr); ;
5119 #line 1533 "cgrammar.y"
5121 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5122 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5126 #line 1537 "cgrammar.y"
5127 { context_enterSwitch (yyvsp[0].expr); ;
5130 #line 1538 "cgrammar.y"
5131 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
5134 #line 1542 "cgrammar.y"
5135 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
5138 #line 1546 "cgrammar.y"
5139 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
5142 #line 1549 "cgrammar.y"
5143 { context_enterIterClause (); ;
5146 #line 1550 "cgrammar.y"
5147 { setProcessingIterVars (yyvsp[-3].entry); ;
5150 #line 1553 "cgrammar.y"
5152 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].alist, yyvsp[-2].expr, yyvsp[-1].entry);
5157 #line 1559 "cgrammar.y"
5158 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
5161 #line 1560 "cgrammar.y"
5162 { nextIterParam (); ;
5165 #line 1561 "cgrammar.y"
5166 { yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ;
5169 #line 1564 "cgrammar.y"
5170 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
5173 #line 1565 "cgrammar.y"
5174 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
5177 #line 1566 "cgrammar.y"
5178 { uentry ue = coerceIterId (yyvsp[0].cname);
5180 if (uentry_isValid (ue))
5182 yyval.expr = exprNode_iterId (ue);
5186 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
5191 #line 1577 "cgrammar.y"
5192 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
5195 #line 1585 "cgrammar.y"
5196 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5199 #line 1589 "cgrammar.y"
5200 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
5203 #line 1590 "cgrammar.y"
5204 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
5207 #line 1591 "cgrammar.y"
5208 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
5211 #line 1593 "cgrammar.y"
5212 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
5215 #line 1594 "cgrammar.y"
5216 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
5219 #line 1595 "cgrammar.y"
5220 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
5223 #line 1596 "cgrammar.y"
5224 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5227 #line 1597 "cgrammar.y"
5228 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5231 #line 1601 "cgrammar.y"
5232 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5235 #line 1602 "cgrammar.y"
5236 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5239 #line 1603 "cgrammar.y"
5240 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5243 #line 1604 "cgrammar.y"
5244 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5247 #line 1605 "cgrammar.y"
5248 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5251 #line 1606 "cgrammar.y"
5252 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5255 #line 1607 "cgrammar.y"
5256 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5259 #line 1608 "cgrammar.y"
5260 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5263 #line 1609 "cgrammar.y"
5264 { yyval.expr = yyvsp[0].expr; ;
5267 #line 1613 "cgrammar.y"
5268 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
5271 #line 1617 "cgrammar.y"
5272 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5275 #line 1618 "cgrammar.y"
5276 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5279 #line 1619 "cgrammar.y"
5280 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5283 #line 1623 "cgrammar.y"
5284 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5287 #line 1624 "cgrammar.y"
5288 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5291 #line 1628 "cgrammar.y"
5292 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5295 #line 1629 "cgrammar.y"
5296 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5299 #line 1633 "cgrammar.y"
5300 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5303 #line 1634 "cgrammar.y"
5304 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5307 #line 1635 "cgrammar.y"
5308 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5311 #line 1636 "cgrammar.y"
5312 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5315 #line 1640 "cgrammar.y"
5316 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5319 #line 1641 "cgrammar.y"
5320 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5323 #line 1645 "cgrammar.y"
5324 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5327 #line 1649 "cgrammar.y"
5328 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5331 #line 1654 "cgrammar.y"
5332 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5335 #line 1658 "cgrammar.y"
5336 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5339 #line 1662 "cgrammar.y"
5340 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5343 #line 1666 "cgrammar.y"
5344 { context_enterTrueClause (yyvsp[-1].expr); ;
5347 #line 1667 "cgrammar.y"
5348 { context_enterFalseClause (yyvsp[-4].expr); ;
5351 #line 1668 "cgrammar.y"
5352 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5355 #line 1672 "cgrammar.y"
5356 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5359 #line 1673 "cgrammar.y"
5360 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5363 #line 1674 "cgrammar.y"
5364 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5367 #line 1675 "cgrammar.y"
5368 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5371 #line 1676 "cgrammar.y"
5372 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5375 #line 1677 "cgrammar.y"
5376 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5379 #line 1678 "cgrammar.y"
5380 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5383 #line 1679 "cgrammar.y"
5384 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5387 #line 1680 "cgrammar.y"
5388 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5391 #line 1681 "cgrammar.y"
5392 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5395 #line 1682 "cgrammar.y"
5396 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5399 #line 1685 "cgrammar.y"
5400 { yyval.entry = yyvsp[0].entry; ;
5403 #line 1686 "cgrammar.y"
5404 { yyval.entry = uentry_undefined; ;
5407 #line 1689 "cgrammar.y"
5408 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5411 #line 1693 "cgrammar.y"
5412 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5415 #line 1695 "cgrammar.y"
5416 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5419 #line 1697 "cgrammar.y"
5420 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5423 #line 1700 "cgrammar.y"
5424 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5427 #line 1702 "cgrammar.y"
5428 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5431 #line 1704 "cgrammar.y"
5432 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5435 #line 1705 "cgrammar.y"
5436 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5439 #line 1708 "cgrammar.y"
5440 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5443 #line 1709 "cgrammar.y"
5444 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5447 #line 1711 "cgrammar.y"
5448 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5451 #line 1712 "cgrammar.y"
5452 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5455 #line 1713 "cgrammar.y"
5456 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5459 #line 1714 "cgrammar.y"
5460 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5463 #line 1715 "cgrammar.y"
5464 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5467 #line 1716 "cgrammar.y"
5468 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5471 #line 1717 "cgrammar.y"
5472 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5475 #line 1718 "cgrammar.y"
5476 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5479 #line 1722 "cgrammar.y"
5483 #line 1729 "cgrammar.y"
5484 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5487 #line 1730 "cgrammar.y"
5488 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5491 #line 1731 "cgrammar.y"
5492 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5495 #line 1732 "cgrammar.y"
5496 { yyval.cname = yyvsp[0].cname; ;
5499 #line 1736 "cgrammar.y"
5500 { yyval.ctyp = ctype_unknown; ;
5503 /* the action file gets copied in in place of this dollarsign */
5504 #line 543 "/usr/lib/bison.simple"
5515 short *ssp1 = yyss - 1;
5516 fprintf (stderr, "state stack now");
5517 while (ssp1 != yyssp)
5518 fprintf (stderr, " %d", *++ssp1);
5519 fprintf (stderr, "\n");
5529 yylsp->first_line = yylloc.first_line;
5530 yylsp->first_column = yylloc.first_column;
5531 yylsp->last_line = (yylsp-1)->last_line;
5532 yylsp->last_column = (yylsp-1)->last_column;
5537 yylsp->last_line = (yylsp+yylen-1)->last_line;
5538 yylsp->last_column = (yylsp+yylen-1)->last_column;
5542 /* Now "shift" the result of the reduction.
5543 Determine what state that goes to,
5544 based on the state we popped back to
5545 and the rule number reduced by. */
5549 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5550 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5551 yystate = yytable[yystate];
5553 yystate = yydefgoto[yyn - YYNTBASE];
5557 yyerrlab: /* here on detecting error */
5560 /* If not already recovering from an error, report this error. */
5564 #ifdef YYERROR_VERBOSE
5565 yyn = yypact[yystate];
5567 if (yyn > YYFLAG && yyn < YYLAST)
5574 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5575 for (x = (yyn < 0 ? -yyn : 0);
5576 x < (sizeof(yytname) / sizeof(char *)); x++)
5577 if (yycheck[x + yyn] == x)
5578 size += strlen(yytname[x]) + 15, count++;
5579 msg = (char *) malloc(size + 15);
5582 strcpy(msg, "parse error");
5587 for (x = (yyn < 0 ? -yyn : 0);
5588 x < (sizeof(yytname) / sizeof(char *)); x++)
5589 if (yycheck[x + yyn] == x)
5591 strcat(msg, count == 0 ? ", expecting `" : " or `");
5592 strcat(msg, yytname[x]);
5601 yyerror ("parse error; also virtual memory exceeded");
5604 #endif /* YYERROR_VERBOSE */
5605 yyerror("parse error");
5609 yyerrlab1: /* here on error raised explicitly by an action */
5611 if (yyerrstatus == 3)
5613 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5615 /* return failure if at end of input */
5616 if (yychar == YYEOF)
5621 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5627 /* Else will try to reuse lookahead token
5628 after shifting the error token. */
5630 yyerrstatus = 3; /* Each real token shifted decrements this */
5634 yyerrdefault: /* current state does not do anything special for the error token. */
5637 /* This is wrong; only states that explicitly want error tokens
5638 should shift them. */
5639 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5640 if (yyn) goto yydefault;
5643 yyerrpop: /* pop the current state because it cannot handle the error token */
5645 if (yyssp == yyss) YYABORT;
5655 short *ssp1 = yyss - 1;
5656 fprintf (stderr, "Error: state stack now");
5657 while (ssp1 != yyssp)
5658 fprintf (stderr, " %d", *++ssp1);
5659 fprintf (stderr, "\n");
5665 yyn = yypact[yystate];
5670 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5689 fprintf(stderr, "Shifting error token, ");
5701 /* YYACCEPT comes here. */
5713 /* YYABORT comes here. */
5724 #line 1738 "cgrammar.y"
5728 extern char *yytext;
5731 # include "bison.reset"
5733 void yyerror (/*@unused@*/ char *s)
5735 static bool givehint = FALSE;
5737 if (context_inIterDef ())
5739 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5740 context_inFunctionName ()));
5742 else if (context_inIterEnd ())
5744 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5745 context_inFunctionName ()));
5747 else if (context_inMacro ())
5749 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5750 context_inFunctionName ()));
5752 if (context_inMacroUnknown ())
5756 llhint (cstring_makeLiteral
5757 ("Precede macro definition with /*@notfunction@*/ "
5758 "to suppress checking and force expansion"));
5767 llparseerror (cstring_undefined);
5771 void printState (idDecl t) {
5772 cstring id = idDecl_getName (t);
5773 uentry ue = usymtab_lookupSafe (id);
5775 sRef s = uentry_getSref (ue);
5777 printf("State = %d\n", s->bufinfo.bufstate);
5781 /*take this out soon */
5782 /* void testassert1 (cstring id, icstring cons ) { */
5783 /* uentry ue =usymtab_lookupSafe (id); */
5784 /* sRef s = uentry_getSref (ue); */
5785 /* printf ("Doing testassert1 with setbuffersize\n"); */
5786 /* printf("State = %d\n", s->bufinfo.bufstate); */
5788 /* void testassert2 (cstring id) { */
5789 /* uentry ue =usymtab_lookupSafe (id); */
5790 /* sRef s = uentry_getSref (ue); */
5791 /* printf ("Doing testassert2 with setbuffersize\n"); */
5792 /* printf("State = %d\n", s->bufinfo.bufstate); */