2 /* A Bison parser, made from cgrammar.y
3 by GNU Bison version 1.25
6 #define YYBISON 1 /* Identify Bison output. */
10 #define CTOK_ELIPSIS 260
34 #define TAMPERSAND 284
62 #define MUL_ASSIGN 312
63 #define DIV_ASSIGN 313
64 #define MOD_ASSIGN 314
65 #define ADD_ASSIGN 315
66 #define SUB_ASSIGN 316
67 #define LEFT_ASSIGN 317
68 #define RIGHT_ASSIGN 318
69 #define AND_ASSIGN 319
70 #define XOR_ASSIGN 320
85 #define QALLOCATES 335
88 #define QPRECLAUSE 338
89 #define QPOSTCLAUSE 339
95 #define LLMACROITER 345
96 #define LLMACROEND 346
98 #define QSWITCHBREAK 348
99 #define QLOOPBREAK 349
100 #define QINNERBREAK 350
101 #define QSAFEBREAK 351
102 #define QINNERCONTINUE 352
103 #define QFALLTHROUGH 353
104 #define QLINTNOTREACHED 354
105 #define QLINTFALLTHROUGH 355
106 #define QLINTFALLTHRU 356
107 #define QARGSUSED 357
108 #define QPRINTFLIKE 358
109 #define QLINTPRINTFLIKE 359
110 #define QSCANFLIKE 360
111 #define QMESSAGELIKE 361
112 #define QNOTREACHED 362
114 #define QVOLATILE 364
116 #define QEXTENSION 366
120 #define QREGISTER 370
130 #define QUNCHECKED 380
131 #define QCHECKEDSTRICT 381
132 #define QCHECKMOD 382
138 #define QDEPENDENT 388
139 #define QRETURNED 389
142 #define QOBSERVER 392
146 #define QNEVEREXIT 396
147 #define QTRUEEXIT 397
148 #define QFALSEEXIT 398
151 #define QUNSIGNED 401
157 #define QABSTRACT 407
158 #define QCONCRETE 408
160 #define QIMMUTABLE 410
161 #define QTRUENULL 411
162 #define QFALSENULL 412
163 #define QEXTERNAL 413
164 #define QREFCOUNTED 414
177 #define QINTEGRALTYPE 427
178 #define QUNSIGNEDINTEGRALTYPE 428
179 #define QSIGNEDINTEGRALTYPE 429
180 #define QNULLTERMINATED 430
181 #define IDENTIFIER 431
182 #define NEW_IDENTIFIER 432
183 #define TYPE_NAME_OR_ID 433
184 #define CCONSTANT 434
185 #define ITER_NAME 435
186 #define ITER_ENDNAME 436
187 #define TYPE_NAME 437
189 #line 19 "cgrammar.y"
195 ** Yacc/Bison grammar for extended ANSI C used by LCLint.
197 ** original grammar by Nate Osgood ---
198 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
200 ** changes for LCLint --- handle typedef names correctly
201 ** fix struct/union parsing bug (empty struct is accepted)
202 ** add productions to handle macros --- require
203 ** error correction --- main source of conflicts in grammar.
204 ** need to process initializations sequentially, L->R
206 ** production names are cryptic, so more productions fit on one line
208 ** conflicts: 87 shift/reduce, 18 reduce/reduce
209 ** most of these are due to handling macros
210 ** a few are due to handling type expressions
216 extern void swallowMacro (void);
218 # include "lclintMacros.nf"
220 # include "cgrammar.h"
221 # include "exprChecks.h"
226 # define SHOWCSYM FALSE
227 void yyerror (char *s);
230 ** This is necessary, or else when the bison-generated code #include's malloc.h,
231 ** there will be a parse error.
233 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
234 ** in bison-generated files under Win32.
243 void checkandsetBufState(idDecl id, exprNode is);
245 #line 75 "cgrammar.y"
250 specialClauseKind sck;
255 /*@only@*/ qtype qtyp;
256 /*@only@*/ cstring cname;
257 /*@only@*/ idDecl ntyp;
258 /*@only@*/ idDeclList ntyplist;
259 /*@only@*/ uentryList flist;
260 /*@owned@*/ uentryList entrylist;
261 /*@observer@*/ /*@dependent@*/ uentry entry;
262 /*@only@*/ uentry oentry;
263 /*@only@*/ exprNode expr;
264 /*@only@*/ enumNameList enumnamelist;
265 /*@only@*/ exprNodeList alist;
266 /*@only@*/ sRefSet srset;
267 /*@only@*/ cstringList cstringlist;
284 #define YYFLAG -32768
287 #define YYTRANSLATE(x) ((unsigned)(x) <= 437 ? yytranslate[x] : 410)
289 static const short yytranslate[] = { 0,
290 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
291 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
292 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
293 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
294 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
295 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
296 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
297 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
298 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
299 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
300 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
301 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
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, 1, 2, 3, 4, 5,
316 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
317 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
318 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
319 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
320 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
321 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
322 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
323 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
324 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
325 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
326 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
327 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
328 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
329 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
330 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
331 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
332 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
333 176, 177, 178, 179, 180, 181, 182
337 static const short yyprhs[] = { 0,
338 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
339 21, 23, 32, 44, 45, 51, 53, 57, 59, 62,
340 64, 71, 75, 82, 83, 90, 91, 99, 101, 108,
341 112, 119, 120, 127, 128, 136, 137, 138, 149, 153,
342 157, 161, 164, 166, 167, 170, 171, 174, 176, 179,
343 181, 184, 186, 189, 191, 195, 198, 200, 202, 204,
344 206, 208, 210, 212, 213, 216, 217, 224, 225, 232,
345 234, 236, 237, 238, 244, 245, 251, 253, 255, 256,
346 258, 259, 260, 264, 265, 269, 271, 273, 275, 277,
347 279, 281, 283, 285, 287, 289, 291, 293, 295, 297,
348 299, 301, 303, 304, 312, 313, 322, 324, 328, 329,
349 333, 334, 338, 341, 345, 348, 351, 353, 355, 357,
350 361, 366, 369, 373, 377, 381, 383, 385, 387, 391,
351 393, 395, 399, 404, 407, 411, 415, 419, 421, 425,
352 427, 429, 431, 435, 437, 439, 441, 446, 450, 455,
353 462, 468, 474, 477, 480, 482, 486, 488, 491, 494,
354 497, 500, 503, 506, 509, 512, 514, 516, 520, 522,
355 532, 533, 537, 542, 545, 550, 553, 555, 560, 562,
356 566, 570, 574, 576, 580, 584, 586, 590, 594, 596,
357 600, 604, 608, 612, 614, 618, 622, 624, 628, 630,
358 634, 636, 640, 642, 643, 648, 650, 651, 656, 658,
359 659, 660, 668, 670, 674, 678, 682, 686, 690, 694,
360 698, 702, 706, 710, 714, 716, 720, 721, 723, 725,
361 727, 729, 731, 735, 736, 746, 747, 759, 762, 763,
362 770, 771, 779, 784, 789, 790, 791, 794, 796, 801,
363 802, 807, 809, 813, 818, 820, 824, 826, 828, 830,
364 832, 834, 837, 840, 843, 846, 849, 852, 855, 858,
365 861, 864, 867, 870, 873, 876, 879, 882, 885, 888,
366 891, 894, 897, 900, 903, 906, 909, 912, 915, 918,
367 921, 924, 927, 930, 933, 936, 939, 942, 945, 948,
368 951, 954, 957, 960, 963, 966, 969, 972, 974, 976,
369 978, 980, 983, 986, 989, 992, 995, 998, 1001, 1004,
370 1007, 1010, 1013, 1016, 1019, 1022, 1026, 1028, 1033, 1035,
371 1039, 1042, 1045, 1048, 1049, 1051, 1052, 1053, 1065, 1066,
372 1067, 1079, 1086, 1093, 1094, 1095, 1106, 1107, 1108, 1119,
373 1125, 1131, 1136, 1141, 1142, 1144, 1146, 1149, 1155, 1159,
374 1162, 1167, 1169, 1173, 1178, 1185, 1186, 1195, 1200, 1202,
375 1206, 1209, 1211, 1216, 1218, 1220, 1223, 1226, 1228, 1231,
376 1233, 1236, 1238, 1240, 1242, 1245, 1247, 1250, 1253, 1257,
377 1259, 1263, 1265, 1269, 1271, 1273, 1277, 1278, 1281, 1282,
378 1287, 1292, 1294, 1296, 1299, 1301, 1303, 1306, 1307, 1309,
379 1315, 1318, 1322, 1326, 1331, 1335, 1340, 1345, 1351, 1353,
380 1355, 1357, 1359, 1361, 1363, 1365, 1367, 1369, 1371, 1373,
381 1375, 1378, 1381, 1389, 1396, 1399, 1400, 1401, 1412, 1413,
382 1420, 1422, 1424, 1426, 1428, 1431, 1433, 1435, 1437, 1439,
383 1441, 1443, 1445, 1449, 1451, 1454, 1457, 1460, 1462, 1464,
384 1466, 1468, 1470, 1472, 1474, 1476, 1478, 1480, 1484, 1486,
385 1488, 1491, 1494, 1495, 1500, 1501, 1507, 1508, 1512, 1513,
386 1518, 1522, 1525, 1529, 1530, 1531, 1532, 1533, 1534, 1536,
387 1539, 1542, 1546, 1549, 1553, 1557, 1562, 1565, 1568, 1572,
388 1576, 1581, 1583, 1586, 1588, 1591, 1593, 1596, 1598, 1601,
389 1603, 1606, 1608, 1613, 1616, 1617, 1623, 1624, 1631, 1636,
390 1641, 1642, 1643, 1654, 1656, 1657, 1662, 1664, 1666, 1668,
391 1670, 1672, 1676, 1678, 1683, 1687, 1692, 1699, 1705, 1711,
392 1714, 1717, 1719, 1722, 1725, 1728, 1731, 1734, 1737, 1740,
393 1743, 1745, 1747, 1752, 1754, 1758, 1762, 1766, 1768, 1772,
394 1776, 1778, 1782, 1786, 1788, 1792, 1796, 1800, 1804, 1806,
395 1810, 1814, 1816, 1820, 1822, 1826, 1828, 1832, 1834, 1838,
396 1840, 1844, 1846, 1847, 1848, 1856, 1858, 1862, 1866, 1870,
397 1874, 1878, 1882, 1886, 1890, 1894, 1898, 1902, 1904, 1905,
398 1907, 1910, 1918, 1921, 1924, 1932, 1939, 1942, 1946, 1949,
399 1953, 1956, 1960, 1964, 1968, 1972, 1975, 1979, 1980, 1982,
400 1984, 1986, 1988, 1990, 1992, 1994, 1996
403 static const short yyrhs[] = { -1,
404 184, 0, 185, 0, 184, 185, 0, 237, 406, 0,
405 186, 0, 187, 0, 197, 0, 200, 0, 274, 0,
406 1, 0, 75, 294, 307, 317, 307, 406, 282, 88,
407 0, 75, 294, 307, 317, 307, 23, 282, 287, 286,
408 406, 88, 0, 0, 76, 188, 189, 406, 88, 0,
409 190, 0, 294, 307, 190, 0, 194, 0, 321, 194,
410 0, 408, 0, 282, 24, 307, 317, 282, 25, 0,
411 191, 26, 27, 0, 191, 26, 282, 273, 27, 307,
412 0, 0, 191, 283, 24, 25, 192, 202, 0, 0,
413 191, 283, 24, 318, 25, 193, 202, 0, 408, 0,
414 282, 24, 307, 190, 282, 25, 0, 194, 26, 27,
415 0, 194, 26, 282, 273, 27, 307, 0, 0, 194,
416 283, 24, 25, 195, 204, 0, 0, 194, 283, 24,
417 318, 25, 196, 204, 0, 0, 0, 77, 408, 24,
418 318, 25, 198, 204, 199, 406, 88, 0, 89, 347,
419 92, 0, 90, 334, 92, 0, 91, 335, 92, 0,
420 89, 92, 0, 233, 0, 0, 203, 206, 0, 0,
421 205, 207, 0, 214, 0, 208, 214, 0, 217, 0,
422 208, 217, 0, 230, 0, 230, 208, 0, 210, 0,
423 209, 21, 210, 0, 213, 211, 0, 407, 0, 177,
424 0, 86, 0, 87, 0, 116, 0, 117, 0, 130,
425 0, 0, 212, 213, 0, 0, 72, 215, 367, 406,
426 88, 220, 0, 0, 72, 216, 209, 406, 88, 220,
427 0, 74, 0, 221, 0, 0, 0, 72, 218, 367,
428 406, 220, 0, 0, 72, 219, 209, 406, 220, 0,
429 74, 0, 223, 0, 0, 221, 0, 0, 0, 73,
430 222, 238, 0, 0, 73, 224, 239, 0, 78, 0,
431 79, 0, 80, 0, 81, 0, 82, 0, 88, 0,
432 88, 0, 83, 0, 84, 0, 119, 0, 137, 0,
433 135, 0, 133, 0, 132, 0, 121, 0, 138, 0,
434 150, 0, 0, 225, 307, 231, 244, 406, 227, 282,
435 0, 0, 228, 307, 229, 232, 244, 406, 226, 282,
436 0, 317, 0, 294, 307, 317, 0, 0, 19, 235,
437 363, 0, 0, 367, 236, 356, 0, 201, 234, 0,
438 242, 406, 88, 0, 406, 88, 0, 242, 406, 0,
439 406, 0, 407, 0, 177, 0, 240, 26, 27, 0,
440 240, 26, 241, 27, 0, 34, 240, 0, 24, 240,
441 25, 0, 240, 28, 408, 0, 240, 44, 408, 0,
442 240, 0, 179, 0, 240, 0, 242, 21, 240, 0,
443 407, 0, 177, 0, 243, 26, 27, 0, 243, 26,
444 241, 27, 0, 34, 243, 0, 24, 243, 25, 0,
445 243, 28, 408, 0, 243, 44, 408, 0, 243, 0,
446 244, 21, 243, 0, 407, 0, 177, 0, 179, 0,
447 24, 271, 25, 0, 178, 0, 111, 0, 245, 0,
448 246, 26, 271, 27, 0, 246, 24, 25, 0, 246,
449 24, 247, 25, 0, 70, 24, 270, 21, 329, 25,
450 0, 246, 307, 28, 408, 282, 0, 246, 307, 44,
451 408, 282, 0, 246, 47, 0, 246, 48, 0, 270,
452 0, 247, 21, 270, 0, 246, 0, 47, 248, 0,
453 48, 248, 0, 29, 254, 0, 34, 254, 0, 33,
454 254, 0, 32, 254, 0, 31, 254, 0, 30, 254,
455 0, 251, 0, 250, 0, 249, 28, 408, 0, 408,
456 0, 46, 282, 24, 329, 307, 21, 249, 25, 282,
457 0, 0, 282, 252, 253, 0, 42, 24, 329, 25,
458 0, 42, 248, 0, 43, 24, 329, 25, 0, 43,
459 248, 0, 248, 0, 24, 329, 25, 254, 0, 254,
460 0, 255, 34, 254, 0, 255, 35, 254, 0, 255,
461 36, 254, 0, 255, 0, 256, 33, 255, 0, 256,
462 32, 255, 0, 256, 0, 257, 49, 256, 0, 257,
463 50, 256, 0, 257, 0, 258, 37, 257, 0, 258,
464 38, 257, 0, 258, 51, 257, 0, 258, 52, 257,
465 0, 258, 0, 259, 53, 258, 0, 259, 54, 258,
466 0, 259, 0, 260, 29, 259, 0, 260, 0, 261,
467 39, 260, 0, 261, 0, 262, 40, 261, 0, 262,
468 0, 0, 263, 55, 264, 262, 0, 263, 0, 0,
469 265, 56, 266, 263, 0, 265, 0, 0, 0, 265,
470 41, 268, 271, 22, 269, 267, 0, 267, 0, 248,
471 23, 270, 0, 248, 57, 270, 0, 248, 58, 270,
472 0, 248, 59, 270, 0, 248, 60, 270, 0, 248,
473 61, 270, 0, 248, 62, 270, 0, 248, 63, 270,
474 0, 248, 64, 270, 0, 248, 65, 270, 0, 248,
475 66, 270, 0, 270, 0, 271, 21, 270, 0, 0,
476 271, 0, 267, 0, 275, 0, 71, 0, 280, 0,
477 294, 282, 18, 0, 0, 294, 307, 317, 307, 276,
478 282, 286, 18, 282, 0, 0, 294, 307, 317, 307,
479 23, 277, 282, 287, 286, 18, 282, 0, 317, 307,
480 0, 0, 317, 307, 23, 279, 282, 287, 0, 0,
481 45, 294, 281, 307, 284, 282, 18, 0, 45, 294,
482 282, 18, 0, 45, 284, 282, 18, 0, 0, 0,
483 285, 282, 0, 278, 0, 284, 21, 307, 278, 0,
484 0, 286, 21, 307, 278, 0, 270, 0, 19, 288,
485 20, 0, 19, 288, 21, 20, 0, 287, 0, 288,
486 21, 287, 0, 112, 0, 110, 0, 113, 0, 114,
487 0, 115, 0, 108, 282, 0, 109, 282, 0, 116,
488 282, 0, 117, 282, 0, 130, 282, 0, 131, 282,
489 0, 132, 282, 0, 133, 282, 0, 118, 282, 0,
490 120, 282, 0, 119, 282, 0, 128, 282, 0, 129,
491 282, 0, 121, 282, 0, 123, 282, 0, 139, 282,
492 0, 140, 282, 0, 142, 282, 0, 143, 282, 0,
493 141, 282, 0, 136, 282, 0, 151, 282, 0, 134,
494 282, 0, 135, 282, 0, 137, 282, 0, 124, 282,
495 0, 127, 282, 0, 125, 282, 0, 126, 282, 0,
496 156, 282, 0, 157, 282, 0, 148, 282, 0, 158,
497 282, 0, 149, 282, 0, 152, 282, 0, 153, 282,
498 0, 154, 282, 0, 155, 282, 0, 150, 282, 0,
499 159, 282, 0, 160, 282, 0, 163, 282, 0, 164,
500 282, 0, 161, 282, 0, 162, 282, 0, 175, 282,
501 0, 147, 0, 144, 0, 145, 0, 146, 0, 165,
502 307, 0, 167, 307, 0, 166, 307, 0, 168, 307,
503 0, 169, 307, 0, 170, 307, 0, 171, 307, 0,
504 172, 307, 0, 173, 307, 0, 174, 307, 0, 409,
505 307, 0, 298, 307, 0, 312, 307, 0, 291, 307,
506 0, 282, 294, 282, 0, 296, 0, 296, 85, 295,
507 88, 0, 329, 0, 329, 21, 295, 0, 289, 297,
508 0, 290, 297, 0, 292, 297, 0, 0, 294, 0,
509 0, 0, 307, 67, 408, 282, 19, 299, 360, 308,
510 361, 300, 20, 0, 0, 0, 307, 68, 408, 282,
511 19, 301, 360, 308, 361, 302, 20, 0, 307, 67,
512 408, 282, 19, 20, 0, 307, 68, 408, 282, 19,
513 20, 0, 0, 0, 307, 67, 282, 19, 303, 360,
514 308, 361, 304, 20, 0, 0, 0, 307, 68, 282,
515 19, 305, 360, 308, 361, 306, 20, 0, 307, 67,
516 282, 19, 20, 0, 307, 68, 282, 19, 20, 0,
517 307, 67, 408, 307, 0, 307, 68, 408, 307, 0,
518 0, 309, 0, 200, 0, 308, 309, 0, 294, 307,
519 310, 282, 18, 0, 294, 282, 18, 0, 311, 307,
520 0, 310, 21, 311, 307, 0, 317, 0, 22, 282,
521 273, 0, 317, 22, 282, 273, 0, 307, 69, 19,
522 314, 20, 282, 0, 0, 307, 69, 408, 19, 313,
523 314, 20, 282, 0, 307, 69, 408, 282, 0, 315,
524 0, 314, 21, 315, 0, 314, 21, 0, 408, 0,
525 408, 23, 282, 273, 0, 191, 0, 331, 0, 321,
526 182, 0, 321, 316, 0, 191, 0, 321, 191, 0,
527 324, 0, 307, 322, 0, 108, 0, 109, 0, 319,
528 0, 320, 319, 0, 34, 0, 34, 320, 0, 34,
529 321, 0, 34, 320, 321, 0, 323, 0, 323, 21,
530 5, 0, 408, 0, 323, 21, 408, 0, 5, 0,
531 325, 0, 325, 21, 5, 0, 0, 326, 328, 0,
532 0, 325, 21, 327, 328, 0, 282, 294, 316, 282,
533 0, 408, 0, 293, 0, 293, 330, 0, 321, 0,
534 332, 0, 321, 332, 0, 0, 332, 0, 282, 24,
535 307, 330, 25, 0, 26, 27, 0, 26, 273, 27,
536 0, 332, 26, 27, 0, 332, 26, 273, 27, 0,
537 282, 24, 25, 0, 282, 24, 324, 25, 0, 332,
538 282, 24, 25, 0, 332, 282, 24, 324, 25, 0,
539 349, 0, 350, 0, 353, 0, 356, 0, 369, 0,
540 372, 0, 403, 0, 377, 0, 405, 0, 336, 0,
541 334, 0, 343, 0, 336, 343, 0, 376, 336, 0,
542 402, 348, 11, 24, 271, 25, 18, 0, 402, 348,
543 11, 24, 271, 25, 0, 338, 343, 0, 0, 0,
544 13, 24, 272, 18, 272, 18, 339, 272, 340, 25,
545 0, 0, 180, 358, 24, 342, 380, 25, 0, 181,
546 0, 349, 0, 350, 0, 353, 0, 345, 367, 0,
547 345, 0, 346, 0, 369, 0, 344, 0, 337, 0,
548 341, 0, 405, 0, 24, 343, 25, 0, 1, 0,
549 371, 343, 0, 358, 19, 0, 362, 20, 0, 348,
550 0, 366, 0, 349, 0, 350, 0, 353, 0, 357,
551 0, 370, 0, 372, 0, 377, 0, 404, 0, 24,
552 348, 25, 0, 405, 0, 1, 0, 408, 22, 0,
553 107, 333, 0, 0, 6, 273, 351, 22, 0, 0,
554 98, 6, 273, 352, 22, 0, 0, 7, 354, 22,
555 0, 0, 98, 7, 355, 22, 0, 24, 356, 25,
556 0, 358, 364, 0, 358, 365, 359, 0, 0, 0,
557 0, 0, 0, 20, 0, 107, 20, 0, 368, 20,
558 0, 368, 107, 20, 0, 367, 20, 0, 367, 107,
559 20, 0, 367, 368, 20, 0, 367, 368, 107, 20,
560 0, 19, 363, 0, 19, 20, 0, 19, 366, 20,
561 0, 19, 367, 20, 0, 19, 367, 368, 20, 0,
562 348, 0, 366, 348, 0, 274, 0, 367, 274, 0,
563 333, 0, 368, 333, 0, 18, 0, 271, 18, 0,
564 18, 0, 271, 18, 0, 271, 0, 8, 24, 271,
565 25, 0, 371, 333, 0, 0, 371, 333, 9, 373,
566 333, 0, 0, 10, 24, 271, 374, 25, 333, 0,
567 11, 24, 271, 25, 0, 11, 24, 271, 25, 0,
568 0, 0, 180, 378, 358, 24, 379, 380, 25, 356,
569 401, 359, 0, 382, 0, 0, 380, 381, 21, 382,
570 0, 400, 0, 407, 0, 178, 0, 177, 0, 179,
571 0, 24, 271, 25, 0, 383, 0, 246, 26, 271,
572 27, 0, 246, 24, 25, 0, 246, 24, 247, 25,
573 0, 70, 24, 270, 21, 329, 25, 0, 246, 307,
574 28, 408, 282, 0, 246, 307, 44, 408, 282, 0,
575 246, 47, 0, 246, 48, 0, 384, 0, 47, 248,
576 0, 48, 248, 0, 29, 254, 0, 34, 254, 0,
577 33, 254, 0, 32, 254, 0, 31, 254, 0, 30,
578 254, 0, 251, 0, 385, 0, 24, 329, 25, 254,
579 0, 386, 0, 255, 34, 254, 0, 255, 35, 254,
580 0, 255, 36, 254, 0, 387, 0, 256, 33, 255,
581 0, 256, 32, 255, 0, 388, 0, 257, 49, 256,
582 0, 257, 50, 256, 0, 389, 0, 258, 37, 257,
583 0, 258, 38, 257, 0, 258, 51, 257, 0, 258,
584 52, 257, 0, 390, 0, 259, 53, 258, 0, 259,
585 54, 258, 0, 391, 0, 260, 29, 259, 0, 392,
586 0, 261, 39, 260, 0, 393, 0, 262, 40, 261,
587 0, 394, 0, 263, 55, 262, 0, 395, 0, 265,
588 56, 263, 0, 396, 0, 0, 0, 265, 41, 398,
589 271, 22, 399, 267, 0, 397, 0, 248, 23, 270,
590 0, 248, 57, 270, 0, 248, 58, 270, 0, 248,
591 59, 270, 0, 248, 60, 270, 0, 248, 61, 270,
592 0, 248, 62, 270, 0, 248, 63, 270, 0, 248,
593 64, 270, 0, 248, 65, 270, 0, 248, 66, 270,
594 0, 181, 0, 0, 12, 0, 375, 333, 0, 402,
595 333, 11, 24, 271, 25, 18, 0, 338, 333, 0,
596 375, 348, 0, 402, 348, 11, 24, 271, 25, 18,
597 0, 402, 348, 11, 24, 271, 25, 0, 338, 348,
598 0, 14, 408, 18, 0, 15, 18, 0, 97, 15,
599 18, 0, 16, 18, 0, 93, 16, 18, 0, 94,
600 16, 18, 0, 95, 16, 18, 0, 96, 16, 18,
601 0, 17, 18, 0, 17, 271, 18, 0, 0, 18,
602 0, 176, 0, 177, 0, 180, 0, 181, 0, 407,
603 0, 178, 0, 182, 0, 178, 0
609 static const short yyrline[] = { 0,
610 234, 235, 238, 239, 242, 243, 244, 245, 246, 247,
611 248, 251, 253, 257, 257, 262, 268, 272, 273, 277,
612 278, 280, 282, 298, 302, 309, 313, 319, 320, 322,
613 324, 340, 344, 351, 355, 361, 363, 363, 367, 368,
614 369, 370, 373, 376, 377, 380, 381, 384, 385, 388,
615 389, 392, 393, 396, 397, 400, 403, 404, 407, 408,
616 409, 410, 411, 414, 415, 418, 418, 421, 421, 424,
617 428, 429, 432, 432, 435, 435, 438, 442, 443, 446,
618 447, 450, 456, 463, 469, 476, 477, 478, 479, 480,
619 483, 486, 489, 490, 493, 494, 495, 496, 497, 498,
620 499, 500, 503, 509, 516, 522, 531, 537, 541, 543,
621 547, 550, 557, 565, 566, 569, 570, 573, 574, 575,
622 576, 577, 578, 579, 580, 584, 585, 589, 590, 593,
623 595, 597, 598, 599, 600, 601, 603, 607, 611, 623,
624 624, 625, 626, 627, 628, 631, 632, 633, 634, 635,
625 636, 637, 638, 639, 642, 643, 646, 647, 648, 649,
626 650, 651, 652, 653, 654, 655, 656, 659, 660, 663,
627 667, 668, 671, 672, 673, 674, 677, 678, 682, 683,
628 684, 685, 688, 689, 690, 693, 694, 695, 698, 699,
629 700, 701, 702, 705, 706, 707, 710, 711, 714, 715,
630 719, 720, 723, 724, 729, 735, 736, 742, 748, 749,
631 749, 751, 754, 755, 756, 757, 758, 759, 760, 761,
632 762, 763, 764, 765, 768, 769, 772, 773, 776, 781,
633 782, 783, 786, 799, 803, 804, 807, 812, 813, 813,
634 818, 819, 820, 821, 824, 827, 830, 833, 834, 837,
635 838, 841, 842, 843, 847, 849, 858, 859, 860, 861,
636 862, 865, 866, 867, 868, 869, 870, 871, 872, 873,
637 874, 875, 876, 877, 878, 879, 880, 881, 882, 883,
638 884, 885, 886, 887, 888, 889, 890, 891, 892, 893,
639 894, 895, 896, 897, 898, 899, 900, 901, 902, 903,
640 904, 905, 906, 907, 908, 909, 910, 913, 914, 915,
641 916, 919, 920, 921, 922, 923, 924, 925, 926, 927,
642 928, 929, 930, 931, 932, 935, 939, 940, 944, 945,
643 949, 950, 951, 954, 955, 958, 960, 962, 963, 965,
644 967, 968, 970, 972, 974, 976, 977, 979, 981, 982,
645 984, 986, 987, 990, 993, 994, 995, 998, 1000, 1004,
646 1006, 1010, 1011, 1012, 1016, 1018, 1018, 1020, 1023, 1025,
647 1027, 1030, 1035, 1042, 1043, 1044, 1051, 1055, 1056, 1060,
648 1061, 1064, 1065, 1068, 1069, 1072, 1073, 1074, 1075, 1078,
649 1079, 1082, 1083, 1086, 1087, 1088, 1091, 1091, 1092, 1093,
650 1096, 1108, 1124, 1125, 1128, 1129, 1130, 1133, 1134, 1137,
651 1139, 1140, 1141, 1142, 1143, 1145, 1147, 1149, 1155, 1156,
652 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1166, 1169, 1172,
653 1173, 1177, 1179, 1181, 1183, 1187, 1188, 1190, 1194, 1196,
654 1198, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
655 1210, 1211, 1212, 1213, 1216, 1222, 1225, 1228, 1229, 1232,
656 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242,
657 1245, 1246, 1252, 1253, 1254, 1255, 1258, 1259, 1260, 1261,
658 1264, 1265, 1269, 1272, 1275, 1278, 1281, 1284, 1287, 1288,
659 1289, 1290, 1292, 1293, 1295, 1297, 1304, 1308, 1310, 1312,
660 1314, 1318, 1319, 1322, 1323, 1326, 1327, 1330, 1331, 1334,
661 1335, 1336, 1339, 1347, 1352, 1353, 1357, 1358, 1361, 1366,
662 1369, 1370, 1371, 1379, 1380, 1380, 1384, 1385, 1386, 1397,
663 1404, 1405, 1408, 1409, 1410, 1411, 1412, 1414, 1415, 1416,
664 1417, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428,
665 1429, 1432, 1433, 1436, 1437, 1438, 1439, 1442, 1443, 1444,
666 1447, 1448, 1449, 1452, 1453, 1454, 1455, 1456, 1459, 1460,
667 1461, 1464, 1465, 1468, 1469, 1473, 1474, 1477, 1478, 1481,
668 1482, 1485, 1486, 1487, 1488, 1491, 1492, 1493, 1494, 1495,
669 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1505, 1506, 1509,
670 1512, 1514, 1516, 1520, 1521, 1523, 1525, 1528, 1529, 1530,
671 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1541, 1542, 1545,
672 1548, 1549, 1550, 1551, 1552, 1555, 1556
677 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
679 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
680 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
681 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
682 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
683 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
684 "TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP",
685 "DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP",
686 "MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
687 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
688 "VA_ARG","VA_DCL","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION","QITER",
689 "QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
690 "QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND","TENDMACRO",
691 "QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE","QFALLTHROUGH",
692 "QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED","QPRINTFLIKE",
693 "QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST","QVOLATILE",
694 "QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT","QIN",
695 "QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED",
696 "QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED",
697 "QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT",
698 "QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT",
699 "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE",
700 "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF",
701 "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE",
702 "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED",
703 "IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID","CCONSTANT","ITER_NAME","ITER_ENDNAME",
704 "TYPE_NAME","file","externalDefs","externalDef","constantDecl","fcnDecl","@1",
705 "plainFcn","plainNamedDecl","namedDeclBase","@2","@3","plainNamedDeclBase","@4",
706 "@5","iterDecl","@6","@7","macroDef","fcnDefHdr","optGlobMods","@8","optPlainGlobMods",
707 "@9","optGlobModsRest","optPlainGlobModsRest","specialClauses","globIdList",
708 "globIdListExpr","globId","globQual","optGlobQuals","optGlobModsAux","@10","@11",
709 "optPlainGlobModsAux","@12","@13","optMods","fcnMods","@14","fcnPlainMods","@15",
710 "specialTag","endStateTag","endSpecialTag","stateSpecialClause","specialClauseType",
711 "specialClause","@16","@17","fcnDefHdrAux","fcnBody","@18","@19","fcnDef","locModifies",
712 "locPlainModifies","modListExpr","mExpr","modList","specClauseListExpr","specClauseList",
713 "primaryExpr","postfixExpr","argumentExprList","unaryExpr","fieldDesignator",
714 "offsetofExpr","sizeofExpr","@20","sizeofExprAux","castExpr","timesExpr","plusExpr",
715 "shiftExpr","relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr",
716 "andExpr","@21","orExpr","@22","conditionalExpr","@23","@24","assignExpr","expr",
717 "optExpr","constantExpr","initializer","instanceDecl","@25","@26","namedInitializer",
718 "@27","typeDecl","@28","IsType","PushType","namedInitializerList","namedInitializerListAux",
719 "optDeclarators","init","initList","storageSpecifier","typeQualifier","typeModifier",
720 "typeSpecifier","completeType","completeTypeSpecifier","altType","completeTypeSpecifierAux",
721 "optCompleteType","suSpc","@29","@30","@31","@32","@33","@34","@35","@36","NotType",
722 "structDeclList","structDecl","structNamedDeclList","structNamedDecl","enumSpc",
723 "@37","enumeratorList","enumerator","optNamedDecl","namedDecl","genericParamList",
724 "innerMods","innerModsList","pointers","paramIdList","idList","paramTypeList",
725 "paramList","@38","@39","paramDecl","typeExpression","abstractDecl","optAbstractDeclBase",
726 "abstractDeclBase","stmt","iterBody","endBody","iterDefStmtList","iterDefIterationStmt",
727 "forPred","@40","@41","partialIterStmt","@42","iterDefStmt","iterSelectionStmt",
728 "openScope","closeScope","macroBody","stmtErr","labeledStmt","caseStmt","@43",
729 "@44","defaultStmt","@45","@46","compoundStmt","compoundStmtErr","CreateInnerScope",
730 "DeleteInnerScope","CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe",
731 "compoundStmtRest","compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList",
732 "stmtList","expressionStmt","expressionStmtErr","ifPred","selectionStmt","@47",
733 "@48","whilePred","iterWhilePred","iterStmt","@49","@50","iterArgList","@51",
734 "iterArgExpr","primaryIterExpr","postfixIterExpr","unaryIterExpr","castIterExpr",
735 "timesIterExpr","plusIterExpr","shiftIterExpr","relationalIterExpr","equalityIterExpr",
736 "bitandIterExpr","xorIterExpr","bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr",
737 "@52","@53","assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr",
738 "jumpStmt","optSemi","id","newId","typeName", NULL
742 static const short yyr1[] = { 0,
743 183, 183, 184, 184, 185, 185, 185, 185, 185, 185,
744 185, 186, 186, 188, 187, 189, 189, 190, 190, 191,
745 191, 191, 191, 192, 191, 193, 191, 194, 194, 194,
746 194, 195, 194, 196, 194, 198, 199, 197, 200, 200,
747 200, 200, 201, 203, 202, 205, 204, 206, 206, 207,
748 207, 208, 208, 209, 209, 210, 211, 211, 212, 212,
749 212, 212, 212, 213, 213, 215, 214, 216, 214, 214,
750 214, 214, 218, 217, 219, 217, 217, 217, 217, 220,
751 220, 222, 221, 224, 223, 225, 225, 225, 225, 225,
752 226, 227, 228, 228, 229, 229, 229, 229, 229, 229,
753 229, 229, 231, 230, 232, 230, 233, 233, 235, 234,
754 236, 234, 237, 238, 238, 239, 239, 240, 240, 240,
755 240, 240, 240, 240, 240, 241, 241, 242, 242, 243,
756 243, 243, 243, 243, 243, 243, 243, 244, 244, 245,
757 245, 245, 245, 245, 245, 246, 246, 246, 246, 246,
758 246, 246, 246, 246, 247, 247, 248, 248, 248, 248,
759 248, 248, 248, 248, 248, 248, 248, 249, 249, 250,
760 252, 251, 253, 253, 253, 253, 254, 254, 255, 255,
761 255, 255, 256, 256, 256, 257, 257, 257, 258, 258,
762 258, 258, 258, 259, 259, 259, 260, 260, 261, 261,
763 262, 262, 263, 264, 263, 265, 266, 265, 267, 268,
764 269, 267, 270, 270, 270, 270, 270, 270, 270, 270,
765 270, 270, 270, 270, 271, 271, 272, 272, 273, 274,
766 274, 274, 275, 276, 275, 277, 275, 278, 279, 278,
767 281, 280, 280, 280, 282, 283, 284, 285, 285, 286,
768 286, 287, 287, 287, 288, 288, 289, 289, 289, 289,
769 289, 290, 290, 290, 290, 290, 290, 290, 290, 290,
770 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
771 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
772 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
773 290, 290, 290, 290, 290, 290, 290, 291, 291, 291,
774 291, 292, 292, 292, 292, 292, 292, 292, 292, 292,
775 292, 292, 292, 292, 292, 293, 294, 294, 295, 295,
776 296, 296, 296, 297, 297, 299, 300, 298, 301, 302,
777 298, 298, 298, 303, 304, 298, 305, 306, 298, 298,
778 298, 298, 298, 307, 308, 308, 308, 309, 309, 310,
779 310, 311, 311, 311, 312, 313, 312, 312, 314, 314,
780 314, 315, 315, 316, 316, 316, 316, 317, 317, 318,
781 318, 319, 319, 320, 320, 321, 321, 321, 321, 322,
782 322, 323, 323, 324, 324, 324, 326, 325, 327, 325,
783 328, 328, 329, 329, 330, 330, 330, 331, 331, 332,
784 332, 332, 332, 332, 332, 332, 332, 332, 333, 333,
785 333, 333, 333, 333, 333, 333, 333, 334, 335, 336,
786 336, 337, 337, 337, 337, 339, 340, 338, 342, 341,
787 341, 343, 343, 343, 343, 343, 343, 343, 343, 343,
788 343, 343, 343, 343, 344, 345, 346, 347, 347, 348,
789 348, 348, 348, 348, 348, 348, 348, 348, 348, 348,
790 349, 349, 351, 350, 352, 350, 354, 353, 355, 353,
791 356, 356, 357, 358, 359, 360, 361, 362, 363, 363,
792 363, 363, 363, 363, 363, 363, 364, 365, 365, 365,
793 365, 366, 366, 367, 367, 368, 368, 369, 369, 370,
794 370, 370, 371, 372, 373, 372, 374, 372, 375, 376,
795 378, 379, 377, 380, 381, 380, 382, 382, 382, 382,
796 383, 383, 384, 384, 384, 384, 384, 384, 384, 384,
797 384, 385, 385, 385, 385, 385, 385, 385, 385, 385,
798 385, 386, 386, 387, 387, 387, 387, 388, 388, 388,
799 389, 389, 389, 390, 390, 390, 390, 390, 391, 391,
800 391, 392, 392, 393, 393, 394, 394, 395, 395, 396,
801 396, 397, 398, 399, 397, 400, 400, 400, 400, 400,
802 400, 400, 400, 400, 400, 400, 400, 401, 401, 402,
803 403, 403, 403, 404, 404, 404, 404, 405, 405, 405,
804 405, 405, 405, 405, 405, 405, 405, 406, 406, 407,
805 408, 408, 408, 408, 408, 409, 409
808 static const short yyr2[] = { 0,
809 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
810 1, 8, 11, 0, 5, 1, 3, 1, 2, 1,
811 6, 3, 6, 0, 6, 0, 7, 1, 6, 3,
812 6, 0, 6, 0, 7, 0, 0, 10, 3, 3,
813 3, 2, 1, 0, 2, 0, 2, 1, 2, 1,
814 2, 1, 2, 1, 3, 2, 1, 1, 1, 1,
815 1, 1, 1, 0, 2, 0, 6, 0, 6, 1,
816 1, 0, 0, 5, 0, 5, 1, 1, 0, 1,
817 0, 0, 3, 0, 3, 1, 1, 1, 1, 1,
818 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
819 1, 1, 0, 7, 0, 8, 1, 3, 0, 3,
820 0, 3, 2, 3, 2, 2, 1, 1, 1, 3,
821 4, 2, 3, 3, 3, 1, 1, 1, 3, 1,
822 1, 3, 4, 2, 3, 3, 3, 1, 3, 1,
823 1, 1, 3, 1, 1, 1, 4, 3, 4, 6,
824 5, 5, 2, 2, 1, 3, 1, 2, 2, 2,
825 2, 2, 2, 2, 2, 1, 1, 3, 1, 9,
826 0, 3, 4, 2, 4, 2, 1, 4, 1, 3,
827 3, 3, 1, 3, 3, 1, 3, 3, 1, 3,
828 3, 3, 3, 1, 3, 3, 1, 3, 1, 3,
829 1, 3, 1, 0, 4, 1, 0, 4, 1, 0,
830 0, 7, 1, 3, 3, 3, 3, 3, 3, 3,
831 3, 3, 3, 3, 1, 3, 0, 1, 1, 1,
832 1, 1, 3, 0, 9, 0, 11, 2, 0, 6,
833 0, 7, 4, 4, 0, 0, 2, 1, 4, 0,
834 4, 1, 3, 4, 1, 3, 1, 1, 1, 1,
835 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
836 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
837 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
838 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
839 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
840 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
841 2, 2, 2, 2, 2, 3, 1, 4, 1, 3,
842 2, 2, 2, 0, 1, 0, 0, 11, 0, 0,
843 11, 6, 6, 0, 0, 10, 0, 0, 10, 5,
844 5, 4, 4, 0, 1, 1, 2, 5, 3, 2,
845 4, 1, 3, 4, 6, 0, 8, 4, 1, 3,
846 2, 1, 4, 1, 1, 2, 2, 1, 2, 1,
847 2, 1, 1, 1, 2, 1, 2, 2, 3, 1,
848 3, 1, 3, 1, 1, 3, 0, 2, 0, 4,
849 4, 1, 1, 2, 1, 1, 2, 0, 1, 5,
850 2, 3, 3, 4, 3, 4, 4, 5, 1, 1,
851 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
852 2, 2, 7, 6, 2, 0, 0, 10, 0, 6,
853 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
854 1, 1, 3, 1, 2, 2, 2, 1, 1, 1,
855 1, 1, 1, 1, 1, 1, 1, 3, 1, 1,
856 2, 2, 0, 4, 0, 5, 0, 3, 0, 4,
857 3, 2, 3, 0, 0, 0, 0, 0, 1, 2,
858 2, 3, 2, 3, 3, 4, 2, 2, 3, 3,
859 4, 1, 2, 1, 2, 1, 2, 1, 2, 1,
860 2, 1, 4, 2, 0, 5, 0, 6, 4, 4,
861 0, 0, 10, 1, 0, 4, 1, 1, 1, 1,
862 1, 3, 1, 4, 3, 4, 6, 5, 5, 2,
863 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
864 1, 1, 4, 1, 3, 3, 3, 1, 3, 3,
865 1, 3, 3, 1, 3, 3, 3, 3, 1, 3,
866 3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
867 3, 1, 0, 0, 7, 1, 3, 3, 3, 3,
868 3, 3, 3, 3, 3, 3, 3, 1, 0, 1,
869 2, 7, 2, 2, 7, 6, 2, 3, 2, 3,
870 2, 3, 3, 3, 3, 2, 3, 0, 1, 1,
874 static const short yydefact[] = { 0,
875 11, 386, 354, 231, 354, 14, 0, 0, 0, 0,
876 245, 245, 258, 257, 259, 260, 261, 245, 245, 245,
877 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
878 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
879 245, 245, 245, 309, 310, 311, 308, 245, 245, 245,
880 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
881 245, 245, 245, 245, 354, 354, 354, 354, 354, 354,
882 354, 354, 354, 354, 245, 620, 621, 625, 622, 623,
883 626, 0, 3, 6, 7, 378, 8, 9, 354, 43,
884 618, 10, 230, 232, 0, 334, 334, 354, 334, 354,
885 327, 354, 0, 354, 107, 245, 624, 20, 354, 382,
886 383, 384, 387, 388, 248, 245, 245, 241, 354, 627,
887 354, 354, 625, 0, 470, 245, 477, 0, 0, 0,
888 600, 0, 0, 0, 0, 245, 510, 0, 245, 245,
889 245, 245, 245, 245, 245, 245, 245, 0, 42, 0,
890 0, 0, 0, 0, 0, 245, 145, 141, 144, 142,
891 521, 146, 157, 177, 167, 166, 179, 183, 186, 189,
892 194, 197, 199, 201, 203, 206, 209, 213, 225, 512,
893 171, 0, 0, 502, 460, 461, 462, 463, 0, 0,
894 464, 245, 465, 0, 466, 0, 467, 469, 140, 0,
895 454, 0, 508, 0, 484, 441, 0, 0, 0, 450,
896 0, 451, 430, 449, 446, 447, 442, 443, 444, 0,
897 0, 448, 0, 0, 0, 452, 429, 0, 262, 263,
898 264, 265, 270, 272, 271, 275, 276, 287, 289, 290,
899 288, 273, 274, 266, 267, 268, 269, 284, 285, 282,
900 286, 277, 278, 281, 279, 280, 293, 295, 300, 283,
901 296, 297, 298, 299, 291, 292, 294, 301, 302, 305,
902 306, 303, 304, 312, 314, 313, 315, 316, 317, 318,
903 319, 320, 321, 307, 4, 245, 0, 109, 113, 504,
904 354, 354, 619, 5, 354, 335, 331, 332, 325, 333,
905 0, 245, 245, 323, 245, 245, 0, 324, 379, 322,
906 385, 389, 354, 0, 247, 354, 0, 238, 245, 618,
907 16, 18, 0, 354, 245, 28, 397, 245, 141, 144,
908 177, 229, 473, 140, 0, 245, 245, 245, 245, 0,
909 609, 611, 616, 0, 0, 354, 403, 0, 0, 160,
910 165, 164, 163, 162, 161, 0, 245, 158, 159, 245,
911 0, 0, 0, 0, 0, 245, 479, 245, 472, 245,
912 419, 420, 421, 422, 0, 423, 424, 245, 426, 245,
913 425, 427, 484, 245, 245, 153, 154, 0, 245, 245,
914 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
915 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
916 245, 245, 245, 245, 245, 204, 210, 207, 511, 245,
917 0, 607, 39, 0, 485, 503, 514, 604, 0, 471,
918 245, 0, 0, 0, 509, 40, 431, 435, 445, 456,
919 457, 455, 0, 0, 41, 22, 245, 397, 354, 245,
920 484, 505, 245, 233, 108, 354, 0, 329, 0, 354,
921 0, 354, 0, 245, 245, 244, 245, 243, 239, 354,
922 0, 245, 0, 354, 245, 19, 394, 0, 0, 380,
923 395, 245, 0, 0, 478, 0, 517, 0, 228, 0,
924 608, 617, 143, 245, 245, 0, 405, 404, 406, 245,
925 468, 245, 0, 612, 613, 614, 615, 610, 475, 0,
926 0, 603, 354, 482, 601, 0, 0, 148, 0, 155,
927 0, 0, 0, 214, 215, 216, 217, 218, 219, 220,
928 221, 222, 223, 224, 180, 181, 182, 185, 184, 187,
929 188, 190, 191, 192, 193, 195, 196, 198, 200, 202,
930 245, 245, 245, 226, 245, 245, 172, 498, 144, 502,
931 0, 354, 483, 515, 0, 0, 453, 439, 0, 0,
932 24, 0, 489, 245, 506, 110, 354, 245, 354, 484,
933 112, 245, 234, 328, 245, 344, 0, 352, 347, 0,
934 353, 0, 369, 372, 366, 368, 249, 245, 245, 618,
935 15, 30, 245, 397, 245, 17, 381, 390, 392, 36,
936 399, 354, 398, 402, 474, 513, 0, 519, 245, 326,
937 411, 0, 397, 407, 245, 0, 178, 354, 245, 0,
938 480, 481, 497, 0, 522, 245, 149, 147, 245, 245,
939 205, 0, 208, 245, 174, 245, 176, 499, 500, 245,
940 245, 245, 520, 245, 245, 354, 44, 26, 490, 493,
941 245, 245, 491, 245, 507, 0, 236, 245, 330, 350,
942 486, 336, 351, 486, 339, 245, 371, 245, 0, 0,
943 245, 245, 245, 0, 32, 0, 245, 0, 46, 396,
944 245, 408, 245, 0, 412, 415, 245, 0, 413, 0,
945 397, 0, 0, 476, 245, 245, 156, 151, 152, 211,
946 0, 0, 501, 516, 0, 245, 245, 245, 245, 245,
947 245, 245, 245, 245, 0, 141, 144, 142, 157, 177,
948 166, 183, 186, 189, 194, 197, 199, 201, 203, 206,
949 0, 525, 524, 533, 542, 552, 554, 558, 561, 564,
950 569, 572, 574, 576, 578, 580, 582, 586, 527, 140,
951 0, 23, 25, 72, 44, 494, 495, 245, 492, 21,
952 245, 250, 354, 342, 486, 354, 343, 486, 365, 370,
953 245, 0, 242, 245, 252, 240, 245, 0, 354, 46,
954 34, 0, 391, 393, 37, 79, 400, 374, 0, 245,
955 408, 375, 409, 518, 436, 0, 416, 414, 417, 0,
956 0, 150, 0, 525, 245, 173, 175, 606, 0, 0,
957 160, 165, 164, 163, 162, 161, 158, 159, 245, 245,
958 245, 153, 154, 0, 245, 245, 245, 245, 245, 245,
959 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
960 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
961 245, 204, 583, 207, 440, 0, 434, 66, 82, 70,
962 86, 87, 88, 89, 90, 93, 94, 45, 72, 48,
963 71, 354, 354, 52, 27, 496, 245, 0, 356, 354,
964 354, 355, 354, 354, 354, 373, 245, 255, 0, 250,
965 12, 31, 33, 46, 29, 618, 73, 84, 77, 47,
966 79, 50, 78, 397, 401, 376, 377, 245, 410, 418,
967 0, 169, 0, 484, 212, 605, 143, 245, 0, 148,
968 0, 0, 0, 0, 587, 588, 589, 590, 591, 592,
969 593, 594, 595, 596, 597, 180, 181, 182, 185, 184,
970 187, 188, 190, 191, 192, 193, 195, 196, 198, 200,
971 202, 579, 245, 581, 245, 433, 354, 64, 618, 49,
972 103, 0, 53, 250, 245, 354, 0, 245, 357, 345,
973 354, 348, 354, 367, 253, 245, 618, 35, 0, 354,
974 64, 618, 51, 245, 437, 245, 0, 602, 599, 178,
975 245, 149, 147, 245, 245, 0, 526, 354, 59, 60,
976 61, 62, 63, 618, 54, 64, 0, 0, 0, 119,
977 83, 128, 618, 0, 118, 0, 95, 100, 99, 98,
978 97, 96, 101, 102, 105, 0, 235, 245, 359, 245,
979 245, 354, 362, 0, 337, 0, 340, 254, 256, 0,
980 38, 618, 618, 85, 618, 117, 245, 0, 170, 168,
981 598, 485, 0, 151, 152, 584, 0, 64, 0, 65,
982 58, 56, 57, 0, 122, 0, 0, 0, 0, 0,
983 115, 0, 0, 131, 138, 618, 130, 0, 245, 251,
984 245, 245, 0, 360, 245, 346, 0, 349, 0, 13,
985 81, 81, 116, 438, 523, 150, 245, 81, 55, 81,
986 123, 120, 127, 126, 0, 124, 125, 129, 114, 0,
987 134, 0, 0, 0, 0, 0, 618, 237, 363, 354,
988 358, 245, 338, 341, 74, 80, 76, 585, 67, 69,
989 121, 135, 132, 0, 136, 137, 139, 92, 245, 0,
990 361, 364, 133, 104, 91, 245, 106, 0, 0, 0
993 static const short yydefgoto[] = { 1158,
994 82, 83, 84, 85, 122, 320, 321, 86, 657, 765,
995 322, 790, 904, 87, 689, 906, 889, 89, 763, 764,
996 795, 796, 878, 910, 879, 1014, 1015, 1072, 1016, 1017,
997 880, 967, 968, 912, 990, 991, 1135, 1136, 969, 913,
998 992, 882, 1156, 1149, 883, 1035, 884, 1026, 1088, 90,
999 289, 449, 451, 91, 1021, 1054, 1022, 1115, 1023, 1085,
1000 1086, 162, 163, 519, 164, 921, 165, 166, 421, 557,
1001 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
1002 551, 177, 553, 178, 552, 815, 179, 207, 490, 333,
1003 290, 93, 668, 771, 115, 599, 94, 316, 181, 287,
1004 116, 117, 888, 786, 899, 96, 97, 98, 99, 347,
1005 291, 457, 101, 297, 102, 775, 1097, 778, 1099, 671,
1006 1044, 674, 1046, 103, 891, 892, 1041, 1042, 104, 679,
1007 592, 593, 800, 119, 479, 112, 113, 106, 607, 608,
1008 480, 481, 482, 691, 613, 348, 806, 802, 499, 369,
1009 208, 228, 209, 210, 370, 918, 1058, 212, 654, 213,
1010 214, 215, 216, 183, 426, 371, 372, 484, 630, 373,
1011 335, 510, 374, 188, 375, 563, 773, 980, 221, 576,
1012 514, 425, 190, 577, 578, 376, 191, 192, 377, 651,
1013 617, 378, 224, 379, 383, 706, 742, 866, 743, 744,
1014 745, 746, 747, 748, 749, 750, 751, 752, 753, 754,
1015 755, 756, 757, 758, 963, 1107, 759, 1062, 380, 381,
1016 197, 382, 294, 334, 200, 109
1019 static const short yypact[] = { 1939,
1020 -32768, 336, 5570,-32768, 6381,-32768, 592, 2889, 3255, 3255,
1021 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1022 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1023 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1024 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1025 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1026 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1027 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 420,-32768,-32768,
1028 -32768, 2122,-32768,-32768,-32768, 148,-32768,-32768, 5154,-32768,
1029 109,-32768,-32768,-32768, 170, 6220, 6220,-32768, 6220, 213,
1030 158,-32768, 730,-32768,-32768, 592,-32768,-32768,-32768,-32768,
1031 -32768,-32768, 336,-32768,-32768, 234,-32768, 213,-32768,-32768,
1032 -32768, 5570,-32768, 252,-32768, 5581,-32768, 270, 289, 309,
1033 -32768, 319, 592, 355, 391, 1018,-32768, 2482, 5581, 5581,
1034 5581, 5581, 5581, 5581,-32768, 5732, 5732, 392,-32768, 408,
1035 441, 450, 469, 453, 277, 4608,-32768, 468, 499,-32768,
1036 504,-32768, 758, 871,-32768,-32768,-32768, 1010, 555, 665,
1037 329, 738, 507, 512, 498, 501, 143,-32768,-32768, 133,
1038 -32768, 3395, 474, 479,-32768,-32768,-32768,-32768, 560, 3029,
1039 -32768, 4608,-32768, 3395,-32768, 3395,-32768,-32768, 573, 582,
1040 -32768, 612,-32768, 2664, 504, 590, 477, 550, 3072,-32768,
1041 3255,-32768,-32768,-32768, 5977,-32768,-32768,-32768,-32768, 633,
1042 647,-32768, 3255, 3255, 3395,-32768,-32768, 580,-32768,-32768,
1043 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1044 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1045 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1046 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1047 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1048 -32768,-32768,-32768,-32768,-32768, 652, 650,-32768,-32768,-32768,
1049 213, 4997,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1050 676, 68,-32768,-32768, 592, 592, 293,-32768, 148,-32768,
1051 -32768,-32768,-32768, 683,-32768,-32768, 689, 663, 68, 109,
1052 -32768, 364, 703,-32768, 592,-32768, -1, 5581,-32768,-32768,
1053 -32768,-32768,-32768,-32768, 719, 5581, 5581, 5581, 1481, 729,
1054 -32768,-32768,-32768, 485, 681, 5846, 305, 739, 751,-32768,
1055 -32768,-32768,-32768,-32768,-32768, 759, 5581,-32768,-32768, 5581,
1056 786, 820, 822, 827, 842, 5581,-32768, 4867,-32768, 4608,
1057 -32768,-32768,-32768,-32768, 843,-32768,-32768, 4608,-32768, 4608,
1058 -32768,-32768,-32768, 1509, 5581,-32768,-32768, 98, 5581, 5581,
1059 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581,
1060 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581,
1061 5581, 5581, 5581, 5581, 5581,-32768,-32768,-32768,-32768, 5581,
1062 768,-32768,-32768, 2300,-32768,-32768, 858,-32768, 881,-32768,
1063 5581, 705, 844, 878,-32768,-32768,-32768,-32768, 5977,-32768,
1064 -32768,-32768, 2846, 899,-32768,-32768, 5581, 181, 3497, 68,
1065 893,-32768, 68,-32768, 342, 6381, 864, 961, 968, 981,
1066 1044, 981, 592, 1048, 68,-32768, 68,-32768,-32768,-32768,
1067 924, 1002, 1013,-32768, 68, 364,-32768, 592, 1031,-32768,
1068 1022, 592, 244, 1052,-32768, 427, 1059, 458, 1059, 1086,
1069 -32768,-32768,-32768,-32768, 1685, 1060, 411,-32768, 425, 5581,
1070 -32768,-32768, 1078,-32768,-32768,-32768,-32768,-32768,-32768, 1087,
1071 1083,-32768, 3497,-32768,-32768, 1099, 1088,-32768, 516,-32768,
1072 123, 592, 592,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1073 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1010, 1010, 555,
1074 555, 665, 665, 665, 665, 329, 329, 738, 507, 512,
1075 5581, 5581, 5581,-32768, 5743, 5763,-32768,-32768, 5341,-32768,
1076 3212, 3674,-32768,-32768, 1106, 588,-32768,-32768, 1107, 1105,
1077 -32768, 1108,-32768, 4028,-32768,-32768, 3851, 4071,-32768, 893,
1078 -32768,-32768, 1111,-32768,-32768, 1115, 1117,-32768, 1118, 1121,
1079 -32768, 800,-32768, 1114,-32768,-32768,-32768, 234,-32768, 303,
1080 -32768,-32768, 5581, 377, 68,-32768,-32768, 1122,-32768,-32768,
1081 1137, 6381,-32768,-32768,-32768,-32768, 1125,-32768, 1481,-32768,
1082 -32768, 1119, 685, 425, 1768, 1130,-32768,-32768,-32768, 1140,
1083 -32768,-32768,-32768, 1135,-32768, 5581,-32768,-32768,-32768,-32768,
1084 498, 806, 501, 5581,-32768, 5581,-32768,-32768,-32768, 4207,
1085 4608, 5581,-32768, 5774, 5581,-32768,-32768,-32768,-32768,-32768,
1086 4250, 4386,-32768, 4429,-32768, 1139,-32768,-32768,-32768,-32768,
1087 -32768, 1145,-32768,-32768, 1147,-32768, 592,-32768, 592, 1150,
1088 5498,-32768,-32768, 1144,-32768, 1148,-32768, 39,-32768,-32768,
1089 592, 637, 4608, 1154,-32768,-32768, 114, 1153,-32768, 1171,
1090 96, 1181, 1178,-32768, 5581, 5774,-32768,-32768,-32768,-32768,
1091 1179, 1180,-32768,-32768, 660, 5581, 5581, 5581, 5581, 5581,
1092 5581, 5581, 5732, 5732, 1151, 725, 756, 791, 824, 1062,
1093 809, 1026, 914, 836, 565, 1037, 1177, 1170, 1172, 1155,
1094 194, 1188,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1095 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 814,
1096 826,-32768,-32768, 1109,-32768,-32768,-32768, 4565,-32768,-32768,
1097 -32768,-32768, 6310,-32768,-32768, 6310,-32768,-32768,-32768,-32768,
1098 5581, 1066,-32768, 5498,-32768,-32768, 5498, 1126,-32768,-32768,
1099 -32768, 1191,-32768,-32768,-32768, 1152,-32768, 148, 1193,-32768,
1100 353,-32768, 425,-32768,-32768, 1197,-32768,-32768,-32768, 1198,
1101 592,-32768, 828, 1203, 5581,-32768,-32768, 1200, 833, 1213,
1102 856, 857, 884, 890, 891, 933, 938, 939, 5581, 3424,
1103 5581, 940, 945, 190, 5581, 5581, 5581, 5581, 5581, 5581,
1104 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581,
1105 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581,
1106 5581, 5581,-32768, 5581,-32768, 1219, 1223, -14,-32768,-32768,
1107 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1005,-32768,
1108 -32768,-32768,-32768, 860,-32768,-32768, 5498, 543,-32768, 213,
1109 5225,-32768, 6310, 5225, 6310,-32768,-32768,-32768, 1081,-32768,
1110 -32768,-32768,-32768,-32768,-32768, 109, 21,-32768,-32768,-32768,
1111 1024,-32768,-32768, 396,-32768,-32768,-32768, 5024,-32768,-32768,
1112 598,-32768, 1224, 893,-32768,-32768, 946, 5581, 1222, 964,
1113 982, 376, 592, 592,-32768,-32768,-32768,-32768,-32768,-32768,
1114 -32768,-32768,-32768,-32768,-32768, 985, 992, 993, 956, 963,
1115 495, 589, 668, 699, 704, 740, 804, 862, 659, 586,
1116 74, 498, 5581, 501, 5774,-32768, 6108, 503, 91,-32768,
1117 -32768, 1020,-32768,-32768,-32768,-32768, 1226, 97,-32768,-32768,
1118 5225,-32768, 5225,-32768,-32768, 1788, 632,-32768, 1157, 6108,
1119 503, 91,-32768, 478,-32768,-32768, 592,-32768, 1065, 994,
1120 -32768, 1001, 1007,-32768,-32768, 1072,-32768, 4840,-32768,-32768,
1121 -32768,-32768,-32768, 644,-32768, 503, 930, 113, 113,-32768,
1122 -32768, 235, 734, 1159,-32768, 119,-32768,-32768,-32768,-32768,
1123 -32768,-32768,-32768,-32768,-32768, 801,-32768, 68,-32768,-32768,
1124 1227,-32768, 1229, 1232,-32768, 1233,-32768,-32768,-32768, 1161,
1125 -32768, 4682, 644,-32768, 734,-32768, 369, 1231,-32768,-32768,
1126 -32768,-32768, 1237, 1009, 1014,-32768, 1166, 503, 1169,-32768,
1127 -32768,-32768,-32768, 139, 235, 169, 592, 592, 113, 1183,
1128 -32768, 119, 119,-32768, 290, 955,-32768, 119,-32768,-32768,
1129 5581, 97, 1248,-32768,-32768,-32768, 1252,-32768, 1253,-32768,
1130 1195, 1195,-32768,-32768,-32768, 1033, 5581, 1195,-32768, 1195,
1131 -32768,-32768,-32768, 235, 1249,-32768,-32768, 235,-32768, 452,
1132 290, 404, 592, 592, 119, 1187, 955,-32768,-32768,-32768,
1133 -32768, 5581,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1134 -32768,-32768,-32768, 1251,-32768,-32768, 290,-32768,-32768, 1192,
1135 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1279, 1281,-32768
1138 static const short yypgoto[] = {-32768,
1139 -32768, 1201,-32768,-32768,-32768,-32768, -395, -101,-32768,-32768,
1140 960,-32768,-32768,-32768,-32768,-32768, 88,-32768, 521,-32768,
1141 -716,-32768,-32768,-32768, -715, 296, 220,-32768,-32768, 273,
1142 415,-32768,-32768, 379,-32768,-32768, -897, -698,-32768,-32768,
1143 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1144 -32768,-32768,-32768,-32768,-32768,-32768, -449, 177, 308, -954,
1145 215,-32768, -567, 472, 929,-32768,-32768, -565,-32768,-32768,
1146 17, -357, -337, -331, -314, -317, -397, -322, -447, -540,
1147 -32768, -551,-32768, -112,-32768,-32768, 1046, 1025, -604, -295,
1148 1,-32768,-32768,-32768, -463,-32768,-32768,-32768, 0, -252,
1149 845,-32768, -766, -664,-32768,-32768,-32768,-32768,-32768,-32768,
1150 130, 724,-32768, 412,-32768,-32768,-32768,-32768,-32768,-32768,
1151 -32768,-32768,-32768, 853, -665, -745,-32768, 218,-32768,-32768,
1152 638, 634, 515, 8, -403, 1205,-32768, 65,-32768,-32768,
1153 -607,-32768,-32768,-32768, 628, -293, 973,-32768, -490, 318,
1154 1311,-32768, 1098,-32768, 584,-32768,-32768,-32768,-32768, -99,
1155 -32768,-32768,-32768,-32768, 217, 1073, 1176,-32768,-32768, 1283,
1156 -32768,-32768, -359,-32768, 76, 262, -538, -721,-32768, 812,
1157 -32768,-32768, 902, -83, -306, 223,-32768, 232, 57,-32768,
1158 -32768, 160,-32768, 214,-32768,-32768, 622,-32768, 380,-32768,
1159 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1160 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1399,-32768,
1161 -32768, 1480, -229, 182, 426,-32768
1168 static const short yytable[] = { 95,
1169 92, 597, 95, 477, 309, 292, 624, 105, 511, 458,
1170 229, 230, 643, 332, 694, 698, 549, 231, 232, 233,
1171 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
1172 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
1173 254, 255, 256, 793, 572, 538, 539, 257, 258, 259,
1174 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1175 270, 271, 272, 273, 193, 881, 114, 540, 541, 473,
1176 509, -68, -68, 903, 284, 542, 543, 544, 545, 606,
1177 911, 95, 92, 189, 220, 220, 729, 88, 731, 105,
1178 471, 581, 550, 810, -577, 548, 546, 547, -577, 301,
1179 477, 2, 741, 641, 433, 95, -75, -75, 293, 437,
1180 894, 438, 414, 740, 1018, 314, 315, 317, 1040, 898,
1181 809, 323, 900, 442, 1019, 522, 293, 1120, 1121, 100,
1182 2, 439, 118, 987, 121, 776, 1018, 346, 729, 495,
1183 731, 523, 1082, 420, 356, 979, 1019, 2, 979, 638,
1184 419, 570, 1083, 420, 741, 350, 351, 352, 353, 354,
1185 355, -68, -68, 1111, 1076, 740, 1077, 194, 973, 88,
1186 1147, -246, 982, 286, -354, -354, -354, 312, -354, -354,
1187 881, 107, 1078, 417, 107, 477, 325, 988, 107, 199,
1188 199, 199, 1018, 295, 193, 1112, -75, -75, 418, 622,
1189 686, 803, 1019, 346, 1137, 571, 739, 1036, 628, 687,
1190 1139, 100, 1140, 189, 76, 77, 123, 933, 79, 80,
1191 511, 195, 974, 473, 184, 296, 296, 981, 296, 983,
1192 -245, 222, 222, 934, 863, 979, 893, 979, 193, 895,
1193 223, 223, 303, 76, 77, 123, 193, 79, 80, 864,
1194 193, 324, 193, 332, 313, 650, 737, 189, 739, 1045,
1195 1076, 1047, 1077, 107, 420, 189, 76, 1020, 493, 189,
1196 662, 189, 76, 77, 123, 327, 79, 80, 1078, 220,
1197 434, 193, 366, 367, 220, 447, 220, 107, 76, 1020,
1198 301, 458, 452, 336, 76, 1084, 732, 194, 220, 220,
1199 189, 95, 456, 107, 459, 461, 698, 684, 737, 455,
1200 803, 463, 337, 995, 107, 1122, 733, 1123, 95, 199,
1201 293, 1049, 734, 964, 323, 682, 470, 346, -245, 700,
1202 495, 738, 338, 1124, 332, 703, 736, 199, 2, 735,
1203 562, 194, 339, 437, 76, 1020, 496, 1113, 732, 194,
1204 711, 195, 712, 194, 349, 194, -354, -354, -354, -354,
1205 -354, -354, -354, 199, -354, 407, 408, 346, 733, 2,
1206 683, 199, 341, 199, 734, 199, -245, 199, 495, 409,
1207 410, 477, 332, 738, 194, 199, 2, -246, 736, 472,
1208 199, 735, 199, -405, 495, 195, 420, 729, 422, 731,
1209 477, 685, 1003, 195, 199, 199, 199, 195, 342, 195,
1210 428, 497, 429, 741, 962, 360, 535, 536, 537, -354,
1211 696, -354, 820, 361, 740, 108, 222, 1018, 108, -354,
1212 1143, 222, 124, 222, -245, 223, 495, 1019, 195, 452,
1213 223, 444, 223, 110, 111, 222, 222, 420, -245, 95,
1214 625, 616, 95, -627, 223, 223, 362, 579, 517, 587,
1215 582, 590, 960, 596, 95, 363, 95, 365, 76, 77,
1216 123, 603, 79, 80, 323, 494, 1142, 1122, 420, 1123,
1217 193, 612, 618, 107, 364, 896, 107, 107, 107, -621,
1218 332, 949, 950, 620, 435, 1124, 496, 420, 626, 189,
1219 107, 456, 492, 495, -627, 420, 107, 108, 298, 427,
1220 300, 2, 332, 951, 952, -562, 627, 739, 220, -562,
1221 -625, 953, 954, 955, 956, -622, 403, 404, 76, 77,
1222 123, 108, 79, 80, 916, 413, 636, 415, 961, 325,
1223 637, 959, 957, 958, 76, 77, 123, 326, 79, 80,
1224 414, 199, -354, -354, -354, 416, -354, -354, 340, 199,
1225 975, 199, 452, 976, 999, 423, 624, 737, 1074, 1075,
1226 -458, -354, -354, -354, 1090, -354, -354, 452, 424, 76,
1227 1020, 666, 1113, 194, 456, 494, 403, 404, 1009, 1010,
1228 798, 182, 211, 211, -624, -627, -627, 680, 681, -627,
1229 -627, 853, 854, 430, 323, 199, -575, 732, 420, -563,
1230 -575, -623, 653, -563, 413, 855, 856, 193, 1011, 1012,
1231 403, 404, 996, 626, 199, 997, 1114, 733, 456, 1118,
1232 199, 107, 1013, 734, 107, 431, 189, 195, 708, 709,
1233 560, 436, 738, 346, 107, 346, 107, 736, 107, 293,
1234 735, 440, 976, 76, 77, 123, 107, 79, 80, 107,
1235 -245, 293, 495, 107, 1068, 222, 441, 772, 332, 325,
1236 2, 445, 1114, 448, 223, 779, 989, 781, 446, -573,
1237 420, 787, 788, -573, 818, 469, 792, 512, -565, 477,
1238 612, 799, -565, 454, 199, 515, 496, 516, 419, 798,
1239 466, 420, 925, 107, 107, 493, 468, 1063, -354, 696,
1240 -354, 411, 412, 405, 406, 346, 405, 406, -354, -566,
1241 194, 182, 435, -566, -567, 420, 474, 108, -567, 493,
1242 460, 462, 464, 821, 822, 823, 824, 825, 826, 1024,
1243 485, 692, 199, 199, 108, -530, 491, 405, 406, -530,
1244 326, 293, 405, 406, 1079, 199, 801, 1050, 199, 199,
1245 -568, 497, 1056, 500, -568, 182, 575, 76, 77, 123,
1246 887, 79, 80, 182, 195, 501, -529, 182, 1067, 182,
1247 -529, 384, 502, 385, 1069, -354, 107, 211, 405, 406,
1248 411, 412, 211, 1080, 211, 1129, 305, 306, 307, 915,
1249 799, -354, 626, 504, 386, 387, 211, 211, 182, 555,
1250 556, -531, 76, 77, 123, -531, 79, 80, 1089, 676,
1251 677, 976, 1101, 1102, -570, 1103, 420, 710, -570, -551,
1252 575, 199, 199, -551, -528, 760, 1152, 505, -528, 506,
1253 407, 408, 199, 199, 507, 199, 420, 830, 420, 831,
1254 867, -354, 923, 420, 409, 410, 1126, 927, 107, 508,
1255 107, 513, 946, 947, 948, 801, 564, -354, 567, 107,
1256 832, 833, 107, 107, 199, 108, -545, -550, 108, 575,
1257 -545, -550, -571, 1008, 851, 852, -571, 760, 594, 977,
1258 108, 565, 108, 389, 575, 665, 984, 1150, 407, 408,
1259 326, 568, 890, 609, -549, 890, 1052, 614, -549, 569,
1260 -548, -547, 409, 410, -548, -547, 580, 274, 275, 276,
1261 277, 278, 279, 280, 281, 282, 283, 390, 391, 392,
1262 393, 394, 395, 396, 397, 398, 399, 871, 872, 873,
1263 874, 875, 876, 877, 1000, 849, 850, 639, 640, 199,
1264 299, 584, 302, -546, 304, 309, 308, -546, -543, -544,
1265 -540, 310, -543, -544, -540, -541, -532, 665, 714, -541,
1266 -532, 318, 293, 319, 1037, 1125, -560, 95, 332, 665,
1267 -560, 585, 107, -559, -535, 1043, 586, -559, -535, 400,
1268 401, 402, 107, 799, 1138, 1059, 400, 401, 402, -245,
1269 456, 582, 636, 1064, 1065, -555, 1002, 182, 452, -555,
1270 804, 601, -556, -557, -553, 388, -556, -557, -553, 332,
1271 890, -536, 890, 890, 890, -536, 211, -534, 602, -538,
1272 326, -534, 180, -538, -539, 343, 604, 95, -539, 1091,
1273 1093, 328, 611, 400, 401, 402, 139, 140, 141, 142,
1274 143, 144, 452, -537, 331, 610, 799, -537, 1057, 846,
1275 847, 848, 589, 145, 146, 147, 595, 331, 331, 331,
1276 331, 331, 331, 615, 358, 359, 868, 869, 870, 420,
1277 185, 217, 217, 623, 835, 897, 677, 148, 1128, 857,
1278 858, 95, 420, 1066, 1132, 907, 908, 909, 629, 1043,
1279 985, 986, 594, 619, 594, 76, 1071, 632, 631, 634,
1280 890, 635, 890, 794, 107, 107, 614, 108, 836, 837,
1281 838, 839, 840, 841, 842, 843, 844, 845, 157, 652,
1282 655, 656, 658, 667, 670, 672, 678, 673, 1027, 675,
1283 1028, 690, 688, 450, 182, 695, 760, 453, 1154, 693,
1284 1025, 1029, 1030, 701, 1031, 1157, 1032, 1033, 705, 107,
1285 344, 704, 345, 770, 774, 465, 777, 783, 467, 1034,
1286 789, 805, 791, 1025, 829, 107, 475, 807, 107, 478,
1287 868, 869, 870, 186, 218, 218, 871, 872, 873, 874,
1288 875, 876, 877, 76, 329, 330, 160, 808, 1073, 1025,
1289 1025, 811, 812, 816, 817, 859, 180, 1087, 860, 862,
1290 185, 861, 865, 901, 180, 905, 914, 926, 180, 107,
1291 180, 919, 920, 907, 908, 909, 108, 924, 432, 871,
1292 872, 873, 874, 875, 876, 877, 922, 928, 107, 965,
1293 966, 998, 1001, 1039, 1051, 1061, 1081, 1092, 1100, 180,
1294 1095, 1096, 1098, 1108, 185, 1104, 1110, 1025, 107, 107,
1295 1025, 1106, 185, 1087, 1087, 1131, 185, 869, 185, 1087,
1296 1119, 1133, 1134, 107, 1148, 1141, 217, 1153, 1159, 1155,
1297 1160, 217, 285, 217, 476, 885, 1053, 1109, 1070, 993,
1298 187, 219, 219, 970, 331, 217, 217, 185, 1144, 1055,
1299 478, 931, 1127, 1025, 107, 107, 1087, 583, 669, 1130,
1300 780, 598, 588, 186, 591, 917, 782, 311, 797, 498,
1301 227, 443, 600, 1105, 633, 561, 605, 814, 331, 331,
1302 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
1303 331, 331, 331, 331, 1007, 0, 0, 0, 0, 0,
1304 0, 0, 483, 0, 0, 0, 0, 186, 1004, 1005,
1305 486, 487, 488, 489, 0, 186, 0, 0, 0, 186,
1306 0, 186, 0, 0, 0, 331, 0, 0, 0, 218,
1307 0, 483, 0, 0, 218, 0, 218, 0, 0, 0,
1308 0, 0, 483, 0, 0, 0, 0, 0, 218, 218,
1309 186, 0, 0, 108, 0, 503, 196, 225, 225, 521,
1310 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
1311 187, 0, 1060, 331, 0, 0, 0, 0, 331, 520,
1312 0, 583, 0, 0, 524, 525, 526, 527, 528, 529,
1313 530, 531, 532, 533, 534, 0, 0, 0, 180, 0,
1314 0, 0, 0, 0, 0, 566, 478, 0, 0, 0,
1315 0, 0, 0, 108, 187, 554, 0, 0, 0, 0,
1316 0, 0, 187, 0, 0, 697, 187, 0, 187, 331,
1317 702, 331, 108, 645, 647, 0, 219, 198, 226, 226,
1318 0, 219, 0, 219, 0, 0, 185, 0, -227, 0,
1319 0, 0, 1116, 1117, 328, 219, 219, 187, 762, 139,
1320 140, 141, 142, 143, 144, 217, 0, 108, 0, 0,
1321 0, 0, 0, 0, 0, 0, 145, 146, 147, 0,
1322 0, 331, 328, 518, 0, 0, 196, 139, 140, 141,
1323 142, 143, 144, 0, 0, 0, 0, 0, 1145, 1146,
1324 148, 0, 0, 331, 145, 146, 147, 0, 0, 0,
1325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1326 0, 0, 0, 0, 0, 0, 642, 0, 148, 0,
1327 196, 834, 730, 0, 0, 180, 0, 0, 196, 0,
1328 0, 157, 196, 0, 196, 0, 0, 0, 0, 186,
1329 0, 0, 225, 0, 0, 0, 0, 225, 0, 225,
1330 0, 0, 0, 0, 0, 0, 0, 198, 218, 157,
1331 0, 225, 225, 196, 0, 0, 0, 0, 0, 0,
1332 0, 0, 0, 185, 730, 0, 0, 0, 0, 0,
1333 0, 902, 0, 489, 0, 331, 331, 331, 331, 331,
1334 331, 827, 828, 0, 0, 0, 76, 329, 330, 160,
1335 0, 198, 0, 0, 0, 0, 0, 0, 483, 198,
1336 483, 0, 0, 198, 0, 198, 715, 0, 0, 761,
1337 0, 707, 0, 226, 76, 329, 330, 160, 226, 0,
1338 226, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1339 0, 0, 226, 226, 198, 0, 187, 0, 328, 331,
1340 0, 621, 0, 139, 140, 141, 142, 143, 144, 0,
1341 0, 0, 0, 0, 0, 219, 785, 0, 0, 813,
1342 145, 146, 147, 0, 971, 972, 186, 0, 0, 0,
1343 819, 0, 978, 331, 0, 0, 0, 0, 0, 0,
1344 0, 0, 0, 0, 148, 0, 0, 0, 0, 0,
1345 0, 0, 0, 0, 0, 0, 994, 0, 0, 0,
1346 0, 0, 0, 0, 331, 331, 331, 331, 331, 331,
1347 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
1348 331, 328, 331, 0, 699, 157, 139, 140, 141, 142,
1349 143, 144, 0, 0, 0, 0, 784, 1048, 0, 0,
1350 0, 328, 0, 145, 146, 147, 139, 140, 141, 142,
1351 143, 144, 196, 0, 0, 0, 0, 0, 1038, 785,
1352 0, 0, 785, 145, 146, 147, 0, 148, 0, 0,
1353 0, 225, 0, 187, 0, 0, 0, 0, 0, 0,
1354 0, 0, 0, 0, 0, 932, 331, 148, 0, 0,
1355 76, 329, 330, 160, 0, 0, 0, 0, 0, 0,
1356 0, 0, 0, 0, 929, 520, 0, 0, 157, 0,
1357 935, 936, 937, 938, 939, 940, 941, 942, 943, 944,
1358 945, 0, 0, 730, 1094, 0, 0, 0, 157, 0,
1359 0, 0, 0, 198, 0, 0, 0, 0, 0, 0,
1360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1361 0, 0, 226, 0, 0, 0, 0, 0, 0, 0,
1362 0, 0, 785, 0, 0, 0, 0, 0, -1, 1,
1363 0, 0, 489, 76, 329, 330, 160, 0, 0, 0,
1364 0, 0, 0, 0, 0, 0, 0, 0, 0, 196,
1365 0, 0, -245, 76, 329, 330, 160, 0, 0, 0,
1366 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
1367 0, 0, 1151, 3, 0, 0, 0, 1006, 0, 0,
1368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1369 0, 0, 0, 0, 0, -354, -354, -354, 0, 4,
1370 0, 0, 0, 5, 6, 7, 0, 0, 0, 331,
1371 0, 0, 0, 0, 0, 0, 0, 8, 9, 10,
1372 0, 785, 0, 0, 0, 331, 0, 0, 0, 0,
1373 198, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1374 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1375 331, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1376 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1377 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1378 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1379 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1380 72, 73, 74, 75, 76, 77, 78, 0, 79, 80,
1381 81, -2, 1, 0, 0, 0, 0, 0, 0, 0,
1382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1383 0, 0, 0, 0, 0, -245, 0, 0, 0, 0,
1384 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
1385 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
1386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1387 0, 0, 0, 0, 0, 0, 0, 0, -354, -354,
1388 -354, 0, 4, 0, 0, 0, 5, 6, 7, 0,
1389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1390 8, 9, 10, 0, 0, 0, 0, 0, 0, 0,
1391 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
1392 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1393 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1394 30, 31, 32, 33, 34, 35, 36, 37, 38, 0,
1395 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1396 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1397 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1398 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1399 125, 79, 80, 81, 0, 126, 127, 128, 0, 129,
1400 130, 131, 132, 133, 134, 135, 136, 137, -484, 558,
1401 0, 0, 0, 138, 0, 0, 0, 0, 139, 140,
1402 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1403 0, -245, -245, 0, 3, 145, 146, 147, 0, 0,
1404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1405 0, 0, 0, 0, 0, 0, -354, -354, -354, 148,
1406 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1408 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1409 0, 0, 0, 0, 0, 0, 156, 11, 12, 13,
1410 157, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1411 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1412 32, 33, 34, 35, 36, 37, 38, 0, 39, 40,
1413 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1414 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1415 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1416 71, 72, 73, 74, 75, 76, 158, 559, 160, 161,
1417 80, 81, 125, 0, 0, 0, 0, 126, 127, 128,
1418 0, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1419 -484, 0, 0, 0, 0, 138, 0, 0, 0, 0,
1420 139, 140, 141, 142, 143, 144, 0, 0, 0, 0,
1421 0, 0, 0, -245, -245, 0, 0, 145, 146, 147,
1422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1423 0, 0, 0, 0, 0, 0, 0, 0, -245, -245,
1424 -245, 148, 0, 0, 0, 0, 0, 0, 0, 0,
1425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1426 0, 0, 0, 0, 150, 151, 152, 153, 154, 155,
1427 0, 0, 0, 0, 0, 0, 0, 0, 156, -245,
1428 -245, -245, 157, -245, -245, -245, -245, -245, -245, -245,
1429 -245, -245, -245, 0, -245, -245, -245, -245, -245, -245,
1430 -245, -245, -245, -245, -245, -245, -245, -245, -245, 0,
1431 -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
1432 -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
1433 -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
1434 -245, -245, -245, -245, -245, -245, -245, 76, 158, 159,
1435 160, 161, 80, -245, 201, 0, 0, 0, 0, 126,
1436 127, 128, 0, 0, 202, 131, 132, 133, 134, 135,
1437 136, 203, -484, -488, 0, 0, 0, 204, 0, 0,
1438 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1439 0, 0, 0, 0, 0, -245, -245, 0, 0, 145,
1440 146, 147, 0, 0, 0, 0, 0, 0, 0, 0,
1441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1442 -245, -245, -245, 148, 0, 0, 0, 0, 0, 0,
1443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1444 0, 0, 0, 0, 0, 0, 150, 151, 152, 153,
1445 154, 155, 0, 0, 0, 0, 0, 0, 0, 0,
1446 156, -245, -245, -245, 157, -245, -245, -245, -245, -245,
1447 -245, -245, -245, -245, -245, 0, -245, -245, -245, -245,
1448 -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
1449 -245, 0, -245, -245, -245, -245, -245, -245, -245, -245,
1450 -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
1451 -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
1452 -245, -245, -245, -245, -245, -245, -245, -245, -245, 76,
1453 158, 159, 160, 205, 206, -245, 201, 0, 0, 0,
1454 0, 126, 127, 128, 0, 0, 202, 131, 132, 133,
1455 134, 135, 136, 203, -432, -432, 0, 0, 0, 204,
1456 -432, 0, 0, 0, 139, 140, 141, 142, 143, 144,
1457 0, 0, 0, 0, 0, 0, 0, -245, -245, 125,
1458 0, 145, 146, 147, 126, 127, 128, 0, 129, 130,
1459 131, 132, 133, 134, 135, 136, 137, -484, 0, 0,
1460 0, 0, 138, 0, 0, 148, 0, 139, 140, 141,
1461 142, 143, 144, 0, 0, 0, 0, 0, 0, 0,
1462 -245, -245, 0, 0, 145, 146, 147, -432, 150, 151,
1463 152, 153, 154, 155, 0, 0, 0, 0, 0, 0,
1464 0, 0, 156, 0, 0, 0, 157, 0, 148, 0,
1465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1467 149, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1468 0, 0, 0, 0, 0, 156, 0, 0, 0, 157,
1469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1471 0, 76, 158, 159, 160, 205, 206, 0, 0, 125,
1472 0, 0, 0, 0, 126, 127, 128, 0, 129, 130,
1473 131, 132, 133, 134, 135, 136, 137, -484, 0, 0,
1474 0, 0, 138, 0, 0, 0, 0, 139, 140, 141,
1475 142, 143, 144, 0, 76, 158, 159, 160, 161, 80,
1476 -245, -245, 201, 0, 145, 146, 147, 126, 127, 128,
1477 0, 0, 202, 131, 132, 133, 134, 135, 136, 203,
1478 -484, -488, 0, 0, 0, 204, 0, 0, 148, 0,
1479 139, 140, 141, 142, 143, 144, 0, 0, 0, 0,
1480 0, 0, 0, -245, -245, 0, 0, 145, 146, 147,
1481 -459, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1482 0, 0, 0, 0, 0, 156, 0, 0, 0, 157,
1483 0, 148, 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1485 0, 0, 0, -428, 150, 151, 152, 153, 154, 155,
1486 0, 0, 0, 0, 0, 0, 0, 0, 156, 0,
1487 0, 0, 157, 0, 0, 0, 0, 0, 0, 0,
1488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1489 0, 0, 0, 0, 76, 158, 159, 160, 161, 80,
1490 0, 0, 125, 0, 0, 0, 0, 126, 127, 128,
1491 0, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1492 -484, 648, 0, 0, 0, 138, 0, 0, 0, 0,
1493 139, 140, 141, 142, 143, 144, 0, 76, 158, 159,
1494 160, 205, 206, -245, -245, 201, 0, 145, 146, 147,
1495 126, 127, 128, 0, 0, 202, 131, 132, 133, 134,
1496 135, 136, 203, -484, -488, 0, 0, 0, 204, 0,
1497 0, 148, 0, 139, 140, 141, 142, 143, 144, 0,
1498 0, 0, 0, 0, 0, 0, -245, -245, 0, 0,
1499 145, 146, 147, 0, 150, 151, 152, 153, 154, 155,
1500 0, 0, 0, 0, 0, 0, 0, 0, 156, 0,
1501 0, 0, 157, 0, 148, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503 0, 0, 0, 0, 0, 0, 0, 150, 151, 152,
1504 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1505 0, 156, 0, 0, 0, 157, 0, 0, 0, 0,
1506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1507 0, 0, 0, 0, 0, 0, 0, 76, 158, 159,
1508 160, 161, 80, 0, 0, 125, 0, 0, 0, 0,
1509 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1510 135, 136, 137, -484, 0, 0, 0, 0, 138, 0,
1511 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1512 76, 158, 159, 160, 205, 206, -245, -245, 0, 0,
1513 145, 146, 147, 0, 0, 0, 0, 328, 930, 0,
1514 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1515 0, 0, 0, 0, 148, 0, 0, 0, 0, 145,
1516 146, 147, 0, 0, 0, 0, 0, 0, 0, 0,
1517 0, 0, 0, 0, 0, 0, 0, 150, 151, 152,
1518 153, 154, 155, 148, 0, 0, 0, 0, 0, 0,
1519 0, 156, 126, 127, 128, 157, 129, 130, 131, 132,
1520 133, 134, 135, 136, 203, -484, 573, 0, 0, 0,
1521 368, 0, 0, 0, 0, 139, 140, 141, 142, 143,
1522 144, 0, 0, 0, 157, 0, 0, 0, -245, -245,
1523 0, 3, 145, 146, 147, 0, 0, 0, 0, 0,
1524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1525 0, 0, 0, 0, 0, 0, 148, 4, 0, 0,
1526 76, 158, 159, 160, 161, 80, 0, 0, 0, 0,
1527 0, 0, 0, 0, 0, 0, 0, 0, 0, 150,
1528 151, 152, 153, 154, 155, 0, 0, 0, 0, 76,
1529 329, 330, 160, 574, 11, 12, 13, 157, 14, 15,
1530 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1531 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1532 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1533 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1534 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1535 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1536 74, 75, 76, 158, 559, 160, 161, 80, 81, 126,
1537 127, 128, 0, 129, 130, 131, 132, 133, 134, 135,
1538 136, 203, -484, 649, 0, 0, 0, 368, 0, 0,
1539 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1540 0, 0, 0, 0, 0, -245, -245, 0, 3, 145,
1541 146, 147, 0, 0, 0, 0, 0, 0, 0, 0,
1542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1543 0, 0, 0, 148, 4, 0, 0, 0, 0, 0,
1544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1545 0, 0, 0, 0, 0, 0, 150, 151, 152, 153,
1546 154, 155, 0, 0, 0, 0, 0, 0, 0, 0,
1547 156, 11, 12, 13, 157, 14, 15, 16, 17, 18,
1548 19, 20, 21, 22, 23, 0, 24, 25, 26, 27,
1549 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1550 38, 0, 39, 40, 41, 42, 43, 44, 45, 46,
1551 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1552 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1553 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1554 158, 559, 160, 161, 80, 81, 126, 127, 128, 0,
1555 129, 130, 131, 132, 133, 134, 135, 136, 203, -484,
1556 660, 0, 0, 0, 368, 0, 0, 0, 0, 139,
1557 140, 141, 142, 143, 144, 0, 0, 0, 0, 0,
1558 0, 0, -245, -245, 0, 3, 145, 146, 147, 0,
1559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1561 148, 4, 0, 0, 0, 0, 0, 0, 0, 0,
1562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1563 0, 0, 0, 150, 151, 152, 153, 154, 155, 0,
1564 0, 0, 0, 0, 0, 0, 0, 661, 11, 12,
1565 13, 157, 14, 15, 16, 17, 18, 19, 20, 21,
1566 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1567 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1568 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1569 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1570 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1571 70, 71, 72, 73, 74, 75, 76, 158, 559, 160,
1572 161, 80, 81, 126, 127, 128, 0, 129, 130, 131,
1573 132, 133, 134, 135, 136, 203, -484, 659, 0, 0,
1574 0, 368, 0, 0, 0, 0, 139, 140, 141, 142,
1575 143, 144, 0, 0, 0, 0, 0, 0, 0, 0,
1576 0, 0, 0, 145, 146, 147, 126, 127, 128, 0,
1577 129, 130, 131, 132, 133, 134, 135, 136, 203, -484,
1578 663, 0, 0, 0, 368, 0, 0, 148, 0, 139,
1579 140, 141, 142, 143, 144, 0, 0, 0, 0, 0,
1580 0, 0, 0, 0, 0, 0, 145, 146, 147, 0,
1581 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1582 0, 0, 0, 0, 156, 0, 0, 0, 157, 0,
1583 148, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1585 0, 0, 0, 150, 151, 152, 153, 154, 155, 0,
1586 0, 0, 0, 0, 0, 0, 0, 664, 0, 0,
1587 0, 157, 0, 0, 0, 0, 0, 0, 0, 0,
1588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1589 0, 0, 0, 76, 158, 159, 160, 161, 80, 0,
1590 0, 0, 126, 127, 128, 0, 129, 130, 131, 132,
1591 133, 134, 135, 136, 203, -484, 713, 0, 0, 0,
1592 368, 0, 0, 0, 0, 139, 140, 141, 142, 143,
1593 144, 0, 0, 0, 0, 0, 76, 158, 159, 160,
1594 161, 80, 145, 146, 147, 126, 127, 128, 0, 129,
1595 130, 131, 132, 133, 134, 135, 136, 203, -484, 766,
1596 0, 0, 0, 368, 0, 0, 148, 0, 139, 140,
1597 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1598 0, 0, 0, 0, 0, 145, 146, 147, 0, 150,
1599 151, 152, 153, 154, 155, 0, 0, 0, 0, 0,
1600 0, 0, 0, 156, 0, 0, 0, 157, 0, 148,
1601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1603 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1604 0, 0, 0, 0, 0, 0, 156, 0, 0, 0,
1605 157, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1607 0, 0, 76, 158, 159, 160, 161, 80, 0, 0,
1608 0, 126, 127, 128, 0, 129, 130, 131, 132, 133,
1609 134, 135, 136, 203, -484, 767, 0, 0, 0, 368,
1610 0, 0, 0, 0, 139, 140, 141, 142, 143, 144,
1611 0, 0, 0, 0, 0, 76, 158, 159, 160, 161,
1612 80, 145, 146, 147, 126, 127, 128, 0, 129, 130,
1613 131, 132, 133, 134, 135, 136, 203, -484, 769, 0,
1614 0, 0, 368, 0, 0, 148, 0, 139, 140, 141,
1615 142, 143, 144, 0, 0, 0, 0, 0, 0, 0,
1616 0, 0, 0, 0, 145, 146, 147, 0, 150, 151,
1617 152, 153, 154, 155, 0, 0, 0, 0, 0, 0,
1618 0, 0, 768, 0, 0, 0, 157, 0, 148, 0,
1619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1621 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1622 0, 0, 0, 0, 0, 156, 0, 0, 0, 157,
1623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1625 0, 76, 158, 159, 160, 161, 80, 0, 0, 0,
1626 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1627 135, 136, 203, -484, 886, 0, 0, 0, 368, 0,
1628 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1629 0, 0, 0, 0, 76, 158, 159, 160, 161, 80,
1630 145, 146, 147, 126, 127, 128, 0, 129, 130, 131,
1631 132, 133, 134, 135, 136, 203, -484, 0, 0, 0,
1632 0, 368, 0, 0, 148, 0, 139, 140, 141, 142,
1633 143, 144, 0, 0, 0, 0, 0, 0, 0, 0,
1634 0, 0, 0, 145, 146, 147, 0, 150, 151, 152,
1635 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1636 0, 156, 0, 0, 0, 157, 0, 148, 0, 0,
1637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1638 0, 0, 0, 0, 0, 0, 0, 0, 0, 293,
1639 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1640 0, 0, 0, 0, 156, 0, 0, 0, 157, 0,
1641 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
1642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1643 76, 158, 159, 160, 161, 80, 0, 0, -354, -354,
1644 -354, 0, 4, 0, 0, 0, 0, 0, 0, 0,
1645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1647 0, 0, 0, 76, 158, 159, 160, 161, 80, 11,
1648 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1649 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1650 30, 31, 32, 33, 34, 35, 36, 37, 38, 0,
1651 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1652 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1653 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1654 69, 70, 71, 72, 73, 74, 75, 293, 0, 120,
1655 0, 0, 0, 81, 0, 0, 0, 0, 0, 0,
1656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1657 0, 0, 0, 0, 3, -484, 0, 0, 0, 0,
1658 368, 0, 0, 0, 0, 139, 140, 141, 142, 143,
1659 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1660 4, 0, 145, 146, 147, 0, 0, 0, 0, 0,
1661 0, 0, 0, 0, 0, 0, 0, -618, 0, 0,
1662 0, 0, 0, 0, 0, 0, 148, 0, 0, 0,
1663 0, 0, 0, 0, 0, 0, 0, 11, 12, 13,
1664 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1665 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1666 32, 33, 34, 35, 36, 37, 38, 157, 39, 40,
1667 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1668 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1669 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1670 71, 72, 73, 74, 75, -111, 0, 120, 0, 0,
1671 -111, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1673 0, 3, 76, 329, 330, 160, 0, 328, -227, 0,
1674 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1675 0, 0, 0, 0, 0, 0, 0, 4, 0, 145,
1676 146, 147, 0, 0, 0, 0, 0, 0, 0, 0,
1677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1678 0, 0, 0, 148, 0, 0, 0, 0, 0, 0,
1679 0, 0, 0, 0, 11, 12, 13, 0, 14, 15,
1680 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1681 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1682 35, 36, 37, 38, 157, 39, 40, 41, 42, 43,
1683 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1684 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1685 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1686 74, 75, 288, 0, 120, 0, 0, 0, 81, 0,
1687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1688 0, 0, 0, 0, 0, 0, 0, 0, 3, 76,
1689 329, 330, 160, 0, 0, 0, 0, 0, 0, 0,
1690 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1691 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
1692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1693 0, 0, 0, 0, -487, 0, 0, 0, 0, 0,
1694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1695 0, 11, 12, 13, 0, 14, 15, 16, 17, 18,
1696 19, 20, 21, 22, 23, 0, 24, 25, 26, 27,
1697 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1698 38, 0, 39, 40, 41, 42, 43, 44, 45, 46,
1699 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1700 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1701 67, 68, 69, 70, 71, 72, 73, 74, 75, 0,
1702 0, 120, 11, 12, 13, 81, 14, 15, 16, 17,
1703 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1704 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1705 37, 38, -625, 39, 40, 41, 42, 43, 44, 45,
1706 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1707 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1708 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1709 0, 0, 120, 0, 0, 0, 81, -627, -627, -627,
1710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1711 0, 0, 0, 0, 0, -627, 0, 0, 0, 0,
1712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1713 0, 0, 0, 0, 0, 0, 0, 0, -627, -627,
1714 -627, 0, -627, -627, -627, -627, -627, -627, -627, -627,
1715 -627, -627, 0, -627, -627, -627, -627, -627, -627, -627,
1716 -627, -627, -627, -627, -627, -627, -627, -627, 0, -627,
1717 -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
1718 -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
1719 -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
1720 -627, -627, -627, -627, -627, -627, 784, 0, 0, 0,
1721 0, 328, -627, 0, 0, 0, 139, 140, 141, 142,
1722 143, 144, 0, 0, 0, 0, 0, 0, 0, 0,
1723 0, 0, 0, 145, 146, 147, 0, 0, 0, 0,
1724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725 0, 0, 0, 0, 0, 0, 0, 148, 0, 0,
1726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1728 0, 0, 0, -245, 0, 0, 0, 0, 0, 0,
1729 0, 0, 0, 2, 328, 0, 0, 0, 157, 139,
1730 140, 141, 142, 143, 144, 0, 0, 0, 0, 0,
1731 0, 0, 0, 0, 0, 0, 145, 146, 147, 0,
1732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1734 148, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1736 0, 0, 0, 76, 329, 330, 160, 11, 12, 13,
1737 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1738 23, 157, 24, 25, 26, 27, 28, 29, 30, 31,
1739 32, 33, 34, 35, 36, 37, 38, 0, 39, 40,
1740 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1741 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1742 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1743 71, 72, 73, 74, 75, 76, 77, 78, 0, 79,
1744 80, 81, 0, 0, 0, 357, 76, 329, 330, 160,
1745 139, 140, 141, 142, 143, 144, 644, 0, 0, 0,
1746 0, 139, 140, 141, 142, 143, 144, 145, 146, 147,
1747 0, 0, 0, 0, 0, 0, 646, 0, 145, 146,
1748 147, 139, 140, 141, 142, 143, 144, 716, 0, 0,
1749 0, 148, 717, 718, 719, 720, 721, 722, 145, 146,
1750 147, 0, 148, 0, 0, 0, 0, 0, 0, 145,
1751 723, 724, 0, 0, 0, 0, 0, 0, 0, 0,
1752 0, 0, 148, 0, 0, 0, 0, 0, 0, 0,
1753 0, 0, 157, 725, 0, 0, 0, 0, 0, 0,
1754 0, 0, 0, 157, 0, 0, 0, 0, 0, 0,
1755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1756 0, 0, 0, 157, 0, 0, 0, 0, 0, 0,
1757 0, 0, 0, 0, 157, 0, 0, -171, -171, 0,
1758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1759 0, 0, 0, 0, 0, 0, 0, 76, 329, 330,
1760 160, 0, 0, 0, 0, 0, 0, 0, 76, 329,
1761 330, 160, 0, 0, 0, 0, 0, 0, 0, 0,
1762 0, 0, 0, 0, 0, 0, 0, 0, 76, 329,
1763 330, 160, 0, 0, 0, 0, 0, 0, 0, 76,
1764 726, 727, 728, 11, 12, 13, 0, 14, 15, 16,
1765 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
1766 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1767 36, 37, 38, 0, 39, 40, 41, 42, 43, 44,
1768 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1769 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1770 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1771 75, 3, 0, 120, 0, 0, 0, 81, 0, 0,
1772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1773 0, 0, 0, -354, -354, -354, 0, 4, 0, 0,
1774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1777 0, 0, 0, 0, 11, 12, 13, 0, 14, 15,
1778 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1779 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1780 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1781 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1782 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1783 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1784 74, 75, 3, 0, 120, 0, 0, 0, 81, 0,
1785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1786 0, 0, 0, 0, 0, 0, 0, 0, 4, 0,
1787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1790 0, 0, 0, 0, 0, 11, 12, 13, 0, 14,
1791 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1792 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1793 34, 35, 36, 37, 38, 0, 39, 40, 41, 42,
1794 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1795 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1796 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1797 73, 74, 75, 0, 0, 120, -354, -354, -354, 81,
1798 0, 0, 0, 0, 0, 0, 0, 0, 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 0, 0, 0, 0, 0, 0, 0, 11, 12, 13,
1802 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1803 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1804 32, 33, 34, 35, 36, 37, 38, 0, 39, 40,
1805 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1806 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1807 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1808 71, 72, 73, 74, 75, 0, 0, 120, 8, 9,
1809 10, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1810 0, 0, 0, 0, 0, 0, 0, 11, 12, 13,
1811 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1812 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1813 32, 33, 34, 35, 36, 37, 38, 0, 39, 40,
1814 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1815 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1816 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1817 71, 72, 73, 74, 75, 0, 0, 120, 11, 12,
1818 13, 81, 14, 15, 16, 17, 18, 19, 20, 21,
1819 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1820 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1821 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1822 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1823 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1824 70, 71, 72, 73, 74, 75, 0, 0, 120, 0,
1828 static const short yycheck[] = { 0,
1829 0, 465, 3, 5, 106, 89, 497, 0, 368, 303,
1830 11, 12, 553, 126, 619, 623, 414, 18, 19, 20,
1831 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1832 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1833 41, 42, 43, 5, 448, 403, 404, 48, 49, 50,
1834 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1835 61, 62, 63, 64, 8, 764, 2, 405, 406, 322,
1836 366, 86, 87, 790, 75, 407, 408, 409, 410, 475,
1837 796, 82, 82, 8, 9, 10, 654, 0, 654, 82,
1838 320, 451, 415, 701, 21, 413, 411, 412, 25, 100,
1839 5, 34, 654, 551, 204, 106, 86, 87, 18, 209,
1840 776, 211, 39, 654, 24, 116, 117, 118, 22, 784,
1841 25, 122, 787, 223, 34, 28, 18, 1082, 1083, 0,
1842 34, 215, 3, 900, 5, 674, 24, 138, 706, 26,
1843 706, 44, 24, 21, 145, 891, 34, 34, 894, 27,
1844 18, 447, 34, 21, 706, 139, 140, 141, 142, 143,
1845 144, 176, 177, 25, 26, 706, 28, 8, 884, 82,
1846 1125, 24, 894, 26, 176, 177, 178, 113, 180, 181,
1847 879, 0, 44, 41, 3, 5, 122, 904, 7, 8,
1848 9, 10, 24, 24, 138, 27, 176, 177, 56, 495,
1849 604, 692, 34, 204, 1102, 25, 654, 974, 502, 605,
1850 1108, 82, 1110, 138, 176, 177, 178, 28, 180, 181,
1851 580, 8, 887, 476, 8, 96, 97, 893, 99, 895,
1852 18, 9, 10, 44, 41, 981, 775, 983, 182, 778,
1853 9, 10, 85, 176, 177, 178, 190, 180, 181, 56,
1854 194, 122, 196, 366, 21, 562, 654, 182, 706, 981,
1855 26, 983, 28, 82, 21, 190, 176, 177, 25, 194,
1856 577, 196, 176, 177, 178, 24, 180, 181, 44, 204,
1857 205, 225, 6, 7, 209, 286, 211, 106, 176, 177,
1858 291, 585, 292, 24, 176, 177, 654, 138, 223, 224,
1859 225, 302, 303, 122, 305, 306, 914, 603, 706, 302,
1860 801, 19, 24, 918, 133, 26, 654, 28, 319, 138,
1861 18, 986, 654, 864, 325, 23, 319, 328, 24, 625,
1862 26, 654, 24, 44, 447, 629, 654, 156, 34, 654,
1863 424, 182, 24, 443, 176, 177, 347, 179, 706, 190,
1864 644, 138, 646, 194, 138, 196, 176, 177, 178, 18,
1865 180, 181, 21, 182, 23, 37, 38, 368, 706, 34,
1866 600, 190, 18, 192, 706, 194, 24, 196, 26, 51,
1867 52, 5, 495, 706, 225, 204, 34, 24, 706, 26,
1868 209, 706, 211, 25, 26, 182, 21, 965, 182, 965,
1869 5, 25, 27, 190, 223, 224, 225, 194, 18, 196,
1870 194, 347, 196, 965, 862, 24, 400, 401, 402, 24,
1871 25, 26, 716, 16, 965, 0, 204, 24, 3, 34,
1872 27, 209, 7, 211, 24, 204, 26, 34, 225, 439,
1873 209, 225, 211, 108, 109, 223, 224, 21, 24, 450,
1874 26, 25, 453, 34, 223, 224, 16, 450, 383, 460,
1875 453, 462, 860, 464, 465, 16, 467, 15, 176, 177,
1876 178, 472, 180, 181, 475, 346, 25, 26, 21, 28,
1877 424, 482, 25, 302, 16, 781, 305, 306, 307, 22,
1878 603, 849, 850, 494, 18, 44, 497, 21, 499, 424,
1879 319, 502, 18, 26, 85, 21, 325, 82, 97, 192,
1880 99, 34, 625, 851, 852, 21, 500, 965, 443, 25,
1881 22, 853, 854, 855, 856, 22, 32, 33, 176, 177,
1882 178, 106, 180, 181, 182, 29, 21, 40, 861, 475,
1883 25, 859, 857, 858, 176, 177, 178, 122, 180, 181,
1884 39, 370, 176, 177, 178, 55, 180, 181, 133, 378,
1885 18, 380, 562, 21, 924, 92, 1057, 965, 1018, 1019,
1886 92, 176, 177, 178, 1038, 180, 181, 577, 19, 176,
1887 177, 582, 179, 424, 585, 456, 32, 33, 86, 87,
1888 692, 8, 9, 10, 22, 176, 177, 598, 599, 180,
1889 181, 37, 38, 22, 605, 424, 21, 965, 21, 21,
1890 25, 22, 25, 25, 29, 51, 52, 561, 116, 117,
1891 32, 33, 25, 624, 443, 28, 1076, 965, 629, 1079,
1892 449, 450, 130, 965, 453, 24, 561, 424, 639, 640,
1893 424, 92, 965, 644, 463, 646, 465, 965, 467, 18,
1894 965, 19, 21, 176, 177, 178, 475, 180, 181, 478,
1895 24, 18, 26, 482, 21, 443, 20, 668, 781, 605,
1896 34, 92, 1122, 24, 443, 676, 906, 678, 27, 21,
1897 21, 682, 683, 25, 25, 23, 687, 370, 21, 5,
1898 691, 692, 25, 18, 513, 378, 697, 380, 18, 801,
1899 18, 21, 815, 522, 523, 25, 18, 1001, 24, 25,
1900 26, 53, 54, 49, 50, 716, 49, 50, 34, 21,
1901 561, 138, 18, 25, 21, 21, 24, 302, 25, 25,
1902 305, 306, 307, 717, 718, 719, 720, 721, 722, 969,
1903 22, 612, 561, 562, 319, 21, 18, 49, 50, 25,
1904 325, 18, 49, 50, 21, 574, 692, 987, 577, 578,
1905 21, 697, 992, 25, 25, 182, 449, 176, 177, 178,
1906 771, 180, 181, 190, 561, 25, 21, 194, 1008, 196,
1907 25, 24, 24, 26, 1014, 28, 605, 204, 49, 50,
1908 53, 54, 209, 1023, 211, 1091, 67, 68, 69, 800,
1909 801, 44, 803, 18, 47, 48, 223, 224, 225, 42,
1910 43, 21, 176, 177, 178, 25, 180, 181, 18, 20,
1911 21, 21, 1052, 1053, 21, 1055, 21, 22, 25, 21,
1912 513, 650, 651, 25, 21, 654, 1132, 18, 25, 18,
1913 37, 38, 661, 662, 18, 664, 21, 24, 21, 26,
1914 25, 28, 25, 21, 51, 52, 1086, 25, 677, 18,
1915 679, 19, 846, 847, 848, 801, 9, 44, 25, 688,
1916 47, 48, 691, 692, 693, 450, 21, 21, 453, 562,
1917 25, 25, 21, 967, 49, 50, 25, 706, 463, 890,
1918 465, 11, 467, 23, 577, 578, 897, 1127, 37, 38,
1919 475, 24, 773, 478, 21, 776, 990, 482, 25, 11,
1920 21, 21, 51, 52, 25, 25, 24, 65, 66, 67,
1921 68, 69, 70, 71, 72, 73, 74, 57, 58, 59,
1922 60, 61, 62, 63, 64, 65, 66, 78, 79, 80,
1923 81, 82, 83, 84, 928, 32, 33, 522, 523, 768,
1924 98, 88, 100, 21, 102, 1057, 104, 25, 21, 21,
1925 21, 109, 25, 25, 25, 21, 21, 650, 651, 25,
1926 25, 119, 18, 121, 975, 21, 21, 978, 1091, 662,
1927 25, 21, 801, 21, 21, 978, 19, 25, 25, 34,
1928 35, 36, 811, 994, 1107, 996, 34, 35, 36, 19,
1929 1001, 994, 21, 1004, 1005, 21, 25, 424, 1008, 25,
1930 693, 88, 21, 21, 21, 163, 25, 25, 25, 1132,
1931 891, 21, 893, 894, 895, 25, 443, 21, 27, 21,
1932 605, 25, 8, 25, 21, 18, 24, 1038, 25, 1040,
1933 1041, 24, 21, 34, 35, 36, 29, 30, 31, 32,
1934 33, 34, 1052, 21, 126, 25, 1057, 25, 994, 34,
1935 35, 36, 19, 46, 47, 48, 19, 139, 140, 141,
1936 142, 143, 144, 22, 146, 147, 72, 73, 74, 21,
1937 8, 9, 10, 24, 23, 20, 21, 70, 1089, 53,
1938 54, 1092, 21, 22, 1095, 72, 73, 74, 21, 1092,
1939 20, 21, 677, 18, 679, 176, 177, 25, 22, 11,
1940 981, 24, 983, 688, 933, 934, 691, 692, 57, 58,
1941 59, 60, 61, 62, 63, 64, 65, 66, 111, 24,
1942 24, 27, 25, 23, 20, 19, 23, 20, 119, 19,
1943 121, 5, 21, 291, 561, 27, 965, 295, 1149, 25,
1944 969, 132, 133, 24, 135, 1156, 137, 138, 24, 978,
1945 136, 22, 138, 25, 20, 313, 20, 18, 316, 150,
1946 27, 18, 25, 992, 24, 994, 324, 25, 997, 327,
1947 72, 73, 74, 8, 9, 10, 78, 79, 80, 81,
1948 82, 83, 84, 176, 177, 178, 179, 27, 1017, 1018,
1949 1019, 21, 25, 25, 25, 29, 182, 1026, 39, 55,
1950 138, 40, 25, 88, 190, 25, 24, 18, 194, 1038,
1951 196, 25, 25, 72, 73, 74, 801, 25, 204, 78,
1952 79, 80, 81, 82, 83, 84, 811, 25, 1057, 21,
1953 18, 18, 21, 18, 88, 181, 88, 21, 88, 225,
1954 22, 20, 20, 88, 182, 25, 88, 1076, 1077, 1078,
1955 1079, 25, 190, 1082, 1083, 18, 194, 73, 196, 1088,
1956 88, 20, 20, 1092, 88, 27, 204, 27, 0, 88,
1957 0, 209, 82, 211, 325, 765, 991, 1068, 1016, 911,
1958 8, 9, 10, 879, 366, 223, 224, 225, 1122, 992,
1959 448, 830, 1088, 1122, 1123, 1124, 1125, 455, 585, 1092,
1960 677, 467, 460, 138, 462, 801, 679, 113, 691, 347,
1961 10, 224, 470, 1062, 513, 424, 474, 706, 400, 401,
1962 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
1963 412, 413, 414, 415, 965, -1, -1, -1, -1, -1,
1964 -1, -1, 328, -1, -1, -1, -1, 182, 933, 934,
1965 336, 337, 338, 339, -1, 190, -1, -1, -1, 194,
1966 -1, 196, -1, -1, -1, 447, -1, -1, -1, 204,
1967 -1, 357, -1, -1, 209, -1, 211, -1, -1, -1,
1968 -1, -1, 368, -1, -1, -1, -1, -1, 223, 224,
1969 225, -1, -1, 978, -1, 360, 8, 9, 10, 385,
1970 -1, -1, -1, -1, -1, -1, -1, -1, -1, 994,
1971 138, -1, 997, 495, -1, -1, -1, -1, 500, 384,
1972 -1, 579, -1, -1, 389, 390, 391, 392, 393, 394,
1973 395, 396, 397, 398, 399, -1, -1, -1, 424, -1,
1974 -1, -1, -1, -1, -1, 431, 604, -1, -1, -1,
1975 -1, -1, -1, 1038, 182, 420, -1, -1, -1, -1,
1976 -1, -1, 190, -1, -1, 623, 194, -1, 196, 551,
1977 628, 553, 1057, 555, 556, -1, 204, 8, 9, 10,
1978 -1, 209, -1, 211, -1, -1, 424, -1, 18, -1,
1979 -1, -1, 1077, 1078, 24, 223, 224, 225, 656, 29,
1980 30, 31, 32, 33, 34, 443, -1, 1092, -1, -1,
1981 -1, -1, -1, -1, -1, -1, 46, 47, 48, -1,
1982 -1, 603, 24, 25, -1, -1, 138, 29, 30, 31,
1983 32, 33, 34, -1, -1, -1, -1, -1, 1123, 1124,
1984 70, -1, -1, 625, 46, 47, 48, -1, -1, -1,
1985 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1986 -1, -1, -1, -1, -1, -1, 552, -1, 70, -1,
1987 182, 729, 654, -1, -1, 561, -1, -1, 190, -1,
1988 -1, 111, 194, -1, 196, -1, -1, -1, -1, 424,
1989 -1, -1, 204, -1, -1, -1, -1, 209, -1, 211,
1990 -1, -1, -1, -1, -1, -1, -1, 138, 443, 111,
1991 -1, 223, 224, 225, -1, -1, -1, -1, -1, -1,
1992 -1, -1, -1, 561, 706, -1, -1, -1, -1, -1,
1993 -1, 789, -1, 619, -1, 717, 718, 719, 720, 721,
1994 722, 723, 724, -1, -1, -1, 176, 177, 178, 179,
1995 -1, 182, -1, -1, -1, -1, -1, -1, 644, 190,
1996 646, -1, -1, 194, -1, 196, 652, -1, -1, 655,
1997 -1, 636, -1, 204, 176, 177, 178, 179, 209, -1,
1998 211, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1999 -1, -1, 223, 224, 225, -1, 424, -1, 24, 781,
2000 -1, 27, -1, 29, 30, 31, 32, 33, 34, -1,
2001 -1, -1, -1, -1, -1, 443, 681, -1, -1, 705,
2002 46, 47, 48, -1, 882, 883, 561, -1, -1, -1,
2003 716, -1, 890, 815, -1, -1, -1, -1, -1, -1,
2004 -1, -1, -1, -1, 70, -1, -1, -1, -1, -1,
2005 -1, -1, -1, -1, -1, -1, 914, -1, -1, -1,
2006 -1, -1, -1, -1, 846, 847, 848, 849, 850, 851,
2007 852, 853, 854, 855, 856, 857, 858, 859, 860, 861,
2008 862, 24, 864, -1, 27, 111, 29, 30, 31, 32,
2009 33, 34, -1, -1, -1, -1, 19, 20, -1, -1,
2010 -1, 24, -1, 46, 47, 48, 29, 30, 31, 32,
2011 33, 34, 424, -1, -1, -1, -1, -1, 976, 784,
2012 -1, -1, 787, 46, 47, 48, -1, 70, -1, -1,
2013 -1, 443, -1, 561, -1, -1, -1, -1, -1, -1,
2014 -1, -1, -1, -1, -1, 831, 928, 70, -1, -1,
2015 176, 177, 178, 179, -1, -1, -1, -1, -1, -1,
2016 -1, -1, -1, -1, 829, 830, -1, -1, 111, -1,
2017 835, 836, 837, 838, 839, 840, 841, 842, 843, 844,
2018 845, -1, -1, 965, 1042, -1, -1, -1, 111, -1,
2019 -1, -1, -1, 424, -1, -1, -1, -1, -1, -1,
2020 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2021 -1, -1, 443, -1, -1, -1, -1, -1, -1, -1,
2022 -1, -1, 887, -1, -1, -1, -1, -1, 0, 1,
2023 -1, -1, 918, 176, 177, 178, 179, -1, -1, -1,
2024 -1, -1, -1, -1, -1, -1, -1, -1, -1, 561,
2025 -1, -1, 24, 176, 177, 178, 179, -1, -1, -1,
2026 -1, -1, 34, -1, -1, -1, -1, -1, -1, -1,
2027 -1, -1, 1130, 45, -1, -1, -1, 963, -1, -1,
2028 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2029 -1, -1, -1, -1, -1, 67, 68, 69, -1, 71,
2030 -1, -1, -1, 75, 76, 77, -1, -1, -1, 1091,
2031 -1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
2032 -1, 986, -1, -1, -1, 1107, -1, -1, -1, -1,
2033 561, -1, -1, -1, -1, -1, 108, 109, 110, -1,
2034 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2035 1132, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2036 132, 133, 134, 135, 136, 137, -1, 139, 140, 141,
2037 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2038 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2039 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2040 172, 173, 174, 175, 176, 177, 178, -1, 180, 181,
2041 182, 0, 1, -1, -1, -1, -1, -1, -1, -1,
2042 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2043 -1, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2044 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
2045 -1, -1, -1, -1, -1, -1, 45, -1, -1, -1,
2046 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2047 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
2048 69, -1, 71, -1, -1, -1, 75, 76, 77, -1,
2049 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2050 89, 90, 91, -1, -1, -1, -1, -1, -1, -1,
2051 -1, -1, -1, -1, -1, -1, -1, -1, -1, 108,
2052 109, 110, -1, 112, 113, 114, 115, 116, 117, 118,
2053 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
2054 129, 130, 131, 132, 133, 134, 135, 136, 137, -1,
2055 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2056 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2057 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2058 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2059 1, 180, 181, 182, -1, 6, 7, 8, -1, 10,
2060 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2061 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2062 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2063 -1, 42, 43, -1, 45, 46, 47, 48, -1, -1,
2064 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2065 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
2066 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2067 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2068 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2069 -1, -1, -1, -1, -1, -1, 107, 108, 109, 110,
2070 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2071 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2072 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2073 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2074 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2075 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2076 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
2077 181, 182, 1, -1, -1, -1, -1, 6, 7, 8,
2078 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2079 19, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2080 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2081 -1, -1, -1, 42, 43, -1, -1, 46, 47, 48,
2082 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2083 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
2084 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2085 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2086 -1, -1, -1, -1, 93, 94, 95, 96, 97, 98,
2087 -1, -1, -1, -1, -1, -1, -1, -1, 107, 108,
2088 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2089 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
2090 129, 130, 131, 132, 133, 134, 135, 136, 137, -1,
2091 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2092 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2093 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2094 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2095 179, 180, 181, 182, 1, -1, -1, -1, -1, 6,
2096 7, 8, -1, -1, 11, 12, 13, 14, 15, 16,
2097 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2098 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2099 -1, -1, -1, -1, -1, 42, 43, -1, -1, 46,
2100 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2101 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2102 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2103 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2104 -1, -1, -1, -1, -1, -1, 93, 94, 95, 96,
2105 97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
2106 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2107 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
2108 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2109 137, -1, 139, 140, 141, 142, 143, 144, 145, 146,
2110 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2111 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2112 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2113 177, 178, 179, 180, 181, 182, 1, -1, -1, -1,
2114 -1, 6, 7, 8, -1, -1, 11, 12, 13, 14,
2115 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2116 25, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2117 -1, -1, -1, -1, -1, -1, -1, 42, 43, 1,
2118 -1, 46, 47, 48, 6, 7, 8, -1, 10, 11,
2119 12, 13, 14, 15, 16, 17, 18, 19, -1, -1,
2120 -1, -1, 24, -1, -1, 70, -1, 29, 30, 31,
2121 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2122 42, 43, -1, -1, 46, 47, 48, 92, 93, 94,
2123 95, 96, 97, 98, -1, -1, -1, -1, -1, -1,
2124 -1, -1, 107, -1, -1, -1, 111, -1, 70, -1,
2125 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2126 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2127 92, 93, 94, 95, 96, 97, 98, -1, -1, -1,
2128 -1, -1, -1, -1, -1, 107, -1, -1, -1, 111,
2129 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2130 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2131 -1, 176, 177, 178, 179, 180, 181, -1, -1, 1,
2132 -1, -1, -1, -1, 6, 7, 8, -1, 10, 11,
2133 12, 13, 14, 15, 16, 17, 18, 19, -1, -1,
2134 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2135 32, 33, 34, -1, 176, 177, 178, 179, 180, 181,
2136 42, 43, 1, -1, 46, 47, 48, 6, 7, 8,
2137 -1, -1, 11, 12, 13, 14, 15, 16, 17, 18,
2138 19, 20, -1, -1, -1, 24, -1, -1, 70, -1,
2139 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2140 -1, -1, -1, 42, 43, -1, -1, 46, 47, 48,
2141 92, 93, 94, 95, 96, 97, 98, -1, -1, -1,
2142 -1, -1, -1, -1, -1, 107, -1, -1, -1, 111,
2143 -1, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2144 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2145 -1, -1, -1, 92, 93, 94, 95, 96, 97, 98,
2146 -1, -1, -1, -1, -1, -1, -1, -1, 107, -1,
2147 -1, -1, 111, -1, -1, -1, -1, -1, -1, -1,
2148 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2149 -1, -1, -1, -1, 176, 177, 178, 179, 180, 181,
2150 -1, -1, 1, -1, -1, -1, -1, 6, 7, 8,
2151 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2152 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2153 29, 30, 31, 32, 33, 34, -1, 176, 177, 178,
2154 179, 180, 181, 42, 43, 1, -1, 46, 47, 48,
2155 6, 7, 8, -1, -1, 11, 12, 13, 14, 15,
2156 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2157 -1, 70, -1, 29, 30, 31, 32, 33, 34, -1,
2158 -1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
2159 46, 47, 48, -1, 93, 94, 95, 96, 97, 98,
2160 -1, -1, -1, -1, -1, -1, -1, -1, 107, -1,
2161 -1, -1, 111, -1, 70, -1, -1, -1, -1, -1,
2162 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2163 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
2164 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2165 -1, 107, -1, -1, -1, 111, -1, -1, -1, -1,
2166 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2167 -1, -1, -1, -1, -1, -1, -1, 176, 177, 178,
2168 179, 180, 181, -1, -1, 1, -1, -1, -1, -1,
2169 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2170 16, 17, 18, 19, -1, -1, -1, -1, 24, -1,
2171 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2172 176, 177, 178, 179, 180, 181, 42, 43, -1, -1,
2173 46, 47, 48, -1, -1, -1, -1, 24, 25, -1,
2174 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2175 -1, -1, -1, -1, 70, -1, -1, -1, -1, 46,
2176 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2177 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
2178 96, 97, 98, 70, -1, -1, -1, -1, -1, -1,
2179 -1, 107, 6, 7, 8, 111, 10, 11, 12, 13,
2180 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2181 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2182 34, -1, -1, -1, 111, -1, -1, -1, 42, 43,
2183 -1, 45, 46, 47, 48, -1, -1, -1, -1, -1,
2184 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2185 -1, -1, -1, -1, -1, -1, 70, 71, -1, -1,
2186 176, 177, 178, 179, 180, 181, -1, -1, -1, -1,
2187 -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
2188 94, 95, 96, 97, 98, -1, -1, -1, -1, 176,
2189 177, 178, 179, 107, 108, 109, 110, 111, 112, 113,
2190 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
2191 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2192 134, 135, 136, 137, -1, 139, 140, 141, 142, 143,
2193 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2194 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2195 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2196 174, 175, 176, 177, 178, 179, 180, 181, 182, 6,
2197 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2198 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2199 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2200 -1, -1, -1, -1, -1, 42, 43, -1, 45, 46,
2201 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2202 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2203 -1, -1, -1, 70, 71, -1, -1, -1, -1, -1,
2204 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2205 -1, -1, -1, -1, -1, -1, 93, 94, 95, 96,
2206 97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
2207 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2208 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
2209 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2210 137, -1, 139, 140, 141, 142, 143, 144, 145, 146,
2211 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2212 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2213 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2214 177, 178, 179, 180, 181, 182, 6, 7, 8, -1,
2215 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2216 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2217 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2218 -1, -1, 42, 43, -1, 45, 46, 47, 48, -1,
2219 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2220 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2221 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2222 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2223 -1, -1, -1, 93, 94, 95, 96, 97, 98, -1,
2224 -1, -1, -1, -1, -1, -1, -1, 107, 108, 109,
2225 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2226 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2227 130, 131, 132, 133, 134, 135, 136, 137, -1, 139,
2228 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2229 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2230 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2231 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2232 180, 181, 182, 6, 7, 8, -1, 10, 11, 12,
2233 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2234 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2235 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2236 -1, -1, -1, 46, 47, 48, 6, 7, 8, -1,
2237 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2238 20, -1, -1, -1, 24, -1, -1, 70, -1, 29,
2239 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2240 -1, -1, -1, -1, -1, -1, 46, 47, 48, -1,
2241 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2242 -1, -1, -1, -1, 107, -1, -1, -1, 111, -1,
2243 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2244 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2245 -1, -1, -1, 93, 94, 95, 96, 97, 98, -1,
2246 -1, -1, -1, -1, -1, -1, -1, 107, -1, -1,
2247 -1, 111, -1, -1, -1, -1, -1, -1, -1, -1,
2248 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2249 -1, -1, -1, 176, 177, 178, 179, 180, 181, -1,
2250 -1, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2251 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2252 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2253 34, -1, -1, -1, -1, -1, 176, 177, 178, 179,
2254 180, 181, 46, 47, 48, 6, 7, 8, -1, 10,
2255 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2256 -1, -1, -1, 24, -1, -1, 70, -1, 29, 30,
2257 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2258 -1, -1, -1, -1, -1, 46, 47, 48, -1, 93,
2259 94, 95, 96, 97, 98, -1, -1, -1, -1, -1,
2260 -1, -1, -1, 107, -1, -1, -1, 111, -1, 70,
2261 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2262 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2263 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2264 -1, -1, -1, -1, -1, -1, 107, -1, -1, -1,
2265 111, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2266 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2267 -1, -1, 176, 177, 178, 179, 180, 181, -1, -1,
2268 -1, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2269 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2270 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2271 -1, -1, -1, -1, -1, 176, 177, 178, 179, 180,
2272 181, 46, 47, 48, 6, 7, 8, -1, 10, 11,
2273 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2274 -1, -1, 24, -1, -1, 70, -1, 29, 30, 31,
2275 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2276 -1, -1, -1, -1, 46, 47, 48, -1, 93, 94,
2277 95, 96, 97, 98, -1, -1, -1, -1, -1, -1,
2278 -1, -1, 107, -1, -1, -1, 111, -1, 70, -1,
2279 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2280 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2281 -1, 93, 94, 95, 96, 97, 98, -1, -1, -1,
2282 -1, -1, -1, -1, -1, 107, -1, -1, -1, 111,
2283 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2284 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2285 -1, 176, 177, 178, 179, 180, 181, -1, -1, -1,
2286 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2287 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2288 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2289 -1, -1, -1, -1, 176, 177, 178, 179, 180, 181,
2290 46, 47, 48, 6, 7, 8, -1, 10, 11, 12,
2291 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2292 -1, 24, -1, -1, 70, -1, 29, 30, 31, 32,
2293 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2294 -1, -1, -1, 46, 47, 48, -1, 93, 94, 95,
2295 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2296 -1, 107, -1, -1, -1, 111, -1, 70, -1, -1,
2297 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2298 -1, -1, -1, -1, -1, -1, -1, -1, -1, 18,
2299 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2300 -1, -1, -1, -1, 107, -1, -1, -1, 111, -1,
2301 -1, -1, -1, -1, -1, -1, 45, -1, -1, -1,
2302 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2303 176, 177, 178, 179, 180, 181, -1, -1, 67, 68,
2304 69, -1, 71, -1, -1, -1, -1, -1, -1, -1,
2305 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2306 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2307 -1, -1, -1, 176, 177, 178, 179, 180, 181, 108,
2308 109, 110, -1, 112, 113, 114, 115, 116, 117, 118,
2309 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
2310 129, 130, 131, 132, 133, 134, 135, 136, 137, -1,
2311 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2312 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2313 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2314 169, 170, 171, 172, 173, 174, 175, 18, -1, 178,
2315 -1, -1, -1, 182, -1, -1, -1, -1, -1, -1,
2316 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2317 -1, -1, -1, -1, 45, 19, -1, -1, -1, -1,
2318 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2319 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2320 71, -1, 46, 47, 48, -1, -1, -1, -1, -1,
2321 -1, -1, -1, -1, -1, -1, -1, 88, -1, -1,
2322 -1, -1, -1, -1, -1, -1, 70, -1, -1, -1,
2323 -1, -1, -1, -1, -1, -1, -1, 108, 109, 110,
2324 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2325 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2326 131, 132, 133, 134, 135, 136, 137, 111, 139, 140,
2327 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2328 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2329 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2330 171, 172, 173, 174, 175, 19, -1, 178, -1, -1,
2331 24, 182, -1, -1, -1, -1, -1, -1, -1, -1,
2332 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2333 -1, 45, 176, 177, 178, 179, -1, 24, 25, -1,
2334 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2335 -1, -1, -1, -1, -1, -1, -1, 71, -1, 46,
2336 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2337 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2338 -1, -1, -1, 70, -1, -1, -1, -1, -1, -1,
2339 -1, -1, -1, -1, 108, 109, 110, -1, 112, 113,
2340 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
2341 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2342 134, 135, 136, 137, 111, 139, 140, 141, 142, 143,
2343 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2344 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2345 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2346 174, 175, 19, -1, 178, -1, -1, -1, 182, -1,
2347 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2348 -1, -1, -1, -1, -1, -1, -1, -1, 45, 176,
2349 177, 178, 179, -1, -1, -1, -1, -1, -1, -1,
2350 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2351 -1, -1, -1, -1, 71, -1, -1, -1, -1, -1,
2352 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2353 -1, -1, -1, -1, 20, -1, -1, -1, -1, -1,
2354 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2355 -1, 108, 109, 110, -1, 112, 113, 114, 115, 116,
2356 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
2357 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2358 137, -1, 139, 140, 141, 142, 143, 144, 145, 146,
2359 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2360 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2361 167, 168, 169, 170, 171, 172, 173, 174, 175, -1,
2362 -1, 178, 108, 109, 110, 182, 112, 113, 114, 115,
2363 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2364 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2365 136, 137, 22, 139, 140, 141, 142, 143, 144, 145,
2366 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2367 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2368 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2369 -1, -1, 178, -1, -1, -1, 182, 67, 68, 69,
2370 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2371 -1, -1, -1, -1, -1, 85, -1, -1, -1, -1,
2372 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2373 -1, -1, -1, -1, -1, -1, -1, -1, 108, 109,
2374 110, -1, 112, 113, 114, 115, 116, 117, 118, 119,
2375 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2376 130, 131, 132, 133, 134, 135, 136, 137, -1, 139,
2377 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2378 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2379 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2380 170, 171, 172, 173, 174, 175, 19, -1, -1, -1,
2381 -1, 24, 182, -1, -1, -1, 29, 30, 31, 32,
2382 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2383 -1, -1, -1, 46, 47, 48, -1, -1, -1, -1,
2384 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2385 -1, -1, -1, -1, -1, -1, -1, 70, -1, -1,
2386 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2387 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2388 -1, -1, -1, 24, -1, -1, -1, -1, -1, -1,
2389 -1, -1, -1, 34, 24, -1, -1, -1, 111, 29,
2390 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2391 -1, -1, -1, -1, -1, -1, 46, 47, 48, -1,
2392 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2393 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2394 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2395 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2396 -1, -1, -1, 176, 177, 178, 179, 108, 109, 110,
2397 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2398 121, 111, 123, 124, 125, 126, 127, 128, 129, 130,
2399 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2400 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2401 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2402 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2403 171, 172, 173, 174, 175, 176, 177, 178, -1, 180,
2404 181, 182, -1, -1, -1, 24, 176, 177, 178, 179,
2405 29, 30, 31, 32, 33, 34, 24, -1, -1, -1,
2406 -1, 29, 30, 31, 32, 33, 34, 46, 47, 48,
2407 -1, -1, -1, -1, -1, -1, 24, -1, 46, 47,
2408 48, 29, 30, 31, 32, 33, 34, 24, -1, -1,
2409 -1, 70, 29, 30, 31, 32, 33, 34, 46, 47,
2410 48, -1, 70, -1, -1, -1, -1, -1, -1, 46,
2411 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2412 -1, -1, 70, -1, -1, -1, -1, -1, -1, -1,
2413 -1, -1, 111, 70, -1, -1, -1, -1, -1, -1,
2414 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1,
2415 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2416 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1,
2417 -1, -1, -1, -1, 111, -1, -1, 42, 43, -1,
2418 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2419 -1, -1, -1, -1, -1, -1, -1, 176, 177, 178,
2420 179, -1, -1, -1, -1, -1, -1, -1, 176, 177,
2421 178, 179, -1, -1, -1, -1, -1, -1, -1, -1,
2422 -1, -1, -1, -1, -1, -1, -1, -1, 176, 177,
2423 178, 179, -1, -1, -1, -1, -1, -1, -1, 176,
2424 177, 178, 179, 108, 109, 110, -1, 112, 113, 114,
2425 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
2426 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2427 135, 136, 137, -1, 139, 140, 141, 142, 143, 144,
2428 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2429 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2430 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2431 175, 45, -1, 178, -1, -1, -1, 182, -1, -1,
2432 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2433 -1, -1, -1, 67, 68, 69, -1, 71, -1, -1,
2434 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2435 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2436 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2437 -1, -1, -1, -1, 108, 109, 110, -1, 112, 113,
2438 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
2439 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2440 134, 135, 136, 137, -1, 139, 140, 141, 142, 143,
2441 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2442 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2443 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2444 174, 175, 45, -1, 178, -1, -1, -1, 182, -1,
2445 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2446 -1, -1, -1, -1, -1, -1, -1, -1, 71, -1,
2447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2448 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2449 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2450 -1, -1, -1, -1, -1, 108, 109, 110, -1, 112,
2451 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
2452 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2453 133, 134, 135, 136, 137, -1, 139, 140, 141, 142,
2454 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2455 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2456 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2457 173, 174, 175, -1, -1, 178, 67, 68, 69, 182,
2458 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2459 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2461 -1, -1, -1, -1, -1, -1, -1, 108, 109, 110,
2462 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2463 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2464 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2465 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2466 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2467 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2468 171, 172, 173, 174, 175, -1, -1, 178, 89, 90,
2469 91, 182, -1, -1, -1, -1, -1, -1, -1, -1,
2470 -1, -1, -1, -1, -1, -1, -1, 108, 109, 110,
2471 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2472 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2473 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2474 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2475 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2476 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2477 171, 172, 173, 174, 175, -1, -1, 178, 108, 109,
2478 110, 182, 112, 113, 114, 115, 116, 117, 118, 119,
2479 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2480 130, 131, 132, 133, 134, 135, 136, 137, -1, 139,
2481 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2482 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2483 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2484 170, 171, 172, 173, 174, 175, -1, -1, 178, -1,
2487 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2488 #line 3 "/gnu/share/bison.simple"
2490 /* Skeleton output parser for bison,
2491 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2493 This program is free software; you can redistribute it and/or modify
2494 it under the terms of the GNU General Public License as published by
2495 the Free Software Foundation; either version 2, or (at your option)
2498 This program is distributed in the hope that it will be useful,
2499 but WITHOUT ANY WARRANTY; without even the implied warranty of
2500 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2501 GNU General Public License for more details.
2503 You should have received a copy of the GNU General Public License
2504 along with this program; if not, write to the Free Software
2505 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
2507 /* As a special exception, when this file is copied by Bison into a
2508 Bison output file, you may use that output file without restriction.
2509 This special exception was added by the Free Software Foundation
2510 in version 1.24 of Bison. */
2514 #define alloca __builtin_alloca
2515 #else /* not GNU C. */
2516 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
2518 #else /* not sparc */
2519 #if defined (MSDOS) && !defined (__TURBOC__)
2521 #else /* not MSDOS, or __TURBOC__ */
2525 #else /* not MSDOS, __TURBOC__, or _AIX */
2529 void *alloca (unsigned int);
2531 #else /* not __cplusplus */
2533 #endif /* not __cplusplus */
2535 #endif /* not _AIX */
2536 #endif /* not MSDOS, or __TURBOC__ */
2537 #endif /* not sparc. */
2538 #endif /* not GNU C. */
2539 #endif /* alloca not defined. */
2541 /* This is the parser code that is written into each bison parser
2542 when the %semantic_parser declaration is not specified in the grammar.
2543 It was written by Richard Stallman by simplifying the hairy parser
2544 used when %semantic_parser is specified. */
2546 /* Note: there must be only one dollar sign in this file.
2547 It is replaced by the list of actions, each action
2548 as one case of the switch. */
2550 #define yyerrok (yyerrstatus = 0)
2551 #define yyclearin (yychar = YYEMPTY)
2554 #define YYACCEPT return(0)
2555 #define YYABORT return(1)
2556 #define YYERROR goto yyerrlab1
2557 /* Like YYERROR except do call yyerror.
2558 This remains here temporarily to ease the
2559 transition to the new meaning of YYERROR, for GCC.
2560 Once GCC version 2 has supplanted version 1, this can go. */
2561 #define YYFAIL goto yyerrlab
2562 #define YYRECOVERING() (!!yyerrstatus)
2563 #define YYBACKUP(token, value) \
2565 if (yychar == YYEMPTY && yylen == 1) \
2566 { yychar = (token), yylval = (value); \
2567 yychar1 = YYTRANSLATE (yychar); \
2572 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2576 #define YYERRCODE 256
2579 #define YYLEX yylex()
2585 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2587 #define YYLEX yylex(&yylval, &yylloc)
2589 #else /* not YYLSP_NEEDED */
2591 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2593 #define YYLEX yylex(&yylval)
2595 #endif /* not YYLSP_NEEDED */
2598 /* If nonreentrant, generate the variables here */
2602 int yychar; /* the lookahead symbol */
2603 YYSTYPE yylval; /* the semantic value of the */
2604 /* lookahead symbol */
2607 YYLTYPE yylloc; /* location data for the lookahead */
2611 int yynerrs; /* number of parse errors so far */
2612 #endif /* not YYPURE */
2615 int yydebug; /* nonzero means print parse trace */
2616 /* Since this is uninitialized, it does not stop multiple parsers
2620 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2623 #define YYINITDEPTH 200
2626 /* YYMAXDEPTH is the maximum size the stacks can grow to
2627 (effective only if the built-in stack extension method is used). */
2634 #define YYMAXDEPTH 10000
2637 /* Prevent warning if -Wstrict-prototypes. */
2642 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2643 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2644 #else /* not GNU C or C++ */
2647 /* This is the most reliable way to avoid incompatibilities
2648 in available built-in functions on various systems. */
2650 __yy_memcpy (to, from, count)
2655 register char *f = from;
2656 register char *t = to;
2657 register int i = count;
2663 #else /* __cplusplus */
2665 /* This is the most reliable way to avoid incompatibilities
2666 in available built-in functions on various systems. */
2668 __yy_memcpy (char *to, char *from, int count)
2670 register char *f = from;
2671 register char *t = to;
2672 register int i = count;
2681 #line 196 "/gnu/share/bison.simple"
2683 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2684 into yyparse. The argument should have type void *.
2685 It should actually point to an object.
2686 Grammar actions can access the variable by casting it
2687 to the proper pointer type. */
2689 #ifdef YYPARSE_PARAM
2691 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2692 #define YYPARSE_PARAM_DECL
2693 #else /* not __cplusplus */
2694 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2695 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2696 #endif /* not __cplusplus */
2697 #else /* not YYPARSE_PARAM */
2698 #define YYPARSE_PARAM_ARG
2699 #define YYPARSE_PARAM_DECL
2700 #endif /* not YYPARSE_PARAM */
2703 yyparse(YYPARSE_PARAM_ARG)
2706 register int yystate;
2708 register short *yyssp;
2709 register YYSTYPE *yyvsp;
2710 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2711 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2713 short yyssa[YYINITDEPTH]; /* the state stack */
2714 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2716 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2717 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2720 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2721 YYLTYPE *yyls = yylsa;
2724 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2726 #define YYPOPSTACK (yyvsp--, yyssp--)
2729 int yystacksize = YYINITDEPTH;
2740 YYSTYPE yyval; /* the variable used to return */
2741 /* semantic values from the action */
2748 fprintf(stderr, "Starting parse\n");
2754 yychar = YYEMPTY; /* Cause a token to be read. */
2756 /* Initialize stack pointers.
2757 Waste one element of value and location stack
2758 so that they stay on the same level as the state stack.
2759 The wasted elements are never initialized. */
2767 /* Push a new state, which is found in yystate . */
2768 /* In all cases, when you get here, the value and location stacks
2769 have just been pushed. so pushing a state here evens the stacks. */
2774 if (yyssp >= yyss + yystacksize - 1)
2776 /* Give user a chance to reallocate the stack */
2777 /* Use copies of these so that the &'s don't force the real ones into memory. */
2778 YYSTYPE *yyvs1 = yyvs;
2779 short *yyss1 = yyss;
2781 YYLTYPE *yyls1 = yyls;
2784 /* Get the current used size of the three stacks, in elements. */
2785 int size = yyssp - yyss + 1;
2788 /* Each stack pointer address is followed by the size of
2789 the data in use in that stack, in bytes. */
2791 /* This used to be a conditional around just the two extra args,
2792 but that might be undefined if yyoverflow is a macro. */
2793 yyoverflow("parser stack overflow",
2794 &yyss1, size * sizeof (*yyssp),
2795 &yyvs1, size * sizeof (*yyvsp),
2796 &yyls1, size * sizeof (*yylsp),
2799 yyoverflow("parser stack overflow",
2800 &yyss1, size * sizeof (*yyssp),
2801 &yyvs1, size * sizeof (*yyvsp),
2805 yyss = yyss1; yyvs = yyvs1;
2809 #else /* no yyoverflow */
2810 /* Extend the stack our own way. */
2811 if (yystacksize >= YYMAXDEPTH)
2813 yyerror("parser stack overflow");
2817 if (yystacksize > YYMAXDEPTH)
2818 yystacksize = YYMAXDEPTH;
2819 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
2820 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
2821 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
2822 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
2824 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
2825 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
2827 #endif /* no yyoverflow */
2829 yyssp = yyss + size - 1;
2830 yyvsp = yyvs + size - 1;
2832 yylsp = yyls + size - 1;
2837 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2840 if (yyssp >= yyss + yystacksize - 1)
2846 fprintf(stderr, "Entering state %d\n", yystate);
2852 /* Do appropriate processing given the current state. */
2853 /* Read a lookahead token if we need one and don't already have one. */
2856 /* First try to decide what to do without reference to lookahead token. */
2858 yyn = yypact[yystate];
2862 /* Not known => get a lookahead token if don't already have one. */
2864 /* yychar is either YYEMPTY or YYEOF
2865 or a valid token in external form. */
2867 if (yychar == YYEMPTY)
2871 fprintf(stderr, "Reading a token: ");
2876 /* Convert token to internal form (in yychar1) for indexing tables with */
2878 if (yychar <= 0) /* This means end of input. */
2881 yychar = YYEOF; /* Don't call YYLEX any more */
2885 fprintf(stderr, "Now at end of input.\n");
2890 yychar1 = YYTRANSLATE(yychar);
2895 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2896 /* Give the individual parser a way to print the precise meaning
2897 of a token, for further debugging info. */
2899 YYPRINT (stderr, yychar, yylval);
2901 fprintf (stderr, ")\n");
2907 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2912 /* yyn is what to do for this token type in this state.
2913 Negative => reduce, -yyn is rule number.
2914 Positive => shift, yyn is new state.
2915 New state is final state => don't bother to shift,
2916 just return success.
2917 0, or most negative number => error. */
2932 /* Shift the lookahead token. */
2936 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2939 /* Discard the token being shifted unless it is eof. */
2940 if (yychar != YYEOF)
2948 /* count tokens shifted since error; after three, turn off error status. */
2949 if (yyerrstatus) yyerrstatus--;
2954 /* Do the default action for the current state. */
2957 yyn = yydefact[yystate];
2961 /* Do a reduction. yyn is the number of a rule to reduce with. */
2965 yyval = yyvsp[1-yylen]; /* implement default value of the action */
2972 fprintf (stderr, "Reducing via rule %d (line %d), ",
2975 /* Print the symbols being reduced, and their result. */
2976 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2977 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2978 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2986 #line 242 "cgrammar.y"
2987 { uentry_clearDecl (); ;
2990 #line 243 "cgrammar.y"
2991 { uentry_clearDecl (); ;
2994 #line 244 "cgrammar.y"
2995 { uentry_clearDecl (); ;
2998 #line 245 "cgrammar.y"
2999 { uentry_clearDecl (); ;
3002 #line 246 "cgrammar.y"
3003 { uentry_clearDecl (); ;
3006 #line 247 "cgrammar.y"
3007 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3010 #line 248 "cgrammar.y"
3011 { uentry_clearDecl (); ;
3014 #line 252 "cgrammar.y"
3015 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3018 #line 254 "cgrammar.y"
3019 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3022 #line 257 "cgrammar.y"
3023 { context_enterFunctionDecl (); ;
3026 #line 258 "cgrammar.y"
3027 { declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3028 context_exitFunctionDecl (); ;
3031 #line 263 "cgrammar.y"
3033 qtype qint = qtype_create (ctype_int);
3034 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3039 #line 269 "cgrammar.y"
3040 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3043 #line 274 "cgrammar.y"
3044 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3047 #line 277 "cgrammar.y"
3048 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3051 #line 279 "cgrammar.y"
3052 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3055 #line 281 "cgrammar.y"
3056 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3059 #line 283 "cgrammar.y"
3063 if (exprNode_hasValue (yyvsp[-2].expr)
3064 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3066 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3073 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3077 #line 299 "cgrammar.y"
3078 { setCurrentParams (uentryList_missingParams);
3082 #line 302 "cgrammar.y"
3083 { /* need to support globals and modifies here! */
3084 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3085 uentryList_makeMissingParams ());
3087 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3092 #line 310 "cgrammar.y"
3093 { setCurrentParams (yyvsp[-1].entrylist);
3097 #line 313 "cgrammar.y"
3098 { clearCurrentParams ();
3099 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3104 #line 319 "cgrammar.y"
3105 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3108 #line 321 "cgrammar.y"
3109 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3112 #line 323 "cgrammar.y"
3113 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3116 #line 325 "cgrammar.y"
3120 if (exprNode_hasValue (yyvsp[-2].expr)
3121 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3123 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3130 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3134 #line 341 "cgrammar.y"
3135 { setCurrentParams (uentryList_missingParams);
3139 #line 344 "cgrammar.y"
3140 { /* need to support globals and modifies here! */
3141 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3142 uentryList_makeMissingParams ());
3144 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3149 #line 352 "cgrammar.y"
3150 { setCurrentParams (yyvsp[-1].entrylist);
3154 #line 355 "cgrammar.y"
3155 { clearCurrentParams ();
3156 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3161 #line 362 "cgrammar.y"
3162 { setCurrentParams (yyvsp[-1].entrylist); ;
3165 #line 363 "cgrammar.y"
3166 { clearCurrentParams (); ;
3169 #line 364 "cgrammar.y"
3170 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3173 #line 367 "cgrammar.y"
3174 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3177 #line 368 "cgrammar.y"
3178 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3181 #line 369 "cgrammar.y"
3182 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3185 #line 370 "cgrammar.y"
3186 { exprChecks_checkEmptyMacroBody (); ;
3189 #line 373 "cgrammar.y"
3190 { declareFunction (yyvsp[0].ntyp); ;
3193 #line 376 "cgrammar.y"
3194 { setProcessingGlobMods (); ;
3197 #line 377 "cgrammar.y"
3198 { clearProcessingGlobMods (); ;
3201 #line 380 "cgrammar.y"
3202 { setProcessingGlobMods (); ;
3205 #line 381 "cgrammar.y"
3206 { clearProcessingGlobMods (); ;
3209 #line 396 "cgrammar.y"
3213 #line 397 "cgrammar.y"
3217 #line 400 "cgrammar.y"
3218 { globListAdd (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3221 #line 403 "cgrammar.y"
3222 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3225 #line 404 "cgrammar.y"
3226 { yyval.sr = globListUnrecognized (yyvsp[0].cname); ;
3229 #line 407 "cgrammar.y"
3230 { yyval.typequal = qual_createUndef (); ;
3233 #line 408 "cgrammar.y"
3234 { yyval.typequal = qual_createKilled (); ;
3237 #line 409 "cgrammar.y"
3238 { yyval.typequal = qual_createOut (); ;
3241 #line 410 "cgrammar.y"
3242 { yyval.typequal = qual_createIn (); ;
3245 #line 411 "cgrammar.y"
3246 { yyval.typequal = qual_createPartial (); ;
3249 #line 414 "cgrammar.y"
3250 { yyval.tquallist = qualList_undefined; ;
3253 #line 415 "cgrammar.y"
3254 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3257 #line 418 "cgrammar.y"
3258 { setProcessingGlobalsList (); ;
3261 #line 420 "cgrammar.y"
3262 { unsetProcessingGlobals (); ;
3265 #line 421 "cgrammar.y"
3266 { setProcessingGlobalsList (); ;
3269 #line 423 "cgrammar.y"
3270 { unsetProcessingGlobals (); ;
3273 #line 425 "cgrammar.y"
3274 { setFunctionNoGlobals ();
3275 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3279 #line 432 "cgrammar.y"
3280 { setProcessingGlobalsList (); ;
3283 #line 434 "cgrammar.y"
3284 { unsetProcessingGlobals (); ;
3287 #line 435 "cgrammar.y"
3288 { setProcessingGlobalsList (); ;
3291 #line 437 "cgrammar.y"
3292 { unsetProcessingGlobals (); ;
3295 #line 439 "cgrammar.y"
3296 { setFunctionNoGlobals ();
3297 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3301 #line 451 "cgrammar.y"
3303 context_setProtectVars (); enterParamsTemp ();
3304 sRef_setGlobalScopeSafe ();
3308 #line 456 "cgrammar.y"
3310 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3311 sRef_clearGlobalScopeSafe ();
3312 context_releaseVars ();
3316 #line 464 "cgrammar.y"
3318 context_setProtectVars (); enterParamsTemp ();
3319 sRef_setGlobalScopeSafe ();
3323 #line 469 "cgrammar.y"
3325 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3326 sRef_clearGlobalScopeSafe ();
3327 context_releaseVars ();
3331 #line 493 "cgrammar.y"
3332 { yyval.sck = SP_ISONLY; ;
3335 #line 494 "cgrammar.y"
3336 { yyval.sck = SP_ISOBSERVER; ;
3339 #line 495 "cgrammar.y"
3340 { yyval.sck = SP_ISEXPOSED; ;
3343 #line 496 "cgrammar.y"
3344 { yyval.sck = SP_ISDEPENDENT; ;
3347 #line 497 "cgrammar.y"
3348 { yyval.sck = SP_ISOWNED; ;
3351 #line 498 "cgrammar.y"
3352 { yyval.sck = SP_ISSHARED; ;
3355 #line 499 "cgrammar.y"
3356 { yyval.sck = SP_ISNULL; ;
3359 #line 500 "cgrammar.y"
3360 { yyval.sck = SP_ISNOTNULL; ;
3363 #line 504 "cgrammar.y"
3365 context_setProtectVars ();
3367 sRef_setGlobalScopeSafe ();
3371 #line 510 "cgrammar.y"
3373 setFunctionSpecialClause (yyvsp[-6].tok, yyvsp[-3].srset, yyvsp[-1].tok);
3375 sRef_clearGlobalScopeSafe ();
3376 context_releaseVars ();
3380 #line 517 "cgrammar.y"
3382 context_setProtectVars ();
3384 sRef_setGlobalScopeSafe ();
3388 #line 523 "cgrammar.y"
3390 setFunctionStateSpecialClause (yyvsp[-7].tok, yyvsp[-5].sck, yyvsp[-3].srset, yyvsp[-1].tok);
3392 sRef_clearGlobalScopeSafe ();
3393 context_releaseVars ();
3397 #line 532 "cgrammar.y"
3399 qtype qint = qtype_create (ctype_int);
3400 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3405 #line 538 "cgrammar.y"
3406 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3409 #line 541 "cgrammar.y"
3410 { checkDoneParams (); context_enterInnerContext (); ;
3413 #line 543 "cgrammar.y"
3415 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3416 context_exitInner (yyvsp[0].expr);
3420 #line 548 "cgrammar.y"
3421 { doneParams (); context_enterInnerContext (); ;
3424 #line 550 "cgrammar.y"
3426 context_exitInner (yyvsp[0].expr);
3427 exprNode_checkFunctionBody (yyvsp[0].expr);
3428 yyval.expr = yyvsp[0].expr; /* old style */
3432 #line 558 "cgrammar.y"
3434 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3435 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3436 context_exitFunction ();
3440 #line 565 "cgrammar.y"
3441 { yyval.srset = yyvsp[-2].srset; ;
3444 #line 566 "cgrammar.y"
3445 { yyval.srset = sRefSet_new (); ;
3448 #line 569 "cgrammar.y"
3449 { yyval.srset = yyvsp[-1].srset; ;
3452 #line 570 "cgrammar.y"
3453 { yyval.srset = sRefSet_new (); ;
3456 #line 573 "cgrammar.y"
3457 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3460 #line 574 "cgrammar.y"
3461 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3464 #line 575 "cgrammar.y"
3465 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3468 #line 576 "cgrammar.y"
3469 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3472 #line 577 "cgrammar.y"
3473 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3476 #line 578 "cgrammar.y"
3477 { yyval.sr = yyvsp[-1].sr; ;
3480 #line 579 "cgrammar.y"
3481 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3484 #line 580 "cgrammar.y"
3485 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3488 #line 584 "cgrammar.y"
3489 { yyval.sr = yyvsp[0].sr; ;
3492 #line 585 "cgrammar.y"
3493 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3496 #line 589 "cgrammar.y"
3497 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3500 #line 590 "cgrammar.y"
3501 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3504 #line 594 "cgrammar.y"
3505 { yyval.sr = checkSpecClausesId (yyvsp[0].entry); ;
3508 #line 596 "cgrammar.y"
3509 { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
3512 #line 597 "cgrammar.y"
3513 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3516 #line 598 "cgrammar.y"
3517 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3520 #line 599 "cgrammar.y"
3521 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3524 #line 600 "cgrammar.y"
3525 { yyval.sr = yyvsp[-1].sr; ;
3528 #line 601 "cgrammar.y"
3529 { cstring_markOwned (yyvsp[0].cname);
3530 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3533 #line 603 "cgrammar.y"
3534 { cstring_markOwned (yyvsp[0].cname);
3535 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3538 #line 608 "cgrammar.y"
3539 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3540 else { yyval.srset = sRefSet_undefined; }
3544 #line 612 "cgrammar.y"
3545 { if (sRef_isValid (yyvsp[0].sr))
3547 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3551 yyval.srset = yyvsp[-2].srset;
3556 #line 623 "cgrammar.y"
3557 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3560 #line 624 "cgrammar.y"
3561 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3564 #line 625 "cgrammar.y"
3565 { yyval.expr = yyvsp[0].expr; ;
3568 #line 626 "cgrammar.y"
3569 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3572 #line 627 "cgrammar.y"
3573 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3576 #line 628 "cgrammar.y"
3577 { yyval.expr = exprNode_makeError (); ;
3580 #line 632 "cgrammar.y"
3581 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3584 #line 633 "cgrammar.y"
3585 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3588 #line 634 "cgrammar.y"
3589 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
3592 #line 635 "cgrammar.y"
3593 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3596 #line 636 "cgrammar.y"
3597 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3600 #line 637 "cgrammar.y"
3601 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3604 #line 638 "cgrammar.y"
3605 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3608 #line 639 "cgrammar.y"
3609 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3612 #line 642 "cgrammar.y"
3613 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
3616 #line 643 "cgrammar.y"
3617 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
3620 #line 647 "cgrammar.y"
3621 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3624 #line 648 "cgrammar.y"
3625 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3628 #line 649 "cgrammar.y"
3629 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3632 #line 650 "cgrammar.y"
3633 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3636 #line 651 "cgrammar.y"
3637 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3640 #line 652 "cgrammar.y"
3641 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3644 #line 653 "cgrammar.y"
3645 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3648 #line 654 "cgrammar.y"
3649 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3652 #line 655 "cgrammar.y"
3653 { yyval.expr = yyvsp[0].expr; ;
3656 #line 656 "cgrammar.y"
3657 { yyval.expr = yyvsp[0].expr; ;
3660 #line 659 "cgrammar.y"
3661 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3664 #line 660 "cgrammar.y"
3665 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3668 #line 664 "cgrammar.y"
3669 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3672 #line 667 "cgrammar.y"
3673 { context_setProtectVars (); ;
3676 #line 668 "cgrammar.y"
3677 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3680 #line 671 "cgrammar.y"
3681 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3684 #line 672 "cgrammar.y"
3685 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3688 #line 673 "cgrammar.y"
3689 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3692 #line 674 "cgrammar.y"
3693 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3696 #line 679 "cgrammar.y"
3697 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3700 #line 683 "cgrammar.y"
3701 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3704 #line 684 "cgrammar.y"
3705 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3708 #line 685 "cgrammar.y"
3709 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3712 #line 689 "cgrammar.y"
3713 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3716 #line 690 "cgrammar.y"
3717 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3720 #line 694 "cgrammar.y"
3721 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3724 #line 695 "cgrammar.y"
3725 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3728 #line 699 "cgrammar.y"
3729 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3732 #line 700 "cgrammar.y"
3733 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3736 #line 701 "cgrammar.y"
3737 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3740 #line 702 "cgrammar.y"
3741 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3744 #line 706 "cgrammar.y"
3745 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3748 #line 707 "cgrammar.y"
3749 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3752 #line 711 "cgrammar.y"
3753 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3756 #line 715 "cgrammar.y"
3757 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3760 #line 720 "cgrammar.y"
3761 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3764 #line 725 "cgrammar.y"
3765 { exprNode_produceGuards (yyvsp[-1].expr);
3766 context_enterAndClause (yyvsp[-1].expr);
3770 #line 729 "cgrammar.y"
3772 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3773 context_exitAndClause (yyval.expr, yyvsp[0].expr);
3777 #line 737 "cgrammar.y"
3779 exprNode_produceGuards (yyvsp[-1].expr);
3780 context_enterOrClause (yyvsp[-1].expr);
3784 #line 742 "cgrammar.y"
3786 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3787 context_exitOrClause (yyval.expr, yyvsp[0].expr);
3791 #line 749 "cgrammar.y"
3792 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3795 #line 750 "cgrammar.y"
3796 { context_enterFalseClause (yyvsp[-4].expr); ;
3799 #line 751 "cgrammar.y"
3800 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
3803 #line 755 "cgrammar.y"
3804 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3807 #line 756 "cgrammar.y"
3808 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3811 #line 757 "cgrammar.y"
3812 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3815 #line 758 "cgrammar.y"
3816 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3819 #line 759 "cgrammar.y"
3820 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3823 #line 760 "cgrammar.y"
3824 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3827 #line 761 "cgrammar.y"
3828 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3831 #line 762 "cgrammar.y"
3832 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3835 #line 763 "cgrammar.y"
3836 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3839 #line 764 "cgrammar.y"
3840 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3843 #line 765 "cgrammar.y"
3844 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3847 #line 769 "cgrammar.y"
3848 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
3851 #line 772 "cgrammar.y"
3852 { yyval.expr = exprNode_undefined; ;
3855 #line 781 "cgrammar.y"
3856 { yyval.expr = yyvsp[0].expr; ;
3859 #line 782 "cgrammar.y"
3860 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
3863 #line 783 "cgrammar.y"
3864 { yyval.expr = exprNode_makeError (); ;
3867 #line 786 "cgrammar.y"
3868 { yyval.expr = exprNode_makeError (); ;
3871 #line 800 "cgrammar.y"
3873 setProcessingVars (yyvsp[-3].qtyp);
3874 processNamedDecl (yyvsp[-1].ntyp); ;
3877 #line 803 "cgrammar.y"
3878 { unsetProcessingVars (); yyval.expr = yyvsp[-2].expr; ;
3881 #line 805 "cgrammar.y"
3882 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp);
3886 #line 808 "cgrammar.y"
3887 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
3888 unsetProcessingVars ();
3892 #line 812 "cgrammar.y"
3893 { processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeError (); ;
3896 #line 813 "cgrammar.y"
3897 { processNamedDecl (yyvsp[-2].ntyp); ;
3900 #line 814 "cgrammar.y"
3901 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
3904 #line 818 "cgrammar.y"
3905 { setProcessingTypedef (yyvsp[0].qtyp); ;
3908 #line 819 "cgrammar.y"
3909 { unsetProcessingTypedef (); ;
3912 #line 820 "cgrammar.y"
3913 { /* in the ANSI grammar, semantics unclear */ ;
3916 #line 821 "cgrammar.y"
3917 { /* in the ANSI grammar, semantics unclear */ ;
3920 #line 824 "cgrammar.y"
3921 { g_expectingTypeName = TRUE; ;
3924 #line 827 "cgrammar.y"
3925 { g_expectingTypeName = TRUE; context_pushLoc (); ;
3928 #line 830 "cgrammar.y"
3932 #line 833 "cgrammar.y"
3936 #line 834 "cgrammar.y"
3940 #line 837 "cgrammar.y"
3941 { yyval.expr = exprNode_makeError (); ;
3944 #line 838 "cgrammar.y"
3945 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
3948 #line 841 "cgrammar.y"
3949 { yyval.expr = yyvsp[0].expr; ;
3952 #line 842 "cgrammar.y"
3953 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].alist); ;
3956 #line 843 "cgrammar.y"
3957 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].alist); ;
3960 #line 848 "cgrammar.y"
3961 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
3964 #line 850 "cgrammar.y"
3965 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
3968 #line 858 "cgrammar.y"
3969 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
3972 #line 859 "cgrammar.y"
3973 { yyval.typequal = qual_createInline (); ;
3976 #line 860 "cgrammar.y"
3977 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
3980 #line 861 "cgrammar.y"
3981 { yyval.typequal = qual_createAuto (); ;
3984 #line 862 "cgrammar.y"
3985 { yyval.typequal = qual_createRegister (); ;
3988 #line 865 "cgrammar.y"
3989 { yyval.typequal = qual_createConst (); ;
3992 #line 866 "cgrammar.y"
3993 { yyval.typequal = qual_createVolatile (); ;
3996 #line 867 "cgrammar.y"
3997 { yyval.typequal = qual_createOut (); ;
4000 #line 868 "cgrammar.y"
4001 { yyval.typequal = qual_createIn (); ;
4004 #line 869 "cgrammar.y"
4005 { yyval.typequal = qual_createPartial (); ;
4008 #line 870 "cgrammar.y"
4009 { yyval.typequal = qual_createSpecial (); ;
4012 #line 871 "cgrammar.y"
4013 { yyval.typequal = qual_createOwned (); ;
4016 #line 872 "cgrammar.y"
4017 { yyval.typequal = qual_createDependent (); ;
4020 #line 873 "cgrammar.y"
4021 { yyval.typequal = qual_createYield (); ;
4024 #line 874 "cgrammar.y"
4025 { yyval.typequal = qual_createTemp (); ;
4028 #line 875 "cgrammar.y"
4029 { yyval.typequal = qual_createOnly (); ;
4032 #line 876 "cgrammar.y"
4033 { yyval.typequal = qual_createKeep (); ;
4036 #line 877 "cgrammar.y"
4037 { yyval.typequal = qual_createKept (); ;
4040 #line 878 "cgrammar.y"
4041 { yyval.typequal = qual_createShared (); ;
4044 #line 879 "cgrammar.y"
4045 { yyval.typequal = qual_createUnique (); ;
4048 #line 880 "cgrammar.y"
4049 { yyval.typequal = qual_createExits (); ;
4052 #line 881 "cgrammar.y"
4053 { yyval.typequal = qual_createMayExit (); ;
4056 #line 882 "cgrammar.y"
4057 { yyval.typequal = qual_createTrueExit (); ;
4060 #line 883 "cgrammar.y"
4061 { yyval.typequal = qual_createFalseExit (); ;
4064 #line 884 "cgrammar.y"
4065 { yyval.typequal = qual_createNeverExit (); ;
4068 #line 885 "cgrammar.y"
4069 { yyval.typequal = qual_createNull (); ;
4072 #line 886 "cgrammar.y"
4073 { yyval.typequal = qual_createRelNull (); ;
4076 #line 887 "cgrammar.y"
4077 { yyval.typequal = qual_createReturned (); ;
4080 #line 888 "cgrammar.y"
4081 { yyval.typequal = qual_createExposed (); ;
4084 #line 889 "cgrammar.y"
4085 { yyval.typequal = qual_createObserver (); ;
4088 #line 890 "cgrammar.y"
4089 { yyval.typequal = qual_createChecked (); ;
4092 #line 891 "cgrammar.y"
4093 { yyval.typequal = qual_createCheckMod (); ;
4096 #line 892 "cgrammar.y"
4097 { yyval.typequal = qual_createUnchecked (); ;
4100 #line 893 "cgrammar.y"
4101 { yyval.typequal = qual_createCheckedStrict (); ;
4104 #line 894 "cgrammar.y"
4105 { yyval.typequal = qual_createTrueNull (); ;
4108 #line 895 "cgrammar.y"
4109 { yyval.typequal = qual_createFalseNull (); ;
4112 #line 896 "cgrammar.y"
4113 { yyval.typequal = qual_createUnused (); ;
4116 #line 897 "cgrammar.y"
4117 { yyval.typequal = qual_createExternal (); ;
4120 #line 898 "cgrammar.y"
4121 { yyval.typequal = qual_createSef (); ;
4124 #line 899 "cgrammar.y"
4125 { yyval.typequal = qual_createAbstract (); ;
4128 #line 900 "cgrammar.y"
4129 { yyval.typequal = qual_createConcrete (); ;
4132 #line 901 "cgrammar.y"
4133 { yyval.typequal = qual_createMutable (); ;
4136 #line 902 "cgrammar.y"
4137 { yyval.typequal = qual_createImmutable (); ;
4140 #line 903 "cgrammar.y"
4141 { yyval.typequal = qual_createNotNull (); ;
4144 #line 904 "cgrammar.y"
4145 { yyval.typequal = qual_createRefCounted (); ;
4148 #line 905 "cgrammar.y"
4149 { yyval.typequal = qual_createRefs (); ;
4152 #line 906 "cgrammar.y"
4153 { yyval.typequal = qual_createKillRef (); ;
4156 #line 907 "cgrammar.y"
4157 { yyval.typequal = qual_createRelDef (); ;
4160 #line 908 "cgrammar.y"
4161 { yyval.typequal = qual_createNewRef (); ;
4164 #line 909 "cgrammar.y"
4165 { yyval.typequal = qual_createTempRef (); ;
4168 #line 910 "cgrammar.y"
4169 { yyval.typequal = qual_createNullTerminated (); ;
4172 #line 913 "cgrammar.y"
4173 { yyval.typequal = qual_createShort (); ;
4176 #line 914 "cgrammar.y"
4177 { yyval.typequal = qual_createLong (); ;
4180 #line 915 "cgrammar.y"
4181 { yyval.typequal = qual_createSigned (); ;
4184 #line 916 "cgrammar.y"
4185 { yyval.typequal = qual_createUnsigned (); ;
4188 #line 925 "cgrammar.y"
4189 { yyval.ctyp = ctype_unknown; ;
4192 #line 926 "cgrammar.y"
4193 { yyval.ctyp = ctype_anyintegral; ;
4196 #line 927 "cgrammar.y"
4197 { yyval.ctyp = ctype_unsignedintegral; ;
4200 #line 928 "cgrammar.y"
4201 { yyval.ctyp = ctype_signedintegral; ;
4204 #line 932 "cgrammar.y"
4205 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4208 #line 936 "cgrammar.y"
4209 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4212 #line 939 "cgrammar.y"
4213 { yyval.qtyp = yyvsp[0].qtyp; ;
4216 #line 941 "cgrammar.y"
4217 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4220 #line 946 "cgrammar.y"
4221 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4224 #line 949 "cgrammar.y"
4225 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4228 #line 950 "cgrammar.y"
4229 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4232 #line 951 "cgrammar.y"
4233 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4236 #line 954 "cgrammar.y"
4237 { yyval.qtyp = qtype_unknown (); ;
4240 #line 955 "cgrammar.y"
4241 { yyval.qtyp = yyvsp[0].qtyp; ;
4244 #line 958 "cgrammar.y"
4245 { sRef_setGlobalScopeSafe (); ;
4248 #line 960 "cgrammar.y"
4249 { sRef_clearGlobalScopeSafe (); ;
4252 #line 962 "cgrammar.y"
4253 { yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ;
4256 #line 963 "cgrammar.y"
4257 { sRef_setGlobalScopeSafe (); ;
4260 #line 965 "cgrammar.y"
4261 { sRef_clearGlobalScopeSafe (); ;
4264 #line 967 "cgrammar.y"
4265 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4268 #line 969 "cgrammar.y"
4269 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4272 #line 971 "cgrammar.y"
4273 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4276 #line 972 "cgrammar.y"
4277 { sRef_setGlobalScopeSafe (); ;
4280 #line 974 "cgrammar.y"
4281 { sRef_clearGlobalScopeSafe (); ;
4284 #line 976 "cgrammar.y"
4285 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4288 #line 977 "cgrammar.y"
4289 { sRef_setGlobalScopeSafe (); ;
4292 #line 979 "cgrammar.y"
4293 { sRef_clearGlobalScopeSafe (); ;
4296 #line 981 "cgrammar.y"
4297 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4300 #line 983 "cgrammar.y"
4301 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4304 #line 985 "cgrammar.y"
4305 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4308 #line 986 "cgrammar.y"
4309 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4312 #line 987 "cgrammar.y"
4313 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4316 #line 990 "cgrammar.y"
4317 { g_expectingTypeName = FALSE; ;
4320 #line 994 "cgrammar.y"
4321 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4324 #line 995 "cgrammar.y"
4325 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4328 #line 999 "cgrammar.y"
4329 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4332 #line 1001 "cgrammar.y"
4333 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4336 #line 1005 "cgrammar.y"
4337 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4340 #line 1007 "cgrammar.y"
4341 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4344 #line 1010 "cgrammar.y"
4345 { yyval.ntyp = yyvsp[0].ntyp; ;
4348 #line 1011 "cgrammar.y"
4349 { yyval.ntyp = idDecl_undefined; ;
4352 #line 1012 "cgrammar.y"
4353 { yyval.ntyp = yyvsp[-3].ntyp; ;
4356 #line 1017 "cgrammar.y"
4357 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4360 #line 1018 "cgrammar.y"
4361 { context_pushLoc (); ;
4364 #line 1019 "cgrammar.y"
4365 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4368 #line 1020 "cgrammar.y"
4369 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4372 #line 1024 "cgrammar.y"
4373 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4376 #line 1026 "cgrammar.y"
4377 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4380 #line 1031 "cgrammar.y"
4381 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4382 usymtab_supGlobalEntry (ue);
4383 yyval.cname = yyvsp[0].cname;
4387 #line 1036 "cgrammar.y"
4388 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4389 usymtab_supGlobalEntry (ue);
4390 yyval.cname = yyvsp[-3].cname;
4394 #line 1043 "cgrammar.y"
4395 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4398 #line 1045 "cgrammar.y"
4400 qtype qt = qtype_unknown ();
4402 qtype_adjustPointers (yyvsp[-1].count, qt);
4403 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4407 #line 1052 "cgrammar.y"
4408 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4411 #line 1057 "cgrammar.y"
4412 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4415 #line 1060 "cgrammar.y"
4416 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4419 #line 1061 "cgrammar.y"
4420 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4423 #line 1064 "cgrammar.y"
4424 { /* ignored for now */; ;
4427 #line 1065 "cgrammar.y"
4431 #line 1068 "cgrammar.y"
4435 #line 1069 "cgrammar.y"
4439 #line 1072 "cgrammar.y"
4440 { yyval.count = 1; ;
4443 #line 1073 "cgrammar.y"
4444 { yyval.count = 1; ;
4447 #line 1074 "cgrammar.y"
4448 { yyval.count = 1 + yyvsp[0].count; ;
4451 #line 1075 "cgrammar.y"
4452 { yyval.count = 1 + yyvsp[0].count; ;
4455 #line 1079 "cgrammar.y"
4456 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4459 #line 1082 "cgrammar.y"
4460 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4463 #line 1083 "cgrammar.y"
4464 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4467 #line 1086 "cgrammar.y"
4468 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4471 #line 1088 "cgrammar.y"
4472 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4475 #line 1091 "cgrammar.y"
4479 #line 1091 "cgrammar.y"
4480 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4483 #line 1092 "cgrammar.y"
4487 #line 1093 "cgrammar.y"
4488 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4491 #line 1097 "cgrammar.y"
4493 if (isFlipOldStyle ())
4495 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4501 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4505 #line 1109 "cgrammar.y"
4507 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4511 llparseerror (message ("Inconsistent function parameter syntax: %q",
4512 idDecl_unparse (tparam)));
4516 yyval.oentry = makeCurrentParam (tparam);
4517 idDecl_free (tparam);
4521 #line 1125 "cgrammar.y"
4522 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4525 #line 1128 "cgrammar.y"
4526 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4529 #line 1130 "cgrammar.y"
4530 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4533 #line 1133 "cgrammar.y"
4534 { yyval.ctyp = ctype_unknown; ;
4537 #line 1138 "cgrammar.y"
4538 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4541 #line 1139 "cgrammar.y"
4542 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4545 #line 1140 "cgrammar.y"
4546 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4549 #line 1141 "cgrammar.y"
4550 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4553 #line 1142 "cgrammar.y"
4554 { yyval.ctyp = ctype_makeArray (yyvsp[-3].ctyp); ;
4557 #line 1144 "cgrammar.y"
4558 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4561 #line 1146 "cgrammar.y"
4562 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4565 #line 1148 "cgrammar.y"
4566 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4569 #line 1150 "cgrammar.y"
4570 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4573 #line 1166 "cgrammar.y"
4574 { yyval.expr = yyvsp[0].expr; ;
4577 #line 1174 "cgrammar.y"
4578 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4581 #line 1178 "cgrammar.y"
4582 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4585 #line 1180 "cgrammar.y"
4586 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4589 #line 1182 "cgrammar.y"
4590 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4593 #line 1184 "cgrammar.y"
4594 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4597 #line 1188 "cgrammar.y"
4598 { context_setProtectVars (); ;
4601 #line 1188 "cgrammar.y"
4602 { context_sizeofReleaseVars (); ;
4605 #line 1190 "cgrammar.y"
4606 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4607 context_enterForClause (yyvsp[-5].expr); ;
4610 #line 1195 "cgrammar.y"
4611 { setProcessingIterVars (yyvsp[-2].entry); ;
4614 #line 1197 "cgrammar.y"
4615 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].alist); ;
4618 #line 1198 "cgrammar.y"
4619 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4622 #line 1204 "cgrammar.y"
4623 { yyval.expr = yyvsp[0].expr; ;
4626 #line 1212 "cgrammar.y"
4627 { yyval.expr = yyvsp[-1].expr; ;
4630 #line 1213 "cgrammar.y"
4631 { yyval.expr = exprNode_makeError (); ;
4634 #line 1217 "cgrammar.y"
4635 { /* don't: context_exitTrueClause ($1, $2); */
4636 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4640 #line 1222 "cgrammar.y"
4641 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4644 #line 1225 "cgrammar.y"
4645 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4648 #line 1240 "cgrammar.y"
4649 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4652 #line 1242 "cgrammar.y"
4653 { yyval.expr = exprNode_makeError (); ;
4656 #line 1245 "cgrammar.y"
4657 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
4660 #line 1246 "cgrammar.y"
4661 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4664 #line 1252 "cgrammar.y"
4665 { context_enterCaseClause (yyvsp[0].expr); ;
4668 #line 1253 "cgrammar.y"
4669 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4672 #line 1254 "cgrammar.y"
4673 { context_enterCaseClause (yyvsp[0].expr); ;
4676 #line 1255 "cgrammar.y"
4677 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4680 #line 1258 "cgrammar.y"
4681 { context_enterCaseClause (exprNode_undefined); ;
4684 #line 1259 "cgrammar.y"
4685 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
4688 #line 1260 "cgrammar.y"
4689 { context_enterCaseClause (exprNode_undefined); ;
4692 #line 1261 "cgrammar.y"
4693 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
4696 #line 1264 "cgrammar.y"
4697 { yyval.expr = yyvsp[-1].expr; ;
4700 #line 1266 "cgrammar.y"
4701 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4704 #line 1269 "cgrammar.y"
4705 { yyval.expr = yyvsp[-1].expr; ;
4708 #line 1272 "cgrammar.y"
4709 { context_enterInnerContext (); ;
4712 #line 1275 "cgrammar.y"
4713 { context_exitInnerPlain (); ;
4716 #line 1278 "cgrammar.y"
4717 { context_enterStructInnerContext (); ;
4720 #line 1281 "cgrammar.y"
4721 { context_exitStructInnerContext (); ;
4724 #line 1284 "cgrammar.y"
4725 { context_exitInnerSafe (); ;
4728 #line 1287 "cgrammar.y"
4729 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4732 #line 1288 "cgrammar.y"
4733 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4736 #line 1289 "cgrammar.y"
4737 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4740 #line 1291 "cgrammar.y"
4741 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4744 #line 1292 "cgrammar.y"
4745 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4748 #line 1294 "cgrammar.y"
4749 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4752 #line 1296 "cgrammar.y"
4753 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4756 #line 1298 "cgrammar.y"
4757 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
4758 lltok_getLoc (yyvsp[-1].tok)));
4762 #line 1305 "cgrammar.y"
4763 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
4766 #line 1309 "cgrammar.y"
4767 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4770 #line 1311 "cgrammar.y"
4771 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4774 #line 1313 "cgrammar.y"
4775 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4778 #line 1315 "cgrammar.y"
4779 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4782 #line 1319 "cgrammar.y"
4783 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4786 #line 1322 "cgrammar.y"
4787 { yyval.expr = yyvsp[0].expr; ;
4790 #line 1323 "cgrammar.y"
4791 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4794 #line 1326 "cgrammar.y"
4795 { yyval.expr = yyvsp[0].expr; ;
4798 #line 1327 "cgrammar.y"
4799 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4802 #line 1330 "cgrammar.y"
4803 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4806 #line 1331 "cgrammar.y"
4807 { yyval.expr = exprNode_statement (yyvsp[-1].expr); ;
4810 #line 1334 "cgrammar.y"
4811 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4814 #line 1335 "cgrammar.y"
4815 { yyval.expr = exprNode_statement (yyvsp[-1].expr); ;
4818 #line 1336 "cgrammar.y"
4819 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
4822 #line 1340 "cgrammar.y"
4823 { yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4826 #line 1348 "cgrammar.y"
4828 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
4829 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4833 #line 1352 "cgrammar.y"
4834 { context_enterFalseClause (yyvsp[-2].expr); ;
4837 #line 1353 "cgrammar.y"
4839 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4840 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4844 #line 1357 "cgrammar.y"
4845 { context_enterSwitch (yyvsp[0].expr); ;
4848 #line 1358 "cgrammar.y"
4849 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
4852 #line 1362 "cgrammar.y"
4853 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
4856 #line 1366 "cgrammar.y"
4857 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
4860 #line 1369 "cgrammar.y"
4861 { context_enterIterClause (); ;
4864 #line 1370 "cgrammar.y"
4865 { setProcessingIterVars (yyvsp[-3].entry); ;
4868 #line 1373 "cgrammar.y"
4870 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].alist, yyvsp[-2].expr, yyvsp[-1].entry);
4875 #line 1379 "cgrammar.y"
4876 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
4879 #line 1380 "cgrammar.y"
4880 { nextIterParam (); ;
4883 #line 1381 "cgrammar.y"
4884 { yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ;
4887 #line 1384 "cgrammar.y"
4888 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
4891 #line 1385 "cgrammar.y"
4892 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
4895 #line 1386 "cgrammar.y"
4896 { uentry ue = coerceIterId (yyvsp[0].cname);
4898 if (uentry_isValid (ue))
4900 yyval.expr = exprNode_iterId (ue);
4904 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
4909 #line 1397 "cgrammar.y"
4910 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
4913 #line 1405 "cgrammar.y"
4914 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4917 #line 1409 "cgrammar.y"
4918 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4921 #line 1410 "cgrammar.y"
4922 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4925 #line 1411 "cgrammar.y"
4926 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
4929 #line 1413 "cgrammar.y"
4930 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
4933 #line 1414 "cgrammar.y"
4934 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
4937 #line 1415 "cgrammar.y"
4938 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
4941 #line 1416 "cgrammar.y"
4942 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4945 #line 1417 "cgrammar.y"
4946 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4949 #line 1421 "cgrammar.y"
4950 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4953 #line 1422 "cgrammar.y"
4954 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4957 #line 1423 "cgrammar.y"
4958 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4961 #line 1424 "cgrammar.y"
4962 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4965 #line 1425 "cgrammar.y"
4966 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4969 #line 1426 "cgrammar.y"
4970 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4973 #line 1427 "cgrammar.y"
4974 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4977 #line 1428 "cgrammar.y"
4978 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4981 #line 1429 "cgrammar.y"
4982 { yyval.expr = yyvsp[0].expr; ;
4985 #line 1433 "cgrammar.y"
4986 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
4989 #line 1437 "cgrammar.y"
4990 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4993 #line 1438 "cgrammar.y"
4994 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4997 #line 1439 "cgrammar.y"
4998 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5001 #line 1443 "cgrammar.y"
5002 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5005 #line 1444 "cgrammar.y"
5006 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5009 #line 1448 "cgrammar.y"
5010 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5013 #line 1449 "cgrammar.y"
5014 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5017 #line 1453 "cgrammar.y"
5018 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5021 #line 1454 "cgrammar.y"
5022 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5025 #line 1455 "cgrammar.y"
5026 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5029 #line 1456 "cgrammar.y"
5030 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5033 #line 1460 "cgrammar.y"
5034 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5037 #line 1461 "cgrammar.y"
5038 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5041 #line 1465 "cgrammar.y"
5042 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5045 #line 1469 "cgrammar.y"
5046 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5049 #line 1474 "cgrammar.y"
5050 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5053 #line 1478 "cgrammar.y"
5054 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5057 #line 1482 "cgrammar.y"
5058 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5061 #line 1486 "cgrammar.y"
5062 { context_enterTrueClause (yyvsp[-1].expr); ;
5065 #line 1487 "cgrammar.y"
5066 { context_enterFalseClause (yyvsp[-4].expr); ;
5069 #line 1488 "cgrammar.y"
5070 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5073 #line 1492 "cgrammar.y"
5074 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5077 #line 1493 "cgrammar.y"
5078 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5081 #line 1494 "cgrammar.y"
5082 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5085 #line 1495 "cgrammar.y"
5086 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5089 #line 1496 "cgrammar.y"
5090 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5093 #line 1497 "cgrammar.y"
5094 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5097 #line 1498 "cgrammar.y"
5098 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5101 #line 1499 "cgrammar.y"
5102 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5105 #line 1500 "cgrammar.y"
5106 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5109 #line 1501 "cgrammar.y"
5110 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5113 #line 1502 "cgrammar.y"
5114 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5117 #line 1505 "cgrammar.y"
5118 { yyval.entry = yyvsp[0].entry; ;
5121 #line 1506 "cgrammar.y"
5122 { yyval.entry = uentry_undefined; ;
5125 #line 1509 "cgrammar.y"
5126 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5129 #line 1513 "cgrammar.y"
5130 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5133 #line 1515 "cgrammar.y"
5134 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ;
5137 #line 1517 "cgrammar.y"
5138 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5141 #line 1520 "cgrammar.y"
5142 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5145 #line 1522 "cgrammar.y"
5146 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ;
5149 #line 1524 "cgrammar.y"
5150 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5153 #line 1525 "cgrammar.y"
5154 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5157 #line 1528 "cgrammar.y"
5158 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5161 #line 1529 "cgrammar.y"
5162 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5165 #line 1531 "cgrammar.y"
5166 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5169 #line 1532 "cgrammar.y"
5170 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5173 #line 1533 "cgrammar.y"
5174 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5177 #line 1534 "cgrammar.y"
5178 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5181 #line 1535 "cgrammar.y"
5182 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5185 #line 1536 "cgrammar.y"
5186 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5189 #line 1537 "cgrammar.y"
5190 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5193 #line 1538 "cgrammar.y"
5194 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5197 #line 1542 "cgrammar.y"
5201 #line 1549 "cgrammar.y"
5202 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5205 #line 1550 "cgrammar.y"
5206 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5209 #line 1551 "cgrammar.y"
5210 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5213 #line 1552 "cgrammar.y"
5214 { yyval.cname = yyvsp[0].cname; ;
5217 #line 1556 "cgrammar.y"
5218 { yyval.ctyp = ctype_unknown; ;
5221 /* the action file gets copied in in place of this dollarsign */
5222 #line 498 "/gnu/share/bison.simple"
5233 short *ssp1 = yyss - 1;
5234 fprintf (stderr, "state stack now");
5235 while (ssp1 != yyssp)
5236 fprintf (stderr, " %d", *++ssp1);
5237 fprintf (stderr, "\n");
5247 yylsp->first_line = yylloc.first_line;
5248 yylsp->first_column = yylloc.first_column;
5249 yylsp->last_line = (yylsp-1)->last_line;
5250 yylsp->last_column = (yylsp-1)->last_column;
5255 yylsp->last_line = (yylsp+yylen-1)->last_line;
5256 yylsp->last_column = (yylsp+yylen-1)->last_column;
5260 /* Now "shift" the result of the reduction.
5261 Determine what state that goes to,
5262 based on the state we popped back to
5263 and the rule number reduced by. */
5267 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5268 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5269 yystate = yytable[yystate];
5271 yystate = yydefgoto[yyn - YYNTBASE];
5275 yyerrlab: /* here on detecting error */
5278 /* If not already recovering from an error, report this error. */
5282 #ifdef YYERROR_VERBOSE
5283 yyn = yypact[yystate];
5285 if (yyn > YYFLAG && yyn < YYLAST)
5292 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5293 for (x = (yyn < 0 ? -yyn : 0);
5294 x < (sizeof(yytname) / sizeof(char *)); x++)
5295 if (yycheck[x + yyn] == x)
5296 size += strlen(yytname[x]) + 15, count++;
5297 msg = (char *) malloc(size + 15);
5300 strcpy(msg, "parse error");
5305 for (x = (yyn < 0 ? -yyn : 0);
5306 x < (sizeof(yytname) / sizeof(char *)); x++)
5307 if (yycheck[x + yyn] == x)
5309 strcat(msg, count == 0 ? ", expecting `" : " or `");
5310 strcat(msg, yytname[x]);
5319 yyerror ("parse error; also virtual memory exceeded");
5322 #endif /* YYERROR_VERBOSE */
5323 yyerror("parse error");
5327 yyerrlab1: /* here on error raised explicitly by an action */
5329 if (yyerrstatus == 3)
5331 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5333 /* return failure if at end of input */
5334 if (yychar == YYEOF)
5339 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5345 /* Else will try to reuse lookahead token
5346 after shifting the error token. */
5348 yyerrstatus = 3; /* Each real token shifted decrements this */
5352 yyerrdefault: /* current state does not do anything special for the error token. */
5355 /* This is wrong; only states that explicitly want error tokens
5356 should shift them. */
5357 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5358 if (yyn) goto yydefault;
5361 yyerrpop: /* pop the current state because it cannot handle the error token */
5363 if (yyssp == yyss) YYABORT;
5373 short *ssp1 = yyss - 1;
5374 fprintf (stderr, "Error: state stack now");
5375 while (ssp1 != yyssp)
5376 fprintf (stderr, " %d", *++ssp1);
5377 fprintf (stderr, "\n");
5383 yyn = yypact[yystate];
5388 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5407 fprintf(stderr, "Shifting error token, ");
5418 #line 1558 "cgrammar.y"
5422 extern char *yytext;
5425 # include "bison.reset"
5427 void yyerror (/*@unused@*/ char *s)
5429 static bool givehint = FALSE;
5431 if (context_inIterDef ())
5433 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5434 context_inFunctionName ()));
5436 else if (context_inIterEnd ())
5438 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5439 context_inFunctionName ()));
5441 else if (context_inMacro ())
5443 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5444 context_inFunctionName ()));
5446 if (context_inMacroUnknown ())
5450 llhint (cstring_makeLiteral
5451 ("Precede macro definition with /*@notfunction@*/ "
5452 "to suppress checking and force expansion"));
5461 llparseerror (cstring_undefined);
5465 void printState (idDecl t) {
5466 cstring id = idDecl_getName (t);
5467 uentry ue = usymtab_lookupSafe (id);
5469 sRef s = uentry_getSref (ue);
5471 printf("State = %d\n", s->bufinfo.bufstate);