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
188 #define IDENTIFIER 438
189 #define NEW_IDENTIFIER 439
190 #define TYPE_NAME_OR_ID 440
191 #define CCONSTANT 441
192 #define ITER_NAME 442
193 #define ITER_ENDNAME 443
194 #define TYPE_NAME 444
196 #line 19 "cgrammar.y"
202 ** Yacc/Bison grammar for extended ANSI C used by LCLint.
204 ** original grammar by Nate Osgood ---
205 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
207 ** changes for LCLint --- handle typedef names correctly
208 ** fix struct/union parsing bug (empty struct is accepted)
209 ** add productions to handle macros --- require
210 ** error correction --- main source of conflicts in grammar.
211 ** need to process initializations sequentially, L->R
213 ** production names are cryptic, so more productions fit on one line
215 ** conflicts: 87 shift/reduce, 18 reduce/reduce
216 ** most of these are due to handling macros
217 ** a few are due to handling type expressions
223 extern void swallowMacro (void);
225 # include "lclintMacros.nf"
227 # include "cgrammar.h"
228 # include "exprChecks.h"
233 # define SHOWCSYM FALSE
234 void yyerror (char *s);
237 ** This is necessary, or else when the bison-generated code #include's malloc.h,
238 ** there will be a parse error.
240 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
241 ** in bison-generated files under Win32.
251 #line 74 "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) <= 444 ? yytranslate[x] : 434)
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 186, 187, 188, 194, 195, 199, 201, 205, 207, 209,
358 211, 213, 215, 217, 222, 228, 230, 232, 234, 236,
359 240, 245, 248, 252, 256, 260, 262, 264, 266, 267,
360 270, 271, 274, 276, 279, 281, 284, 286, 289, 291,
361 295, 298, 300, 302, 304, 306, 308, 310, 312, 313,
362 316, 317, 324, 325, 332, 334, 336, 337, 338, 344,
363 345, 351, 353, 355, 356, 358, 359, 360, 364, 365,
364 369, 371, 373, 375, 377, 379, 381, 383, 385, 387,
365 389, 391, 393, 395, 397, 399, 401, 403, 404, 412,
366 413, 422, 424, 428, 429, 433, 434, 438, 441, 445,
367 448, 451, 453, 455, 457, 461, 466, 469, 473, 477,
368 481, 483, 485, 487, 491, 493, 495, 499, 504, 507,
369 511, 515, 519, 521, 525, 527, 529, 531, 535, 537,
370 539, 541, 546, 550, 555, 562, 568, 574, 577, 580,
371 582, 586, 588, 591, 594, 597, 600, 603, 606, 609,
372 612, 614, 616, 620, 622, 632, 633, 637, 642, 645,
373 650, 653, 655, 660, 662, 666, 670, 674, 676, 680,
374 684, 686, 690, 694, 696, 700, 704, 708, 712, 714,
375 718, 722, 724, 728, 730, 734, 736, 740, 742, 743,
376 748, 750, 751, 756, 758, 759, 760, 768, 770, 774,
377 778, 782, 786, 790, 794, 798, 802, 806, 810, 814,
378 816, 820, 821, 823, 825, 827, 829, 831, 835, 836,
379 846, 847, 859, 862, 863, 870, 871, 879, 884, 889,
380 890, 891, 894, 896, 901, 902, 907, 909, 913, 918,
381 920, 924, 926, 928, 930, 932, 934, 937, 940, 943,
382 946, 949, 952, 955, 958, 961, 964, 967, 970, 973,
383 976, 979, 982, 985, 988, 991, 994, 997, 1000, 1003,
384 1006, 1009, 1012, 1015, 1018, 1021, 1024, 1027, 1030, 1033,
385 1036, 1039, 1042, 1045, 1048, 1051, 1054, 1057, 1060, 1063,
386 1066, 1069, 1072, 1074, 1076, 1078, 1080, 1083, 1086, 1089,
387 1092, 1095, 1098, 1101, 1104, 1107, 1110, 1113, 1116, 1119,
388 1122, 1126, 1128, 1133, 1135, 1139, 1142, 1145, 1148, 1149,
389 1151, 1152, 1153, 1165, 1166, 1167, 1179, 1186, 1193, 1194,
390 1195, 1206, 1207, 1208, 1219, 1225, 1231, 1236, 1241, 1242,
391 1244, 1246, 1249, 1255, 1259, 1262, 1267, 1269, 1273, 1278,
392 1285, 1286, 1295, 1300, 1302, 1306, 1309, 1311, 1316, 1318,
393 1320, 1323, 1326, 1328, 1331, 1333, 1336, 1338, 1340, 1342,
394 1345, 1347, 1350, 1353, 1357, 1359, 1363, 1365, 1369, 1371,
395 1373, 1377, 1378, 1381, 1382, 1387, 1392, 1394, 1396, 1399,
396 1401, 1403, 1406, 1407, 1409, 1415, 1418, 1422, 1426, 1431,
397 1435, 1440, 1445, 1451, 1453, 1455, 1457, 1459, 1461, 1463,
398 1465, 1467, 1469, 1472, 1474, 1476, 1478, 1481, 1484, 1492,
399 1499, 1502, 1503, 1504, 1515, 1516, 1523, 1525, 1527, 1529,
400 1531, 1534, 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1552,
401 1554, 1557, 1560, 1563, 1565, 1567, 1569, 1571, 1573, 1575,
402 1577, 1579, 1581, 1583, 1587, 1589, 1591, 1594, 1597, 1598,
403 1603, 1604, 1610, 1611, 1615, 1616, 1621, 1625, 1628, 1632,
404 1633, 1634, 1635, 1636, 1637, 1639, 1642, 1645, 1649, 1652,
405 1656, 1660, 1665, 1668, 1671, 1675, 1679, 1684, 1686, 1689,
406 1691, 1694, 1696, 1699, 1701, 1704, 1706, 1709, 1711, 1716,
407 1719, 1720, 1726, 1727, 1734, 1739, 1744, 1745, 1746, 1757,
408 1759, 1760, 1765, 1767, 1769, 1771, 1773, 1775, 1779, 1781,
409 1786, 1790, 1795, 1802, 1808, 1814, 1817, 1820, 1822, 1825,
410 1828, 1831, 1834, 1837, 1840, 1843, 1846, 1848, 1850, 1855,
411 1857, 1861, 1865, 1869, 1871, 1875, 1879, 1881, 1885, 1889,
412 1891, 1895, 1899, 1903, 1907, 1909, 1913, 1917, 1919, 1923,
413 1925, 1929, 1931, 1935, 1937, 1941, 1943, 1947, 1949, 1950,
414 1951, 1959, 1961, 1965, 1969, 1973, 1977, 1981, 1985, 1989,
415 1993, 1997, 2001, 2005, 2007, 2008, 2010, 2013, 2021, 2024,
416 2027, 2035, 2042, 2045, 2049, 2052, 2056, 2059, 2063, 2067,
417 2071, 2075, 2078, 2082, 2083, 2085, 2087, 2089, 2091, 2093,
421 static const short yyrhs[] = { -1,
422 192, 0, 193, 0, 192, 193, 0, 261, 430, 0,
423 194, 0, 195, 0, 205, 0, 208, 0, 298, 0,
424 1, 0, 75, 318, 331, 341, 331, 430, 306, 88,
425 0, 75, 318, 331, 341, 331, 23, 306, 311, 310,
426 430, 88, 0, 0, 76, 196, 197, 430, 88, 0,
427 198, 0, 318, 331, 198, 0, 202, 0, 345, 202,
428 0, 432, 0, 306, 24, 331, 341, 306, 25, 0,
429 199, 26, 27, 0, 199, 26, 306, 297, 27, 331,
430 0, 0, 199, 307, 24, 25, 200, 210, 212, 0,
431 0, 199, 307, 24, 342, 25, 201, 210, 212, 0,
432 432, 0, 306, 24, 331, 198, 306, 25, 0, 202,
433 26, 27, 0, 202, 26, 306, 297, 27, 331, 0,
434 0, 202, 307, 24, 25, 203, 228, 0, 0, 202,
435 307, 24, 342, 25, 204, 228, 0, 0, 0, 77,
436 432, 24, 342, 25, 206, 228, 207, 430, 88, 0,
437 89, 371, 92, 0, 90, 358, 92, 0, 91, 359,
438 92, 0, 89, 92, 0, 257, 0, 0, 211, 230,
439 0, 0, 213, 214, 0, 217, 215, 0, 0, 216,
440 178, 219, 430, 88, 0, 0, 0, 218, 177, 219,
441 430, 88, 0, 0, 220, 183, 219, 0, 220, 0,
442 223, 222, 223, 0, 180, 0, 181, 0, 52, 0,
443 51, 0, 53, 0, 224, 0, 226, 24, 223, 25,
444 0, 24, 223, 227, 223, 25, 0, 225, 0, 187,
445 0, 431, 0, 185, 0, 225, 26, 27, 0, 225,
446 26, 187, 27, 0, 34, 225, 0, 24, 225, 25,
447 0, 225, 28, 432, 0, 225, 44, 432, 0, 221,
448 0, 33, 0, 32, 0, 0, 0, 231, 0, 0,
449 229, 231, 0, 238, 0, 232, 238, 0, 241, 0,
450 232, 241, 0, 254, 0, 254, 232, 0, 234, 0,
451 233, 21, 234, 0, 237, 235, 0, 431, 0, 185,
452 0, 86, 0, 87, 0, 116, 0, 117, 0, 130,
453 0, 0, 236, 237, 0, 0, 72, 239, 391, 430,
454 88, 244, 0, 0, 72, 240, 233, 430, 88, 244,
455 0, 74, 0, 245, 0, 0, 0, 72, 242, 391,
456 430, 244, 0, 0, 72, 243, 233, 430, 244, 0,
457 74, 0, 247, 0, 0, 245, 0, 0, 0, 73,
458 246, 262, 0, 0, 73, 248, 263, 0, 78, 0,
459 79, 0, 80, 0, 81, 0, 82, 0, 88, 0,
460 88, 0, 83, 0, 84, 0, 119, 0, 137, 0,
461 135, 0, 133, 0, 132, 0, 121, 0, 138, 0,
462 150, 0, 0, 249, 331, 255, 268, 430, 251, 306,
463 0, 0, 252, 331, 253, 256, 268, 430, 250, 306,
464 0, 341, 0, 318, 331, 341, 0, 0, 19, 259,
465 387, 0, 0, 391, 260, 380, 0, 209, 258, 0,
466 266, 430, 88, 0, 430, 88, 0, 266, 430, 0,
467 430, 0, 431, 0, 185, 0, 264, 26, 27, 0,
468 264, 26, 265, 27, 0, 34, 264, 0, 24, 264,
469 25, 0, 264, 28, 432, 0, 264, 44, 432, 0,
470 264, 0, 187, 0, 264, 0, 266, 21, 264, 0,
471 431, 0, 185, 0, 267, 26, 27, 0, 267, 26,
472 265, 27, 0, 34, 267, 0, 24, 267, 25, 0,
473 267, 28, 432, 0, 267, 44, 432, 0, 267, 0,
474 268, 21, 267, 0, 431, 0, 185, 0, 187, 0,
475 24, 295, 25, 0, 186, 0, 111, 0, 269, 0,
476 270, 26, 295, 27, 0, 270, 24, 25, 0, 270,
477 24, 271, 25, 0, 70, 24, 294, 21, 353, 25,
478 0, 270, 331, 28, 432, 306, 0, 270, 331, 44,
479 432, 306, 0, 270, 47, 0, 270, 48, 0, 294,
480 0, 271, 21, 294, 0, 270, 0, 47, 272, 0,
481 48, 272, 0, 29, 278, 0, 34, 278, 0, 33,
482 278, 0, 32, 278, 0, 31, 278, 0, 30, 278,
483 0, 275, 0, 274, 0, 273, 28, 432, 0, 432,
484 0, 46, 306, 24, 353, 331, 21, 273, 25, 306,
485 0, 0, 306, 276, 277, 0, 42, 24, 353, 25,
486 0, 42, 272, 0, 43, 24, 353, 25, 0, 43,
487 272, 0, 272, 0, 24, 353, 25, 278, 0, 278,
488 0, 279, 34, 278, 0, 279, 35, 278, 0, 279,
489 36, 278, 0, 279, 0, 280, 33, 279, 0, 280,
490 32, 279, 0, 280, 0, 281, 49, 280, 0, 281,
491 50, 280, 0, 281, 0, 282, 37, 281, 0, 282,
492 38, 281, 0, 282, 51, 281, 0, 282, 52, 281,
493 0, 282, 0, 283, 53, 282, 0, 283, 54, 282,
494 0, 283, 0, 284, 29, 283, 0, 284, 0, 285,
495 39, 284, 0, 285, 0, 286, 40, 285, 0, 286,
496 0, 0, 287, 55, 288, 286, 0, 287, 0, 0,
497 289, 56, 290, 287, 0, 289, 0, 0, 0, 289,
498 41, 292, 295, 22, 293, 291, 0, 291, 0, 272,
499 23, 294, 0, 272, 57, 294, 0, 272, 58, 294,
500 0, 272, 59, 294, 0, 272, 60, 294, 0, 272,
501 61, 294, 0, 272, 62, 294, 0, 272, 63, 294,
502 0, 272, 64, 294, 0, 272, 65, 294, 0, 272,
503 66, 294, 0, 294, 0, 295, 21, 294, 0, 0,
504 295, 0, 291, 0, 299, 0, 71, 0, 304, 0,
505 318, 306, 18, 0, 0, 318, 331, 341, 331, 300,
506 306, 310, 18, 306, 0, 0, 318, 331, 341, 331,
507 23, 301, 306, 311, 310, 18, 306, 0, 341, 331,
508 0, 0, 341, 331, 23, 303, 306, 311, 0, 0,
509 45, 318, 305, 331, 308, 306, 18, 0, 45, 318,
510 306, 18, 0, 45, 308, 306, 18, 0, 0, 0,
511 309, 306, 0, 302, 0, 308, 21, 331, 302, 0,
512 0, 310, 21, 331, 302, 0, 294, 0, 19, 312,
513 20, 0, 19, 312, 21, 20, 0, 311, 0, 312,
514 21, 311, 0, 112, 0, 110, 0, 113, 0, 114,
515 0, 115, 0, 108, 306, 0, 109, 306, 0, 116,
516 306, 0, 117, 306, 0, 130, 306, 0, 131, 306,
517 0, 132, 306, 0, 133, 306, 0, 118, 306, 0,
518 120, 306, 0, 119, 306, 0, 128, 306, 0, 129,
519 306, 0, 121, 306, 0, 123, 306, 0, 139, 306,
520 0, 140, 306, 0, 142, 306, 0, 143, 306, 0,
521 141, 306, 0, 136, 306, 0, 151, 306, 0, 134,
522 306, 0, 135, 306, 0, 137, 306, 0, 124, 306,
523 0, 127, 306, 0, 125, 306, 0, 126, 306, 0,
524 156, 306, 0, 157, 306, 0, 148, 306, 0, 158,
525 306, 0, 149, 306, 0, 152, 306, 0, 153, 306,
526 0, 154, 306, 0, 155, 306, 0, 150, 306, 0,
527 159, 306, 0, 160, 306, 0, 163, 306, 0, 164,
528 306, 0, 161, 306, 0, 162, 306, 0, 175, 306,
529 0, 147, 0, 144, 0, 145, 0, 146, 0, 165,
530 331, 0, 167, 331, 0, 166, 331, 0, 168, 331,
531 0, 169, 331, 0, 170, 331, 0, 171, 331, 0,
532 172, 331, 0, 173, 331, 0, 174, 331, 0, 433,
533 331, 0, 322, 331, 0, 336, 331, 0, 315, 331,
534 0, 306, 318, 306, 0, 320, 0, 320, 85, 319,
535 88, 0, 353, 0, 353, 21, 319, 0, 313, 321,
536 0, 314, 321, 0, 316, 321, 0, 0, 318, 0,
537 0, 0, 331, 67, 432, 306, 19, 323, 384, 332,
538 385, 324, 20, 0, 0, 0, 331, 68, 432, 306,
539 19, 325, 384, 332, 385, 326, 20, 0, 331, 67,
540 432, 306, 19, 20, 0, 331, 68, 432, 306, 19,
541 20, 0, 0, 0, 331, 67, 306, 19, 327, 384,
542 332, 385, 328, 20, 0, 0, 0, 331, 68, 306,
543 19, 329, 384, 332, 385, 330, 20, 0, 331, 67,
544 306, 19, 20, 0, 331, 68, 306, 19, 20, 0,
545 331, 67, 432, 331, 0, 331, 68, 432, 331, 0,
546 0, 333, 0, 208, 0, 332, 333, 0, 318, 331,
547 334, 306, 18, 0, 318, 306, 18, 0, 335, 331,
548 0, 334, 21, 335, 331, 0, 341, 0, 22, 306,
549 297, 0, 341, 22, 306, 297, 0, 331, 69, 19,
550 338, 20, 306, 0, 0, 331, 69, 432, 19, 337,
551 338, 20, 306, 0, 331, 69, 432, 306, 0, 339,
552 0, 338, 21, 339, 0, 338, 21, 0, 432, 0,
553 432, 23, 306, 297, 0, 199, 0, 355, 0, 345,
554 190, 0, 345, 340, 0, 199, 0, 345, 199, 0,
555 348, 0, 331, 346, 0, 108, 0, 109, 0, 343,
556 0, 344, 343, 0, 34, 0, 34, 344, 0, 34,
557 345, 0, 34, 344, 345, 0, 347, 0, 347, 21,
558 5, 0, 432, 0, 347, 21, 432, 0, 5, 0,
559 349, 0, 349, 21, 5, 0, 0, 350, 352, 0,
560 0, 349, 21, 351, 352, 0, 306, 318, 340, 306,
561 0, 432, 0, 317, 0, 317, 354, 0, 345, 0,
562 356, 0, 345, 356, 0, 0, 356, 0, 306, 24,
563 331, 354, 25, 0, 26, 27, 0, 26, 297, 27,
564 0, 356, 26, 27, 0, 356, 26, 297, 27, 0,
565 306, 24, 25, 0, 306, 24, 348, 25, 0, 356,
566 306, 24, 25, 0, 356, 306, 24, 348, 25, 0,
567 373, 0, 374, 0, 377, 0, 380, 0, 393, 0,
568 396, 0, 427, 0, 401, 0, 429, 0, 22, 432,
569 0, 360, 0, 358, 0, 367, 0, 360, 367, 0,
570 400, 360, 0, 426, 372, 11, 24, 295, 25, 18,
571 0, 426, 372, 11, 24, 295, 25, 0, 362, 367,
572 0, 0, 0, 13, 24, 296, 18, 296, 18, 363,
573 296, 364, 25, 0, 0, 188, 382, 24, 366, 404,
574 25, 0, 189, 0, 373, 0, 374, 0, 377, 0,
575 369, 391, 0, 369, 0, 370, 0, 393, 0, 368,
576 0, 361, 0, 365, 0, 429, 0, 24, 367, 25,
577 0, 1, 0, 395, 367, 0, 382, 19, 0, 386,
578 20, 0, 372, 0, 390, 0, 373, 0, 374, 0,
579 377, 0, 381, 0, 394, 0, 396, 0, 401, 0,
580 428, 0, 24, 372, 25, 0, 429, 0, 1, 0,
581 432, 22, 0, 107, 357, 0, 0, 6, 297, 375,
582 22, 0, 0, 98, 6, 297, 376, 22, 0, 0,
583 7, 378, 22, 0, 0, 98, 7, 379, 22, 0,
584 24, 380, 25, 0, 382, 388, 0, 382, 389, 383,
585 0, 0, 0, 0, 0, 0, 20, 0, 107, 20,
586 0, 392, 20, 0, 392, 107, 20, 0, 391, 20,
587 0, 391, 107, 20, 0, 391, 392, 20, 0, 391,
588 392, 107, 20, 0, 19, 387, 0, 19, 20, 0,
589 19, 390, 20, 0, 19, 391, 20, 0, 19, 391,
590 392, 20, 0, 372, 0, 390, 372, 0, 298, 0,
591 391, 298, 0, 357, 0, 392, 357, 0, 18, 0,
592 295, 18, 0, 18, 0, 295, 18, 0, 295, 0,
593 8, 24, 295, 25, 0, 395, 357, 0, 0, 395,
594 357, 9, 397, 357, 0, 0, 10, 24, 295, 398,
595 25, 357, 0, 11, 24, 295, 25, 0, 11, 24,
596 295, 25, 0, 0, 0, 188, 402, 382, 24, 403,
597 404, 25, 380, 425, 383, 0, 406, 0, 0, 404,
598 405, 21, 406, 0, 424, 0, 431, 0, 186, 0,
599 185, 0, 187, 0, 24, 295, 25, 0, 407, 0,
600 270, 26, 295, 27, 0, 270, 24, 25, 0, 270,
601 24, 271, 25, 0, 70, 24, 294, 21, 353, 25,
602 0, 270, 331, 28, 432, 306, 0, 270, 331, 44,
603 432, 306, 0, 270, 47, 0, 270, 48, 0, 408,
604 0, 47, 272, 0, 48, 272, 0, 29, 278, 0,
605 34, 278, 0, 33, 278, 0, 32, 278, 0, 31,
606 278, 0, 30, 278, 0, 275, 0, 409, 0, 24,
607 353, 25, 278, 0, 410, 0, 279, 34, 278, 0,
608 279, 35, 278, 0, 279, 36, 278, 0, 411, 0,
609 280, 33, 279, 0, 280, 32, 279, 0, 412, 0,
610 281, 49, 280, 0, 281, 50, 280, 0, 413, 0,
611 282, 37, 281, 0, 282, 38, 281, 0, 282, 51,
612 281, 0, 282, 52, 281, 0, 414, 0, 283, 53,
613 282, 0, 283, 54, 282, 0, 415, 0, 284, 29,
614 283, 0, 416, 0, 285, 39, 284, 0, 417, 0,
615 286, 40, 285, 0, 418, 0, 287, 55, 286, 0,
616 419, 0, 289, 56, 287, 0, 420, 0, 0, 0,
617 289, 41, 422, 295, 22, 423, 291, 0, 421, 0,
618 272, 23, 294, 0, 272, 57, 294, 0, 272, 58,
619 294, 0, 272, 59, 294, 0, 272, 60, 294, 0,
620 272, 61, 294, 0, 272, 62, 294, 0, 272, 63,
621 294, 0, 272, 64, 294, 0, 272, 65, 294, 0,
622 272, 66, 294, 0, 189, 0, 0, 12, 0, 399,
623 357, 0, 426, 357, 11, 24, 295, 25, 18, 0,
624 362, 357, 0, 399, 372, 0, 426, 372, 11, 24,
625 295, 25, 18, 0, 426, 372, 11, 24, 295, 25,
626 0, 362, 372, 0, 14, 432, 18, 0, 15, 18,
627 0, 97, 15, 18, 0, 16, 18, 0, 93, 16,
628 18, 0, 94, 16, 18, 0, 95, 16, 18, 0,
629 96, 16, 18, 0, 17, 18, 0, 17, 295, 18,
630 0, 0, 18, 0, 184, 0, 185, 0, 188, 0,
631 189, 0, 431, 0, 186, 0, 190, 0, 186, 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, 335, 343, 344, 346,
641 348, 364, 368, 375, 379, 385, 387, 387, 391, 392,
642 393, 394, 397, 400, 401, 407, 408, 412, 416, 421,
643 428, 432, 437, 444, 447, 448, 451, 456, 457, 460,
644 461, 462, 465, 466, 467, 472, 473, 481, 484, 486,
645 487, 492, 493, 494, 496, 512, 516, 517, 522, 523,
646 533, 534, 537, 538, 541, 542, 545, 546, 549, 550,
647 553, 556, 557, 560, 561, 562, 563, 564, 567, 568,
648 571, 571, 574, 574, 577, 581, 582, 585, 585, 588,
649 588, 591, 595, 596, 599, 600, 603, 609, 616, 622,
650 629, 630, 631, 632, 633, 636, 639, 642, 643, 646,
651 647, 648, 649, 650, 651, 652, 653, 656, 662, 669,
652 675, 684, 690, 694, 696, 700, 703, 710, 720, 721,
653 724, 725, 728, 729, 730, 731, 732, 733, 734, 735,
654 739, 740, 744, 745, 748, 750, 752, 753, 754, 755,
655 756, 758, 762, 766, 778, 779, 780, 781, 782, 783,
656 786, 787, 788, 789, 790, 791, 792, 793, 794, 797,
657 798, 801, 802, 803, 804, 805, 806, 807, 808, 809,
658 810, 811, 814, 815, 818, 822, 823, 826, 827, 828,
659 829, 832, 833, 837, 838, 839, 840, 843, 844, 845,
660 848, 849, 850, 853, 854, 855, 856, 857, 860, 861,
661 862, 865, 866, 869, 870, 874, 875, 878, 879, 884,
662 890, 891, 897, 903, 904, 904, 906, 909, 910, 911,
663 912, 913, 914, 915, 916, 917, 918, 919, 920, 923,
664 924, 927, 928, 931, 936, 937, 938, 941, 954, 958,
665 959, 962, 967, 968, 968, 973, 974, 975, 976, 979,
666 982, 985, 988, 989, 992, 993, 996, 997, 998, 1002,
667 1004, 1013, 1014, 1015, 1016, 1017, 1020, 1021, 1022, 1023,
668 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033,
669 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,
670 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053,
671 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
672 1064, 1065, 1071, 1072, 1073, 1074, 1077, 1078, 1079, 1080,
673 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090,
674 1093, 1097, 1098, 1102, 1103, 1107, 1108, 1109, 1112, 1113,
675 1116, 1118, 1120, 1121, 1123, 1125, 1126, 1128, 1130, 1132,
676 1134, 1135, 1137, 1139, 1140, 1142, 1144, 1145, 1148, 1151,
677 1152, 1153, 1156, 1158, 1162, 1164, 1168, 1169, 1170, 1174,
678 1176, 1176, 1178, 1181, 1183, 1185, 1188, 1193, 1200, 1201,
679 1202, 1209, 1213, 1214, 1218, 1219, 1222, 1223, 1226, 1227,
680 1230, 1231, 1232, 1233, 1236, 1237, 1240, 1241, 1244, 1245,
681 1246, 1249, 1249, 1250, 1251, 1254, 1266, 1282, 1283, 1286,
682 1287, 1288, 1291, 1292, 1295, 1297, 1298, 1300, 1301, 1303,
683 1305, 1307, 1309, 1315, 1316, 1317, 1318, 1319, 1320, 1321,
684 1322, 1323, 1338, 1343, 1346, 1349, 1350, 1354, 1356, 1358,
685 1360, 1364, 1365, 1367, 1371, 1373, 1375, 1378, 1379, 1380,
686 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390,
687 1393, 1399, 1402, 1405, 1406, 1409, 1410, 1411, 1412, 1413,
688 1414, 1415, 1416, 1417, 1418, 1419, 1422, 1423, 1429, 1430,
689 1431, 1432, 1435, 1436, 1437, 1438, 1441, 1442, 1446, 1449,
690 1452, 1455, 1458, 1461, 1464, 1465, 1466, 1467, 1469, 1470,
691 1472, 1474, 1481, 1485, 1487, 1489, 1491, 1495, 1496, 1499,
692 1500, 1503, 1504, 1507, 1508, 1511, 1512, 1513, 1516, 1524,
693 1529, 1530, 1534, 1535, 1538, 1543, 1546, 1547, 1548, 1556,
694 1557, 1557, 1561, 1562, 1563, 1574, 1581, 1582, 1585, 1586,
695 1587, 1588, 1589, 1591, 1592, 1593, 1594, 1597, 1598, 1599,
696 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1609, 1610, 1613,
697 1614, 1615, 1616, 1619, 1620, 1621, 1624, 1625, 1626, 1629,
698 1630, 1631, 1632, 1633, 1636, 1637, 1638, 1641, 1642, 1645,
699 1646, 1650, 1651, 1654, 1655, 1658, 1659, 1662, 1663, 1664,
700 1665, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676,
701 1677, 1678, 1679, 1682, 1683, 1686, 1689, 1691, 1693, 1697,
702 1698, 1700, 1702, 1705, 1706, 1707, 1709, 1710, 1711, 1712,
703 1713, 1714, 1715, 1718, 1719, 1722, 1725, 1726, 1727, 1728,
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","TCAND","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 191, 191, 192, 192, 193, 193, 193, 193, 193, 193,
781 193, 194, 194, 196, 195, 197, 197, 198, 198, 199,
782 199, 199, 199, 200, 199, 201, 199, 202, 202, 202,
783 202, 203, 202, 204, 202, 206, 207, 205, 208, 208,
784 208, 208, 209, 211, 210, 213, 212, 214, 216, 215,
785 215, 218, 217, 217, 219, 219, 220, 221, 221, 222,
786 222, 222, 223, 223, 223, 224, 224, 225, 225, 225,
787 225, 225, 225, 225, 225, 226, 227, 227, -1, -1,
788 229, 228, 230, 230, 231, 231, 232, 232, 233, 233,
789 234, 235, 235, 236, 236, 236, 236, 236, 237, 237,
790 239, 238, 240, 238, 238, 238, 238, 242, 241, 243,
791 241, 241, 241, 241, 244, 244, 246, 245, 248, 247,
792 249, 249, 249, 249, 249, 250, 251, 252, 252, 253,
793 253, 253, 253, 253, 253, 253, 253, 255, 254, 256,
794 254, 257, 257, 259, 258, 260, 258, 261, 262, 262,
795 263, 263, 264, 264, 264, 264, 264, 264, 264, 264,
796 265, 265, 266, 266, 267, 267, 267, 267, 267, 267,
797 267, 267, 268, 268, 269, 269, 269, 269, 269, 269,
798 270, 270, 270, 270, 270, 270, 270, 270, 270, 271,
799 271, 272, 272, 272, 272, 272, 272, 272, 272, 272,
800 272, 272, 273, 273, 274, 276, 275, 277, 277, 277,
801 277, 278, 278, 279, 279, 279, 279, 280, 280, 280,
802 281, 281, 281, 282, 282, 282, 282, 282, 283, 283,
803 283, 284, 284, 285, 285, 286, 286, 287, 288, 287,
804 289, 290, 289, 291, 292, 293, 291, 294, 294, 294,
805 294, 294, 294, 294, 294, 294, 294, 294, 294, 295,
806 295, 296, 296, 297, 298, 298, 298, 299, 300, 299,
807 301, 299, 302, 303, 302, 305, 304, 304, 304, 306,
808 307, 308, 309, 309, 310, 310, 311, 311, 311, 312,
809 312, 313, 313, 313, 313, 313, 314, 314, 314, 314,
810 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
811 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
812 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
813 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
814 314, 314, 315, 315, 315, 315, 316, 316, 316, 316,
815 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
816 317, 318, 318, 319, 319, 320, 320, 320, 321, 321,
817 323, 324, 322, 325, 326, 322, 322, 322, 327, 328,
818 322, 329, 330, 322, 322, 322, 322, 322, 331, 332,
819 332, 332, 333, 333, 334, 334, 335, 335, 335, 336,
820 337, 336, 336, 338, 338, 338, 339, 339, 340, 340,
821 340, 340, 341, 341, 342, 342, 343, 343, 344, 344,
822 345, 345, 345, 345, 346, 346, 347, 347, 348, 348,
823 348, 350, 349, 351, 349, 352, 352, 353, 353, 354,
824 354, 354, 355, 355, 356, 356, 356, 356, 356, 356,
825 356, 356, 356, 357, 357, 357, 357, 357, 357, 357,
826 357, 357, -1, 358, 359, 360, 360, 361, 361, 361,
827 361, 363, 364, 362, 366, 365, 365, 367, 367, 367,
828 367, 367, 367, 367, 367, 367, 367, 367, 367, 367,
829 368, 369, 370, 371, 371, 372, 372, 372, 372, 372,
830 372, 372, 372, 372, 372, 372, 373, 373, 375, 374,
831 376, 374, 378, 377, 379, 377, 380, 380, 381, 382,
832 383, 384, 385, 386, 387, 387, 387, 387, 387, 387,
833 387, 387, 388, 389, 389, 389, 389, 390, 390, 391,
834 391, 392, 392, 393, 393, 394, 394, 394, 395, 396,
835 397, 396, 398, 396, 399, 400, 402, 403, 401, 404,
836 405, 404, 406, 406, 406, 406, 407, 407, 408, 408,
837 408, 408, 408, 408, 408, 408, 408, 409, 409, 409,
838 409, 409, 409, 409, 409, 409, 409, 410, 410, 411,
839 411, 411, 411, 412, 412, 412, 413, 413, 413, 414,
840 414, 414, 414, 414, 415, 415, 415, 416, 416, 417,
841 417, 418, 418, 419, 419, 420, 420, 421, 422, 423,
842 421, 424, 424, 424, 424, 424, 424, 424, 424, 424,
843 424, 424, 424, 425, 425, 426, 427, 427, 427, 428,
844 428, 428, 428, 429, 429, 429, 429, 429, 429, 429,
845 429, 429, 429, 430, 430, 431, 432, 432, 432, 432,
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, 5,
855 0, 0, 5, 0, 3, 1, 3, 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, 654, 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, 654, 0, 66, 0, 72, 0, 0, 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, 0, 78, 77,
1038 0, 73, 0, 53, 55, 57, 70, 0, 74, 75,
1039 0, 102, 104, 156, 170, 167, 0, 171, 172, 174,
1040 127, 280, 0, 396, 399, 50, 0, 71, 64, 168,
1041 139, 126, 280, 65, 141, 0, 0, 0
1044 static const short yydefgoto[] = { 1216,
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, 1213, 1202,
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[] = { 2053,
1073 -32768, 117, 5389,-32768, 6235,-32768, 896, 3028, 3410, 3410,
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, 557,-32768,-32768,
1081 -32768, 2229,-32768,-32768,-32768, 430,-32768,-32768, 5126,-32768,
1082 105,-32768,-32768,-32768, 124, 6069, 6069,-32768, 6069, 118,
1083 80,-32768, 527,-32768,-32768, 896,-32768,-32768,-32768,-32768,
1084 -32768,-32768, 117,-32768,-32768, 156,-32768, 118,-32768,-32768,
1085 -32768, 5389,-32768, 162,-32768, 5552,-32768, 183, 197, 205,
1086 -32768, 213, 896, 283, 311, 892,-32768, 2605, 5552, 5552,
1087 5552, 5552, 5552, 5552,-32768, 5563, 5563, 288,-32768, 366,
1088 374, 379, 387, 345, 149, 4650,-32768, 389, 412,-32768,
1089 436,-32768, 834, 963,-32768,-32768,-32768, 821, 303, 636,
1090 294, 683, 439, 457, 463, 453, 106,-32768,-32768, 333,
1091 -32768, 3558, 427, 435,-32768,-32768,-32768,-32768, 517, 3176,
1092 -32768, 4650,-32768, 3558,-32768, 3558,-32768,-32768, 519, 537,
1093 -32768, 565,-32768, 2795, 436, 585, 344, 523, 3219,-32768,
1094 3410,-32768,-32768,-32768, 5829,-32768,-32768,-32768,-32768, 604,
1095 623,-32768, 3410, 3410, 3558,-32768,-32768, 561,-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, 640, 653,-32768,-32768,-32768,
1102 118, 4969,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1103 662, 607,-32768,-32768, 896, 896, -10,-32768, 430,-32768,
1104 -32768,-32768,-32768, 707,-32768,-32768, 729, 684, 607, 105,
1105 -32768, 648, 677,-32768, 896,-32768, 285, 5552,-32768,-32768,
1106 -32768,-32768,-32768,-32768, 747, 5552, 5552, 5552, 1041, 736,
1107 -32768,-32768,-32768, 414, 641, 5698, 375, 757, 781,-32768,
1108 -32768,-32768,-32768,-32768,-32768, 785, 5552,-32768,-32768, 5552,
1109 796, 806, 811, 822, 827, 5552,-32768, 2225,-32768, 4650,
1110 -32768,-32768,-32768,-32768, 871,-32768,-32768, 4650,-32768, 4650,
1111 -32768,-32768,-32768, 3261, 5552,-32768,-32768, 140, 5552, 5552,
1112 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552,
1113 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552,
1114 5552, 5552, 5552, 5552, 5552,-32768,-32768,-32768,-32768, 5552,
1115 829,-32768,-32768, 2415,-32768,-32768, 854,-32768, 874,-32768,
1116 5552, 730, 902, 913,-32768,-32768,-32768,-32768, 5829,-32768,
1117 -32768,-32768, 2985, 971,-32768,-32768, 5552, 260, 3660, 607,
1118 948,-32768, 607,-32768, 275, 6235, 891, 953, 998, 1018,
1119 1027, 1018, 896, 1029, 607,-32768, 607,-32768,-32768,-32768,
1120 979, 1042, 1032,-32768, 607, 648,-32768, 896, 965,-32768,
1121 1043, 896, 274, 1093,-32768, 301, 1099, 367, 1099, 1108,
1122 -32768,-32768,-32768,-32768, 3452, 1124, 840,-32768, 853, 5552,
1123 -32768,-32768, 1115,-32768,-32768,-32768,-32768,-32768,-32768, 1119,
1124 1140,-32768, 3660,-32768,-32768, 1156, 1144,-32768, 458,-32768,
1125 256, 896, 896,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1126 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 821, 821, 303,
1127 303, 636, 636, 636, 636, 294, 294, 683, 439, 457,
1128 5552, 5552, 5552,-32768, 5583, 5594,-32768,-32768, 5321,-32768,
1129 3367, 3845,-32768,-32768, 1157, 512,-32768,-32768, 1159, 1160,
1130 -32768, 1161,-32768, 1967,-32768,-32768, 4030, 4215,-32768, 948,
1131 -32768,-32768, 1169,-32768,-32768, 1173, 1175,-32768, 1176, 1178,
1132 -32768, 886,-32768, 1172,-32768,-32768,-32768, 156,-32768, 193,
1133 -32768,-32768, 5552, 524, 607,-32768,-32768, 1180,-32768,-32768,
1134 1194, 6235,-32768,-32768,-32768,-32768, 1179,-32768, 1041,-32768,
1135 -32768, 1184, 923, 853, 3514, 1181,-32768,-32768,-32768, 1190,
1136 -32768,-32768,-32768, 1182,-32768, 5552,-32768,-32768,-32768,-32768,
1137 463, 898, 453, 5552,-32768, 5552,-32768,-32768,-32768, 4258,
1138 4650, 5552,-32768, 5614, 5552,-32768,-32768,-32768,-32768,-32768,
1139 4360, 4403,-32768, 4505,-32768, 1189,-32768,-32768,-32768,-32768,
1140 -32768, 1183,-32768,-32768, 1195,-32768, 896,-32768, 896, 1198,
1141 3070,-32768,-32768, 1192,-32768, 1196,-32768, 535,-32768,-32768,
1142 896, 637, 4650, 1204,-32768,-32768, 108, 1199,-32768, 1203,
1143 119, 1202, 1206,-32768, 5552, 5614,-32768,-32768,-32768,-32768,
1144 1207, 1208,-32768,-32768, 526, 5552, 5552, 5552, 5552, 5552,
1145 5552, 5552, 5563, 5563, 1211, 540, 612, 675, 968, 1272,
1146 681, 908, 897, 917, 400, 945, 1209, 1197, 1200, 1188,
1147 207, 1212,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1148 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 697,
1149 705,-32768,-32768, 961,-32768,-32768,-32768, 4548,-32768,-32768,
1150 -32768,-32768, 6156,-32768,-32768, 6156,-32768,-32768,-32768,-32768,
1151 5552, 1010,-32768, 3070,-32768,-32768, 3070, 1151,-32768,-32768,
1152 -32768, 1220,-32768,-32768,-32768, 1022,-32768, 430, 1222,-32768,
1153 578,-32768, 853,-32768,-32768, 1225,-32768,-32768,-32768, 1226,
1154 896,-32768, 732, 1227, 5552,-32768,-32768, 1229, 740, 1228,
1155 755, 769, 777, 783, 809, 814, 817, 844, 5552, 4681,
1156 5552, 876, 884, 152, 5552, 5552, 5552, 5552, 5552, 5552,
1157 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552,
1158 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552,
1159 5552, 5552,-32768, 5552,-32768, 1233, 1237,-32768, 1080, 67,
1160 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1161 1035,-32768,-32768,-32768,-32768, 1079,-32768,-32768, 3070, 459,
1162 -32768, 118, 5205,-32768, 6156, 5205, 6156,-32768,-32768,-32768,
1163 1071,-32768,-32768,-32768,-32768,-32768,-32768, 105, 172,-32768,
1164 -32768,-32768, 1081,-32768,-32768, 543,-32768,-32768,-32768, 4996,
1165 -32768,-32768, 393,-32768, 1238, 948,-32768,-32768, 944, 5552,
1166 1240, 970, 976, 257, 896, 896,-32768,-32768,-32768,-32768,
1167 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 983, 984, 993,
1168 654, 859, 920, 938, 485, 525, 567, 644, 816, 866,
1169 555, 352, 110, 463, 5552, 453, 5614,-32768,-32768, 1084,
1170 1086, 5960, 43, 91,-32768,-32768, 678,-32768,-32768,-32768,
1171 -32768,-32768, 1247, 61,-32768,-32768, 5205,-32768, 5205,-32768,
1172 -32768, 1858, 496,-32768, 1186, 5960, 43, 91,-32768, 600,
1173 -32768,-32768, 896,-32768, 1077, 1011,-32768, 1036, 1037,-32768,
1174 -32768, 1122,-32768,-32768, 1089, 232, 4812,-32768,-32768,-32768,
1175 -32768,-32768, 552,-32768, 43, 966, 77, 77,-32768,-32768,
1176 314, 560, 1187,-32768, 133,-32768,-32768,-32768,-32768,-32768,
1177 -32768,-32768,-32768,-32768, 566,-32768, 607,-32768,-32768, 1248,
1178 -32768, 1246, 1250,-32768, 1251,-32768,-32768,-32768, 1191,-32768,
1179 4654, 552,-32768, 560,-32768, 47, 1252,-32768,-32768,-32768,
1180 -32768, 1255, 1072, 1112,-32768, 232, 232, 258,-32768,-32768,
1181 -32768,-32768, 105, 1098,-32768, 1138,-32768, 500, 1263,-32768,
1182 1213, 43, 1214,-32768,-32768,-32768,-32768, 528, 314, 471,
1183 896, 896, 77, 1215,-32768, 133, 133,-32768, 575, 633,
1184 -32768, 133,-32768,-32768, 5552, 61, 1273,-32768,-32768,-32768,
1185 1270,-32768, 1276,-32768, 1219, 1219,-32768,-32768,-32768, 1117,
1186 5552, 105, 1090, 689, 258, 500, 1216, 232,-32768,-32768,
1187 -32768, 232, -17, 896, 896, 232, 1219,-32768, 1219,-32768,
1188 -32768,-32768, 314, 1278,-32768,-32768, 314,-32768, 907, 575,
1189 594, 896, 896, 133, 1218, 633,-32768,-32768,-32768,-32768,
1190 5552,-32768,-32768,-32768,-32768,-32768,-32768, 1221,-32768,-32768,
1191 232,-32768, 689,-32768,-32768,-32768,-32768, 1281,-32768,-32768,
1192 1274,-32768,-32768,-32768,-32768,-32768, 1283,-32768,-32768, 575,
1193 -32768,-32768, 1223,-32768,-32768,-32768, 1275,-32768,-32768,-32768,
1194 -32768,-32768,-32768,-32768,-32768, 1297, 1312,-32768
1197 static const short yypgoto[] = {-32768,
1198 -32768, 1231,-32768,-32768,-32768,-32768, -459, -102,-32768,-32768,
1199 989,-32768,-32768,-32768,-32768,-32768, 112,-32768, 550,-32768,
1200 429,-32768,-32768,-32768,-32768,-32768,-32768, -955,-32768,-32768,
1201 -32768, -937,-32768, -964,-32768,-32768, -687,-32768,-32768,-32768,
1202 -698, 321, 227,-32768,-32768, 296, 441,-32768,-32768, 410,
1203 -32768,-32768, -983, -667,-32768,-32768,-32768,-32768,-32768,-32768,
1204 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1205 -32768,-32768, -901, 179, 343, -864, 230,-32768, -573, 518,
1206 988,-32768,-32768, -567,-32768,-32768, 130, -357, -340, -331,
1207 -367, -317, -347, -345, -482, -467,-32768, -565,-32768, -32,
1208 -32768,-32768, 780, 1082, -604, -295, 2,-32768,-32768,-32768,
1209 -464,-32768,-32768,-32768, 0, -242, 880,-32768, -782, -679,
1210 -32768,-32768,-32768,-32768,-32768,-32768, 158, 765,-32768, 815,
1211 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 357,
1212 -677, -786,-32768, 233,-32768,-32768, 672, 676, 551, 68,
1213 -374, 1242,-32768, 6,-32768,-32768, -532,-32768,-32768,-32768,
1214 665, -296, 1012,-32768, -480, 1101, 1347,-32768, 1134,-32768,
1215 764,-32768,-32768,-32768,-32768, -119,-32768,-32768,-32768,-32768,
1216 85, 1376, 1566,-32768,-32768, 1584,-32768,-32768, -363,-32768,
1217 1450, 289, -537, -794,-32768, 848,-32768,-32768, 940, -83,
1218 -309, 4,-32768, 334, 173,-32768,-32768, 189,-32768, 214,
1219 -32768,-32768, 656,-32768, 398,-32768,-32768,-32768,-32768,-32768,
1220 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1221 -32768,-32768,-32768,-32768, 1672,-32768,-32768, 1675, 498, 182,
1229 static const short yytable[] = { 95,
1230 597, 92, 95, 309, 511, 292, 458, 114, 463, 1187,
1231 229, 230, 222, 222, 694, 606, 624, 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, 546, 547, 538, 539, 257, 258, 259,
1235 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1236 270, 271, 272, 273, 540, 541, 549, 105, 641, 550,
1237 509, -440, 495, 572, 284, 542, 543, 544, 545, 473,
1238 729, 95, 1049, 92, 433, 643, 731, 581, 741, 437,
1239 698, 438, 184, 332, 2, 548, 883, 913, 896, 301,
1240 1027, 988, 905, 442, 900, 95, 985, 902, 293, 985,
1241 1028, 88, 1134, 1136, 1027, 314, 315, 317, 312, 993,
1242 1132, 323, 293, 477, 1028, 1098, 1099, 325, 1018, 1019,
1243 -613, 439, 729, 495, -613, -280, 776, 346, 731, 1133,
1244 741, 2, 1176, 809, 356, 687, 417, 295, 414, 105,
1245 2, 570, -103, -103, 366, 367, 1106, 100, 1020, 1021,
1246 118, 418, 121, 1192, 303, 1193, 1107, 522, 810, 1188,
1247 1183, 739, 1022, 76, 77, 123, 313, 79, 80, 935,
1248 193, 107, 1185, 523, 107, 327, 740, 978, 107, 199,
1249 199, 199, 1054, 88, 1056, 936, 194, 1045, 1153, 622,
1250 985, 1157, 985, 346, 1186, 628, 336, 222, 1191, 980,
1251 293, 803, 222, 883, 222, 682, 511, 987, 994, 989,
1252 337, 195, 349, 739, 110, 111, 222, 222, 338, 686,
1253 76, 77, 123, 473, 79, 80, 339, 895, 740, 100,
1254 897, 1159, 1160, 1207, 76, 77, 123, 863, 79, 80,
1255 -103, -103, 650, 296, 296, 1077, 296, -110, -110, 1153,
1256 76, 1029, 864, 107, 477, 1078, 422, 662, 350, 351,
1257 352, 353, 354, 355, 76, 1029, 420, 420, 428, 324,
1258 429, 1135, 638, 1009, 571, 447, 735, 107, 458, 477,
1259 301, 1078, -389, 452, 420, -389, 732, -389, 493, 1200,
1260 341, 95, 456, 107, 459, 461, 737, 684, 738, 444,
1261 193, 360, 1058, 733, 107, 1001, 76, 1108, 95, 199,
1262 803, 420, 734, 437, 323, 616, 194, 346, 342, 700,
1263 407, 408, 703, 332, 403, 404, 736, 199, 735, 1100,
1264 562, 1101, 223, 223, 409, 410, 496, 711, 732, 712,
1265 419, 195, 497, 420, 193, -110, -110, 1102, 737, 365,
1266 738, 435, 193, 199, 420, 733, 193, 346, 193, 455,
1267 194, 199, -611, 199, 734, 199, -611, 199, 194, 964,
1268 413, 361, 194, 698, 194, 199, 470, 420, 736, 362,
1269 199, 618, 199, 729, 363, 195, 966, 193, -280, 731,
1270 495, 741, 364, 195, 199, 199, 199, 195, 2, 195,
1271 -657, 1079, 1080, 194, 332, 76, 1081, 1002, 1082, 820,
1272 1003, 274, 275, 276, 277, 278, 279, 280, 281, 282,
1273 283, 492, 108, -661, 420, 108, 853, 854, 195, 124,
1274 452, 76, 1081, -389, -389, -389, 222, -389, -389, 95,
1275 855, 856, 95, -281, 299, 286, 302, -658, 304, 587,
1276 308, 590, 332, 596, 95, 310, 95, 413, -389, -389,
1277 -389, 603, -389, -389, 323, 318, 981, 319, 636, 982,
1278 325, 612, 637, 107, 739, 898, 107, 107, 107, 959,
1279 960, 951, 952, 620, 1027, 414, 496, 1151, 626, 740,
1280 107, 456, 415, 494, 1028, -601, 107, 416, 560, -601,
1281 953, 954, 962, 293, 108, 963, 982, 579, 423, 388,
1282 582, 955, 956, 957, 958, 1143, -494, 1144, 477, 535,
1283 536, 537, 420, 405, 406, 424, 653, 223, 108, 793,
1284 -660, 961, 223, 1145, 223, -602, 420, 477, 685, -602,
1285 818, 199, 1150, 1100, 326, 1101, 223, 223, 430, 199,
1286 -566, 199, 1005, 452, -566, 340, -389, 696, -389, 293,
1287 332, 1102, 1092, 405, 406, -609, -389, 293, 452, -609,
1288 1103, 666, 1114, 1113, 456, 624, 982, -603, 431, 798,
1289 -663, -603, 332, 305, 306, 307, 193, 680, 681, 735,
1290 1161, -280, 1162, 495, 323, 199, -659, 411, 412, 732,
1291 325, 2, 194, 494, 436, 405, 406, 1027, 1163, 737,
1292 1196, 738, 440, 626, 199, 495, 733, 1028, 456, 627,
1293 199, 107, -565, 2, 107, 734, -565, 195, 708, 709,
1294 2, -663, 441, 346, 107, 346, 107, 450, 107, 736,
1295 293, 453, 445, 1164, 76, 1029, 107, 1152, 419, 107,
1296 -280, 420, 495, 107, -604, 493, 446, 772, -604, 465,
1297 2, -281, 467, 472, -596, 779, 448, 781, -596, 454,
1298 475, 787, 788, 478, 405, 406, 792, 400, 401, 402,
1299 612, 799, 405, 406, 199, -567, 496, 801, 798, -567,
1300 474, -587, 497, 107, 107, -587, 469, -389, -389, -389,
1301 1072, -389, -389, 1182, 1143, 346, 1144, -564, 76, 77,
1302 123, -564, 79, 80, 466, 420, -389, -389, -389, 867,
1303 -389, -389, 1145, 193, 108, 411, 412, 460, 462, 464,
1304 -663, -663, 199, 199, -663, -663, 468, 435, 332, 194,
1305 420, 108, 420, 491, 493, 199, 925, 326, 199, 199,
1306 420, 76, 77, 123, 929, 79, 80, 918, 485, 692,
1307 889, 182, 211, 211, 195, -581, 223, 76, 1029, -581,
1308 1152, 500, 927, 76, 77, 123, 107, 79, 80, -586,
1309 76, 77, 123, -586, 79, 80, 1036, -585, 1037, 917,
1310 799, -585, 626, -584, 478, 501, 801, -584, 502, 1038,
1311 1039, 583, 1040, 504, 1041, 1042, 588, 471, 591, 1168,
1312 76, 77, 123, 505, 79, 80, 600, 1043, 506, -583,
1313 605, 199, 199, -583, -582, 760, -606, -579, -582, 507,
1314 -606, -579, 199, 199, 508, 199, 821, 822, 823, 824,
1315 825, 826, 407, 408, 400, 401, 402, 384, 107, 385,
1316 107, -389, 564, -280, -580, 495, 409, 410, -580, 107,
1317 555, 556, 107, 107, 199, 1205, -280, -389, 625, -595,
1318 386, 387, 108, -595, 565, 108, -607, 760, 1017, 513,
1319 -607, 983, 400, 401, 402, 594, -576, 108, 990, 108,
1320 -576, 182, 407, 408, -577, 676, 677, 326, -577, 343,
1321 609, 298, 1061, 300, 614, 328, 409, 410, 420, 710,
1322 139, 140, 141, 142, 143, 144, 567, 477, 849, 850,
1323 892, 1195, 1161, 892, 1162, 583, 568, 145, 146, 147,
1324 -598, 846, 847, 848, -598, 182, -389, 696, -389, 199,
1325 1163, 403, 404, 182, 639, 640, -389, 182, -599, 182,
1326 478, 148, -599, 309, -568, 851, 852, 211, -568, 403,
1327 404, 580, 211, 585, 211, 948, 949, 950, 584, 697,
1328 1046, 569, 107, 95, 702, 389, 211, 211, 182, 610,
1329 -571, 830, 107, 831, -571, -389, 636, 857, 858, 799,
1330 1008, 1068, 157, -591, -592, 1066, 456, -591, -592, 1073,
1331 1074, -389, 762, -593, 832, 833, 586, -593, 452, 390,
1332 391, 392, 393, 394, 395, 396, 397, 398, 399, 899,
1333 677, -589, 870, 871, 872, -589, -280, 326, 873, 874,
1334 875, 876, 877, 878, 879, 589, 95, 595, 1115, 1117,
1335 892, 1052, 892, 892, 892, 604, -572, -570, -262, 1006,
1336 -572, -570, 452, 611, 328, 799, 601, 582, 602, 139,
1337 140, 141, 142, 143, 144, 76, 329, 330, 160, 76,
1338 77, 123, 332, 79, 80, 834, 145, 146, 147, 180,
1339 991, 992, -574, 909, 910, 911, -574, 683, 1177, 873,
1340 874, 875, 876, 877, 878, 879, 870, 871, 872, 594,
1341 148, 594, 1167, 331, 615, 95, 107, 107, 1171, 420,
1342 794, 1179, 1180, 614, 108, 619, 331, 331, 331, 331,
1343 331, 331, -575, 358, 359, 629, -575, -573, 332, 503,
1344 631, -573, 420, 1075, 892, 904, 892, 623, 760, 76,
1345 1095, 157, 909, 910, 911, 1034, 873, 874, 875, 876,
1346 877, 878, 879, 520, 632, 107, 634, 635, 524, 525,
1347 526, 527, 528, 529, 530, 531, 532, 533, 534, 1034,
1348 652, 107, 655, 1052, 107, 658, 656, 182, 1139, 1140,
1349 1141, 667, 670, 672, 678, 673, 675, 1090, 690, 554,
1350 688, 1211, 774, 693, 701, 705, 211, 1097, 1034, 1034,
1351 695, 704, 1215, 770, 777, 783, 1111, 344, 789, 345,
1352 791, 805, 811, 807, 76, 329, 330, 160, 107, 808,
1353 812, 816, 817, 108, 829, 860, 865, 859, 903, 861,
1354 976, 977, 862, 924, 907, 916, 928, 107, 984, 921,
1355 922, 926, 930, 967, 968, 1004, -52, 1090, 1090, 1090,
1356 1007, -49, 1016, 180, 1048, 1070, 1076, 1119, 1116, 1120,
1357 1122, 180, 1000, 1060, 1105, 180, 1128, 180, 1124, 1130,
1358 1138, 1034, 107, 107, 1034, 432, 1146, 1111, 1111, 1172,
1359 1170, 871, 427, 1111, 835, 1173, 1217, 107, 1209, 1214,
1360 1147, 1149, 1158, 1184, 1194, 1201, 180, 1208, 1206, 1210,
1361 1212, 1218, 285, 476, 887, 979, 1090, 1062, 1148, 1090,
1362 1094, 975, 999, 1090, 182, 107, 107, 1090, 836, 837,
1363 838, 839, 840, 841, 842, 843, 844, 845, 1047, 1197,
1364 1064, 1166, 1034, 107, 107, 1111, 598, 933, 1169, 669,
1365 782, 919, 780, 331, 311, 797, 227, 443, 498, 1129,
1366 633, 814, 1090, 561, 1013, 0, 0, 1010, 1011, 0,
1367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1368 0, 0, 0, 185, 217, 217, 0, 331, 331, 331,
1369 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
1370 331, 331, 331, 0, 0, 995, 0, 1118, 0, 483,
1371 0, 0, 0, 0, 0, 707, 108, 486, 487, 488,
1372 489, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1373 0, 0, 108, 0, 331, 1069, 0, 0, 483, 0,
1374 0, 0, 0, 0, 0, 0, 0, 0, 0, 483,
1375 0, 0, 0, 0, 0, 0, 0, 189, 220, 220,
1376 785, 0, 0, 0, 0, 0, 521, 0, 0, 0,
1377 512, 1033, 0, 0, 0, 0, 0, 0, 515, 108,
1378 516, 0, 331, 0, 0, 0, 0, 331, 0, 0,
1379 1059, 0, 0, 0, 0, 1065, 0, 0, 108, 0,
1380 0, 0, 0, 0, 0, 180, 0, 0, 0, 0,
1381 0, 0, 566, 185, 1091, 0, 0, 0, 0, 0,
1382 1093, 0, 0, 0, 0, 1204, 0, 0, 0, 1104,
1383 0, 0, 0, 1155, 1156, 0, 0, 0, 331, 0,
1384 331, 0, 645, 647, 0, 0, 0, 0, 108, 575,
1385 0, 0, 0, 0, 0, 0, 0, 185, 1125, 1126,
1386 0, 1127, 0, 785, 0, 185, 785, 0, 0, 185,
1387 0, 185, 0, 186, 218, 218, 1189, 1190, 0, 217,
1388 1137, 0, 0, 0, 217, 0, 217, 189, 0, 0,
1389 331, 187, 219, 219, 1198, 1199, 0, 0, 217, 217,
1390 185, 0, 0, 0, 0, 0, 0, 1165, 931, 520,
1391 0, 0, 331, 575, 937, 938, 939, 940, 941, 942,
1392 943, 944, 945, 946, 947, 0, 0, 0, 0, 1178,
1393 0, 189, 0, 642, 0, 0, 0, 0, 0, 189,
1394 0, 730, 180, 189, 0, 189, 0, 0, 0, 0,
1395 0, 0, 0, 220, 434, 0, 0, 0, 220, 0,
1396 220, 0, 575, 1203, 0, 0, 0, 0, 785, 0,
1397 0, 0, 220, 220, 189, 0, 0, 575, 665, 196,
1398 225, 225, 198, 226, 226, 0, 0, 0, 0, 0,
1399 0, 0, 0, 730, 0, 0, 0, 0, 0, 0,
1400 489, 0, 0, 186, 331, 331, 331, 331, 331, 331,
1401 827, 828, 0, 0, 0, 0, 0, 0, 0, 0,
1402 0, 187, 0, 0, 0, 483, 0, 483, 0, 0,
1403 0, 0, 0, 715, 0, 0, 761, 0, 0, 0,
1404 0, 0, 0, 0, 0, 0, 0, 186, 0, 0,
1405 665, 714, 0, 0, 0, 186, 0, 0, 0, 186,
1406 0, 186, 665, 0, 0, 187, 0, 0, 331, 218,
1407 0, 785, 0, 187, 218, 0, 218, 187, 0, 187,
1408 0, 0, 0, 0, 0, 0, 813, 219, 218, 218,
1409 186, 0, 219, 804, 219, 0, 0, 819, 0, 185,
1410 0, 0, 331, 0, 0, 0, 219, 219, 187, 196,
1411 0, 0, 198, 0, 0, 0, 0, 0, 217, 0,
1412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1413 0, 0, 517, 331, 331, 331, 331, 331, 331, 331,
1414 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
1415 0, 331, 0, 196, 0, 0, 198, 0, 0, 0,
1416 0, 196, 0, 0, 198, 196, 0, 196, 198, 0,
1417 198, 0, 0, 189, 0, 225, 784, 1057, 226, 0,
1418 225, 328, 225, 226, 0, 226, 139, 140, 141, 142,
1419 143, 144, 220, 0, 225, 225, 196, 226, 226, 198,
1420 0, 0, 0, 145, 146, 147, 0, 0, 0, 0,
1421 0, 0, 934, 0, 0, 0, 0, 331, 0, 0,
1422 0, 0, 0, 0, 0, 0, 0, 148, 0, 0,
1423 0, 0, 0, 0, 0, 0, 185, 0, 0, 0,
1424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1425 0, 0, 0, 0, 730, 0, 0, 0, 0, 0,
1426 0, 0, 0, 0, 0, 0, 0, 0, 157, 0,
1427 0, 0, 126, 127, 128, 0, 129, 130, 131, 132,
1428 133, 134, 135, 136, 203, -520, 659, 0, 0, 186,
1429 368, 0, 0, 0, 0, 139, 140, 141, 142, 143,
1430 144, 489, 0, 0, 0, 0, 0, 187, 218, 0,
1431 189, 0, 145, 146, 147, 0, 0, 0, 0, 0,
1432 0, 0, 0, 0, 0, 0, 219, 0, 0, 0,
1433 0, 0, 0, 0, 0, 0, 148, 0, 0, 0,
1434 0, 76, 329, 330, 160, 0, 1012, 0, 0, 0,
1435 0, 0, -1, 1, 0, 0, 0, 0, 0, 150,
1436 151, 152, 153, 154, 155, 0, 0, 0, 0, 0,
1437 0, 0, 0, 156, 0, 0, -280, 157, 0, 0,
1438 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
1439 0, 0, 0, 0, 0, 196, 0, 3, 198, 0,
1440 0, 0, 331, 0, 0, 0, 0, 0, 0, 0,
1441 0, 0, 0, 0, 225, 0, 0, 226, 331, -389,
1442 -389, -389, 0, 4, 0, 0, 186, 5, 6, 7,
1443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1444 0, 8, 9, 10, 187, 0, 0, 0, 0, 0,
1445 76, 158, 159, 160, 161, 80, 0, 0, 331, 0,
1446 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1447 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1448 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1449 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1450 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1451 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1452 68, 69, 70, 71, 72, 73, 74, 75, -2, 1,
1453 0, 0, 196, 0, 0, 198, 76, 77, 78, 0,
1454 79, 80, 81, -520, 0, 0, 0, 0, 368, 0,
1455 0, 0, -280, 139, 140, 141, 142, 143, 144, 0,
1456 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
1457 145, 146, 147, 3, 0, 0, 0, 0, 0, 0,
1458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1459 0, 0, 0, 0, 148, -389, -389, -389, 0, 4,
1460 0, 0, 0, 5, 6, 7, 0, 0, 0, 0,
1461 0, 0, 0, 0, 0, 0, 0, 8, 9, 10,
1462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1463 0, 0, 0, 0, 0, 157, 11, 12, 13, 0,
1464 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1465 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1466 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1467 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1468 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1469 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1470 72, 73, 74, 75, 0, 0, 0, 0, 76, 329,
1471 330, 160, 76, 77, 78, 125, 79, 80, 81, 0,
1472 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1473 135, 136, 137, -520, 558, 0, 0, 0, 138, 0,
1474 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1475 0, 0, 0, 0, 0, 0, -280, -280, 0, 3,
1476 145, 146, 147, 0, 0, 0, 0, 0, 0, 0,
1477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1478 0, -389, -389, -389, 148, 4, 0, 0, 0, 0,
1479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1480 0, 0, 0, 0, 0, 0, 0, 150, 151, 152,
1481 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1482 0, 156, 11, 12, 13, 157, 14, 15, 16, 17,
1483 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1484 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1485 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1486 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1487 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1488 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1489 0, 0, 0, 0, 0, 0, 0, 0, 76, 158,
1490 559, 160, 161, 80, 81, 125, 0, 0, 0, 0,
1491 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1492 135, 136, 137, -520, 0, 0, 0, 0, 138, 0,
1493 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1494 0, 0, 0, 0, 0, 0, -280, -280, 0, 0,
1495 145, 146, 147, 0, 0, 0, 0, 0, 0, 0,
1496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1497 0, -280, -280, -280, 148, 0, 0, 0, 0, 0,
1498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 150, 151, 152,
1500 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1501 0, 156, -280, -280, -280, 157, -280, -280, -280, -280,
1502 -280, -280, -280, -280, -280, -280, 0, -280, -280, -280,
1503 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1504 -280, -280, 0, -280, -280, -280, -280, -280, -280, -280,
1505 -280, -280, -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 0, 0, 0, 0, 0, 0, 0, 0, 76, 158,
1509 159, 160, 161, 80, -280, 201, 0, 0, 0, 0,
1510 126, 127, 128, 0, 0, 202, 131, 132, 133, 134,
1511 135, 136, 203, -520, -524, 0, 0, 0, 204, 0,
1512 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1513 0, 0, 0, 0, 0, 0, -280, -280, 0, 0,
1514 145, 146, 147, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1516 0, -280, -280, -280, 148, 0, 0, 0, 0, 0,
1517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1518 0, 0, 0, 0, 0, 0, 0, 150, 151, 152,
1519 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1520 0, 156, -280, -280, -280, 157, -280, -280, -280, -280,
1521 -280, -280, -280, -280, -280, -280, 0, -280, -280, -280,
1522 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1523 -280, -280, 0, -280, -280, -280, -280, -280, -280, -280,
1524 -280, -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 0, 0, 0, 0, 0, 0, 0, 0, 76, 158,
1528 159, 160, 205, 206, -280, 201, 0, 0, 0, 0,
1529 126, 127, 128, 0, 0, 202, 131, 132, 133, 134,
1530 135, 136, 203, -468, -468, 0, 0, 0, 204, -468,
1531 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1532 0, 0, 0, 0, 0, 0, -280, -280, 125, 0,
1533 145, 146, 147, 126, 127, 128, 0, 129, 130, 131,
1534 132, 133, 134, 135, 136, 137, -520, 0, 0, 0,
1535 0, 138, 0, 0, 148, 0, 139, 140, 141, 142,
1536 143, 144, 0, 0, 0, 0, 0, 0, 0, -280,
1537 -280, 0, 0, 145, 146, 147, -468, 150, 151, 152,
1538 153, 154, 155, 0, 0, 0, 0, 0, 784, 0,
1539 0, 156, 0, 328, 0, 157, 0, 148, 139, 140,
1540 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1541 0, 0, 0, 0, 0, 145, 146, 147, 0, 149,
1542 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1543 0, 0, 0, 0, 156, 0, 0, 0, 157, 148,
1544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1546 0, 0, 0, 0, 0, 0, 0, 0, 76, 158,
1547 159, 160, 205, 206, 0, 0, 125, 0, 0, 0,
1548 157, 126, 127, 128, 0, 129, 130, 131, 132, 133,
1549 134, 135, 136, 137, -520, 0, 0, 0, 0, 138,
1550 0, 0, 0, 0, 139, 140, 141, 142, 143, 144,
1551 0, 76, 158, 159, 160, 161, 80, -280, -280, 201,
1552 0, 145, 146, 147, 126, 127, 128, 0, 0, 202,
1553 131, 132, 133, 134, 135, 136, 203, -520, -524, 0,
1554 0, 0, 204, 0, 0, 148, 0, 139, 140, 141,
1555 142, 143, 144, 76, 329, 330, 160, 0, 0, 0,
1556 -280, -280, 0, 0, 145, 146, 147, -495, 150, 151,
1557 152, 153, 154, 155, 0, 0, 0, 0, 0, 0,
1558 0, 0, 156, 0, 328, 518, 157, 0, 148, 139,
1559 140, 141, 142, 143, 144, 0, 0, 0, 0, 0,
1560 0, 0, 0, 0, 0, 0, 145, 146, 147, 0,
1561 -464, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1562 0, 0, 0, 0, 0, 156, 0, 0, 0, 157,
1563 148, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1565 0, 0, 0, 0, 0, 0, 0, 0, 0, 76,
1566 158, 159, 160, 161, 80, 0, 0, 125, 0, 0,
1567 0, 157, 126, 127, 128, 0, 129, 130, 131, 132,
1568 133, 134, 135, 136, 137, -520, 648, 0, 0, 0,
1569 138, 0, 0, 0, 0, 139, 140, 141, 142, 143,
1570 144, 0, 76, 158, 159, 160, 205, 206, -280, -280,
1571 201, 0, 145, 146, 147, 126, 127, 128, 0, 0,
1572 202, 131, 132, 133, 134, 135, 136, 203, -520, -524,
1573 0, 0, 0, 204, 0, 0, 148, 0, 139, 140,
1574 141, 142, 143, 144, 76, 329, 330, 160, 0, 0,
1575 0, -280, -280, 0, 0, 145, 146, 147, 0, 150,
1576 151, 152, 153, 154, 155, 0, 0, 0, 0, 0,
1577 0, 0, 0, 156, 0, 328, 0, 157, 621, 148,
1578 139, 140, 141, 142, 143, 144, 0, 0, 0, 0,
1579 0, 0, 0, 0, 0, 0, 0, 145, 146, 147,
1580 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1581 0, 0, 0, 0, 0, 0, 156, 0, 0, 0,
1582 157, 148, 0, 0, 0, 0, 0, 0, 0, 0,
1583 0, 0, 0, 0, 0, 0, 0, 328, 0, 0,
1584 699, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1585 76, 158, 159, 160, 161, 80, 0, 0, 125, 145,
1586 146, 147, 157, 126, 127, 128, 0, 129, 130, 131,
1587 132, 133, 134, 135, 136, 137, -520, 0, 0, 0,
1588 0, 138, 0, 148, 0, 0, 139, 140, 141, 142,
1589 143, 144, 0, 76, 158, 159, 160, 205, 206, -280,
1590 -280, 0, 0, 145, 146, 147, 0, 0, 0, 0,
1591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1592 0, 0, 0, 0, 157, 0, 0, 148, 0, 0,
1593 0, 0, 0, 0, 0, 76, 329, 330, 160, 0,
1594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1595 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1596 0, 0, 0, 0, 156, 126, 127, 128, 157, 129,
1597 130, 131, 132, 133, 134, 135, 136, 203, -520, 573,
1598 0, 0, 0, 368, 0, 0, 0, 0, 139, 140,
1599 141, 142, 143, 144, 0, 0, 0, 76, 329, 330,
1600 160, -280, -280, 0, 3, 145, 146, 147, 0, 0,
1601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1602 0, 0, 0, 0, 0, 0, 0, 0, 0, 148,
1603 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1604 0, 76, 158, 159, 160, 161, 80, 0, 0, 0,
1605 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1606 0, 0, 0, 0, 0, 0, 574, 11, 12, 13,
1607 157, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1608 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1609 32, 33, 34, 35, 36, 37, 38, 0, 39, 40,
1610 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1611 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1612 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1613 71, 72, 73, 74, 75, 0, 0, 0, 0, 0,
1614 0, 0, 0, 76, 158, 559, 160, 161, 80, 81,
1615 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1616 135, 136, 203, -520, 649, 0, 0, 0, 368, 0,
1617 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1618 0, 0, 0, 0, 0, 0, -280, -280, 0, 3,
1619 145, 146, 147, 0, 0, 0, 0, 0, 0, 0,
1620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1621 0, 0, 0, 0, 148, 4, 0, 0, 0, 0,
1622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1623 0, 0, 0, 0, 0, 0, 0, 150, 151, 152,
1624 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1625 0, 156, 11, 12, 13, 157, 14, 15, 16, 17,
1626 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1627 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1628 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1629 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1630 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1631 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1632 0, 0, 0, 0, 0, 0, 0, 0, 76, 158,
1633 559, 160, 161, 80, 81, 126, 127, 128, 0, 129,
1634 130, 131, 132, 133, 134, 135, 136, 203, -520, 660,
1635 0, 0, 0, 368, 0, 0, 0, 0, 139, 140,
1636 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1637 0, -280, -280, 0, 3, 145, 146, 147, 0, 0,
1638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1639 0, 0, 0, 0, 0, 0, 0, 0, 0, 148,
1640 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1642 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1643 0, 0, 0, 0, 0, 0, 661, 11, 12, 13,
1644 157, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1645 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1646 32, 33, 34, 35, 36, 37, 38, 0, 39, 40,
1647 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1648 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1649 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1650 71, 72, 73, 74, 75, 0, 0, 0, 0, 0,
1651 0, 0, 0, 76, 158, 559, 160, 161, 80, 81,
1652 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1653 135, 136, 203, -520, 663, 0, 0, 0, 368, 0,
1654 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1656 145, 146, 147, 126, 127, 128, 0, 129, 130, 131,
1657 132, 133, 134, 135, 136, 203, -520, 713, 0, 0,
1658 0, 368, 0, 0, 148, 0, 139, 140, 141, 142,
1659 143, 144, 0, 0, 0, 0, 0, 0, 0, 0,
1660 0, 0, 0, 145, 146, 147, 0, 150, 151, 152,
1661 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1662 0, 664, 0, 0, 0, 157, 0, 148, 0, 0,
1663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1665 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1666 0, 0, 0, 0, 156, 126, 127, 128, 157, 129,
1667 130, 131, 132, 133, 134, 135, 136, 203, -520, 766,
1668 0, 0, 0, 368, 0, 0, 0, 0, 139, 140,
1669 141, 142, 143, 144, 0, 0, 0, 0, 76, 158,
1670 159, 160, 161, 80, 0, 145, 146, 147, 126, 127,
1671 128, 0, 129, 130, 131, 132, 133, 134, 135, 136,
1672 203, -520, 767, 0, 0, 0, 368, 0, 0, 148,
1673 0, 139, 140, 141, 142, 143, 144, 0, 0, 0,
1674 0, 76, 158, 159, 160, 161, 80, 0, 145, 146,
1675 147, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1676 0, 0, 0, 0, 0, 0, 156, 0, 0, 0,
1677 157, 0, 148, 0, 0, 0, 0, 0, 0, 0,
1678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1679 0, 0, 0, 0, 0, 150, 151, 152, 153, 154,
1680 155, 0, 0, 0, 0, 0, 0, 0, 0, 768,
1681 126, 127, 128, 157, 129, 130, 131, 132, 133, 134,
1682 135, 136, 203, -520, 769, 0, 0, 0, 368, 0,
1683 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1684 0, 0, 0, 76, 158, 159, 160, 161, 80, 0,
1685 145, 146, 147, 126, 127, 128, 0, 129, 130, 131,
1686 132, 133, 134, 135, 136, 203, -520, 888, 0, 0,
1687 0, 368, 0, 0, 148, 0, 139, 140, 141, 142,
1688 143, 144, 0, 0, 0, 0, 76, 158, 159, 160,
1689 161, 80, 0, 145, 146, 147, 0, 150, 151, 152,
1690 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1691 0, 156, 0, 0, 0, 157, 0, 148, 0, 0,
1692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1694 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1695 0, 0, 0, 0, 156, 126, 127, 128, 157, 129,
1696 130, 131, 132, 133, 134, 135, 136, 203, -520, 0,
1697 0, 293, 0, 368, 0, 0, 0, 0, 139, 140,
1698 141, 142, 143, 144, 0, 0, 0, 0, 76, 158,
1699 159, 160, 161, 80, 0, 145, 146, 147, 3, 0,
1700 0, 0, 0, 0, 328, 932, 0, 0, 0, 139,
1701 140, 141, 142, 143, 144, 0, 0, 0, 0, 148,
1702 -389, -389, -389, 0, 4, 0, 145, 146, 147, 0,
1703 0, 76, 158, 159, 160, 161, 80, 0, 0, 0,
1704 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1705 148, 0, 0, 0, 0, 0, 156, 0, 0, 0,
1706 157, 11, 12, 13, 0, 14, 15, 16, 17, 18,
1707 19, 20, 21, 22, 23, 0, 24, 25, 26, 27,
1708 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1709 38, 157, 39, 40, 41, 42, 43, 44, 45, 46,
1710 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1711 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1712 67, 68, 69, 70, 71, 72, 73, 74, 75, 293,
1713 0, 0, 0, 76, 158, 159, 160, 161, 80, 120,
1714 0, 0, 0, 81, 0, 0, 0, 0, 0, 0,
1715 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
1716 0, 0, 0, 0, 76, 329, 330, 160, 0, 0,
1717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1718 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
1719 0, 0, 0, 0, 0, 0, 0, 0, 0, -654,
1720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1721 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
1722 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1723 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1724 30, 31, 32, 33, 34, 35, 36, 37, 38, 0,
1725 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1726 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1727 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1728 69, 70, 71, 72, 73, 74, 75, -146, 0, 0,
1729 0, 0, -146, 0, 0, 0, 0, 120, 0, 0,
1730 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1731 0, 0, 0, 3, 0, 0, 0, 0, 0, 328,
1732 -262, 0, 0, 0, 139, 140, 141, 142, 143, 144,
1733 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
1734 0, 145, 146, 147, 0, 0, 0, 0, 0, 0,
1735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1736 0, 0, 0, 0, 0, 148, 0, 0, 0, 0,
1737 0, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1738 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1739 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1740 33, 34, 35, 36, 37, 38, 157, 39, 40, 41,
1741 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1742 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1743 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1744 72, 73, 74, 75, 288, 0, 0, 0, 0, 0,
1745 0, 0, 0, 0, 120, 0, 0, 0, 81, 0,
1746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 3, 0, 0, 0, 0, 0, 0, 0, 0, 76,
1748 329, 330, 160, 0, 0, 0, 0, 0, 0, 0,
1749 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
1750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1752 0, 0, 0, 0, -523, 0, 0, 0, 0, 0,
1753 0, 0, 0, 11, 12, 13, 0, 14, 15, 16,
1754 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
1755 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1756 36, 37, 38, 0, 39, 40, 41, 42, 43, 44,
1757 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1758 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1759 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1760 75, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761 0, 120, 11, 12, 13, 81, 14, 15, 16, 17,
1762 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1763 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1764 37, 38, -661, 39, 40, 41, 42, 43, 44, 45,
1765 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1766 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1767 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1768 0, 0, 0, 0, 0, 0, 0, -663, -663, -663,
1769 120, 0, 0, 0, 81, 0, 0, 0, 0, 0,
1770 0, 0, 0, 0, 0, -663, 0, 0, 0, 0,
1771 0, 0, -280, 0, 0, 0, 0, 0, 0, 0,
1772 0, 0, 2, 0, 0, 0, 0, 0, -663, -663,
1773 -663, 0, -663, -663, -663, -663, -663, -663, -663, -663,
1774 -663, -663, 0, -663, -663, -663, -663, -663, -663, -663,
1775 -663, -663, -663, -663, -663, -663, -663, -663, 0, -663,
1776 -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
1777 -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
1778 -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
1779 -663, -663, -663, -663, -663, -663, 11, 12, 13, 0,
1780 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1781 -663, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1782 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1783 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1784 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1785 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1786 72, 73, 74, 75, 0, 0, 0, 0, 0, 0,
1787 0, 0, 76, 77, 78, 328, 79, 80, 81, 0,
1788 139, 140, 141, 142, 143, 144, 357, 0, 0, 0,
1789 0, 139, 140, 141, 142, 143, 144, 145, 146, 147,
1790 0, 0, 0, 0, 0, 0, 644, 0, 145, 146,
1791 147, 139, 140, 141, 142, 143, 144, 646, 0, 0,
1792 0, 148, 139, 140, 141, 142, 143, 144, 145, 146,
1793 147, 0, 148, 0, 0, 0, 0, 716, 0, 145,
1794 146, 147, 717, 718, 719, 720, 721, 722, 0, 0,
1795 0, 0, 148, 0, 0, 0, 0, 0, 0, 145,
1796 723, 724, 157, 148, 0, 0, 0, 0, 0, 0,
1797 0, 0, 0, 157, 0, 0, 0, 0, 0, 0,
1798 0, 0, 0, 725, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 157, 0, 0, 0, 0, 0, 0,
1800 0, 0, 0, 0, 157, 0, 0, 0, 0, 0,
1801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1802 0, 0, 0, 0, 157, 0, 0, 0, 0, 0,
1803 0, 0, 0, 0, 0, 76, 329, 330, 160, -206,
1804 -206, 0, 0, 0, 0, 0, 76, 329, 330, 160,
1805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1806 0, 0, 0, 0, 0, 0, 76, 329, 330, 160,
1807 0, 0, 0, 0, 0, 0, 0, 76, 329, 330,
1808 160, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1809 0, 0, 0, 0, 0, 0, 0, 76, 726, 727,
1810 728, 0, 0, 0, 0, 11, 12, 13, 0, 14,
1811 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1812 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1813 34, 35, 36, 37, 38, 0, 39, 40, 41, 42,
1814 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1815 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1816 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1817 73, 74, 75, 3, 0, 0, 0, 0, 0, 0,
1818 0, 0, 0, 120, 0, 0, 0, 81, 0, 0,
1819 0, 0, 0, 0, 0, -389, -389, -389, 0, 4,
1820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1823 0, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1824 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1825 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1826 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1827 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1828 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1829 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1830 72, 73, 74, 75, 3, 0, 0, 0, 0, 0,
1831 0, 0, 0, 0, 120, 0, 0, 0, 81, 0,
1832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1833 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1836 0, 0, 0, 0, 0, 0, 0, 11, 12, 13,
1837 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1838 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1839 32, 33, 34, 35, 36, 37, 38, 0, 39, 40,
1840 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1841 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1842 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1843 71, 72, 73, 74, 75, -389, -389, -389, 0, 0,
1844 0, 0, 0, 0, 0, 120, 0, 0, 0, 81,
1845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1847 0, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1848 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1849 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1850 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1851 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1852 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1853 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1854 72, 73, 74, 75, 8, 9, 10, 0, 0, 0,
1855 0, 0, 0, 0, 120, 0, 0, 0, 81, 0,
1856 0, 0, 0, 11, 12, 13, 0, 14, 15, 16,
1857 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
1858 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1859 36, 37, 38, 0, 39, 40, 41, 42, 43, 44,
1860 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1861 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1862 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1863 75, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864 0, 120, 11, 12, 13, 81, 14, 15, 16, 17,
1865 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1866 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1867 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1868 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1869 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1870 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1875 static const short yycheck[] = { 0,
1876 465, 0, 3, 106, 368, 89, 303, 2, 19, 27,
1877 11, 12, 9, 10, 619, 475, 497, 18, 19, 20,
1878 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1879 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1880 41, 42, 43, 411, 412, 403, 404, 48, 49, 50,
1881 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1882 61, 62, 63, 64, 405, 406, 414, 0, 551, 415,
1883 366, 25, 26, 448, 75, 407, 408, 409, 410, 322,
1884 654, 82, 22, 82, 204, 553, 654, 451, 654, 209,
1885 623, 211, 8, 126, 34, 413, 764, 796, 776, 100,
1886 24, 896, 790, 223, 784, 106, 893, 787, 18, 896,
1887 34, 0, 1077, 1078, 24, 116, 117, 118, 113, 902,
1888 1076, 122, 18, 5, 34, 1027, 1028, 122, 86, 87,
1889 21, 215, 706, 26, 25, 18, 674, 138, 706, 1077,
1890 706, 34, 1126, 25, 145, 605, 41, 24, 39, 82,
1891 34, 447, 86, 87, 6, 7, 24, 0, 116, 117,
1892 3, 56, 5, 1147, 85, 1149, 34, 28, 701, 187,
1893 1135, 654, 130, 184, 185, 186, 21, 188, 189, 28,
1894 8, 0, 1138, 44, 3, 24, 654, 886, 7, 8,
1895 9, 10, 987, 82, 989, 44, 8, 980, 1100, 495,
1896 987, 1103, 989, 204, 1142, 502, 24, 204, 1146, 889,
1897 18, 692, 209, 881, 211, 23, 580, 895, 906, 897,
1898 24, 8, 138, 706, 108, 109, 223, 224, 24, 604,
1899 184, 185, 186, 476, 188, 189, 24, 775, 706, 82,
1900 778, 1106, 1107, 1181, 184, 185, 186, 41, 188, 189,
1901 184, 185, 562, 96, 97, 24, 99, 86, 87, 1161,
1902 184, 185, 56, 82, 5, 34, 182, 577, 139, 140,
1903 141, 142, 143, 144, 184, 185, 21, 21, 194, 122,
1904 196, 24, 27, 27, 25, 286, 654, 106, 585, 5,
1905 291, 34, 18, 292, 21, 21, 654, 23, 25, 1164,
1906 18, 302, 303, 122, 305, 306, 654, 603, 654, 225,
1907 138, 24, 992, 654, 133, 920, 184, 185, 319, 138,
1908 801, 21, 654, 443, 325, 25, 138, 328, 18, 625,
1909 37, 38, 629, 366, 32, 33, 654, 156, 706, 26,
1910 424, 28, 9, 10, 51, 52, 347, 644, 706, 646,
1911 18, 138, 347, 21, 182, 184, 185, 44, 706, 15,
1912 706, 18, 190, 182, 21, 706, 194, 368, 196, 302,
1913 182, 190, 21, 192, 706, 194, 25, 196, 190, 862,
1914 29, 16, 194, 916, 196, 204, 319, 21, 706, 16,
1915 209, 25, 211, 967, 16, 182, 864, 225, 24, 967,
1916 26, 967, 16, 190, 223, 224, 225, 194, 34, 196,
1917 22, 180, 181, 225, 447, 184, 185, 25, 187, 716,
1918 28, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1919 74, 18, 0, 22, 21, 3, 37, 38, 225, 7,
1920 439, 184, 185, 184, 185, 186, 443, 188, 189, 450,
1921 51, 52, 453, 24, 98, 26, 100, 22, 102, 460,
1922 104, 462, 495, 464, 465, 109, 467, 29, 184, 185,
1923 186, 472, 188, 189, 475, 119, 18, 121, 21, 21,
1924 475, 482, 25, 302, 967, 781, 305, 306, 307, 857,
1925 858, 849, 850, 494, 24, 39, 497, 27, 499, 967,
1926 319, 502, 40, 346, 34, 21, 325, 55, 424, 25,
1927 851, 852, 860, 18, 82, 861, 21, 450, 92, 163,
1928 453, 853, 854, 855, 856, 26, 92, 28, 5, 400,
1929 401, 402, 21, 49, 50, 19, 25, 204, 106, 5,
1930 22, 859, 209, 44, 211, 21, 21, 5, 25, 25,
1931 25, 370, 25, 26, 122, 28, 223, 224, 22, 378,
1932 21, 380, 926, 562, 25, 133, 24, 25, 26, 18,
1933 603, 44, 21, 49, 50, 21, 34, 18, 577, 25,
1934 21, 582, 1047, 18, 585, 1066, 21, 21, 24, 692,
1935 34, 25, 625, 67, 68, 69, 424, 598, 599, 967,
1936 26, 24, 28, 26, 605, 424, 22, 53, 54, 967,
1937 605, 34, 424, 456, 92, 49, 50, 24, 44, 967,
1938 27, 967, 19, 624, 443, 26, 967, 34, 629, 500,
1939 449, 450, 21, 34, 453, 967, 25, 424, 639, 640,
1940 34, 85, 20, 644, 463, 646, 465, 291, 467, 967,
1941 18, 295, 92, 21, 184, 185, 475, 187, 18, 478,
1942 24, 21, 26, 482, 21, 25, 27, 668, 25, 313,
1943 34, 24, 316, 26, 21, 676, 24, 678, 25, 18,
1944 324, 682, 683, 327, 49, 50, 687, 34, 35, 36,
1945 691, 692, 49, 50, 513, 21, 697, 692, 801, 25,
1946 24, 21, 697, 522, 523, 25, 23, 184, 185, 186,
1947 1007, 188, 189, 25, 26, 716, 28, 21, 184, 185,
1948 186, 25, 188, 189, 18, 21, 184, 185, 186, 25,
1949 188, 189, 44, 561, 302, 53, 54, 305, 306, 307,
1950 184, 185, 561, 562, 188, 189, 18, 18, 781, 561,
1951 21, 319, 21, 18, 25, 574, 25, 325, 577, 578,
1952 21, 184, 185, 186, 25, 188, 189, 190, 22, 612,
1953 771, 8, 9, 10, 561, 21, 443, 184, 185, 25,
1954 187, 25, 815, 184, 185, 186, 605, 188, 189, 21,
1955 184, 185, 186, 25, 188, 189, 119, 21, 121, 800,
1956 801, 25, 803, 21, 448, 25, 801, 25, 24, 132,
1957 133, 455, 135, 18, 137, 138, 460, 320, 462, 1115,
1958 184, 185, 186, 18, 188, 189, 470, 150, 18, 21,
1959 474, 650, 651, 25, 21, 654, 21, 21, 25, 18,
1960 25, 25, 661, 662, 18, 664, 717, 718, 719, 720,
1961 721, 722, 37, 38, 34, 35, 36, 24, 677, 26,
1962 679, 28, 9, 24, 21, 26, 51, 52, 25, 688,
1963 42, 43, 691, 692, 693, 1171, 24, 44, 26, 21,
1964 47, 48, 450, 25, 11, 453, 21, 706, 972, 19,
1965 25, 892, 34, 35, 36, 463, 21, 465, 899, 467,
1966 25, 138, 37, 38, 21, 20, 21, 475, 25, 18,
1967 478, 97, 996, 99, 482, 24, 51, 52, 21, 22,
1968 29, 30, 31, 32, 33, 34, 25, 5, 32, 33,
1969 773, 25, 26, 776, 28, 579, 24, 46, 47, 48,
1970 21, 34, 35, 36, 25, 182, 24, 25, 26, 768,
1971 44, 32, 33, 190, 522, 523, 34, 194, 21, 196,
1972 604, 70, 25, 1066, 21, 49, 50, 204, 25, 32,
1973 33, 24, 209, 21, 211, 846, 847, 848, 88, 623,
1974 981, 11, 801, 984, 628, 23, 223, 224, 225, 25,
1975 21, 24, 811, 26, 25, 28, 21, 53, 54, 1000,
1976 25, 1002, 111, 21, 21, 1000, 1007, 25, 25, 1010,
1977 1011, 44, 656, 21, 47, 48, 19, 25, 1017, 57,
1978 58, 59, 60, 61, 62, 63, 64, 65, 66, 20,
1979 21, 21, 72, 73, 74, 25, 19, 605, 78, 79,
1980 80, 81, 82, 83, 84, 19, 1047, 19, 1049, 1050,
1981 893, 984, 895, 896, 897, 24, 21, 21, 18, 930,
1982 25, 25, 1061, 21, 24, 1066, 88, 1000, 27, 29,
1983 30, 31, 32, 33, 34, 184, 185, 186, 187, 184,
1984 185, 186, 1115, 188, 189, 729, 46, 47, 48, 8,
1985 20, 21, 21, 72, 73, 74, 25, 600, 1131, 78,
1986 79, 80, 81, 82, 83, 84, 72, 73, 74, 677,
1987 70, 679, 1113, 126, 22, 1116, 935, 936, 1119, 21,
1988 688, 32, 33, 691, 692, 18, 139, 140, 141, 142,
1989 143, 144, 21, 146, 147, 21, 25, 21, 1171, 360,
1990 22, 25, 21, 22, 987, 789, 989, 24, 967, 184,
1991 185, 111, 72, 73, 74, 974, 78, 79, 80, 81,
1992 82, 83, 84, 384, 25, 984, 11, 24, 389, 390,
1993 391, 392, 393, 394, 395, 396, 397, 398, 399, 998,
1994 24, 1000, 24, 1116, 1003, 25, 27, 424, 51, 52,
1995 53, 23, 20, 19, 23, 20, 19, 1016, 5, 420,
1996 21, 1202, 20, 25, 24, 24, 443, 1026, 1027, 1028,
1997 27, 22, 1213, 25, 20, 18, 1035, 136, 27, 138,
1998 25, 18, 21, 25, 184, 185, 186, 187, 1047, 27,
1999 25, 25, 25, 801, 24, 39, 25, 29, 88, 40,
2000 884, 885, 55, 811, 25, 24, 18, 1066, 892, 25,
2001 25, 25, 25, 21, 18, 18, 177, 1076, 1077, 1078,
2002 21, 178, 177, 182, 18, 189, 178, 22, 21, 20,
2003 20, 190, 916, 88, 88, 194, 25, 196, 88, 25,
2004 183, 1100, 1101, 1102, 1103, 204, 24, 1106, 1107, 20,
2005 18, 73, 192, 1112, 23, 20, 0, 1116, 25, 25,
2006 88, 88, 88, 88, 27, 88, 225, 27, 88, 27,
2007 88, 0, 82, 325, 765, 887, 1135, 997, 1092, 1138,
2008 1025, 881, 913, 1142, 561, 1144, 1145, 1146, 57, 58,
2009 59, 60, 61, 62, 63, 64, 65, 66, 982, 1161,
2010 998, 1112, 1161, 1162, 1163, 1164, 467, 830, 1116, 585,
2011 679, 801, 677, 366, 113, 691, 10, 224, 347, 1071,
2012 513, 706, 1181, 424, 967, -1, -1, 935, 936, -1,
2013 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2014 -1, -1, -1, 8, 9, 10, -1, 400, 401, 402,
2015 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
2016 413, 414, 415, -1, -1, 908, -1, 1051, -1, 328,
2017 -1, -1, -1, -1, -1, 636, 984, 336, 337, 338,
2018 339, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2019 -1, -1, 1000, -1, 447, 1003, -1, -1, 357, -1,
2020 -1, -1, -1, -1, -1, -1, -1, -1, -1, 368,
2021 -1, -1, -1, -1, -1, -1, -1, 8, 9, 10,
2022 681, -1, -1, -1, -1, -1, 385, -1, -1, -1,
2023 370, 974, -1, -1, -1, -1, -1, -1, 378, 1047,
2024 380, -1, 495, -1, -1, -1, -1, 500, -1, -1,
2025 993, -1, -1, -1, -1, 998, -1, -1, 1066, -1,
2026 -1, -1, -1, -1, -1, 424, -1, -1, -1, -1,
2027 -1, -1, 431, 138, 1017, -1, -1, -1, -1, -1,
2028 1023, -1, -1, -1, -1, 1169, -1, -1, -1, 1032,
2029 -1, -1, -1, 1101, 1102, -1, -1, -1, 551, -1,
2030 553, -1, 555, 556, -1, -1, -1, -1, 1116, 449,
2031 -1, -1, -1, -1, -1, -1, -1, 182, 1061, 1062,
2032 -1, 1064, -1, 784, -1, 190, 787, -1, -1, 194,
2033 -1, 196, -1, 8, 9, 10, 1144, 1145, -1, 204,
2034 1083, -1, -1, -1, 209, -1, 211, 138, -1, -1,
2035 603, 8, 9, 10, 1162, 1163, -1, -1, 223, 224,
2036 225, -1, -1, -1, -1, -1, -1, 1110, 829, 830,
2037 -1, -1, 625, 513, 835, 836, 837, 838, 839, 840,
2038 841, 842, 843, 844, 845, -1, -1, -1, -1, 1132,
2039 -1, 182, -1, 552, -1, -1, -1, -1, -1, 190,
2040 -1, 654, 561, 194, -1, 196, -1, -1, -1, -1,
2041 -1, -1, -1, 204, 205, -1, -1, -1, 209, -1,
2042 211, -1, 562, 1166, -1, -1, -1, -1, 889, -1,
2043 -1, -1, 223, 224, 225, -1, -1, 577, 578, 8,
2044 9, 10, 8, 9, 10, -1, -1, -1, -1, -1,
2045 -1, -1, -1, 706, -1, -1, -1, -1, -1, -1,
2046 619, -1, -1, 138, 717, 718, 719, 720, 721, 722,
2047 723, 724, -1, -1, -1, -1, -1, -1, -1, -1,
2048 -1, 138, -1, -1, -1, 644, -1, 646, -1, -1,
2049 -1, -1, -1, 652, -1, -1, 655, -1, -1, -1,
2050 -1, -1, -1, -1, -1, -1, -1, 182, -1, -1,
2051 650, 651, -1, -1, -1, 190, -1, -1, -1, 194,
2052 -1, 196, 662, -1, -1, 182, -1, -1, 781, 204,
2053 -1, 992, -1, 190, 209, -1, 211, 194, -1, 196,
2054 -1, -1, -1, -1, -1, -1, 705, 204, 223, 224,
2055 225, -1, 209, 693, 211, -1, -1, 716, -1, 424,
2056 -1, -1, 815, -1, -1, -1, 223, 224, 225, 138,
2057 -1, -1, 138, -1, -1, -1, -1, -1, 443, -1,
2058 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2059 -1, -1, 383, 846, 847, 848, 849, 850, 851, 852,
2060 853, 854, 855, 856, 857, 858, 859, 860, 861, 862,
2061 -1, 864, -1, 182, -1, -1, 182, -1, -1, -1,
2062 -1, 190, -1, -1, 190, 194, -1, 196, 194, -1,
2063 196, -1, -1, 424, -1, 204, 19, 20, 204, -1,
2064 209, 24, 211, 209, -1, 211, 29, 30, 31, 32,
2065 33, 34, 443, -1, 223, 224, 225, 223, 224, 225,
2066 -1, -1, -1, 46, 47, 48, -1, -1, -1, -1,
2067 -1, -1, 831, -1, -1, -1, -1, 930, -1, -1,
2068 -1, -1, -1, -1, -1, -1, -1, 70, -1, -1,
2069 -1, -1, -1, -1, -1, -1, 561, -1, -1, -1,
2070 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2071 -1, -1, -1, -1, 967, -1, -1, -1, -1, -1,
2072 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1,
2073 -1, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2074 14, 15, 16, 17, 18, 19, 20, -1, -1, 424,
2075 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2076 34, 920, -1, -1, -1, -1, -1, 424, 443, -1,
2077 561, -1, 46, 47, 48, -1, -1, -1, -1, -1,
2078 -1, -1, -1, -1, -1, -1, 443, -1, -1, -1,
2079 -1, -1, -1, -1, -1, -1, 70, -1, -1, -1,
2080 -1, 184, 185, 186, 187, -1, 965, -1, -1, -1,
2081 -1, -1, 0, 1, -1, -1, -1, -1, -1, 93,
2082 94, 95, 96, 97, 98, -1, -1, -1, -1, -1,
2083 -1, -1, -1, 107, -1, -1, 24, 111, -1, -1,
2084 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
2085 -1, -1, -1, -1, -1, 424, -1, 45, 424, -1,
2086 -1, -1, 1115, -1, -1, -1, -1, -1, -1, -1,
2087 -1, -1, -1, -1, 443, -1, -1, 443, 1131, 67,
2088 68, 69, -1, 71, -1, -1, 561, 75, 76, 77,
2089 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2090 -1, 89, 90, 91, 561, -1, -1, -1, -1, -1,
2091 184, 185, 186, 187, 188, 189, -1, -1, 1171, -1,
2092 108, 109, 110, -1, 112, 113, 114, 115, 116, 117,
2093 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2094 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2095 -1, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2096 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2097 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2098 168, 169, 170, 171, 172, 173, 174, 175, 0, 1,
2099 -1, -1, 561, -1, -1, 561, 184, 185, 186, -1,
2100 188, 189, 190, 19, -1, -1, -1, -1, 24, -1,
2101 -1, -1, 24, 29, 30, 31, 32, 33, 34, -1,
2102 -1, -1, 34, -1, -1, -1, -1, -1, -1, -1,
2103 46, 47, 48, 45, -1, -1, -1, -1, -1, -1,
2104 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2105 -1, -1, -1, -1, 70, 67, 68, 69, -1, 71,
2106 -1, -1, -1, 75, 76, 77, -1, -1, -1, -1,
2107 -1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
2108 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2109 -1, -1, -1, -1, -1, 111, 108, 109, 110, -1,
2110 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2111 -1, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2112 132, 133, 134, 135, 136, 137, -1, 139, 140, 141,
2113 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2114 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2115 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2116 172, 173, 174, 175, -1, -1, -1, -1, 184, 185,
2117 186, 187, 184, 185, 186, 1, 188, 189, 190, -1,
2118 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2119 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2120 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2121 -1, -1, -1, -1, -1, -1, 42, 43, -1, 45,
2122 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2123 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2124 -1, 67, 68, 69, 70, 71, -1, -1, -1, -1,
2125 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2126 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
2127 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2128 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2129 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2130 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2131 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2132 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2133 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2134 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2135 -1, -1, -1, -1, -1, -1, -1, -1, 184, 185,
2136 186, 187, 188, 189, 190, 1, -1, -1, -1, -1,
2137 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2138 16, 17, 18, 19, -1, -1, -1, -1, 24, -1,
2139 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2140 -1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
2141 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2142 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2143 -1, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2144 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2145 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
2146 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2147 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2148 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2149 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2150 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2151 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2152 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2153 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2154 -1, -1, -1, -1, -1, -1, -1, -1, 184, 185,
2155 186, 187, 188, 189, 190, 1, -1, -1, -1, -1,
2156 6, 7, 8, -1, -1, 11, 12, 13, 14, 15,
2157 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2158 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2159 -1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
2160 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2161 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2162 -1, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2163 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2164 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
2165 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2166 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2167 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2168 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2169 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2170 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2171 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2172 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2173 -1, -1, -1, -1, -1, -1, -1, -1, 184, 185,
2174 186, 187, 188, 189, 190, 1, -1, -1, -1, -1,
2175 6, 7, 8, -1, -1, 11, 12, 13, 14, 15,
2176 16, 17, 18, 19, 20, -1, -1, -1, 24, 25,
2177 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2178 -1, -1, -1, -1, -1, -1, 42, 43, 1, -1,
2179 46, 47, 48, 6, 7, 8, -1, 10, 11, 12,
2180 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2181 -1, 24, -1, -1, 70, -1, 29, 30, 31, 32,
2182 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2183 43, -1, -1, 46, 47, 48, 92, 93, 94, 95,
2184 96, 97, 98, -1, -1, -1, -1, -1, 19, -1,
2185 -1, 107, -1, 24, -1, 111, -1, 70, 29, 30,
2186 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2187 -1, -1, -1, -1, -1, 46, 47, 48, -1, 92,
2188 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2189 -1, -1, -1, -1, 107, -1, -1, -1, 111, 70,
2190 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2191 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2192 -1, -1, -1, -1, -1, -1, -1, -1, 184, 185,
2193 186, 187, 188, 189, -1, -1, 1, -1, -1, -1,
2194 111, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2195 15, 16, 17, 18, 19, -1, -1, -1, -1, 24,
2196 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2197 -1, 184, 185, 186, 187, 188, 189, 42, 43, 1,
2198 -1, 46, 47, 48, 6, 7, 8, -1, -1, 11,
2199 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2200 -1, -1, 24, -1, -1, 70, -1, 29, 30, 31,
2201 32, 33, 34, 184, 185, 186, 187, -1, -1, -1,
2202 42, 43, -1, -1, 46, 47, 48, 92, 93, 94,
2203 95, 96, 97, 98, -1, -1, -1, -1, -1, -1,
2204 -1, -1, 107, -1, 24, 25, 111, -1, 70, 29,
2205 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2206 -1, -1, -1, -1, -1, -1, 46, 47, 48, -1,
2207 92, 93, 94, 95, 96, 97, 98, -1, -1, -1,
2208 -1, -1, -1, -1, -1, 107, -1, -1, -1, 111,
2209 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2210 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2211 -1, -1, -1, -1, -1, -1, -1, -1, -1, 184,
2212 185, 186, 187, 188, 189, -1, -1, 1, -1, -1,
2213 -1, 111, 6, 7, 8, -1, 10, 11, 12, 13,
2214 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2215 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2216 34, -1, 184, 185, 186, 187, 188, 189, 42, 43,
2217 1, -1, 46, 47, 48, 6, 7, 8, -1, -1,
2218 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2219 -1, -1, -1, 24, -1, -1, 70, -1, 29, 30,
2220 31, 32, 33, 34, 184, 185, 186, 187, -1, -1,
2221 -1, 42, 43, -1, -1, 46, 47, 48, -1, 93,
2222 94, 95, 96, 97, 98, -1, -1, -1, -1, -1,
2223 -1, -1, -1, 107, -1, 24, -1, 111, 27, 70,
2224 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2225 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2226 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2227 -1, -1, -1, -1, -1, -1, 107, -1, -1, -1,
2228 111, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2229 -1, -1, -1, -1, -1, -1, -1, 24, -1, -1,
2230 27, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2231 184, 185, 186, 187, 188, 189, -1, -1, 1, 46,
2232 47, 48, 111, 6, 7, 8, -1, 10, 11, 12,
2233 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2234 -1, 24, -1, 70, -1, -1, 29, 30, 31, 32,
2235 33, 34, -1, 184, 185, 186, 187, 188, 189, 42,
2236 43, -1, -1, 46, 47, 48, -1, -1, -1, -1,
2237 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2238 -1, -1, -1, -1, 111, -1, -1, 70, -1, -1,
2239 -1, -1, -1, -1, -1, 184, 185, 186, 187, -1,
2240 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2241 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2242 -1, -1, -1, -1, 107, 6, 7, 8, 111, 10,
2243 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2244 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2245 31, 32, 33, 34, -1, -1, -1, 184, 185, 186,
2246 187, 42, 43, -1, 45, 46, 47, 48, -1, -1,
2247 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2248 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2249 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2250 -1, 184, 185, 186, 187, 188, 189, -1, -1, -1,
2251 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2252 -1, -1, -1, -1, -1, -1, 107, 108, 109, 110,
2253 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2254 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2255 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2256 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2257 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2258 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2259 171, 172, 173, 174, 175, -1, -1, -1, -1, -1,
2260 -1, -1, -1, 184, 185, 186, 187, 188, 189, 190,
2261 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2262 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2263 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2264 -1, -1, -1, -1, -1, -1, 42, 43, -1, 45,
2265 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2266 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2267 -1, -1, -1, -1, 70, 71, -1, -1, -1, -1,
2268 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2269 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
2270 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2271 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2272 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2273 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2274 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2275 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2276 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2277 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2278 -1, -1, -1, -1, -1, -1, -1, -1, 184, 185,
2279 186, 187, 188, 189, 190, 6, 7, 8, -1, 10,
2280 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2281 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2282 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2283 -1, 42, 43, -1, 45, 46, 47, 48, -1, -1,
2284 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2285 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2286 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2287 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2288 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2289 -1, -1, -1, -1, -1, -1, 107, 108, 109, 110,
2290 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2291 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2292 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2293 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2294 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2295 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2296 171, 172, 173, 174, 175, -1, -1, -1, -1, -1,
2297 -1, -1, -1, 184, 185, 186, 187, 188, 189, 190,
2298 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2299 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2300 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2301 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2302 46, 47, 48, 6, 7, 8, -1, 10, 11, 12,
2303 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2304 -1, 24, -1, -1, 70, -1, 29, 30, 31, 32,
2305 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2306 -1, -1, -1, 46, 47, 48, -1, 93, 94, 95,
2307 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2308 -1, 107, -1, -1, -1, 111, -1, 70, -1, -1,
2309 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2310 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2311 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2312 -1, -1, -1, -1, 107, 6, 7, 8, 111, 10,
2313 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2314 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2315 31, 32, 33, 34, -1, -1, -1, -1, 184, 185,
2316 186, 187, 188, 189, -1, 46, 47, 48, 6, 7,
2317 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2318 18, 19, 20, -1, -1, -1, 24, -1, -1, 70,
2319 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2320 -1, 184, 185, 186, 187, 188, 189, -1, 46, 47,
2321 48, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2322 -1, -1, -1, -1, -1, -1, 107, -1, -1, -1,
2323 111, -1, 70, -1, -1, -1, -1, -1, -1, -1,
2324 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2325 -1, -1, -1, -1, -1, 93, 94, 95, 96, 97,
2326 98, -1, -1, -1, -1, -1, -1, -1, -1, 107,
2327 6, 7, 8, 111, 10, 11, 12, 13, 14, 15,
2328 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2329 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2330 -1, -1, -1, 184, 185, 186, 187, 188, 189, -1,
2331 46, 47, 48, 6, 7, 8, -1, 10, 11, 12,
2332 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2333 -1, 24, -1, -1, 70, -1, 29, 30, 31, 32,
2334 33, 34, -1, -1, -1, -1, 184, 185, 186, 187,
2335 188, 189, -1, 46, 47, 48, -1, 93, 94, 95,
2336 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2337 -1, 107, -1, -1, -1, 111, -1, 70, -1, -1,
2338 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2339 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2340 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2341 -1, -1, -1, -1, 107, 6, 7, 8, 111, 10,
2342 11, 12, 13, 14, 15, 16, 17, 18, 19, -1,
2343 -1, 18, -1, 24, -1, -1, -1, -1, 29, 30,
2344 31, 32, 33, 34, -1, -1, -1, -1, 184, 185,
2345 186, 187, 188, 189, -1, 46, 47, 48, 45, -1,
2346 -1, -1, -1, -1, 24, 25, -1, -1, -1, 29,
2347 30, 31, 32, 33, 34, -1, -1, -1, -1, 70,
2348 67, 68, 69, -1, 71, -1, 46, 47, 48, -1,
2349 -1, 184, 185, 186, 187, 188, 189, -1, -1, -1,
2350 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2351 70, -1, -1, -1, -1, -1, 107, -1, -1, -1,
2352 111, 108, 109, 110, -1, 112, 113, 114, 115, 116,
2353 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
2354 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2355 137, 111, 139, 140, 141, 142, 143, 144, 145, 146,
2356 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2357 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2358 167, 168, 169, 170, 171, 172, 173, 174, 175, 18,
2359 -1, -1, -1, 184, 185, 186, 187, 188, 189, 186,
2360 -1, -1, -1, 190, -1, -1, -1, -1, -1, -1,
2361 -1, -1, -1, -1, -1, -1, 45, -1, -1, -1,
2362 -1, -1, -1, -1, 184, 185, 186, 187, -1, -1,
2363 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2364 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
2365 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2366 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2367 -1, -1, -1, -1, -1, -1, -1, -1, -1, 108,
2368 109, 110, -1, 112, 113, 114, 115, 116, 117, 118,
2369 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
2370 129, 130, 131, 132, 133, 134, 135, 136, 137, -1,
2371 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2372 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2373 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2374 169, 170, 171, 172, 173, 174, 175, 19, -1, -1,
2375 -1, -1, 24, -1, -1, -1, -1, 186, -1, -1,
2376 -1, 190, -1, -1, -1, -1, -1, -1, -1, -1,
2377 -1, -1, -1, 45, -1, -1, -1, -1, -1, 24,
2378 25, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2379 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2380 -1, 46, 47, 48, -1, -1, -1, -1, -1, -1,
2381 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2382 -1, -1, -1, -1, -1, 70, -1, -1, -1, -1,
2383 -1, -1, -1, -1, -1, -1, 108, 109, 110, -1,
2384 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2385 -1, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2386 132, 133, 134, 135, 136, 137, 111, 139, 140, 141,
2387 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2388 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2389 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2390 172, 173, 174, 175, 19, -1, -1, -1, -1, -1,
2391 -1, -1, -1, -1, 186, -1, -1, -1, 190, -1,
2392 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2393 45, -1, -1, -1, -1, -1, -1, -1, -1, 184,
2394 185, 186, 187, -1, -1, -1, -1, -1, -1, -1,
2395 -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
2396 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2397 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2398 -1, -1, -1, -1, 20, -1, -1, -1, -1, -1,
2399 -1, -1, -1, 108, 109, 110, -1, 112, 113, 114,
2400 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
2401 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2402 135, 136, 137, -1, 139, 140, 141, 142, 143, 144,
2403 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2404 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2405 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2406 175, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2407 -1, 186, 108, 109, 110, 190, 112, 113, 114, 115,
2408 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2409 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2410 136, 137, 22, 139, 140, 141, 142, 143, 144, 145,
2411 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2412 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2413 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2414 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
2415 186, -1, -1, -1, 190, -1, -1, -1, -1, -1,
2416 -1, -1, -1, -1, -1, 85, -1, -1, -1, -1,
2417 -1, -1, 24, -1, -1, -1, -1, -1, -1, -1,
2418 -1, -1, 34, -1, -1, -1, -1, -1, 108, 109,
2419 110, -1, 112, 113, 114, 115, 116, 117, 118, 119,
2420 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2421 130, 131, 132, 133, 134, 135, 136, 137, -1, 139,
2422 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2423 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2424 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2425 170, 171, 172, 173, 174, 175, 108, 109, 110, -1,
2426 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2427 190, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2428 132, 133, 134, 135, 136, 137, -1, 139, 140, 141,
2429 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2430 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2431 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2432 172, 173, 174, 175, -1, -1, -1, -1, -1, -1,
2433 -1, -1, 184, 185, 186, 24, 188, 189, 190, -1,
2434 29, 30, 31, 32, 33, 34, 24, -1, -1, -1,
2435 -1, 29, 30, 31, 32, 33, 34, 46, 47, 48,
2436 -1, -1, -1, -1, -1, -1, 24, -1, 46, 47,
2437 48, 29, 30, 31, 32, 33, 34, 24, -1, -1,
2438 -1, 70, 29, 30, 31, 32, 33, 34, 46, 47,
2439 48, -1, 70, -1, -1, -1, -1, 24, -1, 46,
2440 47, 48, 29, 30, 31, 32, 33, 34, -1, -1,
2441 -1, -1, 70, -1, -1, -1, -1, -1, -1, 46,
2442 47, 48, 111, 70, -1, -1, -1, -1, -1, -1,
2443 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1,
2444 -1, -1, -1, 70, -1, -1, -1, -1, -1, -1,
2445 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1,
2446 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1,
2447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2448 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1,
2449 -1, -1, -1, -1, -1, 184, 185, 186, 187, 42,
2450 43, -1, -1, -1, -1, -1, 184, 185, 186, 187,
2451 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2452 -1, -1, -1, -1, -1, -1, 184, 185, 186, 187,
2453 -1, -1, -1, -1, -1, -1, -1, 184, 185, 186,
2454 187, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2455 -1, -1, -1, -1, -1, -1, -1, 184, 185, 186,
2456 187, -1, -1, -1, -1, 108, 109, 110, -1, 112,
2457 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
2458 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2459 133, 134, 135, 136, 137, -1, 139, 140, 141, 142,
2460 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2461 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2462 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2463 173, 174, 175, 45, -1, -1, -1, -1, -1, -1,
2464 -1, -1, -1, 186, -1, -1, -1, 190, -1, -1,
2465 -1, -1, -1, -1, -1, 67, 68, 69, -1, 71,
2466 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2467 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2468 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2469 -1, -1, -1, -1, -1, -1, 108, 109, 110, -1,
2470 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2471 -1, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2472 132, 133, 134, 135, 136, 137, -1, 139, 140, 141,
2473 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2474 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2475 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2476 172, 173, 174, 175, 45, -1, -1, -1, -1, -1,
2477 -1, -1, -1, -1, 186, -1, -1, -1, 190, -1,
2478 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2479 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2480 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2481 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2482 -1, -1, -1, -1, -1, -1, -1, 108, 109, 110,
2483 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2484 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2485 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2486 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2487 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2488 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2489 171, 172, 173, 174, 175, 67, 68, 69, -1, -1,
2490 -1, -1, -1, -1, -1, 186, -1, -1, -1, 190,
2491 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2492 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2493 -1, -1, -1, -1, -1, -1, 108, 109, 110, -1,
2494 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2495 -1, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2496 132, 133, 134, 135, 136, 137, -1, 139, 140, 141,
2497 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2498 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2499 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2500 172, 173, 174, 175, 89, 90, 91, -1, -1, -1,
2501 -1, -1, -1, -1, 186, -1, -1, -1, 190, -1,
2502 -1, -1, -1, 108, 109, 110, -1, 112, 113, 114,
2503 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
2504 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2505 135, 136, 137, -1, 139, 140, 141, 142, 143, 144,
2506 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2507 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2508 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2509 175, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2510 -1, 186, 108, 109, 110, 190, 112, 113, 114, 115,
2511 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2512 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2513 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2514 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2515 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2516 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2517 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2518 186, -1, -1, -1, 190
2520 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2521 #line 3 "/usr/lib/bison.simple"
2522 /* This file comes from bison-1.28. */
2524 /* Skeleton output parser for bison,
2525 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2527 This program is free software; you can redistribute it and/or modify
2528 it under the terms of the GNU General Public License as published by
2529 the Free Software Foundation; either version 2, or (at your option)
2532 This program is distributed in the hope that it will be useful,
2533 but WITHOUT ANY WARRANTY; without even the implied warranty of
2534 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2535 GNU General Public License for more details.
2537 You should have received a copy of the GNU General Public License
2538 along with this program; if not, write to the Free Software
2539 Foundation, Inc., 59 Temple Place - Suite 330,
2540 Boston, MA 02111-1307, USA. */
2542 /* As a special exception, when this file is copied by Bison into a
2543 Bison output file, you may use that output file without restriction.
2544 This special exception was added by the Free Software Foundation
2545 in version 1.24 of Bison. */
2547 /* This is the parser code that is written into each bison parser
2548 when the %semantic_parser declaration is not specified in the grammar.
2549 It was written by Richard Stallman by simplifying the hairy parser
2550 used when %semantic_parser is specified. */
2552 #ifndef YYSTACK_USE_ALLOCA
2554 #define YYSTACK_USE_ALLOCA
2555 #else /* alloca not defined */
2557 #define YYSTACK_USE_ALLOCA
2558 #define alloca __builtin_alloca
2559 #else /* not GNU C. */
2560 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
2561 #define YYSTACK_USE_ALLOCA
2563 #else /* not sparc */
2564 /* We think this test detects Watcom and Microsoft C. */
2565 /* This used to test MSDOS, but that is a bad idea
2566 since that symbol is in the user namespace. */
2567 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
2568 #if 0 /* No need for malloc.h, which pollutes the namespace;
2569 instead, just don't use alloca. */
2572 #else /* not MSDOS, or __TURBOC__ */
2574 /* I don't know what this was needed for, but it pollutes the namespace.
2575 So I turned it off. rms, 2 May 1997. */
2576 /* #include <malloc.h> */
2578 #define YYSTACK_USE_ALLOCA
2579 #else /* not MSDOS, or __TURBOC__, or _AIX */
2581 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
2582 and on HPUX 10. Eventually we can turn this on. */
2583 #define YYSTACK_USE_ALLOCA
2584 #define alloca __builtin_alloca
2587 #endif /* not _AIX */
2588 #endif /* not MSDOS, or __TURBOC__ */
2589 #endif /* not sparc */
2590 #endif /* not GNU C */
2591 #endif /* alloca not defined */
2592 #endif /* YYSTACK_USE_ALLOCA not defined */
2594 #ifdef YYSTACK_USE_ALLOCA
2595 #define YYSTACK_ALLOC alloca
2597 #define YYSTACK_ALLOC malloc
2600 /* Note: there must be only one dollar sign in this file.
2601 It is replaced by the list of actions, each action
2602 as one case of the switch. */
2604 #define yyerrok (yyerrstatus = 0)
2605 #define yyclearin (yychar = YYEMPTY)
2608 #define YYACCEPT goto yyacceptlab
2609 #define YYABORT goto yyabortlab
2610 #define YYERROR goto yyerrlab1
2611 /* Like YYERROR except do call yyerror.
2612 This remains here temporarily to ease the
2613 transition to the new meaning of YYERROR, for GCC.
2614 Once GCC version 2 has supplanted version 1, this can go. */
2615 #define YYFAIL goto yyerrlab
2616 #define YYRECOVERING() (!!yyerrstatus)
2617 #define YYBACKUP(token, value) \
2619 if (yychar == YYEMPTY && yylen == 1) \
2620 { yychar = (token), yylval = (value); \
2621 yychar1 = YYTRANSLATE (yychar); \
2626 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2630 #define YYERRCODE 256
2633 #define YYLEX yylex()
2639 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2641 #define YYLEX yylex(&yylval, &yylloc)
2643 #else /* not YYLSP_NEEDED */
2645 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2647 #define YYLEX yylex(&yylval)
2649 #endif /* not YYLSP_NEEDED */
2652 /* If nonreentrant, generate the variables here */
2656 int yychar; /* the lookahead symbol */
2657 YYSTYPE yylval; /* the semantic value of the */
2658 /* lookahead symbol */
2661 YYLTYPE yylloc; /* location data for the lookahead */
2665 int yynerrs; /* number of parse errors so far */
2666 #endif /* not YYPURE */
2669 int yydebug; /* nonzero means print parse trace */
2670 /* Since this is uninitialized, it does not stop multiple parsers
2674 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2677 #define YYINITDEPTH 200
2680 /* YYMAXDEPTH is the maximum size the stacks can grow to
2681 (effective only if the built-in stack extension method is used). */
2688 #define YYMAXDEPTH 10000
2691 /* Define __yy_memcpy. Note that the size argument
2692 should be passed with type unsigned int, because that is what the non-GCC
2693 definitions require. With GCC, __builtin_memcpy takes an arg
2694 of type size_t, but it can handle unsigned int. */
2696 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2697 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2698 #else /* not GNU C or C++ */
2701 /* This is the most reliable way to avoid incompatibilities
2702 in available built-in functions on various systems. */
2704 __yy_memcpy (to, from, count)
2709 register char *f = from;
2710 register char *t = to;
2711 register int i = count;
2717 #else /* __cplusplus */
2719 /* This is the most reliable way to avoid incompatibilities
2720 in available built-in functions on various systems. */
2722 __yy_memcpy (char *to, char *from, unsigned int count)
2724 register char *t = to;
2725 register char *f = from;
2726 register int i = count;
2735 #line 217 "/usr/lib/bison.simple"
2737 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2738 into yyparse. The argument should have type void *.
2739 It should actually point to an object.
2740 Grammar actions can access the variable by casting it
2741 to the proper pointer type. */
2743 #ifdef YYPARSE_PARAM
2745 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2746 #define YYPARSE_PARAM_DECL
2747 #else /* not __cplusplus */
2748 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2749 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2750 #endif /* not __cplusplus */
2751 #else /* not YYPARSE_PARAM */
2752 #define YYPARSE_PARAM_ARG
2753 #define YYPARSE_PARAM_DECL
2754 #endif /* not YYPARSE_PARAM */
2756 /* Prevent warning if -Wstrict-prototypes. */
2758 #ifdef YYPARSE_PARAM
2759 int yyparse (void *);
2766 yyparse(YYPARSE_PARAM_ARG)
2769 register int yystate;
2771 register short *yyssp;
2772 register YYSTYPE *yyvsp;
2773 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2774 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2776 short yyssa[YYINITDEPTH]; /* the state stack */
2777 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2779 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2780 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2783 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2784 YYLTYPE *yyls = yylsa;
2787 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2789 #define YYPOPSTACK (yyvsp--, yyssp--)
2792 int yystacksize = YYINITDEPTH;
2793 int yyfree_stacks = 0;
2804 YYSTYPE yyval; /* the variable used to return */
2805 /* semantic values from the action */
2812 fprintf(stderr, "Starting parse\n");
2818 yychar = YYEMPTY; /* Cause a token to be read. */
2820 /* Initialize stack pointers.
2821 Waste one element of value and location stack
2822 so that they stay on the same level as the state stack.
2823 The wasted elements are never initialized. */
2831 /* Push a new state, which is found in yystate . */
2832 /* In all cases, when you get here, the value and location stacks
2833 have just been pushed. so pushing a state here evens the stacks. */
2838 if (yyssp >= yyss + yystacksize - 1)
2840 /* Give user a chance to reallocate the stack */
2841 /* Use copies of these so that the &'s don't force the real ones into memory. */
2842 YYSTYPE *yyvs1 = yyvs;
2843 short *yyss1 = yyss;
2845 YYLTYPE *yyls1 = yyls;
2848 /* Get the current used size of the three stacks, in elements. */
2849 int size = yyssp - yyss + 1;
2852 /* Each stack pointer address is followed by the size of
2853 the data in use in that stack, in bytes. */
2855 /* This used to be a conditional around just the two extra args,
2856 but that might be undefined if yyoverflow is a macro. */
2857 yyoverflow("parser stack overflow",
2858 &yyss1, size * sizeof (*yyssp),
2859 &yyvs1, size * sizeof (*yyvsp),
2860 &yyls1, size * sizeof (*yylsp),
2863 yyoverflow("parser stack overflow",
2864 &yyss1, size * sizeof (*yyssp),
2865 &yyvs1, size * sizeof (*yyvsp),
2869 yyss = yyss1; yyvs = yyvs1;
2873 #else /* no yyoverflow */
2874 /* Extend the stack our own way. */
2875 if (yystacksize >= YYMAXDEPTH)
2877 yyerror("parser stack overflow");
2889 if (yystacksize > YYMAXDEPTH)
2890 yystacksize = YYMAXDEPTH;
2891 #ifndef YYSTACK_USE_ALLOCA
2894 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
2895 __yy_memcpy ((char *)yyss, (char *)yyss1,
2896 size * (unsigned int) sizeof (*yyssp));
2897 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
2898 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
2899 size * (unsigned int) sizeof (*yyvsp));
2901 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
2902 __yy_memcpy ((char *)yyls, (char *)yyls1,
2903 size * (unsigned int) sizeof (*yylsp));
2905 #endif /* no yyoverflow */
2907 yyssp = yyss + size - 1;
2908 yyvsp = yyvs + size - 1;
2910 yylsp = yyls + size - 1;
2915 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2918 if (yyssp >= yyss + yystacksize - 1)
2924 fprintf(stderr, "Entering state %d\n", yystate);
2930 /* Do appropriate processing given the current state. */
2931 /* Read a lookahead token if we need one and don't already have one. */
2934 /* First try to decide what to do without reference to lookahead token. */
2936 yyn = yypact[yystate];
2940 /* Not known => get a lookahead token if don't already have one. */
2942 /* yychar is either YYEMPTY or YYEOF
2943 or a valid token in external form. */
2945 if (yychar == YYEMPTY)
2949 fprintf(stderr, "Reading a token: ");
2954 /* Convert token to internal form (in yychar1) for indexing tables with */
2956 if (yychar <= 0) /* This means end of input. */
2959 yychar = YYEOF; /* Don't call YYLEX any more */
2963 fprintf(stderr, "Now at end of input.\n");
2968 yychar1 = YYTRANSLATE(yychar);
2973 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2974 /* Give the individual parser a way to print the precise meaning
2975 of a token, for further debugging info. */
2977 YYPRINT (stderr, yychar, yylval);
2979 fprintf (stderr, ")\n");
2985 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2990 /* yyn is what to do for this token type in this state.
2991 Negative => reduce, -yyn is rule number.
2992 Positive => shift, yyn is new state.
2993 New state is final state => don't bother to shift,
2994 just return success.
2995 0, or most negative number => error. */
3010 /* Shift the lookahead token. */
3014 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3017 /* Discard the token being shifted unless it is eof. */
3018 if (yychar != YYEOF)
3026 /* count tokens shifted since error; after three, turn off error status. */
3027 if (yyerrstatus) yyerrstatus--;
3032 /* Do the default action for the current state. */
3035 yyn = yydefact[yystate];
3039 /* Do a reduction. yyn is the number of a rule to reduce with. */
3043 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3050 fprintf (stderr, "Reducing via rule %d (line %d), ",
3053 /* Print the symbols being reduced, and their result. */
3054 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3055 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3056 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3064 #line 277 "cgrammar.y"
3065 { uentry_clearDecl (); ;
3068 #line 278 "cgrammar.y"
3069 { uentry_clearDecl (); ;
3072 #line 279 "cgrammar.y"
3073 { uentry_clearDecl (); ;
3076 #line 280 "cgrammar.y"
3077 { uentry_clearDecl (); ;
3080 #line 281 "cgrammar.y"
3081 { uentry_clearDecl (); ;
3084 #line 282 "cgrammar.y"
3085 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3088 #line 283 "cgrammar.y"
3089 { uentry_clearDecl (); ;
3092 #line 287 "cgrammar.y"
3093 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3096 #line 289 "cgrammar.y"
3097 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3100 #line 292 "cgrammar.y"
3101 { context_enterFunctionDecl (); ;
3104 #line 293 "cgrammar.y"
3105 { declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3106 context_exitFunctionDecl (); ;
3109 #line 298 "cgrammar.y"
3111 qtype qint = qtype_create (ctype_int);
3112 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3117 #line 304 "cgrammar.y"
3118 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3121 #line 309 "cgrammar.y"
3122 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3125 #line 312 "cgrammar.y"
3126 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3129 #line 314 "cgrammar.y"
3130 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3133 #line 316 "cgrammar.y"
3134 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3137 #line 318 "cgrammar.y"
3139 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), exprNode_getLongValue (yyvsp[-2].expr)));
3143 #line 322 "cgrammar.y"
3144 { setCurrentParams (uentryList_missingParams);
3148 #line 325 "cgrammar.y"
3149 { /* need to support globals and modifies here! */
3150 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp),
3151 uentryList_makeMissingParams ());
3153 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ct);
3158 #line 333 "cgrammar.y"
3159 { setCurrentParams (yyvsp[-1].entrylist);
3163 #line 336 "cgrammar.y"
3164 { setImplictfcnConstraints ();
3165 clearCurrentParams ();
3166 yyval.ntyp = idDecl_replaceCtype (yyvsp[-7].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-7].ntyp), yyvsp[-4].entrylist));
3171 #line 343 "cgrammar.y"
3172 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3175 #line 345 "cgrammar.y"
3176 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3179 #line 347 "cgrammar.y"
3180 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3183 #line 349 "cgrammar.y"
3187 if (exprNode_hasValue (yyvsp[-2].expr)
3188 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3190 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3197 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3201 #line 365 "cgrammar.y"
3202 { setCurrentParams (uentryList_missingParams);
3206 #line 368 "cgrammar.y"
3207 { /* need to support globals and modifies here! */
3208 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3209 uentryList_makeMissingParams ());
3211 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3216 #line 376 "cgrammar.y"
3217 { setCurrentParams (yyvsp[-1].entrylist);
3221 #line 379 "cgrammar.y"
3222 { clearCurrentParams ();
3223 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3228 #line 386 "cgrammar.y"
3229 { setCurrentParams (yyvsp[-1].entrylist); ;
3232 #line 387 "cgrammar.y"
3233 { clearCurrentParams (); ;
3236 #line 388 "cgrammar.y"
3237 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3240 #line 391 "cgrammar.y"
3241 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3244 #line 392 "cgrammar.y"
3245 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3248 #line 393 "cgrammar.y"
3249 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3252 #line 394 "cgrammar.y"
3253 { exprChecks_checkEmptyMacroBody (); ;
3256 #line 397 "cgrammar.y"
3257 { declareFunction (yyvsp[0].ntyp); ;
3260 #line 400 "cgrammar.y"
3261 { setProcessingGlobMods (); ;
3264 #line 401 "cgrammar.y"
3265 { clearProcessingGlobMods (); ;
3268 #line 407 "cgrammar.y"
3269 { setProcessingGlobMods (); ;
3272 #line 408 "cgrammar.y"
3273 { clearProcessingGlobMods (); ;
3276 #line 416 "cgrammar.y"
3278 DPRINTF ( ("doing optGlobEnsuresConstraintsAux\n") );
3279 context_setProtectVars (); enterParamsTemp ();
3280 sRef_setGlobalScopeSafe ();
3285 #line 422 "cgrammar.y"
3287 setEnsuresConstraints (yyvsp[-2].conL);
3289 sRef_clearGlobalScopeSafe ();
3290 context_releaseVars ();
3291 DPRINTF (("done optGlobBufConstraintsAux\n"));;
3294 #line 432 "cgrammar.y"
3296 DPRINTF ( ("doing optGlobBufConstraintsAux\n") );
3297 context_setProtectVars (); enterParamsTemp ();
3298 sRef_setGlobalScopeSafe ();
3303 #line 438 "cgrammar.y"
3305 setFunctionConstraints (yyvsp[-2].conL);
3307 sRef_clearGlobalScopeSafe ();
3308 context_releaseVars ();
3309 DPRINTF (("done optGlobBufConstraintsAux\n"));;
3312 #line 447 "cgrammar.y"
3313 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
3316 #line 448 "cgrammar.y"
3317 {constraintList c; c = constraintList_makeNew(); c = constraintList_add (c, yyvsp[0].con); yyval.conL = c;
3320 #line 451 "cgrammar.y"
3322 yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
3323 DPRINTF(("Done BufConstraint1\n")); ;
3326 #line 466 "cgrammar.y"
3327 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3330 #line 467 "cgrammar.y"
3332 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3333 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3336 #line 472 "cgrammar.y"
3337 { yyval.conE = constraintExpr_makeTermsRef(yyvsp[0].sr);;
3340 #line 473 "cgrammar.y"
3342 t = cstring_toCharsSafe (exprNode_unparse(yyvsp[0].expr));
3344 yyval.conE = constraintExpr_makeIntLiteral (c);
3348 #line 481 "cgrammar.y"
3351 checkbufferConstraintClausesId (yyvsp[0].entry);;
3354 #line 484 "cgrammar.y"
3355 { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
3358 #line 486 "cgrammar.y"
3359 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3362 #line 487 "cgrammar.y"
3365 t = cstring_toCharsSafe (exprNode_unparse(yyvsp[-1].expr));
3367 yyval.sr = sRef_makeArrayFetchKnown(yyvsp[-3].sr, c); ;
3370 #line 492 "cgrammar.y"
3371 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3374 #line 493 "cgrammar.y"
3375 { yyval.sr = yyvsp[-1].sr; ;
3378 #line 494 "cgrammar.y"
3379 { cstring_markOwned (yyvsp[0].cname);
3380 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3383 #line 496 "cgrammar.y"
3384 { cstring_markOwned (yyvsp[0].cname);
3385 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3388 #line 522 "cgrammar.y"
3389 { setProcessingGlobMods (); ;
3392 #line 523 "cgrammar.y"
3393 { clearProcessingGlobMods (); ;
3396 #line 533 "cgrammar.y"
3397 { setProcessingGlobMods (); ;
3400 #line 534 "cgrammar.y"
3401 { clearProcessingGlobMods (); ;
3404 #line 549 "cgrammar.y"
3408 #line 550 "cgrammar.y"
3412 #line 553 "cgrammar.y"
3413 { globListAdd (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3416 #line 556 "cgrammar.y"
3417 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3420 #line 557 "cgrammar.y"
3421 { yyval.sr = globListUnrecognized (yyvsp[0].cname); ;
3424 #line 560 "cgrammar.y"
3425 { yyval.typequal = qual_createUndef (); ;
3428 #line 561 "cgrammar.y"
3429 { yyval.typequal = qual_createKilled (); ;
3432 #line 562 "cgrammar.y"
3433 { yyval.typequal = qual_createOut (); ;
3436 #line 563 "cgrammar.y"
3437 { yyval.typequal = qual_createIn (); ;
3440 #line 564 "cgrammar.y"
3441 { yyval.typequal = qual_createPartial (); ;
3444 #line 567 "cgrammar.y"
3445 { yyval.tquallist = qualList_undefined; ;
3448 #line 568 "cgrammar.y"
3449 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3452 #line 571 "cgrammar.y"
3453 { setProcessingGlobalsList (); ;
3456 #line 573 "cgrammar.y"
3457 { unsetProcessingGlobals (); ;
3460 #line 574 "cgrammar.y"
3461 { setProcessingGlobalsList (); ;
3464 #line 576 "cgrammar.y"
3465 { unsetProcessingGlobals (); ;
3468 #line 578 "cgrammar.y"
3469 { setFunctionNoGlobals ();
3470 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3474 #line 585 "cgrammar.y"
3475 { setProcessingGlobalsList (); ;
3478 #line 587 "cgrammar.y"
3479 { unsetProcessingGlobals (); ;
3482 #line 588 "cgrammar.y"
3483 { setProcessingGlobalsList (); ;
3486 #line 590 "cgrammar.y"
3487 { unsetProcessingGlobals (); ;
3490 #line 592 "cgrammar.y"
3491 { setFunctionNoGlobals ();
3492 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3496 #line 604 "cgrammar.y"
3498 context_setProtectVars (); enterParamsTemp ();
3499 sRef_setGlobalScopeSafe ();
3503 #line 609 "cgrammar.y"
3505 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3506 sRef_clearGlobalScopeSafe ();
3507 context_releaseVars ();
3511 #line 617 "cgrammar.y"
3513 context_setProtectVars (); enterParamsTemp ();
3514 sRef_setGlobalScopeSafe ();
3518 #line 622 "cgrammar.y"
3520 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3521 sRef_clearGlobalScopeSafe ();
3522 context_releaseVars ();
3526 #line 646 "cgrammar.y"
3527 { yyval.sck = SP_ISONLY; ;
3530 #line 647 "cgrammar.y"
3531 { yyval.sck = SP_ISOBSERVER; ;
3534 #line 648 "cgrammar.y"
3535 { yyval.sck = SP_ISEXPOSED; ;
3538 #line 649 "cgrammar.y"
3539 { yyval.sck = SP_ISDEPENDENT; ;
3542 #line 650 "cgrammar.y"
3543 { yyval.sck = SP_ISOWNED; ;
3546 #line 651 "cgrammar.y"
3547 { yyval.sck = SP_ISSHARED; ;
3550 #line 652 "cgrammar.y"
3551 { yyval.sck = SP_ISNULL; ;
3554 #line 653 "cgrammar.y"
3555 { yyval.sck = SP_ISNOTNULL; ;
3558 #line 657 "cgrammar.y"
3560 context_setProtectVars ();
3562 sRef_setGlobalScopeSafe ();
3566 #line 663 "cgrammar.y"
3568 setFunctionSpecialClause (yyvsp[-6].tok, yyvsp[-3].srset, yyvsp[-1].tok);
3570 sRef_clearGlobalScopeSafe ();
3571 context_releaseVars ();
3575 #line 670 "cgrammar.y"
3577 context_setProtectVars ();
3579 sRef_setGlobalScopeSafe ();
3583 #line 676 "cgrammar.y"
3585 setFunctionStateSpecialClause (yyvsp[-7].tok, yyvsp[-5].sck, yyvsp[-3].srset, yyvsp[-1].tok);
3587 sRef_clearGlobalScopeSafe ();
3588 context_releaseVars ();
3592 #line 685 "cgrammar.y"
3594 qtype qint = qtype_create (ctype_int);
3595 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3600 #line 691 "cgrammar.y"
3601 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3604 #line 694 "cgrammar.y"
3605 { checkDoneParams (); context_enterInnerContext (); ;
3608 #line 696 "cgrammar.y"
3610 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3611 context_exitInner (yyvsp[0].expr);
3615 #line 701 "cgrammar.y"
3616 { doneParams (); context_enterInnerContext (); ;
3619 #line 703 "cgrammar.y"
3621 context_exitInner (yyvsp[0].expr);
3622 exprNode_checkFunctionBody (yyvsp[0].expr);
3623 yyval.expr = yyvsp[0].expr; /* old style */
3627 #line 711 "cgrammar.y"
3629 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3630 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3633 context_exitFunction ();
3637 #line 720 "cgrammar.y"
3638 { yyval.srset = yyvsp[-2].srset; ;
3641 #line 721 "cgrammar.y"
3642 { yyval.srset = sRefSet_new (); ;
3645 #line 724 "cgrammar.y"
3646 { yyval.srset = yyvsp[-1].srset; ;
3649 #line 725 "cgrammar.y"
3650 { yyval.srset = sRefSet_new (); ;
3653 #line 728 "cgrammar.y"
3654 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3657 #line 729 "cgrammar.y"
3658 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3661 #line 730 "cgrammar.y"
3662 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3665 #line 731 "cgrammar.y"
3666 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3669 #line 732 "cgrammar.y"
3670 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3673 #line 733 "cgrammar.y"
3674 { yyval.sr = yyvsp[-1].sr; ;
3677 #line 734 "cgrammar.y"
3678 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3681 #line 735 "cgrammar.y"
3682 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3685 #line 739 "cgrammar.y"
3686 { yyval.sr = yyvsp[0].sr; ;
3689 #line 740 "cgrammar.y"
3690 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3693 #line 744 "cgrammar.y"
3694 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3697 #line 745 "cgrammar.y"
3698 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3701 #line 749 "cgrammar.y"
3702 { yyval.sr = checkSpecClausesId (yyvsp[0].entry); ;
3705 #line 751 "cgrammar.y"
3706 { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
3709 #line 752 "cgrammar.y"
3710 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3713 #line 753 "cgrammar.y"
3714 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3717 #line 754 "cgrammar.y"
3718 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3721 #line 755 "cgrammar.y"
3722 { yyval.sr = yyvsp[-1].sr; ;
3725 #line 756 "cgrammar.y"
3726 { cstring_markOwned (yyvsp[0].cname);
3727 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3730 #line 758 "cgrammar.y"
3731 { cstring_markOwned (yyvsp[0].cname);
3732 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3735 #line 763 "cgrammar.y"
3736 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3737 else { yyval.srset = sRefSet_undefined; }
3741 #line 767 "cgrammar.y"
3742 { if (sRef_isValid (yyvsp[0].sr))
3744 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3748 yyval.srset = yyvsp[-2].srset;
3753 #line 778 "cgrammar.y"
3754 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3757 #line 779 "cgrammar.y"
3758 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3761 #line 780 "cgrammar.y"
3762 { yyval.expr = yyvsp[0].expr; ;
3765 #line 781 "cgrammar.y"
3766 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3769 #line 782 "cgrammar.y"
3770 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3773 #line 783 "cgrammar.y"
3774 { yyval.expr = exprNode_makeError (); ;
3777 #line 787 "cgrammar.y"
3778 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3781 #line 788 "cgrammar.y"
3782 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3785 #line 789 "cgrammar.y"
3786 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
3789 #line 790 "cgrammar.y"
3790 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3793 #line 791 "cgrammar.y"
3794 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3797 #line 792 "cgrammar.y"
3798 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3801 #line 793 "cgrammar.y"
3802 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3805 #line 794 "cgrammar.y"
3806 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3809 #line 797 "cgrammar.y"
3810 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
3813 #line 798 "cgrammar.y"
3814 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
3817 #line 802 "cgrammar.y"
3818 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3821 #line 803 "cgrammar.y"
3822 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3825 #line 804 "cgrammar.y"
3826 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3829 #line 805 "cgrammar.y"
3830 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3833 #line 806 "cgrammar.y"
3834 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3837 #line 807 "cgrammar.y"
3838 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3841 #line 808 "cgrammar.y"
3842 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3845 #line 809 "cgrammar.y"
3846 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3849 #line 810 "cgrammar.y"
3850 { yyval.expr = yyvsp[0].expr; ;
3853 #line 811 "cgrammar.y"
3854 { yyval.expr = yyvsp[0].expr; ;
3857 #line 814 "cgrammar.y"
3858 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3861 #line 815 "cgrammar.y"
3862 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3865 #line 819 "cgrammar.y"
3866 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3869 #line 822 "cgrammar.y"
3870 { context_setProtectVars (); ;
3873 #line 823 "cgrammar.y"
3874 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3877 #line 826 "cgrammar.y"
3878 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3881 #line 827 "cgrammar.y"
3882 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3885 #line 828 "cgrammar.y"
3886 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3889 #line 829 "cgrammar.y"
3890 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3893 #line 834 "cgrammar.y"
3894 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3897 #line 838 "cgrammar.y"
3898 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3901 #line 839 "cgrammar.y"
3902 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3905 #line 840 "cgrammar.y"
3906 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3909 #line 844 "cgrammar.y"
3910 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3913 #line 845 "cgrammar.y"
3914 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3917 #line 849 "cgrammar.y"
3918 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3921 #line 850 "cgrammar.y"
3922 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3925 #line 854 "cgrammar.y"
3926 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3929 #line 855 "cgrammar.y"
3930 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3933 #line 856 "cgrammar.y"
3934 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3937 #line 857 "cgrammar.y"
3938 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3941 #line 861 "cgrammar.y"
3942 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3945 #line 862 "cgrammar.y"
3946 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3949 #line 866 "cgrammar.y"
3950 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3953 #line 870 "cgrammar.y"
3954 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3957 #line 875 "cgrammar.y"
3958 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3961 #line 880 "cgrammar.y"
3962 { exprNode_produceGuards (yyvsp[-1].expr);
3963 context_enterAndClause (yyvsp[-1].expr);
3967 #line 884 "cgrammar.y"
3969 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3970 context_exitAndClause (yyval.expr, yyvsp[0].expr);
3974 #line 892 "cgrammar.y"
3976 exprNode_produceGuards (yyvsp[-1].expr);
3977 context_enterOrClause (yyvsp[-1].expr);
3981 #line 897 "cgrammar.y"
3983 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3984 context_exitOrClause (yyval.expr, yyvsp[0].expr);
3988 #line 904 "cgrammar.y"
3989 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3992 #line 905 "cgrammar.y"
3993 { context_enterFalseClause (yyvsp[-4].expr); ;
3996 #line 906 "cgrammar.y"
3997 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
4000 #line 910 "cgrammar.y"
4001 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4004 #line 911 "cgrammar.y"
4005 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4008 #line 912 "cgrammar.y"
4009 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4012 #line 913 "cgrammar.y"
4013 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4016 #line 914 "cgrammar.y"
4017 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4020 #line 915 "cgrammar.y"
4021 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4024 #line 916 "cgrammar.y"
4025 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4028 #line 917 "cgrammar.y"
4029 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4032 #line 918 "cgrammar.y"
4033 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4036 #line 919 "cgrammar.y"
4037 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4040 #line 920 "cgrammar.y"
4041 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4044 #line 924 "cgrammar.y"
4045 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
4048 #line 927 "cgrammar.y"
4049 { yyval.expr = exprNode_undefined; ;
4052 #line 936 "cgrammar.y"
4053 { yyval.expr = yyvsp[0].expr; ;
4056 #line 937 "cgrammar.y"
4057 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
4060 #line 938 "cgrammar.y"
4061 { yyval.expr = exprNode_makeError (); ;
4064 #line 941 "cgrammar.y"
4065 { yyval.expr = exprNode_makeError (); ;
4068 #line 955 "cgrammar.y"
4070 setProcessingVars (yyvsp[-3].qtyp);
4071 processNamedDecl (yyvsp[-1].ntyp); ;
4074 #line 958 "cgrammar.y"
4075 { unsetProcessingVars (); yyval.expr = yyvsp[-2].expr; ;
4078 #line 960 "cgrammar.y"
4079 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp);
4083 #line 963 "cgrammar.y"
4084 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
4085 unsetProcessingVars ();
4089 #line 967 "cgrammar.y"
4090 { processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeError (); ;
4093 #line 968 "cgrammar.y"
4094 { processNamedDecl (yyvsp[-2].ntyp); ;
4097 #line 969 "cgrammar.y"
4098 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
4101 #line 973 "cgrammar.y"
4102 { setProcessingTypedef (yyvsp[0].qtyp); ;
4105 #line 974 "cgrammar.y"
4106 { unsetProcessingTypedef (); ;
4109 #line 975 "cgrammar.y"
4110 { /* in the ANSI grammar, semantics unclear */ ;
4113 #line 976 "cgrammar.y"
4114 { /* in the ANSI grammar, semantics unclear */ ;
4117 #line 979 "cgrammar.y"
4118 { g_expectingTypeName = TRUE; ;
4121 #line 982 "cgrammar.y"
4122 { g_expectingTypeName = TRUE; context_pushLoc (); ;
4125 #line 985 "cgrammar.y"
4129 #line 988 "cgrammar.y"
4133 #line 989 "cgrammar.y"
4137 #line 992 "cgrammar.y"
4138 { yyval.expr = exprNode_makeError (); ;
4141 #line 993 "cgrammar.y"
4142 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4145 #line 996 "cgrammar.y"
4146 { yyval.expr = yyvsp[0].expr; ;
4149 #line 997 "cgrammar.y"
4150 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].alist); ;
4153 #line 998 "cgrammar.y"
4154 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].alist); ;
4157 #line 1003 "cgrammar.y"
4158 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
4161 #line 1005 "cgrammar.y"
4162 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
4165 #line 1013 "cgrammar.y"
4166 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4169 #line 1014 "cgrammar.y"
4170 { yyval.typequal = qual_createInline (); ;
4173 #line 1015 "cgrammar.y"
4174 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4177 #line 1016 "cgrammar.y"
4178 { yyval.typequal = qual_createAuto (); ;
4181 #line 1017 "cgrammar.y"
4182 { yyval.typequal = qual_createRegister (); ;
4185 #line 1020 "cgrammar.y"
4186 { yyval.typequal = qual_createConst (); ;
4189 #line 1021 "cgrammar.y"
4190 { yyval.typequal = qual_createVolatile (); ;
4193 #line 1022 "cgrammar.y"
4194 { yyval.typequal = qual_createOut (); ;
4197 #line 1023 "cgrammar.y"
4198 { yyval.typequal = qual_createIn (); ;
4201 #line 1024 "cgrammar.y"
4202 { yyval.typequal = qual_createPartial (); ;
4205 #line 1025 "cgrammar.y"
4206 { yyval.typequal = qual_createSpecial (); ;
4209 #line 1026 "cgrammar.y"
4210 { yyval.typequal = qual_createOwned (); ;
4213 #line 1027 "cgrammar.y"
4214 { yyval.typequal = qual_createDependent (); ;
4217 #line 1028 "cgrammar.y"
4218 { yyval.typequal = qual_createYield (); ;
4221 #line 1029 "cgrammar.y"
4222 { yyval.typequal = qual_createTemp (); ;
4225 #line 1030 "cgrammar.y"
4226 { yyval.typequal = qual_createOnly (); ;
4229 #line 1031 "cgrammar.y"
4230 { yyval.typequal = qual_createKeep (); ;
4233 #line 1032 "cgrammar.y"
4234 { yyval.typequal = qual_createKept (); ;
4237 #line 1033 "cgrammar.y"
4238 { yyval.typequal = qual_createShared (); ;
4241 #line 1034 "cgrammar.y"
4242 { yyval.typequal = qual_createUnique (); ;
4245 #line 1035 "cgrammar.y"
4246 { yyval.typequal = qual_createExits (); ;
4249 #line 1036 "cgrammar.y"
4250 { yyval.typequal = qual_createMayExit (); ;
4253 #line 1037 "cgrammar.y"
4254 { yyval.typequal = qual_createTrueExit (); ;
4257 #line 1038 "cgrammar.y"
4258 { yyval.typequal = qual_createFalseExit (); ;
4261 #line 1039 "cgrammar.y"
4262 { yyval.typequal = qual_createNeverExit (); ;
4265 #line 1040 "cgrammar.y"
4266 { yyval.typequal = qual_createNull (); ;
4269 #line 1041 "cgrammar.y"
4270 { yyval.typequal = qual_createRelNull (); ;
4273 #line 1042 "cgrammar.y"
4274 { yyval.typequal = qual_createReturned (); ;
4277 #line 1043 "cgrammar.y"
4278 { yyval.typequal = qual_createExposed (); ;
4281 #line 1044 "cgrammar.y"
4282 { yyval.typequal = qual_createObserver (); ;
4285 #line 1045 "cgrammar.y"
4286 { yyval.typequal = qual_createChecked (); ;
4289 #line 1046 "cgrammar.y"
4290 { yyval.typequal = qual_createCheckMod (); ;
4293 #line 1047 "cgrammar.y"
4294 { yyval.typequal = qual_createUnchecked (); ;
4297 #line 1048 "cgrammar.y"
4298 { yyval.typequal = qual_createCheckedStrict (); ;
4301 #line 1049 "cgrammar.y"
4302 { yyval.typequal = qual_createTrueNull (); ;
4305 #line 1050 "cgrammar.y"
4306 { yyval.typequal = qual_createFalseNull (); ;
4309 #line 1051 "cgrammar.y"
4310 { yyval.typequal = qual_createUnused (); ;
4313 #line 1052 "cgrammar.y"
4314 { yyval.typequal = qual_createExternal (); ;
4317 #line 1053 "cgrammar.y"
4318 { yyval.typequal = qual_createSef (); ;
4321 #line 1054 "cgrammar.y"
4322 { yyval.typequal = qual_createAbstract (); ;
4325 #line 1055 "cgrammar.y"
4326 { yyval.typequal = qual_createConcrete (); ;
4329 #line 1056 "cgrammar.y"
4330 { yyval.typequal = qual_createMutable (); ;
4333 #line 1057 "cgrammar.y"
4334 { yyval.typequal = qual_createImmutable (); ;
4337 #line 1058 "cgrammar.y"
4338 { yyval.typequal = qual_createNotNull (); ;
4341 #line 1059 "cgrammar.y"
4342 { yyval.typequal = qual_createRefCounted (); ;
4345 #line 1060 "cgrammar.y"
4346 { yyval.typequal = qual_createRefs (); ;
4349 #line 1061 "cgrammar.y"
4350 { yyval.typequal = qual_createKillRef (); ;
4353 #line 1062 "cgrammar.y"
4354 { yyval.typequal = qual_createRelDef (); ;
4357 #line 1063 "cgrammar.y"
4358 { yyval.typequal = qual_createNewRef (); ;
4361 #line 1064 "cgrammar.y"
4362 { yyval.typequal = qual_createTempRef (); ;
4365 #line 1065 "cgrammar.y"
4366 { yyval.typequal = qual_createNullTerminated (); ;
4369 #line 1071 "cgrammar.y"
4370 { yyval.typequal = qual_createShort (); ;
4373 #line 1072 "cgrammar.y"
4374 { yyval.typequal = qual_createLong (); ;
4377 #line 1073 "cgrammar.y"
4378 { yyval.typequal = qual_createSigned (); ;
4381 #line 1074 "cgrammar.y"
4382 { yyval.typequal = qual_createUnsigned (); ;
4385 #line 1083 "cgrammar.y"
4386 { yyval.ctyp = ctype_unknown; ;
4389 #line 1084 "cgrammar.y"
4390 { yyval.ctyp = ctype_anyintegral; ;
4393 #line 1085 "cgrammar.y"
4394 { yyval.ctyp = ctype_unsignedintegral; ;
4397 #line 1086 "cgrammar.y"
4398 { yyval.ctyp = ctype_signedintegral; ;
4401 #line 1090 "cgrammar.y"
4402 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4405 #line 1094 "cgrammar.y"
4406 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4409 #line 1097 "cgrammar.y"
4410 { yyval.qtyp = yyvsp[0].qtyp; ;
4413 #line 1099 "cgrammar.y"
4414 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4417 #line 1104 "cgrammar.y"
4418 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4421 #line 1107 "cgrammar.y"
4422 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4425 #line 1108 "cgrammar.y"
4426 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4429 #line 1109 "cgrammar.y"
4430 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4433 #line 1112 "cgrammar.y"
4434 { yyval.qtyp = qtype_unknown (); ;
4437 #line 1113 "cgrammar.y"
4438 { yyval.qtyp = yyvsp[0].qtyp; ;
4441 #line 1116 "cgrammar.y"
4442 { sRef_setGlobalScopeSafe (); ;
4445 #line 1118 "cgrammar.y"
4446 { sRef_clearGlobalScopeSafe (); ;
4449 #line 1120 "cgrammar.y"
4450 { yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ;
4453 #line 1121 "cgrammar.y"
4454 { sRef_setGlobalScopeSafe (); ;
4457 #line 1123 "cgrammar.y"
4458 { sRef_clearGlobalScopeSafe (); ;
4461 #line 1125 "cgrammar.y"
4462 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4465 #line 1127 "cgrammar.y"
4466 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4469 #line 1129 "cgrammar.y"
4470 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4473 #line 1130 "cgrammar.y"
4474 { sRef_setGlobalScopeSafe (); ;
4477 #line 1132 "cgrammar.y"
4478 { sRef_clearGlobalScopeSafe (); ;
4481 #line 1134 "cgrammar.y"
4482 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4485 #line 1135 "cgrammar.y"
4486 { sRef_setGlobalScopeSafe (); ;
4489 #line 1137 "cgrammar.y"
4490 { sRef_clearGlobalScopeSafe (); ;
4493 #line 1139 "cgrammar.y"
4494 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4497 #line 1141 "cgrammar.y"
4498 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4501 #line 1143 "cgrammar.y"
4502 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4505 #line 1144 "cgrammar.y"
4506 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4509 #line 1145 "cgrammar.y"
4510 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4513 #line 1148 "cgrammar.y"
4514 { g_expectingTypeName = FALSE; ;
4517 #line 1152 "cgrammar.y"
4518 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4521 #line 1153 "cgrammar.y"
4522 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4525 #line 1157 "cgrammar.y"
4526 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4529 #line 1159 "cgrammar.y"
4530 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4533 #line 1163 "cgrammar.y"
4534 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4537 #line 1165 "cgrammar.y"
4538 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4541 #line 1168 "cgrammar.y"
4542 { yyval.ntyp = yyvsp[0].ntyp; ;
4545 #line 1169 "cgrammar.y"
4546 { yyval.ntyp = idDecl_undefined; ;
4549 #line 1170 "cgrammar.y"
4550 { yyval.ntyp = yyvsp[-3].ntyp; ;
4553 #line 1175 "cgrammar.y"
4554 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4557 #line 1176 "cgrammar.y"
4558 { context_pushLoc (); ;
4561 #line 1177 "cgrammar.y"
4562 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4565 #line 1178 "cgrammar.y"
4566 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4569 #line 1182 "cgrammar.y"
4570 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4573 #line 1184 "cgrammar.y"
4574 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4577 #line 1189 "cgrammar.y"
4578 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4579 usymtab_supGlobalEntry (ue);
4580 yyval.cname = yyvsp[0].cname;
4584 #line 1194 "cgrammar.y"
4585 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4586 usymtab_supGlobalEntry (ue);
4587 yyval.cname = yyvsp[-3].cname;
4591 #line 1201 "cgrammar.y"
4592 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4595 #line 1203 "cgrammar.y"
4597 qtype qt = qtype_unknown ();
4599 qtype_adjustPointers (yyvsp[-1].count, qt);
4600 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4604 #line 1210 "cgrammar.y"
4605 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4608 #line 1215 "cgrammar.y"
4609 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4612 #line 1218 "cgrammar.y"
4613 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4616 #line 1219 "cgrammar.y"
4617 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4620 #line 1222 "cgrammar.y"
4621 { /* ignored for now */; ;
4624 #line 1223 "cgrammar.y"
4628 #line 1226 "cgrammar.y"
4632 #line 1227 "cgrammar.y"
4636 #line 1230 "cgrammar.y"
4637 { yyval.count = 1; ;
4640 #line 1231 "cgrammar.y"
4641 { yyval.count = 1; ;
4644 #line 1232 "cgrammar.y"
4645 { yyval.count = 1 + yyvsp[0].count; ;
4648 #line 1233 "cgrammar.y"
4649 { yyval.count = 1 + yyvsp[0].count; ;
4652 #line 1237 "cgrammar.y"
4653 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4656 #line 1240 "cgrammar.y"
4657 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4660 #line 1241 "cgrammar.y"
4661 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4664 #line 1244 "cgrammar.y"
4665 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4668 #line 1246 "cgrammar.y"
4669 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4672 #line 1249 "cgrammar.y"
4676 #line 1249 "cgrammar.y"
4677 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4680 #line 1250 "cgrammar.y"
4684 #line 1251 "cgrammar.y"
4685 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4688 #line 1255 "cgrammar.y"
4690 if (isFlipOldStyle ())
4692 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4698 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4702 #line 1267 "cgrammar.y"
4704 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4708 llparseerror (message ("Inconsistent function parameter syntax: %q",
4709 idDecl_unparse (tparam)));
4713 yyval.oentry = makeCurrentParam (tparam);
4714 idDecl_free (tparam);
4718 #line 1283 "cgrammar.y"
4719 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4722 #line 1286 "cgrammar.y"
4723 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4726 #line 1288 "cgrammar.y"
4727 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4730 #line 1291 "cgrammar.y"
4731 { yyval.ctyp = ctype_unknown; ;
4734 #line 1296 "cgrammar.y"
4735 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4738 #line 1297 "cgrammar.y"
4739 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4742 #line 1299 "cgrammar.y"
4743 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4746 #line 1300 "cgrammar.y"
4747 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4750 #line 1302 "cgrammar.y"
4751 { yyval.ctyp = ctype_makeFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4754 #line 1304 "cgrammar.y"
4755 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4758 #line 1306 "cgrammar.y"
4759 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4762 #line 1308 "cgrammar.y"
4763 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4766 #line 1310 "cgrammar.y"
4767 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4770 #line 1338 "cgrammar.y"
4771 { yyval.expr = exprNode_labelMarker (yyvsp[0].cname); ;
4774 #line 1343 "cgrammar.y"
4775 { yyval.expr = yyvsp[0].expr; ;
4778 #line 1351 "cgrammar.y"
4779 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4782 #line 1355 "cgrammar.y"
4783 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4786 #line 1357 "cgrammar.y"
4787 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4790 #line 1359 "cgrammar.y"
4791 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4794 #line 1361 "cgrammar.y"
4795 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4798 #line 1365 "cgrammar.y"
4799 { context_setProtectVars (); ;
4802 #line 1365 "cgrammar.y"
4803 { context_sizeofReleaseVars (); ;
4806 #line 1367 "cgrammar.y"
4807 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4808 context_enterForClause (yyvsp[-5].expr); ;
4811 #line 1372 "cgrammar.y"
4812 { setProcessingIterVars (yyvsp[-2].entry); ;
4815 #line 1374 "cgrammar.y"
4816 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].alist); ;
4819 #line 1375 "cgrammar.y"
4820 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4823 #line 1381 "cgrammar.y"
4824 { yyval.expr = yyvsp[0].expr; ;
4827 #line 1389 "cgrammar.y"
4828 { yyval.expr = yyvsp[-1].expr; ;
4831 #line 1390 "cgrammar.y"
4832 { yyval.expr = exprNode_makeError (); ;
4835 #line 1394 "cgrammar.y"
4836 { /* don't: context_exitTrueClause ($1, $2); */
4837 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4841 #line 1399 "cgrammar.y"
4842 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4845 #line 1402 "cgrammar.y"
4846 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4849 #line 1417 "cgrammar.y"
4850 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4853 #line 1419 "cgrammar.y"
4854 { yyval.expr = exprNode_makeError (); ;
4857 #line 1422 "cgrammar.y"
4858 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
4861 #line 1423 "cgrammar.y"
4862 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4865 #line 1429 "cgrammar.y"
4866 { context_enterCaseClause (yyvsp[0].expr); ;
4869 #line 1430 "cgrammar.y"
4870 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4873 #line 1431 "cgrammar.y"
4874 { context_enterCaseClause (yyvsp[0].expr); ;
4877 #line 1432 "cgrammar.y"
4878 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4881 #line 1435 "cgrammar.y"
4882 { context_enterCaseClause (exprNode_undefined); ;
4885 #line 1436 "cgrammar.y"
4886 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
4889 #line 1437 "cgrammar.y"
4890 { context_enterCaseClause (exprNode_undefined); ;
4893 #line 1438 "cgrammar.y"
4894 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
4897 #line 1441 "cgrammar.y"
4898 { yyval.expr = yyvsp[-1].expr; ;
4901 #line 1443 "cgrammar.y"
4902 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4905 #line 1446 "cgrammar.y"
4906 { yyval.expr = yyvsp[-1].expr; ;
4909 #line 1449 "cgrammar.y"
4910 { context_enterInnerContext (); ;
4913 #line 1452 "cgrammar.y"
4914 { context_exitInnerPlain (); ;
4917 #line 1455 "cgrammar.y"
4918 { context_enterStructInnerContext (); ;
4921 #line 1458 "cgrammar.y"
4922 { context_exitStructInnerContext (); ;
4925 #line 1461 "cgrammar.y"
4926 { context_exitInnerSafe (); ;
4929 #line 1464 "cgrammar.y"
4930 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4933 #line 1465 "cgrammar.y"
4934 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4937 #line 1466 "cgrammar.y"
4938 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4941 #line 1468 "cgrammar.y"
4942 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4945 #line 1469 "cgrammar.y"
4946 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4949 #line 1471 "cgrammar.y"
4950 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4953 #line 1473 "cgrammar.y"
4954 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4957 #line 1475 "cgrammar.y"
4958 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
4959 lltok_getLoc (yyvsp[-1].tok)));
4963 #line 1482 "cgrammar.y"
4964 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
4967 #line 1486 "cgrammar.y"
4968 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4971 #line 1488 "cgrammar.y"
4972 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4975 #line 1490 "cgrammar.y"
4976 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4979 #line 1492 "cgrammar.y"
4980 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4983 #line 1496 "cgrammar.y"
4984 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4987 #line 1499 "cgrammar.y"
4988 { yyval.expr = yyvsp[0].expr; ;
4991 #line 1500 "cgrammar.y"
4992 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4995 #line 1503 "cgrammar.y"
4996 { yyval.expr = yyvsp[0].expr; ;
4999 #line 1504 "cgrammar.y"
5000 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5003 #line 1507 "cgrammar.y"
5004 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5007 #line 1508 "cgrammar.y"
5008 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5011 #line 1511 "cgrammar.y"
5012 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5015 #line 1512 "cgrammar.y"
5016 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5019 #line 1513 "cgrammar.y"
5020 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
5023 #line 1517 "cgrammar.y"
5024 { yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
5027 #line 1525 "cgrammar.y"
5029 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
5030 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
5034 #line 1529 "cgrammar.y"
5035 { context_enterFalseClause (yyvsp[-2].expr); ;
5038 #line 1530 "cgrammar.y"
5040 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5041 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5045 #line 1534 "cgrammar.y"
5046 { context_enterSwitch (yyvsp[0].expr); ;
5049 #line 1535 "cgrammar.y"
5050 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
5053 #line 1539 "cgrammar.y"
5054 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
5057 #line 1543 "cgrammar.y"
5058 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
5061 #line 1546 "cgrammar.y"
5062 { context_enterIterClause (); ;
5065 #line 1547 "cgrammar.y"
5066 { setProcessingIterVars (yyvsp[-3].entry); ;
5069 #line 1550 "cgrammar.y"
5071 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].alist, yyvsp[-2].expr, yyvsp[-1].entry);
5076 #line 1556 "cgrammar.y"
5077 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
5080 #line 1557 "cgrammar.y"
5081 { nextIterParam (); ;
5084 #line 1558 "cgrammar.y"
5085 { yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ;
5088 #line 1561 "cgrammar.y"
5089 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
5092 #line 1562 "cgrammar.y"
5093 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
5096 #line 1563 "cgrammar.y"
5097 { uentry ue = coerceIterId (yyvsp[0].cname);
5099 if (uentry_isValid (ue))
5101 yyval.expr = exprNode_iterId (ue);
5105 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
5110 #line 1574 "cgrammar.y"
5111 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
5114 #line 1582 "cgrammar.y"
5115 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5118 #line 1586 "cgrammar.y"
5119 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
5122 #line 1587 "cgrammar.y"
5123 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
5126 #line 1588 "cgrammar.y"
5127 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
5130 #line 1590 "cgrammar.y"
5131 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
5134 #line 1591 "cgrammar.y"
5135 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
5138 #line 1592 "cgrammar.y"
5139 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
5142 #line 1593 "cgrammar.y"
5143 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5146 #line 1594 "cgrammar.y"
5147 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5150 #line 1598 "cgrammar.y"
5151 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5154 #line 1599 "cgrammar.y"
5155 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5158 #line 1600 "cgrammar.y"
5159 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5162 #line 1601 "cgrammar.y"
5163 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5166 #line 1602 "cgrammar.y"
5167 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5170 #line 1603 "cgrammar.y"
5171 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5174 #line 1604 "cgrammar.y"
5175 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5178 #line 1605 "cgrammar.y"
5179 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5182 #line 1606 "cgrammar.y"
5183 { yyval.expr = yyvsp[0].expr; ;
5186 #line 1610 "cgrammar.y"
5187 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
5190 #line 1614 "cgrammar.y"
5191 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5194 #line 1615 "cgrammar.y"
5195 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5198 #line 1616 "cgrammar.y"
5199 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5202 #line 1620 "cgrammar.y"
5203 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5206 #line 1621 "cgrammar.y"
5207 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5210 #line 1625 "cgrammar.y"
5211 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5214 #line 1626 "cgrammar.y"
5215 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5218 #line 1630 "cgrammar.y"
5219 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5222 #line 1631 "cgrammar.y"
5223 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5226 #line 1632 "cgrammar.y"
5227 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5230 #line 1633 "cgrammar.y"
5231 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5234 #line 1637 "cgrammar.y"
5235 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5238 #line 1638 "cgrammar.y"
5239 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5242 #line 1642 "cgrammar.y"
5243 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5246 #line 1646 "cgrammar.y"
5247 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5250 #line 1651 "cgrammar.y"
5251 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5254 #line 1655 "cgrammar.y"
5255 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5258 #line 1659 "cgrammar.y"
5259 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5262 #line 1663 "cgrammar.y"
5263 { context_enterTrueClause (yyvsp[-1].expr); ;
5266 #line 1664 "cgrammar.y"
5267 { context_enterFalseClause (yyvsp[-4].expr); ;
5270 #line 1665 "cgrammar.y"
5271 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5274 #line 1669 "cgrammar.y"
5275 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5278 #line 1670 "cgrammar.y"
5279 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5282 #line 1671 "cgrammar.y"
5283 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5286 #line 1672 "cgrammar.y"
5287 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5290 #line 1673 "cgrammar.y"
5291 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5294 #line 1674 "cgrammar.y"
5295 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5298 #line 1675 "cgrammar.y"
5299 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5302 #line 1676 "cgrammar.y"
5303 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5306 #line 1677 "cgrammar.y"
5307 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5310 #line 1678 "cgrammar.y"
5311 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5314 #line 1679 "cgrammar.y"
5315 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5318 #line 1682 "cgrammar.y"
5319 { yyval.entry = yyvsp[0].entry; ;
5322 #line 1683 "cgrammar.y"
5323 { yyval.entry = uentry_undefined; ;
5326 #line 1686 "cgrammar.y"
5327 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5330 #line 1690 "cgrammar.y"
5331 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5334 #line 1692 "cgrammar.y"
5335 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5338 #line 1694 "cgrammar.y"
5339 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5342 #line 1697 "cgrammar.y"
5343 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5346 #line 1699 "cgrammar.y"
5347 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5350 #line 1701 "cgrammar.y"
5351 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5354 #line 1702 "cgrammar.y"
5355 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5358 #line 1705 "cgrammar.y"
5359 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5362 #line 1706 "cgrammar.y"
5363 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5366 #line 1708 "cgrammar.y"
5367 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5370 #line 1709 "cgrammar.y"
5371 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5374 #line 1710 "cgrammar.y"
5375 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5378 #line 1711 "cgrammar.y"
5379 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5382 #line 1712 "cgrammar.y"
5383 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5386 #line 1713 "cgrammar.y"
5387 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5390 #line 1714 "cgrammar.y"
5391 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5394 #line 1715 "cgrammar.y"
5395 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5398 #line 1719 "cgrammar.y"
5402 #line 1726 "cgrammar.y"
5403 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5406 #line 1727 "cgrammar.y"
5407 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5410 #line 1728 "cgrammar.y"
5411 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5414 #line 1729 "cgrammar.y"
5415 { yyval.cname = yyvsp[0].cname; ;
5418 #line 1733 "cgrammar.y"
5419 { yyval.ctyp = ctype_unknown; ;
5422 /* the action file gets copied in in place of this dollarsign */
5423 #line 543 "/usr/lib/bison.simple"
5434 short *ssp1 = yyss - 1;
5435 fprintf (stderr, "state stack now");
5436 while (ssp1 != yyssp)
5437 fprintf (stderr, " %d", *++ssp1);
5438 fprintf (stderr, "\n");
5448 yylsp->first_line = yylloc.first_line;
5449 yylsp->first_column = yylloc.first_column;
5450 yylsp->last_line = (yylsp-1)->last_line;
5451 yylsp->last_column = (yylsp-1)->last_column;
5456 yylsp->last_line = (yylsp+yylen-1)->last_line;
5457 yylsp->last_column = (yylsp+yylen-1)->last_column;
5461 /* Now "shift" the result of the reduction.
5462 Determine what state that goes to,
5463 based on the state we popped back to
5464 and the rule number reduced by. */
5468 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5469 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5470 yystate = yytable[yystate];
5472 yystate = yydefgoto[yyn - YYNTBASE];
5476 yyerrlab: /* here on detecting error */
5479 /* If not already recovering from an error, report this error. */
5483 #ifdef YYERROR_VERBOSE
5484 yyn = yypact[yystate];
5486 if (yyn > YYFLAG && yyn < YYLAST)
5493 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5494 for (x = (yyn < 0 ? -yyn : 0);
5495 x < (sizeof(yytname) / sizeof(char *)); x++)
5496 if (yycheck[x + yyn] == x)
5497 size += strlen(yytname[x]) + 15, count++;
5498 msg = (char *) malloc(size + 15);
5501 strcpy(msg, "parse error");
5506 for (x = (yyn < 0 ? -yyn : 0);
5507 x < (sizeof(yytname) / sizeof(char *)); x++)
5508 if (yycheck[x + yyn] == x)
5510 strcat(msg, count == 0 ? ", expecting `" : " or `");
5511 strcat(msg, yytname[x]);
5520 yyerror ("parse error; also virtual memory exceeded");
5523 #endif /* YYERROR_VERBOSE */
5524 yyerror("parse error");
5528 yyerrlab1: /* here on error raised explicitly by an action */
5530 if (yyerrstatus == 3)
5532 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5534 /* return failure if at end of input */
5535 if (yychar == YYEOF)
5540 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5546 /* Else will try to reuse lookahead token
5547 after shifting the error token. */
5549 yyerrstatus = 3; /* Each real token shifted decrements this */
5553 yyerrdefault: /* current state does not do anything special for the error token. */
5556 /* This is wrong; only states that explicitly want error tokens
5557 should shift them. */
5558 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5559 if (yyn) goto yydefault;
5562 yyerrpop: /* pop the current state because it cannot handle the error token */
5564 if (yyssp == yyss) YYABORT;
5574 short *ssp1 = yyss - 1;
5575 fprintf (stderr, "Error: state stack now");
5576 while (ssp1 != yyssp)
5577 fprintf (stderr, " %d", *++ssp1);
5578 fprintf (stderr, "\n");
5584 yyn = yypact[yystate];
5589 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5608 fprintf(stderr, "Shifting error token, ");
5620 /* YYACCEPT comes here. */
5632 /* YYABORT comes here. */
5643 #line 1735 "cgrammar.y"
5647 extern char *yytext;
5650 # include "bison.reset"
5652 void yyerror (/*@unused@*/ char *s)
5654 static bool givehint = FALSE;
5656 if (context_inIterDef ())
5658 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5659 context_inFunctionName ()));
5661 else if (context_inIterEnd ())
5663 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5664 context_inFunctionName ()));
5666 else if (context_inMacro ())
5668 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5669 context_inFunctionName ()));
5671 if (context_inMacroUnknown ())
5675 llhint (cstring_makeLiteral
5676 ("Precede macro definition with /*@notfunction@*/ "
5677 "to suppress checking and force expansion"));
5686 llparseerror (cstring_undefined);
5690 void printState (idDecl t) {
5691 cstring id = idDecl_getName (t);
5692 uentry ue = usymtab_lookupSafe (id);
5694 sRef s = uentry_getSref (ue);
5696 printf("State = %d\n", s->bufinfo.bufstate);
5700 /*take this out soon */
5701 /* void testassert1 (cstring id, icstring cons ) { */
5702 /* uentry ue =usymtab_lookupSafe (id); */
5703 /* sRef s = uentry_getSref (ue); */
5704 /* printf ("Doing testassert1 with setbuffersize\n"); */
5705 /* printf("State = %d\n", s->bufinfo.bufstate); */
5707 /* void testassert2 (cstring id) { */
5708 /* uentry ue =usymtab_lookupSafe (id); */
5709 /* sRef s = uentry_getSref (ue); */
5710 /* printf ("Doing testassert2 with setbuffersize\n"); */
5711 /* printf("State = %d\n", s->bufinfo.bufstate); */