2 /* A Bison parser, made from cgrammar.y
3 by GNU Bison version 1.25
6 #define YYBISON 1 /* Identify Bison output. */
10 #define CTOK_ELIPSIS 260
34 #define TAMPERSAND 284
62 #define MUL_ASSIGN 312
63 #define DIV_ASSIGN 313
64 #define MOD_ASSIGN 314
65 #define ADD_ASSIGN 315
66 #define SUB_ASSIGN 316
67 #define LEFT_ASSIGN 317
68 #define RIGHT_ASSIGN 318
69 #define AND_ASSIGN 319
70 #define XOR_ASSIGN 320
85 #define QALLOCATES 335
88 #define QPRECLAUSE 338
89 #define QPOSTCLAUSE 339
95 #define LLMACROITER 345
96 #define LLMACROEND 346
98 #define QSWITCHBREAK 348
99 #define QLOOPBREAK 349
100 #define QINNERBREAK 350
101 #define QSAFEBREAK 351
102 #define QINNERCONTINUE 352
103 #define QFALLTHROUGH 353
104 #define QLINTNOTREACHED 354
105 #define QLINTFALLTHROUGH 355
106 #define QLINTFALLTHRU 356
107 #define QARGSUSED 357
108 #define QPRINTFLIKE 358
109 #define QLINTPRINTFLIKE 359
110 #define QSCANFLIKE 360
111 #define QMESSAGELIKE 361
112 #define QNOTREACHED 362
114 #define QVOLATILE 364
116 #define QEXTENSION 366
120 #define QREGISTER 370
130 #define QUNCHECKED 380
131 #define QCHECKEDSTRICT 381
132 #define QCHECKMOD 382
138 #define QDEPENDENT 388
139 #define QRETURNED 389
142 #define QOBSERVER 392
146 #define QNEVEREXIT 396
147 #define QTRUEEXIT 397
148 #define QFALSEEXIT 398
151 #define QUNSIGNED 401
157 #define QABSTRACT 407
158 #define QCONCRETE 408
160 #define QIMMUTABLE 410
161 #define QTRUENULL 411
162 #define QFALSENULL 412
163 #define QEXTERNAL 413
164 #define QREFCOUNTED 414
177 #define QINTEGRALTYPE 427
178 #define QUNSIGNEDINTEGRALTYPE 428
179 #define QSIGNEDINTEGRALTYPE 429
180 #define QNULLTERMINATED 430
181 #define QSETBUFFERSIZE 431
182 #define QBUFFERCONSTRAINT 432
183 #define QENSURESCONSTRAINT 433
184 #define QSETSTRINGLENGTH 434
187 #define QTESTINRANGE 437
188 #define IDENTIFIER 438
189 #define NEW_IDENTIFIER 439
190 #define TYPE_NAME_OR_ID 440
191 #define CCONSTANT 441
192 #define ITER_NAME 442
193 #define ITER_ENDNAME 443
194 #define TYPE_NAME 444
196 #line 19 "cgrammar.y"
202 ** Yacc/Bison grammar for extended ANSI C used by LCLint.
204 ** original grammar by Nate Osgood ---
205 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
207 ** changes for LCLint --- handle typedef names correctly
208 ** fix struct/union parsing bug (empty struct is accepted)
209 ** add productions to handle macros --- require
210 ** error correction --- main source of conflicts in grammar.
211 ** need to process initializations sequentially, L->R
213 ** production names are cryptic, so more productions fit on one line
215 ** conflicts: 87 shift/reduce, 18 reduce/reduce
216 ** most of these are due to handling macros
217 ** a few are due to handling type expressions
223 extern void swallowMacro (void);
225 # include "lclintMacros.nf"
227 # include "cgrammar.h"
228 # include "exprChecks.h"
233 # define SHOWCSYM FALSE
234 void yyerror (char *s);
237 ** This is necessary, or else when the bison-generated code #include's malloc.h,
238 ** there will be a parse error.
240 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
241 ** in bison-generated files under Win32.
250 void checkandsetBufState(idDecl id, exprNode is);
252 #line 75 "cgrammar.y"
257 specialClauseKind sck;
262 /*@only@*/ qtype qtyp;
263 /*@only@*/ cstring cname;
264 /*@only@*/ idDecl ntyp;
265 /*@only@*/ idDeclList ntyplist;
266 /*@only@*/ uentryList flist;
267 /*@owned@*/ uentryList entrylist;
268 /*@observer@*/ /*@dependent@*/ uentry entry;
269 /*@only@*/ uentry oentry;
270 /*@only@*/ exprNode expr;
271 /*@only@*/ enumNameList enumnamelist;
272 /*@only@*/ exprNodeList alist;
273 /*@only@*/ sRefSet srset;
274 /*@only@*/ cstringList cstringlist;
298 #define YYFLAG -32768
301 #define YYTRANSLATE(x) ((unsigned)(x) <= 444 ? yytranslate[x] : 434)
303 static const short yytranslate[] = { 0,
304 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
305 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
306 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
307 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
308 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
309 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
310 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
311 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
312 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
313 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
314 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
315 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
316 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
317 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
318 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
319 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
321 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
322 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
323 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
325 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
330 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
331 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
332 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
333 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
334 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
335 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
336 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
337 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
338 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
339 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
340 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
341 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
342 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
343 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
344 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
345 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
346 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
347 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
352 static const short yyprhs[] = { 0,
353 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
354 21, 23, 32, 44, 45, 51, 53, 57, 59, 62,
355 64, 71, 75, 82, 83, 91, 92, 101, 103, 110,
356 114, 121, 122, 129, 130, 138, 139, 140, 151, 155,
357 159, 163, 166, 168, 169, 172, 173, 176, 179, 180,
358 185, 186, 187, 192, 193, 196, 198, 203, 205, 207,
359 209, 211, 213, 215, 220, 226, 228, 230, 232, 234,
360 238, 243, 246, 250, 254, 258, 260, 262, 264, 265,
361 268, 269, 272, 274, 277, 279, 282, 284, 287, 289,
362 293, 296, 298, 300, 302, 304, 306, 308, 310, 311,
363 314, 315, 322, 323, 330, 332, 334, 335, 336, 342,
364 343, 349, 351, 353, 354, 356, 357, 358, 362, 363,
365 367, 369, 371, 373, 375, 377, 379, 381, 383, 385,
366 387, 389, 391, 393, 395, 397, 399, 401, 402, 410,
367 411, 420, 422, 426, 427, 431, 432, 436, 439, 443,
368 446, 449, 451, 453, 455, 459, 464, 467, 471, 475,
369 479, 481, 483, 485, 489, 491, 493, 497, 502, 505,
370 509, 513, 517, 519, 523, 525, 527, 529, 533, 535,
371 537, 539, 544, 548, 553, 560, 566, 572, 575, 578,
372 580, 584, 586, 589, 592, 595, 598, 601, 604, 607,
373 610, 612, 614, 618, 620, 630, 631, 635, 640, 643,
374 648, 651, 653, 658, 660, 664, 668, 672, 674, 678,
375 682, 684, 688, 692, 694, 698, 702, 706, 710, 712,
376 716, 720, 722, 726, 728, 732, 734, 738, 740, 741,
377 746, 748, 749, 754, 756, 757, 758, 766, 768, 772,
378 776, 780, 784, 788, 792, 796, 800, 804, 808, 812,
379 814, 818, 819, 821, 823, 825, 827, 829, 833, 834,
380 844, 845, 857, 860, 861, 868, 869, 877, 882, 887,
381 888, 889, 892, 894, 899, 900, 905, 907, 911, 916,
382 918, 922, 924, 926, 928, 930, 932, 935, 938, 941,
383 944, 947, 950, 953, 956, 959, 962, 965, 968, 971,
384 974, 977, 980, 983, 986, 989, 992, 995, 998, 1001,
385 1004, 1007, 1010, 1013, 1016, 1019, 1022, 1025, 1028, 1031,
386 1034, 1037, 1040, 1043, 1046, 1049, 1052, 1055, 1058, 1061,
387 1064, 1067, 1070, 1072, 1074, 1076, 1078, 1081, 1084, 1087,
388 1090, 1093, 1096, 1099, 1102, 1105, 1108, 1111, 1114, 1117,
389 1120, 1124, 1126, 1131, 1133, 1137, 1140, 1143, 1146, 1147,
390 1149, 1150, 1151, 1163, 1164, 1165, 1177, 1184, 1191, 1192,
391 1193, 1204, 1205, 1206, 1217, 1223, 1229, 1234, 1239, 1240,
392 1242, 1244, 1247, 1253, 1257, 1260, 1265, 1267, 1271, 1276,
393 1283, 1284, 1293, 1298, 1300, 1304, 1307, 1309, 1314, 1316,
394 1318, 1321, 1324, 1326, 1329, 1331, 1334, 1336, 1338, 1340,
395 1343, 1345, 1348, 1351, 1355, 1357, 1361, 1363, 1367, 1369,
396 1371, 1375, 1376, 1379, 1380, 1385, 1390, 1392, 1394, 1397,
397 1399, 1401, 1404, 1405, 1407, 1413, 1416, 1420, 1424, 1429,
398 1433, 1438, 1443, 1449, 1451, 1453, 1455, 1457, 1459, 1461,
399 1463, 1465, 1467, 1469, 1474, 1479, 1484, 1487, 1489, 1491,
400 1493, 1496, 1499, 1507, 1514, 1517, 1518, 1519, 1530, 1531,
401 1538, 1540, 1542, 1544, 1546, 1549, 1551, 1553, 1555, 1557,
402 1559, 1561, 1563, 1567, 1569, 1572, 1575, 1578, 1580, 1582,
403 1584, 1586, 1588, 1590, 1592, 1594, 1596, 1598, 1602, 1604,
404 1606, 1609, 1612, 1613, 1618, 1619, 1625, 1626, 1630, 1631,
405 1636, 1640, 1643, 1647, 1648, 1649, 1650, 1651, 1652, 1654,
406 1657, 1660, 1664, 1667, 1671, 1675, 1680, 1683, 1686, 1690,
407 1694, 1699, 1701, 1704, 1706, 1709, 1711, 1714, 1716, 1719,
408 1721, 1724, 1726, 1731, 1734, 1735, 1741, 1742, 1749, 1754,
409 1759, 1760, 1761, 1772, 1774, 1775, 1780, 1782, 1784, 1786,
410 1788, 1790, 1794, 1796, 1801, 1805, 1810, 1817, 1823, 1829,
411 1832, 1835, 1837, 1840, 1843, 1846, 1849, 1852, 1855, 1858,
412 1861, 1863, 1865, 1870, 1872, 1876, 1880, 1884, 1886, 1890,
413 1894, 1896, 1900, 1904, 1906, 1910, 1914, 1918, 1922, 1924,
414 1928, 1932, 1934, 1938, 1940, 1944, 1946, 1950, 1952, 1956,
415 1958, 1962, 1964, 1965, 1966, 1974, 1976, 1980, 1984, 1988,
416 1992, 1996, 2000, 2004, 2008, 2012, 2016, 2020, 2022, 2023,
417 2025, 2028, 2036, 2039, 2042, 2050, 2057, 2060, 2064, 2067,
418 2071, 2074, 2078, 2082, 2086, 2090, 2093, 2097, 2098, 2100,
419 2102, 2104, 2106, 2108, 2110, 2112, 2114
422 static const short yyrhs[] = { -1,
423 191, 0, 192, 0, 191, 192, 0, 260, 430, 0,
424 193, 0, 194, 0, 204, 0, 207, 0, 297, 0,
425 1, 0, 75, 317, 330, 340, 330, 430, 305, 88,
426 0, 75, 317, 330, 340, 330, 23, 305, 310, 309,
427 430, 88, 0, 0, 76, 195, 196, 430, 88, 0,
428 197, 0, 317, 330, 197, 0, 201, 0, 344, 201,
429 0, 432, 0, 305, 24, 330, 340, 305, 25, 0,
430 198, 26, 27, 0, 198, 26, 305, 296, 27, 330,
431 0, 0, 198, 306, 24, 25, 199, 209, 211, 0,
432 0, 198, 306, 24, 341, 25, 200, 209, 211, 0,
433 432, 0, 305, 24, 330, 197, 305, 25, 0, 201,
434 26, 27, 0, 201, 26, 305, 296, 27, 330, 0,
435 0, 201, 306, 24, 25, 202, 227, 0, 0, 201,
436 306, 24, 341, 25, 203, 227, 0, 0, 0, 77,
437 432, 24, 341, 25, 205, 227, 206, 430, 88, 0,
438 89, 371, 92, 0, 90, 358, 92, 0, 91, 359,
439 92, 0, 89, 92, 0, 256, 0, 0, 210, 229,
440 0, 0, 212, 213, 0, 216, 214, 0, 0, 215,
441 178, 218, 88, 0, 0, 0, 217, 177, 218, 88,
442 0, 0, 219, 218, 0, 219, 0, 222, 221, 222,
443 18, 0, 180, 0, 181, 0, 52, 0, 51, 0,
444 53, 0, 223, 0, 225, 24, 222, 25, 0, 24,
445 222, 226, 222, 25, 0, 224, 0, 186, 0, 431,
446 0, 184, 0, 224, 26, 27, 0, 224, 26, 186,
447 27, 0, 34, 224, 0, 24, 224, 25, 0, 224,
448 28, 432, 0, 224, 44, 432, 0, 220, 0, 33,
449 0, 32, 0, 0, 0, 230, 0, 0, 228, 230,
450 0, 237, 0, 231, 237, 0, 240, 0, 231, 240,
451 0, 253, 0, 253, 231, 0, 233, 0, 232, 21,
452 233, 0, 236, 234, 0, 431, 0, 184, 0, 86,
453 0, 87, 0, 116, 0, 117, 0, 130, 0, 0,
454 235, 236, 0, 0, 72, 238, 391, 430, 88, 243,
455 0, 0, 72, 239, 232, 430, 88, 243, 0, 74,
456 0, 244, 0, 0, 0, 72, 241, 391, 430, 243,
457 0, 0, 72, 242, 232, 430, 243, 0, 74, 0,
458 246, 0, 0, 244, 0, 0, 0, 73, 245, 261,
459 0, 0, 73, 247, 262, 0, 78, 0, 79, 0,
460 80, 0, 81, 0, 82, 0, 88, 0, 88, 0,
461 83, 0, 84, 0, 119, 0, 137, 0, 135, 0,
462 133, 0, 132, 0, 121, 0, 138, 0, 150, 0,
463 0, 248, 330, 254, 267, 430, 250, 305, 0, 0,
464 251, 330, 252, 255, 267, 430, 249, 305, 0, 340,
465 0, 317, 330, 340, 0, 0, 19, 258, 387, 0,
466 0, 391, 259, 380, 0, 208, 257, 0, 265, 430,
467 88, 0, 430, 88, 0, 265, 430, 0, 430, 0,
468 431, 0, 184, 0, 263, 26, 27, 0, 263, 26,
469 264, 27, 0, 34, 263, 0, 24, 263, 25, 0,
470 263, 28, 432, 0, 263, 44, 432, 0, 263, 0,
471 186, 0, 263, 0, 265, 21, 263, 0, 431, 0,
472 184, 0, 266, 26, 27, 0, 266, 26, 264, 27,
473 0, 34, 266, 0, 24, 266, 25, 0, 266, 28,
474 432, 0, 266, 44, 432, 0, 266, 0, 267, 21,
475 266, 0, 431, 0, 184, 0, 186, 0, 24, 294,
476 25, 0, 185, 0, 111, 0, 268, 0, 269, 26,
477 294, 27, 0, 269, 24, 25, 0, 269, 24, 270,
478 25, 0, 70, 24, 293, 21, 352, 25, 0, 269,
479 330, 28, 432, 305, 0, 269, 330, 44, 432, 305,
480 0, 269, 47, 0, 269, 48, 0, 293, 0, 270,
481 21, 293, 0, 269, 0, 47, 271, 0, 48, 271,
482 0, 29, 277, 0, 34, 277, 0, 33, 277, 0,
483 32, 277, 0, 31, 277, 0, 30, 277, 0, 274,
484 0, 273, 0, 272, 28, 432, 0, 432, 0, 46,
485 305, 24, 352, 330, 21, 272, 25, 305, 0, 0,
486 305, 275, 276, 0, 42, 24, 352, 25, 0, 42,
487 271, 0, 43, 24, 352, 25, 0, 43, 271, 0,
488 271, 0, 24, 352, 25, 277, 0, 277, 0, 278,
489 34, 277, 0, 278, 35, 277, 0, 278, 36, 277,
490 0, 278, 0, 279, 33, 278, 0, 279, 32, 278,
491 0, 279, 0, 280, 49, 279, 0, 280, 50, 279,
492 0, 280, 0, 281, 37, 280, 0, 281, 38, 280,
493 0, 281, 51, 280, 0, 281, 52, 280, 0, 281,
494 0, 282, 53, 281, 0, 282, 54, 281, 0, 282,
495 0, 283, 29, 282, 0, 283, 0, 284, 39, 283,
496 0, 284, 0, 285, 40, 284, 0, 285, 0, 0,
497 286, 55, 287, 285, 0, 286, 0, 0, 288, 56,
498 289, 286, 0, 288, 0, 0, 0, 288, 41, 291,
499 294, 22, 292, 290, 0, 290, 0, 271, 23, 293,
500 0, 271, 57, 293, 0, 271, 58, 293, 0, 271,
501 59, 293, 0, 271, 60, 293, 0, 271, 61, 293,
502 0, 271, 62, 293, 0, 271, 63, 293, 0, 271,
503 64, 293, 0, 271, 65, 293, 0, 271, 66, 293,
504 0, 293, 0, 294, 21, 293, 0, 0, 294, 0,
505 290, 0, 298, 0, 71, 0, 303, 0, 317, 305,
506 18, 0, 0, 317, 330, 340, 330, 299, 305, 309,
507 18, 305, 0, 0, 317, 330, 340, 330, 23, 300,
508 305, 310, 309, 18, 305, 0, 340, 330, 0, 0,
509 340, 330, 23, 302, 305, 310, 0, 0, 45, 317,
510 304, 330, 307, 305, 18, 0, 45, 317, 305, 18,
511 0, 45, 307, 305, 18, 0, 0, 0, 308, 305,
512 0, 301, 0, 307, 21, 330, 301, 0, 0, 309,
513 21, 330, 301, 0, 293, 0, 19, 311, 20, 0,
514 19, 311, 21, 20, 0, 310, 0, 311, 21, 310,
515 0, 112, 0, 110, 0, 113, 0, 114, 0, 115,
516 0, 108, 305, 0, 109, 305, 0, 116, 305, 0,
517 117, 305, 0, 130, 305, 0, 131, 305, 0, 132,
518 305, 0, 133, 305, 0, 118, 305, 0, 120, 305,
519 0, 119, 305, 0, 128, 305, 0, 129, 305, 0,
520 121, 305, 0, 123, 305, 0, 139, 305, 0, 140,
521 305, 0, 142, 305, 0, 143, 305, 0, 141, 305,
522 0, 136, 305, 0, 151, 305, 0, 134, 305, 0,
523 135, 305, 0, 137, 305, 0, 124, 305, 0, 127,
524 305, 0, 125, 305, 0, 126, 305, 0, 156, 305,
525 0, 157, 305, 0, 148, 305, 0, 158, 305, 0,
526 149, 305, 0, 152, 305, 0, 153, 305, 0, 154,
527 305, 0, 155, 305, 0, 150, 305, 0, 159, 305,
528 0, 160, 305, 0, 163, 305, 0, 164, 305, 0,
529 161, 305, 0, 162, 305, 0, 175, 305, 0, 147,
530 0, 144, 0, 145, 0, 146, 0, 165, 330, 0,
531 167, 330, 0, 166, 330, 0, 168, 330, 0, 169,
532 330, 0, 170, 330, 0, 171, 330, 0, 172, 330,
533 0, 173, 330, 0, 174, 330, 0, 433, 330, 0,
534 321, 330, 0, 335, 330, 0, 314, 330, 0, 305,
535 317, 305, 0, 319, 0, 319, 85, 318, 88, 0,
536 352, 0, 352, 21, 318, 0, 312, 320, 0, 313,
537 320, 0, 315, 320, 0, 0, 317, 0, 0, 0,
538 330, 67, 432, 305, 19, 322, 384, 331, 385, 323,
539 20, 0, 0, 0, 330, 68, 432, 305, 19, 324,
540 384, 331, 385, 325, 20, 0, 330, 67, 432, 305,
541 19, 20, 0, 330, 68, 432, 305, 19, 20, 0,
542 0, 0, 330, 67, 305, 19, 326, 384, 331, 385,
543 327, 20, 0, 0, 0, 330, 68, 305, 19, 328,
544 384, 331, 385, 329, 20, 0, 330, 67, 305, 19,
545 20, 0, 330, 68, 305, 19, 20, 0, 330, 67,
546 432, 330, 0, 330, 68, 432, 330, 0, 0, 332,
547 0, 207, 0, 331, 332, 0, 317, 330, 333, 305,
548 18, 0, 317, 305, 18, 0, 334, 330, 0, 333,
549 21, 334, 330, 0, 340, 0, 22, 305, 296, 0,
550 340, 22, 305, 296, 0, 330, 69, 19, 337, 20,
551 305, 0, 0, 330, 69, 432, 19, 336, 337, 20,
552 305, 0, 330, 69, 432, 305, 0, 338, 0, 337,
553 21, 338, 0, 337, 21, 0, 432, 0, 432, 23,
554 305, 296, 0, 198, 0, 354, 0, 344, 189, 0,
555 344, 339, 0, 198, 0, 344, 198, 0, 347, 0,
556 330, 345, 0, 108, 0, 109, 0, 342, 0, 343,
557 342, 0, 34, 0, 34, 343, 0, 34, 344, 0,
558 34, 343, 344, 0, 346, 0, 346, 21, 5, 0,
559 432, 0, 346, 21, 432, 0, 5, 0, 348, 0,
560 348, 21, 5, 0, 0, 349, 351, 0, 0, 348,
561 21, 350, 351, 0, 305, 317, 339, 305, 0, 432,
562 0, 316, 0, 316, 353, 0, 344, 0, 355, 0,
563 344, 355, 0, 0, 355, 0, 305, 24, 330, 353,
564 25, 0, 26, 27, 0, 26, 296, 27, 0, 355,
565 26, 27, 0, 355, 26, 296, 27, 0, 305, 24,
566 25, 0, 305, 24, 347, 25, 0, 355, 305, 24,
567 25, 0, 355, 305, 24, 347, 25, 0, 373, 0,
568 374, 0, 377, 0, 380, 0, 393, 0, 396, 0,
569 427, 0, 401, 0, 429, 0, 357, 0, 176, 431,
570 186, 88, 0, 179, 431, 186, 88, 0, 182, 431,
571 186, 88, 0, 22, 432, 0, 360, 0, 358, 0,
572 367, 0, 360, 367, 0, 400, 360, 0, 426, 372,
573 11, 24, 294, 25, 18, 0, 426, 372, 11, 24,
574 294, 25, 0, 362, 367, 0, 0, 0, 13, 24,
575 295, 18, 295, 18, 363, 295, 364, 25, 0, 0,
576 187, 382, 24, 366, 404, 25, 0, 188, 0, 373,
577 0, 374, 0, 377, 0, 369, 391, 0, 369, 0,
578 370, 0, 393, 0, 368, 0, 361, 0, 365, 0,
579 429, 0, 24, 367, 25, 0, 1, 0, 395, 367,
580 0, 382, 19, 0, 386, 20, 0, 372, 0, 390,
581 0, 373, 0, 374, 0, 377, 0, 381, 0, 394,
582 0, 396, 0, 401, 0, 428, 0, 24, 372, 25,
583 0, 429, 0, 1, 0, 432, 22, 0, 107, 356,
584 0, 0, 6, 296, 375, 22, 0, 0, 98, 6,
585 296, 376, 22, 0, 0, 7, 378, 22, 0, 0,
586 98, 7, 379, 22, 0, 24, 380, 25, 0, 382,
587 388, 0, 382, 389, 383, 0, 0, 0, 0, 0,
588 0, 20, 0, 107, 20, 0, 392, 20, 0, 392,
589 107, 20, 0, 391, 20, 0, 391, 107, 20, 0,
590 391, 392, 20, 0, 391, 392, 107, 20, 0, 19,
591 387, 0, 19, 20, 0, 19, 390, 20, 0, 19,
592 391, 20, 0, 19, 391, 392, 20, 0, 372, 0,
593 390, 372, 0, 297, 0, 391, 297, 0, 356, 0,
594 392, 356, 0, 18, 0, 294, 18, 0, 18, 0,
595 294, 18, 0, 294, 0, 8, 24, 294, 25, 0,
596 395, 356, 0, 0, 395, 356, 9, 397, 356, 0,
597 0, 10, 24, 294, 398, 25, 356, 0, 11, 24,
598 294, 25, 0, 11, 24, 294, 25, 0, 0, 0,
599 187, 402, 382, 24, 403, 404, 25, 380, 425, 383,
600 0, 406, 0, 0, 404, 405, 21, 406, 0, 424,
601 0, 431, 0, 185, 0, 184, 0, 186, 0, 24,
602 294, 25, 0, 407, 0, 269, 26, 294, 27, 0,
603 269, 24, 25, 0, 269, 24, 270, 25, 0, 70,
604 24, 293, 21, 352, 25, 0, 269, 330, 28, 432,
605 305, 0, 269, 330, 44, 432, 305, 0, 269, 47,
606 0, 269, 48, 0, 408, 0, 47, 271, 0, 48,
607 271, 0, 29, 277, 0, 34, 277, 0, 33, 277,
608 0, 32, 277, 0, 31, 277, 0, 30, 277, 0,
609 274, 0, 409, 0, 24, 352, 25, 277, 0, 410,
610 0, 278, 34, 277, 0, 278, 35, 277, 0, 278,
611 36, 277, 0, 411, 0, 279, 33, 278, 0, 279,
612 32, 278, 0, 412, 0, 280, 49, 279, 0, 280,
613 50, 279, 0, 413, 0, 281, 37, 280, 0, 281,
614 38, 280, 0, 281, 51, 280, 0, 281, 52, 280,
615 0, 414, 0, 282, 53, 281, 0, 282, 54, 281,
616 0, 415, 0, 283, 29, 282, 0, 416, 0, 284,
617 39, 283, 0, 417, 0, 285, 40, 284, 0, 418,
618 0, 286, 55, 285, 0, 419, 0, 288, 56, 286,
619 0, 420, 0, 0, 0, 288, 41, 422, 294, 22,
620 423, 290, 0, 421, 0, 271, 23, 293, 0, 271,
621 57, 293, 0, 271, 58, 293, 0, 271, 59, 293,
622 0, 271, 60, 293, 0, 271, 61, 293, 0, 271,
623 62, 293, 0, 271, 63, 293, 0, 271, 64, 293,
624 0, 271, 65, 293, 0, 271, 66, 293, 0, 188,
625 0, 0, 12, 0, 399, 356, 0, 426, 356, 11,
626 24, 294, 25, 18, 0, 362, 356, 0, 399, 372,
627 0, 426, 372, 11, 24, 294, 25, 18, 0, 426,
628 372, 11, 24, 294, 25, 0, 362, 372, 0, 14,
629 432, 18, 0, 15, 18, 0, 97, 15, 18, 0,
630 16, 18, 0, 93, 16, 18, 0, 94, 16, 18,
631 0, 95, 16, 18, 0, 96, 16, 18, 0, 17,
632 18, 0, 17, 294, 18, 0, 0, 18, 0, 183,
633 0, 184, 0, 187, 0, 188, 0, 431, 0, 185,
640 static const short yyrline[] = { 0,
641 269, 270, 273, 274, 277, 278, 279, 280, 281, 282,
642 283, 286, 288, 292, 292, 297, 303, 307, 308, 312,
643 313, 315, 317, 321, 324, 332, 335, 344, 345, 347,
644 349, 365, 369, 376, 380, 386, 388, 388, 392, 393,
645 394, 395, 398, 401, 402, 408, 409, 413, 417, 422,
646 429, 433, 438, 445, 448, 449, 452, 457, 458, 461,
647 462, 463, 466, 467, 468, 473, 474, 482, 485, 487,
648 488, 493, 494, 495, 497, 513, 517, 518, 523, 524,
649 534, 535, 538, 539, 542, 543, 546, 547, 550, 551,
650 554, 557, 558, 561, 562, 563, 564, 565, 568, 569,
651 572, 572, 575, 575, 578, 582, 583, 586, 586, 589,
652 589, 592, 596, 597, 600, 601, 604, 610, 617, 623,
653 630, 631, 632, 633, 634, 637, 640, 643, 644, 647,
654 648, 649, 650, 651, 652, 653, 654, 657, 663, 670,
655 676, 685, 691, 695, 697, 701, 704, 711, 721, 722,
656 725, 726, 729, 730, 731, 732, 733, 734, 735, 736,
657 740, 741, 745, 746, 749, 751, 753, 754, 755, 756,
658 757, 759, 763, 767, 779, 780, 781, 782, 783, 784,
659 787, 788, 789, 790, 791, 792, 793, 794, 795, 798,
660 799, 802, 803, 804, 805, 806, 807, 808, 809, 810,
661 811, 812, 815, 816, 819, 823, 824, 827, 828, 829,
662 830, 833, 834, 838, 839, 840, 841, 844, 845, 846,
663 849, 850, 851, 854, 855, 856, 857, 858, 861, 862,
664 863, 866, 867, 870, 871, 875, 876, 879, 880, 885,
665 891, 892, 898, 904, 905, 905, 907, 910, 911, 912,
666 913, 914, 915, 916, 917, 918, 919, 920, 921, 924,
667 925, 928, 929, 932, 937, 938, 939, 942, 955, 959,
668 960, 963, 968, 969, 969, 974, 975, 976, 977, 980,
669 983, 986, 989, 990, 993, 994, 997, 998, 999, 1003,
670 1005, 1014, 1015, 1016, 1017, 1018, 1021, 1022, 1023, 1024,
671 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034,
672 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044,
673 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054,
674 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064,
675 1065, 1066, 1072, 1073, 1074, 1075, 1078, 1079, 1080, 1081,
676 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091,
677 1094, 1098, 1099, 1103, 1104, 1108, 1109, 1110, 1113, 1114,
678 1117, 1119, 1121, 1122, 1124, 1126, 1127, 1129, 1131, 1133,
679 1135, 1136, 1138, 1140, 1141, 1143, 1145, 1146, 1149, 1152,
680 1153, 1154, 1157, 1159, 1163, 1165, 1169, 1170, 1171, 1175,
681 1177, 1177, 1179, 1182, 1184, 1186, 1189, 1194, 1201, 1202,
682 1203, 1210, 1214, 1215, 1219, 1220, 1223, 1224, 1227, 1228,
683 1231, 1232, 1233, 1234, 1237, 1238, 1241, 1242, 1245, 1246,
684 1247, 1250, 1250, 1251, 1252, 1255, 1267, 1283, 1284, 1287,
685 1288, 1289, 1292, 1293, 1296, 1298, 1299, 1301, 1302, 1304,
686 1306, 1308, 1310, 1316, 1317, 1318, 1319, 1320, 1321, 1322,
687 1323, 1324, 1326, 1330, 1332, 1334, 1340, 1345, 1348, 1351,
688 1352, 1356, 1358, 1360, 1362, 1366, 1367, 1369, 1373, 1375,
689 1377, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388,
690 1389, 1390, 1391, 1392, 1395, 1401, 1404, 1407, 1408, 1411,
691 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421,
692 1424, 1425, 1431, 1432, 1433, 1434, 1437, 1438, 1439, 1440,
693 1443, 1444, 1448, 1451, 1454, 1457, 1460, 1463, 1466, 1467,
694 1468, 1469, 1471, 1472, 1474, 1476, 1483, 1487, 1489, 1491,
695 1493, 1497, 1498, 1501, 1502, 1505, 1506, 1509, 1510, 1513,
696 1514, 1515, 1518, 1526, 1531, 1532, 1536, 1537, 1540, 1545,
697 1548, 1549, 1550, 1558, 1559, 1559, 1563, 1564, 1565, 1576,
698 1583, 1584, 1587, 1588, 1589, 1590, 1591, 1593, 1594, 1595,
699 1596, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607,
700 1608, 1611, 1612, 1615, 1616, 1617, 1618, 1621, 1622, 1623,
701 1626, 1627, 1628, 1631, 1632, 1633, 1634, 1635, 1638, 1639,
702 1640, 1643, 1644, 1647, 1648, 1652, 1653, 1656, 1657, 1660,
703 1661, 1664, 1665, 1666, 1667, 1670, 1671, 1672, 1673, 1674,
704 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1684, 1685, 1688,
705 1691, 1693, 1695, 1699, 1700, 1702, 1704, 1707, 1708, 1709,
706 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1720, 1721, 1724,
707 1727, 1728, 1729, 1730, 1731, 1734, 1735
712 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
714 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
715 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
716 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
717 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
718 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
719 "TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP",
720 "DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP",
721 "MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
722 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
723 "VA_ARG","VA_DCL","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION","QITER",
724 "QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
725 "QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND","TENDMACRO",
726 "QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE","QFALLTHROUGH",
727 "QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED","QPRINTFLIKE",
728 "QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST","QVOLATILE",
729 "QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT","QIN",
730 "QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED",
731 "QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED",
732 "QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT",
733 "QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT",
734 "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE",
735 "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF",
736 "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE",
737 "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED",
738 "QSETBUFFERSIZE","QBUFFERCONSTRAINT","QENSURESCONSTRAINT","QSETSTRINGLENGTH",
739 "QMAXSET","QMAXREAD","QTESTINRANGE","IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID",
740 "CCONSTANT","ITER_NAME","ITER_ENDNAME","TYPE_NAME","file","externalDefs","externalDef",
741 "constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2",
742 "@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
743 "optGlobMods","@8","optGlobBufConstraints","@9","optGlobBufConstraintsRest",
744 "optGlobEnsuresConstraintsAux","@10","optGlobBufConstraintsAux","@11","BufConstraintList",
745 "BufConstraint","bufferModifier","relationalOp","BufConstraintExpr","BufConstraintTerm",
746 "BufConstraintSrefExpr","BufUnaryOp","BufBinaryOp","optPlainGlobMods","@13",
747 "optGlobModsRest","optPlainGlobModsRest","specialClauses","globIdList","globIdListExpr",
748 "globId","globQual","optGlobQuals","optGlobModsAux","@14","@15","optPlainGlobModsAux",
749 "@16","@17","optMods","fcnMods","@18","fcnPlainMods","@19","specialTag","endStateTag",
750 "endSpecialTag","stateSpecialClause","specialClauseType","specialClause","@20",
751 "@21","fcnDefHdrAux","fcnBody","@22","@23","fcnDef","locModifies","locPlainModifies",
752 "modListExpr","mExpr","modList","specClauseListExpr","specClauseList","primaryExpr",
753 "postfixExpr","argumentExprList","unaryExpr","fieldDesignator","offsetofExpr",
754 "sizeofExpr","@24","sizeofExprAux","castExpr","timesExpr","plusExpr","shiftExpr",
755 "relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr","andExpr",
756 "@25","orExpr","@26","conditionalExpr","@27","@28","assignExpr","expr","optExpr",
757 "constantExpr","initializer","instanceDecl","@29","@30","namedInitializer","@31",
758 "typeDecl","@32","IsType","PushType","namedInitializerList","namedInitializerListAux",
759 "optDeclarators","init","initList","storageSpecifier","typeQualifier","typeModifier",
760 "typeSpecifier","completeType","completeTypeSpecifier","altType","completeTypeSpecifierAux",
761 "optCompleteType","suSpc","@33","@34","@35","@36","@37","@38","@39","@40","NotType",
762 "structDeclList","structDecl","structNamedDeclList","structNamedDecl","enumSpc",
763 "@41","enumeratorList","enumerator","optNamedDecl","namedDecl","genericParamList",
764 "innerMods","innerModsList","pointers","paramIdList","idList","paramTypeList",
765 "paramList","@42","@43","paramDecl","typeExpression","abstractDecl","optAbstractDeclBase",
766 "abstractDeclBase","stmt","lclintassertion","iterBody","endBody","iterDefStmtList",
767 "iterDefIterationStmt","forPred","@44","@45","partialIterStmt","@46","iterDefStmt",
768 "iterSelectionStmt","openScope","closeScope","macroBody","stmtErr","labeledStmt",
769 "caseStmt","@47","@48","defaultStmt","@49","@50","compoundStmt","compoundStmtErr",
770 "CreateInnerScope","DeleteInnerScope","CreateStructInnerScope","DeleteStructInnerScope",
771 "DeleteInnerScopeSafe","compoundStmtRest","compoundStmtAux","compoundStmtAuxErr",
772 "stmtListErr","initializerList","stmtList","expressionStmt","expressionStmtErr",
773 "ifPred","selectionStmt","@51","@52","whilePred","iterWhilePred","iterStmt",
774 "@53","@54","iterArgList","@55","iterArgExpr","primaryIterExpr","postfixIterExpr",
775 "unaryIterExpr","castIterExpr","timesIterExpr","plusIterExpr","shiftIterExpr",
776 "relationalIterExpr","equalityIterExpr","bitandIterExpr","xorIterExpr","bitorIterExpr",
777 "andIterExpr","orIterExpr","conditionalIterExpr","@56","@57","assignIterExpr",
778 "endIter","doHeader","iterationStmt","iterationStmtErr","jumpStmt","optSemi",
779 "id","newId","typeName", NULL
783 static const short yyr1[] = { 0,
784 190, 190, 191, 191, 192, 192, 192, 192, 192, 192,
785 192, 193, 193, 195, 194, 196, 196, 197, 197, 198,
786 198, 198, 198, 199, 198, 200, 198, 201, 201, 201,
787 201, 202, 201, 203, 201, 205, 206, 204, 207, 207,
788 207, 207, 208, 210, 209, 212, 211, 213, 215, 214,
789 214, 217, 216, 216, 218, 218, 219, 220, 220, 221,
790 221, 221, 222, 222, 222, 223, 223, 224, 224, 224,
791 224, 224, 224, 224, 224, 225, 226, 226, -1, -1,
792 228, 227, 229, 229, 230, 230, 231, 231, 232, 232,
793 233, 234, 234, 235, 235, 235, 235, 235, 236, 236,
794 238, 237, 239, 237, 237, 237, 237, 241, 240, 242,
795 240, 240, 240, 240, 243, 243, 245, 244, 247, 246,
796 248, 248, 248, 248, 248, 249, 250, 251, 251, 252,
797 252, 252, 252, 252, 252, 252, 252, 254, 253, 255,
798 253, 256, 256, 258, 257, 259, 257, 260, 261, 261,
799 262, 262, 263, 263, 263, 263, 263, 263, 263, 263,
800 264, 264, 265, 265, 266, 266, 266, 266, 266, 266,
801 266, 266, 267, 267, 268, 268, 268, 268, 268, 268,
802 269, 269, 269, 269, 269, 269, 269, 269, 269, 270,
803 270, 271, 271, 271, 271, 271, 271, 271, 271, 271,
804 271, 271, 272, 272, 273, 275, 274, 276, 276, 276,
805 276, 277, 277, 278, 278, 278, 278, 279, 279, 279,
806 280, 280, 280, 281, 281, 281, 281, 281, 282, 282,
807 282, 283, 283, 284, 284, 285, 285, 286, 287, 286,
808 288, 289, 288, 290, 291, 292, 290, 293, 293, 293,
809 293, 293, 293, 293, 293, 293, 293, 293, 293, 294,
810 294, 295, 295, 296, 297, 297, 297, 298, 299, 298,
811 300, 298, 301, 302, 301, 304, 303, 303, 303, 305,
812 306, 307, 308, 308, 309, 309, 310, 310, 310, 311,
813 311, 312, 312, 312, 312, 312, 313, 313, 313, 313,
814 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
815 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
816 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
817 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
818 313, 313, 314, 314, 314, 314, 315, 315, 315, 315,
819 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
820 316, 317, 317, 318, 318, 319, 319, 319, 320, 320,
821 322, 323, 321, 324, 325, 321, 321, 321, 326, 327,
822 321, 328, 329, 321, 321, 321, 321, 321, 330, 331,
823 331, 331, 332, 332, 333, 333, 334, 334, 334, 335,
824 336, 335, 335, 337, 337, 337, 338, 338, 339, 339,
825 339, 339, 340, 340, 341, 341, 342, 342, 343, 343,
826 344, 344, 344, 344, 345, 345, 346, 346, 347, 347,
827 347, 349, 348, 350, 348, 351, 351, 352, 352, 353,
828 353, 353, 354, 354, 355, 355, 355, 355, 355, 355,
829 355, 355, 355, 356, 356, 356, 356, 356, 356, 356,
830 356, 356, 356, 357, 357, 357, -1, 358, 359, 360,
831 360, 361, 361, 361, 361, 363, 364, 362, 366, 365,
832 365, 367, 367, 367, 367, 367, 367, 367, 367, 367,
833 367, 367, 367, 367, 368, 369, 370, 371, 371, 372,
834 372, 372, 372, 372, 372, 372, 372, 372, 372, 372,
835 373, 373, 375, 374, 376, 374, 378, 377, 379, 377,
836 380, 380, 381, 382, 383, 384, 385, 386, 387, 387,
837 387, 387, 387, 387, 387, 387, 388, 389, 389, 389,
838 389, 390, 390, 391, 391, 392, 392, 393, 393, 394,
839 394, 394, 395, 396, 397, 396, 398, 396, 399, 400,
840 402, 403, 401, 404, 405, 404, 406, 406, 406, 406,
841 407, 407, 408, 408, 408, 408, 408, 408, 408, 408,
842 408, 409, 409, 409, 409, 409, 409, 409, 409, 409,
843 409, 410, 410, 411, 411, 411, 411, 412, 412, 412,
844 413, 413, 413, 414, 414, 414, 414, 414, 415, 415,
845 415, 416, 416, 417, 417, 418, 418, 419, 419, 420,
846 420, 421, 422, 423, 421, 424, 424, 424, 424, 424,
847 424, 424, 424, 424, 424, 424, 424, 425, 425, 426,
848 427, 427, 427, 428, 428, 428, 428, 429, 429, 429,
849 429, 429, 429, 429, 429, 429, 429, 430, 430, 431,
850 432, 432, 432, 432, 432, 433, 433
853 static const short yyr2[] = { 0,
854 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
855 1, 8, 11, 0, 5, 1, 3, 1, 2, 1,
856 6, 3, 6, 0, 7, 0, 8, 1, 6, 3,
857 6, 0, 6, 0, 7, 0, 0, 10, 3, 3,
858 3, 2, 1, 0, 2, 0, 2, 2, 0, 4,
859 0, 0, 4, 0, 2, 1, 4, 1, 1, 1,
860 1, 1, 1, 4, 5, 1, 1, 1, 1, 3,
861 4, 2, 3, 3, 3, 1, 1, 1, 0, 2,
862 0, 2, 1, 2, 1, 2, 1, 2, 1, 3,
863 2, 1, 1, 1, 1, 1, 1, 1, 0, 2,
864 0, 6, 0, 6, 1, 1, 0, 0, 5, 0,
865 5, 1, 1, 0, 1, 0, 0, 3, 0, 3,
866 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
867 1, 1, 1, 1, 1, 1, 1, 0, 7, 0,
868 8, 1, 3, 0, 3, 0, 3, 2, 3, 2,
869 2, 1, 1, 1, 3, 4, 2, 3, 3, 3,
870 1, 1, 1, 3, 1, 1, 3, 4, 2, 3,
871 3, 3, 1, 3, 1, 1, 1, 3, 1, 1,
872 1, 4, 3, 4, 6, 5, 5, 2, 2, 1,
873 3, 1, 2, 2, 2, 2, 2, 2, 2, 2,
874 1, 1, 3, 1, 9, 0, 3, 4, 2, 4,
875 2, 1, 4, 1, 3, 3, 3, 1, 3, 3,
876 1, 3, 3, 1, 3, 3, 3, 3, 1, 3,
877 3, 1, 3, 1, 3, 1, 3, 1, 0, 4,
878 1, 0, 4, 1, 0, 0, 7, 1, 3, 3,
879 3, 3, 3, 3, 3, 3, 3, 3, 3, 1,
880 3, 0, 1, 1, 1, 1, 1, 3, 0, 9,
881 0, 11, 2, 0, 6, 0, 7, 4, 4, 0,
882 0, 2, 1, 4, 0, 4, 1, 3, 4, 1,
883 3, 1, 1, 1, 1, 1, 2, 2, 2, 2,
884 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
885 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
886 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
887 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
888 2, 2, 1, 1, 1, 1, 2, 2, 2, 2,
889 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
890 3, 1, 4, 1, 3, 2, 2, 2, 0, 1,
891 0, 0, 11, 0, 0, 11, 6, 6, 0, 0,
892 10, 0, 0, 10, 5, 5, 4, 4, 0, 1,
893 1, 2, 5, 3, 2, 4, 1, 3, 4, 6,
894 0, 8, 4, 1, 3, 2, 1, 4, 1, 1,
895 2, 2, 1, 2, 1, 2, 1, 1, 1, 2,
896 1, 2, 2, 3, 1, 3, 1, 3, 1, 1,
897 3, 0, 2, 0, 4, 4, 1, 1, 2, 1,
898 1, 2, 0, 1, 5, 2, 3, 3, 4, 3,
899 4, 4, 5, 1, 1, 1, 1, 1, 1, 1,
900 1, 1, 1, 4, 4, 4, 2, 1, 1, 1,
901 2, 2, 7, 6, 2, 0, 0, 10, 0, 6,
902 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
903 1, 1, 3, 1, 2, 2, 2, 1, 1, 1,
904 1, 1, 1, 1, 1, 1, 1, 3, 1, 1,
905 2, 2, 0, 4, 0, 5, 0, 3, 0, 4,
906 3, 2, 3, 0, 0, 0, 0, 0, 1, 2,
907 2, 3, 2, 3, 3, 4, 2, 2, 3, 3,
908 4, 1, 2, 1, 2, 1, 2, 1, 2, 1,
909 2, 1, 4, 2, 0, 5, 0, 6, 4, 4,
910 0, 0, 10, 1, 0, 4, 1, 1, 1, 1,
911 1, 3, 1, 4, 3, 4, 6, 5, 5, 2,
912 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
913 1, 1, 4, 1, 3, 3, 3, 1, 3, 3,
914 1, 3, 3, 1, 3, 3, 3, 3, 1, 3,
915 3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
916 3, 1, 0, 0, 7, 1, 3, 3, 3, 3,
917 3, 3, 3, 3, 3, 3, 3, 1, 0, 1,
918 2, 7, 2, 2, 7, 6, 2, 3, 2, 3,
919 2, 3, 3, 3, 3, 2, 3, 0, 1, 1,
923 static const short yydefact[] = { 0,
924 11, 421, 389, 266, 389, 14, 0, 0, 0, 0,
925 280, 280, 293, 292, 294, 295, 296, 280, 280, 280,
926 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
927 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
928 280, 280, 280, 344, 345, 346, 343, 280, 280, 280,
929 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
930 280, 280, 280, 280, 389, 389, 389, 389, 389, 389,
931 389, 389, 389, 389, 280, 660, 661, 665, 662, 663,
932 666, 0, 3, 6, 7, 413, 8, 9, 389, 43,
933 658, 10, 265, 267, 0, 369, 369, 389, 369, 389,
934 362, 389, 0, 389, 142, 280, 664, 20, 389, 417,
935 418, 419, 422, 423, 283, 280, 280, 276, 389, 667,
936 389, 389, 665, 0, 510, 280, 517, 0, 0, 0,
937 640, 0, 0, 0, 0, 280, 550, 0, 280, 280,
938 280, 280, 280, 280, 280, 280, 280, 0, 42, 0,
939 0, 0, 0, 0, 0, 280, 180, 176, 179, 177,
940 561, 181, 192, 212, 202, 201, 214, 218, 221, 224,
941 229, 232, 234, 236, 238, 241, 244, 248, 260, 552,
942 206, 0, 0, 542, 500, 501, 502, 503, 0, 0,
943 504, 280, 505, 0, 506, 0, 507, 509, 175, 0,
944 494, 0, 548, 0, 524, 481, 0, 0, 0, 490,
945 0, 491, 470, 489, 486, 487, 482, 483, 484, 0,
946 0, 488, 0, 0, 0, 492, 469, 0, 297, 298,
947 299, 300, 305, 307, 306, 310, 311, 322, 324, 325,
948 323, 308, 309, 301, 302, 303, 304, 319, 320, 317,
949 321, 312, 313, 316, 314, 315, 328, 330, 335, 318,
950 331, 332, 333, 334, 326, 327, 329, 336, 337, 340,
951 341, 338, 339, 347, 349, 348, 350, 351, 352, 353,
952 354, 355, 356, 342, 4, 280, 0, 144, 148, 544,
953 389, 389, 659, 5, 389, 370, 366, 367, 360, 368,
954 0, 280, 280, 358, 280, 280, 0, 359, 414, 357,
955 420, 424, 389, 0, 282, 389, 0, 273, 280, 658,
956 16, 18, 0, 389, 280, 28, 432, 280, 176, 179,
957 212, 264, 513, 175, 0, 280, 280, 280, 280, 0,
958 649, 651, 656, 0, 0, 389, 438, 0, 0, 195,
959 200, 199, 198, 197, 196, 0, 280, 193, 194, 280,
960 0, 0, 0, 0, 0, 280, 519, 280, 0, 0,
961 0, 512, 463, 280, 454, 455, 456, 457, 0, 458,
962 459, 280, 461, 280, 460, 462, 524, 280, 280, 188,
963 189, 0, 280, 280, 280, 280, 280, 280, 280, 280,
964 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
965 280, 280, 280, 280, 280, 280, 280, 280, 280, 239,
966 245, 242, 551, 280, 0, 647, 39, 0, 525, 543,
967 554, 644, 0, 511, 280, 0, 0, 0, 549, 40,
968 471, 475, 485, 496, 497, 495, 0, 0, 41, 22,
969 280, 432, 389, 280, 524, 545, 280, 268, 143, 389,
970 0, 364, 0, 389, 0, 389, 0, 280, 280, 279,
971 280, 278, 274, 389, 0, 280, 0, 389, 280, 19,
972 429, 0, 0, 415, 430, 280, 0, 0, 518, 0,
973 557, 0, 263, 0, 648, 657, 178, 280, 280, 0,
974 440, 439, 441, 280, 508, 280, 0, 652, 653, 654,
975 655, 650, 515, 0, 0, 0, 0, 0, 643, 389,
976 522, 641, 0, 0, 183, 0, 190, 0, 0, 0,
977 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
978 259, 215, 216, 217, 220, 219, 222, 223, 225, 226,
979 227, 228, 230, 231, 233, 235, 237, 280, 280, 280,
980 261, 280, 280, 207, 538, 179, 542, 0, 389, 523,
981 555, 0, 0, 493, 479, 0, 0, 24, 0, 529,
982 280, 546, 145, 389, 280, 389, 524, 147, 280, 269,
983 363, 280, 379, 0, 387, 382, 0, 388, 0, 404,
984 407, 401, 403, 284, 280, 280, 658, 15, 30, 280,
985 432, 280, 17, 416, 425, 427, 36, 434, 389, 433,
986 437, 514, 553, 0, 559, 280, 361, 446, 0, 432,
987 442, 280, 0, 213, 389, 280, 0, 520, 521, 0,
988 0, 0, 537, 0, 562, 280, 184, 182, 280, 280,
989 240, 0, 243, 280, 209, 280, 211, 539, 540, 280,
990 280, 280, 560, 280, 280, 389, 44, 26, 530, 533,
991 280, 280, 531, 280, 547, 0, 271, 280, 365, 385,
992 526, 371, 386, 526, 374, 280, 406, 280, 0, 0,
993 280, 280, 280, 0, 32, 0, 280, 0, 81, 431,
994 280, 443, 280, 0, 447, 450, 280, 0, 448, 0,
995 432, 0, 0, 516, 464, 465, 466, 280, 280, 191,
996 186, 187, 246, 0, 0, 541, 556, 0, 280, 280,
997 280, 280, 280, 280, 280, 280, 280, 0, 176, 179,
998 177, 192, 212, 201, 218, 221, 224, 229, 232, 234,
999 236, 238, 241, 0, 565, 564, 573, 582, 592, 594,
1000 598, 601, 604, 609, 612, 614, 616, 618, 620, 622,
1001 626, 567, 175, 0, 23, 46, 107, 44, 534, 535,
1002 280, 532, 21, 280, 285, 389, 377, 526, 389, 378,
1003 526, 400, 405, 280, 0, 277, 280, 287, 275, 280,
1004 0, 389, 81, 34, 0, 426, 428, 37, 114, 435,
1005 409, 0, 280, 443, 410, 444, 558, 476, 0, 451,
1006 449, 452, 0, 0, 185, 0, 565, 280, 208, 210,
1007 646, 0, 0, 195, 200, 199, 198, 197, 196, 193,
1008 194, 280, 280, 280, 188, 189, 0, 280, 280, 280,
1009 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
1010 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
1011 280, 280, 280, 280, 239, 623, 242, 480, 0, 474,
1012 25, 54, 101, 117, 105, 121, 122, 123, 124, 125,
1013 128, 129, 45, 107, 83, 106, 389, 389, 87, 46,
1014 536, 280, 0, 391, 389, 389, 390, 389, 389, 389,
1015 408, 280, 290, 0, 285, 12, 31, 33, 81, 29,
1016 658, 108, 119, 112, 82, 114, 85, 113, 432, 436,
1017 411, 412, 280, 445, 453, 0, 204, 0, 524, 247,
1018 645, 178, 280, 0, 183, 0, 0, 0, 0, 627,
1019 628, 629, 630, 631, 632, 633, 634, 635, 636, 637,
1020 215, 216, 217, 220, 219, 222, 223, 225, 226, 227,
1021 228, 230, 231, 233, 235, 237, 619, 280, 621, 280,
1022 473, 47, 51, 0, 389, 99, 658, 84, 138, 0,
1023 88, 27, 285, 280, 389, 0, 280, 392, 380, 389,
1024 383, 389, 402, 288, 280, 658, 35, 0, 389, 99,
1025 658, 86, 280, 477, 280, 0, 642, 639, 213, 280,
1026 184, 182, 280, 280, 0, 566, 48, 0, 0, 389,
1027 94, 95, 96, 97, 98, 658, 89, 99, 0, 0,
1028 0, 154, 118, 163, 658, 0, 153, 0, 130, 135,
1029 134, 133, 132, 131, 136, 137, 140, 0, 270, 280,
1030 394, 280, 280, 389, 397, 0, 372, 0, 375, 289,
1031 291, 0, 38, 658, 658, 120, 658, 152, 280, 0,
1032 205, 203, 638, 525, 0, 186, 187, 624, 0, 0,
1033 0, 58, 59, 69, 67, 0, 56, 76, 0, 63,
1034 66, 0, 68, 0, 99, 0, 100, 93, 91, 92,
1035 0, 157, 0, 0, 0, 0, 0, 150, 0, 0,
1036 166, 173, 658, 165, 0, 280, 286, 280, 280, 0,
1037 395, 280, 381, 0, 384, 0, 13, 116, 116, 151,
1038 478, 563, 185, 280, 0, 0, 66, 0, 72, 53,
1039 55, 61, 60, 62, 0, 0, 0, 0, 0, 116,
1040 90, 116, 158, 155, 162, 161, 0, 159, 160, 164,
1041 149, 0, 169, 0, 0, 0, 0, 0, 658, 272,
1042 398, 389, 393, 280, 373, 376, 109, 115, 111, 625,
1043 50, 78, 77, 0, 73, 0, 0, 70, 0, 74,
1044 75, 0, 102, 104, 156, 170, 167, 0, 171, 172,
1045 174, 127, 280, 0, 396, 399, 0, 57, 71, 64,
1046 168, 139, 126, 280, 65, 141, 0, 0, 0
1049 static const short yydefgoto[] = { 1227,
1050 82, 83, 84, 85, 122, 320, 321, 86, 667, 778,
1051 322, 803, 919, 87, 699, 921, 904, 89, 776, 777,
1052 881, 882, 982, 1027, 1028, 983, 984, 1096, 1097, 1098,
1053 1155, 1099, 1100, 1101, 1102, 1194, 808, 809, 893, 925,
1054 894, 1036, 1037, 1109, 1038, 1039, 895, 985, 986, 927,
1055 1009, 1010, 1187, 1188, 987, 928, 1011, 897, 1224, 1213,
1056 898, 1057, 899, 1048, 1125, 90, 289, 453, 455, 91,
1057 1043, 1076, 1044, 1167, 1045, 1122, 1123, 162, 163, 526,
1058 164, 936, 165, 166, 425, 564, 167, 168, 169, 170,
1059 171, 172, 173, 174, 175, 176, 558, 177, 560, 178,
1060 559, 828, 179, 207, 494, 333, 290, 93, 678, 784,
1061 115, 606, 94, 316, 181, 287, 116, 117, 903, 799,
1062 914, 96, 97, 98, 99, 347, 291, 461, 101, 297,
1063 102, 788, 1134, 791, 1136, 681, 1066, 684, 1068, 103,
1064 906, 907, 1063, 1064, 104, 689, 599, 600, 813, 119,
1065 483, 112, 113, 106, 614, 615, 484, 485, 486, 701,
1066 620, 348, 819, 815, 503, 372, 373, 208, 228, 209,
1067 210, 374, 933, 1080, 212, 664, 213, 214, 215, 216,
1068 183, 430, 375, 376, 488, 637, 377, 335, 514, 378,
1069 188, 379, 570, 786, 999, 221, 583, 521, 429, 190,
1070 584, 585, 380, 191, 192, 381, 661, 624, 382, 224,
1071 383, 387, 719, 755, 879, 756, 757, 758, 759, 760,
1072 761, 762, 763, 764, 765, 766, 767, 768, 769, 770,
1073 771, 978, 1144, 772, 1084, 384, 385, 197, 386, 294,
1077 static const short yypact[] = { 2240,
1078 -32768, 108, 6007,-32768, 6677,-32768, 697, 3211, 3591, 3591,
1079 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1080 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1081 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1082 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1083 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1084 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1085 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 431,-32768,-32768,
1086 -32768, 2416,-32768,-32768,-32768, 355,-32768,-32768, 5623,-32768,
1087 114,-32768,-32768,-32768, 74, 6512, 6512,-32768, 6512, 140,
1088 149,-32768, 766,-32768,-32768, 697,-32768,-32768,-32768,-32768,
1089 -32768,-32768, 108,-32768,-32768, 191,-32768, 140,-32768,-32768,
1090 -32768, 6007,-32768, 217,-32768, 4477,-32768, 225, 234, 253,
1091 -32768, 268, 697, 306, 319, 762,-32768, 2790, 4477, 4477,
1092 4477, 4477, 4477, 4477,-32768, 4703, 4703, 398,-32768, 393,
1093 425, 434, 445, 413, 219, 5070,-32768, 450, 456,-32768,
1094 486,-32768, 905, 898,-32768,-32768,-32768, 1049, 423, 577,
1095 723, 752, 488, 508, 487, 521, 67,-32768,-32768, 325,
1096 -32768, 3738, 468, 502,-32768,-32768,-32768,-32768, 615, 3358,
1097 -32768, 5070,-32768, 3738,-32768, 3738,-32768,-32768, 580, 636,
1098 -32768, 620,-32768, 2979, 486, 647, 344, 599, 3401,-32768,
1099 3591,-32768,-32768,-32768, 6272,-32768,-32768,-32768,-32768, 656,
1100 676,-32768, 3591, 3591, 3738,-32768,-32768, 629,-32768,-32768,
1101 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1102 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1103 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1104 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1105 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1106 -32768,-32768,-32768,-32768,-32768, 687, 708,-32768,-32768,-32768,
1107 140, 5466,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1108 722, 477,-32768,-32768, 697, 697, 59,-32768, 355,-32768,
1109 -32768,-32768,-32768, 749,-32768,-32768, 758, 724, 477, 114,
1110 -32768, 540, 759,-32768, 697,-32768, 255, 4477,-32768,-32768,
1111 -32768,-32768,-32768,-32768, 768, 4477, 4477, 4477, 797, 770,
1112 -32768,-32768,-32768, 516, 464, 6141, 296, 786, 800,-32768,
1113 -32768,-32768,-32768,-32768,-32768, 816, 4477,-32768,-32768, 4477,
1114 828, 838, 879, 886, 891, 4477,-32768, 1718, 693, 693,
1115 693,-32768,-32768, 5070,-32768,-32768,-32768,-32768, 892,-32768,
1116 -32768, 5070,-32768, 5070,-32768,-32768,-32768, 1451, 4477,-32768,
1117 -32768, 96, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477,
1118 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477,
1119 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477,-32768,
1120 -32768,-32768,-32768, 4477, 716,-32768,-32768, 2601,-32768,-32768,
1121 910,-32768, 913,-32768, 4477, 505, 901, 920,-32768,-32768,
1122 -32768,-32768, 6272,-32768,-32768,-32768, 3168, 954,-32768,-32768,
1123 4477, 68, 3840, 477, 949,-32768, 477,-32768, 570, 6677,
1124 896, 972, 992, 998, 1006, 998, 697, 1035, 477,-32768,
1125 477,-32768,-32768,-32768, 912, 1025, 1037,-32768, 477, 540,
1126 -32768, 697, 1047,-32768, 1045, 697, 279, 1059,-32768, 333,
1127 1079, 385, 1079, 1069,-32768,-32768,-32768,-32768, 2008, 1078,
1128 587,-32768, 627, 4477,-32768,-32768, 1085,-32768,-32768,-32768,
1129 -32768,-32768,-32768, 1109, 1116, 948, 957, 963,-32768, 3840,
1130 -32768,-32768, 1139, 1134,-32768, 412,-32768, 99, 697, 697,
1131 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1132 -32768,-32768,-32768,-32768, 1049, 1049, 423, 423, 577, 577,
1133 577, 577, 723, 723, 752, 488, 508, 4477, 4477, 4477,
1134 -32768, 4929, 4940,-32768,-32768, 5855,-32768, 3548, 4024,-32768,
1135 -32768, 1137, 426,-32768,-32768, 1138, 1140,-32768, 1141,-32768,
1136 2110,-32768,-32768, 4208, 4392,-32768, 949,-32768,-32768, 1146,
1137 -32768,-32768, 1144, 1151,-32768, 1152, 1157,-32768, 843,-32768,
1138 1148,-32768,-32768,-32768, 191,-32768, 406,-32768,-32768, 4477,
1139 358, 477,-32768,-32768, 1156,-32768,-32768, 1176, 6677,-32768,
1140 -32768,-32768,-32768, 1158,-32768, 797,-32768,-32768, 1155, 556,
1141 627, 2412, 1160,-32768,-32768,-32768, 1164,-32768,-32768, 1099,
1142 1100, 1102,-32768, 1165,-32768, 4477,-32768,-32768,-32768,-32768,
1143 487, 914, 521, 4477,-32768, 4477,-32768,-32768,-32768, 4435,
1144 5070, 4477,-32768, 5178, 4477,-32768,-32768,-32768,-32768,-32768,
1145 4618, 4661,-32768, 4844,-32768, 1166,-32768,-32768,-32768,-32768,
1146 -32768, 1175,-32768,-32768, 1177,-32768, 697,-32768, 697, 1178,
1147 2040,-32768,-32768, 1171,-32768, 1180,-32768, 348,-32768,-32768,
1148 697, 614, 5070, 1182,-32768,-32768, 137, 1181,-32768, 1183,
1149 109, 1186, 1184,-32768,-32768,-32768,-32768, 4477, 5178,-32768,
1150 -32768,-32768,-32768, 1187, 1189,-32768,-32768, 452, 4477, 4477,
1151 4477, 4477, 4477, 4477, 4477, 4703, 4703, 1179, 504, 575,
1152 582, 1077, 1033, 604, 1081, 918, 981, 850, 1024, 1173,
1153 1169, 1185, 1161, 90, 1190,-32768,-32768,-32768,-32768,-32768,
1154 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1155 -32768,-32768, 612, 660,-32768,-32768, 1326,-32768,-32768,-32768,
1156 4887,-32768,-32768,-32768,-32768, 6599,-32768,-32768, 6599,-32768,
1157 -32768,-32768,-32768, 4477, 1054,-32768, 2040,-32768,-32768, 2040,
1158 1123,-32768,-32768,-32768, 1193,-32768,-32768,-32768, 1429,-32768,
1159 355, 1195,-32768, 539,-32768, 627,-32768,-32768, 1196,-32768,
1160 -32768,-32768, 1197, 697,-32768, 695, 1201, 4477,-32768,-32768,
1161 1202, 729, 1205, 782, 798, 830, 853, 874, 885, 893,
1162 895, 4477, 1633, 4477, 902, 909, 155, 4477, 4477, 4477,
1163 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477,
1164 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477,
1165 4477, 4477, 4477, 4477, 4477,-32768, 4477,-32768, 1211, 1215,
1166 -32768, 1057, 24,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1167 -32768,-32768,-32768, 1066,-32768,-32768,-32768,-32768, 1030,-32768,
1168 -32768, 2040, 583,-32768, 140, 5701,-32768, 6599, 5701, 6599,
1169 -32768,-32768,-32768, 1098,-32768,-32768,-32768,-32768,-32768,-32768,
1170 114, 300,-32768,-32768,-32768, 1080,-32768,-32768, 189,-32768,
1171 -32768,-32768, 3694,-32768,-32768, 638,-32768, 1220, 949,-32768,
1172 -32768, 916, 4477, 1221, 945, 946, 240, 697, 697,-32768,
1173 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1174 947, 970, 971, 858, 993, 523, 673, 410, 489, 622,
1175 662, 467, 652, 427, 254, 336, 487, 4477, 521, 5178,
1176 -32768,-32768, 1065, 1067, 6403, 57, 81,-32768,-32768, 866,
1177 -32768,-32768,-32768,-32768,-32768, 1228, 366,-32768,-32768, 5701,
1178 -32768, 5701,-32768,-32768, 1979, 764,-32768, 1159, 6403, 57,
1179 81,-32768, 755,-32768,-32768, 697,-32768, 1061, 1021,-32768,
1180 1022, 1023,-32768,-32768, 1101,-32768,-32768, 1073, 101, 5309,
1181 -32768,-32768,-32768,-32768,-32768, 840,-32768, 57, 944, 55,
1182 55,-32768,-32768, 285, 987, 1167,-32768, 151,-32768,-32768,
1183 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1001,-32768, 477,
1184 -32768,-32768, 1232,-32768, 1235, 1236,-32768, 1239,-32768,-32768,
1185 -32768, 1188,-32768, 5151, 840,-32768, 987,-32768, 654, 1229,
1186 -32768,-32768,-32768,-32768, 1238, 1032, 1034,-32768, 101, 101,
1187 156,-32768,-32768,-32768,-32768, 1194, 101,-32768, 1104,-32768,
1188 370, 1237,-32768, 1198, 57, 1199,-32768,-32768,-32768,-32768,
1189 705, 285, 85, 697, 697, 55, 1204,-32768, 151, 151,
1190 -32768, 543, 1052,-32768, 151,-32768,-32768, 4477, 366, 1250,
1191 -32768,-32768,-32768, 1249,-32768, 1251,-32768, 1200, 1200,-32768,
1192 -32768,-32768, 1043, 4477, 1207, 1113, 711, 156, 370,-32768,
1193 -32768,-32768,-32768,-32768, 101, 41, 697, 697, 101, 1200,
1194 -32768, 1200,-32768,-32768,-32768, 285, 1245,-32768,-32768, 285,
1195 -32768, 792, 543, 823, 697, 697, 151, 1208, 1052,-32768,
1196 -32768,-32768,-32768, 4477,-32768,-32768,-32768,-32768,-32768,-32768,
1197 -32768,-32768,-32768, 101,-32768, 711, 1256,-32768, 1248,-32768,
1198 -32768, 1259,-32768,-32768,-32768,-32768,-32768, 1254,-32768,-32768,
1199 543,-32768,-32768, 1209,-32768,-32768, 1264,-32768,-32768,-32768,
1200 -32768,-32768,-32768,-32768,-32768,-32768, 1290, 1293,-32768
1203 static const short yypgoto[] = {-32768,
1204 -32768, 1216,-32768,-32768,-32768,-32768, -391, -105,-32768,-32768,
1205 974,-32768,-32768,-32768,-32768,-32768, 107,-32768, 522,-32768,
1206 405,-32768,-32768,-32768,-32768,-32768,-32768, -897,-32768,-32768,
1207 -32768, -931,-32768, -943,-32768,-32768, -709,-32768,-32768,-32768,
1208 -696, 299, 201,-32768,-32768, 272, 417,-32768,-32768, 386,
1209 -32768,-32768, -863, -674,-32768,-32768,-32768,-32768,-32768,-32768,
1210 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1211 -32768,-32768, -884, 141, 303, -959, 194,-32768, -647, 475,
1212 1234,-32768,-32768, -590,-32768,-32768, 11, -363, -402, -245,
1213 -350, -348, -371, -352, -471, -483,-32768, -578,-32768, -24,
1214 -32768,-32768, 928, 1332, -610, -360, 15,-32768,-32768,-32768,
1215 -465,-32768,-32768,-32768, 0, -226, 849,-32768, -811, -716,
1216 -32768,-32768,-32768,-32768,-32768,-32768, 80, 740,-32768, 585,
1217 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 967,
1218 -699, -611,-32768, 204,-32768,-32768, 645, 648, 524, 13,
1219 -376, 1224,-32768, 8,-32768,-32768, -584,-32768,-32768,-32768,
1220 640, -233, 995,-32768, -496, 193,-32768, 1329,-32768, 1120,
1221 -32768, 1041,-32768,-32768,-32768,-32768, -39,-32768,-32768,-32768,
1222 -32768, 63, 1231, 1362,-32768,-32768, 1616,-32768,-32768, -354,
1223 -32768, 969, 264, -551, -582,-32768, 829,-32768,-32768, 922,
1224 -87, -420, 127,-32768, 221, 84,-32768,-32768, 170,-32768,
1225 211,-32768,-32768, 632,-32768, 373,-32768,-32768,-32768,-32768,
1226 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1227 -32768,-32768,-32768,-32768,-32768, 1686,-32768,-32768, 1731, -311,
1235 static const short yytable[] = { 95,
1236 309, 292, 95, 604, 631, 513, 547, 548, 475, 114,
1237 229, 230, 105, 515, 92, 704, 742, 231, 232, 233,
1238 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
1239 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
1240 254, 255, 256, 545, 546, 708, 556, 257, 258, 259,
1241 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1242 270, 271, 272, 273, 553, 554, 557, 1198, 555, 462,
1243 184, 742, 481, 744, 284, 579, 653, 467, 1040, 100,
1244 913, 95, 118, 915, 121, 754, 651, 613, 1041, 909,
1245 577, 193, 578, 918, 105, 477, 92, 295, 293, 301,
1246 588, 332, 896, 1006, 1040, 95, 88, 421, 1040, -103,
1247 -103, 1164, 926, 481, 1041, 314, 315, 317, 1041, 424,
1248 312, 323, 422, 529, 1090, 648, 823, 443, 744, 325,
1249 876, 293, 789, 822, 1091, 222, 222, 346, 629, 530,
1250 754, 2, 1031, 1032, 356, 877, 1147, 1149, 660, 350,
1251 351, 352, 353, 354, 355, 1111, 1112, -280, 1146, 1172,
1252 1173, 100, 499, 672, 437, 549, 550, 551, 552, 441,
1253 2, 442, 1033, 1034, 1119, 296, 296, 194, 296, 1148,
1254 753, 1058, 948, 446, 1120, 993, 1035, 107, 88, 1091,
1255 107, 1145, 752, 481, 107, 199, 199, 199, 949, 1151,
1256 349, 324, 991, 346, 1196, 816, -103, -103, 1000, 1007,
1257 1002, 313, -389, 706, -389, 110, 111, 1211, 195, 896,
1258 697, 193, -389, 1197, 366, 367, 1199, 1202, 1166, 223,
1259 223, 1170, 515, 303, 696, 753, 908, 76, 1042, 910,
1260 327, 76, 77, 123, 426, 79, 80, 752, 336, 694,
1261 -389, -389, -389, 477, -389, -389, 432, 337, 433, 481,
1262 424, 746, 1217, 76, 1042, 193, 1022, 76, 1042, 107,
1263 1165, 710, 635, 193, -615, 1189, 338, 193, -615, 193,
1264 1092, 1093, 417, 76, 1094, 451, 1095, 448, 1071, 1166,
1265 301, 339, 750, 107, 998, 693, 1203, 998, 1204, 424,
1266 745, 95, 460, 497, 463, 465, 456, 194, 193, 107,
1267 1113, 751, 1114, 748, 459, 749, 746, 816, 95, -280,
1268 107, 499, 1014, 341, 323, 199, 1001, 346, 1115, 2,
1269 222, 474, 742, 76, 1121, 222, 342, 222, 76, 1094,
1270 569, 332, 423, 199, 708, 424, 500, 750, 195, 222,
1271 222, 194, 806, 424, 501, 745, -617, 623, 462, 194,
1272 -617, 439, 481, 194, 424, 194, 751, 346, 748, 199,
1273 749, -389, -389, -389, 418, -389, -389, 199, -281, 199,
1274 286, 199, 695, 199, 431, -110, -110, 1062, 998, 744,
1275 998, 199, 195, 979, 194, 1156, 199, 1157, 199, 2,
1276 195, 754, 713, 977, 195, 424, 195, 441, 361, 625,
1277 199, 199, 199, 1158, 542, 543, 544, 1067, 747, 1069,
1278 724, 360, 725, 293, 223, 498, 332, 365, 692, 223,
1279 -605, 223, 646, 911, -605, 195, 647, -389, -389, -389,
1280 362, -389, -389, 223, 223, 108, 424, -613, 108, 363,
1281 663, -613, 124, 95, 407, 408, 95, 456, 409, 410,
1282 364, 966, 967, 594, -667, 597, 586, 603, 95, 589,
1283 95, -661, 424, 747, 332, 610, 831, -665, 323, 415,
1284 416, 423, -110, -110, 424, 619, 325, -610, 497, 107,
1285 567, -610, 107, 107, 107, 833, 753, 627, 964, 965,
1286 500, 975, 633, 411, 412, 460, 107, -662, 752, -606,
1287 2, 193, 107, -606, 634, -667, 417, 413, 414, 972,
1288 973, 976, 439, 974, -570, 424, 419, 108, -570, 497,
1289 76, 77, 123, 496, 79, 80, 424, 409, 410, 498,
1290 -389, -389, -389, -602, -389, -389, 418, -602, 76, 77,
1291 123, 108, 79, 80, 407, 408, 516, 517, 518, 427,
1292 481, 199, -280, -281, 499, 476, 519, 326, 1174, 199,
1293 1175, 199, 2, 222, 522, 420, 523, 746, 340, -389,
1294 706, -389, 631, 456, 1018, 332, 1176, -389, 676, -389,
1295 -389, 460, -389, -498, 1127, -569, 811, 194, 456, -569,
1296 994, -664, -571, 995, 690, 691, -571, 332, 750, 1008,
1297 -280, 323, 499, -667, -667, 199, 745, -667, -667, 325,
1298 968, 969, 970, 971, -591, 409, 410, 751, -591, 748,
1299 633, 749, -568, 428, 199, 460, -568, -280, 195, 499,
1300 199, 107, -607, 435, 107, 582, -607, 2, 721, 722,
1301 -280, 193, 632, 346, 107, 346, 107, 434, 107, 76,
1302 77, 123, 1015, 79, 80, 1016, 107, 223, -663, 107,
1303 409, 410, -611, 107, 444, 1046, -611, 785, -440, 499,
1304 424, 298, -608, 300, 880, 792, -608, 794, 411, 412,
1305 440, 800, 801, -603, 1072, 445, 805, -603, 702, 1078,
1306 619, 812, 413, 414, 407, 408, 500, 199, 811, 814,
1307 409, 410, 582, 450, 501, 424, 107, 107, 1104, 938,
1308 449, 76, 77, 123, 1106, 79, 80, 931, 346, 1163,
1309 1113, 452, 1114, 1117, 747, 1195, 1156, 194, 1157, 458,
1310 834, 835, 836, 837, 838, 839, 473, 108, 1115, 424,
1311 464, 466, 468, 942, 1158, 199, 199, 562, 563, 411,
1312 412, 582, 1138, 1139, 108, 1140, 470, 1181, 199, 332,
1313 326, 199, 199, 413, 414, 472, 582, 675, 195, 343,
1314 499, 293, 478, 902, 995, 328, 1085, 495, 2, 489,
1315 139, 140, 141, 142, 143, 144, 76, 77, 123, 107,
1316 79, 80, -585, 940, 415, 416, -585, 145, 146, 147,
1317 504, 1178, 930, 812, -262, 633, 1206, 1174, -590, 1175,
1318 328, 814, -590, 1216, 505, 139, 140, 141, 142, 143,
1319 144, 148, 305, 306, 307, 1176, 76, 77, 123, 506,
1320 79, 80, 145, 146, 147, 508, 1040, 199, 199, 1207,
1321 -589, 773, 675, 727, -589, 509, 1041, 293, 199, 199,
1322 1105, 199, 686, 687, 675, 905, 148, 1214, 905, 961,
1323 962, 963, 157, -588, 107, 76, 107, -588, -600, 76,
1324 77, 123, -600, 79, 80, 107, 866, 867, 107, 107,
1325 199, 404, 405, 406, -587, 817, 510, 1030, -587, 108,
1326 868, 869, 108, 511, 996, -586, 773, 157, 512, -586,
1327 520, 1003, 601, -583, 108, -584, 108, -583, 571, -584,
1328 393, 1074, -580, 572, 326, 574, -580, 616, 388, -581,
1329 389, 621, -389, -581, 424, 723, -572, 76, 77, 123,
1330 -572, 79, 80, 575, 76, 329, 330, 160, -389, 862,
1331 863, 390, 391, 1019, 394, 395, 396, 397, 398, 399,
1332 400, 401, 402, 403, 576, -575, 646, -595, 199, -575,
1333 1021, -595, 587, 309, 649, 650, 189, 220, 220, 76,
1334 329, 330, 160, 591, 1049, 905, 1050, 905, 905, 905,
1335 -596, -597, 592, 1059, -596, -597, 95, 1051, 1052, 608,
1336 1053, 107, 1054, 1055, 293, 76, 1042, 1116, 1165, 1065,
1337 593, 107, 812, -599, 1081, 1056, -280, -599, 1126, 460,
1338 1079, 995, 1086, 1087, 596, 589, 404, 405, 406, 864,
1339 865, 274, 275, 276, 277, 278, 279, 280, 281, 282,
1340 283, -593, -576, -574, 456, -593, -576, -574, 182, 211,
1341 211, 609, -578, 602, -579, 848, -578, 326, -579, 95,
1342 611, 1128, 1130, -577, 299, 618, 302, -577, 304, 293,
1343 308, 617, 1177, 912, 687, 310, 870, 871, 812, 905,
1344 622, 905, 404, 405, 406, 318, 626, 319, 456, 849,
1345 850, 851, 852, 853, 854, 855, 856, 857, 858, 424,
1346 843, 630, 844, 332, -389, 636, 189, 886, 887, 888,
1347 889, 890, 891, 892, 859, 860, 861, 1004, 1005, 1190,
1348 -389, 424, 1088, 845, 846, 1180, 76, 1108, 95, 392,
1349 638, 1184, 601, 640, 601, 107, 107, 883, 884, 885,
1350 639, 1065, 641, 807, 1192, 1193, 621, 108, 642, 644,
1351 189, 922, 923, 924, 1152, 1153, 1154, 645, 189, 332,
1352 662, 665, 189, 680, 189, 668, 666, 773, 677, 682,
1353 688, 683, 220, 438, 1047, 685, 698, 220, 182, 220,
1354 700, 705, 703, 711, 107, 714, 715, 716, 718, 717,
1355 783, 220, 220, 189, 787, 796, 790, 802, 1047, 818,
1356 107, 872, 842, 107, 804, 820, 824, 873, 825, 821,
1357 916, 829, 1222, 830, 878, 875, 1103, 920, 929, 941,
1358 934, 935, 182, 1226, 874, 939, 1110, 1047, 1047, 943,
1359 182, 980, 981, -52, 182, 1124, 182, 1017, 185, 217,
1360 217, 1020, -49, 1029, 211, 1061, 1073, 107, 1083, 211,
1361 1089, 211, 1129, 1141, 1118, 1133, 1132, 454, 1135, 108,
1362 1159, 457, 1143, 211, 211, 182, 107, 1183, 1185, 937,
1363 1186, 1205, 884, 1218, 1219, 1137, 1103, 1103, 1103, 469,
1364 1221, 1150, 471, 1220, 1103, 1160, 1162, 507, 1225, 1228,
1365 479, 1171, 1229, 482, 1191, 1212, 1223, 285, 480, 900,
1366 1047, 107, 107, 1047, 992, 1161, 1124, 1124, 1075, 1107,
1367 988, 1012, 1124, 1077, 1208, 527, 107, 946, 1179, 605,
1368 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
1369 541, 679, 1182, 795, 793, 1103, 311, 932, 227, 180,
1370 810, 502, 1103, 447, 107, 107, 1103, 1142, 643, 568,
1371 827, 561, 1026, 0, 0, 524, 0, 0, 0, 331,
1372 0, 1047, 107, 107, 1124, 0, 0, 0, 185, 186,
1373 218, 218, 331, 331, 331, 331, 331, 331, 0, 358,
1374 359, 1103, 0, 0, 0, 0, 0, 0, 0, 0,
1375 0, 0, 0, 1023, 1024, 0, 189, 883, 884, 885,
1376 0, 0, 0, 886, 887, 888, 889, 890, 891, 892,
1377 0, 0, 185, 0, 0, 220, 0, 0, 482, 0,
1378 185, 0, 0, 0, 185, 590, 185, 0, 0, 0,
1379 595, 0, 598, 0, 217, 0, 0, 0, 0, 217,
1380 607, 217, 108, 0, 612, 0, 0, 0, 0, 0,
1381 0, 0, 0, 217, 217, 185, 0, 0, 108, 0,
1382 0, 1082, 0, 0, 0, 0, 0, 344, 182, 345,
1383 0, 0, 0, 0, 328, 525, 0, 0, 0, 139,
1384 140, 141, 142, 143, 144, 0, 0, 211, 0, 0,
1385 0, 0, 0, 0, 0, 0, 145, 146, 147, 186,
1386 922, 923, 924, 0, 0, 108, 886, 887, 888, 889,
1387 890, 891, 892, 180, 0, 0, 0, 0, 0, 0,
1388 148, 180, 0, 0, 108, 180, 0, 180, 0, 0,
1389 0, 0, 0, 0, 0, 436, 189, 0, 0, 0,
1390 0, 0, 0, 186, 0, 0, 0, 0, 0, 0,
1391 0, 186, 590, 0, 0, 186, 180, 186, 0, 1168,
1392 1169, 157, 0, 0, 0, 218, 0, 0, 0, 0,
1393 218, 0, 218, 720, 108, 0, 0, 482, 0, 0,
1394 0, 0, 0, 0, 218, 218, 186, 0, 0, 0,
1395 0, 0, 0, 0, 0, 0, 707, 0, 0, 331,
1396 0, 712, 1200, 1201, 0, 0, 0, 0, 182, 0,
1397 0, 0, 0, 0, 0, 0, 0, 0, 798, 0,
1398 1209, 1210, 0, 187, 219, 219, 0, 0, 0, 0,
1399 0, 0, 775, 76, 329, 330, 160, 331, 331, 331,
1400 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
1401 331, 331, 331, 0, 0, 0, 328, 945, 185, 487,
1402 0, 139, 140, 141, 142, 143, 144, 490, 491, 492,
1403 493, 0, 0, 0, 0, 0, 0, 217, 145, 146,
1404 147, 0, 0, 0, 331, 0, 0, 0, 487, 0,
1405 0, 0, 0, 196, 225, 225, 0, 0, 0, 487,
1406 0, 0, 148, 0, 0, 0, 0, 0, 847, 0,
1407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1408 528, 0, 0, 0, 798, 0, 0, 798, 0, 0,
1409 0, 0, 331, 0, 0, 0, -524, 331, 198, 226,
1410 226, 368, 0, 157, 0, 0, 139, 140, 141, 142,
1411 143, 144, 0, 187, 0, 0, 0, 0, 0, 180,
1412 0, 0, 0, 145, 146, 147, 573, 0, 917, 944,
1413 527, 0, 0, 0, 0, 950, 951, 952, 953, 954,
1414 955, 956, 957, 958, 959, 960, 0, 148, 0, 186,
1415 0, 331, 0, 331, 0, 655, 657, 187, 185, 0,
1416 0, 0, 0, 0, 0, 187, 0, 0, 218, 187,
1417 0, 187, 0, 0, 0, 76, 329, 330, 160, 219,
1418 0, 0, 0, 196, 219, 0, 219, 0, 157, 798,
1419 0, 0, 0, 0, 0, 0, 0, 0, 219, 219,
1420 187, 0, 0, 331, 0, 0, 0, 0, 0, 0,
1421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1422 0, 0, 0, 989, 990, 331, 0, 196, 198, 0,
1423 0, 997, 0, 0, 0, 196, 0, 0, 0, 196,
1424 0, 196, 0, 0, 0, 0, 0, 0, 0, 225,
1425 652, 0, 0, 0, 225, 1013, 225, 743, 0, 180,
1426 76, 329, 330, 160, 0, 0, 0, 0, 225, 225,
1427 196, 0, 198, 0, 0, 0, 0, 0, 0, 0,
1428 198, 0, 0, 0, 198, 0, 198, 0, 0, 186,
1429 0, 0, 798, 0, 226, 0, 0, 0, 0, 226,
1430 0, 226, 0, 0, 0, 0, 0, 0, 0, 0,
1431 0, 0, 743, 226, 226, 198, 0, 493, 0, 0,
1432 0, 1060, 0, 331, 331, 331, 331, 331, 331, 840,
1433 841, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1434 0, 0, 0, 0, 0, 487, 0, 487, 0, 0,
1435 0, 0, 0, 728, 0, 0, 774, 797, 1070, 0,
1436 0, 0, 328, 0, 0, 0, 0, 139, 140, 141,
1437 142, 143, 144, 0, 0, 0, 0, 0, 0, 0,
1438 0, 0, 0, 0, 145, 146, 147, 331, 0, 0,
1439 1131, 328, 0, 0, 628, 0, 139, 140, 141, 142,
1440 143, 144, 0, 187, 0, 0, 0, 0, 148, 826,
1441 0, 0, 0, 145, 146, 147, 0, 0, 797, 0,
1442 832, 331, 219, 328, 0, 0, 0, 0, 139, 140,
1443 141, 142, 143, 144, 0, 0, 0, 148, 0, 0,
1444 0, 0, 0, 0, 0, 145, 146, 147, 0, 157,
1445 0, 0, 331, 331, 331, 331, 331, 331, 331, 331,
1446 331, 331, 331, 331, 331, 331, 331, 331, 331, 148,
1447 331, 0, 0, 196, 0, 126, 127, 128, 157, 129,
1448 130, 131, 132, 133, 134, 135, 136, 203, -524, 669,
1449 0, 0, 225, 368, 0, 0, 0, 0, 139, 140,
1450 141, 142, 143, 144, 0, 0, 0, 0, 1215, 0,
1451 157, 0, 0, 0, 0, 145, 146, 147, 198, 0,
1452 0, 76, 329, 330, 160, 0, 0, 0, 0, 0,
1453 0, 0, 0, 0, 0, 947, 331, 226, 0, 148,
1454 0, 0, 0, 187, 0, 0, 0, 0, 0, 0,
1455 76, 329, 330, 160, 0, 0, 0, 0, 0, 0,
1456 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1457 0, 0, 0, 743, 0, 0, 156, 0, 0, 0,
1458 157, 0, 76, 329, 330, 160, 0, 0, 0, 0,
1459 0, 0, 0, 0, 0, 0, 0, 0, 0, -1,
1460 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1461 0, 0, 0, 196, 0, 0, 0, 0, 0, 0,
1462 0, 0, 0, -280, 493, 0, 0, 0, 0, 0,
1463 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
1464 0, 0, 0, 0, 3, 369, 0, 0, 370, 0,
1465 0, 371, 76, 158, 159, 160, 161, 80, 198, 0,
1466 0, 0, 0, 0, 0, 0, -389, -389, -389, 1025,
1467 4, 0, 0, 0, 5, 6, 7, 0, 0, 0,
1468 0, 0, 0, 0, 0, 0, 0, 0, 8, 9,
1469 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1470 0, 0, 0, 0, 0, 0, 0, 11, 12, 13,
1471 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1472 23, 331, 24, 25, 26, 27, 28, 29, 30, 31,
1473 32, 33, 34, 35, 36, 37, 38, 331, 39, 40,
1474 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1475 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1476 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1477 71, 72, 73, 74, 75, -2, 1, 331, 0, 0,
1478 0, 0, 76, 77, 78, 0, 79, 80, 81, 0,
1479 0, 0, 0, 0, 0, 328, 0, 0, 709, -280,
1480 139, 140, 141, 142, 143, 144, 0, 0, 0, 2,
1481 0, 0, 0, 0, 0, 0, 0, 145, 146, 147,
1482 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 148, -389, -389, -389, 0, 4, 0, 0, 0,
1485 5, 6, 7, 0, 0, 0, 0, 0, 0, 0,
1486 0, 0, 0, 0, 8, 9, 10, 0, 0, 0,
1487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1488 0, 0, 157, 11, 12, 13, 0, 14, 15, 16,
1489 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
1490 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1491 36, 37, 38, 0, 39, 40, 41, 42, 43, 44,
1492 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1493 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1494 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1495 75, 0, 0, 0, 76, 329, 330, 160, 76, 77,
1496 78, 125, 79, 80, 81, 0, 126, 127, 128, 0,
1497 129, 130, 131, 132, 133, 134, 135, 136, 137, -524,
1498 565, 0, 0, 0, 138, 0, 0, 0, 0, 139,
1499 140, 141, 142, 143, 144, 0, 0, 0, 0, 0,
1500 0, 0, -280, -280, 0, 3, 145, 146, 147, 0,
1501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, -389, -389, -389,
1503 148, 4, 0, 0, 0, 0, 0, 0, 0, 0,
1504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505 0, 0, 0, 150, 151, 152, 153, 154, 155, 0,
1506 0, 0, 0, 0, 0, 0, 0, 156, 11, 12,
1507 13, 157, 14, 15, 16, 17, 18, 19, 20, 21,
1508 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1509 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1510 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1511 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1512 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1513 70, 71, 72, 73, 74, 75, 0, 0, 0, 0,
1514 0, 0, 0, 76, 158, 566, 160, 161, 80, 81,
1515 125, 0, 0, 0, 0, 126, 127, 128, 0, 129,
1516 130, 131, 132, 133, 134, 135, 136, 137, -524, 0,
1517 0, 0, 0, 138, 0, 0, 0, 0, 139, 140,
1518 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1519 0, -280, -280, 0, 0, 145, 146, 147, 0, 0,
1520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, -280, -280, -280, 148,
1522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1524 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1525 0, 0, 0, 0, 0, 0, 156, -280, -280, -280,
1526 157, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1527 -280, 0, -280, -280, -280, -280, -280, -280, -280, -280,
1528 -280, -280, -280, -280, -280, -280, -280, 0, -280, -280,
1529 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1530 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1531 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1532 -280, -280, -280, -280, -280, 0, 0, 0, 0, 0,
1533 0, 0, 76, 158, 159, 160, 161, 80, -280, 201,
1534 0, 0, 0, 0, 126, 127, 128, 0, 0, 202,
1535 131, 132, 133, 134, 135, 136, 203, -524, -528, 0,
1536 0, 0, 204, 0, 0, 0, 0, 139, 140, 141,
1537 142, 143, 144, 0, 0, 0, 0, 0, 0, 0,
1538 -280, -280, 0, 0, 145, 146, 147, 0, 0, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, -280, -280, -280, 148, 0,
1541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1543 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1544 0, 0, 0, 0, 0, 156, -280, -280, -280, 157,
1545 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1546 0, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1547 -280, -280, -280, -280, -280, -280, 0, -280, -280, -280,
1548 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1549 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1550 -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
1551 -280, -280, -280, -280, 0, 0, 0, 0, 0, 0,
1552 0, 76, 158, 159, 160, 205, 206, -280, 201, 0,
1553 0, 0, 0, 126, 127, 128, 0, 0, 202, 131,
1554 132, 133, 134, 135, 136, 203, -472, -472, 0, 0,
1555 0, 204, -472, 0, 0, 0, 139, 140, 141, 142,
1556 143, 144, 0, 0, 0, 0, 0, 0, 0, -280,
1557 -280, 125, 0, 145, 146, 147, 126, 127, 128, 0,
1558 129, 130, 131, 132, 133, 134, 135, 136, 137, -524,
1559 0, 0, 0, 0, 138, 0, 0, 148, 0, 139,
1560 140, 141, 142, 143, 144, 0, 0, 0, 0, 0,
1561 0, 0, -280, -280, 0, 0, 145, 146, 147, -472,
1562 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1563 0, 0, 0, 0, 156, 0, 0, 0, 157, 0,
1564 148, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1566 0, 0, 149, 150, 151, 152, 153, 154, 155, 0,
1567 0, 0, 0, 0, 0, 0, 0, 156, 0, 0,
1568 0, 157, 0, 0, 0, 0, 0, 0, 0, 0,
1569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1571 76, 158, 159, 160, 205, 206, 0, 0, 125, 0,
1572 0, 0, 0, 126, 127, 128, 0, 129, 130, 131,
1573 132, 133, 134, 135, 136, 137, -524, 0, 0, 0,
1574 0, 138, 0, 0, 0, 0, 139, 140, 141, 142,
1575 143, 144, 0, 76, 158, 159, 160, 161, 80, -280,
1576 -280, 201, 0, 145, 146, 147, 126, 127, 128, 0,
1577 0, 202, 131, 132, 133, 134, 135, 136, 203, -524,
1578 -528, 0, 0, 0, 204, 0, 0, 148, 0, 139,
1579 140, 141, 142, 143, 144, 0, 0, 0, 0, 0,
1580 0, 0, -280, -280, 0, 0, 145, 146, 147, -499,
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, -468, 150, 151, 152, 153, 154, 155, 0,
1586 0, 0, 0, 0, 0, 0, 0, 156, 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, 0, 0, 0, 0, 0, 0, 0,
1590 76, 158, 159, 160, 161, 80, 0, 0, 125, 0,
1591 0, 0, 0, 126, 127, 128, 0, 129, 130, 131,
1592 132, 133, 134, 135, 136, 137, -524, 658, 0, 0,
1593 0, 138, 0, 0, 0, 0, 139, 140, 141, 142,
1594 143, 144, 0, 76, 158, 159, 160, 205, 206, -280,
1595 -280, 201, 0, 145, 146, 147, 126, 127, 128, 0,
1596 0, 202, 131, 132, 133, 134, 135, 136, 203, -524,
1597 -528, 0, 0, 0, 204, 0, 0, 148, 0, 139,
1598 140, 141, 142, 143, 144, 0, 0, 0, 0, 0,
1599 0, 0, -280, -280, 0, 0, 145, 146, 147, 0,
1600 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1601 0, 0, 0, 0, 156, 0, 0, 0, 157, 0,
1602 148, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1604 0, 0, 0, 150, 151, 152, 153, 154, 155, 0,
1605 0, 0, 0, 0, 0, 0, 0, 156, 0, 0,
1606 0, 157, 0, 0, 0, 0, 0, 0, 0, 0,
1607 0, 0, 0, 0, 0, 0, 0, 328, -262, 0,
1608 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1609 76, 158, 159, 160, 161, 80, 0, 0, 125, 145,
1610 146, 147, 0, 126, 127, 128, 0, 129, 130, 131,
1611 132, 133, 134, 135, 136, 137, -524, 0, 0, 0,
1612 0, 138, 0, 148, 0, 0, 139, 140, 141, 142,
1613 143, 144, 0, 76, 158, 159, 160, 205, 206, -280,
1614 -280, 0, 0, 145, 146, 147, 0, 0, 0, 0,
1615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1616 0, 0, 0, 0, 157, 0, 0, 148, 0, 0,
1617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1619 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1620 0, 0, 0, 0, 156, 126, 127, 128, 157, 129,
1621 130, 131, 132, 133, 134, 135, 136, 203, -524, 580,
1622 0, 0, 0, 368, 0, 0, 0, 0, 139, 140,
1623 141, 142, 143, 144, 0, 0, 76, 329, 330, 160,
1624 0, -280, -280, 0, 3, 145, 146, 147, 0, 0,
1625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1626 0, 0, 0, 0, 0, 0, 0, 0, 0, 148,
1627 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1628 76, 158, 159, 160, 161, 80, 0, 0, 0, 0,
1629 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1630 0, 0, 0, 0, 0, 0, 581, 11, 12, 13,
1631 157, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1632 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1633 32, 33, 34, 35, 36, 37, 38, 0, 39, 40,
1634 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1635 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1636 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1637 71, 72, 73, 74, 75, 369, 0, 0, 370, 0,
1638 0, 371, 76, 158, 566, 160, 161, 80, 81, 126,
1639 127, 128, 0, 129, 130, 131, 132, 133, 134, 135,
1640 136, 203, -524, 659, 0, 0, 0, 368, 0, 0,
1641 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1642 0, 0, 0, 0, 0, -280, -280, 0, 3, 145,
1643 146, 147, 0, 0, 0, 0, 0, 0, 0, 0,
1644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1645 0, 0, 0, 148, 4, 0, 0, 0, 0, 0,
1646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1647 0, 0, 0, 0, 0, 0, 150, 151, 152, 153,
1648 154, 155, 0, 0, 0, 0, 0, 0, 0, 0,
1649 156, 11, 12, 13, 157, 14, 15, 16, 17, 18,
1650 19, 20, 21, 22, 23, 0, 24, 25, 26, 27,
1651 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1652 38, 0, 39, 40, 41, 42, 43, 44, 45, 46,
1653 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1654 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1655 67, 68, 69, 70, 71, 72, 73, 74, 75, 369,
1656 0, 0, 370, 0, 0, 371, 76, 158, 566, 160,
1657 161, 80, 81, 126, 127, 128, 0, 129, 130, 131,
1658 132, 133, 134, 135, 136, 203, -524, 670, 0, 0,
1659 0, 368, 0, 0, 0, 0, 139, 140, 141, 142,
1660 143, 144, 0, 0, 0, 0, 0, 0, 0, -280,
1661 -280, 0, 3, 145, 146, 147, 0, 0, 0, 0,
1662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1663 0, 0, 0, 0, 0, 0, 0, 148, 4, 0,
1664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1667 0, 0, 0, 0, 671, 11, 12, 13, 157, 14,
1668 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1669 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1670 34, 35, 36, 37, 38, 0, 39, 40, 41, 42,
1671 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1672 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1673 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1674 73, 74, 75, 369, 0, 0, 370, 0, 0, 371,
1675 76, 158, 566, 160, 161, 80, 81, 126, 127, 128,
1676 0, 129, 130, 131, 132, 133, 134, 135, 136, 203,
1677 -524, 673, 0, 0, 0, 368, 0, 0, 0, 0,
1678 139, 140, 141, 142, 143, 144, 0, 0, 0, 0,
1679 0, 0, 0, 0, 0, 0, 0, 145, 146, 147,
1680 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1681 135, 136, 203, -524, 726, 0, 0, 0, 368, 0,
1682 0, 148, 0, 139, 140, 141, 142, 143, 144, 0,
1683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1684 145, 146, 147, 0, 150, 151, 152, 153, 154, 155,
1685 0, 0, 0, 0, 0, 0, 0, 0, 674, 0,
1686 328, 0, 157, 0, 148, 139, 140, 141, 142, 143,
1687 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1688 0, 0, 145, 146, 147, 0, 0, 150, 151, 152,
1689 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1690 0, 156, 0, 0, 0, 157, 148, 0, 0, 0,
1691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1692 0, 0, 0, 0, 0, 0, 0, 369, 0, 0,
1693 370, 0, 0, 371, 76, 158, 159, 160, 161, 80,
1694 0, 0, 0, 0, 0, 0, 0, 157, 0, 0,
1695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1697 369, 0, 0, 370, 0, 0, 371, 76, 158, 159,
1698 160, 161, 80, 126, 127, 128, 0, 129, 130, 131,
1699 132, 133, 134, 135, 136, 203, -524, 779, 0, 0,
1700 0, 368, 0, 0, 0, 0, 139, 140, 141, 142,
1701 143, 144, 0, 0, 0, 0, 0, 0, 0, 76,
1702 329, 330, 160, 145, 146, 147, 126, 127, 128, 0,
1703 129, 130, 131, 132, 133, 134, 135, 136, 203, -524,
1704 780, 0, 0, 0, 368, 0, 0, 148, 0, 139,
1705 140, 141, 142, 143, 144, 0, 0, 0, 0, 0,
1706 0, 0, 0, 0, 0, 0, 145, 146, 147, 0,
1707 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1708 0, 0, 0, 0, 156, 0, 357, 0, 157, 0,
1709 148, 139, 140, 141, 142, 143, 144, 0, 0, 0,
1710 0, 0, 0, 0, 0, 0, 0, 0, 145, 146,
1711 147, 0, 0, 150, 151, 152, 153, 154, 155, 0,
1712 0, 0, 0, 0, 0, 0, 0, 781, 0, 0,
1713 0, 157, 148, 0, 0, 0, 0, 0, 0, 0,
1714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1715 0, 0, 0, 369, 0, 0, 370, 0, 0, 371,
1716 76, 158, 159, 160, 161, 80, 0, 0, 0, 0,
1717 0, 0, 0, 157, 0, 0, 0, 0, 0, 0,
1718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1719 0, 0, 0, 0, 0, 0, 369, 0, 0, 370,
1720 0, 0, 371, 76, 158, 159, 160, 161, 80, 126,
1721 127, 128, 0, 129, 130, 131, 132, 133, 134, 135,
1722 136, 203, -524, 782, 0, 0, 0, 368, 0, 0,
1723 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1724 0, 0, 0, 0, 0, 76, 329, 330, 160, 145,
1725 146, 147, 126, 127, 128, 0, 129, 130, 131, 132,
1726 133, 134, 135, 136, 203, -524, 901, 0, 0, 0,
1727 368, 0, 0, 148, 0, 139, 140, 141, 142, 143,
1728 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1729 0, 0, 145, 146, 147, 0, 150, 151, 152, 153,
1730 154, 155, 0, 0, 0, 0, 0, 0, 0, 0,
1731 156, 0, 654, 0, 157, 0, 148, 139, 140, 141,
1732 142, 143, 144, 656, 0, 0, 0, 0, 139, 140,
1733 141, 142, 143, 144, 145, 146, 147, 0, 0, 150,
1734 151, 152, 153, 154, 155, 145, 146, 147, 0, 0,
1735 0, 0, 0, 156, 0, 0, 0, 157, 148, 0,
1736 0, 0, 0, 0, 0, 0, 0, 0, 0, 148,
1737 0, 0, 0, 0, 0, 0, 0, 0, 0, 369,
1738 0, 0, 370, 0, 0, 371, 76, 158, 159, 160,
1739 161, 80, 0, 0, 0, 0, 0, 0, 0, 157,
1740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741 157, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 369, 0, 0, 370, 0, 0, 371, 76,
1743 158, 159, 160, 161, 80, 126, 127, 128, 0, 129,
1744 130, 131, 132, 133, 134, 135, 136, 203, -524, 0,
1745 0, 0, 0, 368, 0, 0, 0, 0, 139, 140,
1746 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1747 0, 76, 329, 330, 160, 145, 146, 147, 0, 0,
1748 0, 0, 76, 329, 330, 160, 0, 0, 0, 0,
1749 0, 0, 0, 0, 0, 0, 0, 0, 0, 148,
1750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1752 0, 0, 150, 151, 152, 153, 154, 155, 293, 0,
1753 0, 0, 0, 0, 0, 0, 156, 0, 0, 0,
1754 157, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
1756 0, 729, 0, 0, 0, 0, 730, 731, 732, 733,
1757 734, 735, 0, 0, 0, 0, 0, -389, -389, -389,
1758 0, 4, 0, 145, 736, 737, 0, 0, 0, 0,
1759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1760 0, 0, 0, 0, 0, 369, 0, 738, 370, 0,
1761 0, 371, 76, 158, 159, 160, 161, 80, 11, 12,
1762 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1763 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1764 31, 32, 33, 34, 35, 36, 37, 38, 157, 39,
1765 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1766 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1767 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1768 70, 71, 72, 73, 74, 75, 293, 0, 0, 0,
1769 0, 0, 0, 0, 0, 120, 0, 0, 0, 81,
1770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1771 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
1772 76, 739, 740, 741, 0, 0, 0, 0, 0, 0,
1773 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
1774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1775 0, 0, 0, 0, 0, 0, -658, 0, 0, 0,
1776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1777 0, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1778 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1779 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1780 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1781 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1782 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1783 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1784 72, 73, 74, 75, -146, 0, 0, 0, 0, -146,
1785 0, 0, 0, 120, 0, 0, 0, 81, 0, 0,
1786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1787 3, 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, 4, 0, 0, 0,
1790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1793 0, 0, 0, 11, 12, 13, 0, 14, 15, 16,
1794 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
1795 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1796 36, 37, 38, 0, 39, 40, 41, 42, 43, 44,
1797 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1798 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1799 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1800 75, 288, 0, 0, 0, 0, 0, 0, 0, 0,
1801 120, 0, 0, 0, 81, 0, 0, 0, 0, 0,
1802 0, 0, 0, 0, 0, 0, 0, 3, 0, 0,
1803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1805 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
1806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1808 -527, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1809 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1810 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1811 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1812 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1813 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1814 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1815 68, 69, 70, 71, 72, 73, 74, 75, 0, 0,
1816 0, 0, 0, 0, 0, 0, 0, 120, 11, 12,
1817 13, 81, 14, 15, 16, 17, 18, 19, 20, 21,
1818 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1819 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1820 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1821 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1822 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1823 70, 71, 72, 73, 74, 75, -665, 0, 0, 0,
1824 0, 0, 0, 0, 0, 120, 0, 0, 0, 81,
1825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1828 0, -667, -667, -667, 0, 0, 0, 0, 0, 0,
1829 0, 0, 0, 0, 0, 0, 0, 0, 0, -667,
1830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1832 0, 0, -667, -667, -667, 0, -667, -667, -667, -667,
1833 -667, -667, -667, -667, -667, -667, 0, -667, -667, -667,
1834 -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
1835 -667, -667, 0, -667, -667, -667, -667, -667, -667, -667,
1836 -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
1837 -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
1838 -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
1839 -280, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1840 2, 0, 0, -667, 0, 0, 0, 0, 0, 0,
1841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1847 0, 0, 0, 0, 11, 12, 13, 0, 14, 15,
1848 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1849 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1850 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1851 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1852 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1853 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1854 74, 75, -206, -206, 0, 0, 0, 0, 0, 76,
1855 77, 78, 0, 79, 80, 81, 0, 0, 0, 0,
1856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1860 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1861 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1862 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1863 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1864 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1865 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1866 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1867 70, 71, 72, 73, 74, 75, 3, 0, 0, 0,
1868 0, 0, 0, 0, 0, 120, 0, 0, 0, 81,
1869 0, 0, 0, 0, 0, 0, 0, 0, -389, -389,
1870 -389, 0, 4, 0, 0, 0, 0, 0, 0, 0,
1871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1873 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
1874 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1875 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1876 30, 31, 32, 33, 34, 35, 36, 37, 38, 0,
1877 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1878 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1879 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1880 69, 70, 71, 72, 73, 74, 75, 3, 0, 0,
1881 0, 0, 0, 0, 0, 0, 120, 0, 0, 0,
1882 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1883 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
1884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1887 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1888 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1889 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1890 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1891 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1892 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1893 68, 69, 70, 71, 72, 73, 74, 75, -389, -389,
1894 -389, 0, 0, 0, 0, 0, 0, 120, 0, 0,
1895 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1897 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
1898 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1899 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1900 30, 31, 32, 33, 34, 35, 36, 37, 38, 0,
1901 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1902 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1903 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1904 69, 70, 71, 72, 73, 74, 75, 8, 9, 10,
1905 0, 0, 0, 0, 0, 0, 120, 0, 0, 0,
1906 81, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1907 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1908 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1909 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1910 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1911 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1912 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1913 72, 73, 74, 75, 0, 0, 0, 0, 0, 0,
1914 0, 0, 0, 120, 11, 12, 13, 81, 14, 15,
1915 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1916 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1917 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1918 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1919 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1920 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1921 74, 75, 0, 0, 0, 0, 0, 0, 0, 0,
1925 static const short yycheck[] = { 0,
1926 106, 89, 3, 469, 501, 366, 409, 410, 320, 2,
1927 11, 12, 0, 368, 0, 626, 664, 18, 19, 20,
1928 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1929 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1930 41, 42, 43, 407, 408, 630, 418, 48, 49, 50,
1931 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1932 61, 62, 63, 64, 415, 416, 419, 27, 417, 303,
1933 8, 719, 5, 664, 75, 452, 560, 19, 24, 0,
1934 797, 82, 3, 800, 5, 664, 558, 479, 34, 789,
1935 451, 8, 25, 803, 82, 322, 82, 24, 18, 100,
1936 455, 126, 777, 915, 24, 106, 0, 41, 24, 86,
1937 87, 27, 809, 5, 34, 116, 117, 118, 34, 21,
1938 113, 122, 56, 28, 24, 27, 711, 215, 719, 122,
1939 41, 18, 684, 25, 34, 9, 10, 138, 499, 44,
1940 719, 34, 86, 87, 145, 56, 1090, 1091, 569, 139,
1941 140, 141, 142, 143, 144, 1040, 1041, 18, 1090, 1119,
1942 1120, 82, 26, 584, 204, 411, 412, 413, 414, 209,
1943 34, 211, 116, 117, 24, 96, 97, 8, 99, 24,
1944 664, 993, 28, 223, 34, 902, 130, 0, 82, 34,
1945 3, 1089, 664, 5, 7, 8, 9, 10, 44, 1097,
1946 138, 122, 899, 204, 1148, 702, 183, 184, 908, 919,
1947 910, 21, 24, 25, 26, 108, 109, 1177, 8, 894,
1948 612, 138, 34, 1155, 6, 7, 186, 1159, 1113, 9,
1949 10, 1116, 587, 85, 611, 719, 788, 183, 184, 791,
1950 24, 183, 184, 185, 182, 187, 188, 719, 24, 610,
1951 183, 184, 185, 480, 187, 188, 194, 24, 196, 5,
1952 21, 664, 1194, 183, 184, 182, 27, 183, 184, 82,
1953 186, 632, 506, 190, 21, 1139, 24, 194, 25, 196,
1954 180, 181, 29, 183, 184, 286, 186, 225, 1005, 1174,
1955 291, 24, 664, 106, 906, 607, 1160, 909, 1162, 21,
1956 664, 302, 303, 25, 305, 306, 292, 138, 225, 122,
1957 26, 664, 28, 664, 302, 664, 719, 814, 319, 24,
1958 133, 26, 933, 18, 325, 138, 909, 328, 44, 34,
1959 204, 319, 980, 183, 184, 209, 18, 211, 183, 184,
1960 428, 366, 18, 156, 929, 21, 347, 719, 138, 223,
1961 224, 182, 5, 21, 347, 719, 21, 25, 592, 190,
1962 25, 18, 5, 194, 21, 196, 719, 368, 719, 182,
1963 719, 183, 184, 185, 39, 187, 188, 190, 24, 192,
1964 26, 194, 25, 196, 192, 86, 87, 22, 1000, 980,
1965 1002, 204, 182, 877, 225, 26, 209, 28, 211, 34,
1966 190, 980, 636, 875, 194, 21, 196, 447, 16, 25,
1967 223, 224, 225, 44, 404, 405, 406, 1000, 664, 1002,
1968 654, 24, 656, 18, 204, 346, 451, 15, 23, 209,
1969 21, 211, 21, 794, 25, 225, 25, 183, 184, 185,
1970 16, 187, 188, 223, 224, 0, 21, 21, 3, 16,
1971 25, 25, 7, 454, 32, 33, 457, 443, 49, 50,
1972 16, 864, 865, 464, 34, 466, 454, 468, 469, 457,
1973 471, 22, 21, 719, 499, 476, 25, 22, 479, 53,
1974 54, 18, 183, 184, 21, 486, 479, 21, 25, 302,
1975 428, 25, 305, 306, 307, 729, 980, 498, 862, 863,
1976 501, 873, 503, 37, 38, 506, 319, 22, 980, 21,
1977 34, 428, 325, 25, 504, 85, 29, 51, 52, 870,
1978 871, 874, 18, 872, 21, 21, 40, 82, 25, 25,
1979 183, 184, 185, 18, 187, 188, 21, 49, 50, 460,
1980 183, 184, 185, 21, 187, 188, 39, 25, 183, 184,
1981 185, 106, 187, 188, 32, 33, 369, 370, 371, 92,
1982 5, 374, 24, 24, 26, 26, 374, 122, 26, 382,
1983 28, 384, 34, 447, 382, 55, 384, 980, 133, 24,
1984 25, 26, 1079, 569, 939, 610, 44, 18, 589, 34,
1985 21, 592, 23, 92, 1060, 21, 702, 428, 584, 25,
1986 18, 22, 21, 21, 605, 606, 25, 632, 980, 921,
1987 24, 612, 26, 183, 184, 428, 980, 187, 188, 612,
1988 866, 867, 868, 869, 21, 49, 50, 980, 25, 980,
1989 631, 980, 21, 19, 447, 636, 25, 24, 428, 26,
1990 453, 454, 21, 24, 457, 453, 25, 34, 649, 650,
1991 24, 568, 26, 654, 467, 656, 469, 22, 471, 183,
1992 184, 185, 25, 187, 188, 28, 479, 447, 22, 482,
1993 49, 50, 21, 486, 19, 987, 25, 678, 25, 26,
1994 21, 97, 21, 99, 25, 686, 25, 688, 37, 38,
1995 92, 692, 693, 21, 1006, 20, 697, 25, 619, 1011,
1996 701, 702, 51, 52, 32, 33, 707, 520, 814, 702,
1997 49, 50, 520, 27, 707, 21, 529, 530, 1030, 25,
1998 92, 183, 184, 185, 1036, 187, 188, 189, 729, 25,
1999 26, 24, 28, 1045, 980, 25, 26, 568, 28, 18,
2000 730, 731, 732, 733, 734, 735, 23, 302, 44, 21,
2001 305, 306, 307, 25, 44, 568, 569, 42, 43, 37,
2002 38, 569, 1074, 1075, 319, 1077, 18, 1128, 581, 794,
2003 325, 584, 585, 51, 52, 18, 584, 585, 568, 18,
2004 26, 18, 24, 784, 21, 24, 1020, 18, 34, 22,
2005 29, 30, 31, 32, 33, 34, 183, 184, 185, 612,
2006 187, 188, 21, 828, 53, 54, 25, 46, 47, 48,
2007 25, 1123, 813, 814, 18, 816, 25, 26, 21, 28,
2008 24, 814, 25, 1184, 25, 29, 30, 31, 32, 33,
2009 34, 70, 67, 68, 69, 44, 183, 184, 185, 24,
2010 187, 188, 46, 47, 48, 18, 24, 660, 661, 27,
2011 21, 664, 660, 661, 25, 18, 34, 18, 671, 672,
2012 21, 674, 20, 21, 672, 786, 70, 1179, 789, 859,
2013 860, 861, 111, 21, 687, 183, 689, 25, 21, 183,
2014 184, 185, 25, 187, 188, 698, 37, 38, 701, 702,
2015 703, 34, 35, 36, 21, 703, 18, 985, 25, 454,
2016 51, 52, 457, 18, 905, 21, 719, 111, 18, 25,
2017 19, 912, 467, 21, 469, 21, 471, 25, 9, 25,
2018 23, 1009, 21, 11, 479, 25, 25, 482, 24, 21,
2019 26, 486, 28, 25, 21, 22, 21, 183, 184, 185,
2020 25, 187, 188, 24, 183, 184, 185, 186, 44, 32,
2021 33, 47, 48, 943, 57, 58, 59, 60, 61, 62,
2022 63, 64, 65, 66, 11, 21, 21, 21, 781, 25,
2023 25, 25, 24, 1079, 529, 530, 8, 9, 10, 183,
2024 184, 185, 186, 88, 119, 906, 121, 908, 909, 910,
2025 21, 21, 21, 994, 25, 25, 997, 132, 133, 88,
2026 135, 814, 137, 138, 18, 183, 184, 21, 186, 997,
2027 19, 824, 1013, 21, 1015, 150, 19, 25, 18, 1020,
2028 1013, 21, 1023, 1024, 19, 1013, 34, 35, 36, 49,
2029 50, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2030 74, 21, 21, 21, 1030, 25, 25, 25, 8, 9,
2031 10, 27, 21, 19, 21, 23, 25, 612, 25, 1060,
2032 24, 1062, 1063, 21, 98, 21, 100, 25, 102, 18,
2033 104, 25, 21, 20, 21, 109, 53, 54, 1079, 1000,
2034 22, 1002, 34, 35, 36, 119, 18, 121, 1074, 57,
2035 58, 59, 60, 61, 62, 63, 64, 65, 66, 21,
2036 24, 24, 26, 1128, 28, 21, 138, 78, 79, 80,
2037 81, 82, 83, 84, 34, 35, 36, 20, 21, 1144,
2038 44, 21, 22, 47, 48, 1126, 183, 184, 1129, 163,
2039 22, 1132, 687, 186, 689, 948, 949, 72, 73, 74,
2040 25, 1129, 186, 698, 32, 33, 701, 702, 186, 11,
2041 182, 72, 73, 74, 51, 52, 53, 24, 190, 1184,
2042 24, 24, 194, 20, 196, 25, 27, 980, 23, 19,
2043 23, 20, 204, 205, 987, 19, 21, 209, 138, 211,
2044 5, 27, 25, 24, 997, 22, 88, 88, 24, 88,
2045 25, 223, 224, 225, 20, 18, 20, 27, 1011, 18,
2046 1013, 29, 24, 1016, 25, 25, 21, 39, 25, 27,
2047 88, 25, 1213, 25, 25, 55, 1029, 25, 24, 18,
2048 25, 25, 182, 1224, 40, 25, 1039, 1040, 1041, 25,
2049 190, 21, 18, 177, 194, 1048, 196, 18, 8, 9,
2050 10, 21, 178, 177, 204, 18, 88, 1060, 188, 209,
2051 178, 211, 21, 25, 88, 20, 22, 291, 20, 814,
2052 24, 295, 25, 223, 224, 225, 1079, 18, 20, 824,
2053 20, 27, 73, 18, 27, 88, 1089, 1090, 1091, 313,
2054 27, 88, 316, 25, 1097, 88, 88, 360, 25, 0,
2055 324, 88, 0, 327, 88, 88, 88, 82, 325, 778,
2056 1113, 1114, 1115, 1116, 900, 1105, 1119, 1120, 1010, 1038,
2057 894, 926, 1125, 1011, 1174, 388, 1129, 843, 1125, 471,
2058 393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
2059 403, 592, 1129, 689, 687, 1148, 113, 814, 10, 8,
2060 701, 347, 1155, 224, 1157, 1158, 1159, 1084, 520, 428,
2061 719, 424, 980, -1, -1, 387, -1, -1, -1, 126,
2062 -1, 1174, 1175, 1176, 1177, -1, -1, -1, 138, 8,
2063 9, 10, 139, 140, 141, 142, 143, 144, -1, 146,
2064 147, 1194, -1, -1, -1, -1, -1, -1, -1, -1,
2065 -1, -1, -1, 948, 949, -1, 428, 72, 73, 74,
2066 -1, -1, -1, 78, 79, 80, 81, 82, 83, 84,
2067 -1, -1, 182, -1, -1, 447, -1, -1, 452, -1,
2068 190, -1, -1, -1, 194, 459, 196, -1, -1, -1,
2069 464, -1, 466, -1, 204, -1, -1, -1, -1, 209,
2070 474, 211, 997, -1, 478, -1, -1, -1, -1, -1,
2071 -1, -1, -1, 223, 224, 225, -1, -1, 1013, -1,
2072 -1, 1016, -1, -1, -1, -1, -1, 136, 428, 138,
2073 -1, -1, -1, -1, 24, 25, -1, -1, -1, 29,
2074 30, 31, 32, 33, 34, -1, -1, 447, -1, -1,
2075 -1, -1, -1, -1, -1, -1, 46, 47, 48, 138,
2076 72, 73, 74, -1, -1, 1060, 78, 79, 80, 81,
2077 82, 83, 84, 182, -1, -1, -1, -1, -1, -1,
2078 70, 190, -1, -1, 1079, 194, -1, 196, -1, -1,
2079 -1, -1, -1, -1, -1, 204, 568, -1, -1, -1,
2080 -1, -1, -1, 182, -1, -1, -1, -1, -1, -1,
2081 -1, 190, 586, -1, -1, 194, 225, 196, -1, 1114,
2082 1115, 111, -1, -1, -1, 204, -1, -1, -1, -1,
2083 209, -1, 211, 646, 1129, -1, -1, 611, -1, -1,
2084 -1, -1, -1, -1, 223, 224, 225, -1, -1, -1,
2085 -1, -1, -1, -1, -1, -1, 630, -1, -1, 366,
2086 -1, 635, 1157, 1158, -1, -1, -1, -1, 568, -1,
2087 -1, -1, -1, -1, -1, -1, -1, -1, 691, -1,
2088 1175, 1176, -1, 8, 9, 10, -1, -1, -1, -1,
2089 -1, -1, 666, 183, 184, 185, 186, 404, 405, 406,
2090 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
2091 417, 418, 419, -1, -1, -1, 24, 25, 428, 328,
2092 -1, 29, 30, 31, 32, 33, 34, 336, 337, 338,
2093 339, -1, -1, -1, -1, -1, -1, 447, 46, 47,
2094 48, -1, -1, -1, 451, -1, -1, -1, 357, -1,
2095 -1, -1, -1, 8, 9, 10, -1, -1, -1, 368,
2096 -1, -1, 70, -1, -1, -1, -1, -1, 742, -1,
2097 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2098 389, -1, -1, -1, 797, -1, -1, 800, -1, -1,
2099 -1, -1, 499, -1, -1, -1, 19, 504, 8, 9,
2100 10, 24, -1, 111, -1, -1, 29, 30, 31, 32,
2101 33, 34, -1, 138, -1, -1, -1, -1, -1, 428,
2102 -1, -1, -1, 46, 47, 48, 435, -1, 802, 842,
2103 843, -1, -1, -1, -1, 848, 849, 850, 851, 852,
2104 853, 854, 855, 856, 857, 858, -1, 70, -1, 428,
2105 -1, 558, -1, 560, -1, 562, 563, 182, 568, -1,
2106 -1, -1, -1, -1, -1, 190, -1, -1, 447, 194,
2107 -1, 196, -1, -1, -1, 183, 184, 185, 186, 204,
2108 -1, -1, -1, 138, 209, -1, 211, -1, 111, 902,
2109 -1, -1, -1, -1, -1, -1, -1, -1, 223, 224,
2110 225, -1, -1, 610, -1, -1, -1, -1, -1, -1,
2111 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2112 -1, -1, -1, 897, 898, 632, -1, 182, 138, -1,
2113 -1, 905, -1, -1, -1, 190, -1, -1, -1, 194,
2114 -1, 196, -1, -1, -1, -1, -1, -1, -1, 204,
2115 559, -1, -1, -1, 209, 929, 211, 664, -1, 568,
2116 183, 184, 185, 186, -1, -1, -1, -1, 223, 224,
2117 225, -1, 182, -1, -1, -1, -1, -1, -1, -1,
2118 190, -1, -1, -1, 194, -1, 196, -1, -1, 568,
2119 -1, -1, 1005, -1, 204, -1, -1, -1, -1, 209,
2120 -1, 211, -1, -1, -1, -1, -1, -1, -1, -1,
2121 -1, -1, 719, 223, 224, 225, -1, 626, -1, -1,
2122 -1, 995, -1, 730, 731, 732, 733, 734, 735, 736,
2123 737, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2124 -1, -1, -1, -1, -1, 654, -1, 656, -1, -1,
2125 -1, -1, -1, 662, -1, -1, 665, 19, 20, -1,
2126 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2127 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2128 -1, -1, -1, -1, 46, 47, 48, 794, -1, -1,
2129 1064, 24, -1, -1, 27, -1, 29, 30, 31, 32,
2130 33, 34, -1, 428, -1, -1, -1, -1, 70, 718,
2131 -1, -1, -1, 46, 47, 48, -1, -1, 19, -1,
2132 729, 828, 447, 24, -1, -1, -1, -1, 29, 30,
2133 31, 32, 33, 34, -1, -1, -1, 70, -1, -1,
2134 -1, -1, -1, -1, -1, 46, 47, 48, -1, 111,
2135 -1, -1, 859, 860, 861, 862, 863, 864, 865, 866,
2136 867, 868, 869, 870, 871, 872, 873, 874, 875, 70,
2137 877, -1, -1, 428, -1, 6, 7, 8, 111, 10,
2138 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2139 -1, -1, 447, 24, -1, -1, -1, -1, 29, 30,
2140 31, 32, 33, 34, -1, -1, -1, -1, 1182, -1,
2141 111, -1, -1, -1, -1, 46, 47, 48, 428, -1,
2142 -1, 183, 184, 185, 186, -1, -1, -1, -1, -1,
2143 -1, -1, -1, -1, -1, 844, 943, 447, -1, 70,
2144 -1, -1, -1, 568, -1, -1, -1, -1, -1, -1,
2145 183, 184, 185, 186, -1, -1, -1, -1, -1, -1,
2146 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2147 -1, -1, -1, 980, -1, -1, 107, -1, -1, -1,
2148 111, -1, 183, 184, 185, 186, -1, -1, -1, -1,
2149 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,
2150 1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2151 -1, -1, -1, 568, -1, -1, -1, -1, -1, -1,
2152 -1, -1, -1, 24, 933, -1, -1, -1, -1, -1,
2153 -1, -1, -1, 34, -1, -1, -1, -1, -1, -1,
2154 -1, -1, -1, -1, 45, 176, -1, -1, 179, -1,
2155 -1, 182, 183, 184, 185, 186, 187, 188, 568, -1,
2156 -1, -1, -1, -1, -1, -1, 67, 68, 69, 978,
2157 71, -1, -1, -1, 75, 76, 77, -1, -1, -1,
2158 -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
2159 91, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2160 -1, -1, -1, -1, -1, -1, -1, 108, 109, 110,
2161 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2162 121, 1128, 123, 124, 125, 126, 127, 128, 129, 130,
2163 131, 132, 133, 134, 135, 136, 137, 1144, 139, 140,
2164 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2165 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2166 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2167 171, 172, 173, 174, 175, 0, 1, 1184, -1, -1,
2168 -1, -1, 183, 184, 185, -1, 187, 188, 189, -1,
2169 -1, -1, -1, -1, -1, 24, -1, -1, 27, 24,
2170 29, 30, 31, 32, 33, 34, -1, -1, -1, 34,
2171 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2172 45, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2173 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2174 -1, 70, 67, 68, 69, -1, 71, -1, -1, -1,
2175 75, 76, 77, -1, -1, -1, -1, -1, -1, -1,
2176 -1, -1, -1, -1, 89, 90, 91, -1, -1, -1,
2177 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2178 -1, -1, 111, 108, 109, 110, -1, 112, 113, 114,
2179 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
2180 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2181 135, 136, 137, -1, 139, 140, 141, 142, 143, 144,
2182 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2183 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2184 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2185 175, -1, -1, -1, 183, 184, 185, 186, 183, 184,
2186 185, 1, 187, 188, 189, -1, 6, 7, 8, -1,
2187 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2188 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2189 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2190 -1, -1, 42, 43, -1, 45, 46, 47, 48, -1,
2191 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2192 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
2193 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2194 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2195 -1, -1, -1, 93, 94, 95, 96, 97, 98, -1,
2196 -1, -1, -1, -1, -1, -1, -1, 107, 108, 109,
2197 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2198 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2199 130, 131, 132, 133, 134, 135, 136, 137, -1, 139,
2200 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2201 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2202 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2203 170, 171, 172, 173, 174, 175, -1, -1, -1, -1,
2204 -1, -1, -1, 183, 184, 185, 186, 187, 188, 189,
2205 1, -1, -1, -1, -1, 6, 7, 8, -1, 10,
2206 11, 12, 13, 14, 15, 16, 17, 18, 19, -1,
2207 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2208 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2209 -1, 42, 43, -1, -1, 46, 47, 48, -1, -1,
2210 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2211 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
2212 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2213 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2214 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2215 -1, -1, -1, -1, -1, -1, 107, 108, 109, 110,
2216 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2217 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2218 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2219 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2220 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2221 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2222 171, 172, 173, 174, 175, -1, -1, -1, -1, -1,
2223 -1, -1, 183, 184, 185, 186, 187, 188, 189, 1,
2224 -1, -1, -1, -1, 6, 7, 8, -1, -1, 11,
2225 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2226 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2227 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2228 42, 43, -1, -1, 46, 47, 48, -1, -1, -1,
2229 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2230 -1, -1, -1, -1, -1, 67, 68, 69, 70, -1,
2231 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2232 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2233 -1, 93, 94, 95, 96, 97, 98, -1, -1, -1,
2234 -1, -1, -1, -1, -1, 107, 108, 109, 110, 111,
2235 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2236 -1, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2237 132, 133, 134, 135, 136, 137, -1, 139, 140, 141,
2238 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2239 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2240 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2241 172, 173, 174, 175, -1, -1, -1, -1, -1, -1,
2242 -1, 183, 184, 185, 186, 187, 188, 189, 1, -1,
2243 -1, -1, -1, 6, 7, 8, -1, -1, 11, 12,
2244 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2245 -1, 24, 25, -1, -1, -1, 29, 30, 31, 32,
2246 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2247 43, 1, -1, 46, 47, 48, 6, 7, 8, -1,
2248 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2249 -1, -1, -1, -1, 24, -1, -1, 70, -1, 29,
2250 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2251 -1, -1, 42, 43, -1, -1, 46, 47, 48, 92,
2252 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2253 -1, -1, -1, -1, 107, -1, -1, -1, 111, -1,
2254 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2255 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2256 -1, -1, 92, 93, 94, 95, 96, 97, 98, -1,
2257 -1, -1, -1, -1, -1, -1, -1, 107, -1, -1,
2258 -1, 111, -1, -1, -1, -1, -1, -1, -1, -1,
2259 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2260 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2261 183, 184, 185, 186, 187, 188, -1, -1, 1, -1,
2262 -1, -1, -1, 6, 7, 8, -1, 10, 11, 12,
2263 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2264 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2265 33, 34, -1, 183, 184, 185, 186, 187, 188, 42,
2266 43, 1, -1, 46, 47, 48, 6, 7, 8, -1,
2267 -1, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2268 20, -1, -1, -1, 24, -1, -1, 70, -1, 29,
2269 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2270 -1, -1, 42, 43, -1, -1, 46, 47, 48, 92,
2271 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2272 -1, -1, -1, -1, 107, -1, -1, -1, 111, -1,
2273 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2274 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2275 -1, -1, 92, 93, 94, 95, 96, 97, 98, -1,
2276 -1, -1, -1, -1, -1, -1, -1, 107, -1, -1,
2277 -1, 111, -1, -1, -1, -1, -1, -1, -1, -1,
2278 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2279 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2280 183, 184, 185, 186, 187, 188, -1, -1, 1, -1,
2281 -1, -1, -1, 6, 7, 8, -1, 10, 11, 12,
2282 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2283 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2284 33, 34, -1, 183, 184, 185, 186, 187, 188, 42,
2285 43, 1, -1, 46, 47, 48, 6, 7, 8, -1,
2286 -1, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2287 20, -1, -1, -1, 24, -1, -1, 70, -1, 29,
2288 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2289 -1, -1, 42, 43, -1, -1, 46, 47, 48, -1,
2290 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2291 -1, -1, -1, -1, 107, -1, -1, -1, 111, -1,
2292 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2293 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2294 -1, -1, -1, 93, 94, 95, 96, 97, 98, -1,
2295 -1, -1, -1, -1, -1, -1, -1, 107, -1, -1,
2296 -1, 111, -1, -1, -1, -1, -1, -1, -1, -1,
2297 -1, -1, -1, -1, -1, -1, -1, 24, 25, -1,
2298 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2299 183, 184, 185, 186, 187, 188, -1, -1, 1, 46,
2300 47, 48, -1, 6, 7, 8, -1, 10, 11, 12,
2301 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2302 -1, 24, -1, 70, -1, -1, 29, 30, 31, 32,
2303 33, 34, -1, 183, 184, 185, 186, 187, 188, 42,
2304 43, -1, -1, 46, 47, 48, -1, -1, -1, -1,
2305 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2306 -1, -1, -1, -1, 111, -1, -1, 70, -1, -1,
2307 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2308 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2309 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2310 -1, -1, -1, -1, 107, 6, 7, 8, 111, 10,
2311 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2312 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2313 31, 32, 33, 34, -1, -1, 183, 184, 185, 186,
2314 -1, 42, 43, -1, 45, 46, 47, 48, -1, -1,
2315 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2316 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2317 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2318 183, 184, 185, 186, 187, 188, -1, -1, -1, -1,
2319 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2320 -1, -1, -1, -1, -1, -1, 107, 108, 109, 110,
2321 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2322 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2323 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2324 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2325 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2326 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2327 171, 172, 173, 174, 175, 176, -1, -1, 179, -1,
2328 -1, 182, 183, 184, 185, 186, 187, 188, 189, 6,
2329 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2330 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2331 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2332 -1, -1, -1, -1, -1, 42, 43, -1, 45, 46,
2333 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2334 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2335 -1, -1, -1, 70, 71, -1, -1, -1, -1, -1,
2336 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2337 -1, -1, -1, -1, -1, -1, 93, 94, 95, 96,
2338 97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
2339 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2340 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
2341 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2342 137, -1, 139, 140, 141, 142, 143, 144, 145, 146,
2343 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2344 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2345 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2346 -1, -1, 179, -1, -1, 182, 183, 184, 185, 186,
2347 187, 188, 189, 6, 7, 8, -1, 10, 11, 12,
2348 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2349 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2350 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2351 43, -1, 45, 46, 47, 48, -1, -1, -1, -1,
2352 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2353 -1, -1, -1, -1, -1, -1, -1, 70, 71, -1,
2354 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2355 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2356 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2357 -1, -1, -1, -1, 107, 108, 109, 110, 111, 112,
2358 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
2359 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2360 133, 134, 135, 136, 137, -1, 139, 140, 141, 142,
2361 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2362 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2363 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2364 173, 174, 175, 176, -1, -1, 179, -1, -1, 182,
2365 183, 184, 185, 186, 187, 188, 189, 6, 7, 8,
2366 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2367 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2368 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2369 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2370 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2371 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2372 -1, 70, -1, 29, 30, 31, 32, 33, 34, -1,
2373 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2374 46, 47, 48, -1, 93, 94, 95, 96, 97, 98,
2375 -1, -1, -1, -1, -1, -1, -1, -1, 107, -1,
2376 24, -1, 111, -1, 70, 29, 30, 31, 32, 33,
2377 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2378 -1, -1, 46, 47, 48, -1, -1, 93, 94, 95,
2379 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2380 -1, 107, -1, -1, -1, 111, 70, -1, -1, -1,
2381 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2382 -1, -1, -1, -1, -1, -1, -1, 176, -1, -1,
2383 179, -1, -1, 182, 183, 184, 185, 186, 187, 188,
2384 -1, -1, -1, -1, -1, -1, -1, 111, -1, -1,
2385 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2386 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2387 176, -1, -1, 179, -1, -1, 182, 183, 184, 185,
2388 186, 187, 188, 6, 7, 8, -1, 10, 11, 12,
2389 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2390 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2391 33, 34, -1, -1, -1, -1, -1, -1, -1, 183,
2392 184, 185, 186, 46, 47, 48, 6, 7, 8, -1,
2393 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2394 20, -1, -1, -1, 24, -1, -1, 70, -1, 29,
2395 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2396 -1, -1, -1, -1, -1, -1, 46, 47, 48, -1,
2397 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2398 -1, -1, -1, -1, 107, -1, 24, -1, 111, -1,
2399 70, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2400 -1, -1, -1, -1, -1, -1, -1, -1, 46, 47,
2401 48, -1, -1, 93, 94, 95, 96, 97, 98, -1,
2402 -1, -1, -1, -1, -1, -1, -1, 107, -1, -1,
2403 -1, 111, 70, -1, -1, -1, -1, -1, -1, -1,
2404 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2405 -1, -1, -1, 176, -1, -1, 179, -1, -1, 182,
2406 183, 184, 185, 186, 187, 188, -1, -1, -1, -1,
2407 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1,
2408 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2409 -1, -1, -1, -1, -1, -1, 176, -1, -1, 179,
2410 -1, -1, 182, 183, 184, 185, 186, 187, 188, 6,
2411 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2412 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2413 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2414 -1, -1, -1, -1, -1, 183, 184, 185, 186, 46,
2415 47, 48, 6, 7, 8, -1, 10, 11, 12, 13,
2416 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2417 24, -1, -1, 70, -1, 29, 30, 31, 32, 33,
2418 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2419 -1, -1, 46, 47, 48, -1, 93, 94, 95, 96,
2420 97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
2421 107, -1, 24, -1, 111, -1, 70, 29, 30, 31,
2422 32, 33, 34, 24, -1, -1, -1, -1, 29, 30,
2423 31, 32, 33, 34, 46, 47, 48, -1, -1, 93,
2424 94, 95, 96, 97, 98, 46, 47, 48, -1, -1,
2425 -1, -1, -1, 107, -1, -1, -1, 111, 70, -1,
2426 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2427 -1, -1, -1, -1, -1, -1, -1, -1, -1, 176,
2428 -1, -1, 179, -1, -1, 182, 183, 184, 185, 186,
2429 187, 188, -1, -1, -1, -1, -1, -1, -1, 111,
2430 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2431 111, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2432 -1, -1, 176, -1, -1, 179, -1, -1, 182, 183,
2433 184, 185, 186, 187, 188, 6, 7, 8, -1, 10,
2434 11, 12, 13, 14, 15, 16, 17, 18, 19, -1,
2435 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2436 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2437 -1, 183, 184, 185, 186, 46, 47, 48, -1, -1,
2438 -1, -1, 183, 184, 185, 186, -1, -1, -1, -1,
2439 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2440 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2441 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2442 -1, -1, 93, 94, 95, 96, 97, 98, 18, -1,
2443 -1, -1, -1, -1, -1, -1, 107, -1, -1, -1,
2444 111, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2445 -1, -1, -1, -1, -1, 45, -1, -1, -1, -1,
2446 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2447 33, 34, -1, -1, -1, -1, -1, 67, 68, 69,
2448 -1, 71, -1, 46, 47, 48, -1, -1, -1, -1,
2449 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2450 -1, -1, -1, -1, -1, 176, -1, 70, 179, -1,
2451 -1, 182, 183, 184, 185, 186, 187, 188, 108, 109,
2452 110, -1, 112, 113, 114, 115, 116, 117, 118, 119,
2453 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2454 130, 131, 132, 133, 134, 135, 136, 137, 111, 139,
2455 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2456 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2457 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2458 170, 171, 172, 173, 174, 175, 18, -1, -1, -1,
2459 -1, -1, -1, -1, -1, 185, -1, -1, -1, 189,
2460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2461 -1, -1, -1, 45, -1, -1, -1, -1, -1, -1,
2462 183, 184, 185, 186, -1, -1, -1, -1, -1, -1,
2463 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2464 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2465 -1, -1, -1, -1, -1, -1, 88, -1, -1, -1,
2466 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2467 -1, -1, -1, -1, -1, -1, 108, 109, 110, -1,
2468 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2469 -1, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2470 132, 133, 134, 135, 136, 137, -1, 139, 140, 141,
2471 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2472 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2473 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2474 172, 173, 174, 175, 19, -1, -1, -1, -1, 24,
2475 -1, -1, -1, 185, -1, -1, -1, 189, -1, -1,
2476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2477 45, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2478 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2479 -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
2480 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2481 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2482 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2483 -1, -1, -1, 108, 109, 110, -1, 112, 113, 114,
2484 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
2485 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2486 135, 136, 137, -1, 139, 140, 141, 142, 143, 144,
2487 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2488 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2489 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2490 175, 19, -1, -1, -1, -1, -1, -1, -1, -1,
2491 185, -1, -1, -1, 189, -1, -1, -1, -1, -1,
2492 -1, -1, -1, -1, -1, -1, -1, 45, -1, -1,
2493 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2494 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2495 -1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2496 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2497 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2498 20, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2499 108, 109, 110, -1, 112, 113, 114, 115, 116, 117,
2500 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2501 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2502 -1, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2503 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2504 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2505 168, 169, 170, 171, 172, 173, 174, 175, -1, -1,
2506 -1, -1, -1, -1, -1, -1, -1, 185, 108, 109,
2507 110, 189, 112, 113, 114, 115, 116, 117, 118, 119,
2508 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2509 130, 131, 132, 133, 134, 135, 136, 137, -1, 139,
2510 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2511 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2512 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2513 170, 171, 172, 173, 174, 175, 22, -1, -1, -1,
2514 -1, -1, -1, -1, -1, 185, -1, -1, -1, 189,
2515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2516 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2517 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2518 -1, 67, 68, 69, -1, -1, -1, -1, -1, -1,
2519 -1, -1, -1, -1, -1, -1, -1, -1, -1, 85,
2520 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2521 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2522 -1, -1, 108, 109, 110, -1, 112, 113, 114, 115,
2523 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2524 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2525 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2526 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2527 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2528 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2529 24, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2530 34, -1, -1, 189, -1, -1, -1, -1, -1, -1,
2531 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2532 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2533 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2534 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2535 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2536 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2537 -1, -1, -1, -1, 108, 109, 110, -1, 112, 113,
2538 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
2539 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2540 134, 135, 136, 137, -1, 139, 140, 141, 142, 143,
2541 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2542 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2543 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2544 174, 175, 42, 43, -1, -1, -1, -1, -1, 183,
2545 184, 185, -1, 187, 188, 189, -1, -1, -1, -1,
2546 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2547 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2548 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2549 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2550 -1, -1, -1, -1, -1, -1, -1, -1, 108, 109,
2551 110, -1, 112, 113, 114, 115, 116, 117, 118, 119,
2552 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2553 130, 131, 132, 133, 134, 135, 136, 137, -1, 139,
2554 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2555 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2556 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2557 170, 171, 172, 173, 174, 175, 45, -1, -1, -1,
2558 -1, -1, -1, -1, -1, 185, -1, -1, -1, 189,
2559 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
2560 69, -1, 71, -1, -1, -1, -1, -1, -1, -1,
2561 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2562 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2563 -1, -1, -1, -1, -1, -1, -1, -1, -1, 108,
2564 109, 110, -1, 112, 113, 114, 115, 116, 117, 118,
2565 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
2566 129, 130, 131, 132, 133, 134, 135, 136, 137, -1,
2567 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2568 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2569 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2570 169, 170, 171, 172, 173, 174, 175, 45, -1, -1,
2571 -1, -1, -1, -1, -1, -1, 185, -1, -1, -1,
2572 189, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2573 -1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2574 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2575 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2576 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2577 108, 109, 110, -1, 112, 113, 114, 115, 116, 117,
2578 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2579 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2580 -1, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2581 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2582 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2583 168, 169, 170, 171, 172, 173, 174, 175, 67, 68,
2584 69, -1, -1, -1, -1, -1, -1, 185, -1, -1,
2585 -1, 189, -1, -1, -1, -1, -1, -1, -1, -1,
2586 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2587 -1, -1, -1, -1, -1, -1, -1, -1, -1, 108,
2588 109, 110, -1, 112, 113, 114, 115, 116, 117, 118,
2589 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
2590 129, 130, 131, 132, 133, 134, 135, 136, 137, -1,
2591 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2592 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2593 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2594 169, 170, 171, 172, 173, 174, 175, 89, 90, 91,
2595 -1, -1, -1, -1, -1, -1, 185, -1, -1, -1,
2596 189, -1, -1, -1, -1, -1, 108, 109, 110, -1,
2597 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2598 -1, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2599 132, 133, 134, 135, 136, 137, -1, 139, 140, 141,
2600 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2601 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2602 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2603 172, 173, 174, 175, -1, -1, -1, -1, -1, -1,
2604 -1, -1, -1, 185, 108, 109, 110, 189, 112, 113,
2605 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
2606 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2607 134, 135, 136, 137, -1, 139, 140, 141, 142, 143,
2608 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2609 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2610 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2611 174, 175, -1, -1, -1, -1, -1, -1, -1, -1,
2612 -1, 185, -1, -1, -1, 189
2614 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2615 #line 3 "/usr/share/misc/bison.simple"
2617 /* Skeleton output parser for bison,
2618 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2620 This program is free software; you can redistribute it and/or modify
2621 it under the terms of the GNU General Public License as published by
2622 the Free Software Foundation; either version 2, or (at your option)
2625 This program is distributed in the hope that it will be useful,
2626 but WITHOUT ANY WARRANTY; without even the implied warranty of
2627 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2628 GNU General Public License for more details.
2630 You should have received a copy of the GNU General Public License
2631 along with this program; if not, write to the Free Software
2632 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
2634 /* As a special exception, when this file is copied by Bison into a
2635 Bison output file, you may use that output file without restriction.
2636 This special exception was added by the Free Software Foundation
2637 in version 1.24 of Bison. */
2641 #define alloca __builtin_alloca
2642 #else /* not GNU C. */
2643 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
2645 #else /* not sparc */
2646 #if defined (MSDOS) && !defined (__TURBOC__)
2648 #else /* not MSDOS, or __TURBOC__ */
2652 #else /* not MSDOS, __TURBOC__, or _AIX */
2656 void *alloca (unsigned int);
2658 #else /* not __cplusplus */
2660 #endif /* not __cplusplus */
2662 #endif /* not _AIX */
2663 #endif /* not MSDOS, or __TURBOC__ */
2664 #endif /* not sparc. */
2665 #endif /* not GNU C. */
2666 #endif /* alloca not defined. */
2668 /* This is the parser code that is written into each bison parser
2669 when the %semantic_parser declaration is not specified in the grammar.
2670 It was written by Richard Stallman by simplifying the hairy parser
2671 used when %semantic_parser is specified. */
2673 /* Note: there must be only one dollar sign in this file.
2674 It is replaced by the list of actions, each action
2675 as one case of the switch. */
2677 #define yyerrok (yyerrstatus = 0)
2678 #define yyclearin (yychar = YYEMPTY)
2681 #define YYACCEPT return(0)
2682 #define YYABORT return(1)
2683 #define YYERROR goto yyerrlab1
2684 /* Like YYERROR except do call yyerror.
2685 This remains here temporarily to ease the
2686 transition to the new meaning of YYERROR, for GCC.
2687 Once GCC version 2 has supplanted version 1, this can go. */
2688 #define YYFAIL goto yyerrlab
2689 #define YYRECOVERING() (!!yyerrstatus)
2690 #define YYBACKUP(token, value) \
2692 if (yychar == YYEMPTY && yylen == 1) \
2693 { yychar = (token), yylval = (value); \
2694 yychar1 = YYTRANSLATE (yychar); \
2699 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2703 #define YYERRCODE 256
2706 #define YYLEX yylex()
2712 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2714 #define YYLEX yylex(&yylval, &yylloc)
2716 #else /* not YYLSP_NEEDED */
2718 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2720 #define YYLEX yylex(&yylval)
2722 #endif /* not YYLSP_NEEDED */
2725 /* If nonreentrant, generate the variables here */
2729 int yychar; /* the lookahead symbol */
2730 YYSTYPE yylval; /* the semantic value of the */
2731 /* lookahead symbol */
2734 YYLTYPE yylloc; /* location data for the lookahead */
2738 int yynerrs; /* number of parse errors so far */
2739 #endif /* not YYPURE */
2742 int yydebug; /* nonzero means print parse trace */
2743 /* Since this is uninitialized, it does not stop multiple parsers
2747 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2750 #define YYINITDEPTH 200
2753 /* YYMAXDEPTH is the maximum size the stacks can grow to
2754 (effective only if the built-in stack extension method is used). */
2761 #define YYMAXDEPTH 10000
2764 /* Prevent warning if -Wstrict-prototypes. */
2769 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2770 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2771 #else /* not GNU C or C++ */
2774 /* This is the most reliable way to avoid incompatibilities
2775 in available built-in functions on various systems. */
2777 __yy_memcpy (to, from, count)
2782 register char *f = from;
2783 register char *t = to;
2784 register int i = count;
2790 #else /* __cplusplus */
2792 /* This is the most reliable way to avoid incompatibilities
2793 in available built-in functions on various systems. */
2795 __yy_memcpy (char *to, char *from, int count)
2797 register char *f = from;
2798 register char *t = to;
2799 register int i = count;
2808 #line 196 "/usr/share/misc/bison.simple"
2810 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2811 into yyparse. The argument should have type void *.
2812 It should actually point to an object.
2813 Grammar actions can access the variable by casting it
2814 to the proper pointer type. */
2816 #ifdef YYPARSE_PARAM
2818 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2819 #define YYPARSE_PARAM_DECL
2820 #else /* not __cplusplus */
2821 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2822 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2823 #endif /* not __cplusplus */
2824 #else /* not YYPARSE_PARAM */
2825 #define YYPARSE_PARAM_ARG
2826 #define YYPARSE_PARAM_DECL
2827 #endif /* not YYPARSE_PARAM */
2830 yyparse(YYPARSE_PARAM_ARG)
2833 register int yystate;
2835 register short *yyssp;
2836 register YYSTYPE *yyvsp;
2837 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2838 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2840 short yyssa[YYINITDEPTH]; /* the state stack */
2841 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2843 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2844 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2847 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2848 YYLTYPE *yyls = yylsa;
2851 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2853 #define YYPOPSTACK (yyvsp--, yyssp--)
2856 int yystacksize = YYINITDEPTH;
2867 YYSTYPE yyval; /* the variable used to return */
2868 /* semantic values from the action */
2875 fprintf(stderr, "Starting parse\n");
2881 yychar = YYEMPTY; /* Cause a token to be read. */
2883 /* Initialize stack pointers.
2884 Waste one element of value and location stack
2885 so that they stay on the same level as the state stack.
2886 The wasted elements are never initialized. */
2894 /* Push a new state, which is found in yystate . */
2895 /* In all cases, when you get here, the value and location stacks
2896 have just been pushed. so pushing a state here evens the stacks. */
2901 if (yyssp >= yyss + yystacksize - 1)
2903 /* Give user a chance to reallocate the stack */
2904 /* Use copies of these so that the &'s don't force the real ones into memory. */
2905 YYSTYPE *yyvs1 = yyvs;
2906 short *yyss1 = yyss;
2908 YYLTYPE *yyls1 = yyls;
2911 /* Get the current used size of the three stacks, in elements. */
2912 int size = yyssp - yyss + 1;
2915 /* Each stack pointer address is followed by the size of
2916 the data in use in that stack, in bytes. */
2918 /* This used to be a conditional around just the two extra args,
2919 but that might be undefined if yyoverflow is a macro. */
2920 yyoverflow("parser stack overflow",
2921 &yyss1, size * sizeof (*yyssp),
2922 &yyvs1, size * sizeof (*yyvsp),
2923 &yyls1, size * sizeof (*yylsp),
2926 yyoverflow("parser stack overflow",
2927 &yyss1, size * sizeof (*yyssp),
2928 &yyvs1, size * sizeof (*yyvsp),
2932 yyss = yyss1; yyvs = yyvs1;
2936 #else /* no yyoverflow */
2937 /* Extend the stack our own way. */
2938 if (yystacksize >= YYMAXDEPTH)
2940 yyerror("parser stack overflow");
2944 if (yystacksize > YYMAXDEPTH)
2945 yystacksize = YYMAXDEPTH;
2946 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
2947 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
2948 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
2949 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
2951 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
2952 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
2954 #endif /* no yyoverflow */
2956 yyssp = yyss + size - 1;
2957 yyvsp = yyvs + size - 1;
2959 yylsp = yyls + size - 1;
2964 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2967 if (yyssp >= yyss + yystacksize - 1)
2973 fprintf(stderr, "Entering state %d\n", yystate);
2979 /* Do appropriate processing given the current state. */
2980 /* Read a lookahead token if we need one and don't already have one. */
2983 /* First try to decide what to do without reference to lookahead token. */
2985 yyn = yypact[yystate];
2989 /* Not known => get a lookahead token if don't already have one. */
2991 /* yychar is either YYEMPTY or YYEOF
2992 or a valid token in external form. */
2994 if (yychar == YYEMPTY)
2998 fprintf(stderr, "Reading a token: ");
3003 /* Convert token to internal form (in yychar1) for indexing tables with */
3005 if (yychar <= 0) /* This means end of input. */
3008 yychar = YYEOF; /* Don't call YYLEX any more */
3012 fprintf(stderr, "Now at end of input.\n");
3017 yychar1 = YYTRANSLATE(yychar);
3022 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3023 /* Give the individual parser a way to print the precise meaning
3024 of a token, for further debugging info. */
3026 YYPRINT (stderr, yychar, yylval);
3028 fprintf (stderr, ")\n");
3034 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3039 /* yyn is what to do for this token type in this state.
3040 Negative => reduce, -yyn is rule number.
3041 Positive => shift, yyn is new state.
3042 New state is final state => don't bother to shift,
3043 just return success.
3044 0, or most negative number => error. */
3059 /* Shift the lookahead token. */
3063 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3066 /* Discard the token being shifted unless it is eof. */
3067 if (yychar != YYEOF)
3075 /* count tokens shifted since error; after three, turn off error status. */
3076 if (yyerrstatus) yyerrstatus--;
3081 /* Do the default action for the current state. */
3084 yyn = yydefact[yystate];
3088 /* Do a reduction. yyn is the number of a rule to reduce with. */
3092 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3099 fprintf (stderr, "Reducing via rule %d (line %d), ",
3102 /* Print the symbols being reduced, and their result. */
3103 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3104 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3105 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3113 #line 277 "cgrammar.y"
3114 { uentry_clearDecl (); ;
3117 #line 278 "cgrammar.y"
3118 { uentry_clearDecl (); ;
3121 #line 279 "cgrammar.y"
3122 { uentry_clearDecl (); ;
3125 #line 280 "cgrammar.y"
3126 { uentry_clearDecl (); ;
3129 #line 281 "cgrammar.y"
3130 { uentry_clearDecl (); ;
3133 #line 282 "cgrammar.y"
3134 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3137 #line 283 "cgrammar.y"
3138 { uentry_clearDecl (); ;
3141 #line 287 "cgrammar.y"
3142 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3145 #line 289 "cgrammar.y"
3146 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3149 #line 292 "cgrammar.y"
3150 { context_enterFunctionDecl (); ;
3153 #line 293 "cgrammar.y"
3154 { declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3155 context_exitFunctionDecl (); ;
3158 #line 298 "cgrammar.y"
3160 qtype qint = qtype_create (ctype_int);
3161 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3166 #line 304 "cgrammar.y"
3167 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3170 #line 309 "cgrammar.y"
3171 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3174 #line 312 "cgrammar.y"
3175 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3178 #line 314 "cgrammar.y"
3179 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3182 #line 316 "cgrammar.y"
3183 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3186 #line 318 "cgrammar.y"
3188 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), exprNode_getLongValue (yyvsp[-2].expr)));
3192 #line 322 "cgrammar.y"
3193 { setCurrentParams (uentryList_missingParams);
3197 #line 325 "cgrammar.y"
3198 { /* need to support globals and modifies here! */
3199 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp),
3200 uentryList_makeMissingParams ());
3202 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ct);
3207 #line 333 "cgrammar.y"
3208 { setCurrentParams (yyvsp[-1].entrylist);
3212 #line 336 "cgrammar.y"
3213 { clearCurrentParams ();
3214 yyval.ntyp = idDecl_replaceCtype (yyvsp[-7].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-7].ntyp), yyvsp[-4].entrylist));
3217 // printf("Done nameDeclBase\n");
3221 #line 344 "cgrammar.y"
3222 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3225 #line 346 "cgrammar.y"
3226 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3229 #line 348 "cgrammar.y"
3230 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3233 #line 350 "cgrammar.y"
3237 if (exprNode_hasValue (yyvsp[-2].expr)
3238 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3240 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3247 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3251 #line 366 "cgrammar.y"
3252 { setCurrentParams (uentryList_missingParams);
3256 #line 369 "cgrammar.y"
3257 { /* need to support globals and modifies here! */
3258 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3259 uentryList_makeMissingParams ());
3261 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3266 #line 377 "cgrammar.y"
3267 { setCurrentParams (yyvsp[-1].entrylist);
3271 #line 380 "cgrammar.y"
3272 { clearCurrentParams ();
3273 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3278 #line 387 "cgrammar.y"
3279 { setCurrentParams (yyvsp[-1].entrylist); ;
3282 #line 388 "cgrammar.y"
3283 { clearCurrentParams (); ;
3286 #line 389 "cgrammar.y"
3287 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3290 #line 392 "cgrammar.y"
3291 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3294 #line 393 "cgrammar.y"
3295 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3298 #line 394 "cgrammar.y"
3299 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3302 #line 395 "cgrammar.y"
3303 { exprChecks_checkEmptyMacroBody (); ;
3306 #line 398 "cgrammar.y"
3307 { declareFunction (yyvsp[0].ntyp); ;
3310 #line 401 "cgrammar.y"
3311 { setProcessingGlobMods (); ;
3314 #line 402 "cgrammar.y"
3315 { clearProcessingGlobMods (); ;
3318 #line 408 "cgrammar.y"
3319 { setProcessingGlobMods (); ;
3322 #line 409 "cgrammar.y"
3323 { clearProcessingGlobMods (); ;
3326 #line 417 "cgrammar.y"
3328 DPRINTF ( ("doing optGlobEnsuresConstraintsAux\n") );
3329 context_setProtectVars (); enterParamsTemp ();
3330 sRef_setGlobalScopeSafe ();
3335 #line 423 "cgrammar.y"
3337 setEnsuresConstraints (yyvsp[-1].conL);
3339 sRef_clearGlobalScopeSafe ();
3340 context_releaseVars ();
3341 DPRINTF (("done optGlobBufConstraintsAux\n"));;
3344 #line 433 "cgrammar.y"
3346 DPRINTF ( ("doing optGlobBufConstraintsAux\n") );
3347 context_setProtectVars (); enterParamsTemp ();
3348 sRef_setGlobalScopeSafe ();
3353 #line 439 "cgrammar.y"
3355 setFunctionConstraints (yyvsp[-1].conL);
3357 sRef_clearGlobalScopeSafe ();
3358 context_releaseVars ();
3359 DPRINTF (("done optGlobBufConstraintsAux\n"));;
3362 #line 448 "cgrammar.y"
3363 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-1].con); ;
3366 #line 449 "cgrammar.y"
3367 {constraintList c; c = constraintList_new(); c = constraintList_add (c, yyvsp[0].con); yyval.conL = c;
3370 #line 452 "cgrammar.y"
3372 yyval.con = makeConstraintParse3 (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE);
3373 DPRINTF(("Done BufConstraint1\n")); ;
3376 #line 467 "cgrammar.y"
3377 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3380 #line 468 "cgrammar.y"
3382 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3383 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3386 #line 473 "cgrammar.y"
3387 { yyval.conE = constraintExpr_makeTermsRef(yyvsp[0].sr);;
3390 #line 474 "cgrammar.y"
3392 t = cstring_toCharsSafe (exprNode_unparse(yyvsp[0].expr));
3394 yyval.conE = constraintExpr_makeIntLiteral (c);
3398 #line 482 "cgrammar.y"
3401 checkbufferConstraintClausesId (yyvsp[0].entry);;
3404 #line 485 "cgrammar.y"
3405 { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
3408 #line 487 "cgrammar.y"
3409 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3412 #line 488 "cgrammar.y"
3415 t = cstring_toCharsSafe (exprNode_unparse(yyvsp[-1].expr));
3417 yyval.sr = sRef_makeArrayFetchKnown(yyvsp[-3].sr, c); ;
3420 #line 493 "cgrammar.y"
3421 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3424 #line 494 "cgrammar.y"
3425 { yyval.sr = yyvsp[-1].sr; ;
3428 #line 495 "cgrammar.y"
3429 { cstring_markOwned (yyvsp[0].cname);
3430 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3433 #line 497 "cgrammar.y"
3434 { cstring_markOwned (yyvsp[0].cname);
3435 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3438 #line 523 "cgrammar.y"
3439 { setProcessingGlobMods (); ;
3442 #line 524 "cgrammar.y"
3443 { clearProcessingGlobMods (); ;
3446 #line 534 "cgrammar.y"
3447 { setProcessingGlobMods (); ;
3450 #line 535 "cgrammar.y"
3451 { clearProcessingGlobMods (); ;
3454 #line 550 "cgrammar.y"
3458 #line 551 "cgrammar.y"
3462 #line 554 "cgrammar.y"
3463 { globListAdd (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3466 #line 557 "cgrammar.y"
3467 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3470 #line 558 "cgrammar.y"
3471 { yyval.sr = globListUnrecognized (yyvsp[0].cname); ;
3474 #line 561 "cgrammar.y"
3475 { yyval.typequal = qual_createUndef (); ;
3478 #line 562 "cgrammar.y"
3479 { yyval.typequal = qual_createKilled (); ;
3482 #line 563 "cgrammar.y"
3483 { yyval.typequal = qual_createOut (); ;
3486 #line 564 "cgrammar.y"
3487 { yyval.typequal = qual_createIn (); ;
3490 #line 565 "cgrammar.y"
3491 { yyval.typequal = qual_createPartial (); ;
3494 #line 568 "cgrammar.y"
3495 { yyval.tquallist = qualList_undefined; ;
3498 #line 569 "cgrammar.y"
3499 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3502 #line 572 "cgrammar.y"
3503 { setProcessingGlobalsList (); ;
3506 #line 574 "cgrammar.y"
3507 { unsetProcessingGlobals (); ;
3510 #line 575 "cgrammar.y"
3511 { setProcessingGlobalsList (); ;
3514 #line 577 "cgrammar.y"
3515 { unsetProcessingGlobals (); ;
3518 #line 579 "cgrammar.y"
3519 { setFunctionNoGlobals ();
3520 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3524 #line 586 "cgrammar.y"
3525 { setProcessingGlobalsList (); ;
3528 #line 588 "cgrammar.y"
3529 { unsetProcessingGlobals (); ;
3532 #line 589 "cgrammar.y"
3533 { setProcessingGlobalsList (); ;
3536 #line 591 "cgrammar.y"
3537 { unsetProcessingGlobals (); ;
3540 #line 593 "cgrammar.y"
3541 { setFunctionNoGlobals ();
3542 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3546 #line 605 "cgrammar.y"
3548 context_setProtectVars (); enterParamsTemp ();
3549 sRef_setGlobalScopeSafe ();
3553 #line 610 "cgrammar.y"
3555 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3556 sRef_clearGlobalScopeSafe ();
3557 context_releaseVars ();
3561 #line 618 "cgrammar.y"
3563 context_setProtectVars (); enterParamsTemp ();
3564 sRef_setGlobalScopeSafe ();
3568 #line 623 "cgrammar.y"
3570 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3571 sRef_clearGlobalScopeSafe ();
3572 context_releaseVars ();
3576 #line 647 "cgrammar.y"
3577 { yyval.sck = SP_ISONLY; ;
3580 #line 648 "cgrammar.y"
3581 { yyval.sck = SP_ISOBSERVER; ;
3584 #line 649 "cgrammar.y"
3585 { yyval.sck = SP_ISEXPOSED; ;
3588 #line 650 "cgrammar.y"
3589 { yyval.sck = SP_ISDEPENDENT; ;
3592 #line 651 "cgrammar.y"
3593 { yyval.sck = SP_ISOWNED; ;
3596 #line 652 "cgrammar.y"
3597 { yyval.sck = SP_ISSHARED; ;
3600 #line 653 "cgrammar.y"
3601 { yyval.sck = SP_ISNULL; ;
3604 #line 654 "cgrammar.y"
3605 { yyval.sck = SP_ISNOTNULL; ;
3608 #line 658 "cgrammar.y"
3610 context_setProtectVars ();
3612 sRef_setGlobalScopeSafe ();
3616 #line 664 "cgrammar.y"
3618 setFunctionSpecialClause (yyvsp[-6].tok, yyvsp[-3].srset, yyvsp[-1].tok);
3620 sRef_clearGlobalScopeSafe ();
3621 context_releaseVars ();
3625 #line 671 "cgrammar.y"
3627 context_setProtectVars ();
3629 sRef_setGlobalScopeSafe ();
3633 #line 677 "cgrammar.y"
3635 setFunctionStateSpecialClause (yyvsp[-7].tok, yyvsp[-5].sck, yyvsp[-3].srset, yyvsp[-1].tok);
3637 sRef_clearGlobalScopeSafe ();
3638 context_releaseVars ();
3642 #line 686 "cgrammar.y"
3644 qtype qint = qtype_create (ctype_int);
3645 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3650 #line 692 "cgrammar.y"
3651 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3654 #line 695 "cgrammar.y"
3655 { checkDoneParams (); context_enterInnerContext (); ;
3658 #line 697 "cgrammar.y"
3660 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3661 context_exitInner (yyvsp[0].expr);
3665 #line 702 "cgrammar.y"
3666 { doneParams (); context_enterInnerContext (); ;
3669 #line 704 "cgrammar.y"
3671 context_exitInner (yyvsp[0].expr);
3672 exprNode_checkFunctionBody (yyvsp[0].expr);
3673 yyval.expr = yyvsp[0].expr; /* old style */
3677 #line 712 "cgrammar.y"
3679 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3680 /* exprNode_checkFunction (context_getHeader (), $2); */
3683 context_exitFunction ();
3687 #line 721 "cgrammar.y"
3688 { yyval.srset = yyvsp[-2].srset; ;
3691 #line 722 "cgrammar.y"
3692 { yyval.srset = sRefSet_new (); ;
3695 #line 725 "cgrammar.y"
3696 { yyval.srset = yyvsp[-1].srset; ;
3699 #line 726 "cgrammar.y"
3700 { yyval.srset = sRefSet_new (); ;
3703 #line 729 "cgrammar.y"
3704 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3707 #line 730 "cgrammar.y"
3708 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3711 #line 731 "cgrammar.y"
3712 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3715 #line 732 "cgrammar.y"
3716 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3719 #line 733 "cgrammar.y"
3720 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3723 #line 734 "cgrammar.y"
3724 { yyval.sr = yyvsp[-1].sr; ;
3727 #line 735 "cgrammar.y"
3728 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3731 #line 736 "cgrammar.y"
3732 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3735 #line 740 "cgrammar.y"
3736 { yyval.sr = yyvsp[0].sr; ;
3739 #line 741 "cgrammar.y"
3740 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3743 #line 745 "cgrammar.y"
3744 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3747 #line 746 "cgrammar.y"
3748 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3751 #line 750 "cgrammar.y"
3752 { yyval.sr = checkSpecClausesId (yyvsp[0].entry); ;
3755 #line 752 "cgrammar.y"
3756 { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
3759 #line 753 "cgrammar.y"
3760 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3763 #line 754 "cgrammar.y"
3764 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3767 #line 755 "cgrammar.y"
3768 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3771 #line 756 "cgrammar.y"
3772 { yyval.sr = yyvsp[-1].sr; ;
3775 #line 757 "cgrammar.y"
3776 { cstring_markOwned (yyvsp[0].cname);
3777 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3780 #line 759 "cgrammar.y"
3781 { cstring_markOwned (yyvsp[0].cname);
3782 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3785 #line 764 "cgrammar.y"
3786 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3787 else { yyval.srset = sRefSet_undefined; }
3791 #line 768 "cgrammar.y"
3792 { if (sRef_isValid (yyvsp[0].sr))
3794 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3798 yyval.srset = yyvsp[-2].srset;
3803 #line 779 "cgrammar.y"
3804 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3807 #line 780 "cgrammar.y"
3808 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3811 #line 781 "cgrammar.y"
3812 { yyval.expr = yyvsp[0].expr; ;
3815 #line 782 "cgrammar.y"
3816 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3819 #line 783 "cgrammar.y"
3820 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3823 #line 784 "cgrammar.y"
3824 { yyval.expr = exprNode_makeError (); ;
3827 #line 788 "cgrammar.y"
3828 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3831 #line 789 "cgrammar.y"
3832 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3835 #line 790 "cgrammar.y"
3836 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
3839 #line 791 "cgrammar.y"
3840 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3843 #line 792 "cgrammar.y"
3844 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3847 #line 793 "cgrammar.y"
3848 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3851 #line 794 "cgrammar.y"
3852 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3855 #line 795 "cgrammar.y"
3856 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3859 #line 798 "cgrammar.y"
3860 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
3863 #line 799 "cgrammar.y"
3864 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
3867 #line 803 "cgrammar.y"
3868 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3871 #line 804 "cgrammar.y"
3872 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3875 #line 805 "cgrammar.y"
3876 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3879 #line 806 "cgrammar.y"
3880 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3883 #line 807 "cgrammar.y"
3884 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3887 #line 808 "cgrammar.y"
3888 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3891 #line 809 "cgrammar.y"
3892 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3895 #line 810 "cgrammar.y"
3896 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3899 #line 811 "cgrammar.y"
3900 { yyval.expr = yyvsp[0].expr; ;
3903 #line 812 "cgrammar.y"
3904 { yyval.expr = yyvsp[0].expr; ;
3907 #line 815 "cgrammar.y"
3908 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3911 #line 816 "cgrammar.y"
3912 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3915 #line 820 "cgrammar.y"
3916 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3919 #line 823 "cgrammar.y"
3920 { context_setProtectVars (); ;
3923 #line 824 "cgrammar.y"
3924 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3927 #line 827 "cgrammar.y"
3928 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3931 #line 828 "cgrammar.y"
3932 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3935 #line 829 "cgrammar.y"
3936 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3939 #line 830 "cgrammar.y"
3940 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3943 #line 835 "cgrammar.y"
3944 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3947 #line 839 "cgrammar.y"
3948 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3951 #line 840 "cgrammar.y"
3952 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3955 #line 841 "cgrammar.y"
3956 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3959 #line 845 "cgrammar.y"
3960 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3963 #line 846 "cgrammar.y"
3964 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3967 #line 850 "cgrammar.y"
3968 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3971 #line 851 "cgrammar.y"
3972 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3975 #line 855 "cgrammar.y"
3976 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3979 #line 856 "cgrammar.y"
3980 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3983 #line 857 "cgrammar.y"
3984 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3987 #line 858 "cgrammar.y"
3988 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3991 #line 862 "cgrammar.y"
3992 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3995 #line 863 "cgrammar.y"
3996 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3999 #line 867 "cgrammar.y"
4000 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4003 #line 871 "cgrammar.y"
4004 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4007 #line 876 "cgrammar.y"
4008 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4011 #line 881 "cgrammar.y"
4012 { exprNode_produceGuards (yyvsp[-1].expr);
4013 context_enterAndClause (yyvsp[-1].expr);
4017 #line 885 "cgrammar.y"
4019 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4020 context_exitAndClause (yyval.expr, yyvsp[0].expr);
4024 #line 893 "cgrammar.y"
4026 exprNode_produceGuards (yyvsp[-1].expr);
4027 context_enterOrClause (yyvsp[-1].expr);
4031 #line 898 "cgrammar.y"
4033 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4034 context_exitOrClause (yyval.expr, yyvsp[0].expr);
4038 #line 905 "cgrammar.y"
4039 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4042 #line 906 "cgrammar.y"
4043 { context_enterFalseClause (yyvsp[-4].expr); ;
4046 #line 907 "cgrammar.y"
4047 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
4050 #line 911 "cgrammar.y"
4051 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4054 #line 912 "cgrammar.y"
4055 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4058 #line 913 "cgrammar.y"
4059 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4062 #line 914 "cgrammar.y"
4063 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4066 #line 915 "cgrammar.y"
4067 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4070 #line 916 "cgrammar.y"
4071 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4074 #line 917 "cgrammar.y"
4075 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4078 #line 918 "cgrammar.y"
4079 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4082 #line 919 "cgrammar.y"
4083 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4086 #line 920 "cgrammar.y"
4087 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4090 #line 921 "cgrammar.y"
4091 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4094 #line 925 "cgrammar.y"
4095 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
4098 #line 928 "cgrammar.y"
4099 { yyval.expr = exprNode_undefined; ;
4102 #line 937 "cgrammar.y"
4103 { yyval.expr = yyvsp[0].expr; ;
4106 #line 938 "cgrammar.y"
4107 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
4110 #line 939 "cgrammar.y"
4111 { yyval.expr = exprNode_makeError (); ;
4114 #line 942 "cgrammar.y"
4115 { yyval.expr = exprNode_makeError (); ;
4118 #line 956 "cgrammar.y"
4120 setProcessingVars (yyvsp[-3].qtyp);
4121 processNamedDecl (yyvsp[-1].ntyp); ;
4124 #line 959 "cgrammar.y"
4125 { unsetProcessingVars (); yyval.expr = yyvsp[-2].expr; ;
4128 #line 961 "cgrammar.y"
4129 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp);
4133 #line 964 "cgrammar.y"
4134 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
4135 unsetProcessingVars ();
4139 #line 968 "cgrammar.y"
4140 { processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeError (); ;
4143 #line 969 "cgrammar.y"
4144 { processNamedDecl (yyvsp[-2].ntyp); ;
4147 #line 970 "cgrammar.y"
4148 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
4151 #line 974 "cgrammar.y"
4152 { setProcessingTypedef (yyvsp[0].qtyp); ;
4155 #line 975 "cgrammar.y"
4156 { unsetProcessingTypedef (); ;
4159 #line 976 "cgrammar.y"
4160 { /* in the ANSI grammar, semantics unclear */ ;
4163 #line 977 "cgrammar.y"
4164 { /* in the ANSI grammar, semantics unclear */ ;
4167 #line 980 "cgrammar.y"
4168 { g_expectingTypeName = TRUE; ;
4171 #line 983 "cgrammar.y"
4172 { g_expectingTypeName = TRUE; context_pushLoc (); ;
4175 #line 986 "cgrammar.y"
4179 #line 989 "cgrammar.y"
4183 #line 990 "cgrammar.y"
4187 #line 993 "cgrammar.y"
4188 { yyval.expr = exprNode_makeError (); ;
4191 #line 994 "cgrammar.y"
4192 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4195 #line 997 "cgrammar.y"
4196 { yyval.expr = yyvsp[0].expr; ;
4199 #line 998 "cgrammar.y"
4200 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].alist); ;
4203 #line 999 "cgrammar.y"
4204 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].alist); ;
4207 #line 1004 "cgrammar.y"
4208 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
4211 #line 1006 "cgrammar.y"
4212 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
4215 #line 1014 "cgrammar.y"
4216 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4219 #line 1015 "cgrammar.y"
4220 { yyval.typequal = qual_createInline (); ;
4223 #line 1016 "cgrammar.y"
4224 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4227 #line 1017 "cgrammar.y"
4228 { yyval.typequal = qual_createAuto (); ;
4231 #line 1018 "cgrammar.y"
4232 { yyval.typequal = qual_createRegister (); ;
4235 #line 1021 "cgrammar.y"
4236 { yyval.typequal = qual_createConst (); ;
4239 #line 1022 "cgrammar.y"
4240 { yyval.typequal = qual_createVolatile (); ;
4243 #line 1023 "cgrammar.y"
4244 { yyval.typequal = qual_createOut (); ;
4247 #line 1024 "cgrammar.y"
4248 { yyval.typequal = qual_createIn (); ;
4251 #line 1025 "cgrammar.y"
4252 { yyval.typequal = qual_createPartial (); ;
4255 #line 1026 "cgrammar.y"
4256 { yyval.typequal = qual_createSpecial (); ;
4259 #line 1027 "cgrammar.y"
4260 { yyval.typequal = qual_createOwned (); ;
4263 #line 1028 "cgrammar.y"
4264 { yyval.typequal = qual_createDependent (); ;
4267 #line 1029 "cgrammar.y"
4268 { yyval.typequal = qual_createYield (); ;
4271 #line 1030 "cgrammar.y"
4272 { yyval.typequal = qual_createTemp (); ;
4275 #line 1031 "cgrammar.y"
4276 { yyval.typequal = qual_createOnly (); ;
4279 #line 1032 "cgrammar.y"
4280 { yyval.typequal = qual_createKeep (); ;
4283 #line 1033 "cgrammar.y"
4284 { yyval.typequal = qual_createKept (); ;
4287 #line 1034 "cgrammar.y"
4288 { yyval.typequal = qual_createShared (); ;
4291 #line 1035 "cgrammar.y"
4292 { yyval.typequal = qual_createUnique (); ;
4295 #line 1036 "cgrammar.y"
4296 { yyval.typequal = qual_createExits (); ;
4299 #line 1037 "cgrammar.y"
4300 { yyval.typequal = qual_createMayExit (); ;
4303 #line 1038 "cgrammar.y"
4304 { yyval.typequal = qual_createTrueExit (); ;
4307 #line 1039 "cgrammar.y"
4308 { yyval.typequal = qual_createFalseExit (); ;
4311 #line 1040 "cgrammar.y"
4312 { yyval.typequal = qual_createNeverExit (); ;
4315 #line 1041 "cgrammar.y"
4316 { yyval.typequal = qual_createNull (); ;
4319 #line 1042 "cgrammar.y"
4320 { yyval.typequal = qual_createRelNull (); ;
4323 #line 1043 "cgrammar.y"
4324 { yyval.typequal = qual_createReturned (); ;
4327 #line 1044 "cgrammar.y"
4328 { yyval.typequal = qual_createExposed (); ;
4331 #line 1045 "cgrammar.y"
4332 { yyval.typequal = qual_createObserver (); ;
4335 #line 1046 "cgrammar.y"
4336 { yyval.typequal = qual_createChecked (); ;
4339 #line 1047 "cgrammar.y"
4340 { yyval.typequal = qual_createCheckMod (); ;
4343 #line 1048 "cgrammar.y"
4344 { yyval.typequal = qual_createUnchecked (); ;
4347 #line 1049 "cgrammar.y"
4348 { yyval.typequal = qual_createCheckedStrict (); ;
4351 #line 1050 "cgrammar.y"
4352 { yyval.typequal = qual_createTrueNull (); ;
4355 #line 1051 "cgrammar.y"
4356 { yyval.typequal = qual_createFalseNull (); ;
4359 #line 1052 "cgrammar.y"
4360 { yyval.typequal = qual_createUnused (); ;
4363 #line 1053 "cgrammar.y"
4364 { yyval.typequal = qual_createExternal (); ;
4367 #line 1054 "cgrammar.y"
4368 { yyval.typequal = qual_createSef (); ;
4371 #line 1055 "cgrammar.y"
4372 { yyval.typequal = qual_createAbstract (); ;
4375 #line 1056 "cgrammar.y"
4376 { yyval.typequal = qual_createConcrete (); ;
4379 #line 1057 "cgrammar.y"
4380 { yyval.typequal = qual_createMutable (); ;
4383 #line 1058 "cgrammar.y"
4384 { yyval.typequal = qual_createImmutable (); ;
4387 #line 1059 "cgrammar.y"
4388 { yyval.typequal = qual_createNotNull (); ;
4391 #line 1060 "cgrammar.y"
4392 { yyval.typequal = qual_createRefCounted (); ;
4395 #line 1061 "cgrammar.y"
4396 { yyval.typequal = qual_createRefs (); ;
4399 #line 1062 "cgrammar.y"
4400 { yyval.typequal = qual_createKillRef (); ;
4403 #line 1063 "cgrammar.y"
4404 { yyval.typequal = qual_createRelDef (); ;
4407 #line 1064 "cgrammar.y"
4408 { yyval.typequal = qual_createNewRef (); ;
4411 #line 1065 "cgrammar.y"
4412 { yyval.typequal = qual_createTempRef (); ;
4415 #line 1066 "cgrammar.y"
4416 { yyval.typequal = qual_createNullTerminated (); ;
4419 #line 1072 "cgrammar.y"
4420 { yyval.typequal = qual_createShort (); ;
4423 #line 1073 "cgrammar.y"
4424 { yyval.typequal = qual_createLong (); ;
4427 #line 1074 "cgrammar.y"
4428 { yyval.typequal = qual_createSigned (); ;
4431 #line 1075 "cgrammar.y"
4432 { yyval.typequal = qual_createUnsigned (); ;
4435 #line 1084 "cgrammar.y"
4436 { yyval.ctyp = ctype_unknown; ;
4439 #line 1085 "cgrammar.y"
4440 { yyval.ctyp = ctype_anyintegral; ;
4443 #line 1086 "cgrammar.y"
4444 { yyval.ctyp = ctype_unsignedintegral; ;
4447 #line 1087 "cgrammar.y"
4448 { yyval.ctyp = ctype_signedintegral; ;
4451 #line 1091 "cgrammar.y"
4452 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4455 #line 1095 "cgrammar.y"
4456 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4459 #line 1098 "cgrammar.y"
4460 { yyval.qtyp = yyvsp[0].qtyp; ;
4463 #line 1100 "cgrammar.y"
4464 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4467 #line 1105 "cgrammar.y"
4468 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4471 #line 1108 "cgrammar.y"
4472 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4475 #line 1109 "cgrammar.y"
4476 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4479 #line 1110 "cgrammar.y"
4480 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4483 #line 1113 "cgrammar.y"
4484 { yyval.qtyp = qtype_unknown (); ;
4487 #line 1114 "cgrammar.y"
4488 { yyval.qtyp = yyvsp[0].qtyp; ;
4491 #line 1117 "cgrammar.y"
4492 { sRef_setGlobalScopeSafe (); ;
4495 #line 1119 "cgrammar.y"
4496 { sRef_clearGlobalScopeSafe (); ;
4499 #line 1121 "cgrammar.y"
4500 { yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ;
4503 #line 1122 "cgrammar.y"
4504 { sRef_setGlobalScopeSafe (); ;
4507 #line 1124 "cgrammar.y"
4508 { sRef_clearGlobalScopeSafe (); ;
4511 #line 1126 "cgrammar.y"
4512 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4515 #line 1128 "cgrammar.y"
4516 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4519 #line 1130 "cgrammar.y"
4520 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4523 #line 1131 "cgrammar.y"
4524 { sRef_setGlobalScopeSafe (); ;
4527 #line 1133 "cgrammar.y"
4528 { sRef_clearGlobalScopeSafe (); ;
4531 #line 1135 "cgrammar.y"
4532 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4535 #line 1136 "cgrammar.y"
4536 { sRef_setGlobalScopeSafe (); ;
4539 #line 1138 "cgrammar.y"
4540 { sRef_clearGlobalScopeSafe (); ;
4543 #line 1140 "cgrammar.y"
4544 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4547 #line 1142 "cgrammar.y"
4548 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4551 #line 1144 "cgrammar.y"
4552 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4555 #line 1145 "cgrammar.y"
4556 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4559 #line 1146 "cgrammar.y"
4560 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4563 #line 1149 "cgrammar.y"
4564 { g_expectingTypeName = FALSE; ;
4567 #line 1153 "cgrammar.y"
4568 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4571 #line 1154 "cgrammar.y"
4572 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4575 #line 1158 "cgrammar.y"
4576 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4579 #line 1160 "cgrammar.y"
4580 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4583 #line 1164 "cgrammar.y"
4584 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4587 #line 1166 "cgrammar.y"
4588 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4591 #line 1169 "cgrammar.y"
4592 { yyval.ntyp = yyvsp[0].ntyp; ;
4595 #line 1170 "cgrammar.y"
4596 { yyval.ntyp = idDecl_undefined; ;
4599 #line 1171 "cgrammar.y"
4600 { yyval.ntyp = yyvsp[-3].ntyp; ;
4603 #line 1176 "cgrammar.y"
4604 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4607 #line 1177 "cgrammar.y"
4608 { context_pushLoc (); ;
4611 #line 1178 "cgrammar.y"
4612 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4615 #line 1179 "cgrammar.y"
4616 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4619 #line 1183 "cgrammar.y"
4620 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4623 #line 1185 "cgrammar.y"
4624 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4627 #line 1190 "cgrammar.y"
4628 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4629 usymtab_supGlobalEntry (ue);
4630 yyval.cname = yyvsp[0].cname;
4634 #line 1195 "cgrammar.y"
4635 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4636 usymtab_supGlobalEntry (ue);
4637 yyval.cname = yyvsp[-3].cname;
4641 #line 1202 "cgrammar.y"
4642 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4645 #line 1204 "cgrammar.y"
4647 qtype qt = qtype_unknown ();
4649 qtype_adjustPointers (yyvsp[-1].count, qt);
4650 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4654 #line 1211 "cgrammar.y"
4655 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4658 #line 1216 "cgrammar.y"
4659 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4662 #line 1219 "cgrammar.y"
4663 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4666 #line 1220 "cgrammar.y"
4667 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4670 #line 1223 "cgrammar.y"
4671 { /* ignored for now */; ;
4674 #line 1224 "cgrammar.y"
4678 #line 1227 "cgrammar.y"
4682 #line 1228 "cgrammar.y"
4686 #line 1231 "cgrammar.y"
4687 { yyval.count = 1; ;
4690 #line 1232 "cgrammar.y"
4691 { yyval.count = 1; ;
4694 #line 1233 "cgrammar.y"
4695 { yyval.count = 1 + yyvsp[0].count; ;
4698 #line 1234 "cgrammar.y"
4699 { yyval.count = 1 + yyvsp[0].count; ;
4702 #line 1238 "cgrammar.y"
4703 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4706 #line 1241 "cgrammar.y"
4707 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4710 #line 1242 "cgrammar.y"
4711 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4714 #line 1245 "cgrammar.y"
4715 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4718 #line 1247 "cgrammar.y"
4719 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4722 #line 1250 "cgrammar.y"
4726 #line 1250 "cgrammar.y"
4727 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4730 #line 1251 "cgrammar.y"
4734 #line 1252 "cgrammar.y"
4735 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4738 #line 1256 "cgrammar.y"
4740 if (isFlipOldStyle ())
4742 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4748 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4752 #line 1268 "cgrammar.y"
4754 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4758 llparseerror (message ("Inconsistent function parameter syntax: %q",
4759 idDecl_unparse (tparam)));
4763 yyval.oentry = makeCurrentParam (tparam);
4764 idDecl_free (tparam);
4768 #line 1284 "cgrammar.y"
4769 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4772 #line 1287 "cgrammar.y"
4773 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4776 #line 1289 "cgrammar.y"
4777 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4780 #line 1292 "cgrammar.y"
4781 { yyval.ctyp = ctype_unknown; ;
4784 #line 1297 "cgrammar.y"
4785 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4788 #line 1298 "cgrammar.y"
4789 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4792 #line 1300 "cgrammar.y"
4793 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4796 #line 1301 "cgrammar.y"
4797 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4800 #line 1303 "cgrammar.y"
4801 { yyval.ctyp = ctype_makeFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4804 #line 1305 "cgrammar.y"
4805 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4808 #line 1307 "cgrammar.y"
4809 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4812 #line 1309 "cgrammar.y"
4813 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4816 #line 1311 "cgrammar.y"
4817 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4820 #line 1326 "cgrammar.y"
4821 {yyval.expr = yyvsp[0].expr; printf ("Doing stmt lclintassertion\n"); ;
4824 #line 1330 "cgrammar.y"
4825 { printf(" QSETBUFFERSIZE id CCONSTANT HEllo World\n"); uentry_setBufferSize(yyvsp[-2].entry, yyvsp[-1].expr); yyval.expr = exprNode_createTok (yyvsp[0].tok);
4829 #line 1332 "cgrammar.y"
4830 { printf(" QSETSTRINGLENGTH id CCONSTANT HEllo World\n"); uentry_setStringLength(yyvsp[-2].entry, yyvsp[-1].expr); yyval.expr = exprNode_createTok (yyvsp[0].tok);
4834 #line 1334 "cgrammar.y"
4835 {printf(" QTESTINRANGE\n"); uentry_testInRange(yyvsp[-2].entry, yyvsp[-1].expr); yyval.expr = exprNode_createTok (yyvsp[0].tok);
4839 #line 1340 "cgrammar.y"
4840 { yyval.expr = exprNode_labelMarker (yyvsp[0].cname); ;
4843 #line 1345 "cgrammar.y"
4844 { yyval.expr = yyvsp[0].expr; ;
4847 #line 1353 "cgrammar.y"
4848 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4851 #line 1357 "cgrammar.y"
4852 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4855 #line 1359 "cgrammar.y"
4856 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4859 #line 1361 "cgrammar.y"
4860 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4863 #line 1363 "cgrammar.y"
4864 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4867 #line 1367 "cgrammar.y"
4868 { context_setProtectVars (); ;
4871 #line 1367 "cgrammar.y"
4872 { context_sizeofReleaseVars (); ;
4875 #line 1369 "cgrammar.y"
4876 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4877 context_enterForClause (yyvsp[-5].expr); ;
4880 #line 1374 "cgrammar.y"
4881 { setProcessingIterVars (yyvsp[-2].entry); ;
4884 #line 1376 "cgrammar.y"
4885 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].alist); ;
4888 #line 1377 "cgrammar.y"
4889 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4892 #line 1383 "cgrammar.y"
4893 { yyval.expr = yyvsp[0].expr; ;
4896 #line 1391 "cgrammar.y"
4897 { yyval.expr = yyvsp[-1].expr; ;
4900 #line 1392 "cgrammar.y"
4901 { yyval.expr = exprNode_makeError (); ;
4904 #line 1396 "cgrammar.y"
4905 { /* don't: context_exitTrueClause ($1, $2); */
4906 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4910 #line 1401 "cgrammar.y"
4911 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4914 #line 1404 "cgrammar.y"
4915 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4918 #line 1419 "cgrammar.y"
4919 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4922 #line 1421 "cgrammar.y"
4923 { yyval.expr = exprNode_makeError (); ;
4926 #line 1424 "cgrammar.y"
4927 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
4930 #line 1425 "cgrammar.y"
4931 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4934 #line 1431 "cgrammar.y"
4935 { context_enterCaseClause (yyvsp[0].expr); ;
4938 #line 1432 "cgrammar.y"
4939 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4942 #line 1433 "cgrammar.y"
4943 { context_enterCaseClause (yyvsp[0].expr); ;
4946 #line 1434 "cgrammar.y"
4947 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4950 #line 1437 "cgrammar.y"
4951 { context_enterCaseClause (exprNode_undefined); ;
4954 #line 1438 "cgrammar.y"
4955 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
4958 #line 1439 "cgrammar.y"
4959 { context_enterCaseClause (exprNode_undefined); ;
4962 #line 1440 "cgrammar.y"
4963 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
4966 #line 1443 "cgrammar.y"
4967 { yyval.expr = yyvsp[-1].expr; ;
4970 #line 1445 "cgrammar.y"
4971 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4974 #line 1448 "cgrammar.y"
4975 { yyval.expr = yyvsp[-1].expr; ;
4978 #line 1451 "cgrammar.y"
4979 { context_enterInnerContext (); ;
4982 #line 1454 "cgrammar.y"
4983 { context_exitInnerPlain (); ;
4986 #line 1457 "cgrammar.y"
4987 { context_enterStructInnerContext (); ;
4990 #line 1460 "cgrammar.y"
4991 { context_exitStructInnerContext (); ;
4994 #line 1463 "cgrammar.y"
4995 { context_exitInnerSafe (); ;
4998 #line 1466 "cgrammar.y"
4999 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5002 #line 1467 "cgrammar.y"
5003 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
5006 #line 1468 "cgrammar.y"
5007 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5010 #line 1470 "cgrammar.y"
5011 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5014 #line 1471 "cgrammar.y"
5015 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5018 #line 1473 "cgrammar.y"
5019 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5022 #line 1475 "cgrammar.y"
5023 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5026 #line 1477 "cgrammar.y"
5027 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
5028 lltok_getLoc (yyvsp[-1].tok)));
5032 #line 1484 "cgrammar.y"
5033 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
5036 #line 1488 "cgrammar.y"
5037 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5040 #line 1490 "cgrammar.y"
5041 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5044 #line 1492 "cgrammar.y"
5045 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5048 #line 1494 "cgrammar.y"
5049 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5052 #line 1498 "cgrammar.y"
5053 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5056 #line 1501 "cgrammar.y"
5057 { yyval.expr = yyvsp[0].expr; ;
5060 #line 1502 "cgrammar.y"
5061 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5064 #line 1505 "cgrammar.y"
5065 { yyval.expr = yyvsp[0].expr; ;
5068 #line 1506 "cgrammar.y"
5069 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5072 #line 1509 "cgrammar.y"
5073 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5076 #line 1510 "cgrammar.y"
5077 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5080 #line 1513 "cgrammar.y"
5081 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5084 #line 1514 "cgrammar.y"
5085 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5088 #line 1515 "cgrammar.y"
5089 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
5092 #line 1519 "cgrammar.y"
5093 { yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
5096 #line 1527 "cgrammar.y"
5098 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
5099 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
5103 #line 1531 "cgrammar.y"
5104 { context_enterFalseClause (yyvsp[-2].expr); ;
5107 #line 1532 "cgrammar.y"
5109 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5110 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5114 #line 1536 "cgrammar.y"
5115 { context_enterSwitch (yyvsp[0].expr); ;
5118 #line 1537 "cgrammar.y"
5119 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
5122 #line 1541 "cgrammar.y"
5123 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
5126 #line 1545 "cgrammar.y"
5127 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
5130 #line 1548 "cgrammar.y"
5131 { context_enterIterClause (); ;
5134 #line 1549 "cgrammar.y"
5135 { setProcessingIterVars (yyvsp[-3].entry); ;
5138 #line 1552 "cgrammar.y"
5140 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].alist, yyvsp[-2].expr, yyvsp[-1].entry);
5145 #line 1558 "cgrammar.y"
5146 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
5149 #line 1559 "cgrammar.y"
5150 { nextIterParam (); ;
5153 #line 1560 "cgrammar.y"
5154 { yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ;
5157 #line 1563 "cgrammar.y"
5158 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
5161 #line 1564 "cgrammar.y"
5162 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
5165 #line 1565 "cgrammar.y"
5166 { uentry ue = coerceIterId (yyvsp[0].cname);
5168 if (uentry_isValid (ue))
5170 yyval.expr = exprNode_iterId (ue);
5174 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
5179 #line 1576 "cgrammar.y"
5180 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
5183 #line 1584 "cgrammar.y"
5184 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5187 #line 1588 "cgrammar.y"
5188 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
5191 #line 1589 "cgrammar.y"
5192 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
5195 #line 1590 "cgrammar.y"
5196 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
5199 #line 1592 "cgrammar.y"
5200 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
5203 #line 1593 "cgrammar.y"
5204 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
5207 #line 1594 "cgrammar.y"
5208 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
5211 #line 1595 "cgrammar.y"
5212 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5215 #line 1596 "cgrammar.y"
5216 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5219 #line 1600 "cgrammar.y"
5220 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5223 #line 1601 "cgrammar.y"
5224 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5227 #line 1602 "cgrammar.y"
5228 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5231 #line 1603 "cgrammar.y"
5232 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5235 #line 1604 "cgrammar.y"
5236 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5239 #line 1605 "cgrammar.y"
5240 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5243 #line 1606 "cgrammar.y"
5244 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5247 #line 1607 "cgrammar.y"
5248 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5251 #line 1608 "cgrammar.y"
5252 { yyval.expr = yyvsp[0].expr; ;
5255 #line 1612 "cgrammar.y"
5256 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
5259 #line 1616 "cgrammar.y"
5260 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5263 #line 1617 "cgrammar.y"
5264 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5267 #line 1618 "cgrammar.y"
5268 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5271 #line 1622 "cgrammar.y"
5272 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5275 #line 1623 "cgrammar.y"
5276 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5279 #line 1627 "cgrammar.y"
5280 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5283 #line 1628 "cgrammar.y"
5284 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5287 #line 1632 "cgrammar.y"
5288 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5291 #line 1633 "cgrammar.y"
5292 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5295 #line 1634 "cgrammar.y"
5296 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5299 #line 1635 "cgrammar.y"
5300 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5303 #line 1639 "cgrammar.y"
5304 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5307 #line 1640 "cgrammar.y"
5308 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5311 #line 1644 "cgrammar.y"
5312 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5315 #line 1648 "cgrammar.y"
5316 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5319 #line 1653 "cgrammar.y"
5320 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5323 #line 1657 "cgrammar.y"
5324 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5327 #line 1661 "cgrammar.y"
5328 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5331 #line 1665 "cgrammar.y"
5332 { context_enterTrueClause (yyvsp[-1].expr); ;
5335 #line 1666 "cgrammar.y"
5336 { context_enterFalseClause (yyvsp[-4].expr); ;
5339 #line 1667 "cgrammar.y"
5340 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5343 #line 1671 "cgrammar.y"
5344 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5347 #line 1672 "cgrammar.y"
5348 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5351 #line 1673 "cgrammar.y"
5352 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5355 #line 1674 "cgrammar.y"
5356 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5359 #line 1675 "cgrammar.y"
5360 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5363 #line 1676 "cgrammar.y"
5364 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5367 #line 1677 "cgrammar.y"
5368 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5371 #line 1678 "cgrammar.y"
5372 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5375 #line 1679 "cgrammar.y"
5376 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5379 #line 1680 "cgrammar.y"
5380 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5383 #line 1681 "cgrammar.y"
5384 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5387 #line 1684 "cgrammar.y"
5388 { yyval.entry = yyvsp[0].entry; ;
5391 #line 1685 "cgrammar.y"
5392 { yyval.entry = uentry_undefined; ;
5395 #line 1688 "cgrammar.y"
5396 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5399 #line 1692 "cgrammar.y"
5400 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5403 #line 1694 "cgrammar.y"
5404 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5407 #line 1696 "cgrammar.y"
5408 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5411 #line 1699 "cgrammar.y"
5412 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5415 #line 1701 "cgrammar.y"
5416 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5419 #line 1703 "cgrammar.y"
5420 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5423 #line 1704 "cgrammar.y"
5424 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5427 #line 1707 "cgrammar.y"
5428 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5431 #line 1708 "cgrammar.y"
5432 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5435 #line 1710 "cgrammar.y"
5436 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5439 #line 1711 "cgrammar.y"
5440 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5443 #line 1712 "cgrammar.y"
5444 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5447 #line 1713 "cgrammar.y"
5448 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5451 #line 1714 "cgrammar.y"
5452 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5455 #line 1715 "cgrammar.y"
5456 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5459 #line 1716 "cgrammar.y"
5460 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5463 #line 1717 "cgrammar.y"
5464 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5467 #line 1721 "cgrammar.y"
5471 #line 1728 "cgrammar.y"
5472 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5475 #line 1729 "cgrammar.y"
5476 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5479 #line 1730 "cgrammar.y"
5480 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5483 #line 1731 "cgrammar.y"
5484 { yyval.cname = yyvsp[0].cname; ;
5487 #line 1735 "cgrammar.y"
5488 { yyval.ctyp = ctype_unknown; ;
5491 /* the action file gets copied in in place of this dollarsign */
5492 #line 498 "/usr/share/misc/bison.simple"
5503 short *ssp1 = yyss - 1;
5504 fprintf (stderr, "state stack now");
5505 while (ssp1 != yyssp)
5506 fprintf (stderr, " %d", *++ssp1);
5507 fprintf (stderr, "\n");
5517 yylsp->first_line = yylloc.first_line;
5518 yylsp->first_column = yylloc.first_column;
5519 yylsp->last_line = (yylsp-1)->last_line;
5520 yylsp->last_column = (yylsp-1)->last_column;
5525 yylsp->last_line = (yylsp+yylen-1)->last_line;
5526 yylsp->last_column = (yylsp+yylen-1)->last_column;
5530 /* Now "shift" the result of the reduction.
5531 Determine what state that goes to,
5532 based on the state we popped back to
5533 and the rule number reduced by. */
5537 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5538 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5539 yystate = yytable[yystate];
5541 yystate = yydefgoto[yyn - YYNTBASE];
5545 yyerrlab: /* here on detecting error */
5548 /* If not already recovering from an error, report this error. */
5552 #ifdef YYERROR_VERBOSE
5553 yyn = yypact[yystate];
5555 if (yyn > YYFLAG && yyn < YYLAST)
5562 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5563 for (x = (yyn < 0 ? -yyn : 0);
5564 x < (sizeof(yytname) / sizeof(char *)); x++)
5565 if (yycheck[x + yyn] == x)
5566 size += strlen(yytname[x]) + 15, count++;
5567 msg = (char *) malloc(size + 15);
5570 strcpy(msg, "parse error");
5575 for (x = (yyn < 0 ? -yyn : 0);
5576 x < (sizeof(yytname) / sizeof(char *)); x++)
5577 if (yycheck[x + yyn] == x)
5579 strcat(msg, count == 0 ? ", expecting `" : " or `");
5580 strcat(msg, yytname[x]);
5589 yyerror ("parse error; also virtual memory exceeded");
5592 #endif /* YYERROR_VERBOSE */
5593 yyerror("parse error");
5597 yyerrlab1: /* here on error raised explicitly by an action */
5599 if (yyerrstatus == 3)
5601 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5603 /* return failure if at end of input */
5604 if (yychar == YYEOF)
5609 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5615 /* Else will try to reuse lookahead token
5616 after shifting the error token. */
5618 yyerrstatus = 3; /* Each real token shifted decrements this */
5622 yyerrdefault: /* current state does not do anything special for the error token. */
5625 /* This is wrong; only states that explicitly want error tokens
5626 should shift them. */
5627 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5628 if (yyn) goto yydefault;
5631 yyerrpop: /* pop the current state because it cannot handle the error token */
5633 if (yyssp == yyss) YYABORT;
5643 short *ssp1 = yyss - 1;
5644 fprintf (stderr, "Error: state stack now");
5645 while (ssp1 != yyssp)
5646 fprintf (stderr, " %d", *++ssp1);
5647 fprintf (stderr, "\n");
5653 yyn = yypact[yystate];
5658 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5677 fprintf(stderr, "Shifting error token, ");
5688 #line 1737 "cgrammar.y"
5692 extern char *yytext;
5695 # include "bison.reset"
5697 void yyerror (/*@unused@*/ char *s)
5699 static bool givehint = FALSE;
5701 if (context_inIterDef ())
5703 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5704 context_inFunctionName ()));
5706 else if (context_inIterEnd ())
5708 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5709 context_inFunctionName ()));
5711 else if (context_inMacro ())
5713 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5714 context_inFunctionName ()));
5716 if (context_inMacroUnknown ())
5720 llhint (cstring_makeLiteral
5721 ("Precede macro definition with /*@notfunction@*/ "
5722 "to suppress checking and force expansion"));
5731 llparseerror (cstring_undefined);
5735 void printState (idDecl t) {
5736 cstring id = idDecl_getName (t);
5737 uentry ue = usymtab_lookupSafe (id);
5739 sRef s = uentry_getSref (ue);
5741 printf("State = %d\n", s->bufinfo.bufstate);
5745 /*take this out soon */
5746 /* void testassert1 (cstring id, icstring cons ) { */
5747 /* uentry ue =usymtab_lookupSafe (id); */
5748 /* sRef s = uentry_getSref (ue); */
5749 /* printf ("Doing testassert1 with setbuffersize\n"); */
5750 /* printf("State = %d\n", s->bufinfo.bufstate); */
5752 /* void testassert2 (cstring id) { */
5753 /* uentry ue =usymtab_lookupSafe (id); */
5754 /* sRef s = uentry_getSref (ue); */
5755 /* printf ("Doing testassert2 with setbuffersize\n"); */
5756 /* printf("State = %d\n", s->bufinfo.bufstate); */