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;
291 #define YYFLAG -32768
294 #define YYTRANSLATE(x) ((unsigned)(x) <= 444 ? yytranslate[x] : 433)
296 static const short yytranslate[] = { 0,
297 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
298 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
299 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
300 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
301 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
302 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
303 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
304 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
305 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
306 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
307 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
308 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
309 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
310 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
311 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
312 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
313 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
314 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
315 2, 2, 2, 2, 2, 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, 1, 2, 3, 4, 5,
323 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
324 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
325 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
326 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
327 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
328 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
329 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
330 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
331 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
332 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
333 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
334 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
335 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
336 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
337 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
338 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
339 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
340 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
345 static const short yyprhs[] = { 0,
346 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
347 21, 23, 32, 44, 45, 51, 53, 57, 59, 62,
348 64, 71, 75, 82, 83, 91, 92, 101, 103, 110,
349 114, 121, 122, 129, 130, 138, 139, 140, 151, 155,
350 159, 163, 166, 168, 169, 172, 173, 176, 179, 180,
351 185, 186, 187, 192, 193, 196, 198, 203, 205, 207,
352 209, 211, 213, 215, 220, 226, 228, 230, 232, 234,
353 236, 238, 239, 242, 243, 246, 248, 251, 253, 256,
354 258, 261, 263, 267, 270, 272, 274, 276, 278, 280,
355 282, 284, 285, 288, 289, 296, 297, 304, 306, 308,
356 309, 310, 316, 317, 323, 325, 327, 328, 330, 331,
357 332, 336, 337, 341, 343, 345, 347, 349, 351, 353,
358 355, 357, 359, 361, 363, 365, 367, 369, 371, 373,
359 375, 376, 384, 385, 394, 396, 400, 401, 405, 406,
360 410, 413, 417, 420, 423, 425, 427, 429, 433, 438,
361 441, 445, 449, 453, 455, 457, 459, 463, 465, 467,
362 471, 476, 479, 483, 487, 491, 493, 497, 499, 501,
363 503, 507, 509, 511, 513, 518, 522, 527, 534, 540,
364 546, 549, 552, 554, 558, 560, 563, 566, 569, 572,
365 575, 578, 581, 584, 586, 588, 592, 594, 604, 605,
366 609, 614, 617, 622, 625, 627, 632, 634, 638, 642,
367 646, 648, 652, 656, 658, 662, 666, 668, 672, 676,
368 680, 684, 686, 690, 694, 696, 700, 702, 706, 708,
369 712, 714, 715, 720, 722, 723, 728, 730, 731, 732,
370 740, 742, 746, 750, 754, 758, 762, 766, 770, 774,
371 778, 782, 786, 788, 792, 793, 795, 797, 799, 801,
372 803, 807, 808, 818, 819, 831, 834, 835, 842, 843,
373 851, 856, 861, 862, 863, 866, 868, 873, 874, 879,
374 881, 885, 890, 892, 896, 898, 900, 902, 904, 906,
375 909, 912, 915, 918, 921, 924, 927, 930, 933, 936,
376 939, 942, 945, 948, 951, 954, 957, 960, 963, 966,
377 969, 972, 975, 978, 981, 984, 987, 990, 993, 996,
378 999, 1002, 1005, 1008, 1011, 1014, 1017, 1020, 1023, 1026,
379 1029, 1032, 1035, 1038, 1041, 1044, 1046, 1048, 1050, 1052,
380 1055, 1058, 1061, 1064, 1067, 1070, 1073, 1076, 1079, 1082,
381 1085, 1088, 1091, 1094, 1098, 1100, 1105, 1107, 1111, 1114,
382 1117, 1120, 1121, 1123, 1124, 1125, 1137, 1138, 1139, 1151,
383 1158, 1165, 1166, 1167, 1178, 1179, 1180, 1191, 1197, 1203,
384 1208, 1213, 1214, 1216, 1218, 1221, 1227, 1231, 1234, 1239,
385 1241, 1245, 1250, 1257, 1258, 1267, 1272, 1274, 1278, 1281,
386 1283, 1288, 1290, 1292, 1295, 1298, 1300, 1303, 1305, 1308,
387 1310, 1312, 1314, 1317, 1319, 1322, 1325, 1329, 1331, 1335,
388 1337, 1341, 1343, 1345, 1349, 1350, 1353, 1354, 1359, 1364,
389 1366, 1368, 1371, 1373, 1375, 1378, 1379, 1381, 1387, 1390,
390 1394, 1398, 1403, 1407, 1412, 1417, 1423, 1425, 1427, 1429,
391 1431, 1433, 1435, 1437, 1439, 1441, 1443, 1448, 1453, 1458,
392 1461, 1463, 1465, 1467, 1470, 1473, 1481, 1488, 1491, 1492,
393 1493, 1504, 1505, 1512, 1514, 1516, 1518, 1520, 1523, 1525,
394 1527, 1529, 1531, 1533, 1535, 1537, 1541, 1543, 1546, 1549,
395 1552, 1554, 1556, 1558, 1560, 1562, 1564, 1566, 1568, 1570,
396 1572, 1576, 1578, 1580, 1583, 1586, 1587, 1592, 1593, 1599,
397 1600, 1604, 1605, 1610, 1614, 1617, 1621, 1622, 1623, 1624,
398 1625, 1626, 1628, 1631, 1634, 1638, 1641, 1645, 1649, 1654,
399 1657, 1660, 1664, 1668, 1673, 1675, 1678, 1680, 1683, 1685,
400 1688, 1690, 1693, 1695, 1698, 1700, 1705, 1708, 1709, 1715,
401 1716, 1723, 1728, 1733, 1734, 1735, 1746, 1748, 1749, 1754,
402 1756, 1758, 1760, 1762, 1764, 1768, 1770, 1775, 1779, 1784,
403 1791, 1797, 1803, 1806, 1809, 1811, 1814, 1817, 1820, 1823,
404 1826, 1829, 1832, 1835, 1837, 1839, 1844, 1846, 1850, 1854,
405 1858, 1860, 1864, 1868, 1870, 1874, 1878, 1880, 1884, 1888,
406 1892, 1896, 1898, 1902, 1906, 1908, 1912, 1914, 1918, 1920,
407 1924, 1926, 1930, 1932, 1936, 1938, 1939, 1940, 1948, 1950,
408 1954, 1958, 1962, 1966, 1970, 1974, 1978, 1982, 1986, 1990,
409 1994, 1996, 1997, 1999, 2002, 2010, 2013, 2016, 2024, 2031,
410 2034, 2038, 2041, 2045, 2048, 2052, 2056, 2060, 2064, 2067,
411 2071, 2072, 2074, 2076, 2078, 2080, 2082, 2084, 2086, 2088
414 static const short yyrhs[] = { -1,
415 191, 0, 192, 0, 191, 192, 0, 259, 429, 0,
416 193, 0, 194, 0, 204, 0, 207, 0, 296, 0,
417 1, 0, 75, 316, 329, 339, 329, 429, 304, 88,
418 0, 75, 316, 329, 339, 329, 23, 304, 309, 308,
419 429, 88, 0, 0, 76, 195, 196, 429, 88, 0,
420 197, 0, 316, 329, 197, 0, 201, 0, 343, 201,
421 0, 431, 0, 304, 24, 329, 339, 304, 25, 0,
422 198, 26, 27, 0, 198, 26, 304, 295, 27, 329,
423 0, 0, 198, 305, 24, 25, 199, 209, 211, 0,
424 0, 198, 305, 24, 340, 25, 200, 209, 211, 0,
425 431, 0, 304, 24, 329, 197, 304, 25, 0, 201,
426 26, 27, 0, 201, 26, 304, 295, 27, 329, 0,
427 0, 201, 305, 24, 25, 202, 226, 0, 0, 201,
428 305, 24, 340, 25, 203, 226, 0, 0, 0, 77,
429 431, 24, 340, 25, 205, 226, 206, 429, 88, 0,
430 89, 370, 92, 0, 90, 357, 92, 0, 91, 358,
431 92, 0, 89, 92, 0, 255, 0, 0, 210, 228,
432 0, 0, 212, 213, 0, 216, 214, 0, 0, 215,
433 178, 218, 88, 0, 0, 0, 217, 177, 218, 88,
434 0, 0, 219, 218, 0, 219, 0, 222, 221, 222,
435 18, 0, 180, 0, 181, 0, 52, 0, 51, 0,
436 53, 0, 223, 0, 224, 24, 222, 25, 0, 24,
437 222, 225, 222, 25, 0, 430, 0, 184, 0, 186,
438 0, 220, 0, 33, 0, 32, 0, 0, 0, 229,
439 0, 0, 227, 229, 0, 236, 0, 230, 236, 0,
440 239, 0, 230, 239, 0, 252, 0, 252, 230, 0,
441 232, 0, 231, 21, 232, 0, 235, 233, 0, 430,
442 0, 184, 0, 86, 0, 87, 0, 116, 0, 117,
443 0, 130, 0, 0, 234, 235, 0, 0, 72, 237,
444 390, 429, 88, 242, 0, 0, 72, 238, 231, 429,
445 88, 242, 0, 74, 0, 243, 0, 0, 0, 72,
446 240, 390, 429, 242, 0, 0, 72, 241, 231, 429,
447 242, 0, 74, 0, 245, 0, 0, 243, 0, 0,
448 0, 73, 244, 260, 0, 0, 73, 246, 261, 0,
449 78, 0, 79, 0, 80, 0, 81, 0, 82, 0,
450 88, 0, 88, 0, 83, 0, 84, 0, 119, 0,
451 137, 0, 135, 0, 133, 0, 132, 0, 121, 0,
452 138, 0, 150, 0, 0, 247, 329, 253, 266, 429,
453 249, 304, 0, 0, 250, 329, 251, 254, 266, 429,
454 248, 304, 0, 339, 0, 316, 329, 339, 0, 0,
455 19, 257, 386, 0, 0, 390, 258, 379, 0, 208,
456 256, 0, 264, 429, 88, 0, 429, 88, 0, 264,
457 429, 0, 429, 0, 430, 0, 184, 0, 262, 26,
458 27, 0, 262, 26, 263, 27, 0, 34, 262, 0,
459 24, 262, 25, 0, 262, 28, 431, 0, 262, 44,
460 431, 0, 262, 0, 186, 0, 262, 0, 264, 21,
461 262, 0, 430, 0, 184, 0, 265, 26, 27, 0,
462 265, 26, 263, 27, 0, 34, 265, 0, 24, 265,
463 25, 0, 265, 28, 431, 0, 265, 44, 431, 0,
464 265, 0, 266, 21, 265, 0, 430, 0, 184, 0,
465 186, 0, 24, 293, 25, 0, 185, 0, 111, 0,
466 267, 0, 268, 26, 293, 27, 0, 268, 24, 25,
467 0, 268, 24, 269, 25, 0, 70, 24, 292, 21,
468 351, 25, 0, 268, 329, 28, 431, 304, 0, 268,
469 329, 44, 431, 304, 0, 268, 47, 0, 268, 48,
470 0, 292, 0, 269, 21, 292, 0, 268, 0, 47,
471 270, 0, 48, 270, 0, 29, 276, 0, 34, 276,
472 0, 33, 276, 0, 32, 276, 0, 31, 276, 0,
473 30, 276, 0, 273, 0, 272, 0, 271, 28, 431,
474 0, 431, 0, 46, 304, 24, 351, 329, 21, 271,
475 25, 304, 0, 0, 304, 274, 275, 0, 42, 24,
476 351, 25, 0, 42, 270, 0, 43, 24, 351, 25,
477 0, 43, 270, 0, 270, 0, 24, 351, 25, 276,
478 0, 276, 0, 277, 34, 276, 0, 277, 35, 276,
479 0, 277, 36, 276, 0, 277, 0, 278, 33, 277,
480 0, 278, 32, 277, 0, 278, 0, 279, 49, 278,
481 0, 279, 50, 278, 0, 279, 0, 280, 37, 279,
482 0, 280, 38, 279, 0, 280, 51, 279, 0, 280,
483 52, 279, 0, 280, 0, 281, 53, 280, 0, 281,
484 54, 280, 0, 281, 0, 282, 29, 281, 0, 282,
485 0, 283, 39, 282, 0, 283, 0, 284, 40, 283,
486 0, 284, 0, 0, 285, 55, 286, 284, 0, 285,
487 0, 0, 287, 56, 288, 285, 0, 287, 0, 0,
488 0, 287, 41, 290, 293, 22, 291, 289, 0, 289,
489 0, 270, 23, 292, 0, 270, 57, 292, 0, 270,
490 58, 292, 0, 270, 59, 292, 0, 270, 60, 292,
491 0, 270, 61, 292, 0, 270, 62, 292, 0, 270,
492 63, 292, 0, 270, 64, 292, 0, 270, 65, 292,
493 0, 270, 66, 292, 0, 292, 0, 293, 21, 292,
494 0, 0, 293, 0, 289, 0, 297, 0, 71, 0,
495 302, 0, 316, 304, 18, 0, 0, 316, 329, 339,
496 329, 298, 304, 308, 18, 304, 0, 0, 316, 329,
497 339, 329, 23, 299, 304, 309, 308, 18, 304, 0,
498 339, 329, 0, 0, 339, 329, 23, 301, 304, 309,
499 0, 0, 45, 316, 303, 329, 306, 304, 18, 0,
500 45, 316, 304, 18, 0, 45, 306, 304, 18, 0,
501 0, 0, 307, 304, 0, 300, 0, 306, 21, 329,
502 300, 0, 0, 308, 21, 329, 300, 0, 292, 0,
503 19, 310, 20, 0, 19, 310, 21, 20, 0, 309,
504 0, 310, 21, 309, 0, 112, 0, 110, 0, 113,
505 0, 114, 0, 115, 0, 108, 304, 0, 109, 304,
506 0, 116, 304, 0, 117, 304, 0, 130, 304, 0,
507 131, 304, 0, 132, 304, 0, 133, 304, 0, 118,
508 304, 0, 120, 304, 0, 119, 304, 0, 128, 304,
509 0, 129, 304, 0, 121, 304, 0, 123, 304, 0,
510 139, 304, 0, 140, 304, 0, 142, 304, 0, 143,
511 304, 0, 141, 304, 0, 136, 304, 0, 151, 304,
512 0, 134, 304, 0, 135, 304, 0, 137, 304, 0,
513 124, 304, 0, 127, 304, 0, 125, 304, 0, 126,
514 304, 0, 156, 304, 0, 157, 304, 0, 148, 304,
515 0, 158, 304, 0, 149, 304, 0, 152, 304, 0,
516 153, 304, 0, 154, 304, 0, 155, 304, 0, 150,
517 304, 0, 159, 304, 0, 160, 304, 0, 163, 304,
518 0, 164, 304, 0, 161, 304, 0, 162, 304, 0,
519 175, 304, 0, 147, 0, 144, 0, 145, 0, 146,
520 0, 165, 329, 0, 167, 329, 0, 166, 329, 0,
521 168, 329, 0, 169, 329, 0, 170, 329, 0, 171,
522 329, 0, 172, 329, 0, 173, 329, 0, 174, 329,
523 0, 432, 329, 0, 320, 329, 0, 334, 329, 0,
524 313, 329, 0, 304, 316, 304, 0, 318, 0, 318,
525 85, 317, 88, 0, 351, 0, 351, 21, 317, 0,
526 311, 319, 0, 312, 319, 0, 314, 319, 0, 0,
527 316, 0, 0, 0, 329, 67, 431, 304, 19, 321,
528 383, 330, 384, 322, 20, 0, 0, 0, 329, 68,
529 431, 304, 19, 323, 383, 330, 384, 324, 20, 0,
530 329, 67, 431, 304, 19, 20, 0, 329, 68, 431,
531 304, 19, 20, 0, 0, 0, 329, 67, 304, 19,
532 325, 383, 330, 384, 326, 20, 0, 0, 0, 329,
533 68, 304, 19, 327, 383, 330, 384, 328, 20, 0,
534 329, 67, 304, 19, 20, 0, 329, 68, 304, 19,
535 20, 0, 329, 67, 431, 329, 0, 329, 68, 431,
536 329, 0, 0, 331, 0, 207, 0, 330, 331, 0,
537 316, 329, 332, 304, 18, 0, 316, 304, 18, 0,
538 333, 329, 0, 332, 21, 333, 329, 0, 339, 0,
539 22, 304, 295, 0, 339, 22, 304, 295, 0, 329,
540 69, 19, 336, 20, 304, 0, 0, 329, 69, 431,
541 19, 335, 336, 20, 304, 0, 329, 69, 431, 304,
542 0, 337, 0, 336, 21, 337, 0, 336, 21, 0,
543 431, 0, 431, 23, 304, 295, 0, 198, 0, 353,
544 0, 343, 189, 0, 343, 338, 0, 198, 0, 343,
545 198, 0, 346, 0, 329, 344, 0, 108, 0, 109,
546 0, 341, 0, 342, 341, 0, 34, 0, 34, 342,
547 0, 34, 343, 0, 34, 342, 343, 0, 345, 0,
548 345, 21, 5, 0, 431, 0, 345, 21, 431, 0,
549 5, 0, 347, 0, 347, 21, 5, 0, 0, 348,
550 350, 0, 0, 347, 21, 349, 350, 0, 304, 316,
551 338, 304, 0, 431, 0, 315, 0, 315, 352, 0,
552 343, 0, 354, 0, 343, 354, 0, 0, 354, 0,
553 304, 24, 329, 352, 25, 0, 26, 27, 0, 26,
554 295, 27, 0, 354, 26, 27, 0, 354, 26, 295,
555 27, 0, 304, 24, 25, 0, 304, 24, 346, 25,
556 0, 354, 304, 24, 25, 0, 354, 304, 24, 346,
557 25, 0, 372, 0, 373, 0, 376, 0, 379, 0,
558 392, 0, 395, 0, 426, 0, 400, 0, 428, 0,
559 356, 0, 176, 430, 186, 88, 0, 179, 430, 186,
560 88, 0, 182, 430, 186, 88, 0, 22, 431, 0,
561 359, 0, 357, 0, 366, 0, 359, 366, 0, 399,
562 359, 0, 425, 371, 11, 24, 293, 25, 18, 0,
563 425, 371, 11, 24, 293, 25, 0, 361, 366, 0,
564 0, 0, 13, 24, 294, 18, 294, 18, 362, 294,
565 363, 25, 0, 0, 187, 381, 24, 365, 403, 25,
566 0, 188, 0, 372, 0, 373, 0, 376, 0, 368,
567 390, 0, 368, 0, 369, 0, 392, 0, 367, 0,
568 360, 0, 364, 0, 428, 0, 24, 366, 25, 0,
569 1, 0, 394, 366, 0, 381, 19, 0, 385, 20,
570 0, 371, 0, 389, 0, 372, 0, 373, 0, 376,
571 0, 380, 0, 393, 0, 395, 0, 400, 0, 427,
572 0, 24, 371, 25, 0, 428, 0, 1, 0, 431,
573 22, 0, 107, 355, 0, 0, 6, 295, 374, 22,
574 0, 0, 98, 6, 295, 375, 22, 0, 0, 7,
575 377, 22, 0, 0, 98, 7, 378, 22, 0, 24,
576 379, 25, 0, 381, 387, 0, 381, 388, 382, 0,
577 0, 0, 0, 0, 0, 20, 0, 107, 20, 0,
578 391, 20, 0, 391, 107, 20, 0, 390, 20, 0,
579 390, 107, 20, 0, 390, 391, 20, 0, 390, 391,
580 107, 20, 0, 19, 386, 0, 19, 20, 0, 19,
581 389, 20, 0, 19, 390, 20, 0, 19, 390, 391,
582 20, 0, 371, 0, 389, 371, 0, 296, 0, 390,
583 296, 0, 355, 0, 391, 355, 0, 18, 0, 293,
584 18, 0, 18, 0, 293, 18, 0, 293, 0, 8,
585 24, 293, 25, 0, 394, 355, 0, 0, 394, 355,
586 9, 396, 355, 0, 0, 10, 24, 293, 397, 25,
587 355, 0, 11, 24, 293, 25, 0, 11, 24, 293,
588 25, 0, 0, 0, 187, 401, 381, 24, 402, 403,
589 25, 379, 424, 382, 0, 405, 0, 0, 403, 404,
590 21, 405, 0, 423, 0, 430, 0, 185, 0, 184,
591 0, 186, 0, 24, 293, 25, 0, 406, 0, 268,
592 26, 293, 27, 0, 268, 24, 25, 0, 268, 24,
593 269, 25, 0, 70, 24, 292, 21, 351, 25, 0,
594 268, 329, 28, 431, 304, 0, 268, 329, 44, 431,
595 304, 0, 268, 47, 0, 268, 48, 0, 407, 0,
596 47, 270, 0, 48, 270, 0, 29, 276, 0, 34,
597 276, 0, 33, 276, 0, 32, 276, 0, 31, 276,
598 0, 30, 276, 0, 273, 0, 408, 0, 24, 351,
599 25, 276, 0, 409, 0, 277, 34, 276, 0, 277,
600 35, 276, 0, 277, 36, 276, 0, 410, 0, 278,
601 33, 277, 0, 278, 32, 277, 0, 411, 0, 279,
602 49, 278, 0, 279, 50, 278, 0, 412, 0, 280,
603 37, 279, 0, 280, 38, 279, 0, 280, 51, 279,
604 0, 280, 52, 279, 0, 413, 0, 281, 53, 280,
605 0, 281, 54, 280, 0, 414, 0, 282, 29, 281,
606 0, 415, 0, 283, 39, 282, 0, 416, 0, 284,
607 40, 283, 0, 417, 0, 285, 55, 284, 0, 418,
608 0, 287, 56, 285, 0, 419, 0, 0, 0, 287,
609 41, 421, 293, 22, 422, 289, 0, 420, 0, 270,
610 23, 292, 0, 270, 57, 292, 0, 270, 58, 292,
611 0, 270, 59, 292, 0, 270, 60, 292, 0, 270,
612 61, 292, 0, 270, 62, 292, 0, 270, 63, 292,
613 0, 270, 64, 292, 0, 270, 65, 292, 0, 270,
614 66, 292, 0, 188, 0, 0, 12, 0, 398, 355,
615 0, 425, 355, 11, 24, 293, 25, 18, 0, 361,
616 355, 0, 398, 371, 0, 425, 371, 11, 24, 293,
617 25, 18, 0, 425, 371, 11, 24, 293, 25, 0,
618 361, 371, 0, 14, 431, 18, 0, 15, 18, 0,
619 97, 15, 18, 0, 16, 18, 0, 93, 16, 18,
620 0, 94, 16, 18, 0, 95, 16, 18, 0, 96,
621 16, 18, 0, 17, 18, 0, 17, 293, 18, 0,
622 0, 18, 0, 183, 0, 184, 0, 187, 0, 188,
623 0, 430, 0, 185, 0, 189, 0, 185, 0
629 static const short yyrline[] = { 0,
630 261, 262, 265, 266, 269, 270, 271, 272, 273, 274,
631 275, 278, 280, 284, 284, 289, 295, 299, 300, 304,
632 305, 307, 309, 313, 316, 324, 327, 336, 337, 339,
633 341, 357, 361, 368, 372, 378, 380, 380, 384, 385,
634 386, 387, 390, 393, 394, 400, 401, 405, 409, 414,
635 421, 425, 430, 437, 440, 441, 444, 449, 450, 453,
636 454, 455, 458, 459, 460, 465, 467, 468, 479, 483,
637 484, 489, 490, 500, 501, 504, 505, 508, 509, 512,
638 513, 516, 517, 520, 523, 524, 527, 528, 529, 530,
639 531, 534, 535, 538, 538, 541, 541, 544, 548, 549,
640 552, 552, 555, 555, 558, 562, 563, 566, 567, 570,
641 576, 583, 589, 596, 597, 598, 599, 600, 603, 606,
642 609, 610, 613, 614, 615, 616, 617, 618, 619, 620,
643 623, 629, 636, 642, 651, 657, 661, 663, 667, 670,
644 677, 687, 688, 691, 692, 695, 696, 697, 698, 699,
645 700, 701, 702, 706, 707, 711, 712, 715, 717, 719,
646 720, 721, 722, 723, 725, 729, 733, 745, 746, 747,
647 748, 749, 750, 753, 754, 755, 756, 757, 758, 759,
648 760, 761, 764, 765, 768, 769, 770, 771, 772, 773,
649 774, 775, 776, 777, 778, 781, 782, 785, 789, 790,
650 793, 794, 795, 796, 799, 800, 804, 805, 806, 807,
651 810, 811, 812, 815, 816, 817, 820, 821, 822, 823,
652 824, 827, 828, 829, 832, 833, 836, 837, 841, 842,
653 845, 846, 851, 857, 858, 864, 870, 871, 871, 873,
654 876, 877, 878, 879, 880, 881, 882, 883, 884, 885,
655 886, 887, 890, 891, 894, 895, 898, 903, 904, 905,
656 908, 921, 925, 926, 929, 934, 935, 935, 940, 941,
657 942, 943, 946, 949, 952, 955, 956, 959, 960, 963,
658 964, 965, 969, 971, 980, 981, 982, 983, 984, 987,
659 988, 989, 990, 991, 992, 993, 994, 995, 996, 997,
660 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007,
661 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
662 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027,
663 1028, 1029, 1030, 1031, 1032, 1038, 1039, 1040, 1041, 1044,
664 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054,
665 1055, 1056, 1057, 1060, 1064, 1065, 1069, 1070, 1074, 1075,
666 1076, 1079, 1080, 1083, 1085, 1087, 1088, 1090, 1092, 1093,
667 1095, 1097, 1099, 1101, 1102, 1104, 1106, 1107, 1109, 1111,
668 1112, 1115, 1118, 1119, 1120, 1123, 1125, 1129, 1131, 1135,
669 1136, 1137, 1141, 1143, 1143, 1145, 1148, 1150, 1152, 1155,
670 1160, 1167, 1168, 1169, 1176, 1180, 1181, 1185, 1186, 1189,
671 1190, 1193, 1194, 1197, 1198, 1199, 1200, 1203, 1204, 1207,
672 1208, 1211, 1212, 1213, 1216, 1216, 1217, 1218, 1221, 1233,
673 1249, 1250, 1253, 1254, 1255, 1258, 1259, 1262, 1264, 1265,
674 1267, 1268, 1270, 1272, 1274, 1276, 1282, 1283, 1284, 1285,
675 1286, 1287, 1288, 1289, 1290, 1292, 1296, 1298, 1300, 1306,
676 1311, 1314, 1317, 1318, 1322, 1324, 1326, 1328, 1332, 1333,
677 1335, 1339, 1341, 1343, 1346, 1347, 1348, 1349, 1350, 1351,
678 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1361, 1367, 1370,
679 1373, 1374, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384,
680 1385, 1386, 1387, 1390, 1391, 1397, 1398, 1399, 1400, 1403,
681 1404, 1405, 1406, 1409, 1410, 1414, 1417, 1420, 1423, 1426,
682 1429, 1432, 1433, 1434, 1435, 1437, 1438, 1440, 1442, 1449,
683 1453, 1455, 1457, 1459, 1463, 1464, 1467, 1468, 1471, 1472,
684 1475, 1476, 1479, 1480, 1481, 1484, 1492, 1497, 1498, 1502,
685 1503, 1506, 1511, 1514, 1515, 1516, 1524, 1525, 1525, 1529,
686 1530, 1531, 1542, 1549, 1550, 1553, 1554, 1555, 1556, 1557,
687 1559, 1560, 1561, 1562, 1565, 1566, 1567, 1568, 1569, 1570,
688 1571, 1572, 1573, 1574, 1577, 1578, 1581, 1582, 1583, 1584,
689 1587, 1588, 1589, 1592, 1593, 1594, 1597, 1598, 1599, 1600,
690 1601, 1604, 1605, 1606, 1609, 1610, 1613, 1614, 1618, 1619,
691 1622, 1623, 1626, 1627, 1630, 1631, 1632, 1633, 1636, 1637,
692 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647,
693 1650, 1651, 1654, 1657, 1659, 1661, 1665, 1666, 1668, 1670,
694 1673, 1674, 1675, 1677, 1678, 1679, 1680, 1681, 1682, 1683,
695 1686, 1687, 1690, 1693, 1694, 1695, 1696, 1697, 1700, 1701
700 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
702 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
703 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
704 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
705 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
706 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
707 "TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP",
708 "DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP",
709 "MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
710 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
711 "VA_ARG","VA_DCL","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION","QITER",
712 "QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
713 "QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND","TENDMACRO",
714 "QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE","QFALLTHROUGH",
715 "QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED","QPRINTFLIKE",
716 "QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST","QVOLATILE",
717 "QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT","QIN",
718 "QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED",
719 "QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED",
720 "QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT",
721 "QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT",
722 "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE",
723 "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF",
724 "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE",
725 "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED",
726 "QSETBUFFERSIZE","QBUFFERCONSTRAINT","QENSURESCONSTRAINT","QSETSTRINGLENGTH",
727 "QMAXSET","QMAXREAD","QTESTINRANGE","IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID",
728 "CCONSTANT","ITER_NAME","ITER_ENDNAME","TYPE_NAME","file","externalDefs","externalDef",
729 "constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2",
730 "@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
731 "optGlobMods","@8","optGlobBufConstraints","@9","optGlobBufConstraintsRest",
732 "optGlobEnsuresConstraintsAux","@10","optGlobBufConstraintsAux","@11","BufConstraintList",
733 "BufConstraint","bufferModifier","relationalOp","BufConstraintExpr","BufConstraintTerm",
734 "BufUnaryOp","BufBinaryOp","optPlainGlobMods","@13","optGlobModsRest","optPlainGlobModsRest",
735 "specialClauses","globIdList","globIdListExpr","globId","globQual","optGlobQuals",
736 "optGlobModsAux","@14","@15","optPlainGlobModsAux","@16","@17","optMods","fcnMods",
737 "@18","fcnPlainMods","@19","specialTag","endStateTag","endSpecialTag","stateSpecialClause",
738 "specialClauseType","specialClause","@20","@21","fcnDefHdrAux","fcnBody","@22",
739 "@23","fcnDef","locModifies","locPlainModifies","modListExpr","mExpr","modList",
740 "specClauseListExpr","specClauseList","primaryExpr","postfixExpr","argumentExprList",
741 "unaryExpr","fieldDesignator","offsetofExpr","sizeofExpr","@24","sizeofExprAux",
742 "castExpr","timesExpr","plusExpr","shiftExpr","relationalExpr","equalityExpr",
743 "bitandExpr","xorExpr","bitorExpr","andExpr","@25","orExpr","@26","conditionalExpr",
744 "@27","@28","assignExpr","expr","optExpr","constantExpr","initializer","instanceDecl",
745 "@29","@30","namedInitializer","@31","typeDecl","@32","IsType","PushType","namedInitializerList",
746 "namedInitializerListAux","optDeclarators","init","initList","storageSpecifier",
747 "typeQualifier","typeModifier","typeSpecifier","completeType","completeTypeSpecifier",
748 "altType","completeTypeSpecifierAux","optCompleteType","suSpc","@33","@34","@35",
749 "@36","@37","@38","@39","@40","NotType","structDeclList","structDecl","structNamedDeclList",
750 "structNamedDecl","enumSpc","@41","enumeratorList","enumerator","optNamedDecl",
751 "namedDecl","genericParamList","innerMods","innerModsList","pointers","paramIdList",
752 "idList","paramTypeList","paramList","@42","@43","paramDecl","typeExpression",
753 "abstractDecl","optAbstractDeclBase","abstractDeclBase","stmt","lclintassertion",
754 "iterBody","endBody","iterDefStmtList","iterDefIterationStmt","forPred","@44",
755 "@45","partialIterStmt","@46","iterDefStmt","iterSelectionStmt","openScope",
756 "closeScope","macroBody","stmtErr","labeledStmt","caseStmt","@47","@48","defaultStmt",
757 "@49","@50","compoundStmt","compoundStmtErr","CreateInnerScope","DeleteInnerScope",
758 "CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe","compoundStmtRest",
759 "compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList","stmtList",
760 "expressionStmt","expressionStmtErr","ifPred","selectionStmt","@51","@52","whilePred",
761 "iterWhilePred","iterStmt","@53","@54","iterArgList","@55","iterArgExpr","primaryIterExpr",
762 "postfixIterExpr","unaryIterExpr","castIterExpr","timesIterExpr","plusIterExpr",
763 "shiftIterExpr","relationalIterExpr","equalityIterExpr","bitandIterExpr","xorIterExpr",
764 "bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr","@56","@57",
765 "assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr","jumpStmt",
766 "optSemi","id","newId","typeName", NULL
770 static const short yyr1[] = { 0,
771 190, 190, 191, 191, 192, 192, 192, 192, 192, 192,
772 192, 193, 193, 195, 194, 196, 196, 197, 197, 198,
773 198, 198, 198, 199, 198, 200, 198, 201, 201, 201,
774 201, 202, 201, 203, 201, 205, 206, 204, 207, 207,
775 207, 207, 208, 210, 209, 212, 211, 213, 215, 214,
776 214, 217, 216, 216, 218, 218, 219, 220, 220, 221,
777 221, 221, 222, 222, 222, 223, 223, 223, 224, 225,
778 225, -1, -1, 227, 226, 228, 228, 229, 229, 230,
779 230, 231, 231, 232, 233, 233, 234, 234, 234, 234,
780 234, 235, 235, 237, 236, 238, 236, 236, 236, 236,
781 240, 239, 241, 239, 239, 239, 239, 242, 242, 244,
782 243, 246, 245, 247, 247, 247, 247, 247, 248, 249,
783 250, 250, 251, 251, 251, 251, 251, 251, 251, 251,
784 253, 252, 254, 252, 255, 255, 257, 256, 258, 256,
785 259, 260, 260, 261, 261, 262, 262, 262, 262, 262,
786 262, 262, 262, 263, 263, 264, 264, 265, 265, 265,
787 265, 265, 265, 265, 265, 266, 266, 267, 267, 267,
788 267, 267, 267, 268, 268, 268, 268, 268, 268, 268,
789 268, 268, 269, 269, 270, 270, 270, 270, 270, 270,
790 270, 270, 270, 270, 270, 271, 271, 272, 274, 273,
791 275, 275, 275, 275, 276, 276, 277, 277, 277, 277,
792 278, 278, 278, 279, 279, 279, 280, 280, 280, 280,
793 280, 281, 281, 281, 282, 282, 283, 283, 284, 284,
794 285, 286, 285, 287, 288, 287, 289, 290, 291, 289,
795 292, 292, 292, 292, 292, 292, 292, 292, 292, 292,
796 292, 292, 293, 293, 294, 294, 295, 296, 296, 296,
797 297, 298, 297, 299, 297, 300, 301, 300, 303, 302,
798 302, 302, 304, 305, 306, 307, 307, 308, 308, 309,
799 309, 309, 310, 310, 311, 311, 311, 311, 311, 312,
800 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
801 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
802 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
803 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
804 312, 312, 312, 312, 312, 313, 313, 313, 313, 314,
805 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
806 314, 314, 314, 315, 316, 316, 317, 317, 318, 318,
807 318, 319, 319, 321, 322, 320, 323, 324, 320, 320,
808 320, 325, 326, 320, 327, 328, 320, 320, 320, 320,
809 320, 329, 330, 330, 330, 331, 331, 332, 332, 333,
810 333, 333, 334, 335, 334, 334, 336, 336, 336, 337,
811 337, 338, 338, 338, 338, 339, 339, 340, 340, 341,
812 341, 342, 342, 343, 343, 343, 343, 344, 344, 345,
813 345, 346, 346, 346, 348, 347, 349, 347, 350, 350,
814 351, 351, 352, 352, 352, 353, 353, 354, 354, 354,
815 354, 354, 354, 354, 354, 354, 355, 355, 355, 355,
816 355, 355, 355, 355, 355, 355, 356, 356, 356, -1,
817 357, 358, 359, 359, 360, 360, 360, 360, 362, 363,
818 361, 365, 364, 364, 366, 366, 366, 366, 366, 366,
819 366, 366, 366, 366, 366, 366, 366, 367, 368, 369,
820 370, 370, 371, 371, 371, 371, 371, 371, 371, 371,
821 371, 371, 371, 372, 372, 374, 373, 375, 373, 377,
822 376, 378, 376, 379, 379, 380, 381, 382, 383, 384,
823 385, 386, 386, 386, 386, 386, 386, 386, 386, 387,
824 388, 388, 388, 388, 389, 389, 390, 390, 391, 391,
825 392, 392, 393, 393, 393, 394, 395, 396, 395, 397,
826 395, 398, 399, 401, 402, 400, 403, 404, 403, 405,
827 405, 405, 405, 406, 406, 407, 407, 407, 407, 407,
828 407, 407, 407, 407, 408, 408, 408, 408, 408, 408,
829 408, 408, 408, 408, 409, 409, 410, 410, 410, 410,
830 411, 411, 411, 412, 412, 412, 413, 413, 413, 413,
831 413, 414, 414, 414, 415, 415, 416, 416, 417, 417,
832 418, 418, 419, 419, 420, 421, 422, 420, 423, 423,
833 423, 423, 423, 423, 423, 423, 423, 423, 423, 423,
834 424, 424, 425, 426, 426, 426, 427, 427, 427, 427,
835 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
836 429, 429, 430, 431, 431, 431, 431, 431, 432, 432
839 static const short yyr2[] = { 0,
840 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
841 1, 8, 11, 0, 5, 1, 3, 1, 2, 1,
842 6, 3, 6, 0, 7, 0, 8, 1, 6, 3,
843 6, 0, 6, 0, 7, 0, 0, 10, 3, 3,
844 3, 2, 1, 0, 2, 0, 2, 2, 0, 4,
845 0, 0, 4, 0, 2, 1, 4, 1, 1, 1,
846 1, 1, 1, 4, 5, 1, 1, 1, 1, 1,
847 1, 0, 2, 0, 2, 1, 2, 1, 2, 1,
848 2, 1, 3, 2, 1, 1, 1, 1, 1, 1,
849 1, 0, 2, 0, 6, 0, 6, 1, 1, 0,
850 0, 5, 0, 5, 1, 1, 0, 1, 0, 0,
851 3, 0, 3, 1, 1, 1, 1, 1, 1, 1,
852 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
853 0, 7, 0, 8, 1, 3, 0, 3, 0, 3,
854 2, 3, 2, 2, 1, 1, 1, 3, 4, 2,
855 3, 3, 3, 1, 1, 1, 3, 1, 1, 3,
856 4, 2, 3, 3, 3, 1, 3, 1, 1, 1,
857 3, 1, 1, 1, 4, 3, 4, 6, 5, 5,
858 2, 2, 1, 3, 1, 2, 2, 2, 2, 2,
859 2, 2, 2, 1, 1, 3, 1, 9, 0, 3,
860 4, 2, 4, 2, 1, 4, 1, 3, 3, 3,
861 1, 3, 3, 1, 3, 3, 1, 3, 3, 3,
862 3, 1, 3, 3, 1, 3, 1, 3, 1, 3,
863 1, 0, 4, 1, 0, 4, 1, 0, 0, 7,
864 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
865 3, 3, 1, 3, 0, 1, 1, 1, 1, 1,
866 3, 0, 9, 0, 11, 2, 0, 6, 0, 7,
867 4, 4, 0, 0, 2, 1, 4, 0, 4, 1,
868 3, 4, 1, 3, 1, 1, 1, 1, 1, 2,
869 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
870 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
871 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
872 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
873 2, 2, 2, 2, 2, 1, 1, 1, 1, 2,
874 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
875 2, 2, 2, 3, 1, 4, 1, 3, 2, 2,
876 2, 0, 1, 0, 0, 11, 0, 0, 11, 6,
877 6, 0, 0, 10, 0, 0, 10, 5, 5, 4,
878 4, 0, 1, 1, 2, 5, 3, 2, 4, 1,
879 3, 4, 6, 0, 8, 4, 1, 3, 2, 1,
880 4, 1, 1, 2, 2, 1, 2, 1, 2, 1,
881 1, 1, 2, 1, 2, 2, 3, 1, 3, 1,
882 3, 1, 1, 3, 0, 2, 0, 4, 4, 1,
883 1, 2, 1, 1, 2, 0, 1, 5, 2, 3,
884 3, 4, 3, 4, 4, 5, 1, 1, 1, 1,
885 1, 1, 1, 1, 1, 1, 4, 4, 4, 2,
886 1, 1, 1, 2, 2, 7, 6, 2, 0, 0,
887 10, 0, 6, 1, 1, 1, 1, 2, 1, 1,
888 1, 1, 1, 1, 1, 3, 1, 2, 2, 2,
889 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
890 3, 1, 1, 2, 2, 0, 4, 0, 5, 0,
891 3, 0, 4, 3, 2, 3, 0, 0, 0, 0,
892 0, 1, 2, 2, 3, 2, 3, 3, 4, 2,
893 2, 3, 3, 4, 1, 2, 1, 2, 1, 2,
894 1, 2, 1, 2, 1, 4, 2, 0, 5, 0,
895 6, 4, 4, 0, 0, 10, 1, 0, 4, 1,
896 1, 1, 1, 1, 3, 1, 4, 3, 4, 6,
897 5, 5, 2, 2, 1, 2, 2, 2, 2, 2,
898 2, 2, 2, 1, 1, 4, 1, 3, 3, 3,
899 1, 3, 3, 1, 3, 3, 1, 3, 3, 3,
900 3, 1, 3, 3, 1, 3, 1, 3, 1, 3,
901 1, 3, 1, 3, 1, 0, 0, 7, 1, 3,
902 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
903 1, 0, 1, 2, 7, 2, 2, 7, 6, 2,
904 3, 2, 3, 2, 3, 3, 3, 3, 2, 3,
905 0, 1, 1, 1, 1, 1, 1, 1, 1, 1
908 static const short yydefact[] = { 0,
909 11, 414, 382, 259, 382, 14, 0, 0, 0, 0,
910 273, 273, 286, 285, 287, 288, 289, 273, 273, 273,
911 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
912 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
913 273, 273, 273, 337, 338, 339, 336, 273, 273, 273,
914 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
915 273, 273, 273, 273, 382, 382, 382, 382, 382, 382,
916 382, 382, 382, 382, 273, 653, 654, 658, 655, 656,
917 659, 0, 3, 6, 7, 406, 8, 9, 382, 43,
918 651, 10, 258, 260, 0, 362, 362, 382, 362, 382,
919 355, 382, 0, 382, 135, 273, 657, 20, 382, 410,
920 411, 412, 415, 416, 276, 273, 273, 269, 382, 660,
921 382, 382, 658, 0, 503, 273, 510, 0, 0, 0,
922 633, 0, 0, 0, 0, 273, 543, 0, 273, 273,
923 273, 273, 273, 273, 273, 273, 273, 0, 42, 0,
924 0, 0, 0, 0, 0, 273, 173, 169, 172, 170,
925 554, 174, 185, 205, 195, 194, 207, 211, 214, 217,
926 222, 225, 227, 229, 231, 234, 237, 241, 253, 545,
927 199, 0, 0, 535, 493, 494, 495, 496, 0, 0,
928 497, 273, 498, 0, 499, 0, 500, 502, 168, 0,
929 487, 0, 541, 0, 517, 474, 0, 0, 0, 483,
930 0, 484, 463, 482, 479, 480, 475, 476, 477, 0,
931 0, 481, 0, 0, 0, 485, 462, 0, 290, 291,
932 292, 293, 298, 300, 299, 303, 304, 315, 317, 318,
933 316, 301, 302, 294, 295, 296, 297, 312, 313, 310,
934 314, 305, 306, 309, 307, 308, 321, 323, 328, 311,
935 324, 325, 326, 327, 319, 320, 322, 329, 330, 333,
936 334, 331, 332, 340, 342, 341, 343, 344, 345, 346,
937 347, 348, 349, 335, 4, 273, 0, 137, 141, 537,
938 382, 382, 652, 5, 382, 363, 359, 360, 353, 361,
939 0, 273, 273, 351, 273, 273, 0, 352, 407, 350,
940 413, 417, 382, 0, 275, 382, 0, 266, 273, 651,
941 16, 18, 0, 382, 273, 28, 425, 273, 169, 172,
942 205, 257, 506, 168, 0, 273, 273, 273, 273, 0,
943 642, 644, 649, 0, 0, 382, 431, 0, 0, 188,
944 193, 192, 191, 190, 189, 0, 273, 186, 187, 273,
945 0, 0, 0, 0, 0, 273, 512, 273, 0, 0,
946 0, 505, 456, 273, 447, 448, 449, 450, 0, 451,
947 452, 273, 454, 273, 453, 455, 517, 273, 273, 181,
948 182, 0, 273, 273, 273, 273, 273, 273, 273, 273,
949 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
950 273, 273, 273, 273, 273, 273, 273, 273, 273, 232,
951 238, 235, 544, 273, 0, 640, 39, 0, 518, 536,
952 547, 637, 0, 504, 273, 0, 0, 0, 542, 40,
953 464, 468, 478, 489, 490, 488, 0, 0, 41, 22,
954 273, 425, 382, 273, 517, 538, 273, 261, 136, 382,
955 0, 357, 0, 382, 0, 382, 0, 273, 273, 272,
956 273, 271, 267, 382, 0, 273, 0, 382, 273, 19,
957 422, 0, 0, 408, 423, 273, 0, 0, 511, 0,
958 550, 0, 256, 0, 641, 650, 171, 273, 273, 0,
959 433, 432, 434, 273, 501, 273, 0, 645, 646, 647,
960 648, 643, 508, 0, 0, 0, 0, 0, 636, 382,
961 515, 634, 0, 0, 176, 0, 183, 0, 0, 0,
962 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
963 252, 208, 209, 210, 213, 212, 215, 216, 218, 219,
964 220, 221, 223, 224, 226, 228, 230, 273, 273, 273,
965 254, 273, 273, 200, 531, 172, 535, 0, 382, 516,
966 548, 0, 0, 486, 472, 0, 0, 24, 0, 522,
967 273, 539, 138, 382, 273, 382, 517, 140, 273, 262,
968 356, 273, 372, 0, 380, 375, 0, 381, 0, 397,
969 400, 394, 396, 277, 273, 273, 651, 15, 30, 273,
970 425, 273, 17, 409, 418, 420, 36, 427, 382, 426,
971 430, 507, 546, 0, 552, 273, 354, 439, 0, 425,
972 435, 273, 0, 206, 382, 273, 0, 513, 514, 0,
973 0, 0, 530, 0, 555, 273, 177, 175, 273, 273,
974 233, 0, 236, 273, 202, 273, 204, 532, 533, 273,
975 273, 273, 553, 273, 273, 382, 44, 26, 523, 526,
976 273, 273, 524, 273, 540, 0, 264, 273, 358, 378,
977 519, 364, 379, 519, 367, 273, 399, 273, 0, 0,
978 273, 273, 273, 0, 32, 0, 273, 0, 74, 424,
979 273, 436, 273, 0, 440, 443, 273, 0, 441, 0,
980 425, 0, 0, 509, 457, 458, 459, 273, 273, 184,
981 179, 180, 239, 0, 0, 534, 549, 0, 273, 273,
982 273, 273, 273, 273, 273, 273, 273, 0, 169, 172,
983 170, 185, 205, 194, 211, 214, 217, 222, 225, 227,
984 229, 231, 234, 0, 558, 557, 566, 575, 585, 587,
985 591, 594, 597, 602, 605, 607, 609, 611, 613, 615,
986 619, 560, 168, 0, 23, 46, 100, 44, 527, 528,
987 273, 525, 21, 273, 278, 382, 370, 519, 382, 371,
988 519, 393, 398, 273, 0, 270, 273, 280, 268, 273,
989 0, 382, 74, 34, 0, 419, 421, 37, 107, 428,
990 402, 0, 273, 436, 403, 437, 551, 469, 0, 444,
991 442, 445, 0, 0, 178, 0, 558, 273, 201, 203,
992 639, 0, 0, 188, 193, 192, 191, 190, 189, 186,
993 187, 273, 273, 273, 181, 182, 0, 273, 273, 273,
994 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
995 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
996 273, 273, 273, 273, 232, 616, 235, 473, 0, 467,
997 25, 54, 94, 110, 98, 114, 115, 116, 117, 118,
998 121, 122, 45, 100, 76, 99, 382, 382, 80, 46,
999 529, 273, 0, 384, 382, 382, 383, 382, 382, 382,
1000 401, 273, 283, 0, 278, 12, 31, 33, 74, 29,
1001 651, 101, 112, 105, 75, 107, 78, 106, 425, 429,
1002 404, 405, 273, 438, 446, 0, 197, 0, 517, 240,
1003 638, 171, 273, 0, 176, 0, 0, 0, 0, 620,
1004 621, 622, 623, 624, 625, 626, 627, 628, 629, 630,
1005 208, 209, 210, 213, 212, 215, 216, 218, 219, 220,
1006 221, 223, 224, 226, 228, 230, 612, 273, 614, 273,
1007 466, 47, 51, 0, 382, 92, 651, 77, 131, 0,
1008 81, 27, 278, 273, 382, 0, 273, 385, 373, 382,
1009 376, 382, 395, 281, 273, 651, 35, 0, 382, 92,
1010 651, 79, 273, 470, 273, 0, 635, 632, 206, 273,
1011 177, 175, 273, 273, 0, 559, 48, 0, 0, 382,
1012 87, 88, 89, 90, 91, 651, 82, 92, 0, 0,
1013 0, 147, 111, 156, 651, 0, 146, 0, 123, 128,
1014 127, 126, 125, 124, 129, 130, 133, 0, 263, 273,
1015 387, 273, 273, 382, 390, 0, 365, 0, 368, 282,
1016 284, 0, 38, 651, 651, 113, 651, 145, 273, 0,
1017 198, 196, 631, 518, 0, 179, 180, 617, 0, 0,
1018 58, 59, 67, 68, 0, 56, 69, 0, 63, 0,
1019 66, 0, 92, 0, 93, 86, 84, 85, 0, 150,
1020 0, 0, 0, 0, 0, 143, 0, 0, 159, 166,
1021 651, 158, 0, 273, 279, 273, 273, 0, 388, 273,
1022 374, 0, 377, 0, 13, 109, 109, 144, 471, 556,
1023 178, 273, 0, 0, 53, 55, 61, 60, 62, 0,
1024 0, 109, 83, 109, 151, 148, 155, 154, 0, 152,
1025 153, 157, 142, 0, 162, 0, 0, 0, 0, 0,
1026 651, 265, 391, 382, 386, 273, 366, 369, 102, 108,
1027 104, 618, 50, 71, 70, 0, 0, 0, 95, 97,
1028 149, 163, 160, 0, 164, 165, 167, 120, 273, 0,
1029 389, 392, 0, 57, 64, 161, 132, 119, 273, 65,
1033 static const short yydefgoto[] = { 1212,
1034 82, 83, 84, 85, 122, 320, 321, 86, 667, 778,
1035 322, 803, 919, 87, 699, 921, 904, 89, 776, 777,
1036 881, 882, 982, 1027, 1028, 983, 984, 1095, 1096, 1097,
1037 1150, 1098, 1099, 1100, 1186, 808, 809, 893, 925, 894,
1038 1036, 1037, 1107, 1038, 1039, 895, 985, 986, 927, 1009,
1039 1010, 1179, 1180, 987, 928, 1011, 897, 1209, 1199, 898,
1040 1057, 899, 1048, 1123, 90, 289, 453, 455, 91, 1043,
1041 1076, 1044, 1159, 1045, 1120, 1121, 162, 163, 526, 164,
1042 936, 165, 166, 425, 564, 167, 168, 169, 170, 171,
1043 172, 173, 174, 175, 176, 558, 177, 560, 178, 559,
1044 828, 179, 207, 494, 333, 290, 93, 678, 784, 115,
1045 606, 94, 316, 181, 287, 116, 117, 903, 799, 914,
1046 96, 97, 98, 99, 347, 291, 461, 101, 297, 102,
1047 788, 1132, 791, 1134, 681, 1066, 684, 1068, 103, 906,
1048 907, 1063, 1064, 104, 689, 599, 600, 813, 119, 483,
1049 112, 113, 106, 614, 615, 484, 485, 486, 701, 620,
1050 348, 819, 815, 503, 372, 373, 208, 228, 209, 210,
1051 374, 933, 1080, 212, 664, 213, 214, 215, 216, 183,
1052 430, 375, 376, 488, 637, 377, 335, 514, 378, 188,
1053 379, 570, 786, 999, 221, 583, 521, 429, 190, 584,
1054 585, 380, 191, 192, 381, 661, 624, 382, 224, 383,
1055 387, 719, 755, 879, 756, 757, 758, 759, 760, 761,
1056 762, 763, 764, 765, 766, 767, 768, 769, 770, 771,
1057 978, 1142, 772, 1084, 384, 385, 197, 386, 294, 334,
1061 static const short yypact[] = { 1967,
1062 -32768, 135, 5675,-32768, 6518,-32768, 578, 1881, 3275, 3275,
1063 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1064 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1065 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1066 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1067 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1068 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1069 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 396,-32768,-32768,
1070 -32768, 2143,-32768,-32768,-32768, 107,-32768,-32768, 5291,-32768,
1071 184,-32768,-32768,-32768, 89, 6353, 6353,-32768, 6353, 206,
1072 35,-32768, 969,-32768,-32768, 578,-32768,-32768,-32768,-32768,
1073 -32768,-32768, 135,-32768,-32768, 310,-32768, 206,-32768,-32768,
1074 -32768, 5675,-32768, 340,-32768, 5837,-32768, 386, 394, 413,
1075 -32768, 423, 578, 330, 455, 1693,-32768, 2517, 5837, 5837,
1076 5837, 5837, 5837, 5837,-32768, 5848, 5848, 434,-32768, 479,
1077 538, 544, 560, 463, 171, 4738,-32768, 478, 504,-32768,
1078 556,-32768, 837, 1023,-32768,-32768,-32768, 1014, 481, 568,
1079 404, 793, 557, 549, 554, 571, 111,-32768,-32768, 297,
1080 -32768, 3318, 597, 607,-32768,-32768,-32768,-32768, 663, 2938,
1081 -32768, 4738,-32768, 3318,-32768, 3318,-32768,-32768, 688, 704,
1082 -32768, 710,-32768, 2706, 556, 706, 336, 651, 3085,-32768,
1083 3275,-32768,-32768,-32768, 6113,-32768,-32768,-32768,-32768, 732,
1084 739,-32768, 3275, 3275, 3318,-32768,-32768, 662,-32768,-32768,
1085 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1086 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1087 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1088 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1089 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1090 -32768,-32768,-32768,-32768,-32768, 737, 756,-32768,-32768,-32768,
1091 206, 5134,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1092 768, 666,-32768,-32768, 578, 578, 25,-32768, 107,-32768,
1093 -32768,-32768,-32768, 771,-32768,-32768, 776, 774, 666, 184,
1094 -32768, 129, 775,-32768, 578,-32768, 69, 5837,-32768,-32768,
1095 -32768,-32768,-32768,-32768, 785, 5837, 5837, 5837, 1837, 792,
1096 -32768,-32768,-32768, 411, 283, 5982, 493, 796, 805,-32768,
1097 -32768,-32768,-32768,-32768,-32768, 814, 5837,-32768,-32768, 5837,
1098 844, 846, 865, 874, 876, 5837,-32768, 1338, 658, 658,
1099 658,-32768,-32768, 4738,-32768,-32768,-32768,-32768, 836,-32768,
1100 -32768, 4738,-32768, 4738,-32768,-32768,-32768, 4102, 5837,-32768,
1101 -32768, 179, 5837, 5837, 5837, 5837, 5837, 5837, 5837, 5837,
1102 5837, 5837, 5837, 5837, 5837, 5837, 5837, 5837, 5837, 5837,
1103 5837, 5837, 5837, 5837, 5837, 5837, 5837, 5837, 5837,-32768,
1104 -32768,-32768,-32768, 5837, 905,-32768,-32768, 2328,-32768,-32768,
1105 877,-32768, 895,-32768, 5837, 428, 872, 891,-32768,-32768,
1106 -32768,-32768, 6113,-32768,-32768,-32768, 2895, 963,-32768,-32768,
1107 5837, 374, 3465, 666, 907,-32768, 666,-32768, 462, 6518,
1108 893, 902, 934, 972, 995, 972, 578, 1033, 666,-32768,
1109 666,-32768,-32768,-32768, 911, 935, 1003,-32768, 666, 129,
1110 -32768, 578, 1029,-32768, 1044, 578, 154, 1039,-32768, 194,
1111 1049, 256, 1049, 1056,-32768,-32768,-32768,-32768, 4328, 1067,
1112 224,-32768, 264, 5837,-32768,-32768, 1088,-32768,-32768,-32768,
1113 -32768,-32768,-32768, 1101, 1096, 939, 945, 970,-32768, 3465,
1114 -32768,-32768, 1143, 1131,-32768, 382,-32768, 293, 578, 578,
1115 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1116 -32768,-32768,-32768,-32768, 1014, 1014, 481, 481, 568, 568,
1117 568, 568, 404, 404, 793, 557, 549, 5837, 5837, 5837,
1118 -32768, 5868, 5879,-32768,-32768, 5523,-32768, 3128, 3649,-32768,
1119 -32768, 1133, 542,-32768,-32768, 1134, 1135,-32768, 1136,-32768,
1120 4017,-32768,-32768, 3833, 4060,-32768, 907,-32768,-32768, 1137,
1121 -32768,-32768, 1144, 1147,-32768, 1148, 1150,-32768, 637,-32768,
1122 1149,-32768,-32768,-32768, 310,-32768, 183,-32768,-32768, 5837,
1123 381, 666,-32768,-32768, 1153,-32768,-32768, 1165, 6518,-32768,
1124 -32768,-32768,-32768, 1152,-32768, 1837,-32768,-32768, 1151, 690,
1125 264, 4554, 1155,-32768,-32768,-32768, 1161,-32768,-32768, 1097,
1126 1110, 1115,-32768, 1163,-32768, 5837,-32768,-32768,-32768,-32768,
1127 554, 1008, 571, 5837,-32768, 5837,-32768,-32768,-32768, 4243,
1128 4738, 5837,-32768, 5899, 5837,-32768,-32768,-32768,-32768,-32768,
1129 4286, 4469,-32768, 4512,-32768, 1164,-32768,-32768,-32768,-32768,
1130 -32768, 1184,-32768,-32768, 1185,-32768, 578,-32768, 578, 1188,
1131 2139,-32768,-32768, 1181,-32768, 1186,-32768, 81,-32768,-32768,
1132 578, 734, 4738, 1192,-32768,-32768, 317, 1187,-32768, 1189,
1133 98, 1194, 1198,-32768,-32768,-32768,-32768, 5837, 5899,-32768,
1134 -32768,-32768,-32768, 1200, 1201,-32768,-32768, 604, 5837, 5837,
1135 5837, 5837, 5837, 5837, 5837, 5848, 5848, 1193, 766, 784,
1136 794, 956, 1692, 797, 1042, 1000, 990, 570, 1047, 1190,
1137 1174, 1191, 1172, 254, 1203,-32768,-32768,-32768,-32768,-32768,
1138 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1139 -32768,-32768, 815, 857,-32768,-32768, 1024,-32768,-32768,-32768,
1140 4695,-32768,-32768,-32768,-32768, 6440,-32768,-32768, 6440,-32768,
1141 -32768,-32768,-32768, 5837, 1099,-32768, 2139,-32768,-32768, 2139,
1142 1142,-32768,-32768,-32768, 1208,-32768,-32768,-32768, 1457,-32768,
1143 107, 1210,-32768, 590,-32768, 264,-32768,-32768, 1211,-32768,
1144 -32768,-32768, 1214, 578,-32768, 868, 1216, 5837,-32768,-32768,
1145 1217, 879, 1219, 886, 888, 899, 912, 913, 915, 918,
1146 920, 5837, 5004, 5837, 942, 943, 214, 5837, 5837, 5837,
1147 5837, 5837, 5837, 5837, 5837, 5837, 5837, 5837, 5837, 5837,
1148 5837, 5837, 5837, 5837, 5837, 5837, 5837, 5837, 5837, 5837,
1149 5837, 5837, 5837, 5837, 5837,-32768, 5837,-32768, 1221, 1227,
1150 -32768, 1069, 49,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1151 -32768,-32768,-32768, 1021,-32768,-32768,-32768,-32768, 1113,-32768,
1152 -32768, 2139, 484,-32768, 206, 5369,-32768, 6440, 5369, 6440,
1153 -32768,-32768,-32768, 1108,-32768,-32768,-32768,-32768,-32768,-32768,
1154 184, 469,-32768,-32768,-32768, 1040,-32768,-32768, 548,-32768,
1155 -32768,-32768, 5550,-32768,-32768, 516,-32768, 1229, 907,-32768,
1156 -32768, 944, 5837, 1228, 950, 951, 510, 578, 578,-32768,
1157 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1158 958, 967, 968, 835, 1022, 383, 760, 109, 440, 442,
1159 654, 609, 806, 550, 698, 255, 554, 5837, 571, 5899,
1160 -32768,-32768, 1070, 1073, 6244, 57, 55,-32768,-32768, 823,
1161 -32768,-32768,-32768,-32768,-32768, 1233, 87,-32768,-32768, 5369,
1162 -32768, 5369,-32768,-32768, 152, 581,-32768, 1166, 6244, 57,
1163 55,-32768, 561,-32768,-32768, 578,-32768, 1064, 980,-32768,
1164 985, 986,-32768,-32768, 1112,-32768,-32768, 1077, 620, 4977,
1165 -32768,-32768,-32768,-32768,-32768, 614,-32768, 57, 861, 95,
1166 95,-32768,-32768, 327, 669, 1169,-32768, 156,-32768,-32768,
1167 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 687,-32768, 666,
1168 -32768,-32768, 1237,-32768, 1238, 1239,-32768, 1241,-32768,-32768,
1169 -32768, 1175,-32768, 4819, 614,-32768, 669,-32768, 355, 1240,
1170 -32768,-32768,-32768,-32768, 1244, 991, 996,-32768, 620, 620,
1171 -32768,-32768,-32768,-32768, 1182, 620,-32768, 1065,-32768, 1247,
1172 -32768, 1195, 57, 1196,-32768,-32768,-32768,-32768, 639, 327,
1173 586, 578, 578, 95, 1197,-32768, 156, 156,-32768, 615,
1174 700,-32768, 156,-32768,-32768, 5837, 87, 1255,-32768,-32768,
1175 -32768, 1242,-32768, 1254,-32768, 1204, 1204,-32768,-32768,-32768,
1176 1001, 5837, 1202, 1103,-32768,-32768,-32768,-32768,-32768, 620,
1177 620, 1204,-32768, 1204,-32768,-32768,-32768, 327, 1252,-32768,
1178 -32768, 327,-32768, 727, 615, 642, 578, 578, 156, 1206,
1179 700,-32768,-32768,-32768,-32768, 5837,-32768,-32768,-32768,-32768,
1180 -32768,-32768,-32768,-32768,-32768, 620, 1262, 1256,-32768,-32768,
1181 -32768,-32768,-32768, 1261,-32768,-32768, 615,-32768,-32768, 1209,
1182 -32768,-32768, 1257,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1183 -32768, 1289, 1301,-32768
1186 static const short yypgoto[] = {-32768,
1187 -32768, 1220,-32768,-32768,-32768,-32768, -395, -102,-32768,-32768,
1188 978,-32768,-32768,-32768,-32768,-32768, 78,-32768, 526,-32768,
1189 405,-32768,-32768,-32768,-32768,-32768,-32768, -981,-32768,-32768,
1190 -32768, -676,-32768,-32768,-32768, -698,-32768,-32768,-32768, -711,
1191 298, 207,-32768,-32768, 271, 417,-32768,-32768, 387,-32768,
1192 -32768, -998, -700,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1193 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1194 -32768, -950, 146, 307, -976, 198,-32768, -648, 494, 733,
1195 -32768,-32768, -617,-32768,-32768, 7, -342, -341, -318, -335,
1196 -347, -403, -352, -473, -472,-32768, -592,-32768, -117,-32768,
1197 -32768, 932, 1082, -612, -359, 1,-32768,-32768,-32768, -467,
1198 -32768,-32768,-32768, 0, -277, 851,-32768, -804, -635,-32768,
1199 -32768,-32768,-32768,-32768,-32768, 163, 744,-32768, 277,-32768,
1200 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 324, -690,
1201 -805,-32768, 197,-32768,-32768, 653, 659, 533, 5, -406,
1202 1235,-32768, 15,-32768,-32768, -554,-32768,-32768,-32768, 648,
1203 -295, 1004,-32768, -488, 450,-32768, 1342,-32768, 1129,-32768,
1204 1290,-32768,-32768,-32768,-32768, -97,-32768,-32768,-32768,-32768,
1205 117, 1366, 1434,-32768,-32768, 1473,-32768,-32768, -358,-32768,
1206 977, 274, -560, -713,-32768, 839,-32768,-32768, 927, -83,
1207 -184, 216,-32768, 273, 102,-32768,-32768, 162,-32768, 322,
1208 -32768,-32768, 641,-32768, 393,-32768,-32768,-32768,-32768,-32768,
1209 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1210 -32768,-32768,-32768,-32768, 1510,-32768,-32768, 1624, -79, 227,
1218 static const short yytable[] = { 95,
1219 92, 604, 95, 309, 105, 292, 513, 462, 332, 515,
1220 229, 230, 631, 704, 556, 742, 114, 231, 232, 233,
1221 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
1222 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
1223 254, 255, 256, 467, 477, 579, 744, 257, 258, 259,
1224 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1225 270, 271, 272, 273, 545, 546, 557, 547, 548, 555,
1226 742, 754, 293, 481, 284, 708, 896, 88, 1040, 553,
1227 554, 95, 92, 613, 651, 806, 105, 653, 1041, 1109,
1228 1110, 577, 549, 550, 551, 552, 588, 926, 909, 301,
1229 998, 744, 481, 998, 918, 95, 437, 1143, 1062, 193,
1230 1006, 441, 295, 442, 1146, 314, 315, 317, 1040, 303,
1231 2, 323, 822, 789, 184, 446, 754, 312, 1041, -598,
1232 -274, 443, 286, -598, -96, -96, 325, 346, 1181, 629,
1233 1164, 1165, 1031, 1032, 356, 350, 351, 352, 353, 354,
1234 355, 421, -274, 1189, 476, 1190, 823, 409, 410, 88,
1235 1158, 913, 100, 1162, 915, 118, 422, 121, 2, 194,
1236 797, 1070, 1033, 1034, 424, 328, 366, 367, 497, 1117,
1237 139, 140, 141, 142, 143, 144, 1035, 991, 1058, 1118,
1238 752, 753, 1197, 896, 998, 1001, 998, 145, 146, 147,
1239 293, 293, 477, 346, 696, 692, 529, 76, 77, 123,
1240 635, 79, 80, 816, 424, 1158, 697, 1000, 623, 1002,
1241 1007, 148, 530, -273, 222, 222, 107, 908, 515, 107,
1242 910, -96, -96, 107, 199, 199, 199, 76, 1042, 193,
1243 475, 948, 110, 111, 100, 752, 753, -273, 332, 499,
1244 694, -382, -382, -382, 349, -382, -382, 949, 296, 296,
1245 750, 296, 157, 76, 77, 123, 993, 79, 80, 76,
1246 77, 123, 710, 79, 80, -610, 424, 76, 1042, -610,
1247 625, 223, 223, 193, 324, 451, 1067, -273, 1069, 632,
1248 301, 193, 456, 418, 876, 193, 462, 193, 426, 194,
1249 423, 95, 460, 424, 463, 465, 459, 497, 107, 877,
1250 432, 751, 433, 424, 423, 750, 749, 424, 95, 648,
1251 1014, 745, 746, 474, 323, 816, 193, 346, 748, 195,
1252 313, 742, 107, 332, 76, 329, 330, 160, 76, 1119,
1253 713, 448, 499, 194, 569, 747, 500, 341, 107, 441,
1254 2, 194, 1111, 439, 1112, 194, 424, 194, 724, 107,
1255 725, 501, 744, 327, 199, 108, 751, 346, 108, 1071,
1256 1113, 749, 124, 298, 708, 300, 745, 746, 481, -433,
1257 499, 332, 199, 748, 660, 481, 194, 754, 274, 275,
1258 276, 277, 278, 279, 280, 281, 282, 283, 578, 672,
1259 747, 977, 646, -595, 979, 695, 647, -595, 199, 336,
1260 542, 543, 544, 1144, 407, 408, 199, 337, 199, 222,
1261 199, 299, 199, 302, 222, 304, 222, 308, 496, -660,
1262 199, 424, 310, 833, 911, 199, 338, 199, 222, 222,
1263 411, 412, 318, 456, 319, 439, 339, 108, 424, 199,
1264 199, 199, 497, 95, 413, 414, 95, 360, 586, 195,
1265 -599, 589, -600, 594, -599, 597, -600, 603, 95, 975,
1266 95, 108, 342, 1187, 1188, 610, 223, 365, 323, -382,
1267 -660, 223, -382, 223, -382, 619, 392, 326, 409, 410,
1268 409, 410, 332, 325, 361, 223, 223, 627, 340, -654,
1269 500, 994, 633, 195, 995, 460, 752, 753, 498, 1203,
1270 634, 195, 407, 408, 332, 195, -273, 195, 499, 964,
1271 965, 976, 966, 967, 974, -658, 2, 693, 107, 193,
1272 424, 107, 107, 107, 972, 973, 1022, 76, 77, 123,
1273 1015, 79, 80, 1016, 567, 107, 195, 968, 969, 970,
1274 971, 107, 481, 362, -103, -103, -382, -382, -382, 363,
1275 -382, -382, 424, -382, -382, -382, 663, -382, -382, 456,
1276 -606, -382, 706, -382, -606, 364, 750, -655, -660, -660,
1277 1018, -382, -660, -660, 456, 417, 499, 418, 676, 194,
1278 631, 460, 1125, 419, 2, 516, 517, 518, 293, 811,
1279 199, 995, 415, 416, 690, 691, 866, 867, 199, 1040,
1280 199, 323, 1156, -273, 454, 499, 409, 410, 457, 1041,
1281 868, 869, 498, 2, 424, 420, 325, 751, 831, -603,
1282 633, 293, 749, -603, 1103, 460, 469, 745, 746, 471,
1283 1166, 431, 1167, 1090, 748, 411, 412, 479, 721, 722,
1284 482, -103, -103, 346, 199, 346, 686, 687, 1168, 413,
1285 414, 747, 222, 1155, 1111, 1040, 1112, 108, 1193, 193,
1286 464, 466, 468, 199, -601, 1041, 332, 785, -601, 199,
1287 107, 428, 1113, 107, 108, 792, 293, 794, 427, 1114,
1288 326, 800, 801, 107, 481, 107, 805, 107, -491, 2,
1289 619, 812, 409, 410, 1124, 107, 500, 995, 107, -657,
1290 940, 811, 107, -382, 706, -382, 814, 293, -608, 223,
1291 1169, 501, -608, -382, 1085, 434, 417, -656, 346, 194,
1292 -382, -382, -382, 435, -382, -382, 834, 835, 836, 837,
1293 838, 839, 440, 76, 77, 123, 199, 79, 80, 195,
1294 444, 1192, 1166, 449, 1167, 107, 107, -273, 445, 499,
1295 76, 77, 123, 450, 79, 80, 1173, 2, 76, 1042,
1296 1168, 1157, 76, 77, 123, 482, 79, 80, 931, 452,
1297 -596, 702, 590, 902, -596, 458, -563, 595, 470, 598,
1298 -563, 407, 408, 472, 199, 199, 473, 607, 478, 1091,
1299 1092, 612, 76, 1093, -562, 1094, 489, 199, -562, 495,
1300 199, 199, 930, 812, -564, 633, 1202, -584, -564, 108,
1301 504, -584, 108, 519, 76, 1042, -604, 1157, 814, 505,
1302 -604, 522, 601, 523, 108, -561, 108, 506, 107, -561,
1303 76, 1008, 411, 412, 326, 415, 416, 616, 76, 77,
1304 123, 621, 79, 80, 520, -593, 413, 414, 331, -593,
1305 388, 508, 389, 509, -382, 961, 962, 963, 404, 405,
1306 406, 331, 331, 331, 331, 331, 331, 424, 358, 359,
1307 -382, 880, 510, 390, 391, 571, 199, 199, 424, 195,
1308 773, 511, 938, 512, 649, 650, 574, 199, 199, 424,
1309 199, 1030, 582, 942, 996, 572, -578, 1046, -583, 590,
1310 -578, 1003, -583, 107, 575, 107, 76, 77, 123, -582,
1311 79, 80, 592, -582, 107, 1074, 1072, 107, 107, 199,
1312 587, 1078, -581, -580, 482, -579, -581, -580, -576, -579,
1313 -577, 1049, -576, 1050, -577, 773, 562, 563, 905, 1019,
1314 1102, 905, 593, 707, 1051, 1052, 1104, 1053, 712, 1054,
1315 1055, 609, -573, -574, -565, 1115, -573, -574, -565, 582,
1316 -568, 646, 1056, 576, -568, 1021, 309, 326, -588, 843,
1317 591, 844, -588, -382, 189, 220, 220, -589, -590, 775,
1318 -273, -589, -590, 1059, 1136, 1137, 95, 1138, 608, -382,
1319 -586, 1065, 845, 846, -586, -569, -567, 199, 332, -569,
1320 -567, -571, 812, 596, 1081, -571, -572, 589, 582, 460,
1321 -572, -570, 1086, 1087, 1182, -570, 611, 1079, 424, 723,
1322 456, 862, 863, 582, 675, 305, 306, 307, 864, 865,
1323 107, 1170, -592, 76, 1106, 393, -592, 404, 405, 406,
1324 107, 602, 601, 617, 601, 404, 405, 406, 332, 95,
1325 622, 1126, 1128, 807, 618, 847, 621, 108, 905, 424,
1326 905, 905, 905, 626, 456, 859, 860, 861, 812, 394,
1327 395, 396, 397, 398, 399, 400, 401, 402, 403, 180,
1328 630, 1200, 883, 884, 885, 883, 884, 885, 331, 870,
1329 871, 886, 887, 888, 889, 890, 891, 892, 636, 675,
1330 727, 922, 923, 924, 189, 1147, 1148, 1149, 912, 687,
1331 639, 675, 638, 1172, 640, 917, 95, 1004, 1005, 1176,
1332 641, 1065, 424, 1088, 1184, 1185, 331, 331, 331, 331,
1333 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
1334 331, 331, 817, 644, 645, 642, 662, 665, 189, 677,
1335 668, 666, 905, 680, 905, 682, 189, 683, 685, 700,
1336 189, 688, 189, 698, 107, 107, 703, 705, 711, 108,
1337 220, 438, 714, 331, 715, 220, 718, 220, 783, 937,
1338 886, 887, 888, 889, 890, 891, 892, 716, 1207, 220,
1339 220, 189, 717, 787, 790, 796, 773, 802, 1211, 818,
1340 804, 820, 873, 1047, 824, 821, 842, 344, 872, 345,
1341 989, 990, 825, 107, 829, 830, 875, 878, 997, 916,
1342 874, 331, 920, 929, 941, 934, 331, 1047, 935, 107,
1343 939, 980, 107, 943, 981, -52, 1017, -49, 1020, 1029,
1344 1061, 1083, 1013, 1073, 1089, 1101, 1116, 1127, 1131, 1130,
1345 1133, 1177, 1135, 180, 1139, 1108, 1047, 1047, 1141, 1145,
1346 1151, 180, 1175, 1178, 1122, 180, 884, 180, 1191, 1204,
1347 1205, 1210, 1152, 1154, 1163, 436, 107, 1206, 1213, 1183,
1348 331, 507, 331, 1198, 655, 657, 1208, 182, 211, 211,
1349 1214, 285, 480, 900, 992, 107, 180, 1075, 1105, 1153,
1350 988, 1194, 1012, 1023, 1024, 1101, 1101, 1077, 1060, 527,
1351 1171, 605, 1101, 1174, 531, 532, 533, 534, 535, 536,
1352 537, 538, 539, 540, 541, 679, 946, 1047, 107, 107,
1353 1047, 795, 331, 1122, 1122, 793, 932, 311, 810, 1122,
1354 502, 227, 447, 107, 568, 561, -517, 1140, 643, 827,
1355 0, 368, 108, 524, 331, 0, 139, 140, 141, 142,
1356 143, 144, 1026, 185, 217, 217, 1101, 1101, 108, 0,
1357 0, 1082, 0, 145, 146, 147, 0, 1129, 0, 0,
1358 0, 0, 1047, 107, 107, 1122, 743, 0, 0, 0,
1359 0, 0, 0, 0, 189, 0, 0, 148, 0, 487,
1360 0, 0, 1101, 0, 0, 0, 0, 490, 491, 492,
1361 493, 0, 0, 220, 0, 108, 0, 182, 0, 0,
1362 0, 0, 0, 0, 0, 0, 0, 0, 487, 0,
1363 0, 186, 218, 218, 108, 0, 0, 0, 157, 487,
1364 0, 743, 0, 0, 0, 0, 0, 0, 0, 0,
1365 0, 0, 331, 331, 331, 331, 331, 331, 840, 841,
1366 528, 182, 0, 0, 0, 0, 0, 1160, 1161, 182,
1367 187, 219, 219, 182, 0, 182, 0, 0, 0, 0,
1368 0, 0, 108, 211, 0, 0, 0, 1201, 211, 0,
1369 211, 0, 0, 185, 0, 0, 0, 0, 0, 180,
1370 0, 0, 211, 211, 182, 0, 573, 196, 225, 225,
1371 76, 329, 330, 160, 0, 0, 331, 0, 922, 923,
1372 924, 0, 1195, 1196, 886, 887, 888, 889, 890, 891,
1373 892, 0, 0, 0, 189, 0, 0, 185, 0, 0,
1374 0, 0, 0, 0, 0, 185, 0, 0, 0, 185,
1375 331, 185, 0, 0, 0, 0, 0, 0, 0, 217,
1376 0, 186, 0, 0, 217, 0, 217, 720, 0, 0,
1377 0, 0, 0, 0, 0, 0, 0, 0, 217, 217,
1378 185, 331, 331, 331, 331, 331, 331, 331, 331, 331,
1379 331, 331, 331, 331, 331, 331, 331, 331, 0, 331,
1380 187, 0, 0, 0, 0, 186, 0, 0, 0, 0,
1381 0, 0, 798, 186, 0, 0, 0, 186, 0, 186,
1382 0, 198, 226, 226, 0, 0, 0, 218, 0, 0,
1383 652, 0, 218, 0, 218, 0, 0, 196, 0, 180,
1384 0, 0, 0, 0, 187, 0, 218, 218, 186, 0,
1385 0, 0, 187, 0, 0, 0, 187, 0, 187, 0,
1386 0, 0, 0, 0, 0, 331, 219, 0, 0, 0,
1387 0, 219, 0, 219, 0, 0, 0, 0, 0, 0,
1388 0, 196, 0, 0, 0, 219, 219, 187, 0, 196,
1389 0, 0, 0, 196, 0, 196, 0, 493, 0, 0,
1390 343, 0, 743, 225, 848, 0, 328, 182, 225, 0,
1391 225, 139, 140, 141, 142, 143, 144, 0, 798, 0,
1392 0, 798, 225, 225, 196, 487, 211, 487, 145, 146,
1393 147, 0, 0, 728, 0, 0, 774, 0, 849, 850,
1394 851, 852, 853, 854, 855, 856, 857, 858, 0, 0,
1395 0, 198, 148, 0, 0, 0, 0, 0, 0, 0,
1396 0, 0, 0, 944, 527, 0, 0, 0, 0, 950,
1397 951, 952, 953, 954, 955, 956, 957, 958, 959, 960,
1398 0, 0, 0, 185, 0, 0, 0, 0, 0, 826,
1399 0, 0, 0, 157, 0, 198, 0, 0, 0, 0,
1400 832, 0, 217, 198, 0, 0, 0, 198, 0, 198,
1401 0, 0, 0, 0, 0, 0, 0, 226, 0, 0,
1402 0, 0, 226, 798, 226, 0, 0, 0, 0, 0,
1403 0, 0, 0, 0, 0, 0, 226, 226, 198, 0,
1404 0, 0, 0, 0, -255, 0, 0, 182, 331, 0,
1405 328, 186, 0, 0, 0, 139, 140, 141, 142, 143,
1406 144, 0, 0, 0, 331, 76, 329, 330, 160, 0,
1407 218, 125, 145, 146, 147, 0, 126, 127, 128, 0,
1408 129, 130, 131, 132, 133, 134, 135, 136, 137, -517,
1409 187, 0, 0, 0, 138, 0, 148, 0, 331, 139,
1410 140, 141, 142, 143, 144, 0, 0, 0, 0, 219,
1411 0, 0, -273, -273, 0, 947, 145, 146, 147, 0,
1412 0, 0, 0, 185, 0, 0, 798, 196, 0, 0,
1413 0, 0, 0, 0, 0, 0, 0, 157, 0, 0,
1414 148, 0, 0, 0, 0, 0, 225, 0, 0, 0,
1415 0, 0, 0, 0, 0, 0, -1, 1, 0, 0,
1416 0, 0, 149, 150, 151, 152, 153, 154, 155, 0,
1417 0, 0, 0, 0, 0, 0, 0, 156, 0, 0,
1418 -273, 157, 0, 0, 0, 0, 0, 0, 0, 0,
1419 2, 186, 0, 0, 0, 0, 0, 0, 0, 0,
1420 0, 3, 0, 0, 493, 0, 0, 0, 0, 76,
1421 329, 330, 160, 0, 0, 0, 0, 0, 0, 0,
1422 0, 0, 0, -382, -382, -382, 0, 4, 0, 0,
1423 187, 5, 6, 7, 0, 0, 0, 0, 0, 0,
1424 0, 198, 0, 0, 0, 8, 9, 10, 0, 1025,
1425 0, 0, 0, 76, 158, 159, 160, 161, 80, 0,
1426 226, 0, 0, 0, 11, 12, 13, 196, 14, 15,
1427 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1428 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1429 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1430 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1431 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1432 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1433 74, 75, -2, 1, 0, 0, 0, 0, 0, 76,
1434 77, 78, 0, 79, 80, 81, 0, 797, 0, 0,
1435 0, 0, 328, 0, 0, 0, -273, 139, 140, 141,
1436 142, 143, 144, 0, 0, 0, 2, 0, 0, 0,
1437 0, 0, 0, 0, 145, 146, 147, 3, 0, 0,
1438 0, 198, 0, 0, 0, 0, 0, 0, 0, 0,
1439 0, 0, 0, 0, 0, 0, 0, 0, 148, -382,
1440 -382, -382, 0, 4, 0, 0, 0, 5, 6, 7,
1441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1442 0, 8, 9, 10, 0, 0, 0, 0, 0, 0,
1443 0, 0, 0, 0, 0, 0, 0, 0, 0, 157,
1444 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1445 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1446 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1447 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1448 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1449 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1450 68, 69, 70, 71, 72, 73, 74, 75, 0, 0,
1451 0, 76, 329, 330, 160, 76, 77, 78, 125, 79,
1452 80, 81, 0, 126, 127, 128, 0, 129, 130, 131,
1453 132, 133, 134, 135, 136, 137, -517, 565, 0, 0,
1454 0, 138, 0, 0, 0, 0, 139, 140, 141, 142,
1455 143, 144, 0, 0, 0, 0, 0, 0, 0, -273,
1456 -273, 0, 3, 145, 146, 147, 0, 0, 0, 0,
1457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1458 0, 0, 0, 0, -382, -382, -382, 148, 4, 0,
1459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1461 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1462 0, 0, 0, 0, 156, 11, 12, 13, 157, 14,
1463 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1464 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1465 34, 35, 36, 37, 38, 0, 39, 40, 41, 42,
1466 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1467 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1468 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1469 73, 74, 75, 0, 0, 0, 0, 0, 0, 0,
1470 76, 158, 566, 160, 161, 80, 81, 125, 0, 0,
1471 0, 0, 126, 127, 128, 0, 129, 130, 131, 132,
1472 133, 134, 135, 136, 137, -517, 0, 0, 0, 0,
1473 138, 0, 0, 0, 0, 139, 140, 141, 142, 143,
1474 144, 0, 0, 0, 0, 0, 0, 0, -273, -273,
1475 0, 0, 145, 146, 147, 0, 0, 0, 0, 0,
1476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1477 0, 0, 0, -273, -273, -273, 148, 0, 0, 0,
1478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1479 0, 0, 0, 0, 0, 0, 0, 0, 0, 150,
1480 151, 152, 153, 154, 155, 0, 0, 0, 0, 0,
1481 0, 0, 0, 156, -273, -273, -273, 157, -273, -273,
1482 -273, -273, -273, -273, -273, -273, -273, -273, 0, -273,
1483 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1484 -273, -273, -273, -273, 0, -273, -273, -273, -273, -273,
1485 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1486 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1487 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1488 -273, -273, 0, 0, 0, 0, 0, 0, 0, 76,
1489 158, 159, 160, 161, 80, -273, 201, 0, 0, 0,
1490 0, 126, 127, 128, 0, 0, 202, 131, 132, 133,
1491 134, 135, 136, 203, -517, -521, 0, 0, 0, 204,
1492 0, 0, 0, 0, 139, 140, 141, 142, 143, 144,
1493 0, 0, 0, 0, 0, 0, 0, -273, -273, 0,
1494 0, 145, 146, 147, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1496 0, 0, -273, -273, -273, 148, 0, 0, 0, 0,
1497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1498 0, 0, 0, 0, 0, 0, 0, 0, 150, 151,
1499 152, 153, 154, 155, 0, 0, 0, 0, 0, 0,
1500 0, 0, 156, -273, -273, -273, 157, -273, -273, -273,
1501 -273, -273, -273, -273, -273, -273, -273, 0, -273, -273,
1502 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1503 -273, -273, -273, 0, -273, -273, -273, -273, -273, -273,
1504 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1505 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1506 -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
1507 -273, 0, 0, 0, 0, 0, 0, 0, 76, 158,
1508 159, 160, 205, 206, -273, 201, 0, 0, 0, 0,
1509 126, 127, 128, 0, 0, 202, 131, 132, 133, 134,
1510 135, 136, 203, -465, -465, 0, 0, 0, 204, -465,
1511 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1512 0, 0, 0, 0, 0, 0, -273, -273, 125, 0,
1513 145, 146, 147, 126, 127, 128, 0, 129, 130, 131,
1514 132, 133, 134, 135, 136, 137, -517, 0, 0, 0,
1515 0, 138, 0, 0, 148, 0, 139, 140, 141, 142,
1516 143, 144, 0, 0, 0, 0, 0, 0, 0, -273,
1517 -273, 0, 0, 145, 146, 147, -465, 150, 151, 152,
1518 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1519 0, 156, 0, 0, 0, 157, 0, 148, 0, 0,
1520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, 0, 0, -492,
1522 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1523 0, 0, 0, 0, 156, 0, 0, 0, 157, 0,
1524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1526 0, 0, 0, 0, 0, 0, 0, 76, 158, 159,
1527 160, 205, 206, 0, 0, 201, 0, 0, 0, 0,
1528 126, 127, 128, 0, 0, 202, 131, 132, 133, 134,
1529 135, 136, 203, -517, -521, 0, 0, 0, 204, 0,
1530 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1531 76, 158, 159, 160, 161, 80, -273, -273, 125, 0,
1532 145, 146, 147, 126, 127, 128, 0, 129, 130, 131,
1533 132, 133, 134, 135, 136, 137, -517, 658, 0, 0,
1534 0, 138, 0, 0, 148, 0, 139, 140, 141, 142,
1535 143, 144, 0, 0, 0, 0, 0, 0, 0, -273,
1536 -273, 0, 0, 145, 146, 147, -461, 150, 151, 152,
1537 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1538 0, 156, 0, 0, 0, 157, 0, 148, 0, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1541 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1542 0, 0, 0, 0, 156, 0, 0, 0, 157, 0,
1543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1545 0, 0, 0, 0, 0, 0, 0, 76, 158, 159,
1546 160, 205, 206, 0, 0, 201, 0, 0, 0, 0,
1547 126, 127, 128, 0, 0, 202, 131, 132, 133, 134,
1548 135, 136, 203, -517, -521, 0, 0, 0, 204, 0,
1549 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1550 76, 158, 159, 160, 161, 80, -273, -273, 125, 0,
1551 145, 146, 147, 126, 127, 128, 0, 129, 130, 131,
1552 132, 133, 134, 135, 136, 137, -517, 0, 0, 0,
1553 0, 138, 0, 0, 148, 0, 139, 140, 141, 142,
1554 143, 144, 0, 0, 0, 0, 0, 0, 0, -273,
1555 -273, 0, 0, 145, 146, 147, 0, 150, 151, 152,
1556 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1557 0, 156, 0, 0, 0, 157, 0, 148, 0, 0,
1558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1560 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1561 0, 0, 0, 0, 156, 0, 0, 0, 157, 0,
1562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1564 0, 0, 0, 0, 0, 0, 0, 76, 158, 159,
1565 160, 205, 206, 0, 0, 0, 0, 0, 0, 0,
1566 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1567 135, 136, 203, -517, 580, 0, 0, 0, 368, 0,
1568 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1569 76, 158, 159, 160, 161, 80, -273, -273, 0, 3,
1570 145, 146, 147, 0, 0, 0, 0, 0, 0, 0,
1571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1572 0, 0, 0, 0, 148, 4, 0, 0, 0, 0,
1573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1574 0, 0, 0, 0, 0, 0, 0, 150, 151, 152,
1575 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1576 0, 581, 11, 12, 13, 157, 14, 15, 16, 17,
1577 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1578 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1579 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1580 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1581 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1582 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1583 369, 0, 0, 370, 0, 0, 371, 76, 158, 566,
1584 160, 161, 80, 81, 126, 127, 128, 0, 129, 130,
1585 131, 132, 133, 134, 135, 136, 203, -517, 659, 0,
1586 0, 0, 368, 0, 0, 0, 0, 139, 140, 141,
1587 142, 143, 144, 0, 0, 0, 0, 0, 0, 0,
1588 -273, -273, 0, 3, 145, 146, 147, 0, 0, 0,
1589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1590 0, 0, 0, 0, 0, 0, 0, 0, 148, 4,
1591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1593 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1594 0, 0, 0, 0, 0, 156, 11, 12, 13, 157,
1595 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1596 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1597 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1598 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1599 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1600 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1601 72, 73, 74, 75, 369, 0, 0, 370, 0, 0,
1602 371, 76, 158, 566, 160, 161, 80, 81, 126, 127,
1603 128, 0, 129, 130, 131, 132, 133, 134, 135, 136,
1604 203, -517, 670, 0, 0, 0, 368, 0, 0, 0,
1605 0, 139, 140, 141, 142, 143, 144, 0, 0, 0,
1606 0, 0, 0, 0, -273, -273, 0, 3, 145, 146,
1607 147, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1609 0, 0, 148, 4, 0, 0, 0, 0, 0, 0,
1610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1611 0, 0, 0, 0, 0, 150, 151, 152, 153, 154,
1612 155, 0, 0, 0, 0, 0, 0, 0, 0, 671,
1613 11, 12, 13, 157, 14, 15, 16, 17, 18, 19,
1614 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1615 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1616 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1617 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1618 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1619 68, 69, 70, 71, 72, 73, 74, 75, 369, 0,
1620 0, 370, 0, 0, 371, 76, 158, 566, 160, 161,
1621 80, 81, 126, 127, 128, 0, 129, 130, 131, 132,
1622 133, 134, 135, 136, 203, -517, 669, 0, 0, 0,
1623 368, 0, 0, 0, 0, 139, 140, 141, 142, 143,
1624 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1625 0, 0, 145, 146, 147, 126, 127, 128, 0, 129,
1626 130, 131, 132, 133, 134, 135, 136, 203, -517, 673,
1627 0, 0, 0, 368, 0, 0, 148, 0, 139, 140,
1628 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1629 0, 0, 0, 0, 0, 145, 146, 147, 0, 150,
1630 151, 152, 153, 154, 155, 0, 0, 0, 0, 0,
1631 0, 0, 0, 156, 0, 328, 525, 157, 0, 148,
1632 139, 140, 141, 142, 143, 144, 0, 0, 0, 0,
1633 0, 0, 0, 0, 0, 0, 0, 145, 146, 147,
1634 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1635 0, 0, 0, 0, 0, 0, 674, 0, 0, 0,
1636 157, 148, 0, 0, 0, 0, 0, 0, 0, 0,
1637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1638 0, 0, 369, 0, 0, 370, 0, 0, 371, 76,
1639 158, 159, 160, 161, 80, 0, 0, 0, 0, 0,
1640 0, 0, 157, 0, 0, 0, 0, 0, 0, 0,
1641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1642 0, 0, 0, 0, 0, 369, 0, 0, 370, 0,
1643 0, 371, 76, 158, 159, 160, 161, 80, 126, 127,
1644 128, 0, 129, 130, 131, 132, 133, 134, 135, 136,
1645 203, -517, 726, 0, 0, 0, 368, 0, 0, 0,
1646 0, 139, 140, 141, 142, 143, 144, 0, 0, 0,
1647 0, 0, 0, 0, 76, 329, 330, 160, 145, 146,
1648 147, 126, 127, 128, 0, 129, 130, 131, 132, 133,
1649 134, 135, 136, 203, -517, 779, 0, 0, 0, 368,
1650 0, 0, 148, 0, 139, 140, 141, 142, 143, 144,
1651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1652 0, 145, 146, 147, 0, 150, 151, 152, 153, 154,
1653 155, 0, 0, 0, 0, 0, 0, 0, 0, 156,
1654 0, 328, 0, 157, 628, 148, 139, 140, 141, 142,
1655 143, 144, 0, 0, 0, 0, 0, 0, 0, 0,
1656 0, 0, 0, 145, 146, 147, 0, 0, 150, 151,
1657 152, 153, 154, 155, 0, 0, 0, 0, 0, 0,
1658 0, 0, 156, 0, 0, 0, 157, 148, 0, 0,
1659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1660 0, 0, 0, 0, 0, 0, 0, 0, 369, 0,
1661 0, 370, 0, 0, 371, 76, 158, 159, 160, 161,
1662 80, 0, 0, 0, 0, 0, 0, 0, 157, 0,
1663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1665 0, 369, 0, 0, 370, 0, 0, 371, 76, 158,
1666 159, 160, 161, 80, 126, 127, 128, 0, 129, 130,
1667 131, 132, 133, 134, 135, 136, 203, -517, 780, 0,
1668 0, 0, 368, 0, 0, 0, 0, 139, 140, 141,
1669 142, 143, 144, 0, 0, 0, 0, 0, 0, 0,
1670 76, 329, 330, 160, 145, 146, 147, 126, 127, 128,
1671 0, 129, 130, 131, 132, 133, 134, 135, 136, 203,
1672 -517, 782, 0, 0, 0, 368, 0, 0, 148, 0,
1673 139, 140, 141, 142, 143, 144, 0, 0, 0, 0,
1674 0, 0, 0, 0, 0, 0, 0, 145, 146, 147,
1675 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1676 0, 0, 0, 0, 0, 781, 0, 328, 0, 157,
1677 709, 148, 139, 140, 141, 142, 143, 144, 0, 0,
1678 0, 0, 0, 0, 0, 0, 0, 0, 0, 145,
1679 146, 147, 0, 0, 150, 151, 152, 153, 154, 155,
1680 0, 0, 0, 0, 0, 0, 0, 0, 156, 0,
1681 0, 0, 157, 148, 0, 0, 0, 0, 0, 0,
1682 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1683 0, 0, 0, 0, 369, 0, 0, 370, 0, 0,
1684 371, 76, 158, 159, 160, 161, 80, 0, 0, 0,
1685 0, 0, 0, 0, 157, 0, 0, 0, 0, 0,
1686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1687 0, 0, 0, 0, 0, 0, 0, 369, 0, 0,
1688 370, 0, 0, 371, 76, 158, 159, 160, 161, 80,
1689 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1690 135, 136, 203, -517, 901, 0, 0, 0, 368, 0,
1691 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1692 0, 0, 0, 0, 0, 0, 76, 329, 330, 160,
1693 145, 146, 147, 126, 127, 128, 0, 129, 130, 131,
1694 132, 133, 134, 135, 136, 203, -517, 0, 0, 0,
1695 0, 368, 0, 0, 148, 0, 139, 140, 141, 142,
1696 143, 144, 0, 0, 0, 0, 0, 0, 0, 0,
1697 0, 0, 0, 145, 146, 147, 0, 150, 151, 152,
1698 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1699 0, 156, 0, 0, 0, 157, 0, 148, 0, 0,
1700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1701 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1702 150, 151, 152, 153, 154, 155, 293, 0, 0, 0,
1703 0, 0, 0, 0, 156, 0, 0, 0, 157, 0,
1704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1705 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
1706 369, 0, 0, 370, 0, 0, 371, 76, 158, 159,
1707 160, 161, 80, 0, 0, -382, -382, -382, 0, 4,
1708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1710 0, 0, 0, 369, 0, 0, 370, 0, 0, 371,
1711 76, 158, 159, 160, 161, 80, 11, 12, 13, 0,
1712 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1713 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1714 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1715 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1716 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1717 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1718 72, 73, 74, 75, 293, 0, 0, 0, 0, 0,
1719 0, 0, 0, 120, 0, 0, 0, 81, 0, 0,
1720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1721 0, 3, 0, 0, 0, 0, 0, 328, 945, 0,
1722 0, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1723 0, 0, 0, 0, 0, 0, 0, 4, 0, 145,
1724 146, 147, 0, 0, 0, 0, 0, 0, 0, 0,
1725 0, 0, 0, 0, -651, 0, 0, 0, 0, 0,
1726 0, 0, 0, 148, 0, 0, 0, 0, 0, 0,
1727 0, 0, 0, 0, 11, 12, 13, 0, 14, 15,
1728 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1729 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1730 35, 36, 37, 38, 157, 39, 40, 41, 42, 43,
1731 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1732 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1733 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1734 74, 75, -139, 0, 0, 0, 0, -139, 0, 0,
1735 0, 120, 0, 0, 0, 81, 0, 0, 0, 0,
1736 0, 0, 0, 0, 0, 0, 0, 0, 3, 0,
1737 0, 0, 0, 0, 0, 0, 76, 329, 330, 160,
1738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1739 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
1740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 11, 12, 13, 0, 14, 15, 16, 17, 18,
1744 19, 20, 21, 22, 23, 0, 24, 25, 26, 27,
1745 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1746 38, 0, 39, 40, 41, 42, 43, 44, 45, 46,
1747 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1748 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1749 67, 68, 69, 70, 71, 72, 73, 74, 75, 288,
1750 0, 0, 0, 0, 0, 0, 0, 0, 120, 0,
1751 0, 0, 81, 0, 0, 0, 0, 0, 0, 0,
1752 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
1756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1757 0, 0, 0, 0, 0, 0, 0, 0, -520, 0,
1758 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1759 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1760 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1761 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1762 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1763 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1764 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1765 70, 71, 72, 73, 74, 75, 0, 0, 0, 0,
1766 0, 0, 0, 0, 0, 120, 11, 12, 13, 81,
1767 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1768 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1769 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1770 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1771 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1772 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1773 72, 73, 74, 75, -658, 0, 0, 0, 0, 0,
1774 0, 0, 0, 120, 0, 0, 0, 81, 0, 0,
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1776 0, 0, 0, 328, -255, 0, 0, 0, 139, 140,
1777 141, 142, 143, 144, 0, 0, 0, 0, 0, -660,
1778 -660, -660, 0, 0, 0, 145, 146, 147, 0, 0,
1779 0, 0, 0, 0, 0, 0, 0, -660, 0, 0,
1780 0, 0, 0, 0, 0, 0, 0, 0, 0, 148,
1781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1782 -660, -660, -660, 0, -660, -660, -660, -660, -660, -660,
1783 -660, -660, -660, -660, 0, -660, -660, -660, -660, -660,
1784 -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
1785 157, -660, -660, -660, -660, -660, -660, -660, -660, -660,
1786 -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
1787 -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
1788 -660, -660, -660, -660, -660, -660, -660, -660, -273, 0,
1789 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
1790 0, -660, 0, 0, 0, 0, 0, 0, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1792 0, 0, 76, 329, 330, 160, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1797 0, 0, 11, 12, 13, 0, 14, 15, 16, 17,
1798 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1799 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1800 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1801 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1802 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1803 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1804 0, 0, 0, 0, 0, 0, 0, 76, 77, 78,
1805 328, 79, 80, 81, 0, 139, 140, 141, 142, 143,
1806 144, 357, 0, 0, 0, 0, 139, 140, 141, 142,
1807 143, 144, 145, 146, 147, 0, 0, 0, 0, 0,
1808 0, 654, 0, 145, 146, 147, 139, 140, 141, 142,
1809 143, 144, 656, 0, 0, 0, 148, 139, 140, 141,
1810 142, 143, 144, 145, 146, 147, 0, 148, 0, 0,
1811 0, 0, 729, 0, 145, 146, 147, 730, 731, 732,
1812 733, 734, 735, 0, 0, 0, 0, 148, 0, 0,
1813 0, 0, 0, 0, 145, 736, 737, 157, 148, 0,
1814 0, 0, 0, 0, 0, 0, 0, 0, 157, 0,
1815 0, 0, 0, 0, 0, 0, 0, 0, 738, 0,
1816 0, 0, 0, 0, 0, 0, 0, 0, 157, 0,
1817 0, 0, 0, 0, 0, 0, 0, 0, 0, 157,
1818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 157,
1820 0, 0, 0, 0, 0, 0, 0, 0, 0, 76,
1821 329, 330, 160, -199, -199, 0, 0, 0, 0, 0,
1822 76, 329, 330, 160, 0, 0, 0, 0, 0, 0,
1823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1824 76, 329, 330, 160, 0, 0, 0, 0, 0, 0,
1825 0, 76, 329, 330, 160, 0, 0, 0, 0, 0,
1826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1827 0, 76, 739, 740, 741, 0, 0, 0, 0, 11,
1828 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1829 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1830 30, 31, 32, 33, 34, 35, 36, 37, 38, 0,
1831 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1832 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1833 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1834 69, 70, 71, 72, 73, 74, 75, 3, 0, 0,
1835 0, 0, 0, 0, 0, 0, 120, 0, 0, 0,
1836 81, 0, 0, 0, 0, 0, 0, 0, 0, -382,
1837 -382, -382, 0, 4, 0, 0, 0, 0, 0, 0,
1838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1841 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1842 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1843 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1844 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1845 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1846 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1847 68, 69, 70, 71, 72, 73, 74, 75, 3, 0,
1848 0, 0, 0, 0, 0, 0, 0, 120, 0, 0,
1849 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
1851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1854 0, 11, 12, 13, 0, 14, 15, 16, 17, 18,
1855 19, 20, 21, 22, 23, 0, 24, 25, 26, 27,
1856 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1857 38, 0, 39, 40, 41, 42, 43, 44, 45, 46,
1858 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1859 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1860 67, 68, 69, 70, 71, 72, 73, 74, 75, -382,
1861 -382, -382, 0, 0, 0, 0, 0, 0, 120, 0,
1862 0, 0, 81, 0, 0, 0, 0, 0, 0, 0,
1863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1865 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1866 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1867 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1868 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1869 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1870 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1871 68, 69, 70, 71, 72, 73, 74, 75, 8, 9,
1872 10, 0, 0, 0, 0, 0, 0, 120, 0, 0,
1873 0, 81, 0, 0, 0, 0, 0, 11, 12, 13,
1874 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1875 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1876 32, 33, 34, 35, 36, 37, 38, 0, 39, 40,
1877 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1878 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1879 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1880 71, 72, 73, 74, 75, 0, 0, 0, 0, 0,
1881 0, 0, 0, 0, 120, 11, 12, 13, 81, 14,
1882 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1883 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1884 34, 35, 36, 37, 38, 0, 39, 40, 41, 42,
1885 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1886 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1887 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1888 73, 74, 75, 0, 0, 0, 0, 0, 0, 0,
1889 0, 0, 120, 0, 0, 0, 81
1892 static const short yycheck[] = { 0,
1893 0, 469, 3, 106, 0, 89, 366, 303, 126, 368,
1894 11, 12, 501, 626, 418, 664, 2, 18, 19, 20,
1895 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1896 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1897 41, 42, 43, 19, 322, 452, 664, 48, 49, 50,
1898 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1899 61, 62, 63, 64, 407, 408, 419, 409, 410, 417,
1900 719, 664, 18, 5, 75, 630, 777, 0, 24, 415,
1901 416, 82, 82, 479, 558, 5, 82, 560, 34, 1040,
1902 1041, 451, 411, 412, 413, 414, 455, 809, 789, 100,
1903 906, 719, 5, 909, 803, 106, 204, 1089, 22, 8,
1904 915, 209, 24, 211, 1096, 116, 117, 118, 24, 85,
1905 34, 122, 25, 684, 8, 223, 719, 113, 34, 21,
1906 24, 215, 26, 25, 86, 87, 122, 138, 1137, 499,
1907 1117, 1118, 86, 87, 145, 139, 140, 141, 142, 143,
1908 144, 41, 24, 1152, 26, 1154, 711, 49, 50, 82,
1909 1111, 797, 0, 1114, 800, 3, 56, 5, 34, 8,
1910 19, 20, 116, 117, 21, 24, 6, 7, 25, 24,
1911 29, 30, 31, 32, 33, 34, 130, 899, 993, 34,
1912 664, 664, 1169, 894, 1000, 909, 1002, 46, 47, 48,
1913 18, 18, 480, 204, 611, 23, 28, 183, 184, 185,
1914 506, 187, 188, 702, 21, 1166, 612, 908, 25, 910,
1915 919, 70, 44, 18, 9, 10, 0, 788, 587, 3,
1916 791, 183, 184, 7, 8, 9, 10, 183, 184, 138,
1917 320, 28, 108, 109, 82, 719, 719, 24, 366, 26,
1918 610, 183, 184, 185, 138, 187, 188, 44, 96, 97,
1919 664, 99, 111, 183, 184, 185, 902, 187, 188, 183,
1920 184, 185, 632, 187, 188, 21, 21, 183, 184, 25,
1921 25, 9, 10, 182, 122, 286, 1000, 24, 1002, 26,
1922 291, 190, 292, 39, 41, 194, 592, 196, 182, 138,
1923 18, 302, 303, 21, 305, 306, 302, 25, 82, 56,
1924 194, 664, 196, 21, 18, 719, 664, 21, 319, 27,
1925 933, 664, 664, 319, 325, 814, 225, 328, 664, 8,
1926 21, 980, 106, 451, 183, 184, 185, 186, 183, 184,
1927 636, 225, 26, 182, 428, 664, 347, 18, 122, 447,
1928 34, 190, 26, 18, 28, 194, 21, 196, 654, 133,
1929 656, 347, 980, 24, 138, 0, 719, 368, 3, 1005,
1930 44, 719, 7, 97, 929, 99, 719, 719, 5, 25,
1931 26, 499, 156, 719, 569, 5, 225, 980, 65, 66,
1932 67, 68, 69, 70, 71, 72, 73, 74, 25, 584,
1933 719, 875, 21, 21, 877, 25, 25, 25, 182, 24,
1934 404, 405, 406, 1090, 32, 33, 190, 24, 192, 204,
1935 194, 98, 196, 100, 209, 102, 211, 104, 18, 34,
1936 204, 21, 109, 729, 794, 209, 24, 211, 223, 224,
1937 37, 38, 119, 443, 121, 18, 24, 82, 21, 223,
1938 224, 225, 25, 454, 51, 52, 457, 24, 454, 138,
1939 21, 457, 21, 464, 25, 466, 25, 468, 469, 873,
1940 471, 106, 18, 1150, 1151, 476, 204, 15, 479, 18,
1941 85, 209, 21, 211, 23, 486, 163, 122, 49, 50,
1942 49, 50, 610, 479, 16, 223, 224, 498, 133, 22,
1943 501, 18, 503, 182, 21, 506, 980, 980, 346, 1186,
1944 504, 190, 32, 33, 632, 194, 24, 196, 26, 862,
1945 863, 874, 864, 865, 872, 22, 34, 607, 302, 428,
1946 21, 305, 306, 307, 870, 871, 27, 183, 184, 185,
1947 25, 187, 188, 28, 428, 319, 225, 866, 867, 868,
1948 869, 325, 5, 16, 86, 87, 183, 184, 185, 16,
1949 187, 188, 21, 183, 184, 185, 25, 187, 188, 569,
1950 21, 24, 25, 26, 25, 16, 980, 22, 183, 184,
1951 939, 34, 187, 188, 584, 29, 26, 39, 589, 428,
1952 1079, 592, 1060, 40, 34, 369, 370, 371, 18, 702,
1953 374, 21, 53, 54, 605, 606, 37, 38, 382, 24,
1954 384, 612, 27, 24, 291, 26, 49, 50, 295, 34,
1955 51, 52, 460, 34, 21, 55, 612, 980, 25, 21,
1956 631, 18, 980, 25, 21, 636, 313, 980, 980, 316,
1957 26, 192, 28, 24, 980, 37, 38, 324, 649, 650,
1958 327, 183, 184, 654, 428, 656, 20, 21, 44, 51,
1959 52, 980, 447, 25, 26, 24, 28, 302, 27, 568,
1960 305, 306, 307, 447, 21, 34, 794, 678, 25, 453,
1961 454, 19, 44, 457, 319, 686, 18, 688, 92, 21,
1962 325, 692, 693, 467, 5, 469, 697, 471, 92, 34,
1963 701, 702, 49, 50, 18, 479, 707, 21, 482, 22,
1964 828, 814, 486, 24, 25, 26, 702, 18, 21, 447,
1965 21, 707, 25, 34, 1020, 22, 29, 22, 729, 568,
1966 183, 184, 185, 24, 187, 188, 730, 731, 732, 733,
1967 734, 735, 92, 183, 184, 185, 520, 187, 188, 428,
1968 19, 25, 26, 92, 28, 529, 530, 24, 20, 26,
1969 183, 184, 185, 27, 187, 188, 1126, 34, 183, 184,
1970 44, 186, 183, 184, 185, 452, 187, 188, 189, 24,
1971 21, 619, 459, 784, 25, 18, 21, 464, 18, 466,
1972 25, 32, 33, 18, 568, 569, 23, 474, 24, 180,
1973 181, 478, 183, 184, 21, 186, 22, 581, 25, 18,
1974 584, 585, 813, 814, 21, 816, 1176, 21, 25, 454,
1975 25, 25, 457, 374, 183, 184, 21, 186, 814, 25,
1976 25, 382, 467, 384, 469, 21, 471, 24, 612, 25,
1977 183, 921, 37, 38, 479, 53, 54, 482, 183, 184,
1978 185, 486, 187, 188, 19, 21, 51, 52, 126, 25,
1979 24, 18, 26, 18, 28, 859, 860, 861, 34, 35,
1980 36, 139, 140, 141, 142, 143, 144, 21, 146, 147,
1981 44, 25, 18, 47, 48, 9, 660, 661, 21, 568,
1982 664, 18, 25, 18, 529, 530, 25, 671, 672, 21,
1983 674, 985, 453, 25, 905, 11, 21, 987, 21, 586,
1984 25, 912, 25, 687, 24, 689, 183, 184, 185, 21,
1985 187, 188, 21, 25, 698, 1009, 1006, 701, 702, 703,
1986 24, 1011, 21, 21, 611, 21, 25, 25, 21, 25,
1987 21, 119, 25, 121, 25, 719, 42, 43, 786, 943,
1988 1030, 789, 19, 630, 132, 133, 1036, 135, 635, 137,
1989 138, 27, 21, 21, 21, 1045, 25, 25, 25, 520,
1990 21, 21, 150, 11, 25, 25, 1079, 612, 21, 24,
1991 88, 26, 25, 28, 8, 9, 10, 21, 21, 666,
1992 19, 25, 25, 994, 1074, 1075, 997, 1077, 88, 44,
1993 21, 997, 47, 48, 25, 21, 21, 781, 1126, 25,
1994 25, 21, 1013, 19, 1015, 25, 21, 1013, 569, 1020,
1995 25, 21, 1023, 1024, 1142, 25, 24, 1013, 21, 22,
1996 1030, 32, 33, 584, 585, 67, 68, 69, 49, 50,
1997 814, 1121, 21, 183, 184, 23, 25, 34, 35, 36,
1998 824, 19, 687, 25, 689, 34, 35, 36, 1176, 1060,
1999 22, 1062, 1063, 698, 21, 742, 701, 702, 906, 21,
2000 908, 909, 910, 18, 1074, 34, 35, 36, 1079, 57,
2001 58, 59, 60, 61, 62, 63, 64, 65, 66, 8,
2002 24, 1171, 72, 73, 74, 72, 73, 74, 366, 53,
2003 54, 78, 79, 80, 81, 82, 83, 84, 21, 660,
2004 661, 72, 73, 74, 138, 51, 52, 53, 20, 21,
2005 25, 672, 22, 1124, 186, 802, 1127, 20, 21, 1130,
2006 186, 1127, 21, 22, 32, 33, 404, 405, 406, 407,
2007 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
2008 418, 419, 703, 11, 24, 186, 24, 24, 182, 23,
2009 25, 27, 1000, 20, 1002, 19, 190, 20, 19, 5,
2010 194, 23, 196, 21, 948, 949, 25, 27, 24, 814,
2011 204, 205, 22, 451, 88, 209, 24, 211, 25, 824,
2012 78, 79, 80, 81, 82, 83, 84, 88, 1199, 223,
2013 224, 225, 88, 20, 20, 18, 980, 27, 1209, 18,
2014 25, 25, 39, 987, 21, 27, 24, 136, 29, 138,
2015 897, 898, 25, 997, 25, 25, 55, 25, 905, 88,
2016 40, 499, 25, 24, 18, 25, 504, 1011, 25, 1013,
2017 25, 21, 1016, 25, 18, 177, 18, 178, 21, 177,
2018 18, 188, 929, 88, 178, 1029, 88, 21, 20, 22,
2019 20, 20, 88, 182, 25, 1039, 1040, 1041, 25, 88,
2020 24, 190, 18, 20, 1048, 194, 73, 196, 27, 18,
2021 25, 25, 88, 88, 88, 204, 1060, 27, 0, 88,
2022 558, 360, 560, 88, 562, 563, 88, 8, 9, 10,
2023 0, 82, 325, 778, 900, 1079, 225, 1010, 1038, 1103,
2024 894, 1166, 926, 948, 949, 1089, 1090, 1011, 995, 388,
2025 1123, 471, 1096, 1127, 393, 394, 395, 396, 397, 398,
2026 399, 400, 401, 402, 403, 592, 843, 1111, 1112, 1113,
2027 1114, 689, 610, 1117, 1118, 687, 814, 113, 701, 1123,
2028 347, 10, 224, 1127, 428, 424, 19, 1084, 520, 719,
2029 -1, 24, 997, 387, 632, -1, 29, 30, 31, 32,
2030 33, 34, 980, 8, 9, 10, 1150, 1151, 1013, -1,
2031 -1, 1016, -1, 46, 47, 48, -1, 1064, -1, -1,
2032 -1, -1, 1166, 1167, 1168, 1169, 664, -1, -1, -1,
2033 -1, -1, -1, -1, 428, -1, -1, 70, -1, 328,
2034 -1, -1, 1186, -1, -1, -1, -1, 336, 337, 338,
2035 339, -1, -1, 447, -1, 1060, -1, 138, -1, -1,
2036 -1, -1, -1, -1, -1, -1, -1, -1, 357, -1,
2037 -1, 8, 9, 10, 1079, -1, -1, -1, 111, 368,
2038 -1, 719, -1, -1, -1, -1, -1, -1, -1, -1,
2039 -1, -1, 730, 731, 732, 733, 734, 735, 736, 737,
2040 389, 182, -1, -1, -1, -1, -1, 1112, 1113, 190,
2041 8, 9, 10, 194, -1, 196, -1, -1, -1, -1,
2042 -1, -1, 1127, 204, -1, -1, -1, 1174, 209, -1,
2043 211, -1, -1, 138, -1, -1, -1, -1, -1, 428,
2044 -1, -1, 223, 224, 225, -1, 435, 8, 9, 10,
2045 183, 184, 185, 186, -1, -1, 794, -1, 72, 73,
2046 74, -1, 1167, 1168, 78, 79, 80, 81, 82, 83,
2047 84, -1, -1, -1, 568, -1, -1, 182, -1, -1,
2048 -1, -1, -1, -1, -1, 190, -1, -1, -1, 194,
2049 828, 196, -1, -1, -1, -1, -1, -1, -1, 204,
2050 -1, 138, -1, -1, 209, -1, 211, 646, -1, -1,
2051 -1, -1, -1, -1, -1, -1, -1, -1, 223, 224,
2052 225, 859, 860, 861, 862, 863, 864, 865, 866, 867,
2053 868, 869, 870, 871, 872, 873, 874, 875, -1, 877,
2054 138, -1, -1, -1, -1, 182, -1, -1, -1, -1,
2055 -1, -1, 691, 190, -1, -1, -1, 194, -1, 196,
2056 -1, 8, 9, 10, -1, -1, -1, 204, -1, -1,
2057 559, -1, 209, -1, 211, -1, -1, 138, -1, 568,
2058 -1, -1, -1, -1, 182, -1, 223, 224, 225, -1,
2059 -1, -1, 190, -1, -1, -1, 194, -1, 196, -1,
2060 -1, -1, -1, -1, -1, 943, 204, -1, -1, -1,
2061 -1, 209, -1, 211, -1, -1, -1, -1, -1, -1,
2062 -1, 182, -1, -1, -1, 223, 224, 225, -1, 190,
2063 -1, -1, -1, 194, -1, 196, -1, 626, -1, -1,
2064 18, -1, 980, 204, 23, -1, 24, 428, 209, -1,
2065 211, 29, 30, 31, 32, 33, 34, -1, 797, -1,
2066 -1, 800, 223, 224, 225, 654, 447, 656, 46, 47,
2067 48, -1, -1, 662, -1, -1, 665, -1, 57, 58,
2068 59, 60, 61, 62, 63, 64, 65, 66, -1, -1,
2069 -1, 138, 70, -1, -1, -1, -1, -1, -1, -1,
2070 -1, -1, -1, 842, 843, -1, -1, -1, -1, 848,
2071 849, 850, 851, 852, 853, 854, 855, 856, 857, 858,
2072 -1, -1, -1, 428, -1, -1, -1, -1, -1, 718,
2073 -1, -1, -1, 111, -1, 182, -1, -1, -1, -1,
2074 729, -1, 447, 190, -1, -1, -1, 194, -1, 196,
2075 -1, -1, -1, -1, -1, -1, -1, 204, -1, -1,
2076 -1, -1, 209, 902, 211, -1, -1, -1, -1, -1,
2077 -1, -1, -1, -1, -1, -1, 223, 224, 225, -1,
2078 -1, -1, -1, -1, 18, -1, -1, 568, 1126, -1,
2079 24, 428, -1, -1, -1, 29, 30, 31, 32, 33,
2080 34, -1, -1, -1, 1142, 183, 184, 185, 186, -1,
2081 447, 1, 46, 47, 48, -1, 6, 7, 8, -1,
2082 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2083 428, -1, -1, -1, 24, -1, 70, -1, 1176, 29,
2084 30, 31, 32, 33, 34, -1, -1, -1, -1, 447,
2085 -1, -1, 42, 43, -1, 844, 46, 47, 48, -1,
2086 -1, -1, -1, 568, -1, -1, 1005, 428, -1, -1,
2087 -1, -1, -1, -1, -1, -1, -1, 111, -1, -1,
2088 70, -1, -1, -1, -1, -1, 447, -1, -1, -1,
2089 -1, -1, -1, -1, -1, -1, 0, 1, -1, -1,
2090 -1, -1, 92, 93, 94, 95, 96, 97, 98, -1,
2091 -1, -1, -1, -1, -1, -1, -1, 107, -1, -1,
2092 24, 111, -1, -1, -1, -1, -1, -1, -1, -1,
2093 34, 568, -1, -1, -1, -1, -1, -1, -1, -1,
2094 -1, 45, -1, -1, 933, -1, -1, -1, -1, 183,
2095 184, 185, 186, -1, -1, -1, -1, -1, -1, -1,
2096 -1, -1, -1, 67, 68, 69, -1, 71, -1, -1,
2097 568, 75, 76, 77, -1, -1, -1, -1, -1, -1,
2098 -1, 428, -1, -1, -1, 89, 90, 91, -1, 978,
2099 -1, -1, -1, 183, 184, 185, 186, 187, 188, -1,
2100 447, -1, -1, -1, 108, 109, 110, 568, 112, 113,
2101 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
2102 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2103 134, 135, 136, 137, -1, 139, 140, 141, 142, 143,
2104 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2105 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2106 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2107 174, 175, 0, 1, -1, -1, -1, -1, -1, 183,
2108 184, 185, -1, 187, 188, 189, -1, 19, -1, -1,
2109 -1, -1, 24, -1, -1, -1, 24, 29, 30, 31,
2110 32, 33, 34, -1, -1, -1, 34, -1, -1, -1,
2111 -1, -1, -1, -1, 46, 47, 48, 45, -1, -1,
2112 -1, 568, -1, -1, -1, -1, -1, -1, -1, -1,
2113 -1, -1, -1, -1, -1, -1, -1, -1, 70, 67,
2114 68, 69, -1, 71, -1, -1, -1, 75, 76, 77,
2115 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2116 -1, 89, 90, 91, -1, -1, -1, -1, -1, -1,
2117 -1, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2118 108, 109, 110, -1, 112, 113, 114, 115, 116, 117,
2119 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2120 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2121 -1, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2122 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2123 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2124 168, 169, 170, 171, 172, 173, 174, 175, -1, -1,
2125 -1, 183, 184, 185, 186, 183, 184, 185, 1, 187,
2126 188, 189, -1, 6, 7, 8, -1, 10, 11, 12,
2127 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2128 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2129 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2130 43, -1, 45, 46, 47, 48, -1, -1, -1, -1,
2131 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2132 -1, -1, -1, -1, 67, 68, 69, 70, 71, -1,
2133 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2134 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2135 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2136 -1, -1, -1, -1, 107, 108, 109, 110, 111, 112,
2137 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
2138 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2139 133, 134, 135, 136, 137, -1, 139, 140, 141, 142,
2140 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2141 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2142 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2143 173, 174, 175, -1, -1, -1, -1, -1, -1, -1,
2144 183, 184, 185, 186, 187, 188, 189, 1, -1, -1,
2145 -1, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2146 14, 15, 16, 17, 18, 19, -1, -1, -1, -1,
2147 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2148 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
2149 -1, -1, 46, 47, 48, -1, -1, -1, -1, -1,
2150 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2151 -1, -1, -1, 67, 68, 69, 70, -1, -1, -1,
2152 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2153 -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
2154 94, 95, 96, 97, 98, -1, -1, -1, -1, -1,
2155 -1, -1, -1, 107, 108, 109, 110, 111, 112, 113,
2156 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
2157 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2158 134, 135, 136, 137, -1, 139, 140, 141, 142, 143,
2159 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2160 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2161 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2162 174, 175, -1, -1, -1, -1, -1, -1, -1, 183,
2163 184, 185, 186, 187, 188, 189, 1, -1, -1, -1,
2164 -1, 6, 7, 8, -1, -1, 11, 12, 13, 14,
2165 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2166 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2167 -1, -1, -1, -1, -1, -1, -1, 42, 43, -1,
2168 -1, 46, 47, 48, -1, -1, -1, -1, -1, -1,
2169 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2170 -1, -1, 67, 68, 69, 70, -1, -1, -1, -1,
2171 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2172 -1, -1, -1, -1, -1, -1, -1, -1, 93, 94,
2173 95, 96, 97, 98, -1, -1, -1, -1, -1, -1,
2174 -1, -1, 107, 108, 109, 110, 111, 112, 113, 114,
2175 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
2176 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2177 135, 136, 137, -1, 139, 140, 141, 142, 143, 144,
2178 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2179 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2180 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2181 175, -1, -1, -1, -1, -1, -1, -1, 183, 184,
2182 185, 186, 187, 188, 189, 1, -1, -1, -1, -1,
2183 6, 7, 8, -1, -1, 11, 12, 13, 14, 15,
2184 16, 17, 18, 19, 20, -1, -1, -1, 24, 25,
2185 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2186 -1, -1, -1, -1, -1, -1, 42, 43, 1, -1,
2187 46, 47, 48, 6, 7, 8, -1, 10, 11, 12,
2188 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2189 -1, 24, -1, -1, 70, -1, 29, 30, 31, 32,
2190 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2191 43, -1, -1, 46, 47, 48, 92, 93, 94, 95,
2192 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2193 -1, 107, -1, -1, -1, 111, -1, 70, -1, -1,
2194 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2195 -1, -1, -1, -1, -1, -1, -1, -1, -1, 92,
2196 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2197 -1, -1, -1, -1, 107, -1, -1, -1, 111, -1,
2198 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2199 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2200 -1, -1, -1, -1, -1, -1, -1, 183, 184, 185,
2201 186, 187, 188, -1, -1, 1, -1, -1, -1, -1,
2202 6, 7, 8, -1, -1, 11, 12, 13, 14, 15,
2203 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2204 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2205 183, 184, 185, 186, 187, 188, 42, 43, 1, -1,
2206 46, 47, 48, 6, 7, 8, -1, 10, 11, 12,
2207 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2208 -1, 24, -1, -1, 70, -1, 29, 30, 31, 32,
2209 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2210 43, -1, -1, 46, 47, 48, 92, 93, 94, 95,
2211 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2212 -1, 107, -1, -1, -1, 111, -1, 70, -1, -1,
2213 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2214 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2215 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2216 -1, -1, -1, -1, 107, -1, -1, -1, 111, -1,
2217 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2218 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2219 -1, -1, -1, -1, -1, -1, -1, 183, 184, 185,
2220 186, 187, 188, -1, -1, 1, -1, -1, -1, -1,
2221 6, 7, 8, -1, -1, 11, 12, 13, 14, 15,
2222 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2223 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2224 183, 184, 185, 186, 187, 188, 42, 43, 1, -1,
2225 46, 47, 48, 6, 7, 8, -1, 10, 11, 12,
2226 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2227 -1, 24, -1, -1, 70, -1, 29, 30, 31, 32,
2228 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2229 43, -1, -1, 46, 47, 48, -1, 93, 94, 95,
2230 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2231 -1, 107, -1, -1, -1, 111, -1, 70, -1, -1,
2232 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2233 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2234 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2235 -1, -1, -1, -1, 107, -1, -1, -1, 111, -1,
2236 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2237 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2238 -1, -1, -1, -1, -1, -1, -1, 183, 184, 185,
2239 186, 187, 188, -1, -1, -1, -1, -1, -1, -1,
2240 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2241 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2242 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2243 183, 184, 185, 186, 187, 188, 42, 43, -1, 45,
2244 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2245 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2246 -1, -1, -1, -1, 70, 71, -1, -1, -1, -1,
2247 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2248 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
2249 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2250 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2251 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2252 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2253 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2254 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2255 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2256 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2257 176, -1, -1, 179, -1, -1, 182, 183, 184, 185,
2258 186, 187, 188, 189, 6, 7, 8, -1, 10, 11,
2259 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2260 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2261 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2262 42, 43, -1, 45, 46, 47, 48, -1, -1, -1,
2263 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2264 -1, -1, -1, -1, -1, -1, -1, -1, 70, 71,
2265 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2266 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2267 -1, 93, 94, 95, 96, 97, 98, -1, -1, -1,
2268 -1, -1, -1, -1, -1, 107, 108, 109, 110, 111,
2269 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2270 -1, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2271 132, 133, 134, 135, 136, 137, -1, 139, 140, 141,
2272 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2273 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2274 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2275 172, 173, 174, 175, 176, -1, -1, 179, -1, -1,
2276 182, 183, 184, 185, 186, 187, 188, 189, 6, 7,
2277 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2278 18, 19, 20, -1, -1, -1, 24, -1, -1, -1,
2279 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2280 -1, -1, -1, -1, 42, 43, -1, 45, 46, 47,
2281 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2282 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2283 -1, -1, 70, 71, -1, -1, -1, -1, -1, -1,
2284 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2285 -1, -1, -1, -1, -1, 93, 94, 95, 96, 97,
2286 98, -1, -1, -1, -1, -1, -1, -1, -1, 107,
2287 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2288 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2289 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2290 -1, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2291 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2292 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2293 168, 169, 170, 171, 172, 173, 174, 175, 176, -1,
2294 -1, 179, -1, -1, 182, 183, 184, 185, 186, 187,
2295 188, 189, 6, 7, 8, -1, 10, 11, 12, 13,
2296 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2297 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2298 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2299 -1, -1, 46, 47, 48, 6, 7, 8, -1, 10,
2300 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2301 -1, -1, -1, 24, -1, -1, 70, -1, 29, 30,
2302 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2303 -1, -1, -1, -1, -1, 46, 47, 48, -1, 93,
2304 94, 95, 96, 97, 98, -1, -1, -1, -1, -1,
2305 -1, -1, -1, 107, -1, 24, 25, 111, -1, 70,
2306 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2307 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2308 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2309 -1, -1, -1, -1, -1, -1, 107, -1, -1, -1,
2310 111, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2311 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2312 -1, -1, 176, -1, -1, 179, -1, -1, 182, 183,
2313 184, 185, 186, 187, 188, -1, -1, -1, -1, -1,
2314 -1, -1, 111, -1, -1, -1, -1, -1, -1, -1,
2315 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2316 -1, -1, -1, -1, -1, 176, -1, -1, 179, -1,
2317 -1, 182, 183, 184, 185, 186, 187, 188, 6, 7,
2318 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2319 18, 19, 20, -1, -1, -1, 24, -1, -1, -1,
2320 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2321 -1, -1, -1, -1, 183, 184, 185, 186, 46, 47,
2322 48, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2323 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2324 -1, -1, 70, -1, 29, 30, 31, 32, 33, 34,
2325 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2326 -1, 46, 47, 48, -1, 93, 94, 95, 96, 97,
2327 98, -1, -1, -1, -1, -1, -1, -1, -1, 107,
2328 -1, 24, -1, 111, 27, 70, 29, 30, 31, 32,
2329 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2330 -1, -1, -1, 46, 47, 48, -1, -1, 93, 94,
2331 95, 96, 97, 98, -1, -1, -1, -1, -1, -1,
2332 -1, -1, 107, -1, -1, -1, 111, 70, -1, -1,
2333 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2334 -1, -1, -1, -1, -1, -1, -1, -1, 176, -1,
2335 -1, 179, -1, -1, 182, 183, 184, 185, 186, 187,
2336 188, -1, -1, -1, -1, -1, -1, -1, 111, -1,
2337 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2338 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2339 -1, 176, -1, -1, 179, -1, -1, 182, 183, 184,
2340 185, 186, 187, 188, 6, 7, 8, -1, 10, 11,
2341 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2342 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2343 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2344 183, 184, 185, 186, 46, 47, 48, 6, 7, 8,
2345 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2346 19, 20, -1, -1, -1, 24, -1, -1, 70, -1,
2347 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2348 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2349 -1, 93, 94, 95, 96, 97, 98, -1, -1, -1,
2350 -1, -1, -1, -1, -1, 107, -1, 24, -1, 111,
2351 27, 70, 29, 30, 31, 32, 33, 34, -1, -1,
2352 -1, -1, -1, -1, -1, -1, -1, -1, -1, 46,
2353 47, 48, -1, -1, 93, 94, 95, 96, 97, 98,
2354 -1, -1, -1, -1, -1, -1, -1, -1, 107, -1,
2355 -1, -1, 111, 70, -1, -1, -1, -1, -1, -1,
2356 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2357 -1, -1, -1, -1, 176, -1, -1, 179, -1, -1,
2358 182, 183, 184, 185, 186, 187, 188, -1, -1, -1,
2359 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1,
2360 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2361 -1, -1, -1, -1, -1, -1, -1, 176, -1, -1,
2362 179, -1, -1, 182, 183, 184, 185, 186, 187, 188,
2363 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2364 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2365 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2366 -1, -1, -1, -1, -1, -1, 183, 184, 185, 186,
2367 46, 47, 48, 6, 7, 8, -1, 10, 11, 12,
2368 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2369 -1, 24, -1, -1, 70, -1, 29, 30, 31, 32,
2370 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2371 -1, -1, -1, 46, 47, 48, -1, 93, 94, 95,
2372 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2373 -1, 107, -1, -1, -1, 111, -1, 70, -1, -1,
2374 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2375 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2376 93, 94, 95, 96, 97, 98, 18, -1, -1, -1,
2377 -1, -1, -1, -1, 107, -1, -1, -1, 111, -1,
2378 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2379 -1, -1, -1, 45, -1, -1, -1, -1, -1, -1,
2380 176, -1, -1, 179, -1, -1, 182, 183, 184, 185,
2381 186, 187, 188, -1, -1, 67, 68, 69, -1, 71,
2382 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2383 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2384 -1, -1, -1, 176, -1, -1, 179, -1, -1, 182,
2385 183, 184, 185, 186, 187, 188, 108, 109, 110, -1,
2386 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2387 -1, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2388 132, 133, 134, 135, 136, 137, -1, 139, 140, 141,
2389 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2390 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2391 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2392 172, 173, 174, 175, 18, -1, -1, -1, -1, -1,
2393 -1, -1, -1, 185, -1, -1, -1, 189, -1, -1,
2394 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2395 -1, 45, -1, -1, -1, -1, -1, 24, 25, -1,
2396 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2397 -1, -1, -1, -1, -1, -1, -1, 71, -1, 46,
2398 47, 48, -1, -1, -1, -1, -1, -1, -1, -1,
2399 -1, -1, -1, -1, 88, -1, -1, -1, -1, -1,
2400 -1, -1, -1, 70, -1, -1, -1, -1, -1, -1,
2401 -1, -1, -1, -1, 108, 109, 110, -1, 112, 113,
2402 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
2403 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2404 134, 135, 136, 137, 111, 139, 140, 141, 142, 143,
2405 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2406 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2407 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2408 174, 175, 19, -1, -1, -1, -1, 24, -1, -1,
2409 -1, 185, -1, -1, -1, 189, -1, -1, -1, -1,
2410 -1, -1, -1, -1, -1, -1, -1, -1, 45, -1,
2411 -1, -1, -1, -1, -1, -1, 183, 184, 185, 186,
2412 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2413 -1, -1, -1, -1, 71, -1, -1, -1, -1, -1,
2414 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2415 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2416 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2417 -1, 108, 109, 110, -1, 112, 113, 114, 115, 116,
2418 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
2419 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2420 137, -1, 139, 140, 141, 142, 143, 144, 145, 146,
2421 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2422 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2423 167, 168, 169, 170, 171, 172, 173, 174, 175, 19,
2424 -1, -1, -1, -1, -1, -1, -1, -1, 185, -1,
2425 -1, -1, 189, -1, -1, -1, -1, -1, -1, -1,
2426 -1, -1, -1, -1, -1, 45, -1, -1, -1, -1,
2427 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2428 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2429 -1, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2430 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2431 -1, -1, -1, -1, -1, -1, -1, -1, 20, -1,
2432 -1, -1, -1, -1, -1, -1, -1, -1, 108, 109,
2433 110, -1, 112, 113, 114, 115, 116, 117, 118, 119,
2434 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2435 130, 131, 132, 133, 134, 135, 136, 137, -1, 139,
2436 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2437 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2438 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2439 170, 171, 172, 173, 174, 175, -1, -1, -1, -1,
2440 -1, -1, -1, -1, -1, 185, 108, 109, 110, 189,
2441 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2442 -1, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2443 132, 133, 134, 135, 136, 137, -1, 139, 140, 141,
2444 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2445 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2446 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2447 172, 173, 174, 175, 22, -1, -1, -1, -1, -1,
2448 -1, -1, -1, 185, -1, -1, -1, 189, -1, -1,
2449 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2450 -1, -1, -1, 24, 25, -1, -1, -1, 29, 30,
2451 31, 32, 33, 34, -1, -1, -1, -1, -1, 67,
2452 68, 69, -1, -1, -1, 46, 47, 48, -1, -1,
2453 -1, -1, -1, -1, -1, -1, -1, 85, -1, -1,
2454 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2455 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2456 108, 109, 110, -1, 112, 113, 114, 115, 116, 117,
2457 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2458 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2459 111, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2460 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2461 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2462 168, 169, 170, 171, 172, 173, 174, 175, 24, -1,
2463 -1, -1, -1, -1, -1, -1, -1, -1, 34, -1,
2464 -1, 189, -1, -1, -1, -1, -1, -1, -1, -1,
2465 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2466 -1, -1, 183, 184, 185, 186, -1, -1, -1, -1,
2467 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2468 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2469 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2470 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2471 -1, -1, 108, 109, 110, -1, 112, 113, 114, 115,
2472 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2473 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2474 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2475 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2476 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2477 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2478 -1, -1, -1, -1, -1, -1, -1, 183, 184, 185,
2479 24, 187, 188, 189, -1, 29, 30, 31, 32, 33,
2480 34, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2481 33, 34, 46, 47, 48, -1, -1, -1, -1, -1,
2482 -1, 24, -1, 46, 47, 48, 29, 30, 31, 32,
2483 33, 34, 24, -1, -1, -1, 70, 29, 30, 31,
2484 32, 33, 34, 46, 47, 48, -1, 70, -1, -1,
2485 -1, -1, 24, -1, 46, 47, 48, 29, 30, 31,
2486 32, 33, 34, -1, -1, -1, -1, 70, -1, -1,
2487 -1, -1, -1, -1, 46, 47, 48, 111, 70, -1,
2488 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1,
2489 -1, -1, -1, -1, -1, -1, -1, -1, 70, -1,
2490 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1,
2491 -1, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2492 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2493 -1, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2494 -1, -1, -1, -1, -1, -1, -1, -1, -1, 183,
2495 184, 185, 186, 42, 43, -1, -1, -1, -1, -1,
2496 183, 184, 185, 186, -1, -1, -1, -1, -1, -1,
2497 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2498 183, 184, 185, 186, -1, -1, -1, -1, -1, -1,
2499 -1, 183, 184, 185, 186, -1, -1, -1, -1, -1,
2500 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2501 -1, 183, 184, 185, 186, -1, -1, -1, -1, 108,
2502 109, 110, -1, 112, 113, 114, 115, 116, 117, 118,
2503 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
2504 129, 130, 131, 132, 133, 134, 135, 136, 137, -1,
2505 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2506 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2507 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2508 169, 170, 171, 172, 173, 174, 175, 45, -1, -1,
2509 -1, -1, -1, -1, -1, -1, 185, -1, -1, -1,
2510 189, -1, -1, -1, -1, -1, -1, -1, -1, 67,
2511 68, 69, -1, 71, -1, -1, -1, -1, -1, -1,
2512 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2513 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2514 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2515 108, 109, 110, -1, 112, 113, 114, 115, 116, 117,
2516 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2517 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2518 -1, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2519 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2520 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2521 168, 169, 170, 171, 172, 173, 174, 175, 45, -1,
2522 -1, -1, -1, -1, -1, -1, -1, 185, -1, -1,
2523 -1, 189, -1, -1, -1, -1, -1, -1, -1, -1,
2524 -1, -1, -1, -1, 71, -1, -1, -1, -1, -1,
2525 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2526 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2527 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2528 -1, 108, 109, 110, -1, 112, 113, 114, 115, 116,
2529 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
2530 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2531 137, -1, 139, 140, 141, 142, 143, 144, 145, 146,
2532 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2533 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2534 167, 168, 169, 170, 171, 172, 173, 174, 175, 67,
2535 68, 69, -1, -1, -1, -1, -1, -1, 185, -1,
2536 -1, -1, 189, -1, -1, -1, -1, -1, -1, -1,
2537 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2538 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2539 108, 109, 110, -1, 112, 113, 114, 115, 116, 117,
2540 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2541 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2542 -1, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2543 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2544 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2545 168, 169, 170, 171, 172, 173, 174, 175, 89, 90,
2546 91, -1, -1, -1, -1, -1, -1, 185, -1, -1,
2547 -1, 189, -1, -1, -1, -1, -1, 108, 109, 110,
2548 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2549 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2550 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2551 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2552 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2553 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2554 171, 172, 173, 174, 175, -1, -1, -1, -1, -1,
2555 -1, -1, -1, -1, 185, 108, 109, 110, 189, 112,
2556 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
2557 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2558 133, 134, 135, 136, 137, -1, 139, 140, 141, 142,
2559 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2560 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2561 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2562 173, 174, 175, -1, -1, -1, -1, -1, -1, -1,
2563 -1, -1, 185, -1, -1, -1, 189
2565 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2566 #line 3 "/usr/share/misc/bison.simple"
2568 /* Skeleton output parser for bison,
2569 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2571 This program is free software; you can redistribute it and/or modify
2572 it under the terms of the GNU General Public License as published by
2573 the Free Software Foundation; either version 2, or (at your option)
2576 This program is distributed in the hope that it will be useful,
2577 but WITHOUT ANY WARRANTY; without even the implied warranty of
2578 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2579 GNU General Public License for more details.
2581 You should have received a copy of the GNU General Public License
2582 along with this program; if not, write to the Free Software
2583 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
2585 /* As a special exception, when this file is copied by Bison into a
2586 Bison output file, you may use that output file without restriction.
2587 This special exception was added by the Free Software Foundation
2588 in version 1.24 of Bison. */
2592 #define alloca __builtin_alloca
2593 #else /* not GNU C. */
2594 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
2596 #else /* not sparc */
2597 #if defined (MSDOS) && !defined (__TURBOC__)
2599 #else /* not MSDOS, or __TURBOC__ */
2603 #else /* not MSDOS, __TURBOC__, or _AIX */
2607 void *alloca (unsigned int);
2609 #else /* not __cplusplus */
2611 #endif /* not __cplusplus */
2613 #endif /* not _AIX */
2614 #endif /* not MSDOS, or __TURBOC__ */
2615 #endif /* not sparc. */
2616 #endif /* not GNU C. */
2617 #endif /* alloca not defined. */
2619 /* This is the parser code that is written into each bison parser
2620 when the %semantic_parser declaration is not specified in the grammar.
2621 It was written by Richard Stallman by simplifying the hairy parser
2622 used when %semantic_parser is specified. */
2624 /* Note: there must be only one dollar sign in this file.
2625 It is replaced by the list of actions, each action
2626 as one case of the switch. */
2628 #define yyerrok (yyerrstatus = 0)
2629 #define yyclearin (yychar = YYEMPTY)
2632 #define YYACCEPT return(0)
2633 #define YYABORT return(1)
2634 #define YYERROR goto yyerrlab1
2635 /* Like YYERROR except do call yyerror.
2636 This remains here temporarily to ease the
2637 transition to the new meaning of YYERROR, for GCC.
2638 Once GCC version 2 has supplanted version 1, this can go. */
2639 #define YYFAIL goto yyerrlab
2640 #define YYRECOVERING() (!!yyerrstatus)
2641 #define YYBACKUP(token, value) \
2643 if (yychar == YYEMPTY && yylen == 1) \
2644 { yychar = (token), yylval = (value); \
2645 yychar1 = YYTRANSLATE (yychar); \
2650 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2654 #define YYERRCODE 256
2657 #define YYLEX yylex()
2663 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2665 #define YYLEX yylex(&yylval, &yylloc)
2667 #else /* not YYLSP_NEEDED */
2669 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2671 #define YYLEX yylex(&yylval)
2673 #endif /* not YYLSP_NEEDED */
2676 /* If nonreentrant, generate the variables here */
2680 int yychar; /* the lookahead symbol */
2681 YYSTYPE yylval; /* the semantic value of the */
2682 /* lookahead symbol */
2685 YYLTYPE yylloc; /* location data for the lookahead */
2689 int yynerrs; /* number of parse errors so far */
2690 #endif /* not YYPURE */
2693 int yydebug; /* nonzero means print parse trace */
2694 /* Since this is uninitialized, it does not stop multiple parsers
2698 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2701 #define YYINITDEPTH 200
2704 /* YYMAXDEPTH is the maximum size the stacks can grow to
2705 (effective only if the built-in stack extension method is used). */
2712 #define YYMAXDEPTH 10000
2715 /* Prevent warning if -Wstrict-prototypes. */
2720 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2721 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2722 #else /* not GNU C or C++ */
2725 /* This is the most reliable way to avoid incompatibilities
2726 in available built-in functions on various systems. */
2728 __yy_memcpy (to, from, count)
2733 register char *f = from;
2734 register char *t = to;
2735 register int i = count;
2741 #else /* __cplusplus */
2743 /* This is the most reliable way to avoid incompatibilities
2744 in available built-in functions on various systems. */
2746 __yy_memcpy (char *to, char *from, int count)
2748 register char *f = from;
2749 register char *t = to;
2750 register int i = count;
2759 #line 196 "/usr/share/misc/bison.simple"
2761 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2762 into yyparse. The argument should have type void *.
2763 It should actually point to an object.
2764 Grammar actions can access the variable by casting it
2765 to the proper pointer type. */
2767 #ifdef YYPARSE_PARAM
2769 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2770 #define YYPARSE_PARAM_DECL
2771 #else /* not __cplusplus */
2772 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2773 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2774 #endif /* not __cplusplus */
2775 #else /* not YYPARSE_PARAM */
2776 #define YYPARSE_PARAM_ARG
2777 #define YYPARSE_PARAM_DECL
2778 #endif /* not YYPARSE_PARAM */
2781 yyparse(YYPARSE_PARAM_ARG)
2784 register int yystate;
2786 register short *yyssp;
2787 register YYSTYPE *yyvsp;
2788 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2789 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2791 short yyssa[YYINITDEPTH]; /* the state stack */
2792 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2794 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2795 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2798 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2799 YYLTYPE *yyls = yylsa;
2802 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2804 #define YYPOPSTACK (yyvsp--, yyssp--)
2807 int yystacksize = YYINITDEPTH;
2818 YYSTYPE yyval; /* the variable used to return */
2819 /* semantic values from the action */
2826 fprintf(stderr, "Starting parse\n");
2832 yychar = YYEMPTY; /* Cause a token to be read. */
2834 /* Initialize stack pointers.
2835 Waste one element of value and location stack
2836 so that they stay on the same level as the state stack.
2837 The wasted elements are never initialized. */
2845 /* Push a new state, which is found in yystate . */
2846 /* In all cases, when you get here, the value and location stacks
2847 have just been pushed. so pushing a state here evens the stacks. */
2852 if (yyssp >= yyss + yystacksize - 1)
2854 /* Give user a chance to reallocate the stack */
2855 /* Use copies of these so that the &'s don't force the real ones into memory. */
2856 YYSTYPE *yyvs1 = yyvs;
2857 short *yyss1 = yyss;
2859 YYLTYPE *yyls1 = yyls;
2862 /* Get the current used size of the three stacks, in elements. */
2863 int size = yyssp - yyss + 1;
2866 /* Each stack pointer address is followed by the size of
2867 the data in use in that stack, in bytes. */
2869 /* This used to be a conditional around just the two extra args,
2870 but that might be undefined if yyoverflow is a macro. */
2871 yyoverflow("parser stack overflow",
2872 &yyss1, size * sizeof (*yyssp),
2873 &yyvs1, size * sizeof (*yyvsp),
2874 &yyls1, size * sizeof (*yylsp),
2877 yyoverflow("parser stack overflow",
2878 &yyss1, size * sizeof (*yyssp),
2879 &yyvs1, size * sizeof (*yyvsp),
2883 yyss = yyss1; yyvs = yyvs1;
2887 #else /* no yyoverflow */
2888 /* Extend the stack our own way. */
2889 if (yystacksize >= YYMAXDEPTH)
2891 yyerror("parser stack overflow");
2895 if (yystacksize > YYMAXDEPTH)
2896 yystacksize = YYMAXDEPTH;
2897 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
2898 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
2899 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
2900 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
2902 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
2903 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
2905 #endif /* no yyoverflow */
2907 yyssp = yyss + size - 1;
2908 yyvsp = yyvs + size - 1;
2910 yylsp = yyls + size - 1;
2915 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2918 if (yyssp >= yyss + yystacksize - 1)
2924 fprintf(stderr, "Entering state %d\n", yystate);
2930 /* Do appropriate processing given the current state. */
2931 /* Read a lookahead token if we need one and don't already have one. */
2934 /* First try to decide what to do without reference to lookahead token. */
2936 yyn = yypact[yystate];
2940 /* Not known => get a lookahead token if don't already have one. */
2942 /* yychar is either YYEMPTY or YYEOF
2943 or a valid token in external form. */
2945 if (yychar == YYEMPTY)
2949 fprintf(stderr, "Reading a token: ");
2954 /* Convert token to internal form (in yychar1) for indexing tables with */
2956 if (yychar <= 0) /* This means end of input. */
2959 yychar = YYEOF; /* Don't call YYLEX any more */
2963 fprintf(stderr, "Now at end of input.\n");
2968 yychar1 = YYTRANSLATE(yychar);
2973 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2974 /* Give the individual parser a way to print the precise meaning
2975 of a token, for further debugging info. */
2977 YYPRINT (stderr, yychar, yylval);
2979 fprintf (stderr, ")\n");
2985 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2990 /* yyn is what to do for this token type in this state.
2991 Negative => reduce, -yyn is rule number.
2992 Positive => shift, yyn is new state.
2993 New state is final state => don't bother to shift,
2994 just return success.
2995 0, or most negative number => error. */
3010 /* Shift the lookahead token. */
3014 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3017 /* Discard the token being shifted unless it is eof. */
3018 if (yychar != YYEOF)
3026 /* count tokens shifted since error; after three, turn off error status. */
3027 if (yyerrstatus) yyerrstatus--;
3032 /* Do the default action for the current state. */
3035 yyn = yydefact[yystate];
3039 /* Do a reduction. yyn is the number of a rule to reduce with. */
3043 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3050 fprintf (stderr, "Reducing via rule %d (line %d), ",
3053 /* Print the symbols being reduced, and their result. */
3054 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3055 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3056 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3064 #line 269 "cgrammar.y"
3065 { uentry_clearDecl (); ;
3068 #line 270 "cgrammar.y"
3069 { uentry_clearDecl (); ;
3072 #line 271 "cgrammar.y"
3073 { uentry_clearDecl (); ;
3076 #line 272 "cgrammar.y"
3077 { uentry_clearDecl (); ;
3080 #line 273 "cgrammar.y"
3081 { uentry_clearDecl (); ;
3084 #line 274 "cgrammar.y"
3085 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3088 #line 275 "cgrammar.y"
3089 { uentry_clearDecl (); ;
3092 #line 279 "cgrammar.y"
3093 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3096 #line 281 "cgrammar.y"
3097 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3100 #line 284 "cgrammar.y"
3101 { context_enterFunctionDecl (); ;
3104 #line 285 "cgrammar.y"
3105 { declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3106 context_exitFunctionDecl (); ;
3109 #line 290 "cgrammar.y"
3111 qtype qint = qtype_create (ctype_int);
3112 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3117 #line 296 "cgrammar.y"
3118 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3121 #line 301 "cgrammar.y"
3122 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3125 #line 304 "cgrammar.y"
3126 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3129 #line 306 "cgrammar.y"
3130 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3133 #line 308 "cgrammar.y"
3134 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3137 #line 310 "cgrammar.y"
3139 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), exprNode_getLongValue (yyvsp[-2].expr)));
3143 #line 314 "cgrammar.y"
3144 { setCurrentParams (uentryList_missingParams);
3148 #line 317 "cgrammar.y"
3149 { /* need to support globals and modifies here! */
3150 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp),
3151 uentryList_makeMissingParams ());
3153 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ct);
3158 #line 325 "cgrammar.y"
3159 { setCurrentParams (yyvsp[-1].entrylist);
3163 #line 328 "cgrammar.y"
3164 { clearCurrentParams ();
3165 yyval.ntyp = idDecl_replaceCtype (yyvsp[-7].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-7].ntyp), yyvsp[-4].entrylist));
3168 // printf("Done nameDeclBase\n");
3172 #line 336 "cgrammar.y"
3173 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3176 #line 338 "cgrammar.y"
3177 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3180 #line 340 "cgrammar.y"
3181 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3184 #line 342 "cgrammar.y"
3188 if (exprNode_hasValue (yyvsp[-2].expr)
3189 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3191 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3198 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3202 #line 358 "cgrammar.y"
3203 { setCurrentParams (uentryList_missingParams);
3207 #line 361 "cgrammar.y"
3208 { /* need to support globals and modifies here! */
3209 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3210 uentryList_makeMissingParams ());
3212 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3217 #line 369 "cgrammar.y"
3218 { setCurrentParams (yyvsp[-1].entrylist);
3222 #line 372 "cgrammar.y"
3223 { clearCurrentParams ();
3224 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3229 #line 379 "cgrammar.y"
3230 { setCurrentParams (yyvsp[-1].entrylist); ;
3233 #line 380 "cgrammar.y"
3234 { clearCurrentParams (); ;
3237 #line 381 "cgrammar.y"
3238 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3241 #line 384 "cgrammar.y"
3242 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3245 #line 385 "cgrammar.y"
3246 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3249 #line 386 "cgrammar.y"
3250 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3253 #line 387 "cgrammar.y"
3254 { exprChecks_checkEmptyMacroBody (); ;
3257 #line 390 "cgrammar.y"
3258 { declareFunction (yyvsp[0].ntyp); ;
3261 #line 393 "cgrammar.y"
3262 { setProcessingGlobMods (); ;
3265 #line 394 "cgrammar.y"
3266 { clearProcessingGlobMods (); ;
3269 #line 400 "cgrammar.y"
3270 { setProcessingGlobMods (); ;
3273 #line 401 "cgrammar.y"
3274 { clearProcessingGlobMods (); ;
3277 #line 409 "cgrammar.y"
3279 DPRINTF ( ("doing optGlobEnsuresConstraintsAux\n") );
3280 context_setProtectVars (); enterParamsTemp ();
3281 sRef_setGlobalScopeSafe ();
3286 #line 415 "cgrammar.y"
3288 setEnsuresConstraints (yyvsp[-1].sr);
3290 sRef_clearGlobalScopeSafe ();
3291 context_releaseVars ();
3292 DPRINTF (("done optGlobBufConstraintsAux\n"));;
3295 #line 425 "cgrammar.y"
3297 DPRINTF ( ("doing optGlobBufConstraintsAux\n") );
3298 context_setProtectVars (); enterParamsTemp ();
3299 sRef_setGlobalScopeSafe ();
3304 #line 431 "cgrammar.y"
3306 setFunctionConstraints (yyvsp[-1].sr);
3308 sRef_clearGlobalScopeSafe ();
3309 context_releaseVars ();
3310 DPRINTF (("done optGlobBufConstraintsAux\n"));;
3313 #line 440 "cgrammar.y"
3314 { yyval.sr = constraintList_add (yyvsp[0].sr, yyvsp[-1].sr); ;
3317 #line 441 "cgrammar.y"
3318 {constraintList c; c = constraintList_new(); c = constraintList_add (c, yyvsp[0].sr); yyval.sr = c;
3321 #line 444 "cgrammar.y"
3323 yyval.sr = makeConstraintParse3 (yyvsp[-3].sr, yyvsp[-2].tok, yyvsp[-1].sr);
3324 DPRINTF(("Done BufConstraint1\n")); ;
3327 #line 459 "cgrammar.y"
3328 {yyval.sr = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].sr); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3331 #line 460 "cgrammar.y"
3333 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3334 yyval.sr = constraintExpr_parseMakeBinaryOp (yyvsp[-3].sr, yyvsp[-2].tok, yyvsp[-1].sr); ;
3337 #line 465 "cgrammar.y"
3338 { /* $$ = constraintExpr_makeTermsRef (checkSpecClausesId ($1)); */
3339 yyval.sr = constraintExpr_makeTermsRef (checkbufferConstraintClausesId (yyvsp[0].entry));;
3342 #line 467 "cgrammar.y"
3343 { yyval.sr = constraintExpr_makeTermsRef(fixSpecClausesId (yyvsp[0].cname) ); ;
3346 #line 468 "cgrammar.y"
3348 t = cstring_toCharsSafe (exprNode_unparse(yyvsp[0].expr));
3350 yyval.sr = constraintExpr_makeIntLiteral (c);
3354 #line 489 "cgrammar.y"
3355 { setProcessingGlobMods (); ;
3358 #line 490 "cgrammar.y"
3359 { clearProcessingGlobMods (); ;
3362 #line 500 "cgrammar.y"
3363 { setProcessingGlobMods (); ;
3366 #line 501 "cgrammar.y"
3367 { clearProcessingGlobMods (); ;
3370 #line 516 "cgrammar.y"
3374 #line 517 "cgrammar.y"
3378 #line 520 "cgrammar.y"
3379 { globListAdd (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3382 #line 523 "cgrammar.y"
3383 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3386 #line 524 "cgrammar.y"
3387 { yyval.sr = globListUnrecognized (yyvsp[0].cname); ;
3390 #line 527 "cgrammar.y"
3391 { yyval.typequal = qual_createUndef (); ;
3394 #line 528 "cgrammar.y"
3395 { yyval.typequal = qual_createKilled (); ;
3398 #line 529 "cgrammar.y"
3399 { yyval.typequal = qual_createOut (); ;
3402 #line 530 "cgrammar.y"
3403 { yyval.typequal = qual_createIn (); ;
3406 #line 531 "cgrammar.y"
3407 { yyval.typequal = qual_createPartial (); ;
3410 #line 534 "cgrammar.y"
3411 { yyval.tquallist = qualList_undefined; ;
3414 #line 535 "cgrammar.y"
3415 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3418 #line 538 "cgrammar.y"
3419 { setProcessingGlobalsList (); ;
3422 #line 540 "cgrammar.y"
3423 { unsetProcessingGlobals (); ;
3426 #line 541 "cgrammar.y"
3427 { setProcessingGlobalsList (); ;
3430 #line 543 "cgrammar.y"
3431 { unsetProcessingGlobals (); ;
3434 #line 545 "cgrammar.y"
3435 { setFunctionNoGlobals ();
3436 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3440 #line 552 "cgrammar.y"
3441 { setProcessingGlobalsList (); ;
3444 #line 554 "cgrammar.y"
3445 { unsetProcessingGlobals (); ;
3448 #line 555 "cgrammar.y"
3449 { setProcessingGlobalsList (); ;
3452 #line 557 "cgrammar.y"
3453 { unsetProcessingGlobals (); ;
3456 #line 559 "cgrammar.y"
3457 { setFunctionNoGlobals ();
3458 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3462 #line 571 "cgrammar.y"
3464 context_setProtectVars (); enterParamsTemp ();
3465 sRef_setGlobalScopeSafe ();
3469 #line 576 "cgrammar.y"
3471 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3472 sRef_clearGlobalScopeSafe ();
3473 context_releaseVars ();
3477 #line 584 "cgrammar.y"
3479 context_setProtectVars (); enterParamsTemp ();
3480 sRef_setGlobalScopeSafe ();
3484 #line 589 "cgrammar.y"
3486 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3487 sRef_clearGlobalScopeSafe ();
3488 context_releaseVars ();
3492 #line 613 "cgrammar.y"
3493 { yyval.sck = SP_ISONLY; ;
3496 #line 614 "cgrammar.y"
3497 { yyval.sck = SP_ISOBSERVER; ;
3500 #line 615 "cgrammar.y"
3501 { yyval.sck = SP_ISEXPOSED; ;
3504 #line 616 "cgrammar.y"
3505 { yyval.sck = SP_ISDEPENDENT; ;
3508 #line 617 "cgrammar.y"
3509 { yyval.sck = SP_ISOWNED; ;
3512 #line 618 "cgrammar.y"
3513 { yyval.sck = SP_ISSHARED; ;
3516 #line 619 "cgrammar.y"
3517 { yyval.sck = SP_ISNULL; ;
3520 #line 620 "cgrammar.y"
3521 { yyval.sck = SP_ISNOTNULL; ;
3524 #line 624 "cgrammar.y"
3526 context_setProtectVars ();
3528 sRef_setGlobalScopeSafe ();
3532 #line 630 "cgrammar.y"
3534 setFunctionSpecialClause (yyvsp[-6].tok, yyvsp[-3].srset, yyvsp[-1].tok);
3536 sRef_clearGlobalScopeSafe ();
3537 context_releaseVars ();
3541 #line 637 "cgrammar.y"
3543 context_setProtectVars ();
3545 sRef_setGlobalScopeSafe ();
3549 #line 643 "cgrammar.y"
3551 setFunctionStateSpecialClause (yyvsp[-7].tok, yyvsp[-5].sck, yyvsp[-3].srset, yyvsp[-1].tok);
3553 sRef_clearGlobalScopeSafe ();
3554 context_releaseVars ();
3558 #line 652 "cgrammar.y"
3560 qtype qint = qtype_create (ctype_int);
3561 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3566 #line 658 "cgrammar.y"
3567 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3570 #line 661 "cgrammar.y"
3571 { checkDoneParams (); context_enterInnerContext (); ;
3574 #line 663 "cgrammar.y"
3576 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3577 context_exitInner (yyvsp[0].expr);
3581 #line 668 "cgrammar.y"
3582 { doneParams (); context_enterInnerContext (); ;
3585 #line 670 "cgrammar.y"
3587 context_exitInner (yyvsp[0].expr);
3588 exprNode_checkFunctionBody (yyvsp[0].expr);
3589 yyval.expr = yyvsp[0].expr; /* old style */
3593 #line 678 "cgrammar.y"
3595 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3596 /* exprNode_checkFunction (context_getHeader (), $2); */
3599 context_exitFunction ();
3603 #line 687 "cgrammar.y"
3604 { yyval.srset = yyvsp[-2].srset; ;
3607 #line 688 "cgrammar.y"
3608 { yyval.srset = sRefSet_new (); ;
3611 #line 691 "cgrammar.y"
3612 { yyval.srset = yyvsp[-1].srset; ;
3615 #line 692 "cgrammar.y"
3616 { yyval.srset = sRefSet_new (); ;
3619 #line 695 "cgrammar.y"
3620 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3623 #line 696 "cgrammar.y"
3624 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3627 #line 697 "cgrammar.y"
3628 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3631 #line 698 "cgrammar.y"
3632 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3635 #line 699 "cgrammar.y"
3636 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3639 #line 700 "cgrammar.y"
3640 { yyval.sr = yyvsp[-1].sr; ;
3643 #line 701 "cgrammar.y"
3644 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3647 #line 702 "cgrammar.y"
3648 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3651 #line 706 "cgrammar.y"
3652 { yyval.sr = yyvsp[0].sr; ;
3655 #line 707 "cgrammar.y"
3656 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3659 #line 711 "cgrammar.y"
3660 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3663 #line 712 "cgrammar.y"
3664 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3667 #line 716 "cgrammar.y"
3668 { yyval.sr = checkSpecClausesId (yyvsp[0].entry); ;
3671 #line 718 "cgrammar.y"
3672 { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
3675 #line 719 "cgrammar.y"
3676 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3679 #line 720 "cgrammar.y"
3680 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3683 #line 721 "cgrammar.y"
3684 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3687 #line 722 "cgrammar.y"
3688 { yyval.sr = yyvsp[-1].sr; ;
3691 #line 723 "cgrammar.y"
3692 { cstring_markOwned (yyvsp[0].cname);
3693 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3696 #line 725 "cgrammar.y"
3697 { cstring_markOwned (yyvsp[0].cname);
3698 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3701 #line 730 "cgrammar.y"
3702 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3703 else { yyval.srset = sRefSet_undefined; }
3707 #line 734 "cgrammar.y"
3708 { if (sRef_isValid (yyvsp[0].sr))
3710 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3714 yyval.srset = yyvsp[-2].srset;
3719 #line 745 "cgrammar.y"
3720 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3723 #line 746 "cgrammar.y"
3724 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3727 #line 747 "cgrammar.y"
3728 { yyval.expr = yyvsp[0].expr; ;
3731 #line 748 "cgrammar.y"
3732 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3735 #line 749 "cgrammar.y"
3736 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3739 #line 750 "cgrammar.y"
3740 { yyval.expr = exprNode_makeError (); ;
3743 #line 754 "cgrammar.y"
3744 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3747 #line 755 "cgrammar.y"
3748 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3751 #line 756 "cgrammar.y"
3752 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
3755 #line 757 "cgrammar.y"
3756 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3759 #line 758 "cgrammar.y"
3760 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3763 #line 759 "cgrammar.y"
3764 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3767 #line 760 "cgrammar.y"
3768 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3771 #line 761 "cgrammar.y"
3772 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3775 #line 764 "cgrammar.y"
3776 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
3779 #line 765 "cgrammar.y"
3780 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
3783 #line 769 "cgrammar.y"
3784 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3787 #line 770 "cgrammar.y"
3788 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3791 #line 771 "cgrammar.y"
3792 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3795 #line 772 "cgrammar.y"
3796 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3799 #line 773 "cgrammar.y"
3800 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3803 #line 774 "cgrammar.y"
3804 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3807 #line 775 "cgrammar.y"
3808 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3811 #line 776 "cgrammar.y"
3812 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3815 #line 777 "cgrammar.y"
3816 { yyval.expr = yyvsp[0].expr; ;
3819 #line 778 "cgrammar.y"
3820 { yyval.expr = yyvsp[0].expr; ;
3823 #line 781 "cgrammar.y"
3824 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3827 #line 782 "cgrammar.y"
3828 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3831 #line 786 "cgrammar.y"
3832 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3835 #line 789 "cgrammar.y"
3836 { context_setProtectVars (); ;
3839 #line 790 "cgrammar.y"
3840 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3843 #line 793 "cgrammar.y"
3844 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3847 #line 794 "cgrammar.y"
3848 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3851 #line 795 "cgrammar.y"
3852 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3855 #line 796 "cgrammar.y"
3856 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3859 #line 801 "cgrammar.y"
3860 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3863 #line 805 "cgrammar.y"
3864 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3867 #line 806 "cgrammar.y"
3868 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3871 #line 807 "cgrammar.y"
3872 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3875 #line 811 "cgrammar.y"
3876 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3879 #line 812 "cgrammar.y"
3880 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3883 #line 816 "cgrammar.y"
3884 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3887 #line 817 "cgrammar.y"
3888 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3891 #line 821 "cgrammar.y"
3892 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3895 #line 822 "cgrammar.y"
3896 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3899 #line 823 "cgrammar.y"
3900 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3903 #line 824 "cgrammar.y"
3904 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3907 #line 828 "cgrammar.y"
3908 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3911 #line 829 "cgrammar.y"
3912 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3915 #line 833 "cgrammar.y"
3916 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3919 #line 837 "cgrammar.y"
3920 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3923 #line 842 "cgrammar.y"
3924 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3927 #line 847 "cgrammar.y"
3928 { exprNode_produceGuards (yyvsp[-1].expr);
3929 context_enterAndClause (yyvsp[-1].expr);
3933 #line 851 "cgrammar.y"
3935 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3936 context_exitAndClause (yyval.expr, yyvsp[0].expr);
3940 #line 859 "cgrammar.y"
3942 exprNode_produceGuards (yyvsp[-1].expr);
3943 context_enterOrClause (yyvsp[-1].expr);
3947 #line 864 "cgrammar.y"
3949 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3950 context_exitOrClause (yyval.expr, yyvsp[0].expr);
3954 #line 871 "cgrammar.y"
3955 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3958 #line 872 "cgrammar.y"
3959 { context_enterFalseClause (yyvsp[-4].expr); ;
3962 #line 873 "cgrammar.y"
3963 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
3966 #line 877 "cgrammar.y"
3967 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3970 #line 878 "cgrammar.y"
3971 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3974 #line 879 "cgrammar.y"
3975 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3978 #line 880 "cgrammar.y"
3979 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3982 #line 881 "cgrammar.y"
3983 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3986 #line 882 "cgrammar.y"
3987 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3990 #line 883 "cgrammar.y"
3991 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3994 #line 884 "cgrammar.y"
3995 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3998 #line 885 "cgrammar.y"
3999 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4002 #line 886 "cgrammar.y"
4003 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4006 #line 887 "cgrammar.y"
4007 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4010 #line 891 "cgrammar.y"
4011 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
4014 #line 894 "cgrammar.y"
4015 { yyval.expr = exprNode_undefined; ;
4018 #line 903 "cgrammar.y"
4019 { yyval.expr = yyvsp[0].expr; ;
4022 #line 904 "cgrammar.y"
4023 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
4026 #line 905 "cgrammar.y"
4027 { yyval.expr = exprNode_makeError (); ;
4030 #line 908 "cgrammar.y"
4031 { yyval.expr = exprNode_makeError (); ;
4034 #line 922 "cgrammar.y"
4036 setProcessingVars (yyvsp[-3].qtyp);
4037 processNamedDecl (yyvsp[-1].ntyp); ;
4040 #line 925 "cgrammar.y"
4041 { unsetProcessingVars (); yyval.expr = yyvsp[-2].expr; ;
4044 #line 927 "cgrammar.y"
4045 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp);
4049 #line 930 "cgrammar.y"
4050 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
4051 unsetProcessingVars ();
4055 #line 934 "cgrammar.y"
4056 { processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeError (); ;
4059 #line 935 "cgrammar.y"
4060 { processNamedDecl (yyvsp[-2].ntyp); ;
4063 #line 936 "cgrammar.y"
4064 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
4067 #line 940 "cgrammar.y"
4068 { setProcessingTypedef (yyvsp[0].qtyp); ;
4071 #line 941 "cgrammar.y"
4072 { unsetProcessingTypedef (); ;
4075 #line 942 "cgrammar.y"
4076 { /* in the ANSI grammar, semantics unclear */ ;
4079 #line 943 "cgrammar.y"
4080 { /* in the ANSI grammar, semantics unclear */ ;
4083 #line 946 "cgrammar.y"
4084 { g_expectingTypeName = TRUE; ;
4087 #line 949 "cgrammar.y"
4088 { g_expectingTypeName = TRUE; context_pushLoc (); ;
4091 #line 952 "cgrammar.y"
4095 #line 955 "cgrammar.y"
4099 #line 956 "cgrammar.y"
4103 #line 959 "cgrammar.y"
4104 { yyval.expr = exprNode_makeError (); ;
4107 #line 960 "cgrammar.y"
4108 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4111 #line 963 "cgrammar.y"
4112 { yyval.expr = yyvsp[0].expr; ;
4115 #line 964 "cgrammar.y"
4116 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].alist); ;
4119 #line 965 "cgrammar.y"
4120 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].alist); ;
4123 #line 970 "cgrammar.y"
4124 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
4127 #line 972 "cgrammar.y"
4128 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
4131 #line 980 "cgrammar.y"
4132 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4135 #line 981 "cgrammar.y"
4136 { yyval.typequal = qual_createInline (); ;
4139 #line 982 "cgrammar.y"
4140 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4143 #line 983 "cgrammar.y"
4144 { yyval.typequal = qual_createAuto (); ;
4147 #line 984 "cgrammar.y"
4148 { yyval.typequal = qual_createRegister (); ;
4151 #line 987 "cgrammar.y"
4152 { yyval.typequal = qual_createConst (); ;
4155 #line 988 "cgrammar.y"
4156 { yyval.typequal = qual_createVolatile (); ;
4159 #line 989 "cgrammar.y"
4160 { yyval.typequal = qual_createOut (); ;
4163 #line 990 "cgrammar.y"
4164 { yyval.typequal = qual_createIn (); ;
4167 #line 991 "cgrammar.y"
4168 { yyval.typequal = qual_createPartial (); ;
4171 #line 992 "cgrammar.y"
4172 { yyval.typequal = qual_createSpecial (); ;
4175 #line 993 "cgrammar.y"
4176 { yyval.typequal = qual_createOwned (); ;
4179 #line 994 "cgrammar.y"
4180 { yyval.typequal = qual_createDependent (); ;
4183 #line 995 "cgrammar.y"
4184 { yyval.typequal = qual_createYield (); ;
4187 #line 996 "cgrammar.y"
4188 { yyval.typequal = qual_createTemp (); ;
4191 #line 997 "cgrammar.y"
4192 { yyval.typequal = qual_createOnly (); ;
4195 #line 998 "cgrammar.y"
4196 { yyval.typequal = qual_createKeep (); ;
4199 #line 999 "cgrammar.y"
4200 { yyval.typequal = qual_createKept (); ;
4203 #line 1000 "cgrammar.y"
4204 { yyval.typequal = qual_createShared (); ;
4207 #line 1001 "cgrammar.y"
4208 { yyval.typequal = qual_createUnique (); ;
4211 #line 1002 "cgrammar.y"
4212 { yyval.typequal = qual_createExits (); ;
4215 #line 1003 "cgrammar.y"
4216 { yyval.typequal = qual_createMayExit (); ;
4219 #line 1004 "cgrammar.y"
4220 { yyval.typequal = qual_createTrueExit (); ;
4223 #line 1005 "cgrammar.y"
4224 { yyval.typequal = qual_createFalseExit (); ;
4227 #line 1006 "cgrammar.y"
4228 { yyval.typequal = qual_createNeverExit (); ;
4231 #line 1007 "cgrammar.y"
4232 { yyval.typequal = qual_createNull (); ;
4235 #line 1008 "cgrammar.y"
4236 { yyval.typequal = qual_createRelNull (); ;
4239 #line 1009 "cgrammar.y"
4240 { yyval.typequal = qual_createReturned (); ;
4243 #line 1010 "cgrammar.y"
4244 { yyval.typequal = qual_createExposed (); ;
4247 #line 1011 "cgrammar.y"
4248 { yyval.typequal = qual_createObserver (); ;
4251 #line 1012 "cgrammar.y"
4252 { yyval.typequal = qual_createChecked (); ;
4255 #line 1013 "cgrammar.y"
4256 { yyval.typequal = qual_createCheckMod (); ;
4259 #line 1014 "cgrammar.y"
4260 { yyval.typequal = qual_createUnchecked (); ;
4263 #line 1015 "cgrammar.y"
4264 { yyval.typequal = qual_createCheckedStrict (); ;
4267 #line 1016 "cgrammar.y"
4268 { yyval.typequal = qual_createTrueNull (); ;
4271 #line 1017 "cgrammar.y"
4272 { yyval.typequal = qual_createFalseNull (); ;
4275 #line 1018 "cgrammar.y"
4276 { yyval.typequal = qual_createUnused (); ;
4279 #line 1019 "cgrammar.y"
4280 { yyval.typequal = qual_createExternal (); ;
4283 #line 1020 "cgrammar.y"
4284 { yyval.typequal = qual_createSef (); ;
4287 #line 1021 "cgrammar.y"
4288 { yyval.typequal = qual_createAbstract (); ;
4291 #line 1022 "cgrammar.y"
4292 { yyval.typequal = qual_createConcrete (); ;
4295 #line 1023 "cgrammar.y"
4296 { yyval.typequal = qual_createMutable (); ;
4299 #line 1024 "cgrammar.y"
4300 { yyval.typequal = qual_createImmutable (); ;
4303 #line 1025 "cgrammar.y"
4304 { yyval.typequal = qual_createNotNull (); ;
4307 #line 1026 "cgrammar.y"
4308 { yyval.typequal = qual_createRefCounted (); ;
4311 #line 1027 "cgrammar.y"
4312 { yyval.typequal = qual_createRefs (); ;
4315 #line 1028 "cgrammar.y"
4316 { yyval.typequal = qual_createKillRef (); ;
4319 #line 1029 "cgrammar.y"
4320 { yyval.typequal = qual_createRelDef (); ;
4323 #line 1030 "cgrammar.y"
4324 { yyval.typequal = qual_createNewRef (); ;
4327 #line 1031 "cgrammar.y"
4328 { yyval.typequal = qual_createTempRef (); ;
4331 #line 1032 "cgrammar.y"
4332 { yyval.typequal = qual_createNullTerminated (); ;
4335 #line 1038 "cgrammar.y"
4336 { yyval.typequal = qual_createShort (); ;
4339 #line 1039 "cgrammar.y"
4340 { yyval.typequal = qual_createLong (); ;
4343 #line 1040 "cgrammar.y"
4344 { yyval.typequal = qual_createSigned (); ;
4347 #line 1041 "cgrammar.y"
4348 { yyval.typequal = qual_createUnsigned (); ;
4351 #line 1050 "cgrammar.y"
4352 { yyval.ctyp = ctype_unknown; ;
4355 #line 1051 "cgrammar.y"
4356 { yyval.ctyp = ctype_anyintegral; ;
4359 #line 1052 "cgrammar.y"
4360 { yyval.ctyp = ctype_unsignedintegral; ;
4363 #line 1053 "cgrammar.y"
4364 { yyval.ctyp = ctype_signedintegral; ;
4367 #line 1057 "cgrammar.y"
4368 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4371 #line 1061 "cgrammar.y"
4372 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4375 #line 1064 "cgrammar.y"
4376 { yyval.qtyp = yyvsp[0].qtyp; ;
4379 #line 1066 "cgrammar.y"
4380 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4383 #line 1071 "cgrammar.y"
4384 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4387 #line 1074 "cgrammar.y"
4388 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4391 #line 1075 "cgrammar.y"
4392 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4395 #line 1076 "cgrammar.y"
4396 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4399 #line 1079 "cgrammar.y"
4400 { yyval.qtyp = qtype_unknown (); ;
4403 #line 1080 "cgrammar.y"
4404 { yyval.qtyp = yyvsp[0].qtyp; ;
4407 #line 1083 "cgrammar.y"
4408 { sRef_setGlobalScopeSafe (); ;
4411 #line 1085 "cgrammar.y"
4412 { sRef_clearGlobalScopeSafe (); ;
4415 #line 1087 "cgrammar.y"
4416 { yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ;
4419 #line 1088 "cgrammar.y"
4420 { sRef_setGlobalScopeSafe (); ;
4423 #line 1090 "cgrammar.y"
4424 { sRef_clearGlobalScopeSafe (); ;
4427 #line 1092 "cgrammar.y"
4428 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4431 #line 1094 "cgrammar.y"
4432 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4435 #line 1096 "cgrammar.y"
4436 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4439 #line 1097 "cgrammar.y"
4440 { sRef_setGlobalScopeSafe (); ;
4443 #line 1099 "cgrammar.y"
4444 { sRef_clearGlobalScopeSafe (); ;
4447 #line 1101 "cgrammar.y"
4448 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4451 #line 1102 "cgrammar.y"
4452 { sRef_setGlobalScopeSafe (); ;
4455 #line 1104 "cgrammar.y"
4456 { sRef_clearGlobalScopeSafe (); ;
4459 #line 1106 "cgrammar.y"
4460 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4463 #line 1108 "cgrammar.y"
4464 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4467 #line 1110 "cgrammar.y"
4468 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4471 #line 1111 "cgrammar.y"
4472 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4475 #line 1112 "cgrammar.y"
4476 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4479 #line 1115 "cgrammar.y"
4480 { g_expectingTypeName = FALSE; ;
4483 #line 1119 "cgrammar.y"
4484 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4487 #line 1120 "cgrammar.y"
4488 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4491 #line 1124 "cgrammar.y"
4492 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4495 #line 1126 "cgrammar.y"
4496 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4499 #line 1130 "cgrammar.y"
4500 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4503 #line 1132 "cgrammar.y"
4504 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4507 #line 1135 "cgrammar.y"
4508 { yyval.ntyp = yyvsp[0].ntyp; ;
4511 #line 1136 "cgrammar.y"
4512 { yyval.ntyp = idDecl_undefined; ;
4515 #line 1137 "cgrammar.y"
4516 { yyval.ntyp = yyvsp[-3].ntyp; ;
4519 #line 1142 "cgrammar.y"
4520 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4523 #line 1143 "cgrammar.y"
4524 { context_pushLoc (); ;
4527 #line 1144 "cgrammar.y"
4528 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4531 #line 1145 "cgrammar.y"
4532 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4535 #line 1149 "cgrammar.y"
4536 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4539 #line 1151 "cgrammar.y"
4540 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4543 #line 1156 "cgrammar.y"
4544 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4545 usymtab_supGlobalEntry (ue);
4546 yyval.cname = yyvsp[0].cname;
4550 #line 1161 "cgrammar.y"
4551 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4552 usymtab_supGlobalEntry (ue);
4553 yyval.cname = yyvsp[-3].cname;
4557 #line 1168 "cgrammar.y"
4558 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4561 #line 1170 "cgrammar.y"
4563 qtype qt = qtype_unknown ();
4565 qtype_adjustPointers (yyvsp[-1].count, qt);
4566 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4570 #line 1177 "cgrammar.y"
4571 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4574 #line 1182 "cgrammar.y"
4575 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4578 #line 1185 "cgrammar.y"
4579 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4582 #line 1186 "cgrammar.y"
4583 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4586 #line 1189 "cgrammar.y"
4587 { /* ignored for now */; ;
4590 #line 1190 "cgrammar.y"
4594 #line 1193 "cgrammar.y"
4598 #line 1194 "cgrammar.y"
4602 #line 1197 "cgrammar.y"
4603 { yyval.count = 1; ;
4606 #line 1198 "cgrammar.y"
4607 { yyval.count = 1; ;
4610 #line 1199 "cgrammar.y"
4611 { yyval.count = 1 + yyvsp[0].count; ;
4614 #line 1200 "cgrammar.y"
4615 { yyval.count = 1 + yyvsp[0].count; ;
4618 #line 1204 "cgrammar.y"
4619 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4622 #line 1207 "cgrammar.y"
4623 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4626 #line 1208 "cgrammar.y"
4627 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4630 #line 1211 "cgrammar.y"
4631 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4634 #line 1213 "cgrammar.y"
4635 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4638 #line 1216 "cgrammar.y"
4642 #line 1216 "cgrammar.y"
4643 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4646 #line 1217 "cgrammar.y"
4650 #line 1218 "cgrammar.y"
4651 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4654 #line 1222 "cgrammar.y"
4656 if (isFlipOldStyle ())
4658 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4664 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4668 #line 1234 "cgrammar.y"
4670 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4674 llparseerror (message ("Inconsistent function parameter syntax: %q",
4675 idDecl_unparse (tparam)));
4679 yyval.oentry = makeCurrentParam (tparam);
4680 idDecl_free (tparam);
4684 #line 1250 "cgrammar.y"
4685 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4688 #line 1253 "cgrammar.y"
4689 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4692 #line 1255 "cgrammar.y"
4693 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4696 #line 1258 "cgrammar.y"
4697 { yyval.ctyp = ctype_unknown; ;
4700 #line 1263 "cgrammar.y"
4701 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4704 #line 1264 "cgrammar.y"
4705 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4708 #line 1266 "cgrammar.y"
4709 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4712 #line 1267 "cgrammar.y"
4713 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4716 #line 1269 "cgrammar.y"
4717 { yyval.ctyp = ctype_makeFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4720 #line 1271 "cgrammar.y"
4721 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4724 #line 1273 "cgrammar.y"
4725 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4728 #line 1275 "cgrammar.y"
4729 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4732 #line 1277 "cgrammar.y"
4733 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4736 #line 1292 "cgrammar.y"
4737 {yyval.expr = yyvsp[0].expr; printf ("Doing stmt lclintassertion\n"); ;
4740 #line 1296 "cgrammar.y"
4741 { printf(" QSETBUFFERSIZE id CCONSTANT HEllo World\n"); uentry_setBufferSize(yyvsp[-2].entry, yyvsp[-1].expr); yyval.expr = exprNode_createTok (yyvsp[0].tok);
4745 #line 1298 "cgrammar.y"
4746 { printf(" QSETSTRINGLENGTH id CCONSTANT HEllo World\n"); uentry_setStringLength(yyvsp[-2].entry, yyvsp[-1].expr); yyval.expr = exprNode_createTok (yyvsp[0].tok);
4750 #line 1300 "cgrammar.y"
4751 {printf(" QTESTINRANGE\n"); uentry_testInRange(yyvsp[-2].entry, yyvsp[-1].expr); yyval.expr = exprNode_createTok (yyvsp[0].tok);
4755 #line 1306 "cgrammar.y"
4756 { yyval.expr = exprNode_labelMarker (yyvsp[0].cname); ;
4759 #line 1311 "cgrammar.y"
4760 { yyval.expr = yyvsp[0].expr; ;
4763 #line 1319 "cgrammar.y"
4764 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4767 #line 1323 "cgrammar.y"
4768 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4771 #line 1325 "cgrammar.y"
4772 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4775 #line 1327 "cgrammar.y"
4776 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4779 #line 1329 "cgrammar.y"
4780 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4783 #line 1333 "cgrammar.y"
4784 { context_setProtectVars (); ;
4787 #line 1333 "cgrammar.y"
4788 { context_sizeofReleaseVars (); ;
4791 #line 1335 "cgrammar.y"
4792 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4793 context_enterForClause (yyvsp[-5].expr); ;
4796 #line 1340 "cgrammar.y"
4797 { setProcessingIterVars (yyvsp[-2].entry); ;
4800 #line 1342 "cgrammar.y"
4801 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].alist); ;
4804 #line 1343 "cgrammar.y"
4805 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4808 #line 1349 "cgrammar.y"
4809 { yyval.expr = yyvsp[0].expr; ;
4812 #line 1357 "cgrammar.y"
4813 { yyval.expr = yyvsp[-1].expr; ;
4816 #line 1358 "cgrammar.y"
4817 { yyval.expr = exprNode_makeError (); ;
4820 #line 1362 "cgrammar.y"
4821 { /* don't: context_exitTrueClause ($1, $2); */
4822 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4826 #line 1367 "cgrammar.y"
4827 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4830 #line 1370 "cgrammar.y"
4831 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4834 #line 1385 "cgrammar.y"
4835 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4838 #line 1387 "cgrammar.y"
4839 { yyval.expr = exprNode_makeError (); ;
4842 #line 1390 "cgrammar.y"
4843 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
4846 #line 1391 "cgrammar.y"
4847 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4850 #line 1397 "cgrammar.y"
4851 { context_enterCaseClause (yyvsp[0].expr); ;
4854 #line 1398 "cgrammar.y"
4855 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4858 #line 1399 "cgrammar.y"
4859 { context_enterCaseClause (yyvsp[0].expr); ;
4862 #line 1400 "cgrammar.y"
4863 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4866 #line 1403 "cgrammar.y"
4867 { context_enterCaseClause (exprNode_undefined); ;
4870 #line 1404 "cgrammar.y"
4871 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
4874 #line 1405 "cgrammar.y"
4875 { context_enterCaseClause (exprNode_undefined); ;
4878 #line 1406 "cgrammar.y"
4879 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
4882 #line 1409 "cgrammar.y"
4883 { yyval.expr = yyvsp[-1].expr; ;
4886 #line 1411 "cgrammar.y"
4887 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4890 #line 1414 "cgrammar.y"
4891 { yyval.expr = yyvsp[-1].expr; ;
4894 #line 1417 "cgrammar.y"
4895 { context_enterInnerContext (); ;
4898 #line 1420 "cgrammar.y"
4899 { context_exitInnerPlain (); ;
4902 #line 1423 "cgrammar.y"
4903 { context_enterStructInnerContext (); ;
4906 #line 1426 "cgrammar.y"
4907 { context_exitStructInnerContext (); ;
4910 #line 1429 "cgrammar.y"
4911 { context_exitInnerSafe (); ;
4914 #line 1432 "cgrammar.y"
4915 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4918 #line 1433 "cgrammar.y"
4919 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4922 #line 1434 "cgrammar.y"
4923 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4926 #line 1436 "cgrammar.y"
4927 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4930 #line 1437 "cgrammar.y"
4931 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4934 #line 1439 "cgrammar.y"
4935 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4938 #line 1441 "cgrammar.y"
4939 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4942 #line 1443 "cgrammar.y"
4943 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
4944 lltok_getLoc (yyvsp[-1].tok)));
4948 #line 1450 "cgrammar.y"
4949 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
4952 #line 1454 "cgrammar.y"
4953 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4956 #line 1456 "cgrammar.y"
4957 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4960 #line 1458 "cgrammar.y"
4961 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4964 #line 1460 "cgrammar.y"
4965 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4968 #line 1464 "cgrammar.y"
4969 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4972 #line 1467 "cgrammar.y"
4973 { yyval.expr = yyvsp[0].expr; ;
4976 #line 1468 "cgrammar.y"
4977 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4980 #line 1471 "cgrammar.y"
4981 { yyval.expr = yyvsp[0].expr; ;
4984 #line 1472 "cgrammar.y"
4985 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4988 #line 1475 "cgrammar.y"
4989 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4992 #line 1476 "cgrammar.y"
4993 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4996 #line 1479 "cgrammar.y"
4997 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5000 #line 1480 "cgrammar.y"
5001 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5004 #line 1481 "cgrammar.y"
5005 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
5008 #line 1485 "cgrammar.y"
5009 { yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
5012 #line 1493 "cgrammar.y"
5014 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
5015 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
5019 #line 1497 "cgrammar.y"
5020 { context_enterFalseClause (yyvsp[-2].expr); ;
5023 #line 1498 "cgrammar.y"
5025 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5026 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5030 #line 1502 "cgrammar.y"
5031 { context_enterSwitch (yyvsp[0].expr); ;
5034 #line 1503 "cgrammar.y"
5035 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
5038 #line 1507 "cgrammar.y"
5039 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
5042 #line 1511 "cgrammar.y"
5043 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
5046 #line 1514 "cgrammar.y"
5047 { context_enterIterClause (); ;
5050 #line 1515 "cgrammar.y"
5051 { setProcessingIterVars (yyvsp[-3].entry); ;
5054 #line 1518 "cgrammar.y"
5056 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].alist, yyvsp[-2].expr, yyvsp[-1].entry);
5061 #line 1524 "cgrammar.y"
5062 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
5065 #line 1525 "cgrammar.y"
5066 { nextIterParam (); ;
5069 #line 1526 "cgrammar.y"
5070 { yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ;
5073 #line 1529 "cgrammar.y"
5074 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
5077 #line 1530 "cgrammar.y"
5078 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
5081 #line 1531 "cgrammar.y"
5082 { uentry ue = coerceIterId (yyvsp[0].cname);
5084 if (uentry_isValid (ue))
5086 yyval.expr = exprNode_iterId (ue);
5090 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
5095 #line 1542 "cgrammar.y"
5096 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
5099 #line 1550 "cgrammar.y"
5100 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5103 #line 1554 "cgrammar.y"
5104 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
5107 #line 1555 "cgrammar.y"
5108 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
5111 #line 1556 "cgrammar.y"
5112 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
5115 #line 1558 "cgrammar.y"
5116 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
5119 #line 1559 "cgrammar.y"
5120 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
5123 #line 1560 "cgrammar.y"
5124 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
5127 #line 1561 "cgrammar.y"
5128 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5131 #line 1562 "cgrammar.y"
5132 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5135 #line 1566 "cgrammar.y"
5136 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5139 #line 1567 "cgrammar.y"
5140 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5143 #line 1568 "cgrammar.y"
5144 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5147 #line 1569 "cgrammar.y"
5148 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5151 #line 1570 "cgrammar.y"
5152 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5155 #line 1571 "cgrammar.y"
5156 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5159 #line 1572 "cgrammar.y"
5160 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5163 #line 1573 "cgrammar.y"
5164 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5167 #line 1574 "cgrammar.y"
5168 { yyval.expr = yyvsp[0].expr; ;
5171 #line 1578 "cgrammar.y"
5172 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
5175 #line 1582 "cgrammar.y"
5176 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5179 #line 1583 "cgrammar.y"
5180 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5183 #line 1584 "cgrammar.y"
5184 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5187 #line 1588 "cgrammar.y"
5188 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5191 #line 1589 "cgrammar.y"
5192 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5195 #line 1593 "cgrammar.y"
5196 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5199 #line 1594 "cgrammar.y"
5200 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5203 #line 1598 "cgrammar.y"
5204 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5207 #line 1599 "cgrammar.y"
5208 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5211 #line 1600 "cgrammar.y"
5212 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5215 #line 1601 "cgrammar.y"
5216 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5219 #line 1605 "cgrammar.y"
5220 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5223 #line 1606 "cgrammar.y"
5224 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5227 #line 1610 "cgrammar.y"
5228 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5231 #line 1614 "cgrammar.y"
5232 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5235 #line 1619 "cgrammar.y"
5236 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5239 #line 1623 "cgrammar.y"
5240 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5243 #line 1627 "cgrammar.y"
5244 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5247 #line 1631 "cgrammar.y"
5248 { context_enterTrueClause (yyvsp[-1].expr); ;
5251 #line 1632 "cgrammar.y"
5252 { context_enterFalseClause (yyvsp[-4].expr); ;
5255 #line 1633 "cgrammar.y"
5256 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5259 #line 1637 "cgrammar.y"
5260 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5263 #line 1638 "cgrammar.y"
5264 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5267 #line 1639 "cgrammar.y"
5268 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5271 #line 1640 "cgrammar.y"
5272 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5275 #line 1641 "cgrammar.y"
5276 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5279 #line 1642 "cgrammar.y"
5280 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5283 #line 1643 "cgrammar.y"
5284 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5287 #line 1644 "cgrammar.y"
5288 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5291 #line 1645 "cgrammar.y"
5292 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5295 #line 1646 "cgrammar.y"
5296 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5299 #line 1647 "cgrammar.y"
5300 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5303 #line 1650 "cgrammar.y"
5304 { yyval.entry = yyvsp[0].entry; ;
5307 #line 1651 "cgrammar.y"
5308 { yyval.entry = uentry_undefined; ;
5311 #line 1654 "cgrammar.y"
5312 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5315 #line 1658 "cgrammar.y"
5316 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5319 #line 1660 "cgrammar.y"
5320 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5323 #line 1662 "cgrammar.y"
5324 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5327 #line 1665 "cgrammar.y"
5328 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5331 #line 1667 "cgrammar.y"
5332 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5335 #line 1669 "cgrammar.y"
5336 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5339 #line 1670 "cgrammar.y"
5340 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5343 #line 1673 "cgrammar.y"
5344 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5347 #line 1674 "cgrammar.y"
5348 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5351 #line 1676 "cgrammar.y"
5352 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5355 #line 1677 "cgrammar.y"
5356 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5359 #line 1678 "cgrammar.y"
5360 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5363 #line 1679 "cgrammar.y"
5364 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5367 #line 1680 "cgrammar.y"
5368 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5371 #line 1681 "cgrammar.y"
5372 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5375 #line 1682 "cgrammar.y"
5376 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5379 #line 1683 "cgrammar.y"
5380 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5383 #line 1687 "cgrammar.y"
5387 #line 1694 "cgrammar.y"
5388 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5391 #line 1695 "cgrammar.y"
5392 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5395 #line 1696 "cgrammar.y"
5396 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5399 #line 1697 "cgrammar.y"
5400 { yyval.cname = yyvsp[0].cname; ;
5403 #line 1701 "cgrammar.y"
5404 { yyval.ctyp = ctype_unknown; ;
5407 /* the action file gets copied in in place of this dollarsign */
5408 #line 498 "/usr/share/misc/bison.simple"
5419 short *ssp1 = yyss - 1;
5420 fprintf (stderr, "state stack now");
5421 while (ssp1 != yyssp)
5422 fprintf (stderr, " %d", *++ssp1);
5423 fprintf (stderr, "\n");
5433 yylsp->first_line = yylloc.first_line;
5434 yylsp->first_column = yylloc.first_column;
5435 yylsp->last_line = (yylsp-1)->last_line;
5436 yylsp->last_column = (yylsp-1)->last_column;
5441 yylsp->last_line = (yylsp+yylen-1)->last_line;
5442 yylsp->last_column = (yylsp+yylen-1)->last_column;
5446 /* Now "shift" the result of the reduction.
5447 Determine what state that goes to,
5448 based on the state we popped back to
5449 and the rule number reduced by. */
5453 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5454 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5455 yystate = yytable[yystate];
5457 yystate = yydefgoto[yyn - YYNTBASE];
5461 yyerrlab: /* here on detecting error */
5464 /* If not already recovering from an error, report this error. */
5468 #ifdef YYERROR_VERBOSE
5469 yyn = yypact[yystate];
5471 if (yyn > YYFLAG && yyn < YYLAST)
5478 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5479 for (x = (yyn < 0 ? -yyn : 0);
5480 x < (sizeof(yytname) / sizeof(char *)); x++)
5481 if (yycheck[x + yyn] == x)
5482 size += strlen(yytname[x]) + 15, count++;
5483 msg = (char *) malloc(size + 15);
5486 strcpy(msg, "parse error");
5491 for (x = (yyn < 0 ? -yyn : 0);
5492 x < (sizeof(yytname) / sizeof(char *)); x++)
5493 if (yycheck[x + yyn] == x)
5495 strcat(msg, count == 0 ? ", expecting `" : " or `");
5496 strcat(msg, yytname[x]);
5505 yyerror ("parse error; also virtual memory exceeded");
5508 #endif /* YYERROR_VERBOSE */
5509 yyerror("parse error");
5513 yyerrlab1: /* here on error raised explicitly by an action */
5515 if (yyerrstatus == 3)
5517 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5519 /* return failure if at end of input */
5520 if (yychar == YYEOF)
5525 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5531 /* Else will try to reuse lookahead token
5532 after shifting the error token. */
5534 yyerrstatus = 3; /* Each real token shifted decrements this */
5538 yyerrdefault: /* current state does not do anything special for the error token. */
5541 /* This is wrong; only states that explicitly want error tokens
5542 should shift them. */
5543 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5544 if (yyn) goto yydefault;
5547 yyerrpop: /* pop the current state because it cannot handle the error token */
5549 if (yyssp == yyss) YYABORT;
5559 short *ssp1 = yyss - 1;
5560 fprintf (stderr, "Error: state stack now");
5561 while (ssp1 != yyssp)
5562 fprintf (stderr, " %d", *++ssp1);
5563 fprintf (stderr, "\n");
5569 yyn = yypact[yystate];
5574 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5593 fprintf(stderr, "Shifting error token, ");
5604 #line 1703 "cgrammar.y"
5608 extern char *yytext;
5611 # include "bison.reset"
5613 void yyerror (/*@unused@*/ char *s)
5615 static bool givehint = FALSE;
5617 if (context_inIterDef ())
5619 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5620 context_inFunctionName ()));
5622 else if (context_inIterEnd ())
5624 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5625 context_inFunctionName ()));
5627 else if (context_inMacro ())
5629 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5630 context_inFunctionName ()));
5632 if (context_inMacroUnknown ())
5636 llhint (cstring_makeLiteral
5637 ("Precede macro definition with /*@notfunction@*/ "
5638 "to suppress checking and force expansion"));
5647 llparseerror (cstring_undefined);
5651 void printState (idDecl t) {
5652 cstring id = idDecl_getName (t);
5653 uentry ue = usymtab_lookupSafe (id);
5655 sRef s = uentry_getSref (ue);
5657 printf("State = %d\n", s->bufinfo.bufstate);
5661 /*take this out soon */
5662 /* void testassert1 (cstring id, icstring cons ) { */
5663 /* uentry ue =usymtab_lookupSafe (id); */
5664 /* sRef s = uentry_getSref (ue); */
5665 /* printf ("Doing testassert1 with setbuffersize\n"); */
5666 /* printf("State = %d\n", s->bufinfo.bufstate); */
5668 /* void testassert2 (cstring id) { */
5669 /* uentry ue =usymtab_lookupSafe (id); */
5670 /* sRef s = uentry_getSref (ue); */
5671 /* printf ("Doing testassert2 with setbuffersize\n"); */
5672 /* printf("State = %d\n", s->bufinfo.bufstate); */