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 QSETSTRINGLENGTH 432
183 #define QTESTINRANGE 433
184 #define IDENTIFIER 434
185 #define NEW_IDENTIFIER 435
186 #define TYPE_NAME_OR_ID 436
187 #define CCONSTANT 437
188 #define ITER_NAME 438
189 #define ITER_ENDNAME 439
190 #define TYPE_NAME 440
192 #line 19 "cgrammar.y"
198 ** Yacc/Bison grammar for extended ANSI C used by LCLint.
200 ** original grammar by Nate Osgood ---
201 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
203 ** changes for LCLint --- handle typedef names correctly
204 ** fix struct/union parsing bug (empty struct is accepted)
205 ** add productions to handle macros --- require
206 ** error correction --- main source of conflicts in grammar.
207 ** need to process initializations sequentially, L->R
209 ** production names are cryptic, so more productions fit on one line
211 ** conflicts: 87 shift/reduce, 18 reduce/reduce
212 ** most of these are due to handling macros
213 ** a few are due to handling type expressions
219 extern void swallowMacro (void);
221 # include "lclintMacros.nf"
223 # include "cgrammar.h"
224 # include "exprChecks.h"
229 # define SHOWCSYM FALSE
230 void yyerror (char *s);
233 ** This is necessary, or else when the bison-generated code #include's malloc.h,
234 ** there will be a parse error.
236 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
237 ** in bison-generated files under Win32.
246 void checkandsetBufState(idDecl id, exprNode is);
248 #line 75 "cgrammar.y"
253 specialClauseKind sck;
258 /*@only@*/ qtype qtyp;
259 /*@only@*/ cstring cname;
260 /*@only@*/ idDecl ntyp;
261 /*@only@*/ idDeclList ntyplist;
262 /*@only@*/ uentryList flist;
263 /*@owned@*/ uentryList entrylist;
264 /*@observer@*/ /*@dependent@*/ uentry entry;
265 /*@only@*/ uentry oentry;
266 /*@only@*/ exprNode expr;
267 /*@only@*/ enumNameList enumnamelist;
268 /*@only@*/ exprNodeList alist;
269 /*@only@*/ sRefSet srset;
270 /*@only@*/ cstringList cstringlist;
287 #define YYFLAG -32768
290 #define YYTRANSLATE(x) ((unsigned)(x) <= 440 ? yytranslate[x] : 418)
292 static const short yytranslate[] = { 0,
293 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
294 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
295 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
296 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
297 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
298 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
299 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
300 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
301 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
302 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
303 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
304 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
305 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
306 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
307 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
308 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
309 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
310 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
311 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
312 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
313 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
314 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
315 2, 2, 2, 2, 2, 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, 1, 2, 3, 4, 5,
319 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
320 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
321 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
322 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
323 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
324 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
325 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
326 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
327 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
328 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
329 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
330 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
331 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
332 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
333 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
334 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
335 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
336 176, 177, 178, 179, 180, 181, 182, 183, 184, 185
340 static const short yyprhs[] = { 0,
341 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
342 21, 23, 32, 44, 45, 51, 53, 57, 59, 62,
343 64, 71, 75, 82, 83, 91, 92, 101, 103, 110,
344 114, 121, 122, 129, 130, 138, 139, 140, 151, 155,
345 159, 163, 166, 168, 169, 172, 174, 176, 177, 183,
346 184, 185, 188, 190, 193, 195, 198, 200, 203, 205,
347 209, 212, 214, 216, 218, 220, 222, 224, 226, 227,
348 230, 231, 238, 239, 246, 248, 250, 251, 252, 258,
349 259, 265, 267, 269, 270, 272, 273, 274, 278, 279,
350 283, 285, 287, 289, 291, 293, 295, 297, 299, 301,
351 303, 305, 307, 309, 311, 313, 315, 317, 318, 326,
352 327, 336, 338, 342, 343, 347, 348, 352, 355, 359,
353 362, 365, 367, 369, 371, 375, 380, 383, 387, 391,
354 395, 397, 399, 401, 405, 407, 409, 413, 418, 421,
355 425, 429, 433, 435, 439, 441, 443, 445, 449, 451,
356 453, 455, 460, 464, 469, 476, 482, 488, 491, 494,
357 496, 500, 502, 505, 508, 511, 514, 517, 520, 523,
358 526, 528, 530, 534, 536, 546, 547, 551, 556, 559,
359 564, 567, 569, 574, 576, 580, 584, 588, 590, 594,
360 598, 600, 604, 608, 610, 614, 618, 622, 626, 628,
361 632, 636, 638, 642, 644, 648, 650, 654, 656, 657,
362 662, 664, 665, 670, 672, 673, 674, 682, 684, 688,
363 692, 696, 700, 704, 708, 712, 716, 720, 724, 728,
364 730, 734, 735, 737, 739, 741, 743, 745, 749, 750,
365 760, 761, 773, 776, 777, 784, 785, 793, 798, 803,
366 804, 805, 808, 810, 815, 816, 821, 823, 827, 832,
367 834, 838, 840, 842, 844, 846, 848, 851, 854, 857,
368 860, 863, 866, 869, 872, 875, 878, 881, 884, 887,
369 890, 893, 896, 899, 902, 905, 908, 911, 914, 917,
370 920, 923, 926, 929, 932, 935, 938, 941, 944, 947,
371 950, 953, 956, 959, 962, 965, 968, 971, 974, 977,
372 980, 983, 986, 988, 990, 992, 994, 997, 1000, 1003,
373 1006, 1009, 1012, 1015, 1018, 1021, 1024, 1027, 1030, 1033,
374 1036, 1040, 1042, 1047, 1049, 1053, 1056, 1059, 1062, 1063,
375 1065, 1066, 1067, 1079, 1080, 1081, 1093, 1100, 1107, 1108,
376 1109, 1120, 1121, 1122, 1133, 1139, 1145, 1150, 1155, 1156,
377 1158, 1160, 1163, 1169, 1173, 1176, 1181, 1183, 1187, 1192,
378 1199, 1200, 1209, 1214, 1216, 1220, 1223, 1225, 1230, 1232,
379 1234, 1237, 1240, 1242, 1245, 1247, 1250, 1252, 1254, 1256,
380 1259, 1261, 1264, 1267, 1271, 1273, 1277, 1279, 1283, 1285,
381 1287, 1291, 1292, 1295, 1296, 1301, 1306, 1308, 1310, 1313,
382 1315, 1317, 1320, 1321, 1323, 1329, 1332, 1336, 1340, 1345,
383 1349, 1354, 1359, 1365, 1367, 1369, 1371, 1373, 1375, 1377,
384 1379, 1381, 1383, 1385, 1390, 1395, 1400, 1403, 1405, 1407,
385 1409, 1412, 1415, 1423, 1430, 1433, 1434, 1435, 1446, 1447,
386 1454, 1456, 1458, 1460, 1462, 1465, 1467, 1469, 1471, 1473,
387 1475, 1477, 1479, 1483, 1485, 1488, 1491, 1494, 1496, 1498,
388 1500, 1502, 1504, 1506, 1508, 1510, 1512, 1514, 1518, 1520,
389 1522, 1525, 1528, 1529, 1534, 1535, 1541, 1542, 1546, 1547,
390 1552, 1556, 1559, 1563, 1564, 1565, 1566, 1567, 1568, 1570,
391 1573, 1576, 1580, 1583, 1587, 1591, 1596, 1599, 1602, 1606,
392 1610, 1615, 1617, 1620, 1622, 1625, 1627, 1630, 1632, 1635,
393 1637, 1640, 1642, 1647, 1650, 1651, 1657, 1658, 1665, 1670,
394 1675, 1676, 1677, 1688, 1690, 1691, 1696, 1698, 1700, 1702,
395 1704, 1706, 1710, 1712, 1717, 1721, 1726, 1733, 1739, 1745,
396 1748, 1751, 1753, 1756, 1759, 1762, 1765, 1768, 1771, 1774,
397 1777, 1779, 1781, 1786, 1788, 1792, 1796, 1800, 1802, 1806,
398 1810, 1812, 1816, 1820, 1822, 1826, 1830, 1834, 1838, 1840,
399 1844, 1848, 1850, 1854, 1856, 1860, 1862, 1866, 1868, 1872,
400 1874, 1878, 1880, 1881, 1882, 1890, 1892, 1896, 1900, 1904,
401 1908, 1912, 1916, 1920, 1924, 1928, 1932, 1936, 1938, 1939,
402 1941, 1944, 1952, 1955, 1958, 1966, 1973, 1976, 1980, 1983,
403 1987, 1990, 1994, 1998, 2002, 2006, 2009, 2013, 2014, 2016,
404 2018, 2020, 2022, 2024, 2026, 2028, 2030
407 static const short yyrhs[] = { -1,
408 187, 0, 188, 0, 187, 188, 0, 244, 414, 0,
409 189, 0, 190, 0, 200, 0, 203, 0, 281, 0,
410 1, 0, 75, 301, 314, 324, 314, 414, 289, 88,
411 0, 75, 301, 314, 324, 314, 23, 289, 294, 293,
412 414, 88, 0, 0, 76, 191, 192, 414, 88, 0,
413 193, 0, 301, 314, 193, 0, 197, 0, 328, 197,
414 0, 416, 0, 289, 24, 314, 324, 289, 25, 0,
415 194, 26, 27, 0, 194, 26, 289, 280, 27, 314,
416 0, 0, 194, 290, 24, 25, 195, 205, 207, 0,
417 0, 194, 290, 24, 325, 25, 196, 205, 207, 0,
418 416, 0, 289, 24, 314, 193, 289, 25, 0, 197,
419 26, 27, 0, 197, 26, 289, 280, 27, 314, 0,
420 0, 197, 290, 24, 25, 198, 211, 0, 0, 197,
421 290, 24, 325, 25, 199, 211, 0, 0, 0, 77,
422 416, 24, 325, 25, 201, 211, 202, 414, 88, 0,
423 89, 355, 92, 0, 90, 342, 92, 0, 91, 343,
424 92, 0, 89, 92, 0, 240, 0, 0, 206, 213,
425 0, 208, 0, 209, 0, 0, 210, 176, 415, 182,
426 88, 0, 0, 0, 212, 214, 0, 221, 0, 215,
427 221, 0, 224, 0, 215, 224, 0, 237, 0, 237,
428 215, 0, 217, 0, 216, 21, 217, 0, 220, 218,
429 0, 415, 0, 180, 0, 86, 0, 87, 0, 116,
430 0, 117, 0, 130, 0, 0, 219, 220, 0, 0,
431 72, 222, 375, 414, 88, 227, 0, 0, 72, 223,
432 216, 414, 88, 227, 0, 74, 0, 228, 0, 0,
433 0, 72, 225, 375, 414, 227, 0, 0, 72, 226,
434 216, 414, 227, 0, 74, 0, 230, 0, 0, 228,
435 0, 0, 0, 73, 229, 245, 0, 0, 73, 231,
436 246, 0, 78, 0, 79, 0, 80, 0, 81, 0,
437 82, 0, 88, 0, 88, 0, 83, 0, 84, 0,
438 119, 0, 137, 0, 135, 0, 133, 0, 132, 0,
439 121, 0, 138, 0, 150, 0, 0, 232, 314, 238,
440 251, 414, 234, 289, 0, 0, 235, 314, 236, 239,
441 251, 414, 233, 289, 0, 324, 0, 301, 314, 324,
442 0, 0, 19, 242, 371, 0, 0, 375, 243, 364,
443 0, 204, 241, 0, 249, 414, 88, 0, 414, 88,
444 0, 249, 414, 0, 414, 0, 415, 0, 180, 0,
445 247, 26, 27, 0, 247, 26, 248, 27, 0, 34,
446 247, 0, 24, 247, 25, 0, 247, 28, 416, 0,
447 247, 44, 416, 0, 247, 0, 182, 0, 247, 0,
448 249, 21, 247, 0, 415, 0, 180, 0, 250, 26,
449 27, 0, 250, 26, 248, 27, 0, 34, 250, 0,
450 24, 250, 25, 0, 250, 28, 416, 0, 250, 44,
451 416, 0, 250, 0, 251, 21, 250, 0, 415, 0,
452 180, 0, 182, 0, 24, 278, 25, 0, 181, 0,
453 111, 0, 252, 0, 253, 26, 278, 27, 0, 253,
454 24, 25, 0, 253, 24, 254, 25, 0, 70, 24,
455 277, 21, 336, 25, 0, 253, 314, 28, 416, 289,
456 0, 253, 314, 44, 416, 289, 0, 253, 47, 0,
457 253, 48, 0, 277, 0, 254, 21, 277, 0, 253,
458 0, 47, 255, 0, 48, 255, 0, 29, 261, 0,
459 34, 261, 0, 33, 261, 0, 32, 261, 0, 31,
460 261, 0, 30, 261, 0, 258, 0, 257, 0, 256,
461 28, 416, 0, 416, 0, 46, 289, 24, 336, 314,
462 21, 256, 25, 289, 0, 0, 289, 259, 260, 0,
463 42, 24, 336, 25, 0, 42, 255, 0, 43, 24,
464 336, 25, 0, 43, 255, 0, 255, 0, 24, 336,
465 25, 261, 0, 261, 0, 262, 34, 261, 0, 262,
466 35, 261, 0, 262, 36, 261, 0, 262, 0, 263,
467 33, 262, 0, 263, 32, 262, 0, 263, 0, 264,
468 49, 263, 0, 264, 50, 263, 0, 264, 0, 265,
469 37, 264, 0, 265, 38, 264, 0, 265, 51, 264,
470 0, 265, 52, 264, 0, 265, 0, 266, 53, 265,
471 0, 266, 54, 265, 0, 266, 0, 267, 29, 266,
472 0, 267, 0, 268, 39, 267, 0, 268, 0, 269,
473 40, 268, 0, 269, 0, 0, 270, 55, 271, 269,
474 0, 270, 0, 0, 272, 56, 273, 270, 0, 272,
475 0, 0, 0, 272, 41, 275, 278, 22, 276, 274,
476 0, 274, 0, 255, 23, 277, 0, 255, 57, 277,
477 0, 255, 58, 277, 0, 255, 59, 277, 0, 255,
478 60, 277, 0, 255, 61, 277, 0, 255, 62, 277,
479 0, 255, 63, 277, 0, 255, 64, 277, 0, 255,
480 65, 277, 0, 255, 66, 277, 0, 277, 0, 278,
481 21, 277, 0, 0, 278, 0, 274, 0, 282, 0,
482 71, 0, 287, 0, 301, 289, 18, 0, 0, 301,
483 314, 324, 314, 283, 289, 293, 18, 289, 0, 0,
484 301, 314, 324, 314, 23, 284, 289, 294, 293, 18,
485 289, 0, 324, 314, 0, 0, 324, 314, 23, 286,
486 289, 294, 0, 0, 45, 301, 288, 314, 291, 289,
487 18, 0, 45, 301, 289, 18, 0, 45, 291, 289,
488 18, 0, 0, 0, 292, 289, 0, 285, 0, 291,
489 21, 314, 285, 0, 0, 293, 21, 314, 285, 0,
490 277, 0, 19, 295, 20, 0, 19, 295, 21, 20,
491 0, 294, 0, 295, 21, 294, 0, 112, 0, 110,
492 0, 113, 0, 114, 0, 115, 0, 108, 289, 0,
493 109, 289, 0, 116, 289, 0, 117, 289, 0, 130,
494 289, 0, 131, 289, 0, 132, 289, 0, 133, 289,
495 0, 118, 289, 0, 120, 289, 0, 119, 289, 0,
496 128, 289, 0, 129, 289, 0, 121, 289, 0, 123,
497 289, 0, 139, 289, 0, 140, 289, 0, 142, 289,
498 0, 143, 289, 0, 141, 289, 0, 136, 289, 0,
499 151, 289, 0, 134, 289, 0, 135, 289, 0, 137,
500 289, 0, 124, 289, 0, 127, 289, 0, 125, 289,
501 0, 126, 289, 0, 156, 289, 0, 157, 289, 0,
502 148, 289, 0, 158, 289, 0, 149, 289, 0, 152,
503 289, 0, 153, 289, 0, 154, 289, 0, 155, 289,
504 0, 150, 289, 0, 159, 289, 0, 160, 289, 0,
505 163, 289, 0, 164, 289, 0, 161, 289, 0, 162,
506 289, 0, 175, 289, 0, 147, 0, 144, 0, 145,
507 0, 146, 0, 165, 314, 0, 167, 314, 0, 166,
508 314, 0, 168, 314, 0, 169, 314, 0, 170, 314,
509 0, 171, 314, 0, 172, 314, 0, 173, 314, 0,
510 174, 314, 0, 417, 314, 0, 305, 314, 0, 319,
511 314, 0, 298, 314, 0, 289, 301, 289, 0, 303,
512 0, 303, 85, 302, 88, 0, 336, 0, 336, 21,
513 302, 0, 296, 304, 0, 297, 304, 0, 299, 304,
514 0, 0, 301, 0, 0, 0, 314, 67, 416, 289,
515 19, 306, 368, 315, 369, 307, 20, 0, 0, 0,
516 314, 68, 416, 289, 19, 308, 368, 315, 369, 309,
517 20, 0, 314, 67, 416, 289, 19, 20, 0, 314,
518 68, 416, 289, 19, 20, 0, 0, 0, 314, 67,
519 289, 19, 310, 368, 315, 369, 311, 20, 0, 0,
520 0, 314, 68, 289, 19, 312, 368, 315, 369, 313,
521 20, 0, 314, 67, 289, 19, 20, 0, 314, 68,
522 289, 19, 20, 0, 314, 67, 416, 314, 0, 314,
523 68, 416, 314, 0, 0, 316, 0, 203, 0, 315,
524 316, 0, 301, 314, 317, 289, 18, 0, 301, 289,
525 18, 0, 318, 314, 0, 317, 21, 318, 314, 0,
526 324, 0, 22, 289, 280, 0, 324, 22, 289, 280,
527 0, 314, 69, 19, 321, 20, 289, 0, 0, 314,
528 69, 416, 19, 320, 321, 20, 289, 0, 314, 69,
529 416, 289, 0, 322, 0, 321, 21, 322, 0, 321,
530 21, 0, 416, 0, 416, 23, 289, 280, 0, 194,
531 0, 338, 0, 328, 185, 0, 328, 323, 0, 194,
532 0, 328, 194, 0, 331, 0, 314, 329, 0, 108,
533 0, 109, 0, 326, 0, 327, 326, 0, 34, 0,
534 34, 327, 0, 34, 328, 0, 34, 327, 328, 0,
535 330, 0, 330, 21, 5, 0, 416, 0, 330, 21,
536 416, 0, 5, 0, 332, 0, 332, 21, 5, 0,
537 0, 333, 335, 0, 0, 332, 21, 334, 335, 0,
538 289, 301, 323, 289, 0, 416, 0, 300, 0, 300,
539 337, 0, 328, 0, 339, 0, 328, 339, 0, 0,
540 339, 0, 289, 24, 314, 337, 25, 0, 26, 27,
541 0, 26, 280, 27, 0, 339, 26, 27, 0, 339,
542 26, 280, 27, 0, 289, 24, 25, 0, 289, 24,
543 331, 25, 0, 339, 289, 24, 25, 0, 339, 289,
544 24, 331, 25, 0, 357, 0, 358, 0, 361, 0,
545 364, 0, 377, 0, 380, 0, 411, 0, 385, 0,
546 413, 0, 341, 0, 176, 415, 182, 88, 0, 177,
547 415, 182, 88, 0, 178, 415, 182, 88, 0, 22,
548 416, 0, 344, 0, 342, 0, 351, 0, 344, 351,
549 0, 384, 344, 0, 410, 356, 11, 24, 278, 25,
550 18, 0, 410, 356, 11, 24, 278, 25, 0, 346,
551 351, 0, 0, 0, 13, 24, 279, 18, 279, 18,
552 347, 279, 348, 25, 0, 0, 183, 366, 24, 350,
553 388, 25, 0, 184, 0, 357, 0, 358, 0, 361,
554 0, 353, 375, 0, 353, 0, 354, 0, 377, 0,
555 352, 0, 345, 0, 349, 0, 413, 0, 24, 351,
556 25, 0, 1, 0, 379, 351, 0, 366, 19, 0,
557 370, 20, 0, 356, 0, 374, 0, 357, 0, 358,
558 0, 361, 0, 365, 0, 378, 0, 380, 0, 385,
559 0, 412, 0, 24, 356, 25, 0, 413, 0, 1,
560 0, 416, 22, 0, 107, 340, 0, 0, 6, 280,
561 359, 22, 0, 0, 98, 6, 280, 360, 22, 0,
562 0, 7, 362, 22, 0, 0, 98, 7, 363, 22,
563 0, 24, 364, 25, 0, 366, 372, 0, 366, 373,
564 367, 0, 0, 0, 0, 0, 0, 20, 0, 107,
565 20, 0, 376, 20, 0, 376, 107, 20, 0, 375,
566 20, 0, 375, 107, 20, 0, 375, 376, 20, 0,
567 375, 376, 107, 20, 0, 19, 371, 0, 19, 20,
568 0, 19, 374, 20, 0, 19, 375, 20, 0, 19,
569 375, 376, 20, 0, 356, 0, 374, 356, 0, 281,
570 0, 375, 281, 0, 340, 0, 376, 340, 0, 18,
571 0, 278, 18, 0, 18, 0, 278, 18, 0, 278,
572 0, 8, 24, 278, 25, 0, 379, 340, 0, 0,
573 379, 340, 9, 381, 340, 0, 0, 10, 24, 278,
574 382, 25, 340, 0, 11, 24, 278, 25, 0, 11,
575 24, 278, 25, 0, 0, 0, 183, 386, 366, 24,
576 387, 388, 25, 364, 409, 367, 0, 390, 0, 0,
577 388, 389, 21, 390, 0, 408, 0, 415, 0, 181,
578 0, 180, 0, 182, 0, 24, 278, 25, 0, 391,
579 0, 253, 26, 278, 27, 0, 253, 24, 25, 0,
580 253, 24, 254, 25, 0, 70, 24, 277, 21, 336,
581 25, 0, 253, 314, 28, 416, 289, 0, 253, 314,
582 44, 416, 289, 0, 253, 47, 0, 253, 48, 0,
583 392, 0, 47, 255, 0, 48, 255, 0, 29, 261,
584 0, 34, 261, 0, 33, 261, 0, 32, 261, 0,
585 31, 261, 0, 30, 261, 0, 258, 0, 393, 0,
586 24, 336, 25, 261, 0, 394, 0, 262, 34, 261,
587 0, 262, 35, 261, 0, 262, 36, 261, 0, 395,
588 0, 263, 33, 262, 0, 263, 32, 262, 0, 396,
589 0, 264, 49, 263, 0, 264, 50, 263, 0, 397,
590 0, 265, 37, 264, 0, 265, 38, 264, 0, 265,
591 51, 264, 0, 265, 52, 264, 0, 398, 0, 266,
592 53, 265, 0, 266, 54, 265, 0, 399, 0, 267,
593 29, 266, 0, 400, 0, 268, 39, 267, 0, 401,
594 0, 269, 40, 268, 0, 402, 0, 270, 55, 269,
595 0, 403, 0, 272, 56, 270, 0, 404, 0, 0,
596 0, 272, 41, 406, 278, 22, 407, 274, 0, 405,
597 0, 255, 23, 277, 0, 255, 57, 277, 0, 255,
598 58, 277, 0, 255, 59, 277, 0, 255, 60, 277,
599 0, 255, 61, 277, 0, 255, 62, 277, 0, 255,
600 63, 277, 0, 255, 64, 277, 0, 255, 65, 277,
601 0, 255, 66, 277, 0, 184, 0, 0, 12, 0,
602 383, 340, 0, 410, 340, 11, 24, 278, 25, 18,
603 0, 346, 340, 0, 383, 356, 0, 410, 356, 11,
604 24, 278, 25, 18, 0, 410, 356, 11, 24, 278,
605 25, 0, 346, 356, 0, 14, 416, 18, 0, 15,
606 18, 0, 97, 15, 18, 0, 16, 18, 0, 93,
607 16, 18, 0, 94, 16, 18, 0, 95, 16, 18,
608 0, 96, 16, 18, 0, 17, 18, 0, 17, 278,
609 18, 0, 0, 18, 0, 179, 0, 180, 0, 183,
610 0, 184, 0, 415, 0, 181, 0, 185, 0, 181,
617 static const short yyrline[] = { 0,
618 241, 242, 245, 246, 249, 250, 251, 252, 253, 254,
619 255, 258, 260, 264, 264, 269, 275, 279, 280, 284,
620 285, 287, 289, 293, 296, 304, 307, 314, 315, 317,
621 319, 335, 339, 346, 350, 356, 358, 358, 362, 363,
622 364, 365, 368, 371, 372, 376, 379, 382, 382, 383,
623 389, 390, 393, 394, 397, 398, 401, 402, 405, 406,
624 409, 412, 413, 416, 417, 418, 419, 420, 423, 424,
625 427, 427, 430, 430, 433, 437, 438, 441, 441, 444,
626 444, 447, 451, 452, 455, 456, 459, 465, 472, 478,
627 485, 486, 487, 488, 489, 492, 495, 498, 499, 502,
628 503, 504, 505, 506, 507, 508, 509, 512, 518, 525,
629 531, 540, 546, 550, 552, 556, 559, 566, 576, 577,
630 580, 581, 584, 585, 586, 587, 588, 589, 590, 591,
631 595, 596, 600, 601, 604, 606, 608, 609, 610, 611,
632 612, 614, 618, 622, 634, 635, 636, 637, 638, 639,
633 642, 643, 644, 645, 646, 647, 648, 649, 650, 653,
634 654, 657, 658, 659, 660, 661, 662, 663, 664, 665,
635 666, 667, 670, 671, 674, 678, 679, 682, 683, 684,
636 685, 688, 689, 693, 694, 695, 696, 699, 700, 701,
637 704, 705, 706, 709, 710, 711, 712, 713, 716, 717,
638 718, 721, 722, 725, 726, 730, 731, 734, 735, 740,
639 746, 747, 753, 759, 760, 760, 762, 765, 766, 767,
640 768, 769, 770, 771, 772, 773, 774, 775, 776, 779,
641 780, 783, 784, 787, 792, 793, 794, 797, 810, 814,
642 815, 818, 823, 824, 824, 829, 830, 831, 832, 835,
643 838, 841, 844, 845, 848, 849, 852, 853, 854, 858,
644 860, 869, 870, 871, 872, 873, 876, 877, 878, 879,
645 880, 881, 882, 883, 884, 885, 886, 887, 888, 889,
646 890, 891, 892, 893, 894, 895, 896, 897, 898, 899,
647 900, 901, 902, 903, 904, 905, 906, 907, 908, 909,
648 910, 911, 912, 913, 914, 915, 916, 917, 918, 919,
649 920, 921, 927, 928, 929, 930, 933, 934, 935, 936,
650 937, 938, 939, 940, 941, 942, 943, 944, 945, 946,
651 949, 953, 954, 958, 959, 963, 964, 965, 968, 969,
652 972, 974, 976, 977, 979, 981, 982, 984, 986, 988,
653 990, 991, 993, 995, 996, 998, 1000, 1001, 1004, 1007,
654 1008, 1009, 1012, 1014, 1018, 1020, 1024, 1025, 1026, 1030,
655 1032, 1032, 1034, 1037, 1039, 1041, 1044, 1049, 1056, 1057,
656 1058, 1065, 1069, 1070, 1074, 1075, 1078, 1079, 1082, 1083,
657 1086, 1087, 1088, 1089, 1092, 1093, 1096, 1097, 1100, 1101,
658 1102, 1105, 1105, 1106, 1107, 1110, 1122, 1138, 1139, 1142,
659 1143, 1144, 1147, 1148, 1151, 1153, 1154, 1156, 1157, 1159,
660 1161, 1163, 1165, 1171, 1172, 1173, 1174, 1175, 1176, 1177,
661 1178, 1179, 1181, 1185, 1187, 1189, 1195, 1200, 1203, 1206,
662 1207, 1211, 1213, 1215, 1217, 1221, 1222, 1224, 1228, 1230,
663 1232, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243,
664 1244, 1245, 1246, 1247, 1250, 1256, 1259, 1262, 1263, 1266,
665 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276,
666 1279, 1280, 1286, 1287, 1288, 1289, 1292, 1293, 1294, 1295,
667 1298, 1299, 1303, 1306, 1309, 1312, 1315, 1318, 1321, 1322,
668 1323, 1324, 1326, 1327, 1329, 1331, 1338, 1342, 1344, 1346,
669 1348, 1352, 1353, 1356, 1357, 1360, 1361, 1364, 1365, 1368,
670 1369, 1370, 1373, 1381, 1386, 1387, 1391, 1392, 1395, 1400,
671 1403, 1404, 1405, 1413, 1414, 1414, 1418, 1419, 1420, 1431,
672 1438, 1439, 1442, 1443, 1444, 1445, 1446, 1448, 1449, 1450,
673 1451, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462,
674 1463, 1466, 1467, 1470, 1471, 1472, 1473, 1476, 1477, 1478,
675 1481, 1482, 1483, 1486, 1487, 1488, 1489, 1490, 1493, 1494,
676 1495, 1498, 1499, 1502, 1503, 1507, 1508, 1511, 1512, 1515,
677 1516, 1519, 1520, 1521, 1522, 1525, 1526, 1527, 1528, 1529,
678 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1539, 1540, 1543,
679 1546, 1548, 1550, 1554, 1555, 1557, 1559, 1562, 1563, 1564,
680 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1575, 1576, 1579,
681 1582, 1583, 1584, 1585, 1586, 1589, 1590
686 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
688 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
689 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
690 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
691 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
692 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
693 "TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP",
694 "DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP",
695 "MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
696 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
697 "VA_ARG","VA_DCL","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION","QITER",
698 "QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
699 "QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND","TENDMACRO",
700 "QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE","QFALLTHROUGH",
701 "QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED","QPRINTFLIKE",
702 "QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST","QVOLATILE",
703 "QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT","QIN",
704 "QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED",
705 "QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED",
706 "QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT",
707 "QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT",
708 "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE",
709 "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF",
710 "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE",
711 "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED",
712 "QSETBUFFERSIZE","QSETSTRINGLENGTH","QTESTINRANGE","IDENTIFIER","NEW_IDENTIFIER",
713 "TYPE_NAME_OR_ID","CCONSTANT","ITER_NAME","ITER_ENDNAME","TYPE_NAME","file",
714 "externalDefs","externalDef","constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl",
715 "namedDeclBase","@2","@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7",
716 "macroDef","fcnDefHdr","optGlobMods","@8","optGlobBufConstraints","optGlobBufConstraintsRest",
717 "optGlobBufConstraintsAux","@9","optPlainGlobMods","@10","optGlobModsRest","optPlainGlobModsRest",
718 "specialClauses","globIdList","globIdListExpr","globId","globQual","optGlobQuals",
719 "optGlobModsAux","@11","@12","optPlainGlobModsAux","@13","@14","optMods","fcnMods",
720 "@15","fcnPlainMods","@16","specialTag","endStateTag","endSpecialTag","stateSpecialClause",
721 "specialClauseType","specialClause","@17","@18","fcnDefHdrAux","fcnBody","@19",
722 "@20","fcnDef","locModifies","locPlainModifies","modListExpr","mExpr","modList",
723 "specClauseListExpr","specClauseList","primaryExpr","postfixExpr","argumentExprList",
724 "unaryExpr","fieldDesignator","offsetofExpr","sizeofExpr","@21","sizeofExprAux",
725 "castExpr","timesExpr","plusExpr","shiftExpr","relationalExpr","equalityExpr",
726 "bitandExpr","xorExpr","bitorExpr","andExpr","@22","orExpr","@23","conditionalExpr",
727 "@24","@25","assignExpr","expr","optExpr","constantExpr","initializer","instanceDecl",
728 "@26","@27","namedInitializer","@28","typeDecl","@29","IsType","PushType","namedInitializerList",
729 "namedInitializerListAux","optDeclarators","init","initList","storageSpecifier",
730 "typeQualifier","typeModifier","typeSpecifier","completeType","completeTypeSpecifier",
731 "altType","completeTypeSpecifierAux","optCompleteType","suSpc","@30","@31","@32",
732 "@33","@34","@35","@36","@37","NotType","structDeclList","structDecl","structNamedDeclList",
733 "structNamedDecl","enumSpc","@38","enumeratorList","enumerator","optNamedDecl",
734 "namedDecl","genericParamList","innerMods","innerModsList","pointers","paramIdList",
735 "idList","paramTypeList","paramList","@39","@40","paramDecl","typeExpression",
736 "abstractDecl","optAbstractDeclBase","abstractDeclBase","stmt","lclintassertion",
737 "iterBody","endBody","iterDefStmtList","iterDefIterationStmt","forPred","@41",
738 "@42","partialIterStmt","@43","iterDefStmt","iterSelectionStmt","openScope",
739 "closeScope","macroBody","stmtErr","labeledStmt","caseStmt","@44","@45","defaultStmt",
740 "@46","@47","compoundStmt","compoundStmtErr","CreateInnerScope","DeleteInnerScope",
741 "CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe","compoundStmtRest",
742 "compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList","stmtList",
743 "expressionStmt","expressionStmtErr","ifPred","selectionStmt","@48","@49","whilePred",
744 "iterWhilePred","iterStmt","@50","@51","iterArgList","@52","iterArgExpr","primaryIterExpr",
745 "postfixIterExpr","unaryIterExpr","castIterExpr","timesIterExpr","plusIterExpr",
746 "shiftIterExpr","relationalIterExpr","equalityIterExpr","bitandIterExpr","xorIterExpr",
747 "bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr","@53","@54",
748 "assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr","jumpStmt",
749 "optSemi","id","newId","typeName", NULL
753 static const short yyr1[] = { 0,
754 186, 186, 187, 187, 188, 188, 188, 188, 188, 188,
755 188, 189, 189, 191, 190, 192, 192, 193, 193, 194,
756 194, 194, 194, 195, 194, 196, 194, 197, 197, 197,
757 197, 198, 197, 199, 197, 201, 202, 200, 203, 203,
758 203, 203, 204, 206, 205, 207, 208, 210, 209, 209,
759 212, 211, 213, 213, 214, 214, 215, 215, 216, 216,
760 217, 218, 218, 219, 219, 219, 219, 219, 220, 220,
761 222, 221, 223, 221, 221, 221, 221, 225, 224, 226,
762 224, 224, 224, 224, 227, 227, 229, 228, 231, 230,
763 232, 232, 232, 232, 232, 233, 234, 235, 235, 236,
764 236, 236, 236, 236, 236, 236, 236, 238, 237, 239,
765 237, 240, 240, 242, 241, 243, 241, 244, 245, 245,
766 246, 246, 247, 247, 247, 247, 247, 247, 247, 247,
767 248, 248, 249, 249, 250, 250, 250, 250, 250, 250,
768 250, 250, 251, 251, 252, 252, 252, 252, 252, 252,
769 253, 253, 253, 253, 253, 253, 253, 253, 253, 254,
770 254, 255, 255, 255, 255, 255, 255, 255, 255, 255,
771 255, 255, 256, 256, 257, 259, 258, 260, 260, 260,
772 260, 261, 261, 262, 262, 262, 262, 263, 263, 263,
773 264, 264, 264, 265, 265, 265, 265, 265, 266, 266,
774 266, 267, 267, 268, 268, 269, 269, 270, 271, 270,
775 272, 273, 272, 274, 275, 276, 274, 277, 277, 277,
776 277, 277, 277, 277, 277, 277, 277, 277, 277, 278,
777 278, 279, 279, 280, 281, 281, 281, 282, 283, 282,
778 284, 282, 285, 286, 285, 288, 287, 287, 287, 289,
779 290, 291, 292, 292, 293, 293, 294, 294, 294, 295,
780 295, 296, 296, 296, 296, 296, 297, 297, 297, 297,
781 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
782 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
783 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
784 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
785 297, 297, 298, 298, 298, 298, 299, 299, 299, 299,
786 299, 299, 299, 299, 299, 299, 299, 299, 299, 299,
787 300, 301, 301, 302, 302, 303, 303, 303, 304, 304,
788 306, 307, 305, 308, 309, 305, 305, 305, 310, 311,
789 305, 312, 313, 305, 305, 305, 305, 305, 314, 315,
790 315, 315, 316, 316, 317, 317, 318, 318, 318, 319,
791 320, 319, 319, 321, 321, 321, 322, 322, 323, 323,
792 323, 323, 324, 324, 325, 325, 326, 326, 327, 327,
793 328, 328, 328, 328, 329, 329, 330, 330, 331, 331,
794 331, 333, 332, 334, 332, 335, 335, 336, 336, 337,
795 337, 337, 338, 338, 339, 339, 339, 339, 339, 339,
796 339, 339, 339, 340, 340, 340, 340, 340, 340, 340,
797 340, 340, 340, 341, 341, 341, -1, 342, 343, 344,
798 344, 345, 345, 345, 345, 347, 348, 346, 350, 349,
799 349, 351, 351, 351, 351, 351, 351, 351, 351, 351,
800 351, 351, 351, 351, 352, 353, 354, 355, 355, 356,
801 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
802 357, 357, 359, 358, 360, 358, 362, 361, 363, 361,
803 364, 364, 365, 366, 367, 368, 369, 370, 371, 371,
804 371, 371, 371, 371, 371, 371, 372, 373, 373, 373,
805 373, 374, 374, 375, 375, 376, 376, 377, 377, 378,
806 378, 378, 379, 380, 381, 380, 382, 380, 383, 384,
807 386, 387, 385, 388, 389, 388, 390, 390, 390, 390,
808 391, 391, 392, 392, 392, 392, 392, 392, 392, 392,
809 392, 393, 393, 393, 393, 393, 393, 393, 393, 393,
810 393, 394, 394, 395, 395, 395, 395, 396, 396, 396,
811 397, 397, 397, 398, 398, 398, 398, 398, 399, 399,
812 399, 400, 400, 401, 401, 402, 402, 403, 403, 404,
813 404, 405, 406, 407, 405, 408, 408, 408, 408, 408,
814 408, 408, 408, 408, 408, 408, 408, 409, 409, 410,
815 411, 411, 411, 412, 412, 412, 412, 413, 413, 413,
816 413, 413, 413, 413, 413, 413, 413, 414, 414, 415,
817 416, 416, 416, 416, 416, 417, 417
820 static const short yyr2[] = { 0,
821 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
822 1, 8, 11, 0, 5, 1, 3, 1, 2, 1,
823 6, 3, 6, 0, 7, 0, 8, 1, 6, 3,
824 6, 0, 6, 0, 7, 0, 0, 10, 3, 3,
825 3, 2, 1, 0, 2, 1, 1, 0, 5, 0,
826 0, 2, 1, 2, 1, 2, 1, 2, 1, 3,
827 2, 1, 1, 1, 1, 1, 1, 1, 0, 2,
828 0, 6, 0, 6, 1, 1, 0, 0, 5, 0,
829 5, 1, 1, 0, 1, 0, 0, 3, 0, 3,
830 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
831 1, 1, 1, 1, 1, 1, 1, 0, 7, 0,
832 8, 1, 3, 0, 3, 0, 3, 2, 3, 2,
833 2, 1, 1, 1, 3, 4, 2, 3, 3, 3,
834 1, 1, 1, 3, 1, 1, 3, 4, 2, 3,
835 3, 3, 1, 3, 1, 1, 1, 3, 1, 1,
836 1, 4, 3, 4, 6, 5, 5, 2, 2, 1,
837 3, 1, 2, 2, 2, 2, 2, 2, 2, 2,
838 1, 1, 3, 1, 9, 0, 3, 4, 2, 4,
839 2, 1, 4, 1, 3, 3, 3, 1, 3, 3,
840 1, 3, 3, 1, 3, 3, 3, 3, 1, 3,
841 3, 1, 3, 1, 3, 1, 3, 1, 0, 4,
842 1, 0, 4, 1, 0, 0, 7, 1, 3, 3,
843 3, 3, 3, 3, 3, 3, 3, 3, 3, 1,
844 3, 0, 1, 1, 1, 1, 1, 3, 0, 9,
845 0, 11, 2, 0, 6, 0, 7, 4, 4, 0,
846 0, 2, 1, 4, 0, 4, 1, 3, 4, 1,
847 3, 1, 1, 1, 1, 1, 2, 2, 2, 2,
848 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
849 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
850 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
851 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
852 2, 2, 1, 1, 1, 1, 2, 2, 2, 2,
853 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
854 3, 1, 4, 1, 3, 2, 2, 2, 0, 1,
855 0, 0, 11, 0, 0, 11, 6, 6, 0, 0,
856 10, 0, 0, 10, 5, 5, 4, 4, 0, 1,
857 1, 2, 5, 3, 2, 4, 1, 3, 4, 6,
858 0, 8, 4, 1, 3, 2, 1, 4, 1, 1,
859 2, 2, 1, 2, 1, 2, 1, 1, 1, 2,
860 1, 2, 2, 3, 1, 3, 1, 3, 1, 1,
861 3, 0, 2, 0, 4, 4, 1, 1, 2, 1,
862 1, 2, 0, 1, 5, 2, 3, 3, 4, 3,
863 4, 4, 5, 1, 1, 1, 1, 1, 1, 1,
864 1, 1, 1, 4, 4, 4, 2, 1, 1, 1,
865 2, 2, 7, 6, 2, 0, 0, 10, 0, 6,
866 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
867 1, 1, 3, 1, 2, 2, 2, 1, 1, 1,
868 1, 1, 1, 1, 1, 1, 1, 3, 1, 1,
869 2, 2, 0, 4, 0, 5, 0, 3, 0, 4,
870 3, 2, 3, 0, 0, 0, 0, 0, 1, 2,
871 2, 3, 2, 3, 3, 4, 2, 2, 3, 3,
872 4, 1, 2, 1, 2, 1, 2, 1, 2, 1,
873 2, 1, 4, 2, 0, 5, 0, 6, 4, 4,
874 0, 0, 10, 1, 0, 4, 1, 1, 1, 1,
875 1, 3, 1, 4, 3, 4, 6, 5, 5, 2,
876 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
877 1, 1, 4, 1, 3, 3, 3, 1, 3, 3,
878 1, 3, 3, 1, 3, 3, 3, 3, 1, 3,
879 3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
880 3, 1, 0, 0, 7, 1, 3, 3, 3, 3,
881 3, 3, 3, 3, 3, 3, 3, 1, 0, 1,
882 2, 7, 2, 2, 7, 6, 2, 3, 2, 3,
883 2, 3, 3, 3, 3, 2, 3, 0, 1, 1,
887 static const short yydefact[] = { 0,
888 11, 391, 359, 236, 359, 14, 0, 0, 0, 0,
889 250, 250, 263, 262, 264, 265, 266, 250, 250, 250,
890 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
891 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
892 250, 250, 250, 314, 315, 316, 313, 250, 250, 250,
893 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
894 250, 250, 250, 250, 359, 359, 359, 359, 359, 359,
895 359, 359, 359, 359, 250, 630, 631, 635, 632, 633,
896 636, 0, 3, 6, 7, 383, 8, 9, 359, 43,
897 628, 10, 235, 237, 0, 339, 339, 359, 339, 359,
898 332, 359, 0, 359, 112, 250, 634, 20, 359, 387,
899 388, 389, 392, 393, 253, 250, 250, 246, 359, 637,
900 359, 359, 635, 0, 480, 250, 487, 0, 0, 0,
901 610, 0, 0, 0, 0, 250, 520, 0, 250, 250,
902 250, 250, 250, 250, 250, 250, 250, 0, 42, 0,
903 0, 0, 0, 0, 0, 250, 150, 146, 149, 147,
904 531, 151, 162, 182, 172, 171, 184, 188, 191, 194,
905 199, 202, 204, 206, 208, 211, 214, 218, 230, 522,
906 176, 0, 0, 512, 470, 471, 472, 473, 0, 0,
907 474, 250, 475, 0, 476, 0, 477, 479, 145, 0,
908 464, 0, 518, 0, 494, 451, 0, 0, 0, 460,
909 0, 461, 440, 459, 456, 457, 452, 453, 454, 0,
910 0, 458, 0, 0, 0, 462, 439, 0, 267, 268,
911 269, 270, 275, 277, 276, 280, 281, 292, 294, 295,
912 293, 278, 279, 271, 272, 273, 274, 289, 290, 287,
913 291, 282, 283, 286, 284, 285, 298, 300, 305, 288,
914 301, 302, 303, 304, 296, 297, 299, 306, 307, 310,
915 311, 308, 309, 317, 319, 318, 320, 321, 322, 323,
916 324, 325, 326, 312, 4, 250, 0, 114, 118, 514,
917 359, 359, 629, 5, 359, 340, 336, 337, 330, 338,
918 0, 250, 250, 328, 250, 250, 0, 329, 384, 327,
919 390, 394, 359, 0, 252, 359, 0, 243, 250, 628,
920 16, 18, 0, 359, 250, 28, 402, 250, 146, 149,
921 182, 234, 483, 145, 0, 250, 250, 250, 250, 0,
922 619, 621, 626, 0, 0, 359, 408, 0, 0, 165,
923 170, 169, 168, 167, 166, 0, 250, 163, 164, 250,
924 0, 0, 0, 0, 0, 250, 489, 250, 0, 0,
925 0, 482, 433, 250, 424, 425, 426, 427, 0, 428,
926 429, 250, 431, 250, 430, 432, 494, 250, 250, 158,
927 159, 0, 250, 250, 250, 250, 250, 250, 250, 250,
928 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
929 250, 250, 250, 250, 250, 250, 250, 250, 250, 209,
930 215, 212, 521, 250, 0, 617, 39, 0, 495, 513,
931 524, 614, 0, 481, 250, 0, 0, 0, 519, 40,
932 441, 445, 455, 466, 467, 465, 0, 0, 41, 22,
933 250, 402, 359, 250, 494, 515, 250, 238, 113, 359,
934 0, 334, 0, 359, 0, 359, 0, 250, 250, 249,
935 250, 248, 244, 359, 0, 250, 0, 359, 250, 19,
936 399, 0, 0, 385, 400, 250, 0, 0, 488, 0,
937 527, 0, 233, 0, 618, 627, 148, 250, 250, 0,
938 410, 409, 411, 250, 478, 250, 0, 622, 623, 624,
939 625, 620, 485, 0, 0, 0, 0, 0, 613, 359,
940 492, 611, 0, 0, 153, 0, 160, 0, 0, 0,
941 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
942 229, 185, 186, 187, 190, 189, 192, 193, 195, 196,
943 197, 198, 200, 201, 203, 205, 207, 250, 250, 250,
944 231, 250, 250, 177, 508, 149, 512, 0, 359, 493,
945 525, 0, 0, 463, 449, 0, 0, 24, 0, 499,
946 250, 516, 115, 359, 250, 359, 494, 117, 250, 239,
947 333, 250, 349, 0, 357, 352, 0, 358, 0, 374,
948 377, 371, 373, 254, 250, 250, 628, 15, 30, 250,
949 402, 250, 17, 386, 395, 397, 36, 404, 359, 403,
950 407, 484, 523, 0, 529, 250, 331, 416, 0, 402,
951 412, 250, 0, 183, 359, 250, 0, 490, 491, 0,
952 0, 0, 507, 0, 532, 250, 154, 152, 250, 250,
953 210, 0, 213, 250, 179, 250, 181, 509, 510, 250,
954 250, 250, 530, 250, 250, 359, 44, 26, 500, 503,
955 250, 250, 501, 250, 517, 0, 241, 250, 335, 355,
956 496, 341, 356, 496, 344, 250, 376, 250, 0, 0,
957 250, 250, 250, 0, 32, 0, 250, 0, 51, 401,
958 250, 413, 250, 0, 417, 420, 250, 0, 418, 0,
959 402, 0, 0, 486, 434, 435, 436, 250, 250, 161,
960 156, 157, 216, 0, 0, 511, 526, 0, 250, 250,
961 250, 250, 250, 250, 250, 250, 250, 0, 146, 149,
962 147, 162, 182, 171, 188, 191, 194, 199, 202, 204,
963 206, 208, 211, 0, 535, 534, 543, 552, 562, 564,
964 568, 571, 574, 579, 582, 584, 586, 588, 590, 592,
965 596, 537, 145, 0, 23, 50, 77, 44, 504, 505,
966 250, 502, 21, 250, 255, 359, 347, 496, 359, 348,
967 496, 370, 375, 250, 0, 247, 250, 257, 245, 250,
968 0, 359, 51, 34, 0, 396, 398, 37, 84, 405,
969 379, 0, 250, 413, 380, 414, 528, 446, 0, 421,
970 419, 422, 0, 0, 155, 0, 535, 250, 178, 180,
971 616, 0, 0, 165, 170, 169, 168, 167, 166, 163,
972 164, 250, 250, 250, 158, 159, 0, 250, 250, 250,
973 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
974 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
975 250, 250, 250, 250, 209, 593, 212, 450, 0, 444,
976 25, 46, 47, 0, 71, 87, 75, 91, 92, 93,
977 94, 95, 98, 99, 45, 77, 53, 76, 359, 359,
978 57, 50, 506, 250, 0, 361, 359, 359, 360, 359,
979 359, 359, 378, 250, 260, 0, 255, 12, 31, 33,
980 51, 29, 628, 78, 89, 82, 52, 84, 55, 83,
981 402, 406, 381, 382, 250, 415, 423, 0, 174, 0,
982 494, 217, 615, 148, 250, 0, 153, 0, 0, 0,
983 0, 597, 598, 599, 600, 601, 602, 603, 604, 605,
984 606, 607, 185, 186, 187, 190, 189, 192, 193, 195,
985 196, 197, 198, 200, 201, 203, 205, 207, 589, 250,
986 591, 250, 443, 0, 359, 69, 628, 54, 108, 0,
987 58, 27, 255, 250, 359, 0, 250, 362, 350, 359,
988 353, 359, 372, 258, 250, 628, 35, 0, 359, 69,
989 628, 56, 250, 447, 250, 0, 612, 609, 183, 250,
990 154, 152, 250, 250, 0, 536, 0, 359, 64, 65,
991 66, 67, 68, 628, 59, 69, 0, 0, 0, 124,
992 88, 133, 628, 0, 123, 0, 100, 105, 104, 103,
993 102, 101, 106, 107, 110, 0, 240, 250, 364, 250,
994 250, 359, 367, 0, 342, 0, 345, 259, 261, 0,
995 38, 628, 628, 90, 628, 122, 250, 0, 175, 173,
996 608, 495, 0, 156, 157, 594, 0, 0, 69, 0,
997 70, 63, 61, 62, 0, 127, 0, 0, 0, 0,
998 0, 120, 0, 0, 136, 143, 628, 135, 0, 250,
999 256, 250, 250, 0, 365, 250, 351, 0, 354, 0,
1000 13, 86, 86, 121, 448, 533, 155, 250, 49, 86,
1001 60, 86, 128, 125, 132, 131, 0, 129, 130, 134,
1002 119, 0, 139, 0, 0, 0, 0, 0, 628, 242,
1003 368, 359, 363, 250, 343, 346, 79, 85, 81, 595,
1004 72, 74, 126, 140, 137, 0, 141, 142, 144, 97,
1005 250, 0, 366, 369, 138, 109, 96, 250, 111, 0,
1009 static const short yydefgoto[] = { 1180,
1010 82, 83, 84, 85, 122, 320, 321, 86, 667, 778,
1011 322, 803, 921, 87, 699, 923, 906, 89, 776, 777,
1012 881, 882, 883, 884, 808, 809, 895, 927, 896, 1034,
1013 1035, 1093, 1036, 1037, 897, 985, 986, 929, 1009, 1010,
1014 1157, 1158, 987, 930, 1011, 899, 1178, 1171, 900, 1055,
1015 901, 1046, 1109, 90, 289, 453, 455, 91, 1041, 1074,
1016 1042, 1137, 1043, 1106, 1107, 162, 163, 526, 164, 938,
1017 165, 166, 425, 564, 167, 168, 169, 170, 171, 172,
1018 173, 174, 175, 176, 558, 177, 560, 178, 559, 828,
1019 179, 207, 494, 333, 290, 93, 678, 784, 115, 606,
1020 94, 316, 181, 287, 116, 117, 905, 799, 916, 96,
1021 97, 98, 99, 347, 291, 461, 101, 297, 102, 788,
1022 1118, 791, 1120, 681, 1064, 684, 1066, 103, 908, 909,
1023 1061, 1062, 104, 689, 599, 600, 813, 119, 483, 112,
1024 113, 106, 614, 615, 484, 485, 486, 701, 620, 348,
1025 819, 815, 503, 372, 373, 208, 228, 209, 210, 374,
1026 935, 1078, 212, 664, 213, 214, 215, 216, 183, 430,
1027 375, 376, 488, 637, 377, 335, 514, 378, 188, 379,
1028 570, 786, 999, 221, 583, 521, 429, 190, 584, 585,
1029 380, 191, 192, 381, 661, 624, 382, 224, 383, 387,
1030 719, 755, 879, 756, 757, 758, 759, 760, 761, 762,
1031 763, 764, 765, 766, 767, 768, 769, 770, 771, 980,
1032 1128, 772, 1082, 384, 385, 197, 386, 294, 334, 200,
1036 static const short yypact[] = { 2013,
1037 -32768, 127, 5648,-32768, 6547,-32768, 701, 2968, 3340, 3340,
1038 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1039 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1040 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1041 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1042 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1043 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1044 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 664,-32768,-32768,
1045 -32768, 2189,-32768,-32768,-32768, 325,-32768,-32768, 5268,-32768,
1046 73,-32768,-32768,-32768, 90, 6386, 6386,-32768, 6386, 121,
1047 66,-32768, 364,-32768,-32768, 701,-32768,-32768,-32768,-32768,
1048 -32768,-32768, 127,-32768,-32768, 151,-32768, 121,-32768,-32768,
1049 -32768, 5648,-32768, 183,-32768, 5857,-32768, 229, 235, 266,
1050 -32768, 286, 701, 299, 305, 1655,-32768, 2555, 5857, 5857,
1051 5857, 5857, 5857, 5857,-32768, 5868, 5868, 340,-32768, 373,
1052 385, 397, 410, 428, 369, 4714,-32768, 430, 438,-32768,
1053 451,-32768, 937, 976,-32768,-32768,-32768, 474, 694, 525,
1054 542, 707, 468, 461, 489, 488, 96,-32768,-32768, 195,
1055 -32768, 3483, 462, 477,-32768,-32768,-32768,-32768, 572, 3111,
1056 -32768, 4714,-32768, 3483,-32768, 3483,-32768,-32768, 582, 591,
1057 -32768, 603,-32768, 2740, 451, 616, 201, 559, 3154,-32768,
1058 3340,-32768,-32768,-32768, 6146,-32768,-32768,-32768,-32768, 670,
1059 639,-32768, 3340, 3340, 3483,-32768,-32768, 599,-32768,-32768,
1060 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1061 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1062 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
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, 673, 682,-32768,-32768,-32768,
1066 121, 5111,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1067 696, 623,-32768,-32768, 701, 701, 483,-32768, 325,-32768,
1068 -32768,-32768,-32768, 698,-32768,-32768, 703, 713, 623, 73,
1069 -32768, 395, 695,-32768, 701,-32768, 418, 5857,-32768,-32768,
1070 -32768,-32768,-32768,-32768, 711, 5857, 5857, 5857, 1870, 721,
1071 -32768,-32768,-32768, 213, 733, 6015, 251, 730, 741,-32768,
1072 -32768,-32768,-32768,-32768,-32768, 745, 5857,-32768,-32768, 5857,
1073 757, 770, 772, 800, 802, 5857,-32768, 3393, 644, 644,
1074 644,-32768,-32768, 4714,-32768,-32768,-32768,-32768, 817,-32768,
1075 -32768, 4714,-32768, 4714,-32768,-32768,-32768, 1748, 5857,-32768,
1076 -32768, 103, 5857, 5857, 5857, 5857, 5857, 5857, 5857, 5857,
1077 5857, 5857, 5857, 5857, 5857, 5857, 5857, 5857, 5857, 5857,
1078 5857, 5857, 5857, 5857, 5857, 5857, 5857, 5857, 5857,-32768,
1079 -32768,-32768,-32768, 5857, 766,-32768,-32768, 2370,-32768,-32768,
1080 829,-32768, 862,-32768, 5857, 843, 853, 865,-32768,-32768,
1081 -32768,-32768, 6146,-32768,-32768,-32768, 2925, 883,-32768,-32768,
1082 5857, 267, 3585, 623, 875,-32768, 623,-32768, 460, 6547,
1083 848, 895, 919, 922, 925, 922, 701, 951, 623,-32768,
1084 623,-32768,-32768,-32768, 889, 956, 969,-32768, 623, 395,
1085 -32768, 701, 973,-32768, 979, 701, 160, 984,-32768, 244,
1086 993, 245, 993, 1001,-32768,-32768,-32768,-32768, 5507, 998,
1087 535,-32768, 656, 5857,-32768,-32768, 1010,-32768,-32768,-32768,
1088 -32768,-32768,-32768, 1029, 1030, 877, 880, 881,-32768, 3585,
1089 -32768,-32768, 1045, 1040,-32768, 268,-32768, 155, 701, 701,
1090 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1091 -32768,-32768,-32768,-32768, 474, 474, 694, 694, 525, 525,
1092 525, 525, 542, 542, 707, 468, 461, 5857, 5857, 5857,
1093 -32768, 5888, 5913,-32768,-32768, 5496,-32768, 3297, 3765,-32768,
1094 -32768, 1041, 279,-32768,-32768, 1042, 1055,-32768, 1044,-32768,
1095 4125,-32768,-32768, 3945, 4168,-32768, 875,-32768,-32768, 1049,
1096 -32768,-32768, 1053, 1067,-32768, 1068, 1070,-32768, 830,-32768,
1097 1064,-32768,-32768,-32768, 151,-32768, 214,-32768,-32768, 5857,
1098 309, 623,-32768,-32768, 1069,-32768,-32768, 1087, 6547,-32768,
1099 -32768,-32768,-32768, 1071,-32768, 1870,-32768,-32768, 1066, 311,
1100 656, 5675, 1075,-32768,-32768,-32768, 1078,-32768,-32768, 1013,
1101 1014, 1020,-32768, 1085,-32768, 5857,-32768,-32768,-32768,-32768,
1102 489, 854, 488, 5857,-32768, 5857,-32768,-32768,-32768, 4307,
1103 4714, 5857,-32768, 5940, 5857,-32768,-32768,-32768,-32768,-32768,
1104 4350, 4489,-32768, 4532,-32768, 1086,-32768,-32768,-32768,-32768,
1105 -32768, 1094,-32768,-32768, 1097,-32768, 701,-32768, 701, 1101,
1106 4980,-32768,-32768, 1088,-32768, 1112,-32768, 551,-32768,-32768,
1107 701, 645, 4714, 1108,-32768,-32768, 114, 1113,-32768, 1115,
1108 110, 1122, 1119,-32768,-32768,-32768,-32768, 5857, 5940,-32768,
1109 -32768,-32768,-32768, 1120, 1121,-32768,-32768, 323, 5857, 5857,
1110 5857, 5857, 5857, 5857, 5857, 5868, 5868, 1123, 345, 353,
1111 366, 963, 1135, 449, 710, 914, 907, 726, 942, 1124,
1112 1117, 1111, 1099, 101, 1127,-32768,-32768,-32768,-32768,-32768,
1113 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1114 -32768,-32768, 515, 545,-32768, 983, 1130,-32768,-32768,-32768,
1115 4671,-32768,-32768,-32768,-32768, 6473,-32768,-32768, 6473,-32768,
1116 -32768,-32768,-32768, 5857, 988,-32768, 4980,-32768,-32768, 4980,
1117 1072,-32768,-32768,-32768, 1132,-32768,-32768,-32768, 1192,-32768,
1118 325, 1137,-32768, 613,-32768, 656,-32768,-32768, 1138,-32768,
1119 -32768,-32768, 1141, 701,-32768, 547, 1142, 5857,-32768,-32768,
1120 1144, 562, 1143, 590, 627, 640, 731, 760, 774, 794,
1121 816, 5857, 5812, 5857, 828, 876, 118, 5857, 5857, 5857,
1122 5857, 5857, 5857, 5857, 5857, 5857, 5857, 5857, 5857, 5857,
1123 5857, 5857, 5857, 5857, 5857, 5857, 5857, 5857, 5857, 5857,
1124 5857, 5857, 5857, 5857, 5857,-32768, 5857,-32768, 1148, 1147,
1125 -32768,-32768,-32768, 994, 38,-32768,-32768,-32768,-32768,-32768,
1126 -32768,-32768,-32768,-32768,-32768, 814,-32768,-32768,-32768,-32768,
1127 1051, 983,-32768, 4980, 226,-32768, 121, 5342,-32768, 6473,
1128 5342, 6473,-32768,-32768,-32768, 1027,-32768,-32768,-32768,-32768,
1129 -32768,-32768, 73, 72,-32768,-32768,-32768, 931,-32768,-32768,
1130 679,-32768,-32768,-32768, 5837,-32768,-32768, 304,-32768, 1154,
1131 875,-32768,-32768, 890, 5857, 1152, 896, 897, 165, 701,
1132 701,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1133 -32768,-32768, 898, 909, 912, 660, 991, 506, 589, 233,
1134 762, 796, 879, 888, 1046, 387, 181, 403, 489, 5857,
1135 488, 5940,-32768, 644, 6277, 256, 70,-32768,-32768, 758,
1136 -32768,-32768,-32768,-32768,-32768, 1157, 686,-32768,-32768, 5342,
1137 -32768, 5342,-32768,-32768, 1937, 381,-32768, 1091, 6277, 256,
1138 70,-32768, 46,-32768,-32768, 701,-32768, 996, 934,-32768,
1139 941, 943,-32768,-32768, 1028,-32768, 999, 4953,-32768,-32768,
1140 -32768,-32768,-32768, 516,-32768, 256, 874, 59, 59,-32768,
1141 -32768, 100, 567, 1102,-32768, 77,-32768,-32768,-32768,-32768,
1142 -32768,-32768,-32768,-32768,-32768, 625,-32768, 623,-32768,-32768,
1143 1161,-32768, 1162, 1163,-32768, 1165,-32768,-32768,-32768, 1118,
1144 -32768, 4795, 516,-32768, 567,-32768, 651, 1164,-32768,-32768,
1145 -32768,-32768, 1180, 946, 961,-32768, 1128, 1129, 256, 1139,
1146 -32768,-32768,-32768,-32768, 411, 100, 129, 701, 701, 59,
1147 1149,-32768, 77, 77,-32768, 143, 654,-32768, 77,-32768,
1148 -32768, 5857, 686, 1168,-32768,-32768,-32768, 1167,-32768, 1187,
1149 -32768, 1146, 1146,-32768,-32768,-32768, 967, 5857,-32768, 1146,
1150 -32768, 1146,-32768,-32768,-32768, 100, 1188,-32768,-32768, 100,
1151 -32768, 479, 143, 592, 701, 701, 77, 1150, 654,-32768,
1152 -32768,-32768,-32768, 5857,-32768,-32768,-32768,-32768,-32768,-32768,
1153 -32768,-32768,-32768,-32768,-32768, 1193,-32768,-32768, 143,-32768,
1154 -32768, 1151,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1225,
1158 static const short yypgoto[] = {-32768,
1159 -32768, 1153,-32768,-32768,-32768,-32768, -400, -102,-32768,-32768,
1160 904,-32768,-32768,-32768,-32768,-32768, 123,-32768, 453,-32768,
1161 341,-32768,-32768,-32768, -698,-32768,-32768,-32768, -700, 232,
1162 157,-32768,-32768, 208, 354,-32768,-32768, 321,-32768,-32768,
1163 -674, -701,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1164 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1165 -824, 107, 241, -905, 145,-32768, -590, 413, 981,-32768,
1166 -32768, -587,-32768,-32768, 219, -338, -312, -234, -308, -314,
1167 -401, -352, -431, -544,-32768, -565,-32768, -111,-32768,-32768,
1168 1096, 1098, -613, -365, 2,-32768,-32768,-32768, -463,-32768,
1169 -32768,-32768, 0, -256, 786,-32768, -805, -708,-32768,-32768,
1170 -32768,-32768,-32768,-32768, 68, 671,-32768, 612,-32768,-32768,
1171 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 446, -744, -738,
1172 -32768, 149,-32768,-32768, 578, 594, 465, 5, -408, 1170,
1173 -32768, 8,-32768,-32768, -616,-32768,-32768,-32768, 585, -238,
1174 948,-32768, -493, -43,-32768, 1280,-32768, 1073,-32768, 1095,
1175 -32768,-32768,-32768,-32768, -68,-32768,-32768,-32768,-32768, 102,
1176 1131, 1140,-32768,-32768, 1323,-32768,-32768, -359,-32768, 1036,
1177 216, -594, -809,-32768, 773,-32768,-32768, 868, -82, -395,
1178 37,-32768, 211, 105,-32768,-32768, 175,-32768, 200,-32768,
1179 -32768, 581,-32768, 319,-32768,-32768,-32768,-32768,-32768,-32768,
1180 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1181 -32768,-32768,-32768, 1435,-32768,-32768, 1544, -201, 271, 78,
1189 static const short yytable[] = { 95,
1190 513, 92, 95, 309, 105, 604, 292, 631, 515, 114,
1191 229, 230, 704, 708, 332, 653, 556, 231, 232, 233,
1192 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
1193 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
1194 254, 255, 256, 579, 911, 222, 222, 257, 258, 259,
1195 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1196 270, 271, 272, 273, 462, 477, 557, 100, 545, 546,
1197 118, 499, 121, 742, 284, 898, 744, 108, 613, 2,
1198 108, 95, 1038, 92, 124, 577, 105, 293, 915, 789,
1199 293, 917, 1039, 1038, 823, 588, 547, 548, 754, 301,
1200 1103, 1001, 555, 1039, 920, 95, 553, 554, 928, 184,
1201 1104, 1006, 193, 295, 481, 314, 315, 317, 475, 753,
1202 312, 323, 88, -73, -73, 1097, 651, 1098, 742, 325,
1203 529, 744, 443, 629, 822, 437, 421, 346, -250, 499,
1204 441, 876, 442, 1099, 356, 950, 530, 2, 431, 100,
1205 303, 422, 1038, 754, 446, 1134, 877, -80, -80, 108,
1206 2, 951, 1039, 296, 296, 1000, 296, 1002, 1144, 998,
1207 1145, 313, 998, 660, 753, 424, 549, 550, 551, 552,
1208 424, 648, 194, 108, 497, 424, 1146, 1056, 672, 324,
1209 1065, 1022, 1067, 910, 898, 993, 912, 1142, 1143, 326,
1210 991, -585, 696, 346, 88, -585, 327, 195, 816, 417,
1211 340, 697, 423, 1095, 1096, 424, -73, -73, 439, 223,
1212 223, 424, 1007, 477, 76, 77, 123, 515, 79, 80,
1213 496, 293, 752, 424, 110, 111, 692, 76, 1040, 349,
1214 222, 1169, 193, 994, 694, 222, 995, 222, 76, 1040,
1215 -80, -80, 336, -575, 332, 76, 1105, -575, 337, 222,
1216 222, 998, 750, 998, 424, 424, 710, 635, 623, 625,
1217 107, 481, 1136, 107, -250, 1140, 499, 107, 199, 199,
1218 199, 409, 410, 426, 2, 451, 193, 752, 646, 338,
1219 301, 578, 647, 456, 193, 432, 1069, 433, 193, 424,
1220 193, 95, 460, 663, 463, 465, 459, 76, 1040, 339,
1221 1135, 751, 194, 481, 708, 481, 341, 750, 95, 1136,
1222 816, 1014, 342, 474, 323, 745, 448, 346, 1015, 193,
1223 519, 1016, 981, 695, -359, 706, -359, 195, 522, 332,
1224 523, 1029, 1030, 424, -359, 569, 500, 831, -251, 749,
1225 286, 746, 107, 462, 501, 748, 194, 350, 351, 352,
1226 353, 354, 355, 360, 194, -540, 751, 346, 194, -540,
1227 194, 1031, 1032, -539, 366, 367, 107, -539, 441, 108,
1228 745, 195, 464, 466, 468, 1033, -541, 332, 361, 195,
1229 -541, 742, 107, 195, 744, 195, 108, 713, 293, 194,
1230 362, 995, 326, 107, 749, 693, 746, -583, 199, 582,
1231 748, -583, 363, 498, 223, 724, 754, 725, -251, 223,
1232 476, 223, 481, -587, 195, 364, 199, -587, 913, 747,
1233 305, 306, 307, 223, 223, 1133, 1097, 753, 1098, 415,
1234 416, 418, 365, 979, 456, -359, -359, -359, 1159, -359,
1235 -359, -631, 199, 95, 1099, 1161, 95, 1162, 586, -635,
1236 199, 589, 199, 594, 199, 597, 199, 603, 95, -561,
1237 95, 977, -632, -561, 199, 610, 582, -359, 323, 199,
1238 -359, 199, -359, 222, 747, 619, 325, -359, -359, -359,
1239 833, -359, -359, 199, 199, 199, 417, 627, 332, 418,
1240 500, 467, 633, 1164, 1144, 460, 1145, 404, 405, 406,
1241 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
1242 332, 978, 1146, 966, 967, 582, -572, 498, 419, 567,
1243 -572, 108, 193, 293, 108, -538, 1089, 407, 408, -538,
1244 582, 675, 420, 299, 601, 302, 108, 304, 108, 308,
1245 752, 968, 969, 427, 310, 806, 326, 976, -250, 616,
1246 499, 974, 975, 621, 318, 424, 319, 424, -468, 880,
1247 456, 940, 107, 409, 410, 107, 107, 107, 411, 412,
1248 750, 1018, 424, 631, 293, 456, 944, 1100, 676, 107,
1249 428, 460, 413, 414, 1111, 107, -359, -359, -359, 811,
1250 -359, -359, 194, -634, 690, 691, 649, 650, 392, -573,
1251 -555, 323, 434, -573, -555, 1038, 675, 727, 1165, 325,
1252 407, 408, 542, 543, 544, 1039, 435, 195, 675, 751,
1253 633, 970, 971, 972, 973, 460, -250, -633, 499, 516,
1254 517, 518, 1110, 745, 199, 995, 2, -560, 721, 722,
1255 440, -560, 199, 346, 199, 346, 2, 223, 445, 817,
1256 -559, 76, 77, 123, -559, 79, 80, 749, -250, 746,
1257 499, 293, 193, 748, 1147, -410, 499, 785, 2, -250,
1258 -570, 632, 332, 481, -570, 792, 702, 794, 444, 326,
1259 449, 800, 801, 404, 405, 406, 805, -637, 199, 450,
1260 619, 812, -359, 706, -359, 452, 500, 1060, 298, 814,
1261 300, 811, -359, 458, 501, 470, 942, 199, 478, 2,
1262 472, 1008, 634, 199, 107, 407, 408, 107, 346, 76,
1263 77, 123, 489, 79, 80, 473, 454, 107, 495, 107,
1264 457, 107, 194, 859, 860, 861, 1151, 747, -637, 107,
1265 423, -558, 107, 424, 504, -558, 107, 497, 469, 415,
1266 416, 471, 866, 867, 601, 505, 601, 195, 506, 479,
1267 76, 1040, 482, 1135, 508, 807, 868, 869, 621, 108,
1268 -557, 1083, -576, 904, -557, 1044, -576, 509, 1174, 510,
1269 199, 76, 77, 123, -556, 79, 80, 933, -556, 107,
1270 107, 76, 77, 123, 1070, 79, 80, 562, 563, 1076,
1271 409, 410, 932, 812, -553, 633, -577, 511, -553, 512,
1272 -577, 814, 76, 76, 77, 123, 1088, 79, 80, 76,
1273 77, 123, 1090, 79, 80, 520, -554, 571, 199, 199,
1274 -554, 1101, -637, -637, 409, 410, -637, -637, -550, 686,
1275 687, 199, -550, 907, 199, 199, 907, -359, -359, -359,
1276 439, -359, -359, 424, 76, 77, 123, 497, 79, 80,
1277 1122, 1123, 572, 1124, 424, 723, 1047, 574, 1048, 76,
1278 77, 123, 107, 79, 80, 885, 886, 887, 575, 1049,
1279 1050, 108, 1051, 576, 1052, 1053, -551, 482, 587, -578,
1280 -551, 939, 1028, -578, 590, 1148, 996, 1054, -580, 595,
1281 -542, 598, -580, 1003, -542, 592, -545, 646, -565, 607,
1282 -545, 1021, -565, 612, 411, 412, 1072, 409, 410, -566,
1283 199, 199, -567, -566, 773, 591, -567, 593, 413, 414,
1284 -250, 199, 199, 596, 199, 862, 863, 1172, 834, 835,
1285 836, 837, 838, 839, -563, 864, 865, 107, -563, 107,
1286 388, -546, 389, -544, -359, -546, -548, -544, 107, 602,
1287 -548, 107, 107, 199, 309, 907, 608, 907, 907, 907,
1288 -359, -549, 609, 390, 391, -549, 843, -547, 844, 773,
1289 -359, -547, 611, 1057, 870, 871, 95, 617, 393, 618,
1290 332, 1063, 924, 925, 926, 622, -359, 914, 687, 845,
1291 846, -569, 812, 424, 1079, -569, 1160, 589, 626, 460,
1292 1077, 630, 1084, 1085, 404, 405, 406, 1023, 1024, 456,
1293 636, 590, 394, 395, 396, 397, 398, 399, 400, 401,
1294 402, 403, 332, 189, 220, 220, 1004, 1005, 424, 1086,
1295 638, 199, 76, 1092, 639, 644, 482, 95, 640, 1112,
1296 1114, 641, 642, 645, 662, 665, -581, 907, 668, 907,
1297 -581, 677, 680, 456, 108, 707, 812, 963, 964, 965,
1298 712, 666, 411, 412, 107, 682, 688, 683, 685, 698,
1299 108, 700, 705, 1080, 107, 703, 413, 414, 711, 714,
1300 715, 716, 182, 211, 211, 180, 331, 717, 718, 1150,
1301 783, 775, 95, 787, 802, 1154, 790, 1063, 796, 331,
1302 331, 331, 331, 331, 331, 818, 358, 359, 888, 889,
1303 890, 891, 892, 893, 894, 108, 804, 820, 185, 217,
1304 217, 821, 824, 825, 829, 830, 842, 186, 218, 218,
1305 874, 878, 872, 875, 108, 873, 922, 848, -48, 918,
1306 931, 943, 936, 1019, 983, 937, 941, 945, 982, 984,
1307 1176, 1017, 1020, 189, 1059, 1138, 1139, 1179, 1071, 1081,
1308 1087, 1113, 1117, 1116, 1119, 1153, 1155, 847, 1125, 1102,
1309 108, 849, 850, 851, 852, 853, 854, 855, 856, 857,
1310 858, 885, 886, 887, 1127, 1121, 1156, 888, 889, 890,
1311 891, 892, 893, 894, 1163, 1129, 1130, 189, 886, 1175,
1312 107, 107, 1167, 1168, 1181, 189, 1132, 1182, 480, 189,
1313 902, 189, 182, 344, 285, 345, 1141, 1170, 1177, 220,
1314 438, 1073, 992, 1091, 220, 1131, 220, 919, 1012, 988,
1315 1166, 1075, 773, 1149, 1027, 948, 605, 1045, 220, 220,
1316 189, 1152, 679, 924, 925, 926, 795, 107, 185, 888,
1317 889, 890, 891, 892, 893, 894, 182, 186, 934, 180,
1318 793, 1045, 311, 107, 182, 810, 107, 180, 182, 227,
1319 182, 180, 643, 180, 502, 568, 447, 1126, 211, 827,
1320 1026, 436, 0, 211, 0, 211, 0, 1094, 1045, 1045,
1321 0, 0, 185, 0, 0, 0, 1108, 211, 211, 182,
1322 185, 186, 180, 0, 185, 0, 185, 0, 107, 186,
1323 187, 219, 219, 186, 217, 186, 0, 0, 0, 217,
1324 0, 217, 0, 218, 989, 990, 331, 107, 218, 0,
1325 218, 0, 997, 217, 217, 185, 0, 0, 0, 0,
1326 0, 0, 218, 218, 186, 0, 0, 1045, 107, 107,
1327 1045, 0, 0, 1108, 1108, 0, 1013, 0, 0, 1108,
1328 0, 0, 0, 107, 331, 331, 331, 331, 331, 331,
1329 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
1330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1331 0, 0, 0, 0, 1045, 107, 107, 1108, 0, 0,
1332 0, 0, 524, 0, 0, 487, 0, 0, 0, 0,
1333 0, 331, 0, 490, 491, 492, 493, 0, 0, 0,
1334 1058, 0, 196, 225, 225, 0, 0, 0, 0, 0,
1335 0, 0, 0, 0, 487, 507, 0, 0, 0, 0,
1336 187, 0, 0, 189, 0, 487, 0, 0, 0, 0,
1337 0, 0, 0, 0, 0, 0, 0, 0, 0, 331,
1338 0, 0, 220, 527, 331, 0, 528, 0, 531, 532,
1339 533, 534, 535, 536, 537, 538, 539, 540, 541, 0,
1340 0, 0, 0, 0, 187, 0, 0, 1115, 0, 0,
1341 0, 0, 187, 0, 0, 0, 187, 0, 187, 561,
1342 0, 0, 182, 0, 0, 180, 219, 0, 0, 0,
1343 0, 219, 573, 219, 0, 0, 0, 0, 331, 0,
1344 331, 211, 655, 657, 0, 219, 219, 187, 0, 0,
1345 0, 198, 226, 226, 0, 0, 0, 0, 185, 0,
1346 0, 0, 0, 0, 0, 0, 0, 186, 0, 0,
1347 0, 0, 196, 0, 0, 0, 0, 217, 0, 0,
1348 0, 0, 0, 0, 0, 0, 218, 0, 0, 0,
1349 331, 0, 0, 0, 0, 0, 0, 1173, 0, 0,
1350 0, 0, 0, 189, 0, 0, 0, 0, 0, 0,
1351 0, 0, 331, 0, 0, 0, 196, 0, 0, 0,
1352 0, 0, 0, 0, 196, 0, 0, 0, 196, 0,
1353 196, 0, 0, 0, 0, 0, 0, 0, 225, 0,
1354 0, 0, 0, 225, 743, 225, 0, 0, 0, 0,
1355 0, 0, 0, 0, 0, 0, 652, 225, 225, 196,
1356 0, 0, 182, 0, 0, 180, 0, 0, 0, 0,
1357 0, 0, 343, 0, 0, 0, 0, 0, 328, 0,
1358 0, 198, 0, 139, 140, 141, 142, 143, 144, 0,
1359 0, 0, 0, 0, 0, 0, 0, 0, 185, 743,
1360 145, 146, 147, 0, 0, 0, 0, 186, 0, 0,
1361 331, 331, 331, 331, 331, 331, 840, 841, 0, 0,
1362 0, 0, 0, 493, 148, 198, 0, 0, 0, 0,
1363 0, 0, 0, 198, 0, 0, 0, 198, 0, 198,
1364 0, 720, 0, 0, 0, 0, 0, 226, 0, 0,
1365 187, 487, 226, 487, 226, 0, 0, 0, 0, 728,
1366 0, 0, 774, 0, 0, 157, 226, 226, 198, 219,
1367 0, 328, 525, 0, 331, 0, 139, 140, 141, 142,
1368 143, 144, 0, 0, 0, 0, 798, 0, 0, 0,
1369 0, 0, 0, 145, 146, 147, 0, 0, 0, 0,
1370 0, 0, 0, 0, 0, 0, 0, 0, 331, 0,
1371 0, 0, 0, 0, 0, 826, 0, 148, 0, 0,
1372 0, 0, 0, 0, 0, 0, 832, 0, 0, 0,
1373 0, 0, 0, 76, 329, 330, 160, 0, 0, 331,
1374 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
1375 331, 331, 331, 331, 331, 331, 0, 331, 157, 0,
1376 0, 0, 196, 0, 0, 0, 0, 0, 0, 0,
1377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1378 0, 225, 0, 0, 0, 0, 0, -232, 0, 0,
1379 187, 0, 798, 328, 0, 798, 0, 0, 139, 140,
1380 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1381 0, 0, 0, 0, 0, 145, 146, 147, 0, 0,
1382 0, 0, 0, 0, 0, 331, 76, 329, 330, 160,
1383 0, 0, 0, 0, 0, 0, 0, 946, 527, 148,
1384 0, 949, 0, 952, 953, 954, 955, 956, 957, 958,
1385 959, 960, 961, 962, 0, 797, 1068, 0, 0, 0,
1386 328, 0, 743, 0, 0, 139, 140, 141, 142, 143,
1387 144, 198, 0, 0, 0, 0, 0, 0, 0, 0,
1388 157, 0, 145, 146, 147, 0, 0, 0, 0, 0,
1389 226, 0, 0, 0, 0, 0, 0, 0, 0, 798,
1390 0, 0, 196, 0, 0, 0, 148, 0, 0, 0,
1391 0, 0, -1, 1, 0, 0, 0, 0, 0, 0,
1392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1393 0, 0, 493, 0, 0, 0, -250, 0, 0, 0,
1394 0, 0, 0, 0, 0, 0, 2, 157, 76, 329,
1395 330, 160, 0, 0, 0, 0, 0, 3, 0, 0,
1396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1397 0, 0, 0, 0, 0, 0, 0, 1025, 0, -359,
1398 -359, -359, 0, 4, 0, 0, 0, 5, 6, 7,
1399 0, 0, 331, 0, 0, 0, 0, 0, 0, 0,
1400 798, 8, 9, 10, 0, 0, 0, 0, 331, 0,
1401 0, 198, 0, 0, 0, 76, 329, 330, 160, 0,
1402 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1403 20, 21, 22, 23, 331, 24, 25, 26, 27, 28,
1404 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1405 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1406 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1407 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1408 68, 69, 70, 71, 72, 73, 74, 75, -2, 1,
1409 0, 76, 77, 78, 0, 79, 80, 81, 0, 0,
1410 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1411 0, 0, -250, 0, 0, 0, 0, 0, 0, 0,
1412 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
1413 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
1414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1415 0, 0, 0, 0, 0, -359, -359, -359, 0, 4,
1416 0, 0, 0, 5, 6, 7, 0, 0, 0, 0,
1417 0, 0, 0, 0, 0, 0, 0, 8, 9, 10,
1418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1419 0, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1420 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1421 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1422 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1423 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1424 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1425 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1426 72, 73, 74, 75, 0, 0, 0, 76, 77, 78,
1427 125, 79, 80, 81, 0, 126, 127, 128, 0, 129,
1428 130, 131, 132, 133, 134, 135, 136, 137, -494, 565,
1429 0, 0, 0, 138, 0, 0, 0, 0, 139, 140,
1430 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1431 0, -250, -250, 0, 3, 145, 146, 147, 0, 0,
1432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1433 0, 0, 0, 0, 0, 0, -359, -359, -359, 148,
1434 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1436 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1437 0, 0, 0, 0, 0, 0, 156, 11, 12, 13,
1438 157, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1439 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1440 32, 33, 34, 35, 36, 37, 38, 0, 39, 40,
1441 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1442 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1443 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1444 71, 72, 73, 74, 75, 0, 0, 0, 76, 158,
1445 566, 160, 161, 80, 81, 125, 0, 0, 0, 0,
1446 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1447 135, 136, 137, -494, 0, 0, 0, 0, 138, 0,
1448 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1449 0, 0, 0, 0, 0, 0, -250, -250, 0, 0,
1450 145, 146, 147, 0, 0, 0, 0, 0, 0, 0,
1451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1452 0, -250, -250, -250, 148, 0, 0, 0, 0, 0,
1453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1454 0, 0, 0, 0, 0, 0, 0, 150, 151, 152,
1455 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1456 0, 156, -250, -250, -250, 157, -250, -250, -250, -250,
1457 -250, -250, -250, -250, -250, -250, 0, -250, -250, -250,
1458 -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
1459 -250, -250, 0, -250, -250, -250, -250, -250, -250, -250,
1460 -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
1461 -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
1462 -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
1463 0, 0, 0, 76, 158, 159, 160, 161, 80, -250,
1464 201, 0, 0, 0, 0, 126, 127, 128, 0, 0,
1465 202, 131, 132, 133, 134, 135, 136, 203, -494, -498,
1466 0, 0, 0, 204, 0, 0, 0, 0, 139, 140,
1467 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1468 0, -250, -250, 0, 0, 145, 146, 147, 0, 0,
1469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1470 0, 0, 0, 0, 0, 0, -250, -250, -250, 148,
1471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1473 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1474 0, 0, 0, 0, 0, 0, 156, -250, -250, -250,
1475 157, -250, -250, -250, -250, -250, -250, -250, -250, -250,
1476 -250, 0, -250, -250, -250, -250, -250, -250, -250, -250,
1477 -250, -250, -250, -250, -250, -250, -250, 0, -250, -250,
1478 -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
1479 -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
1480 -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
1481 -250, -250, -250, -250, -250, 0, 0, 0, 76, 158,
1482 159, 160, 205, 206, -250, 201, 0, 0, 0, 0,
1483 126, 127, 128, 0, 0, 202, 131, 132, 133, 134,
1484 135, 136, 203, -442, -442, 0, 0, 0, 204, -442,
1485 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1486 0, 0, 0, 0, 0, 0, -250, -250, 125, 0,
1487 145, 146, 147, 126, 127, 128, 0, 129, 130, 131,
1488 132, 133, 134, 135, 136, 137, -494, 0, 0, 0,
1489 0, 138, 0, 0, 148, 0, 139, 140, 141, 142,
1490 143, 144, 0, 0, 0, 0, 0, 0, 0, -250,
1491 -250, 0, 0, 145, 146, 147, -442, 150, 151, 152,
1492 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1493 0, 156, 0, 0, 0, 157, 0, 148, 0, 0,
1494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 0, 0, 0, 0, 0, 149,
1496 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1497 0, 0, 0, 0, 156, 0, 0, 0, 157, 0,
1498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 76, 158, 159, 160, 205, 206, 0,
1501 0, 125, 0, 0, 0, 0, 126, 127, 128, 0,
1502 129, 130, 131, 132, 133, 134, 135, 136, 137, -494,
1503 0, 0, 0, 0, 138, 0, 0, 0, 0, 139,
1504 140, 141, 142, 143, 144, 0, 76, 158, 159, 160,
1505 161, 80, -250, -250, 201, 0, 145, 146, 147, 126,
1506 127, 128, 0, 0, 202, 131, 132, 133, 134, 135,
1507 136, 203, -494, -498, 0, 0, 0, 204, 0, 0,
1508 148, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1509 0, 0, 0, 0, 0, -250, -250, 0, 0, 145,
1510 146, 147, -469, 150, 151, 152, 153, 154, 155, 0,
1511 0, 0, 0, 0, 0, 0, 0, 156, 0, 0,
1512 0, 157, 0, 148, 0, 0, 0, 0, 0, 0,
1513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1514 0, 0, 0, 0, 0, -438, 150, 151, 152, 153,
1515 154, 155, 0, 0, 0, 0, 0, 0, 0, 0,
1516 156, 0, 0, 0, 157, 0, 0, 0, 0, 0,
1517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1518 0, 0, 0, 0, 0, 0, 0, 0, 0, 76,
1519 158, 159, 160, 161, 80, 0, 0, 125, 0, 0,
1520 0, 0, 126, 127, 128, 0, 129, 130, 131, 132,
1521 133, 134, 135, 136, 137, -494, 658, 0, 0, 0,
1522 138, 0, 0, 0, 0, 139, 140, 141, 142, 143,
1523 144, 0, 76, 158, 159, 160, 205, 206, -250, -250,
1524 201, 0, 145, 146, 147, 126, 127, 128, 0, 0,
1525 202, 131, 132, 133, 134, 135, 136, 203, -494, -498,
1526 0, 0, 0, 204, 0, 0, 148, 0, 139, 140,
1527 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1528 0, -250, -250, 0, 0, 145, 146, 147, 0, 150,
1529 151, 152, 153, 154, 155, 0, 0, 0, 0, 0,
1530 0, 0, 0, 156, 0, 0, 0, 157, 0, 148,
1531 0, -494, 0, 0, 0, 0, 368, 0, 0, 0,
1532 0, 139, 140, 141, 142, 143, 144, 0, 0, 0,
1533 0, 0, 150, 151, 152, 153, 154, 155, 145, 146,
1534 147, 0, 0, 0, 0, 0, 156, 0, 0, 0,
1535 157, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1536 0, 0, 148, 0, 0, 0, 0, 0, 0, 0,
1537 0, 0, 0, 0, 0, 76, 158, 159, 160, 161,
1538 80, 0, 0, 125, 0, 0, 0, 0, 126, 127,
1539 128, 0, 129, 130, 131, 132, 133, 134, 135, 136,
1540 137, -494, 0, 157, 0, 0, 138, 0, 0, 0,
1541 0, 139, 140, 141, 142, 143, 144, 0, 76, 158,
1542 159, 160, 205, 206, -250, -250, 0, 0, 145, 146,
1543 147, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1545 0, 0, 148, 0, 0, 0, 0, 0, 0, 0,
1546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1547 0, 76, 329, 330, 160, 150, 151, 152, 153, 154,
1548 155, 0, 0, 0, 0, 0, 0, 0, 0, 156,
1549 126, 127, 128, 157, 129, 130, 131, 132, 133, 134,
1550 135, 136, 203, -494, 580, 0, 0, 0, 368, 0,
1551 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1552 0, 0, 0, 0, 0, 0, -250, -250, 0, 3,
1553 145, 146, 147, 0, 0, 0, 0, 0, 0, 0,
1554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1555 0, 0, 0, 0, 148, 4, 0, 0, 0, 0,
1556 0, 76, 158, 159, 160, 161, 80, 0, 0, 0,
1557 0, 0, 0, 0, 0, 0, 0, 150, 151, 152,
1558 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1559 0, 581, 11, 12, 13, 157, 14, 15, 16, 17,
1560 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1561 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1562 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1563 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1564 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1565 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1566 369, 370, 371, 76, 158, 566, 160, 161, 80, 81,
1567 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1568 135, 136, 203, -494, 659, 0, 0, 0, 368, 0,
1569 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1570 0, 0, 0, 0, 0, 0, -250, -250, 0, 3,
1571 145, 146, 147, 0, 0, 0, 0, 0, 0, 0,
1572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1573 0, 0, 0, 0, 148, 4, 0, 0, 0, 0,
1574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1575 0, 0, 0, 0, 0, 0, 0, 150, 151, 152,
1576 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1577 0, 156, 11, 12, 13, 157, 14, 15, 16, 17,
1578 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1579 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1580 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1581 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1582 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1583 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1584 369, 370, 371, 76, 158, 566, 160, 161, 80, 81,
1585 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1586 135, 136, 203, -494, 670, 0, 0, 0, 368, 0,
1587 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1588 0, 0, 0, 0, 0, 0, -250, -250, 0, 3,
1589 145, 146, 147, 0, 0, 0, 0, 0, 0, 0,
1590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1591 0, 0, 0, 0, 148, 4, 0, 0, 0, 0,
1592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1593 0, 0, 0, 0, 0, 0, 0, 150, 151, 152,
1594 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1595 0, 671, 11, 12, 13, 157, 14, 15, 16, 17,
1596 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1597 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1598 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1599 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1600 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1601 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1602 369, 370, 371, 76, 158, 566, 160, 161, 80, 81,
1603 126, 127, 128, 0, 129, 130, 131, 132, 133, 134,
1604 135, 136, 203, -494, 669, 0, 0, 0, 368, 0,
1605 0, 0, 0, 139, 140, 141, 142, 143, 144, 0,
1606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1607 145, 146, 147, 126, 127, 128, 0, 129, 130, 131,
1608 132, 133, 134, 135, 136, 203, -494, 673, 0, 0,
1609 0, 368, 0, 0, 148, 0, 139, 140, 141, 142,
1610 143, 144, 0, 0, 0, 0, 0, 0, 0, 0,
1611 0, 0, 0, 145, 146, 147, 0, 150, 151, 152,
1612 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
1613 0, 156, 0, 0, 0, 157, 0, 148, 0, 0,
1614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1616 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1617 0, 0, 0, 0, 674, 0, 0, 0, 157, 0,
1618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1620 369, 370, 371, 76, 158, 159, 160, 161, 80, 0,
1621 0, 0, 126, 127, 128, 0, 129, 130, 131, 132,
1622 133, 134, 135, 136, 203, -494, 726, 0, 0, 0,
1623 368, 0, 0, 0, 0, 139, 140, 141, 142, 143,
1624 144, 0, 0, 369, 370, 371, 76, 158, 159, 160,
1625 161, 80, 145, 146, 147, 126, 127, 128, 0, 129,
1626 130, 131, 132, 133, 134, 135, 136, 203, -494, 779,
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, 0, 0, 157, 0, 148,
1632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1634 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1635 0, 0, 0, 0, 0, 0, 156, 0, 0, 0,
1636 157, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1638 0, 0, 369, 370, 371, 76, 158, 159, 160, 161,
1639 80, 0, 0, 0, 126, 127, 128, 0, 129, 130,
1640 131, 132, 133, 134, 135, 136, 203, -494, 780, 0,
1641 0, 0, 368, 0, 0, 0, 0, 139, 140, 141,
1642 142, 143, 144, 0, 0, 369, 370, 371, 76, 158,
1643 159, 160, 161, 80, 145, 146, 147, 126, 127, 128,
1644 0, 129, 130, 131, 132, 133, 134, 135, 136, 203,
1645 -494, 782, 0, 0, 0, 368, 0, 0, 148, 0,
1646 139, 140, 141, 142, 143, 144, 0, 0, 0, 0,
1647 0, 0, 0, 0, 0, 0, 0, 145, 146, 147,
1648 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1649 0, 0, 0, 0, 0, 781, 0, 0, 0, 157,
1650 0, 148, 0, 0, 0, 0, 0, 0, 0, 0,
1651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1652 0, 0, 0, 0, 150, 151, 152, 153, 154, 155,
1653 0, 0, 0, 0, 0, 0, 0, 0, 156, 0,
1654 0, 0, 157, 0, 0, 0, 0, 0, 0, 0,
1655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1656 0, 0, 0, 0, 369, 370, 371, 76, 158, 159,
1657 160, 161, 80, 0, 0, 0, 126, 127, 128, 0,
1658 129, 130, 131, 132, 133, 134, 135, 136, 203, -494,
1659 903, 0, 0, 0, 368, 0, 0, 0, 0, 139,
1660 140, 141, 142, 143, 144, 0, 0, 369, 370, 371,
1661 76, 158, 159, 160, 161, 80, 145, 146, 147, 126,
1662 127, 128, 0, 129, 130, 131, 132, 133, 134, 135,
1663 136, 203, -494, 0, 0, 0, 0, 368, 0, 0,
1664 148, 0, 139, 140, 141, 142, 143, 144, 0, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, 0, 145,
1666 146, 147, 0, 150, 151, 152, 153, 154, 155, 0,
1667 0, 0, 0, 0, 0, 0, 0, 156, 0, 0,
1668 0, 157, 0, 148, 0, 0, 0, 0, 0, 0,
1669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1670 0, 0, 0, 0, 0, 0, 150, 151, 152, 153,
1671 154, 155, 293, 0, 0, 0, 0, 0, 0, 0,
1672 156, 0, 0, 0, 157, 0, 0, 0, 0, 0,
1673 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,
1674 0, 0, 0, 0, 0, 0, 369, 370, 371, 76,
1675 158, 159, 160, 161, 80, 0, 0, 0, 0, 0,
1676 0, -359, -359, -359, 0, 4, 0, 0, 0, 0,
1677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1678 0, 0, 0, 0, 0, 0, 0, 0, 0, 369,
1679 370, 371, 76, 158, 159, 160, 161, 80, 0, 0,
1680 0, 0, 11, 12, 13, 0, 14, 15, 16, 17,
1681 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1682 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1683 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1684 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1685 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1686 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1687 293, 0, 0, 0, 0, 120, 0, 0, 0, 81,
1688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1689 0, 0, 0, 0, 0, 0, 0, 3, 797, 0,
1690 0, 0, 0, 328, 0, 0, 0, 0, 139, 140,
1691 141, 142, 143, 144, 0, 0, 0, 0, 0, 0,
1692 0, 0, 0, 4, 0, 145, 146, 147, 0, 0,
1693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1694 -628, 0, 0, 0, 0, 0, 0, 0, 0, 148,
1695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1696 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1697 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1698 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1699 157, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1700 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1701 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1702 68, 69, 70, 71, 72, 73, 74, 75, 0, -116,
1703 0, 0, 0, 120, -116, 0, 0, 81, 0, 0,
1704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1705 0, 0, 0, 0, 0, 3, 0, 0, 76, 329,
1706 330, 160, 0, 0, 0, 0, 0, 0, 0, 0,
1707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1708 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
1709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1711 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1712 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1713 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1714 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1715 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1716 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1717 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1718 70, 71, 72, 73, 74, 75, 288, 0, 0, 0,
1719 0, 120, 0, 0, 0, 81, 0, 0, 0, 0,
1720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1721 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
1722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1723 0, 0, 0, 0, 0, 0, 0, 0, 4, 0,
1724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1726 0, -497, 0, 0, 0, 0, 0, 0, 0, 0,
1727 0, 0, 0, 0, 0, 11, 12, 13, 0, 14,
1728 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1729 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1730 34, 35, 36, 37, 38, 0, 39, 40, 41, 42,
1731 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1732 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1733 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1734 73, 74, 75, 0, 0, 0, 0, 0, 120, 11,
1735 12, 13, 81, 14, 15, 16, 17, 18, 19, 20,
1736 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1737 30, 31, 32, 33, 34, 35, 36, 37, 38, 0,
1738 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1739 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1740 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1741 69, 70, 71, 72, 73, 74, 75, -635, 0, 0,
1742 0, 0, 120, 0, 0, 0, 81, 0, 0, 0,
1743 328, 0, 0, 628, 0, 139, 140, 141, 142, 143,
1744 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745 0, 0, 145, 146, 147, 0, 0, 0, 0, 0,
1746 0, 0, -637, -637, -637, 0, 0, 0, 0, 0,
1747 0, 0, 0, 0, 0, 0, 148, 0, 0, 0,
1748 -637, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1750 0, 0, 0, -637, -637, -637, 0, -637, -637, -637,
1751 -637, -637, -637, -637, -637, -637, -637, 157, -637, -637,
1752 -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
1753 -637, -637, -637, 0, -637, -637, -637, -637, -637, -637,
1754 -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
1755 -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
1756 -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
1757 -637, -250, 0, 0, 0, 0, 0, 0, 0, 0,
1758 -637, 2, 0, 0, 0, 76, 329, 330, 160, 0,
1759 0, 0, 0, 0, 0, 0, 0, 0, 328, 0,
1760 0, 709, 0, 139, 140, 141, 142, 143, 144, 0,
1761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1762 145, 146, 147, 0, 0, 0, 0, 0, 0, 0,
1763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1764 0, 0, 0, 0, 148, 0, 0, 0, 0, 0,
1765 0, 0, 0, 0, 0, 11, 12, 13, 0, 14,
1766 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1767 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1768 34, 35, 36, 37, 38, 157, 39, 40, 41, 42,
1769 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1770 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1771 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1772 73, 74, 75, 0, 0, 0, 76, 77, 78, 0,
1773 79, 80, 81, 0, 0, 328, 947, 0, 0, 0,
1774 139, 140, 141, 142, 143, 144, 0, 0, 0, 0,
1775 0, 0, 0, 76, 329, 330, 160, 145, 146, 147,
1776 328, -232, 0, 0, 0, 139, 140, 141, 142, 143,
1777 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1778 328, 148, 145, 146, 147, 139, 140, 141, 142, 143,
1779 144, 357, 0, 0, 0, 0, 139, 140, 141, 142,
1780 143, 144, 145, 146, 147, 0, 148, 0, 0, 0,
1781 0, 654, 0, 145, 146, 147, 139, 140, 141, 142,
1782 143, 144, 157, 0, 0, 0, 148, 0, 0, 0,
1783 0, 0, 0, 145, 146, 147, 656, 148, 0, 0,
1784 0, 139, 140, 141, 142, 143, 144, 157, 0, 0,
1785 0, 0, 0, 0, 0, 0, 0, 148, 145, 146,
1786 147, 0, 0, 729, 0, 0, 0, 157, 730, 731,
1787 732, 733, 734, 735, 0, 0, 0, 0, 157, 0,
1788 0, 0, 148, 0, 0, 145, 736, 737, 0, 0,
1789 76, 329, 330, 160, 0, 0, 0, 0, 157, 0,
1790 0, 0, 0, 0, 0, 0, 0, 0, 0, 738,
1791 0, 0, 0, 0, 0, 76, 329, 330, 160, 0,
1792 0, 0, 0, 157, 0, 0, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 76, 329, 330, 160, 0,
1794 0, 0, 0, 0, 0, 0, 76, 329, 330, 160,
1795 157, 0, 0, 0, 0, 0, -176, -176, 0, 0,
1796 0, 0, 0, 0, 0, 0, 76, 329, 330, 160,
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1799 0, 76, 329, 330, 160, 0, 0, 0, 0, 0,
1800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801 0, 0, 0, 0, 0, 0, 0, 0, 76, 739,
1802 740, 741, 11, 12, 13, 0, 14, 15, 16, 17,
1803 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1804 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1805 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1806 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1807 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1808 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1809 3, 0, 0, 0, 0, 120, 0, 0, 0, 81,
1810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1811 0, 0, -359, -359, -359, 0, 4, 0, 0, 0,
1812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1815 0, 0, 0, 11, 12, 13, 0, 14, 15, 16,
1816 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
1817 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1818 36, 37, 38, 0, 39, 40, 41, 42, 43, 44,
1819 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1820 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1821 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1822 75, 3, 0, 0, 0, 0, 120, 0, 0, 0,
1823 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,
1825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1828 0, 0, 0, 0, 11, 12, 13, 0, 14, 15,
1829 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1830 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1831 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1832 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1833 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1834 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1835 74, 75, -359, -359, -359, 0, 0, 120, 0, 0,
1836 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1839 0, 0, 0, 11, 12, 13, 0, 14, 15, 16,
1840 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
1841 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1842 36, 37, 38, 0, 39, 40, 41, 42, 43, 44,
1843 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1844 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1845 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1846 75, 8, 9, 10, 0, 0, 120, 0, 0, 0,
1847 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1848 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1849 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1850 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1851 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1852 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1853 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1854 68, 69, 70, 71, 72, 73, 74, 75, 0, 0,
1855 0, 0, 0, 120, 11, 12, 13, 81, 14, 15,
1856 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1857 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1858 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1859 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1860 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1861 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1862 74, 75, 0, 0, 0, 0, 0, 120, 0, 0,
1866 static const short yycheck[] = { 0,
1867 366, 0, 3, 106, 0, 469, 89, 501, 368, 2,
1868 11, 12, 626, 630, 126, 560, 418, 18, 19, 20,
1869 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1870 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1871 41, 42, 43, 452, 789, 9, 10, 48, 49, 50,
1872 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1873 61, 62, 63, 64, 303, 322, 419, 0, 407, 408,
1874 3, 26, 5, 664, 75, 777, 664, 0, 479, 34,
1875 3, 82, 24, 82, 7, 451, 82, 18, 797, 684,
1876 18, 800, 34, 24, 711, 455, 409, 410, 664, 100,
1877 24, 911, 417, 34, 803, 106, 415, 416, 809, 8,
1878 34, 917, 8, 24, 5, 116, 117, 118, 320, 664,
1879 113, 122, 0, 86, 87, 26, 558, 28, 719, 122,
1880 28, 719, 215, 499, 25, 204, 41, 138, 18, 26,
1881 209, 41, 211, 44, 145, 28, 44, 34, 192, 82,
1882 85, 56, 24, 719, 223, 27, 56, 86, 87, 82,
1883 34, 44, 34, 96, 97, 910, 99, 912, 26, 908,
1884 28, 21, 911, 569, 719, 21, 411, 412, 413, 414,
1885 21, 27, 8, 106, 25, 21, 44, 993, 584, 122,
1886 1000, 27, 1002, 788, 896, 904, 791, 1103, 1104, 122,
1887 901, 21, 611, 204, 82, 25, 24, 8, 702, 29,
1888 133, 612, 18, 1038, 1039, 21, 179, 180, 18, 9,
1889 10, 21, 921, 480, 179, 180, 181, 587, 183, 184,
1890 18, 18, 664, 21, 108, 109, 23, 179, 180, 138,
1891 204, 1147, 138, 18, 610, 209, 21, 211, 179, 180,
1892 179, 180, 24, 21, 366, 179, 180, 25, 24, 223,
1893 224, 1000, 664, 1002, 21, 21, 632, 506, 25, 25,
1894 0, 5, 1097, 3, 24, 1100, 26, 7, 8, 9,
1895 10, 49, 50, 182, 34, 286, 182, 719, 21, 24,
1896 291, 25, 25, 292, 190, 194, 1005, 196, 194, 21,
1897 196, 302, 303, 25, 305, 306, 302, 179, 180, 24,
1898 182, 664, 138, 5, 931, 5, 18, 719, 319, 1144,
1899 814, 935, 18, 319, 325, 664, 225, 328, 25, 225,
1900 374, 28, 877, 25, 24, 25, 26, 138, 382, 451,
1901 384, 86, 87, 21, 34, 428, 347, 25, 24, 664,
1902 26, 664, 82, 592, 347, 664, 182, 139, 140, 141,
1903 142, 143, 144, 24, 190, 21, 719, 368, 194, 25,
1904 196, 116, 117, 21, 6, 7, 106, 25, 447, 302,
1905 719, 182, 305, 306, 307, 130, 21, 499, 16, 190,
1906 25, 982, 122, 194, 982, 196, 319, 636, 18, 225,
1907 16, 21, 325, 133, 719, 607, 719, 21, 138, 453,
1908 719, 25, 16, 346, 204, 654, 982, 656, 24, 209,
1909 26, 211, 5, 21, 225, 16, 156, 25, 794, 664,
1910 67, 68, 69, 223, 224, 25, 26, 982, 28, 53,
1911 54, 39, 15, 875, 443, 179, 180, 181, 1123, 183,
1912 184, 22, 182, 454, 44, 1130, 457, 1132, 454, 22,
1913 190, 457, 192, 464, 194, 466, 196, 468, 469, 21,
1914 471, 873, 22, 25, 204, 476, 520, 18, 479, 209,
1915 21, 211, 23, 447, 719, 486, 479, 179, 180, 181,
1916 729, 183, 184, 223, 224, 225, 29, 498, 610, 39,
1917 501, 19, 503, 25, 26, 506, 28, 34, 35, 36,
1918 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1919 632, 874, 44, 862, 863, 569, 21, 460, 40, 428,
1920 25, 454, 428, 18, 457, 21, 21, 32, 33, 25,
1921 584, 585, 55, 98, 467, 100, 469, 102, 471, 104,
1922 982, 864, 865, 92, 109, 5, 479, 872, 24, 482,
1923 26, 870, 871, 486, 119, 21, 121, 21, 92, 25,
1924 569, 25, 302, 49, 50, 305, 306, 307, 37, 38,
1925 982, 941, 21, 1077, 18, 584, 25, 21, 589, 319,
1926 19, 592, 51, 52, 1058, 325, 179, 180, 181, 702,
1927 183, 184, 428, 22, 605, 606, 529, 530, 163, 21,
1928 21, 612, 22, 25, 25, 24, 660, 661, 27, 612,
1929 32, 33, 404, 405, 406, 34, 24, 428, 672, 982,
1930 631, 866, 867, 868, 869, 636, 24, 22, 26, 369,
1931 370, 371, 18, 982, 374, 21, 34, 21, 649, 650,
1932 92, 25, 382, 654, 384, 656, 34, 447, 20, 703,
1933 21, 179, 180, 181, 25, 183, 184, 982, 24, 982,
1934 26, 18, 568, 982, 21, 25, 26, 678, 34, 24,
1935 21, 26, 794, 5, 25, 686, 619, 688, 19, 612,
1936 92, 692, 693, 34, 35, 36, 697, 34, 428, 27,
1937 701, 702, 24, 25, 26, 24, 707, 22, 97, 702,
1938 99, 814, 34, 18, 707, 18, 828, 447, 24, 34,
1939 18, 923, 504, 453, 454, 32, 33, 457, 729, 179,
1940 180, 181, 22, 183, 184, 23, 291, 467, 18, 469,
1941 295, 471, 568, 34, 35, 36, 1112, 982, 85, 479,
1942 18, 21, 482, 21, 25, 25, 486, 25, 313, 53,
1943 54, 316, 37, 38, 687, 25, 689, 568, 24, 324,
1944 179, 180, 327, 182, 18, 698, 51, 52, 701, 702,
1945 21, 1020, 21, 784, 25, 987, 25, 18, 1154, 18,
1946 520, 179, 180, 181, 21, 183, 184, 185, 25, 529,
1947 530, 179, 180, 181, 1006, 183, 184, 42, 43, 1011,
1948 49, 50, 813, 814, 21, 816, 21, 18, 25, 18,
1949 25, 814, 179, 179, 180, 181, 1028, 183, 184, 179,
1950 180, 181, 1034, 183, 184, 19, 21, 9, 568, 569,
1951 25, 1043, 179, 180, 49, 50, 183, 184, 21, 20,
1952 21, 581, 25, 786, 584, 585, 789, 179, 180, 181,
1953 18, 183, 184, 21, 179, 180, 181, 25, 183, 184,
1954 1072, 1073, 11, 1075, 21, 22, 119, 25, 121, 179,
1955 180, 181, 612, 183, 184, 72, 73, 74, 24, 132,
1956 133, 814, 135, 11, 137, 138, 21, 452, 24, 21,
1957 25, 824, 985, 25, 459, 1107, 907, 150, 21, 464,
1958 21, 466, 25, 914, 25, 21, 21, 21, 21, 474,
1959 25, 25, 25, 478, 37, 38, 1009, 49, 50, 21,
1960 660, 661, 21, 25, 664, 88, 25, 19, 51, 52,
1961 19, 671, 672, 19, 674, 32, 33, 1149, 730, 731,
1962 732, 733, 734, 735, 21, 49, 50, 687, 25, 689,
1963 24, 21, 26, 21, 28, 25, 21, 25, 698, 19,
1964 25, 701, 702, 703, 1077, 908, 88, 910, 911, 912,
1965 44, 21, 27, 47, 48, 25, 24, 21, 26, 719,
1966 28, 25, 24, 994, 53, 54, 997, 25, 23, 21,
1967 1112, 997, 72, 73, 74, 22, 44, 20, 21, 47,
1968 48, 21, 1013, 21, 1015, 25, 1128, 1013, 18, 1020,
1969 1013, 24, 1023, 1024, 34, 35, 36, 950, 951, 1028,
1970 21, 586, 57, 58, 59, 60, 61, 62, 63, 64,
1971 65, 66, 1154, 8, 9, 10, 20, 21, 21, 22,
1972 22, 781, 179, 180, 25, 11, 611, 1058, 182, 1060,
1973 1061, 182, 182, 24, 24, 24, 21, 1000, 25, 1002,
1974 25, 23, 20, 1072, 997, 630, 1077, 859, 860, 861,
1975 635, 27, 37, 38, 814, 19, 23, 20, 19, 21,
1976 1013, 5, 27, 1016, 824, 25, 51, 52, 24, 22,
1977 88, 88, 8, 9, 10, 8, 126, 88, 24, 1110,
1978 25, 666, 1113, 20, 27, 1116, 20, 1113, 18, 139,
1979 140, 141, 142, 143, 144, 18, 146, 147, 78, 79,
1980 80, 81, 82, 83, 84, 1058, 25, 25, 8, 9,
1981 10, 27, 21, 25, 25, 25, 24, 8, 9, 10,
1982 40, 25, 29, 55, 1077, 39, 25, 23, 176, 88,
1983 24, 18, 25, 945, 18, 25, 25, 25, 21, 176,
1984 1171, 18, 21, 138, 18, 1098, 1099, 1178, 88, 184,
1985 182, 21, 20, 22, 20, 18, 20, 742, 25, 88,
1986 1113, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1987 66, 72, 73, 74, 25, 88, 20, 78, 79, 80,
1988 81, 82, 83, 84, 27, 88, 88, 182, 73, 27,
1989 950, 951, 1145, 1146, 0, 190, 88, 0, 325, 194,
1990 778, 196, 138, 136, 82, 138, 88, 88, 88, 204,
1991 205, 1010, 902, 1036, 209, 1089, 211, 802, 928, 896,
1992 1144, 1011, 982, 1109, 984, 843, 471, 987, 223, 224,
1993 225, 1113, 592, 72, 73, 74, 689, 997, 138, 78,
1994 79, 80, 81, 82, 83, 84, 182, 138, 814, 182,
1995 687, 1011, 113, 1013, 190, 701, 1016, 190, 194, 10,
1996 196, 194, 520, 196, 347, 428, 224, 1082, 204, 719,
1997 982, 204, -1, 209, -1, 211, -1, 1037, 1038, 1039,
1998 -1, -1, 182, -1, -1, -1, 1046, 223, 224, 225,
1999 190, 182, 225, -1, 194, -1, 196, -1, 1058, 190,
2000 8, 9, 10, 194, 204, 196, -1, -1, -1, 209,
2001 -1, 211, -1, 204, 899, 900, 366, 1077, 209, -1,
2002 211, -1, 907, 223, 224, 225, -1, -1, -1, -1,
2003 -1, -1, 223, 224, 225, -1, -1, 1097, 1098, 1099,
2004 1100, -1, -1, 1103, 1104, -1, 931, -1, -1, 1109,
2005 -1, -1, -1, 1113, 404, 405, 406, 407, 408, 409,
2006 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
2007 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2008 -1, -1, -1, -1, 1144, 1145, 1146, 1147, -1, -1,
2009 -1, -1, 387, -1, -1, 328, -1, -1, -1, -1,
2010 -1, 451, -1, 336, 337, 338, 339, -1, -1, -1,
2011 995, -1, 8, 9, 10, -1, -1, -1, -1, -1,
2012 -1, -1, -1, -1, 357, 360, -1, -1, -1, -1,
2013 138, -1, -1, 428, -1, 368, -1, -1, -1, -1,
2014 -1, -1, -1, -1, -1, -1, -1, -1, -1, 499,
2015 -1, -1, 447, 388, 504, -1, 389, -1, 393, 394,
2016 395, 396, 397, 398, 399, 400, 401, 402, 403, -1,
2017 -1, -1, -1, -1, 182, -1, -1, 1062, -1, -1,
2018 -1, -1, 190, -1, -1, -1, 194, -1, 196, 424,
2019 -1, -1, 428, -1, -1, 428, 204, -1, -1, -1,
2020 -1, 209, 435, 211, -1, -1, -1, -1, 558, -1,
2021 560, 447, 562, 563, -1, 223, 224, 225, -1, -1,
2022 -1, 8, 9, 10, -1, -1, -1, -1, 428, -1,
2023 -1, -1, -1, -1, -1, -1, -1, 428, -1, -1,
2024 -1, -1, 138, -1, -1, -1, -1, 447, -1, -1,
2025 -1, -1, -1, -1, -1, -1, 447, -1, -1, -1,
2026 610, -1, -1, -1, -1, -1, -1, 1152, -1, -1,
2027 -1, -1, -1, 568, -1, -1, -1, -1, -1, -1,
2028 -1, -1, 632, -1, -1, -1, 182, -1, -1, -1,
2029 -1, -1, -1, -1, 190, -1, -1, -1, 194, -1,
2030 196, -1, -1, -1, -1, -1, -1, -1, 204, -1,
2031 -1, -1, -1, 209, 664, 211, -1, -1, -1, -1,
2032 -1, -1, -1, -1, -1, -1, 559, 223, 224, 225,
2033 -1, -1, 568, -1, -1, 568, -1, -1, -1, -1,
2034 -1, -1, 18, -1, -1, -1, -1, -1, 24, -1,
2035 -1, 138, -1, 29, 30, 31, 32, 33, 34, -1,
2036 -1, -1, -1, -1, -1, -1, -1, -1, 568, 719,
2037 46, 47, 48, -1, -1, -1, -1, 568, -1, -1,
2038 730, 731, 732, 733, 734, 735, 736, 737, -1, -1,
2039 -1, -1, -1, 626, 70, 182, -1, -1, -1, -1,
2040 -1, -1, -1, 190, -1, -1, -1, 194, -1, 196,
2041 -1, 646, -1, -1, -1, -1, -1, 204, -1, -1,
2042 428, 654, 209, 656, 211, -1, -1, -1, -1, 662,
2043 -1, -1, 665, -1, -1, 111, 223, 224, 225, 447,
2044 -1, 24, 25, -1, 794, -1, 29, 30, 31, 32,
2045 33, 34, -1, -1, -1, -1, 691, -1, -1, -1,
2046 -1, -1, -1, 46, 47, 48, -1, -1, -1, -1,
2047 -1, -1, -1, -1, -1, -1, -1, -1, 828, -1,
2048 -1, -1, -1, -1, -1, 718, -1, 70, -1, -1,
2049 -1, -1, -1, -1, -1, -1, 729, -1, -1, -1,
2050 -1, -1, -1, 179, 180, 181, 182, -1, -1, 859,
2051 860, 861, 862, 863, 864, 865, 866, 867, 868, 869,
2052 870, 871, 872, 873, 874, 875, -1, 877, 111, -1,
2053 -1, -1, 428, -1, -1, -1, -1, -1, -1, -1,
2054 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2055 -1, 447, -1, -1, -1, -1, -1, 18, -1, -1,
2056 568, -1, 797, 24, -1, 800, -1, -1, 29, 30,
2057 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2058 -1, -1, -1, -1, -1, 46, 47, 48, -1, -1,
2059 -1, -1, -1, -1, -1, 945, 179, 180, 181, 182,
2060 -1, -1, -1, -1, -1, -1, -1, 842, 843, 70,
2061 -1, 844, -1, 848, 849, 850, 851, 852, 853, 854,
2062 855, 856, 857, 858, -1, 19, 20, -1, -1, -1,
2063 24, -1, 982, -1, -1, 29, 30, 31, 32, 33,
2064 34, 428, -1, -1, -1, -1, -1, -1, -1, -1,
2065 111, -1, 46, 47, 48, -1, -1, -1, -1, -1,
2066 447, -1, -1, -1, -1, -1, -1, -1, -1, 904,
2067 -1, -1, 568, -1, -1, -1, 70, -1, -1, -1,
2068 -1, -1, 0, 1, -1, -1, -1, -1, -1, -1,
2069 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2070 -1, -1, 935, -1, -1, -1, 24, -1, -1, -1,
2071 -1, -1, -1, -1, -1, -1, 34, 111, 179, 180,
2072 181, 182, -1, -1, -1, -1, -1, 45, -1, -1,
2073 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2074 -1, -1, -1, -1, -1, -1, -1, 980, -1, 67,
2075 68, 69, -1, 71, -1, -1, -1, 75, 76, 77,
2076 -1, -1, 1112, -1, -1, -1, -1, -1, -1, -1,
2077 1005, 89, 90, 91, -1, -1, -1, -1, 1128, -1,
2078 -1, 568, -1, -1, -1, 179, 180, 181, 182, -1,
2079 108, 109, 110, -1, 112, 113, 114, 115, 116, 117,
2080 118, 119, 120, 121, 1154, 123, 124, 125, 126, 127,
2081 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2082 -1, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2083 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2084 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2085 168, 169, 170, 171, 172, 173, 174, 175, 0, 1,
2086 -1, 179, 180, 181, -1, 183, 184, 185, -1, -1,
2087 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2088 -1, -1, 24, -1, -1, -1, -1, -1, -1, -1,
2089 -1, -1, 34, -1, -1, -1, -1, -1, -1, -1,
2090 -1, -1, -1, 45, -1, -1, -1, -1, -1, -1,
2091 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2092 -1, -1, -1, -1, -1, 67, 68, 69, -1, 71,
2093 -1, -1, -1, 75, 76, 77, -1, -1, -1, -1,
2094 -1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
2095 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2096 -1, -1, -1, -1, -1, -1, 108, 109, 110, -1,
2097 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2098 -1, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2099 132, 133, 134, 135, 136, 137, -1, 139, 140, 141,
2100 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2101 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2102 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2103 172, 173, 174, 175, -1, -1, -1, 179, 180, 181,
2104 1, 183, 184, 185, -1, 6, 7, 8, -1, 10,
2105 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2106 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2107 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2108 -1, 42, 43, -1, 45, 46, 47, 48, -1, -1,
2109 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2110 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
2111 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2112 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2113 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2114 -1, -1, -1, -1, -1, -1, 107, 108, 109, 110,
2115 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2116 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2117 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2118 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2119 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2120 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2121 171, 172, 173, 174, 175, -1, -1, -1, 179, 180,
2122 181, 182, 183, 184, 185, 1, -1, -1, -1, -1,
2123 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2124 16, 17, 18, 19, -1, -1, -1, -1, 24, -1,
2125 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2126 -1, -1, -1, -1, -1, -1, 42, 43, -1, -1,
2127 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2128 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2129 -1, 67, 68, 69, 70, -1, -1, -1, -1, -1,
2130 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2131 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
2132 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2133 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2134 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2135 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2136 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2137 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2138 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2139 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2140 -1, -1, -1, 179, 180, 181, 182, 183, 184, 185,
2141 1, -1, -1, -1, -1, 6, 7, 8, -1, -1,
2142 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2143 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2144 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2145 -1, 42, 43, -1, -1, 46, 47, 48, -1, -1,
2146 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2147 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
2148 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2149 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2150 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2151 -1, -1, -1, -1, -1, -1, 107, 108, 109, 110,
2152 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2153 121, -1, 123, 124, 125, 126, 127, 128, 129, 130,
2154 131, 132, 133, 134, 135, 136, 137, -1, 139, 140,
2155 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2156 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2157 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2158 171, 172, 173, 174, 175, -1, -1, -1, 179, 180,
2159 181, 182, 183, 184, 185, 1, -1, -1, -1, -1,
2160 6, 7, 8, -1, -1, 11, 12, 13, 14, 15,
2161 16, 17, 18, 19, 20, -1, -1, -1, 24, 25,
2162 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2163 -1, -1, -1, -1, -1, -1, 42, 43, 1, -1,
2164 46, 47, 48, 6, 7, 8, -1, 10, 11, 12,
2165 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2166 -1, 24, -1, -1, 70, -1, 29, 30, 31, 32,
2167 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2168 43, -1, -1, 46, 47, 48, 92, 93, 94, 95,
2169 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2170 -1, 107, -1, -1, -1, 111, -1, 70, -1, -1,
2171 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2172 -1, -1, -1, -1, -1, -1, -1, -1, -1, 92,
2173 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2174 -1, -1, -1, -1, 107, -1, -1, -1, 111, -1,
2175 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2176 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2177 -1, -1, -1, 179, 180, 181, 182, 183, 184, -1,
2178 -1, 1, -1, -1, -1, -1, 6, 7, 8, -1,
2179 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2180 -1, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2181 30, 31, 32, 33, 34, -1, 179, 180, 181, 182,
2182 183, 184, 42, 43, 1, -1, 46, 47, 48, 6,
2183 7, 8, -1, -1, 11, 12, 13, 14, 15, 16,
2184 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2185 70, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2186 -1, -1, -1, -1, -1, 42, 43, -1, -1, 46,
2187 47, 48, 92, 93, 94, 95, 96, 97, 98, -1,
2188 -1, -1, -1, -1, -1, -1, -1, 107, -1, -1,
2189 -1, 111, -1, 70, -1, -1, -1, -1, -1, -1,
2190 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2191 -1, -1, -1, -1, -1, 92, 93, 94, 95, 96,
2192 97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
2193 107, -1, -1, -1, 111, -1, -1, -1, -1, -1,
2194 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2195 -1, -1, -1, -1, -1, -1, -1, -1, -1, 179,
2196 180, 181, 182, 183, 184, -1, -1, 1, -1, -1,
2197 -1, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2198 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2199 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2200 34, -1, 179, 180, 181, 182, 183, 184, 42, 43,
2201 1, -1, 46, 47, 48, 6, 7, 8, -1, -1,
2202 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2203 -1, -1, -1, 24, -1, -1, 70, -1, 29, 30,
2204 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2205 -1, 42, 43, -1, -1, 46, 47, 48, -1, 93,
2206 94, 95, 96, 97, 98, -1, -1, -1, -1, -1,
2207 -1, -1, -1, 107, -1, -1, -1, 111, -1, 70,
2208 -1, 19, -1, -1, -1, -1, 24, -1, -1, -1,
2209 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2210 -1, -1, 93, 94, 95, 96, 97, 98, 46, 47,
2211 48, -1, -1, -1, -1, -1, 107, -1, -1, -1,
2212 111, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2213 -1, -1, 70, -1, -1, -1, -1, -1, -1, -1,
2214 -1, -1, -1, -1, -1, 179, 180, 181, 182, 183,
2215 184, -1, -1, 1, -1, -1, -1, -1, 6, 7,
2216 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2217 18, 19, -1, 111, -1, -1, 24, -1, -1, -1,
2218 -1, 29, 30, 31, 32, 33, 34, -1, 179, 180,
2219 181, 182, 183, 184, 42, 43, -1, -1, 46, 47,
2220 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2221 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2222 -1, -1, 70, -1, -1, -1, -1, -1, -1, -1,
2223 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2224 -1, 179, 180, 181, 182, 93, 94, 95, 96, 97,
2225 98, -1, -1, -1, -1, -1, -1, -1, -1, 107,
2226 6, 7, 8, 111, 10, 11, 12, 13, 14, 15,
2227 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2228 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2229 -1, -1, -1, -1, -1, -1, 42, 43, -1, 45,
2230 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2231 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2232 -1, -1, -1, -1, 70, 71, -1, -1, -1, -1,
2233 -1, 179, 180, 181, 182, 183, 184, -1, -1, -1,
2234 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
2235 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2236 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2237 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2238 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2239 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2240 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2241 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2242 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2243 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
2244 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2245 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2246 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2247 -1, -1, -1, -1, -1, -1, 42, 43, -1, 45,
2248 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2249 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2250 -1, -1, -1, -1, 70, 71, -1, -1, -1, -1,
2251 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2252 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
2253 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2254 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2255 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2256 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2257 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2258 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2259 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2260 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2261 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
2262 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2263 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2264 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2265 -1, -1, -1, -1, -1, -1, 42, 43, -1, 45,
2266 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2267 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2268 -1, -1, -1, -1, 70, 71, -1, -1, -1, -1,
2269 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2270 -1, -1, -1, -1, -1, -1, -1, 93, 94, 95,
2271 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2272 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2273 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2274 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2275 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2276 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2277 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2278 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2279 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
2280 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2281 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2282 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2283 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2284 46, 47, 48, 6, 7, 8, -1, 10, 11, 12,
2285 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2286 -1, 24, -1, -1, 70, -1, 29, 30, 31, 32,
2287 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2288 -1, -1, -1, 46, 47, 48, -1, 93, 94, 95,
2289 96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2290 -1, 107, -1, -1, -1, 111, -1, 70, -1, -1,
2291 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2292 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2293 93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2294 -1, -1, -1, -1, 107, -1, -1, -1, 111, -1,
2295 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2296 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2297 176, 177, 178, 179, 180, 181, 182, 183, 184, -1,
2298 -1, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2299 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
2300 24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
2301 34, -1, -1, 176, 177, 178, 179, 180, 181, 182,
2302 183, 184, 46, 47, 48, 6, 7, 8, -1, 10,
2303 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2304 -1, -1, -1, 24, -1, -1, 70, -1, 29, 30,
2305 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2306 -1, -1, -1, -1, -1, 46, 47, 48, -1, 93,
2307 94, 95, 96, 97, 98, -1, -1, -1, -1, -1,
2308 -1, -1, -1, 107, -1, -1, -1, 111, -1, 70,
2309 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2310 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2311 -1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2312 -1, -1, -1, -1, -1, -1, 107, -1, -1, -1,
2313 111, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2314 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2315 -1, -1, 176, 177, 178, 179, 180, 181, 182, 183,
2316 184, -1, -1, -1, 6, 7, 8, -1, 10, 11,
2317 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2318 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2319 32, 33, 34, -1, -1, 176, 177, 178, 179, 180,
2320 181, 182, 183, 184, 46, 47, 48, 6, 7, 8,
2321 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2322 19, 20, -1, -1, -1, 24, -1, -1, 70, -1,
2323 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2324 -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
2325 -1, 93, 94, 95, 96, 97, 98, -1, -1, -1,
2326 -1, -1, -1, -1, -1, 107, -1, -1, -1, 111,
2327 -1, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2328 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2329 -1, -1, -1, -1, 93, 94, 95, 96, 97, 98,
2330 -1, -1, -1, -1, -1, -1, -1, -1, 107, -1,
2331 -1, -1, 111, -1, -1, -1, -1, -1, -1, -1,
2332 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2333 -1, -1, -1, -1, 176, 177, 178, 179, 180, 181,
2334 182, 183, 184, -1, -1, -1, 6, 7, 8, -1,
2335 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2336 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2337 30, 31, 32, 33, 34, -1, -1, 176, 177, 178,
2338 179, 180, 181, 182, 183, 184, 46, 47, 48, 6,
2339 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2340 17, 18, 19, -1, -1, -1, -1, 24, -1, -1,
2341 70, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2342 -1, -1, -1, -1, -1, -1, -1, -1, -1, 46,
2343 47, 48, -1, 93, 94, 95, 96, 97, 98, -1,
2344 -1, -1, -1, -1, -1, -1, -1, 107, -1, -1,
2345 -1, 111, -1, 70, -1, -1, -1, -1, -1, -1,
2346 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2347 -1, -1, -1, -1, -1, -1, 93, 94, 95, 96,
2348 97, 98, 18, -1, -1, -1, -1, -1, -1, -1,
2349 107, -1, -1, -1, 111, -1, -1, -1, -1, -1,
2350 -1, -1, -1, -1, -1, -1, -1, -1, -1, 45,
2351 -1, -1, -1, -1, -1, -1, 176, 177, 178, 179,
2352 180, 181, 182, 183, 184, -1, -1, -1, -1, -1,
2353 -1, 67, 68, 69, -1, 71, -1, -1, -1, -1,
2354 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2355 -1, -1, -1, -1, -1, -1, -1, -1, -1, 176,
2356 177, 178, 179, 180, 181, 182, 183, 184, -1, -1,
2357 -1, -1, 108, 109, 110, -1, 112, 113, 114, 115,
2358 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2359 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2360 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2361 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2362 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2363 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2364 18, -1, -1, -1, -1, 181, -1, -1, -1, 185,
2365 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2366 -1, -1, -1, -1, -1, -1, -1, 45, 19, -1,
2367 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2368 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2369 -1, -1, -1, 71, -1, 46, 47, 48, -1, -1,
2370 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2371 88, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2372 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2373 108, 109, 110, -1, 112, 113, 114, 115, 116, 117,
2374 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2375 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2376 111, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2377 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2378 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2379 168, 169, 170, 171, 172, 173, 174, 175, -1, 19,
2380 -1, -1, -1, 181, 24, -1, -1, 185, -1, -1,
2381 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2382 -1, -1, -1, -1, -1, 45, -1, -1, 179, 180,
2383 181, 182, -1, -1, -1, -1, -1, -1, -1, -1,
2384 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2385 -1, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2386 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2387 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2388 -1, -1, -1, -1, -1, -1, -1, -1, 108, 109,
2389 110, -1, 112, 113, 114, 115, 116, 117, 118, 119,
2390 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
2391 130, 131, 132, 133, 134, 135, 136, 137, -1, 139,
2392 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2393 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2394 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2395 170, 171, 172, 173, 174, 175, 19, -1, -1, -1,
2396 -1, 181, -1, -1, -1, 185, -1, -1, -1, -1,
2397 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2398 -1, -1, 45, -1, -1, -1, -1, -1, -1, -1,
2399 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2400 -1, -1, -1, -1, -1, -1, -1, -1, 71, -1,
2401 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2402 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2403 -1, 20, -1, -1, -1, -1, -1, -1, -1, -1,
2404 -1, -1, -1, -1, -1, 108, 109, 110, -1, 112,
2405 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
2406 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2407 133, 134, 135, 136, 137, -1, 139, 140, 141, 142,
2408 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2409 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2410 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2411 173, 174, 175, -1, -1, -1, -1, -1, 181, 108,
2412 109, 110, 185, 112, 113, 114, 115, 116, 117, 118,
2413 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
2414 129, 130, 131, 132, 133, 134, 135, 136, 137, -1,
2415 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2416 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2417 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2418 169, 170, 171, 172, 173, 174, 175, 22, -1, -1,
2419 -1, -1, 181, -1, -1, -1, 185, -1, -1, -1,
2420 24, -1, -1, 27, -1, 29, 30, 31, 32, 33,
2421 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2422 -1, -1, 46, 47, 48, -1, -1, -1, -1, -1,
2423 -1, -1, 67, 68, 69, -1, -1, -1, -1, -1,
2424 -1, -1, -1, -1, -1, -1, 70, -1, -1, -1,
2425 85, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2426 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2427 -1, -1, -1, 108, 109, 110, -1, 112, 113, 114,
2428 115, 116, 117, 118, 119, 120, 121, 111, 123, 124,
2429 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2430 135, 136, 137, -1, 139, 140, 141, 142, 143, 144,
2431 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2432 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2433 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2434 175, 24, -1, -1, -1, -1, -1, -1, -1, -1,
2435 185, 34, -1, -1, -1, 179, 180, 181, 182, -1,
2436 -1, -1, -1, -1, -1, -1, -1, -1, 24, -1,
2437 -1, 27, -1, 29, 30, 31, 32, 33, 34, -1,
2438 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2439 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2440 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2441 -1, -1, -1, -1, 70, -1, -1, -1, -1, -1,
2442 -1, -1, -1, -1, -1, 108, 109, 110, -1, 112,
2443 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
2444 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2445 133, 134, 135, 136, 137, 111, 139, 140, 141, 142,
2446 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2447 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2448 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2449 173, 174, 175, -1, -1, -1, 179, 180, 181, -1,
2450 183, 184, 185, -1, -1, 24, 25, -1, -1, -1,
2451 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2452 -1, -1, -1, 179, 180, 181, 182, 46, 47, 48,
2453 24, 25, -1, -1, -1, 29, 30, 31, 32, 33,
2454 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2455 24, 70, 46, 47, 48, 29, 30, 31, 32, 33,
2456 34, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2457 33, 34, 46, 47, 48, -1, 70, -1, -1, -1,
2458 -1, 24, -1, 46, 47, 48, 29, 30, 31, 32,
2459 33, 34, 111, -1, -1, -1, 70, -1, -1, -1,
2460 -1, -1, -1, 46, 47, 48, 24, 70, -1, -1,
2461 -1, 29, 30, 31, 32, 33, 34, 111, -1, -1,
2462 -1, -1, -1, -1, -1, -1, -1, 70, 46, 47,
2463 48, -1, -1, 24, -1, -1, -1, 111, 29, 30,
2464 31, 32, 33, 34, -1, -1, -1, -1, 111, -1,
2465 -1, -1, 70, -1, -1, 46, 47, 48, -1, -1,
2466 179, 180, 181, 182, -1, -1, -1, -1, 111, -1,
2467 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2468 -1, -1, -1, -1, -1, 179, 180, 181, 182, -1,
2469 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1,
2470 -1, -1, -1, -1, -1, 179, 180, 181, 182, -1,
2471 -1, -1, -1, -1, -1, -1, 179, 180, 181, 182,
2472 111, -1, -1, -1, -1, -1, 42, 43, -1, -1,
2473 -1, -1, -1, -1, -1, -1, 179, 180, 181, 182,
2474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2475 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2476 -1, 179, 180, 181, 182, -1, -1, -1, -1, -1,
2477 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2478 -1, -1, -1, -1, -1, -1, -1, -1, 179, 180,
2479 181, 182, 108, 109, 110, -1, 112, 113, 114, 115,
2480 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
2481 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2482 136, 137, -1, 139, 140, 141, 142, 143, 144, 145,
2483 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2484 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2485 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2486 45, -1, -1, -1, -1, 181, -1, -1, -1, 185,
2487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2488 -1, -1, 67, 68, 69, -1, 71, -1, -1, -1,
2489 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2490 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2491 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2492 -1, -1, -1, 108, 109, 110, -1, 112, 113, 114,
2493 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
2494 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2495 135, 136, 137, -1, 139, 140, 141, 142, 143, 144,
2496 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2497 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2498 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2499 175, 45, -1, -1, -1, -1, 181, -1, -1, -1,
2500 185, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2501 -1, -1, -1, -1, -1, -1, -1, 71, -1, -1,
2502 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2503 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2504 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2505 -1, -1, -1, -1, 108, 109, 110, -1, 112, 113,
2506 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
2507 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2508 134, 135, 136, 137, -1, 139, 140, 141, 142, 143,
2509 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2510 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2511 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2512 174, 175, 67, 68, 69, -1, -1, 181, -1, -1,
2513 -1, 185, -1, -1, -1, -1, -1, -1, -1, -1,
2514 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2516 -1, -1, -1, 108, 109, 110, -1, 112, 113, 114,
2517 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
2518 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2519 135, 136, 137, -1, 139, 140, 141, 142, 143, 144,
2520 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2521 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2522 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2523 175, 89, 90, 91, -1, -1, 181, -1, -1, -1,
2524 185, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2525 108, 109, 110, -1, 112, 113, 114, 115, 116, 117,
2526 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
2527 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2528 -1, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2529 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2530 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2531 168, 169, 170, 171, 172, 173, 174, 175, -1, -1,
2532 -1, -1, -1, 181, 108, 109, 110, 185, 112, 113,
2533 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
2534 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2535 134, 135, 136, 137, -1, 139, 140, 141, 142, 143,
2536 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2537 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2538 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2539 174, 175, -1, -1, -1, -1, -1, 181, -1, -1,
2542 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2543 #line 3 "/gnu/share/bison.simple"
2545 /* Skeleton output parser for bison,
2546 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2548 This program is free software; you can redistribute it and/or modify
2549 it under the terms of the GNU General Public License as published by
2550 the Free Software Foundation; either version 2, or (at your option)
2553 This program is distributed in the hope that it will be useful,
2554 but WITHOUT ANY WARRANTY; without even the implied warranty of
2555 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2556 GNU General Public License for more details.
2558 You should have received a copy of the GNU General Public License
2559 along with this program; if not, write to the Free Software
2560 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
2562 /* As a special exception, when this file is copied by Bison into a
2563 Bison output file, you may use that output file without restriction.
2564 This special exception was added by the Free Software Foundation
2565 in version 1.24 of Bison. */
2569 #define alloca __builtin_alloca
2570 #else /* not GNU C. */
2571 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
2573 #else /* not sparc */
2574 #if defined (MSDOS) && !defined (__TURBOC__)
2576 #else /* not MSDOS, or __TURBOC__ */
2580 #else /* not MSDOS, __TURBOC__, or _AIX */
2584 void *alloca (unsigned int);
2586 #else /* not __cplusplus */
2588 #endif /* not __cplusplus */
2590 #endif /* not _AIX */
2591 #endif /* not MSDOS, or __TURBOC__ */
2592 #endif /* not sparc. */
2593 #endif /* not GNU C. */
2594 #endif /* alloca not defined. */
2596 /* This is the parser code that is written into each bison parser
2597 when the %semantic_parser declaration is not specified in the grammar.
2598 It was written by Richard Stallman by simplifying the hairy parser
2599 used when %semantic_parser is specified. */
2601 /* Note: there must be only one dollar sign in this file.
2602 It is replaced by the list of actions, each action
2603 as one case of the switch. */
2605 #define yyerrok (yyerrstatus = 0)
2606 #define yyclearin (yychar = YYEMPTY)
2609 #define YYACCEPT return(0)
2610 #define YYABORT return(1)
2611 #define YYERROR goto yyerrlab1
2612 /* Like YYERROR except do call yyerror.
2613 This remains here temporarily to ease the
2614 transition to the new meaning of YYERROR, for GCC.
2615 Once GCC version 2 has supplanted version 1, this can go. */
2616 #define YYFAIL goto yyerrlab
2617 #define YYRECOVERING() (!!yyerrstatus)
2618 #define YYBACKUP(token, value) \
2620 if (yychar == YYEMPTY && yylen == 1) \
2621 { yychar = (token), yylval = (value); \
2622 yychar1 = YYTRANSLATE (yychar); \
2627 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2631 #define YYERRCODE 256
2634 #define YYLEX yylex()
2640 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2642 #define YYLEX yylex(&yylval, &yylloc)
2644 #else /* not YYLSP_NEEDED */
2646 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2648 #define YYLEX yylex(&yylval)
2650 #endif /* not YYLSP_NEEDED */
2653 /* If nonreentrant, generate the variables here */
2657 int yychar; /* the lookahead symbol */
2658 YYSTYPE yylval; /* the semantic value of the */
2659 /* lookahead symbol */
2662 YYLTYPE yylloc; /* location data for the lookahead */
2666 int yynerrs; /* number of parse errors so far */
2667 #endif /* not YYPURE */
2670 int yydebug; /* nonzero means print parse trace */
2671 /* Since this is uninitialized, it does not stop multiple parsers
2675 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2678 #define YYINITDEPTH 200
2681 /* YYMAXDEPTH is the maximum size the stacks can grow to
2682 (effective only if the built-in stack extension method is used). */
2689 #define YYMAXDEPTH 10000
2692 /* Prevent warning if -Wstrict-prototypes. */
2697 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2698 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2699 #else /* not GNU C or C++ */
2702 /* This is the most reliable way to avoid incompatibilities
2703 in available built-in functions on various systems. */
2705 __yy_memcpy (to, from, count)
2710 register char *f = from;
2711 register char *t = to;
2712 register int i = count;
2718 #else /* __cplusplus */
2720 /* This is the most reliable way to avoid incompatibilities
2721 in available built-in functions on various systems. */
2723 __yy_memcpy (char *to, char *from, int count)
2725 register char *f = from;
2726 register char *t = to;
2727 register int i = count;
2736 #line 196 "/gnu/share/bison.simple"
2738 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2739 into yyparse. The argument should have type void *.
2740 It should actually point to an object.
2741 Grammar actions can access the variable by casting it
2742 to the proper pointer type. */
2744 #ifdef YYPARSE_PARAM
2746 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2747 #define YYPARSE_PARAM_DECL
2748 #else /* not __cplusplus */
2749 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2750 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2751 #endif /* not __cplusplus */
2752 #else /* not YYPARSE_PARAM */
2753 #define YYPARSE_PARAM_ARG
2754 #define YYPARSE_PARAM_DECL
2755 #endif /* not YYPARSE_PARAM */
2758 yyparse(YYPARSE_PARAM_ARG)
2761 register int yystate;
2763 register short *yyssp;
2764 register YYSTYPE *yyvsp;
2765 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2766 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2768 short yyssa[YYINITDEPTH]; /* the state stack */
2769 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2771 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2772 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2775 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2776 YYLTYPE *yyls = yylsa;
2779 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2781 #define YYPOPSTACK (yyvsp--, yyssp--)
2784 int yystacksize = YYINITDEPTH;
2795 YYSTYPE yyval; /* the variable used to return */
2796 /* semantic values from the action */
2803 fprintf(stderr, "Starting parse\n");
2809 yychar = YYEMPTY; /* Cause a token to be read. */
2811 /* Initialize stack pointers.
2812 Waste one element of value and location stack
2813 so that they stay on the same level as the state stack.
2814 The wasted elements are never initialized. */
2822 /* Push a new state, which is found in yystate . */
2823 /* In all cases, when you get here, the value and location stacks
2824 have just been pushed. so pushing a state here evens the stacks. */
2829 if (yyssp >= yyss + yystacksize - 1)
2831 /* Give user a chance to reallocate the stack */
2832 /* Use copies of these so that the &'s don't force the real ones into memory. */
2833 YYSTYPE *yyvs1 = yyvs;
2834 short *yyss1 = yyss;
2836 YYLTYPE *yyls1 = yyls;
2839 /* Get the current used size of the three stacks, in elements. */
2840 int size = yyssp - yyss + 1;
2843 /* Each stack pointer address is followed by the size of
2844 the data in use in that stack, in bytes. */
2846 /* This used to be a conditional around just the two extra args,
2847 but that might be undefined if yyoverflow is a macro. */
2848 yyoverflow("parser stack overflow",
2849 &yyss1, size * sizeof (*yyssp),
2850 &yyvs1, size * sizeof (*yyvsp),
2851 &yyls1, size * sizeof (*yylsp),
2854 yyoverflow("parser stack overflow",
2855 &yyss1, size * sizeof (*yyssp),
2856 &yyvs1, size * sizeof (*yyvsp),
2860 yyss = yyss1; yyvs = yyvs1;
2864 #else /* no yyoverflow */
2865 /* Extend the stack our own way. */
2866 if (yystacksize >= YYMAXDEPTH)
2868 yyerror("parser stack overflow");
2872 if (yystacksize > YYMAXDEPTH)
2873 yystacksize = YYMAXDEPTH;
2874 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
2875 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
2876 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
2877 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
2879 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
2880 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
2882 #endif /* no yyoverflow */
2884 yyssp = yyss + size - 1;
2885 yyvsp = yyvs + size - 1;
2887 yylsp = yyls + size - 1;
2892 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2895 if (yyssp >= yyss + yystacksize - 1)
2901 fprintf(stderr, "Entering state %d\n", yystate);
2907 /* Do appropriate processing given the current state. */
2908 /* Read a lookahead token if we need one and don't already have one. */
2911 /* First try to decide what to do without reference to lookahead token. */
2913 yyn = yypact[yystate];
2917 /* Not known => get a lookahead token if don't already have one. */
2919 /* yychar is either YYEMPTY or YYEOF
2920 or a valid token in external form. */
2922 if (yychar == YYEMPTY)
2926 fprintf(stderr, "Reading a token: ");
2931 /* Convert token to internal form (in yychar1) for indexing tables with */
2933 if (yychar <= 0) /* This means end of input. */
2936 yychar = YYEOF; /* Don't call YYLEX any more */
2940 fprintf(stderr, "Now at end of input.\n");
2945 yychar1 = YYTRANSLATE(yychar);
2950 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2951 /* Give the individual parser a way to print the precise meaning
2952 of a token, for further debugging info. */
2954 YYPRINT (stderr, yychar, yylval);
2956 fprintf (stderr, ")\n");
2962 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2967 /* yyn is what to do for this token type in this state.
2968 Negative => reduce, -yyn is rule number.
2969 Positive => shift, yyn is new state.
2970 New state is final state => don't bother to shift,
2971 just return success.
2972 0, or most negative number => error. */
2987 /* Shift the lookahead token. */
2991 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2994 /* Discard the token being shifted unless it is eof. */
2995 if (yychar != YYEOF)
3003 /* count tokens shifted since error; after three, turn off error status. */
3004 if (yyerrstatus) yyerrstatus--;
3009 /* Do the default action for the current state. */
3012 yyn = yydefact[yystate];
3016 /* Do a reduction. yyn is the number of a rule to reduce with. */
3020 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3027 fprintf (stderr, "Reducing via rule %d (line %d), ",
3030 /* Print the symbols being reduced, and their result. */
3031 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3032 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3033 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3041 #line 249 "cgrammar.y"
3042 { uentry_clearDecl (); ;
3045 #line 250 "cgrammar.y"
3046 { uentry_clearDecl (); ;
3049 #line 251 "cgrammar.y"
3050 { uentry_clearDecl (); ;
3053 #line 252 "cgrammar.y"
3054 { uentry_clearDecl (); ;
3057 #line 253 "cgrammar.y"
3058 { uentry_clearDecl (); ;
3061 #line 254 "cgrammar.y"
3062 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3065 #line 255 "cgrammar.y"
3066 { uentry_clearDecl (); ;
3069 #line 259 "cgrammar.y"
3070 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3073 #line 261 "cgrammar.y"
3074 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3077 #line 264 "cgrammar.y"
3078 { context_enterFunctionDecl (); ;
3081 #line 265 "cgrammar.y"
3082 { declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3083 context_exitFunctionDecl (); ;
3086 #line 270 "cgrammar.y"
3088 qtype qint = qtype_create (ctype_int);
3089 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3094 #line 276 "cgrammar.y"
3095 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3098 #line 281 "cgrammar.y"
3099 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3102 #line 284 "cgrammar.y"
3103 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3106 #line 286 "cgrammar.y"
3107 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3110 #line 288 "cgrammar.y"
3111 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3114 #line 290 "cgrammar.y"
3116 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), exprNode_getLongValue (yyvsp[-2].expr)));
3120 #line 294 "cgrammar.y"
3121 { setCurrentParams (uentryList_missingParams);
3125 #line 297 "cgrammar.y"
3126 { /* need to support globals and modifies here! */
3127 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp),
3128 uentryList_makeMissingParams ());
3130 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ct);
3135 #line 305 "cgrammar.y"
3136 { setCurrentParams (yyvsp[-1].entrylist);
3140 #line 308 "cgrammar.y"
3141 { clearCurrentParams ();
3142 yyval.ntyp = idDecl_replaceCtype (yyvsp[-7].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-7].ntyp), yyvsp[-4].entrylist));
3147 #line 314 "cgrammar.y"
3148 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3151 #line 316 "cgrammar.y"
3152 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3155 #line 318 "cgrammar.y"
3156 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3159 #line 320 "cgrammar.y"
3163 if (exprNode_hasValue (yyvsp[-2].expr)
3164 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3166 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3173 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3177 #line 336 "cgrammar.y"
3178 { setCurrentParams (uentryList_missingParams);
3182 #line 339 "cgrammar.y"
3183 { /* need to support globals and modifies here! */
3184 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3185 uentryList_makeMissingParams ());
3187 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3192 #line 347 "cgrammar.y"
3193 { setCurrentParams (yyvsp[-1].entrylist);
3197 #line 350 "cgrammar.y"
3198 { clearCurrentParams ();
3199 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3204 #line 357 "cgrammar.y"
3205 { setCurrentParams (yyvsp[-1].entrylist); ;
3208 #line 358 "cgrammar.y"
3209 { clearCurrentParams (); ;
3212 #line 359 "cgrammar.y"
3213 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3216 #line 362 "cgrammar.y"
3217 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3220 #line 363 "cgrammar.y"
3221 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3224 #line 364 "cgrammar.y"
3225 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3228 #line 365 "cgrammar.y"
3229 { exprChecks_checkEmptyMacroBody (); ;
3232 #line 368 "cgrammar.y"
3233 { declareFunction (yyvsp[0].ntyp); ;
3236 #line 371 "cgrammar.y"
3237 { setProcessingGlobMods (); ;
3240 #line 372 "cgrammar.y"
3241 { clearProcessingGlobMods (); ;
3244 #line 382 "cgrammar.y"
3245 { printf("doingoptGlobBufConstraintsAux \n"); ;
3248 #line 389 "cgrammar.y"
3249 { setProcessingGlobMods (); ;
3252 #line 390 "cgrammar.y"
3253 { clearProcessingGlobMods (); ;
3256 #line 405 "cgrammar.y"
3260 #line 406 "cgrammar.y"
3264 #line 409 "cgrammar.y"
3265 { globListAdd (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3268 #line 412 "cgrammar.y"
3269 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3272 #line 413 "cgrammar.y"
3273 { yyval.sr = globListUnrecognized (yyvsp[0].cname); ;
3276 #line 416 "cgrammar.y"
3277 { yyval.typequal = qual_createUndef (); ;
3280 #line 417 "cgrammar.y"
3281 { yyval.typequal = qual_createKilled (); ;
3284 #line 418 "cgrammar.y"
3285 { yyval.typequal = qual_createOut (); ;
3288 #line 419 "cgrammar.y"
3289 { yyval.typequal = qual_createIn (); ;
3292 #line 420 "cgrammar.y"
3293 { yyval.typequal = qual_createPartial (); ;
3296 #line 423 "cgrammar.y"
3297 { yyval.tquallist = qualList_undefined; ;
3300 #line 424 "cgrammar.y"
3301 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3304 #line 427 "cgrammar.y"
3305 { setProcessingGlobalsList (); ;
3308 #line 429 "cgrammar.y"
3309 { unsetProcessingGlobals (); ;
3312 #line 430 "cgrammar.y"
3313 { setProcessingGlobalsList (); ;
3316 #line 432 "cgrammar.y"
3317 { unsetProcessingGlobals (); ;
3320 #line 434 "cgrammar.y"
3321 { setFunctionNoGlobals ();
3322 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3326 #line 441 "cgrammar.y"
3327 { setProcessingGlobalsList (); ;
3330 #line 443 "cgrammar.y"
3331 { unsetProcessingGlobals (); ;
3334 #line 444 "cgrammar.y"
3335 { setProcessingGlobalsList (); ;
3338 #line 446 "cgrammar.y"
3339 { unsetProcessingGlobals (); ;
3342 #line 448 "cgrammar.y"
3343 { setFunctionNoGlobals ();
3344 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3348 #line 460 "cgrammar.y"
3350 context_setProtectVars (); enterParamsTemp ();
3351 sRef_setGlobalScopeSafe ();
3355 #line 465 "cgrammar.y"
3357 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3358 sRef_clearGlobalScopeSafe ();
3359 context_releaseVars ();
3363 #line 473 "cgrammar.y"
3365 context_setProtectVars (); enterParamsTemp ();
3366 sRef_setGlobalScopeSafe ();
3370 #line 478 "cgrammar.y"
3372 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3373 sRef_clearGlobalScopeSafe ();
3374 context_releaseVars ();
3378 #line 502 "cgrammar.y"
3379 { yyval.sck = SP_ISONLY; ;
3382 #line 503 "cgrammar.y"
3383 { yyval.sck = SP_ISOBSERVER; ;
3386 #line 504 "cgrammar.y"
3387 { yyval.sck = SP_ISEXPOSED; ;
3390 #line 505 "cgrammar.y"
3391 { yyval.sck = SP_ISDEPENDENT; ;
3394 #line 506 "cgrammar.y"
3395 { yyval.sck = SP_ISOWNED; ;
3398 #line 507 "cgrammar.y"
3399 { yyval.sck = SP_ISSHARED; ;
3402 #line 508 "cgrammar.y"
3403 { yyval.sck = SP_ISNULL; ;
3406 #line 509 "cgrammar.y"
3407 { yyval.sck = SP_ISNOTNULL; ;
3410 #line 513 "cgrammar.y"
3412 context_setProtectVars ();
3414 sRef_setGlobalScopeSafe ();
3418 #line 519 "cgrammar.y"
3420 setFunctionSpecialClause (yyvsp[-6].tok, yyvsp[-3].srset, yyvsp[-1].tok);
3422 sRef_clearGlobalScopeSafe ();
3423 context_releaseVars ();
3427 #line 526 "cgrammar.y"
3429 context_setProtectVars ();
3431 sRef_setGlobalScopeSafe ();
3435 #line 532 "cgrammar.y"
3437 setFunctionStateSpecialClause (yyvsp[-7].tok, yyvsp[-5].sck, yyvsp[-3].srset, yyvsp[-1].tok);
3439 sRef_clearGlobalScopeSafe ();
3440 context_releaseVars ();
3444 #line 541 "cgrammar.y"
3446 qtype qint = qtype_create (ctype_int);
3447 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3452 #line 547 "cgrammar.y"
3453 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3456 #line 550 "cgrammar.y"
3457 { checkDoneParams (); context_enterInnerContext (); ;
3460 #line 552 "cgrammar.y"
3462 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3463 context_exitInner (yyvsp[0].expr);
3467 #line 557 "cgrammar.y"
3468 { doneParams (); context_enterInnerContext (); ;
3471 #line 559 "cgrammar.y"
3473 context_exitInner (yyvsp[0].expr);
3474 exprNode_checkFunctionBody (yyvsp[0].expr);
3475 yyval.expr = yyvsp[0].expr; /* old style */
3479 #line 567 "cgrammar.y"
3481 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3482 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3485 context_exitFunction ();
3489 #line 576 "cgrammar.y"
3490 { yyval.srset = yyvsp[-2].srset; ;
3493 #line 577 "cgrammar.y"
3494 { yyval.srset = sRefSet_new (); ;
3497 #line 580 "cgrammar.y"
3498 { yyval.srset = yyvsp[-1].srset; ;
3501 #line 581 "cgrammar.y"
3502 { yyval.srset = sRefSet_new (); ;
3505 #line 584 "cgrammar.y"
3506 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3509 #line 585 "cgrammar.y"
3510 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3513 #line 586 "cgrammar.y"
3514 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3517 #line 587 "cgrammar.y"
3518 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3521 #line 588 "cgrammar.y"
3522 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3525 #line 589 "cgrammar.y"
3526 { yyval.sr = yyvsp[-1].sr; ;
3529 #line 590 "cgrammar.y"
3530 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3533 #line 591 "cgrammar.y"
3534 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3537 #line 595 "cgrammar.y"
3538 { yyval.sr = yyvsp[0].sr; ;
3541 #line 596 "cgrammar.y"
3542 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3545 #line 600 "cgrammar.y"
3546 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3549 #line 601 "cgrammar.y"
3550 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3553 #line 605 "cgrammar.y"
3554 { yyval.sr = checkSpecClausesId (yyvsp[0].entry); ;
3557 #line 607 "cgrammar.y"
3558 { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
3561 #line 608 "cgrammar.y"
3562 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3565 #line 609 "cgrammar.y"
3566 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3569 #line 610 "cgrammar.y"
3570 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3573 #line 611 "cgrammar.y"
3574 { yyval.sr = yyvsp[-1].sr; ;
3577 #line 612 "cgrammar.y"
3578 { cstring_markOwned (yyvsp[0].cname);
3579 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3582 #line 614 "cgrammar.y"
3583 { cstring_markOwned (yyvsp[0].cname);
3584 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3587 #line 619 "cgrammar.y"
3588 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3589 else { yyval.srset = sRefSet_undefined; }
3593 #line 623 "cgrammar.y"
3594 { if (sRef_isValid (yyvsp[0].sr))
3596 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3600 yyval.srset = yyvsp[-2].srset;
3605 #line 634 "cgrammar.y"
3606 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3609 #line 635 "cgrammar.y"
3610 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3613 #line 636 "cgrammar.y"
3614 { yyval.expr = yyvsp[0].expr; ;
3617 #line 637 "cgrammar.y"
3618 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3621 #line 638 "cgrammar.y"
3622 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3625 #line 639 "cgrammar.y"
3626 { yyval.expr = exprNode_makeError (); ;
3629 #line 643 "cgrammar.y"
3630 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3633 #line 644 "cgrammar.y"
3634 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3637 #line 645 "cgrammar.y"
3638 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
3641 #line 646 "cgrammar.y"
3642 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3645 #line 647 "cgrammar.y"
3646 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3649 #line 648 "cgrammar.y"
3650 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3653 #line 649 "cgrammar.y"
3654 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3657 #line 650 "cgrammar.y"
3658 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3661 #line 653 "cgrammar.y"
3662 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
3665 #line 654 "cgrammar.y"
3666 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
3669 #line 658 "cgrammar.y"
3670 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3673 #line 659 "cgrammar.y"
3674 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3677 #line 660 "cgrammar.y"
3678 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3681 #line 661 "cgrammar.y"
3682 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3685 #line 662 "cgrammar.y"
3686 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3689 #line 663 "cgrammar.y"
3690 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3693 #line 664 "cgrammar.y"
3694 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3697 #line 665 "cgrammar.y"
3698 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3701 #line 666 "cgrammar.y"
3702 { yyval.expr = yyvsp[0].expr; ;
3705 #line 667 "cgrammar.y"
3706 { yyval.expr = yyvsp[0].expr; ;
3709 #line 670 "cgrammar.y"
3710 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3713 #line 671 "cgrammar.y"
3714 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3717 #line 675 "cgrammar.y"
3718 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3721 #line 678 "cgrammar.y"
3722 { context_setProtectVars (); ;
3725 #line 679 "cgrammar.y"
3726 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3729 #line 682 "cgrammar.y"
3730 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3733 #line 683 "cgrammar.y"
3734 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3737 #line 684 "cgrammar.y"
3738 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3741 #line 685 "cgrammar.y"
3742 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3745 #line 690 "cgrammar.y"
3746 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3749 #line 694 "cgrammar.y"
3750 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3753 #line 695 "cgrammar.y"
3754 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3757 #line 696 "cgrammar.y"
3758 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3761 #line 700 "cgrammar.y"
3762 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3765 #line 701 "cgrammar.y"
3766 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3769 #line 705 "cgrammar.y"
3770 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3773 #line 706 "cgrammar.y"
3774 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3777 #line 710 "cgrammar.y"
3778 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3781 #line 711 "cgrammar.y"
3782 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3785 #line 712 "cgrammar.y"
3786 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3789 #line 713 "cgrammar.y"
3790 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3793 #line 717 "cgrammar.y"
3794 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3797 #line 718 "cgrammar.y"
3798 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3801 #line 722 "cgrammar.y"
3802 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3805 #line 726 "cgrammar.y"
3806 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3809 #line 731 "cgrammar.y"
3810 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3813 #line 736 "cgrammar.y"
3814 { exprNode_produceGuards (yyvsp[-1].expr);
3815 context_enterAndClause (yyvsp[-1].expr);
3819 #line 740 "cgrammar.y"
3821 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3822 context_exitAndClause (yyval.expr, yyvsp[0].expr);
3826 #line 748 "cgrammar.y"
3828 exprNode_produceGuards (yyvsp[-1].expr);
3829 context_enterOrClause (yyvsp[-1].expr);
3833 #line 753 "cgrammar.y"
3835 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3836 context_exitOrClause (yyval.expr, yyvsp[0].expr);
3840 #line 760 "cgrammar.y"
3841 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3844 #line 761 "cgrammar.y"
3845 { context_enterFalseClause (yyvsp[-4].expr); ;
3848 #line 762 "cgrammar.y"
3849 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
3852 #line 766 "cgrammar.y"
3853 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3856 #line 767 "cgrammar.y"
3857 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3860 #line 768 "cgrammar.y"
3861 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3864 #line 769 "cgrammar.y"
3865 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3868 #line 770 "cgrammar.y"
3869 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3872 #line 771 "cgrammar.y"
3873 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3876 #line 772 "cgrammar.y"
3877 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3880 #line 773 "cgrammar.y"
3881 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3884 #line 774 "cgrammar.y"
3885 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3888 #line 775 "cgrammar.y"
3889 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3892 #line 776 "cgrammar.y"
3893 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3896 #line 780 "cgrammar.y"
3897 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
3900 #line 783 "cgrammar.y"
3901 { yyval.expr = exprNode_undefined; ;
3904 #line 792 "cgrammar.y"
3905 { yyval.expr = yyvsp[0].expr; ;
3908 #line 793 "cgrammar.y"
3909 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
3912 #line 794 "cgrammar.y"
3913 { yyval.expr = exprNode_makeError (); ;
3916 #line 797 "cgrammar.y"
3917 { yyval.expr = exprNode_makeError (); ;
3920 #line 811 "cgrammar.y"
3922 setProcessingVars (yyvsp[-3].qtyp);
3923 processNamedDecl (yyvsp[-1].ntyp); ;
3926 #line 814 "cgrammar.y"
3927 { unsetProcessingVars (); yyval.expr = yyvsp[-2].expr; ;
3930 #line 816 "cgrammar.y"
3931 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp);
3935 #line 819 "cgrammar.y"
3936 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
3937 unsetProcessingVars ();
3941 #line 823 "cgrammar.y"
3942 { processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeError (); ;
3945 #line 824 "cgrammar.y"
3946 { processNamedDecl (yyvsp[-2].ntyp); ;
3949 #line 825 "cgrammar.y"
3950 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
3953 #line 829 "cgrammar.y"
3954 { setProcessingTypedef (yyvsp[0].qtyp); ;
3957 #line 830 "cgrammar.y"
3958 { unsetProcessingTypedef (); ;
3961 #line 831 "cgrammar.y"
3962 { /* in the ANSI grammar, semantics unclear */ ;
3965 #line 832 "cgrammar.y"
3966 { /* in the ANSI grammar, semantics unclear */ ;
3969 #line 835 "cgrammar.y"
3970 { g_expectingTypeName = TRUE; ;
3973 #line 838 "cgrammar.y"
3974 { g_expectingTypeName = TRUE; context_pushLoc (); ;
3977 #line 841 "cgrammar.y"
3981 #line 844 "cgrammar.y"
3985 #line 845 "cgrammar.y"
3989 #line 848 "cgrammar.y"
3990 { yyval.expr = exprNode_makeError (); ;
3993 #line 849 "cgrammar.y"
3994 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
3997 #line 852 "cgrammar.y"
3998 { yyval.expr = yyvsp[0].expr; ;
4001 #line 853 "cgrammar.y"
4002 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].alist); ;
4005 #line 854 "cgrammar.y"
4006 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].alist); ;
4009 #line 859 "cgrammar.y"
4010 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
4013 #line 861 "cgrammar.y"
4014 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
4017 #line 869 "cgrammar.y"
4018 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4021 #line 870 "cgrammar.y"
4022 { yyval.typequal = qual_createInline (); ;
4025 #line 871 "cgrammar.y"
4026 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4029 #line 872 "cgrammar.y"
4030 { yyval.typequal = qual_createAuto (); ;
4033 #line 873 "cgrammar.y"
4034 { yyval.typequal = qual_createRegister (); ;
4037 #line 876 "cgrammar.y"
4038 { yyval.typequal = qual_createConst (); ;
4041 #line 877 "cgrammar.y"
4042 { yyval.typequal = qual_createVolatile (); ;
4045 #line 878 "cgrammar.y"
4046 { yyval.typequal = qual_createOut (); ;
4049 #line 879 "cgrammar.y"
4050 { yyval.typequal = qual_createIn (); ;
4053 #line 880 "cgrammar.y"
4054 { yyval.typequal = qual_createPartial (); ;
4057 #line 881 "cgrammar.y"
4058 { yyval.typequal = qual_createSpecial (); ;
4061 #line 882 "cgrammar.y"
4062 { yyval.typequal = qual_createOwned (); ;
4065 #line 883 "cgrammar.y"
4066 { yyval.typequal = qual_createDependent (); ;
4069 #line 884 "cgrammar.y"
4070 { yyval.typequal = qual_createYield (); ;
4073 #line 885 "cgrammar.y"
4074 { yyval.typequal = qual_createTemp (); ;
4077 #line 886 "cgrammar.y"
4078 { yyval.typequal = qual_createOnly (); ;
4081 #line 887 "cgrammar.y"
4082 { yyval.typequal = qual_createKeep (); ;
4085 #line 888 "cgrammar.y"
4086 { yyval.typequal = qual_createKept (); ;
4089 #line 889 "cgrammar.y"
4090 { yyval.typequal = qual_createShared (); ;
4093 #line 890 "cgrammar.y"
4094 { yyval.typequal = qual_createUnique (); ;
4097 #line 891 "cgrammar.y"
4098 { yyval.typequal = qual_createExits (); ;
4101 #line 892 "cgrammar.y"
4102 { yyval.typequal = qual_createMayExit (); ;
4105 #line 893 "cgrammar.y"
4106 { yyval.typequal = qual_createTrueExit (); ;
4109 #line 894 "cgrammar.y"
4110 { yyval.typequal = qual_createFalseExit (); ;
4113 #line 895 "cgrammar.y"
4114 { yyval.typequal = qual_createNeverExit (); ;
4117 #line 896 "cgrammar.y"
4118 { yyval.typequal = qual_createNull (); ;
4121 #line 897 "cgrammar.y"
4122 { yyval.typequal = qual_createRelNull (); ;
4125 #line 898 "cgrammar.y"
4126 { yyval.typequal = qual_createReturned (); ;
4129 #line 899 "cgrammar.y"
4130 { yyval.typequal = qual_createExposed (); ;
4133 #line 900 "cgrammar.y"
4134 { yyval.typequal = qual_createObserver (); ;
4137 #line 901 "cgrammar.y"
4138 { yyval.typequal = qual_createChecked (); ;
4141 #line 902 "cgrammar.y"
4142 { yyval.typequal = qual_createCheckMod (); ;
4145 #line 903 "cgrammar.y"
4146 { yyval.typequal = qual_createUnchecked (); ;
4149 #line 904 "cgrammar.y"
4150 { yyval.typequal = qual_createCheckedStrict (); ;
4153 #line 905 "cgrammar.y"
4154 { yyval.typequal = qual_createTrueNull (); ;
4157 #line 906 "cgrammar.y"
4158 { yyval.typequal = qual_createFalseNull (); ;
4161 #line 907 "cgrammar.y"
4162 { yyval.typequal = qual_createUnused (); ;
4165 #line 908 "cgrammar.y"
4166 { yyval.typequal = qual_createExternal (); ;
4169 #line 909 "cgrammar.y"
4170 { yyval.typequal = qual_createSef (); ;
4173 #line 910 "cgrammar.y"
4174 { yyval.typequal = qual_createAbstract (); ;
4177 #line 911 "cgrammar.y"
4178 { yyval.typequal = qual_createConcrete (); ;
4181 #line 912 "cgrammar.y"
4182 { yyval.typequal = qual_createMutable (); ;
4185 #line 913 "cgrammar.y"
4186 { yyval.typequal = qual_createImmutable (); ;
4189 #line 914 "cgrammar.y"
4190 { yyval.typequal = qual_createNotNull (); ;
4193 #line 915 "cgrammar.y"
4194 { yyval.typequal = qual_createRefCounted (); ;
4197 #line 916 "cgrammar.y"
4198 { yyval.typequal = qual_createRefs (); ;
4201 #line 917 "cgrammar.y"
4202 { yyval.typequal = qual_createKillRef (); ;
4205 #line 918 "cgrammar.y"
4206 { yyval.typequal = qual_createRelDef (); ;
4209 #line 919 "cgrammar.y"
4210 { yyval.typequal = qual_createNewRef (); ;
4213 #line 920 "cgrammar.y"
4214 { yyval.typequal = qual_createTempRef (); ;
4217 #line 921 "cgrammar.y"
4218 { yyval.typequal = qual_createNullTerminated (); ;
4221 #line 927 "cgrammar.y"
4222 { yyval.typequal = qual_createShort (); ;
4225 #line 928 "cgrammar.y"
4226 { yyval.typequal = qual_createLong (); ;
4229 #line 929 "cgrammar.y"
4230 { yyval.typequal = qual_createSigned (); ;
4233 #line 930 "cgrammar.y"
4234 { yyval.typequal = qual_createUnsigned (); ;
4237 #line 939 "cgrammar.y"
4238 { yyval.ctyp = ctype_unknown; ;
4241 #line 940 "cgrammar.y"
4242 { yyval.ctyp = ctype_anyintegral; ;
4245 #line 941 "cgrammar.y"
4246 { yyval.ctyp = ctype_unsignedintegral; ;
4249 #line 942 "cgrammar.y"
4250 { yyval.ctyp = ctype_signedintegral; ;
4253 #line 946 "cgrammar.y"
4254 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4257 #line 950 "cgrammar.y"
4258 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4261 #line 953 "cgrammar.y"
4262 { yyval.qtyp = yyvsp[0].qtyp; ;
4265 #line 955 "cgrammar.y"
4266 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4269 #line 960 "cgrammar.y"
4270 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4273 #line 963 "cgrammar.y"
4274 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4277 #line 964 "cgrammar.y"
4278 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4281 #line 965 "cgrammar.y"
4282 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4285 #line 968 "cgrammar.y"
4286 { yyval.qtyp = qtype_unknown (); ;
4289 #line 969 "cgrammar.y"
4290 { yyval.qtyp = yyvsp[0].qtyp; ;
4293 #line 972 "cgrammar.y"
4294 { sRef_setGlobalScopeSafe (); ;
4297 #line 974 "cgrammar.y"
4298 { sRef_clearGlobalScopeSafe (); ;
4301 #line 976 "cgrammar.y"
4302 { yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ;
4305 #line 977 "cgrammar.y"
4306 { sRef_setGlobalScopeSafe (); ;
4309 #line 979 "cgrammar.y"
4310 { sRef_clearGlobalScopeSafe (); ;
4313 #line 981 "cgrammar.y"
4314 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4317 #line 983 "cgrammar.y"
4318 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4321 #line 985 "cgrammar.y"
4322 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4325 #line 986 "cgrammar.y"
4326 { sRef_setGlobalScopeSafe (); ;
4329 #line 988 "cgrammar.y"
4330 { sRef_clearGlobalScopeSafe (); ;
4333 #line 990 "cgrammar.y"
4334 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4337 #line 991 "cgrammar.y"
4338 { sRef_setGlobalScopeSafe (); ;
4341 #line 993 "cgrammar.y"
4342 { sRef_clearGlobalScopeSafe (); ;
4345 #line 995 "cgrammar.y"
4346 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4349 #line 997 "cgrammar.y"
4350 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4353 #line 999 "cgrammar.y"
4354 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4357 #line 1000 "cgrammar.y"
4358 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4361 #line 1001 "cgrammar.y"
4362 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4365 #line 1004 "cgrammar.y"
4366 { g_expectingTypeName = FALSE; ;
4369 #line 1008 "cgrammar.y"
4370 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4373 #line 1009 "cgrammar.y"
4374 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4377 #line 1013 "cgrammar.y"
4378 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4381 #line 1015 "cgrammar.y"
4382 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4385 #line 1019 "cgrammar.y"
4386 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4389 #line 1021 "cgrammar.y"
4390 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4393 #line 1024 "cgrammar.y"
4394 { yyval.ntyp = yyvsp[0].ntyp; ;
4397 #line 1025 "cgrammar.y"
4398 { yyval.ntyp = idDecl_undefined; ;
4401 #line 1026 "cgrammar.y"
4402 { yyval.ntyp = yyvsp[-3].ntyp; ;
4405 #line 1031 "cgrammar.y"
4406 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4409 #line 1032 "cgrammar.y"
4410 { context_pushLoc (); ;
4413 #line 1033 "cgrammar.y"
4414 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4417 #line 1034 "cgrammar.y"
4418 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4421 #line 1038 "cgrammar.y"
4422 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4425 #line 1040 "cgrammar.y"
4426 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4429 #line 1045 "cgrammar.y"
4430 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4431 usymtab_supGlobalEntry (ue);
4432 yyval.cname = yyvsp[0].cname;
4436 #line 1050 "cgrammar.y"
4437 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4438 usymtab_supGlobalEntry (ue);
4439 yyval.cname = yyvsp[-3].cname;
4443 #line 1057 "cgrammar.y"
4444 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4447 #line 1059 "cgrammar.y"
4449 qtype qt = qtype_unknown ();
4451 qtype_adjustPointers (yyvsp[-1].count, qt);
4452 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4456 #line 1066 "cgrammar.y"
4457 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4460 #line 1071 "cgrammar.y"
4461 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4464 #line 1074 "cgrammar.y"
4465 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4468 #line 1075 "cgrammar.y"
4469 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4472 #line 1078 "cgrammar.y"
4473 { /* ignored for now */; ;
4476 #line 1079 "cgrammar.y"
4480 #line 1082 "cgrammar.y"
4484 #line 1083 "cgrammar.y"
4488 #line 1086 "cgrammar.y"
4489 { yyval.count = 1; ;
4492 #line 1087 "cgrammar.y"
4493 { yyval.count = 1; ;
4496 #line 1088 "cgrammar.y"
4497 { yyval.count = 1 + yyvsp[0].count; ;
4500 #line 1089 "cgrammar.y"
4501 { yyval.count = 1 + yyvsp[0].count; ;
4504 #line 1093 "cgrammar.y"
4505 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4508 #line 1096 "cgrammar.y"
4509 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4512 #line 1097 "cgrammar.y"
4513 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4516 #line 1100 "cgrammar.y"
4517 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4520 #line 1102 "cgrammar.y"
4521 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4524 #line 1105 "cgrammar.y"
4528 #line 1105 "cgrammar.y"
4529 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4532 #line 1106 "cgrammar.y"
4536 #line 1107 "cgrammar.y"
4537 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4540 #line 1111 "cgrammar.y"
4542 if (isFlipOldStyle ())
4544 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4550 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4554 #line 1123 "cgrammar.y"
4556 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4560 llparseerror (message ("Inconsistent function parameter syntax: %q",
4561 idDecl_unparse (tparam)));
4565 yyval.oentry = makeCurrentParam (tparam);
4566 idDecl_free (tparam);
4570 #line 1139 "cgrammar.y"
4571 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4574 #line 1142 "cgrammar.y"
4575 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4578 #line 1144 "cgrammar.y"
4579 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4582 #line 1147 "cgrammar.y"
4583 { yyval.ctyp = ctype_unknown; ;
4586 #line 1152 "cgrammar.y"
4587 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4590 #line 1153 "cgrammar.y"
4591 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4594 #line 1155 "cgrammar.y"
4595 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4598 #line 1156 "cgrammar.y"
4599 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4602 #line 1158 "cgrammar.y"
4603 { yyval.ctyp = ctype_makeFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4606 #line 1160 "cgrammar.y"
4607 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4610 #line 1162 "cgrammar.y"
4611 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4614 #line 1164 "cgrammar.y"
4615 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4618 #line 1166 "cgrammar.y"
4619 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4622 #line 1181 "cgrammar.y"
4623 {yyval.expr = yyvsp[0].expr; printf ("Doing stmt lclintassertion\n"); ;
4626 #line 1185 "cgrammar.y"
4627 { printf(" QSETBUFFERSIZE id CCONSTANT HEllo World\n"); uentry_setBufferSize(yyvsp[-2].entry, yyvsp[-1].expr); yyval.expr = exprNode_createTok (yyvsp[0].tok);
4631 #line 1187 "cgrammar.y"
4632 { printf(" QSETSTRINGLENGTH id CCONSTANT HEllo World\n"); uentry_setStringLength(yyvsp[-2].entry, yyvsp[-1].expr); yyval.expr = exprNode_createTok (yyvsp[0].tok);
4636 #line 1189 "cgrammar.y"
4637 {printf(" QTESTINRANGE\n"); uentry_testInRange(yyvsp[-2].entry, yyvsp[-1].expr); yyval.expr = exprNode_createTok (yyvsp[0].tok);
4641 #line 1195 "cgrammar.y"
4642 { yyval.expr = exprNode_labelMarker (yyvsp[0].cname); ;
4645 #line 1200 "cgrammar.y"
4646 { yyval.expr = yyvsp[0].expr; ;
4649 #line 1208 "cgrammar.y"
4650 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4653 #line 1212 "cgrammar.y"
4654 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4657 #line 1214 "cgrammar.y"
4658 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4661 #line 1216 "cgrammar.y"
4662 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4665 #line 1218 "cgrammar.y"
4666 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4669 #line 1222 "cgrammar.y"
4670 { context_setProtectVars (); ;
4673 #line 1222 "cgrammar.y"
4674 { context_sizeofReleaseVars (); ;
4677 #line 1224 "cgrammar.y"
4678 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4679 context_enterForClause (yyvsp[-5].expr); ;
4682 #line 1229 "cgrammar.y"
4683 { setProcessingIterVars (yyvsp[-2].entry); ;
4686 #line 1231 "cgrammar.y"
4687 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].alist); ;
4690 #line 1232 "cgrammar.y"
4691 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4694 #line 1238 "cgrammar.y"
4695 { yyval.expr = yyvsp[0].expr; ;
4698 #line 1246 "cgrammar.y"
4699 { yyval.expr = yyvsp[-1].expr; ;
4702 #line 1247 "cgrammar.y"
4703 { yyval.expr = exprNode_makeError (); ;
4706 #line 1251 "cgrammar.y"
4707 { /* don't: context_exitTrueClause ($1, $2); */
4708 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4712 #line 1256 "cgrammar.y"
4713 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4716 #line 1259 "cgrammar.y"
4717 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4720 #line 1274 "cgrammar.y"
4721 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4724 #line 1276 "cgrammar.y"
4725 { yyval.expr = exprNode_makeError (); ;
4728 #line 1279 "cgrammar.y"
4729 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
4732 #line 1280 "cgrammar.y"
4733 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4736 #line 1286 "cgrammar.y"
4737 { context_enterCaseClause (yyvsp[0].expr); ;
4740 #line 1287 "cgrammar.y"
4741 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4744 #line 1288 "cgrammar.y"
4745 { context_enterCaseClause (yyvsp[0].expr); ;
4748 #line 1289 "cgrammar.y"
4749 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4752 #line 1292 "cgrammar.y"
4753 { context_enterCaseClause (exprNode_undefined); ;
4756 #line 1293 "cgrammar.y"
4757 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
4760 #line 1294 "cgrammar.y"
4761 { context_enterCaseClause (exprNode_undefined); ;
4764 #line 1295 "cgrammar.y"
4765 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
4768 #line 1298 "cgrammar.y"
4769 { yyval.expr = yyvsp[-1].expr; ;
4772 #line 1300 "cgrammar.y"
4773 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4776 #line 1303 "cgrammar.y"
4777 { yyval.expr = yyvsp[-1].expr; ;
4780 #line 1306 "cgrammar.y"
4781 { context_enterInnerContext (); ;
4784 #line 1309 "cgrammar.y"
4785 { context_exitInnerPlain (); ;
4788 #line 1312 "cgrammar.y"
4789 { context_enterStructInnerContext (); ;
4792 #line 1315 "cgrammar.y"
4793 { context_exitStructInnerContext (); ;
4796 #line 1318 "cgrammar.y"
4797 { context_exitInnerSafe (); ;
4800 #line 1321 "cgrammar.y"
4801 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4804 #line 1322 "cgrammar.y"
4805 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4808 #line 1323 "cgrammar.y"
4809 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4812 #line 1325 "cgrammar.y"
4813 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4816 #line 1326 "cgrammar.y"
4817 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4820 #line 1328 "cgrammar.y"
4821 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4824 #line 1330 "cgrammar.y"
4825 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4828 #line 1332 "cgrammar.y"
4829 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
4830 lltok_getLoc (yyvsp[-1].tok)));
4834 #line 1339 "cgrammar.y"
4835 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
4838 #line 1343 "cgrammar.y"
4839 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4842 #line 1345 "cgrammar.y"
4843 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4846 #line 1347 "cgrammar.y"
4847 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4850 #line 1349 "cgrammar.y"
4851 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4854 #line 1353 "cgrammar.y"
4855 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4858 #line 1356 "cgrammar.y"
4859 { yyval.expr = yyvsp[0].expr; ;
4862 #line 1357 "cgrammar.y"
4863 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4866 #line 1360 "cgrammar.y"
4867 { yyval.expr = yyvsp[0].expr; ;
4870 #line 1361 "cgrammar.y"
4871 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4874 #line 1364 "cgrammar.y"
4875 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4878 #line 1365 "cgrammar.y"
4879 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4882 #line 1368 "cgrammar.y"
4883 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4886 #line 1369 "cgrammar.y"
4887 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4890 #line 1370 "cgrammar.y"
4891 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
4894 #line 1374 "cgrammar.y"
4895 { yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4898 #line 1382 "cgrammar.y"
4900 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
4901 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4905 #line 1386 "cgrammar.y"
4906 { context_enterFalseClause (yyvsp[-2].expr); ;
4909 #line 1387 "cgrammar.y"
4911 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4912 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4916 #line 1391 "cgrammar.y"
4917 { context_enterSwitch (yyvsp[0].expr); ;
4920 #line 1392 "cgrammar.y"
4921 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
4924 #line 1396 "cgrammar.y"
4925 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
4928 #line 1400 "cgrammar.y"
4929 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
4932 #line 1403 "cgrammar.y"
4933 { context_enterIterClause (); ;
4936 #line 1404 "cgrammar.y"
4937 { setProcessingIterVars (yyvsp[-3].entry); ;
4940 #line 1407 "cgrammar.y"
4942 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].alist, yyvsp[-2].expr, yyvsp[-1].entry);
4947 #line 1413 "cgrammar.y"
4948 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
4951 #line 1414 "cgrammar.y"
4952 { nextIterParam (); ;
4955 #line 1415 "cgrammar.y"
4956 { yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ;
4959 #line 1418 "cgrammar.y"
4960 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
4963 #line 1419 "cgrammar.y"
4964 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
4967 #line 1420 "cgrammar.y"
4968 { uentry ue = coerceIterId (yyvsp[0].cname);
4970 if (uentry_isValid (ue))
4972 yyval.expr = exprNode_iterId (ue);
4976 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
4981 #line 1431 "cgrammar.y"
4982 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
4985 #line 1439 "cgrammar.y"
4986 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4989 #line 1443 "cgrammar.y"
4990 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4993 #line 1444 "cgrammar.y"
4994 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4997 #line 1445 "cgrammar.y"
4998 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
5001 #line 1447 "cgrammar.y"
5002 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
5005 #line 1448 "cgrammar.y"
5006 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
5009 #line 1449 "cgrammar.y"
5010 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
5013 #line 1450 "cgrammar.y"
5014 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5017 #line 1451 "cgrammar.y"
5018 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5021 #line 1455 "cgrammar.y"
5022 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5025 #line 1456 "cgrammar.y"
5026 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5029 #line 1457 "cgrammar.y"
5030 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5033 #line 1458 "cgrammar.y"
5034 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5037 #line 1459 "cgrammar.y"
5038 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5041 #line 1460 "cgrammar.y"
5042 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5045 #line 1461 "cgrammar.y"
5046 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5049 #line 1462 "cgrammar.y"
5050 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5053 #line 1463 "cgrammar.y"
5054 { yyval.expr = yyvsp[0].expr; ;
5057 #line 1467 "cgrammar.y"
5058 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
5061 #line 1471 "cgrammar.y"
5062 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5065 #line 1472 "cgrammar.y"
5066 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5069 #line 1473 "cgrammar.y"
5070 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5073 #line 1477 "cgrammar.y"
5074 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5077 #line 1478 "cgrammar.y"
5078 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5081 #line 1482 "cgrammar.y"
5082 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5085 #line 1483 "cgrammar.y"
5086 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5089 #line 1487 "cgrammar.y"
5090 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5093 #line 1488 "cgrammar.y"
5094 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5097 #line 1489 "cgrammar.y"
5098 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5101 #line 1490 "cgrammar.y"
5102 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5105 #line 1494 "cgrammar.y"
5106 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5109 #line 1495 "cgrammar.y"
5110 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5113 #line 1499 "cgrammar.y"
5114 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5117 #line 1503 "cgrammar.y"
5118 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5121 #line 1508 "cgrammar.y"
5122 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5125 #line 1512 "cgrammar.y"
5126 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5129 #line 1516 "cgrammar.y"
5130 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5133 #line 1520 "cgrammar.y"
5134 { context_enterTrueClause (yyvsp[-1].expr); ;
5137 #line 1521 "cgrammar.y"
5138 { context_enterFalseClause (yyvsp[-4].expr); ;
5141 #line 1522 "cgrammar.y"
5142 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5145 #line 1526 "cgrammar.y"
5146 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5149 #line 1527 "cgrammar.y"
5150 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5153 #line 1528 "cgrammar.y"
5154 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5157 #line 1529 "cgrammar.y"
5158 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5161 #line 1530 "cgrammar.y"
5162 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5165 #line 1531 "cgrammar.y"
5166 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5169 #line 1532 "cgrammar.y"
5170 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5173 #line 1533 "cgrammar.y"
5174 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5177 #line 1534 "cgrammar.y"
5178 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5181 #line 1535 "cgrammar.y"
5182 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5185 #line 1536 "cgrammar.y"
5186 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5189 #line 1539 "cgrammar.y"
5190 { yyval.entry = yyvsp[0].entry; ;
5193 #line 1540 "cgrammar.y"
5194 { yyval.entry = uentry_undefined; ;
5197 #line 1543 "cgrammar.y"
5198 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5201 #line 1547 "cgrammar.y"
5202 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5205 #line 1549 "cgrammar.y"
5206 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5209 #line 1551 "cgrammar.y"
5210 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5213 #line 1554 "cgrammar.y"
5214 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5217 #line 1556 "cgrammar.y"
5218 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5221 #line 1558 "cgrammar.y"
5222 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5225 #line 1559 "cgrammar.y"
5226 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5229 #line 1562 "cgrammar.y"
5230 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5233 #line 1563 "cgrammar.y"
5234 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5237 #line 1565 "cgrammar.y"
5238 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5241 #line 1566 "cgrammar.y"
5242 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5245 #line 1567 "cgrammar.y"
5246 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5249 #line 1568 "cgrammar.y"
5250 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5253 #line 1569 "cgrammar.y"
5254 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5257 #line 1570 "cgrammar.y"
5258 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5261 #line 1571 "cgrammar.y"
5262 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5265 #line 1572 "cgrammar.y"
5266 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5269 #line 1576 "cgrammar.y"
5273 #line 1583 "cgrammar.y"
5274 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5277 #line 1584 "cgrammar.y"
5278 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5281 #line 1585 "cgrammar.y"
5282 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5285 #line 1586 "cgrammar.y"
5286 { yyval.cname = yyvsp[0].cname; ;
5289 #line 1590 "cgrammar.y"
5290 { yyval.ctyp = ctype_unknown; ;
5293 /* the action file gets copied in in place of this dollarsign */
5294 #line 498 "/gnu/share/bison.simple"
5305 short *ssp1 = yyss - 1;
5306 fprintf (stderr, "state stack now");
5307 while (ssp1 != yyssp)
5308 fprintf (stderr, " %d", *++ssp1);
5309 fprintf (stderr, "\n");
5319 yylsp->first_line = yylloc.first_line;
5320 yylsp->first_column = yylloc.first_column;
5321 yylsp->last_line = (yylsp-1)->last_line;
5322 yylsp->last_column = (yylsp-1)->last_column;
5327 yylsp->last_line = (yylsp+yylen-1)->last_line;
5328 yylsp->last_column = (yylsp+yylen-1)->last_column;
5332 /* Now "shift" the result of the reduction.
5333 Determine what state that goes to,
5334 based on the state we popped back to
5335 and the rule number reduced by. */
5339 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5340 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5341 yystate = yytable[yystate];
5343 yystate = yydefgoto[yyn - YYNTBASE];
5347 yyerrlab: /* here on detecting error */
5350 /* If not already recovering from an error, report this error. */
5354 #ifdef YYERROR_VERBOSE
5355 yyn = yypact[yystate];
5357 if (yyn > YYFLAG && yyn < YYLAST)
5364 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5365 for (x = (yyn < 0 ? -yyn : 0);
5366 x < (sizeof(yytname) / sizeof(char *)); x++)
5367 if (yycheck[x + yyn] == x)
5368 size += strlen(yytname[x]) + 15, count++;
5369 msg = (char *) malloc(size + 15);
5372 strcpy(msg, "parse error");
5377 for (x = (yyn < 0 ? -yyn : 0);
5378 x < (sizeof(yytname) / sizeof(char *)); x++)
5379 if (yycheck[x + yyn] == x)
5381 strcat(msg, count == 0 ? ", expecting `" : " or `");
5382 strcat(msg, yytname[x]);
5391 yyerror ("parse error; also virtual memory exceeded");
5394 #endif /* YYERROR_VERBOSE */
5395 yyerror("parse error");
5399 yyerrlab1: /* here on error raised explicitly by an action */
5401 if (yyerrstatus == 3)
5403 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5405 /* return failure if at end of input */
5406 if (yychar == YYEOF)
5411 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5417 /* Else will try to reuse lookahead token
5418 after shifting the error token. */
5420 yyerrstatus = 3; /* Each real token shifted decrements this */
5424 yyerrdefault: /* current state does not do anything special for the error token. */
5427 /* This is wrong; only states that explicitly want error tokens
5428 should shift them. */
5429 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5430 if (yyn) goto yydefault;
5433 yyerrpop: /* pop the current state because it cannot handle the error token */
5435 if (yyssp == yyss) YYABORT;
5445 short *ssp1 = yyss - 1;
5446 fprintf (stderr, "Error: state stack now");
5447 while (ssp1 != yyssp)
5448 fprintf (stderr, " %d", *++ssp1);
5449 fprintf (stderr, "\n");
5455 yyn = yypact[yystate];
5460 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5479 fprintf(stderr, "Shifting error token, ");
5490 #line 1592 "cgrammar.y"
5494 extern char *yytext;
5497 # include "bison.reset"
5499 void yyerror (/*@unused@*/ char *s)
5501 static bool givehint = FALSE;
5503 if (context_inIterDef ())
5505 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5506 context_inFunctionName ()));
5508 else if (context_inIterEnd ())
5510 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5511 context_inFunctionName ()));
5513 else if (context_inMacro ())
5515 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5516 context_inFunctionName ()));
5518 if (context_inMacroUnknown ())
5522 llhint (cstring_makeLiteral
5523 ("Precede macro definition with /*@notfunction@*/ "
5524 "to suppress checking and force expansion"));
5533 llparseerror (cstring_undefined);
5537 void printState (idDecl t) {
5538 cstring id = idDecl_getName (t);
5539 uentry ue = usymtab_lookupSafe (id);
5541 sRef s = uentry_getSref (ue);
5543 printf("State = %d\n", s->bufinfo.bufstate);
5547 /*take this out soon */
5548 /* void testassert1 (cstring id, icstring cons ) { */
5549 /* uentry ue =usymtab_lookupSafe (id); */
5550 /* sRef s = uentry_getSref (ue); */
5551 /* printf ("Doing testassert1 with setbuffersize\n"); */
5552 /* printf("State = %d\n", s->bufinfo.bufstate); */
5554 /* void testassert2 (cstring id) { */
5555 /* uentry ue =usymtab_lookupSafe (id); */
5556 /* sRef s = uentry_getSref (ue); */
5557 /* printf ("Doing testassert2 with setbuffersize\n"); */
5558 /* printf("State = %d\n", s->bufinfo.bufstate); */