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