2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
45 /* < end of bison.head > */
48 /* A Bison parser, made from cgrammar.y
49 by GNU Bison version 1.25
52 #define YYBISON 1 /* Identify Bison output. */
56 #define CTOK_ELIPSIS 260
80 #define TAMPERSAND 284
107 #define MUL_ASSIGN 311
108 #define DIV_ASSIGN 312
109 #define MOD_ASSIGN 313
110 #define ADD_ASSIGN 314
111 #define SUB_ASSIGN 315
112 #define LEFT_ASSIGN 316
113 #define RIGHT_ASSIGN 317
114 #define AND_ASSIGN 318
115 #define XOR_ASSIGN 319
116 #define OR_ASSIGN 320
123 #define QMODIFIES 327
125 #define QCONSTANT 329
126 #define QFUNCTION 330
130 #define QALLOCATES 334
132 #define QRELEASES 336
133 #define QPRECLAUSE 337
134 #define QPOSTCLAUSE 338
138 #define QENDMACRO 342
140 #define LLMACROITER 344
141 #define LLMACROEND 345
142 #define TENDMACRO 346
143 #define QSWITCHBREAK 347
144 #define QLOOPBREAK 348
145 #define QINNERBREAK 349
146 #define QSAFEBREAK 350
147 #define QINNERCONTINUE 351
148 #define QFALLTHROUGH 352
149 #define QLINTNOTREACHED 353
150 #define QLINTFALLTHROUGH 354
151 #define QLINTFALLTHRU 355
152 #define QARGSUSED 356
153 #define QPRINTFLIKE 357
154 #define QLINTPRINTFLIKE 358
155 #define QSCANFLIKE 359
156 #define QMESSAGELIKE 360
157 #define QNOTREACHED 361
159 #define QVOLATILE 363
161 #define QEXTENSION 365
165 #define QREGISTER 369
175 #define QUNCHECKED 379
176 #define QCHECKEDSTRICT 380
177 #define QCHECKMOD 381
183 #define QDEPENDENT 387
184 #define QRETURNED 388
187 #define QOBSERVER 391
191 #define QNEVEREXIT 395
192 #define QTRUEEXIT 396
193 #define QFALSEEXIT 397
196 #define QUNSIGNED 400
202 #define QABSTRACT 406
203 #define QCONCRETE 407
205 #define QIMMUTABLE 409
206 #define QTRUENULL 410
207 #define QFALSENULL 411
208 #define QEXTERNAL 412
209 #define QREFCOUNTED 413
222 #define QINTEGRALTYPE 426
223 #define QUNSIGNEDINTEGRALTYPE 427
224 #define QSIGNEDINTEGRALTYPE 428
225 #define IDENTIFIER 429
226 #define NEW_IDENTIFIER 430
227 #define CCONSTANT 431
228 #define ITER_NAME 432
229 #define ITER_ENDNAME 433
230 #define TYPE_NAME 434
231 #define TYPE_NAME_OR_ID 435
233 #line 19 "cgrammar.y"
239 ** Yacc/Bison grammar for extended ANSI C used by LCLint.
241 ** original grammar by Nate Osgood ---
242 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
244 ** changes for LCLint --- handle typedef names correctly
245 ** fix struct/union parsing bug (empty struct is accepted)
246 ** add productions to handle macros --- require
247 ** error correction --- main source of conflicts in grammar.
248 ** need to process initializations sequentially, L->R
250 ** production names are cryptic, so more productions fit on one line
252 ** conflicts: 87 shift/reduce, 18 reduce/reduce
253 ** most of these are due to handling macros
254 ** a few are due to handling type expressions
260 extern void swallowMacro (void);
262 # include "lclintMacros.nf"
264 # include "cgrammar.h"
265 # include "exprChecks.h"
270 # define SHOWCSYM FALSE
271 void yyerror (char *s);
273 #line 59 "cgrammar.y"
278 specialClauseKind sck;
283 /*@only@*/ qtype qtyp;
284 /*@only@*/ cstring cname;
285 /*@only@*/ idDecl ntyp;
286 /*@only@*/ idDeclList ntyplist;
287 /*@only@*/ uentryList flist;
288 /*@owned@*/ uentryList entrylist;
289 /*@observer@*/ /*@dependent@*/ uentry entry;
290 /*@only@*/ uentry oentry;
291 /*@only@*/ exprNode expr;
292 /*@only@*/ enumNameList enumnamelist;
293 /*@only@*/ exprNodeList alist;
294 /*@only@*/ sRefSet srset;
311 #define YYFLAG -32768
314 #define YYTRANSLATE(x) ((unsigned)(x) <= 435 ? yytranslate[x] : 407)
316 static const short yytranslate[] = { 0,
317 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
318 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
319 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
321 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
322 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
323 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
325 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
343 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
344 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
345 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
346 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
347 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
348 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
349 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
350 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
351 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
352 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
353 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
354 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
355 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
356 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
357 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
358 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
359 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
360 176, 177, 178, 179, 180
364 static const short yyprhs[] = { 0,
365 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
366 21, 23, 32, 44, 45, 51, 53, 57, 59, 62,
367 64, 71, 75, 82, 83, 90, 91, 99, 101, 108,
368 112, 119, 120, 127, 128, 136, 137, 138, 149, 153,
369 157, 161, 164, 166, 167, 170, 171, 174, 176, 179,
370 181, 184, 186, 189, 191, 195, 198, 200, 202, 204,
371 206, 208, 210, 212, 213, 216, 217, 224, 225, 232,
372 234, 236, 237, 238, 244, 245, 251, 253, 255, 256,
373 258, 259, 260, 264, 265, 269, 271, 273, 275, 277,
374 279, 281, 283, 285, 287, 289, 291, 293, 295, 297,
375 299, 301, 303, 304, 312, 313, 322, 324, 328, 329,
376 333, 334, 338, 341, 345, 348, 351, 353, 355, 357,
377 361, 366, 369, 373, 377, 381, 383, 385, 387, 391,
378 393, 395, 399, 404, 407, 411, 415, 419, 421, 425,
379 427, 429, 431, 435, 437, 439, 441, 446, 450, 455,
380 462, 468, 474, 477, 480, 482, 486, 488, 491, 494,
381 497, 500, 503, 506, 509, 512, 514, 516, 526, 527,
382 531, 536, 539, 541, 546, 548, 552, 556, 560, 562,
383 566, 570, 572, 576, 580, 582, 586, 590, 594, 598,
384 600, 604, 608, 610, 614, 616, 620, 622, 626, 628,
385 629, 634, 636, 637, 642, 644, 645, 646, 654, 656,
386 660, 664, 668, 672, 676, 680, 684, 688, 692, 696,
387 700, 702, 706, 707, 709, 711, 713, 715, 717, 721,
388 722, 732, 733, 745, 748, 749, 756, 757, 765, 770,
389 775, 776, 777, 780, 782, 787, 788, 793, 795, 799,
390 804, 806, 810, 812, 814, 816, 818, 820, 823, 826,
391 829, 832, 835, 838, 841, 844, 847, 850, 853, 856,
392 859, 862, 865, 868, 871, 874, 877, 880, 883, 886,
393 889, 892, 895, 898, 901, 904, 907, 910, 913, 916,
394 919, 922, 925, 928, 931, 934, 937, 940, 943, 946,
395 949, 952, 955, 957, 959, 961, 963, 966, 969, 972,
396 975, 978, 981, 984, 987, 990, 993, 996, 999, 1002,
397 1005, 1009, 1011, 1016, 1018, 1022, 1025, 1028, 1031, 1032,
398 1034, 1035, 1036, 1048, 1049, 1050, 1062, 1069, 1076, 1077,
399 1078, 1089, 1090, 1091, 1102, 1108, 1114, 1119, 1124, 1125,
400 1127, 1129, 1132, 1138, 1142, 1145, 1150, 1152, 1155, 1159,
401 1166, 1167, 1176, 1181, 1183, 1187, 1190, 1192, 1197, 1199,
402 1201, 1204, 1207, 1209, 1212, 1214, 1217, 1219, 1221, 1223,
403 1226, 1228, 1231, 1234, 1238, 1240, 1244, 1246, 1250, 1252,
404 1254, 1258, 1259, 1262, 1263, 1268, 1273, 1275, 1277, 1280,
405 1282, 1284, 1287, 1288, 1290, 1296, 1299, 1303, 1307, 1312,
406 1316, 1321, 1326, 1332, 1334, 1336, 1338, 1340, 1342, 1344,
407 1346, 1348, 1350, 1352, 1354, 1356, 1359, 1362, 1370, 1377,
408 1380, 1381, 1382, 1393, 1394, 1401, 1403, 1405, 1407, 1409,
409 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1426, 1430, 1432,
410 1435, 1438, 1441, 1443, 1445, 1447, 1449, 1451, 1453, 1455,
411 1457, 1459, 1461, 1465, 1467, 1469, 1473, 1476, 1477, 1483,
412 1484, 1491, 1492, 1497, 1498, 1504, 1508, 1511, 1515, 1516,
413 1517, 1518, 1519, 1520, 1522, 1525, 1528, 1532, 1535, 1539,
414 1543, 1548, 1551, 1554, 1558, 1562, 1567, 1569, 1572, 1574,
415 1577, 1579, 1582, 1584, 1587, 1589, 1592, 1594, 1599, 1602,
416 1603, 1609, 1610, 1617, 1622, 1627, 1628, 1629, 1640, 1642,
417 1643, 1648, 1650, 1652, 1654, 1656, 1658, 1662, 1664, 1669,
418 1673, 1678, 1685, 1691, 1697, 1700, 1703, 1705, 1708, 1711,
419 1714, 1717, 1720, 1723, 1726, 1729, 1731, 1733, 1738, 1740,
420 1744, 1748, 1752, 1754, 1758, 1762, 1764, 1768, 1772, 1774,
421 1778, 1782, 1786, 1790, 1792, 1796, 1800, 1802, 1806, 1808,
422 1812, 1814, 1818, 1820, 1824, 1826, 1830, 1832, 1833, 1834,
423 1842, 1844, 1848, 1852, 1856, 1860, 1864, 1868, 1872, 1876,
424 1880, 1884, 1888, 1890, 1891, 1893, 1896, 1904, 1907, 1910,
425 1918, 1925, 1928, 1932, 1935, 1939, 1942, 1946, 1950, 1954,
426 1958, 1961, 1965, 1966, 1968, 1970, 1972, 1974, 1976, 1978,
430 static const short yyrhs[] = { -1,
431 182, 0, 183, 0, 182, 183, 0, 235, 403, 0,
432 184, 0, 185, 0, 195, 0, 198, 0, 271, 0,
433 1, 0, 74, 291, 304, 314, 304, 403, 279, 87,
434 0, 74, 291, 304, 314, 304, 23, 279, 284, 283,
435 403, 87, 0, 0, 75, 186, 187, 403, 87, 0,
436 188, 0, 291, 304, 188, 0, 192, 0, 318, 192,
437 0, 405, 0, 279, 24, 304, 314, 279, 25, 0,
438 189, 26, 27, 0, 189, 26, 279, 270, 27, 304,
439 0, 0, 189, 280, 24, 25, 190, 200, 0, 0,
440 189, 280, 24, 315, 25, 191, 200, 0, 405, 0,
441 279, 24, 304, 188, 279, 25, 0, 192, 26, 27,
442 0, 192, 26, 279, 270, 27, 304, 0, 0, 192,
443 280, 24, 25, 193, 202, 0, 0, 192, 280, 24,
444 315, 25, 194, 202, 0, 0, 0, 76, 405, 24,
445 315, 25, 196, 202, 197, 403, 87, 0, 88, 344,
446 91, 0, 89, 331, 91, 0, 90, 332, 91, 0,
447 88, 91, 0, 231, 0, 0, 201, 204, 0, 0,
448 203, 205, 0, 212, 0, 206, 212, 0, 215, 0,
449 206, 215, 0, 228, 0, 228, 206, 0, 208, 0,
450 207, 21, 208, 0, 211, 209, 0, 404, 0, 175,
451 0, 85, 0, 86, 0, 115, 0, 116, 0, 129,
452 0, 0, 210, 211, 0, 0, 71, 213, 364, 403,
453 87, 218, 0, 0, 71, 214, 207, 403, 87, 218,
454 0, 73, 0, 219, 0, 0, 0, 71, 216, 364,
455 403, 218, 0, 0, 71, 217, 207, 403, 218, 0,
456 73, 0, 221, 0, 0, 219, 0, 0, 0, 72,
457 220, 236, 0, 0, 72, 222, 237, 0, 77, 0,
458 78, 0, 79, 0, 80, 0, 81, 0, 87, 0,
459 87, 0, 82, 0, 83, 0, 118, 0, 136, 0,
460 134, 0, 132, 0, 131, 0, 120, 0, 137, 0,
461 149, 0, 0, 223, 304, 229, 242, 403, 225, 279,
462 0, 0, 226, 304, 227, 230, 242, 403, 224, 279,
463 0, 314, 0, 291, 304, 314, 0, 0, 19, 233,
464 360, 0, 0, 364, 234, 353, 0, 199, 232, 0,
465 240, 403, 87, 0, 403, 87, 0, 240, 403, 0,
466 403, 0, 404, 0, 175, 0, 238, 26, 27, 0,
467 238, 26, 239, 27, 0, 34, 238, 0, 24, 238,
468 25, 0, 238, 28, 405, 0, 238, 43, 405, 0,
469 238, 0, 176, 0, 238, 0, 240, 21, 238, 0,
470 404, 0, 175, 0, 241, 26, 27, 0, 241, 26,
471 239, 27, 0, 34, 241, 0, 24, 241, 25, 0,
472 241, 28, 405, 0, 241, 43, 405, 0, 241, 0,
473 242, 21, 241, 0, 404, 0, 175, 0, 176, 0,
474 24, 268, 25, 0, 180, 0, 110, 0, 243, 0,
475 244, 26, 268, 27, 0, 244, 24, 25, 0, 244,
476 24, 245, 25, 0, 69, 24, 267, 21, 326, 25,
477 0, 244, 304, 28, 405, 279, 0, 244, 304, 43,
478 405, 279, 0, 244, 46, 0, 244, 47, 0, 267,
479 0, 245, 21, 267, 0, 244, 0, 46, 246, 0,
480 47, 246, 0, 29, 251, 0, 34, 251, 0, 33,
481 251, 0, 32, 251, 0, 31, 251, 0, 30, 251,
482 0, 248, 0, 247, 0, 45, 279, 24, 326, 304,
483 21, 405, 25, 279, 0, 0, 279, 249, 250, 0,
484 42, 24, 326, 25, 0, 42, 246, 0, 246, 0,
485 24, 326, 25, 251, 0, 251, 0, 252, 34, 251,
486 0, 252, 35, 251, 0, 252, 36, 251, 0, 252,
487 0, 253, 33, 252, 0, 253, 32, 252, 0, 253,
488 0, 254, 48, 253, 0, 254, 49, 253, 0, 254,
489 0, 255, 37, 254, 0, 255, 38, 254, 0, 255,
490 50, 254, 0, 255, 51, 254, 0, 255, 0, 256,
491 52, 255, 0, 256, 53, 255, 0, 256, 0, 257,
492 29, 256, 0, 257, 0, 258, 39, 257, 0, 258,
493 0, 259, 40, 258, 0, 259, 0, 0, 260, 54,
494 261, 259, 0, 260, 0, 0, 262, 55, 263, 260,
495 0, 262, 0, 0, 0, 262, 41, 265, 268, 22,
496 266, 264, 0, 264, 0, 246, 23, 267, 0, 246,
497 56, 267, 0, 246, 57, 267, 0, 246, 58, 267,
498 0, 246, 59, 267, 0, 246, 60, 267, 0, 246,
499 61, 267, 0, 246, 62, 267, 0, 246, 63, 267,
500 0, 246, 64, 267, 0, 246, 65, 267, 0, 267,
501 0, 268, 21, 267, 0, 0, 268, 0, 264, 0,
502 272, 0, 70, 0, 277, 0, 291, 279, 18, 0,
503 0, 291, 304, 314, 304, 273, 279, 283, 18, 279,
504 0, 0, 291, 304, 314, 304, 23, 274, 279, 284,
505 283, 18, 279, 0, 314, 304, 0, 0, 314, 304,
506 23, 276, 279, 284, 0, 0, 44, 291, 278, 304,
507 281, 279, 18, 0, 44, 291, 279, 18, 0, 44,
508 281, 279, 18, 0, 0, 0, 282, 279, 0, 275,
509 0, 281, 21, 304, 275, 0, 0, 283, 21, 304,
510 275, 0, 267, 0, 19, 285, 20, 0, 19, 285,
511 21, 20, 0, 284, 0, 285, 21, 284, 0, 111,
512 0, 109, 0, 112, 0, 113, 0, 114, 0, 107,
513 279, 0, 108, 279, 0, 115, 279, 0, 116, 279,
514 0, 129, 279, 0, 130, 279, 0, 131, 279, 0,
515 132, 279, 0, 117, 279, 0, 119, 279, 0, 118,
516 279, 0, 127, 279, 0, 128, 279, 0, 120, 279,
517 0, 122, 279, 0, 138, 279, 0, 139, 279, 0,
518 141, 279, 0, 142, 279, 0, 140, 279, 0, 135,
519 279, 0, 150, 279, 0, 133, 279, 0, 134, 279,
520 0, 136, 279, 0, 123, 279, 0, 126, 279, 0,
521 124, 279, 0, 125, 279, 0, 155, 279, 0, 156,
522 279, 0, 147, 279, 0, 157, 279, 0, 148, 279,
523 0, 151, 279, 0, 152, 279, 0, 153, 279, 0,
524 154, 279, 0, 149, 279, 0, 158, 279, 0, 159,
525 279, 0, 162, 279, 0, 163, 279, 0, 160, 279,
526 0, 161, 279, 0, 146, 0, 143, 0, 144, 0,
527 145, 0, 164, 304, 0, 166, 304, 0, 165, 304,
528 0, 167, 304, 0, 168, 304, 0, 169, 304, 0,
529 170, 304, 0, 171, 304, 0, 172, 304, 0, 173,
530 304, 0, 406, 304, 0, 295, 304, 0, 309, 304,
531 0, 288, 304, 0, 279, 291, 279, 0, 293, 0,
532 293, 84, 292, 87, 0, 326, 0, 326, 21, 292,
533 0, 286, 294, 0, 287, 294, 0, 289, 294, 0,
534 0, 291, 0, 0, 0, 304, 66, 405, 279, 19,
535 296, 357, 305, 358, 297, 20, 0, 0, 0, 304,
536 67, 405, 279, 19, 298, 357, 305, 358, 299, 20,
537 0, 304, 66, 405, 279, 19, 20, 0, 304, 67,
538 405, 279, 19, 20, 0, 0, 0, 304, 66, 279,
539 19, 300, 357, 305, 358, 301, 20, 0, 0, 0,
540 304, 67, 279, 19, 302, 357, 305, 358, 303, 20,
541 0, 304, 66, 279, 19, 20, 0, 304, 67, 279,
542 19, 20, 0, 304, 66, 405, 304, 0, 304, 67,
543 405, 304, 0, 0, 306, 0, 198, 0, 305, 306,
544 0, 291, 304, 307, 279, 18, 0, 291, 279, 18,
545 0, 308, 304, 0, 307, 21, 308, 304, 0, 314,
546 0, 22, 270, 0, 314, 22, 270, 0, 304, 68,
547 19, 311, 20, 279, 0, 0, 304, 68, 405, 19,
548 310, 311, 20, 279, 0, 304, 68, 405, 279, 0,
549 312, 0, 311, 21, 312, 0, 311, 21, 0, 405,
550 0, 405, 23, 279, 270, 0, 189, 0, 328, 0,
551 318, 179, 0, 318, 313, 0, 189, 0, 318, 189,
552 0, 321, 0, 304, 319, 0, 107, 0, 108, 0,
553 316, 0, 317, 316, 0, 34, 0, 34, 317, 0,
554 34, 318, 0, 34, 317, 318, 0, 320, 0, 320,
555 21, 5, 0, 405, 0, 320, 21, 405, 0, 5,
556 0, 322, 0, 322, 21, 5, 0, 0, 323, 325,
557 0, 0, 322, 21, 324, 325, 0, 279, 291, 313,
558 279, 0, 405, 0, 290, 0, 290, 327, 0, 318,
559 0, 329, 0, 318, 329, 0, 0, 329, 0, 279,
560 24, 304, 327, 25, 0, 26, 27, 0, 26, 270,
561 27, 0, 329, 26, 27, 0, 329, 26, 270, 27,
562 0, 279, 24, 25, 0, 279, 24, 321, 25, 0,
563 329, 279, 24, 25, 0, 329, 279, 24, 321, 25,
564 0, 346, 0, 347, 0, 350, 0, 353, 0, 366,
565 0, 369, 0, 400, 0, 374, 0, 402, 0, 333,
566 0, 331, 0, 340, 0, 333, 340, 0, 373, 333,
567 0, 399, 345, 11, 24, 268, 25, 18, 0, 399,
568 345, 11, 24, 268, 25, 0, 335, 340, 0, 0,
569 0, 13, 24, 269, 18, 269, 18, 336, 269, 337,
570 25, 0, 0, 177, 355, 24, 339, 377, 25, 0,
571 178, 0, 346, 0, 347, 0, 350, 0, 342, 364,
572 0, 342, 0, 343, 0, 366, 0, 341, 0, 334,
573 0, 338, 0, 402, 0, 24, 340, 25, 0, 1,
574 0, 368, 340, 0, 355, 19, 0, 359, 20, 0,
575 345, 0, 363, 0, 346, 0, 347, 0, 350, 0,
576 354, 0, 367, 0, 369, 0, 374, 0, 401, 0,
577 24, 345, 25, 0, 402, 0, 1, 0, 405, 22,
578 330, 0, 106, 330, 0, 0, 6, 270, 348, 22,
579 330, 0, 0, 97, 6, 270, 349, 22, 330, 0,
580 0, 7, 351, 22, 330, 0, 0, 97, 7, 352,
581 22, 330, 0, 24, 353, 25, 0, 355, 361, 0,
582 355, 362, 356, 0, 0, 0, 0, 0, 0, 20,
583 0, 106, 20, 0, 365, 20, 0, 365, 106, 20,
584 0, 364, 20, 0, 364, 106, 20, 0, 364, 365,
585 20, 0, 364, 365, 106, 20, 0, 19, 360, 0,
586 19, 20, 0, 19, 363, 20, 0, 19, 364, 20,
587 0, 19, 364, 365, 20, 0, 345, 0, 363, 345,
588 0, 271, 0, 364, 271, 0, 330, 0, 365, 330,
589 0, 18, 0, 268, 18, 0, 18, 0, 268, 18,
590 0, 268, 0, 8, 24, 268, 25, 0, 368, 330,
591 0, 0, 368, 330, 9, 370, 330, 0, 0, 10,
592 24, 268, 371, 25, 330, 0, 11, 24, 268, 25,
593 0, 11, 24, 268, 25, 0, 0, 0, 177, 375,
594 355, 24, 376, 377, 25, 353, 398, 356, 0, 379,
595 0, 0, 377, 378, 21, 379, 0, 397, 0, 404,
596 0, 180, 0, 175, 0, 176, 0, 24, 268, 25,
597 0, 380, 0, 244, 26, 268, 27, 0, 244, 24,
598 25, 0, 244, 24, 245, 25, 0, 69, 24, 267,
599 21, 326, 25, 0, 244, 304, 28, 405, 279, 0,
600 244, 304, 43, 405, 279, 0, 244, 46, 0, 244,
601 47, 0, 381, 0, 46, 246, 0, 47, 246, 0,
602 29, 251, 0, 34, 251, 0, 33, 251, 0, 32,
603 251, 0, 31, 251, 0, 30, 251, 0, 248, 0,
604 382, 0, 24, 326, 25, 251, 0, 383, 0, 252,
605 34, 251, 0, 252, 35, 251, 0, 252, 36, 251,
606 0, 384, 0, 253, 33, 252, 0, 253, 32, 252,
607 0, 385, 0, 254, 48, 253, 0, 254, 49, 253,
608 0, 386, 0, 255, 37, 254, 0, 255, 38, 254,
609 0, 255, 50, 254, 0, 255, 51, 254, 0, 387,
610 0, 256, 52, 255, 0, 256, 53, 255, 0, 388,
611 0, 257, 29, 256, 0, 389, 0, 258, 39, 257,
612 0, 390, 0, 259, 40, 258, 0, 391, 0, 260,
613 54, 259, 0, 392, 0, 262, 55, 260, 0, 393,
614 0, 0, 0, 262, 41, 395, 268, 22, 396, 264,
615 0, 394, 0, 246, 23, 267, 0, 246, 56, 267,
616 0, 246, 57, 267, 0, 246, 58, 267, 0, 246,
617 59, 267, 0, 246, 60, 267, 0, 246, 61, 267,
618 0, 246, 62, 267, 0, 246, 63, 267, 0, 246,
619 64, 267, 0, 246, 65, 267, 0, 178, 0, 0,
620 12, 0, 372, 330, 0, 399, 330, 11, 24, 268,
621 25, 18, 0, 335, 330, 0, 372, 345, 0, 399,
622 345, 11, 24, 268, 25, 18, 0, 399, 345, 11,
623 24, 268, 25, 0, 335, 345, 0, 14, 405, 18,
624 0, 15, 18, 0, 96, 15, 18, 0, 16, 18,
625 0, 92, 16, 18, 0, 93, 16, 18, 0, 94,
626 16, 18, 0, 95, 16, 18, 0, 17, 18, 0,
627 17, 268, 18, 0, 0, 18, 0, 174, 0, 175,
628 0, 177, 0, 178, 0, 174, 0, 179, 0, 180,
635 static const short yyrline[] = { 0,
636 215, 216, 219, 220, 223, 224, 225, 226, 227, 228,
637 229, 232, 234, 238, 238, 243, 249, 253, 254, 258,
638 259, 261, 263, 279, 283, 290, 294, 300, 301, 303,
639 305, 321, 325, 332, 336, 342, 344, 344, 348, 349,
640 350, 351, 354, 357, 358, 361, 362, 365, 366, 369,
641 370, 373, 374, 377, 378, 381, 384, 385, 388, 389,
642 390, 391, 392, 395, 396, 399, 399, 402, 402, 405,
643 409, 410, 413, 413, 416, 416, 419, 423, 424, 427,
644 428, 431, 437, 444, 450, 457, 458, 459, 460, 461,
645 464, 467, 470, 471, 474, 475, 476, 477, 478, 479,
646 480, 481, 484, 490, 497, 503, 512, 518, 522, 524,
647 528, 531, 538, 546, 547, 550, 551, 554, 555, 556,
648 557, 558, 559, 560, 561, 565, 566, 570, 571, 574,
649 576, 578, 579, 580, 581, 582, 584, 588, 592, 604,
650 605, 606, 607, 608, 609, 612, 613, 614, 615, 616,
651 617, 618, 619, 620, 623, 624, 627, 628, 629, 630,
652 631, 632, 633, 634, 635, 636, 637, 640, 644, 645,
653 648, 649, 652, 653, 657, 658, 659, 660, 663, 664,
654 665, 668, 669, 670, 673, 674, 675, 676, 677, 680,
655 681, 682, 685, 686, 689, 690, 694, 695, 698, 699,
656 704, 710, 711, 717, 723, 724, 724, 726, 729, 730,
657 731, 732, 733, 734, 735, 736, 737, 738, 739, 740,
658 743, 744, 747, 748, 751, 756, 757, 758, 761, 774,
659 778, 779, 782, 787, 788, 788, 793, 794, 795, 796,
660 799, 802, 805, 808, 809, 812, 813, 816, 817, 818,
661 822, 824, 833, 834, 835, 836, 837, 840, 841, 842,
662 843, 844, 845, 846, 847, 848, 849, 850, 851, 852,
663 853, 854, 855, 856, 857, 858, 859, 860, 861, 862,
664 863, 864, 865, 866, 867, 868, 869, 870, 871, 872,
665 873, 874, 875, 876, 877, 878, 879, 880, 881, 882,
666 883, 884, 887, 888, 889, 890, 893, 894, 895, 896,
667 897, 898, 899, 900, 901, 902, 903, 904, 905, 906,
668 909, 913, 914, 918, 919, 923, 924, 925, 928, 929,
669 932, 934, 936, 937, 939, 941, 942, 944, 946, 948,
670 950, 951, 953, 955, 956, 958, 960, 961, 964, 967,
671 968, 969, 972, 974, 978, 980, 984, 985, 986, 989,
672 991, 991, 993, 996, 998, 1000, 1003, 1008, 1015, 1016,
673 1017, 1024, 1028, 1029, 1033, 1034, 1037, 1038, 1041, 1042,
674 1045, 1046, 1047, 1048, 1051, 1052, 1055, 1056, 1059, 1060,
675 1061, 1064, 1064, 1065, 1066, 1069, 1081, 1097, 1098, 1101,
676 1102, 1103, 1106, 1107, 1110, 1112, 1113, 1114, 1115, 1116,
677 1118, 1120, 1122, 1128, 1129, 1130, 1131, 1132, 1133, 1134,
678 1135, 1136, 1139, 1142, 1145, 1146, 1150, 1152, 1154, 1156,
679 1160, 1161, 1163, 1167, 1169, 1171, 1174, 1175, 1176, 1177,
680 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1189,
681 1195, 1198, 1201, 1202, 1205, 1206, 1207, 1208, 1209, 1210,
682 1211, 1212, 1213, 1214, 1215, 1218, 1219, 1225, 1226, 1227,
683 1228, 1231, 1232, 1233, 1234, 1237, 1238, 1242, 1245, 1248,
684 1251, 1254, 1257, 1260, 1261, 1262, 1263, 1265, 1266, 1268,
685 1270, 1277, 1281, 1283, 1285, 1287, 1291, 1292, 1295, 1296,
686 1299, 1300, 1303, 1304, 1307, 1308, 1309, 1312, 1320, 1325,
687 1326, 1330, 1331, 1334, 1339, 1342, 1343, 1344, 1352, 1353,
688 1353, 1357, 1358, 1359, 1370, 1377, 1378, 1381, 1382, 1383,
689 1384, 1385, 1387, 1388, 1389, 1390, 1393, 1394, 1395, 1396,
690 1397, 1398, 1399, 1400, 1401, 1402, 1405, 1406, 1409, 1410,
691 1411, 1412, 1415, 1416, 1417, 1420, 1421, 1422, 1425, 1426,
692 1427, 1428, 1429, 1432, 1433, 1434, 1437, 1438, 1441, 1442,
693 1446, 1447, 1450, 1451, 1454, 1455, 1458, 1459, 1460, 1461,
694 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473,
695 1474, 1475, 1478, 1479, 1482, 1485, 1487, 1489, 1493, 1494,
696 1496, 1498, 1501, 1502, 1503, 1505, 1506, 1507, 1508, 1509,
697 1510, 1511, 1514, 1515, 1518, 1521, 1522, 1523, 1524, 1527,
703 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
705 static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
706 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
707 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
708 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
709 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
710 "TBAR","TQUEST","CSIZEOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP","DEC_OP",
711 "LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP","MUL_ASSIGN",
712 "DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN","RIGHT_ASSIGN",
713 "AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM","VA_ARG","VA_DCL",
714 "QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION","QITER","QDEFINES",
715 "QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE","QALT","QUNDEF",
716 "QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND","TENDMACRO","QSWITCHBREAK",
717 "QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE","QFALLTHROUGH","QLINTNOTREACHED",
718 "QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED","QPRINTFLIKE","QLINTPRINTFLIKE",
719 "QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST","QVOLATILE","QINLINE","QEXTENSION",
720 "QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT","QIN","QYIELD","QONLY","QTEMP",
721 "QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED","QCHECKEDSTRICT","QCHECKMOD",
722 "QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED","QDEPENDENT","QRETURNED","QEXPOSED",
723 "QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT","QNEVEREXIT","QTRUEEXIT","QFALSEEXIT",
724 "QLONG","QSIGNED","QUNSIGNED","QSHORT","QUNUSED","QSEF","QNOTNULL","QRELNULL",
725 "QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE","QTRUENULL","QFALSENULL","QEXTERNAL",
726 "QREFCOUNTED","QREFS","QNEWREF","QTEMPREF","QKILLREF","QRELDEF","CGCHAR","CBOOL",
727 "CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE","QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE",
728 "QSIGNEDINTEGRALTYPE","IDENTIFIER","NEW_IDENTIFIER","CCONSTANT","ITER_NAME",
729 "ITER_ENDNAME","TYPE_NAME","TYPE_NAME_OR_ID","file","externalDefs","externalDef",
730 "constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2",
731 "@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
732 "optGlobMods","@8","optPlainGlobMods","@9","optGlobModsRest","optPlainGlobModsRest",
733 "specialClauses","globIdList","globIdListExpr","globId","globQual","optGlobQuals",
734 "optGlobModsAux","@10","@11","optPlainGlobModsAux","@12","@13","optMods","fcnMods",
735 "@14","fcnPlainMods","@15","specialTag","endStateTag","endSpecialTag","stateSpecialClause",
736 "specialClauseType","specialClause","@16","@17","fcnDefHdrAux","fcnBody","@18",
737 "@19","fcnDef","locModifies","locPlainModifies","modListExpr","mExpr","modList",
738 "specClauseListExpr","specClauseList","primaryExpr","postfixExpr","argumentExprList",
739 "unaryExpr","offsetofExpr","sizeofExpr","@20","sizeofExprAux","castExpr","timesExpr",
740 "plusExpr","shiftExpr","relationalExpr","equalityExpr","bitandExpr","xorExpr",
741 "bitorExpr","andExpr","@21","orExpr","@22","conditionalExpr","@23","@24","assignExpr",
742 "expr","optExpr","constantExpr","initializer","instanceDecl","@25","@26","namedInitializer",
743 "@27","typeDecl","@28","IsType","PushType","namedInitializerList","namedInitializerListAux",
744 "optDeclarators","init","initList","storageSpecifier","typeQualifier","typeModifier",
745 "typeSpecifier","completeType","completeTypeSpecifier","altType","completeTypeSpecifierAux",
746 "optCompleteType","suSpc","@29","@30","@31","@32","@33","@34","@35","@36","NotType",
747 "structDeclList","structDecl","structNamedDeclList","structNamedDecl","enumSpc",
748 "@37","enumeratorList","enumerator","optNamedDecl","namedDecl","genericParamList",
749 "innerMods","innerModsList","pointers","paramIdList","idList","paramTypeList",
750 "paramList","@38","@39","paramDecl","typeExpression","abstractDecl","optAbstractDeclBase",
751 "abstractDeclBase","stmt","iterBody","endBody","iterDefStmtList","iterDefIterationStmt",
752 "forPred","@40","@41","partialIterStmt","@42","iterDefStmt","iterSelectionStmt",
753 "openScope","closeScope","macroBody","stmtErr","labeledStmt","caseStmt","@43",
754 "@44","defaultStmt","@45","@46","compoundStmt","compoundStmtErr","CreateInnerScope",
755 "DeleteInnerScope","CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe",
756 "compoundStmtRest","compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList",
757 "stmtList","expressionStmt","expressionStmtErr","ifPred","selectionStmt","@47",
758 "@48","whilePred","iterWhilePred","iterStmt","@49","@50","iterArgList","@51",
759 "iterArgExpr","primaryIterExpr","postfixIterExpr","unaryIterExpr","castIterExpr",
760 "timesIterExpr","plusIterExpr","shiftIterExpr","relationalIterExpr","equalityIterExpr",
761 "bitandIterExpr","xorIterExpr","bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr",
762 "@52","@53","assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr",
763 "jumpStmt","optSemi","id","newId","typeName", NULL
767 static const short yyr1[] = { 0,
768 181, 181, 182, 182, 183, 183, 183, 183, 183, 183,
769 183, 184, 184, 186, 185, 187, 187, 188, 188, 189,
770 189, 189, 189, 190, 189, 191, 189, 192, 192, 192,
771 192, 193, 192, 194, 192, 196, 197, 195, 198, 198,
772 198, 198, 199, 201, 200, 203, 202, 204, 204, 205,
773 205, 206, 206, 207, 207, 208, 209, 209, 210, 210,
774 210, 210, 210, 211, 211, 213, 212, 214, 212, 212,
775 212, 212, 216, 215, 217, 215, 215, 215, 215, 218,
776 218, 220, 219, 222, 221, 223, 223, 223, 223, 223,
777 224, 225, 226, 226, 227, 227, 227, 227, 227, 227,
778 227, 227, 229, 228, 230, 228, 231, 231, 233, 232,
779 234, 232, 235, 236, 236, 237, 237, 238, 238, 238,
780 238, 238, 238, 238, 238, 239, 239, 240, 240, 241,
781 241, 241, 241, 241, 241, 241, 241, 242, 242, 243,
782 243, 243, 243, 243, 243, 244, 244, 244, 244, 244,
783 244, 244, 244, 244, 245, 245, 246, 246, 246, 246,
784 246, 246, 246, 246, 246, 246, 246, 247, 249, 248,
785 250, 250, 251, 251, 252, 252, 252, 252, 253, 253,
786 253, 254, 254, 254, 255, 255, 255, 255, 255, 256,
787 256, 256, 257, 257, 258, 258, 259, 259, 260, 261,
788 260, 262, 263, 262, 264, 265, 266, 264, 267, 267,
789 267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
790 268, 268, 269, 269, 270, 271, 271, 271, 272, 273,
791 272, 274, 272, 275, 276, 275, 278, 277, 277, 277,
792 279, 280, 281, 282, 282, 283, 283, 284, 284, 284,
793 285, 285, 286, 286, 286, 286, 286, 287, 287, 287,
794 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
795 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
796 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
797 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
798 287, 287, 288, 288, 288, 288, 289, 289, 289, 289,
799 289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
800 290, 291, 291, 292, 292, 293, 293, 293, 294, 294,
801 296, 297, 295, 298, 299, 295, 295, 295, 300, 301,
802 295, 302, 303, 295, 295, 295, 295, 295, 304, 305,
803 305, 305, 306, 306, 307, 307, 308, 308, 308, 309,
804 310, 309, 309, 311, 311, 311, 312, 312, 313, 313,
805 313, 313, 314, 314, 315, 315, 316, 316, 317, 317,
806 318, 318, 318, 318, 319, 319, 320, 320, 321, 321,
807 321, 323, 322, 324, 322, 325, 325, 326, 326, 327,
808 327, 327, 328, 328, 329, 329, 329, 329, 329, 329,
809 329, 329, 329, 330, 330, 330, 330, 330, 330, 330,
810 330, 330, 331, 332, 333, 333, 334, 334, 334, 334,
811 336, 337, 335, 339, 338, 338, 340, 340, 340, 340,
812 340, 340, 340, 340, 340, 340, 340, 340, 340, 341,
813 342, 343, 344, 344, 345, 345, 345, 345, 345, 345,
814 345, 345, 345, 345, 345, 346, 346, 348, 347, 349,
815 347, 351, 350, 352, 350, 353, 353, 354, 355, 356,
816 357, 358, 359, 360, 360, 360, 360, 360, 360, 360,
817 360, 361, 362, 362, 362, 362, 363, 363, 364, 364,
818 365, 365, 366, 366, 367, 367, 367, 368, 369, 370,
819 369, 371, 369, 372, 373, 375, 376, 374, 377, 378,
820 377, 379, 379, 379, 379, 380, 380, 381, 381, 381,
821 381, 381, 381, 381, 381, 381, 382, 382, 382, 382,
822 382, 382, 382, 382, 382, 382, 383, 383, 384, 384,
823 384, 384, 385, 385, 385, 386, 386, 386, 387, 387,
824 387, 387, 387, 388, 388, 388, 389, 389, 390, 390,
825 391, 391, 392, 392, 393, 393, 394, 395, 396, 394,
826 397, 397, 397, 397, 397, 397, 397, 397, 397, 397,
827 397, 397, 398, 398, 399, 400, 400, 400, 401, 401,
828 401, 401, 402, 402, 402, 402, 402, 402, 402, 402,
829 402, 402, 403, 403, 404, 405, 405, 405, 405, 406,
833 static const short yyr2[] = { 0,
834 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
835 1, 8, 11, 0, 5, 1, 3, 1, 2, 1,
836 6, 3, 6, 0, 6, 0, 7, 1, 6, 3,
837 6, 0, 6, 0, 7, 0, 0, 10, 3, 3,
838 3, 2, 1, 0, 2, 0, 2, 1, 2, 1,
839 2, 1, 2, 1, 3, 2, 1, 1, 1, 1,
840 1, 1, 1, 0, 2, 0, 6, 0, 6, 1,
841 1, 0, 0, 5, 0, 5, 1, 1, 0, 1,
842 0, 0, 3, 0, 3, 1, 1, 1, 1, 1,
843 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
844 1, 1, 0, 7, 0, 8, 1, 3, 0, 3,
845 0, 3, 2, 3, 2, 2, 1, 1, 1, 3,
846 4, 2, 3, 3, 3, 1, 1, 1, 3, 1,
847 1, 3, 4, 2, 3, 3, 3, 1, 3, 1,
848 1, 1, 3, 1, 1, 1, 4, 3, 4, 6,
849 5, 5, 2, 2, 1, 3, 1, 2, 2, 2,
850 2, 2, 2, 2, 2, 1, 1, 9, 0, 3,
851 4, 2, 1, 4, 1, 3, 3, 3, 1, 3,
852 3, 1, 3, 3, 1, 3, 3, 3, 3, 1,
853 3, 3, 1, 3, 1, 3, 1, 3, 1, 0,
854 4, 1, 0, 4, 1, 0, 0, 7, 1, 3,
855 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
856 1, 3, 0, 1, 1, 1, 1, 1, 3, 0,
857 9, 0, 11, 2, 0, 6, 0, 7, 4, 4,
858 0, 0, 2, 1, 4, 0, 4, 1, 3, 4,
859 1, 3, 1, 1, 1, 1, 1, 2, 2, 2,
860 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
861 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
862 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
863 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
864 2, 2, 1, 1, 1, 1, 2, 2, 2, 2,
865 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
866 3, 1, 4, 1, 3, 2, 2, 2, 0, 1,
867 0, 0, 11, 0, 0, 11, 6, 6, 0, 0,
868 10, 0, 0, 10, 5, 5, 4, 4, 0, 1,
869 1, 2, 5, 3, 2, 4, 1, 2, 3, 6,
870 0, 8, 4, 1, 3, 2, 1, 4, 1, 1,
871 2, 2, 1, 2, 1, 2, 1, 1, 1, 2,
872 1, 2, 2, 3, 1, 3, 1, 3, 1, 1,
873 3, 0, 2, 0, 4, 4, 1, 1, 2, 1,
874 1, 2, 0, 1, 5, 2, 3, 3, 4, 3,
875 4, 4, 5, 1, 1, 1, 1, 1, 1, 1,
876 1, 1, 1, 1, 1, 2, 2, 7, 6, 2,
877 0, 0, 10, 0, 6, 1, 1, 1, 1, 2,
878 1, 1, 1, 1, 1, 1, 1, 3, 1, 2,
879 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
880 1, 1, 3, 1, 1, 3, 2, 0, 5, 0,
881 6, 0, 4, 0, 5, 3, 2, 3, 0, 0,
882 0, 0, 0, 1, 2, 2, 3, 2, 3, 3,
883 4, 2, 2, 3, 3, 4, 1, 2, 1, 2,
884 1, 2, 1, 2, 1, 2, 1, 4, 2, 0,
885 5, 0, 6, 4, 4, 0, 0, 10, 1, 0,
886 4, 1, 1, 1, 1, 1, 3, 1, 4, 3,
887 4, 6, 5, 5, 2, 2, 1, 2, 2, 2,
888 2, 2, 2, 2, 2, 1, 1, 4, 1, 3,
889 3, 3, 1, 3, 3, 1, 3, 3, 1, 3,
890 3, 3, 3, 1, 3, 3, 1, 3, 1, 3,
891 1, 3, 1, 3, 1, 3, 1, 0, 0, 7,
892 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
893 3, 3, 1, 0, 1, 2, 7, 2, 2, 7,
894 6, 2, 3, 2, 3, 2, 3, 3, 3, 3,
895 2, 3, 0, 1, 1, 1, 1, 1, 1, 1,
899 static const short yydefact[] = { 0,
900 11, 381, 349, 227, 349, 14, 0, 0, 0, 0,
901 241, 241, 254, 253, 255, 256, 257, 241, 241, 241,
902 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
903 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
904 241, 241, 241, 304, 305, 306, 303, 241, 241, 241,
905 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
906 241, 241, 241, 241, 349, 349, 349, 349, 349, 349,
907 349, 349, 349, 349, 619, 616, 617, 618, 620, 621,
908 0, 3, 6, 7, 373, 8, 9, 349, 43, 613,
909 10, 226, 228, 0, 329, 329, 349, 329, 349, 322,
910 349, 0, 349, 107, 241, 20, 349, 377, 378, 379,
911 382, 383, 244, 241, 241, 237, 349, 349, 349, 0,
912 465, 241, 472, 0, 0, 0, 595, 0, 0, 0,
913 0, 241, 505, 0, 241, 241, 241, 241, 241, 241,
914 241, 241, 241, 0, 42, 0, 0, 0, 0, 0,
915 0, 241, 145, 615, 141, 142, 516, 144, 146, 157,
916 173, 167, 166, 175, 179, 182, 185, 190, 193, 195,
917 197, 199, 202, 205, 209, 221, 507, 169, 0, 0,
918 497, 455, 456, 457, 458, 0, 0, 459, 241, 460,
919 0, 461, 0, 462, 464, 140, 0, 449, 0, 503,
920 0, 479, 436, 0, 0, 0, 445, 0, 446, 425,
921 444, 441, 442, 437, 438, 439, 0, 0, 443, 0,
922 0, 0, 447, 424, 0, 258, 259, 260, 261, 266,
923 268, 267, 271, 272, 283, 285, 286, 284, 269, 270,
924 262, 263, 264, 265, 280, 281, 278, 282, 273, 274,
925 277, 275, 276, 289, 291, 296, 279, 292, 293, 294,
926 295, 287, 288, 290, 297, 298, 301, 302, 299, 300,
927 307, 309, 308, 310, 311, 312, 313, 314, 315, 316,
928 4, 241, 0, 109, 113, 499, 349, 349, 614, 5,
929 349, 330, 326, 327, 320, 328, 0, 241, 241, 318,
930 241, 241, 0, 319, 374, 317, 380, 384, 349, 0,
931 243, 349, 0, 234, 241, 613, 16, 18, 0, 349,
932 241, 28, 392, 241, 615, 141, 173, 225, 468, 0,
933 241, 241, 241, 223, 0, 604, 606, 611, 0, 0,
934 349, 398, 0, 0, 160, 165, 164, 163, 162, 161,
935 0, 241, 158, 159, 241, 0, 0, 0, 0, 0,
936 241, 474, 241, 467, 241, 414, 415, 416, 417, 0,
937 418, 419, 241, 421, 241, 420, 422, 479, 241, 241,
938 153, 154, 0, 241, 241, 241, 241, 241, 241, 241,
939 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
940 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
941 200, 206, 203, 506, 241, 0, 602, 39, 0, 480,
942 498, 509, 599, 0, 241, 241, 0, 0, 0, 504,
943 40, 426, 430, 440, 451, 452, 450, 0, 0, 41,
944 22, 241, 392, 349, 241, 479, 500, 241, 229, 108,
945 349, 0, 324, 0, 349, 0, 349, 0, 241, 241,
946 240, 241, 239, 235, 349, 0, 241, 0, 349, 241,
947 19, 389, 0, 0, 375, 390, 241, 0, 0, 241,
948 0, 512, 0, 224, 0, 603, 612, 143, 241, 241,
949 0, 400, 399, 401, 241, 463, 241, 0, 607, 608,
950 609, 610, 605, 470, 0, 0, 598, 349, 477, 596,
951 0, 0, 148, 0, 155, 0, 0, 0, 210, 211,
952 212, 213, 214, 215, 216, 217, 218, 219, 220, 176,
953 177, 178, 181, 180, 183, 184, 186, 187, 188, 189,
954 191, 192, 194, 196, 198, 241, 241, 241, 222, 241,
955 170, 493, 144, 497, 0, 349, 478, 510, 0, 466,
956 0, 448, 434, 0, 0, 24, 0, 484, 241, 501,
957 110, 349, 241, 349, 479, 112, 241, 230, 323, 241,
958 339, 0, 347, 342, 0, 348, 0, 364, 367, 361,
959 363, 245, 241, 241, 613, 15, 30, 241, 392, 241,
960 17, 376, 385, 387, 36, 394, 349, 393, 397, 241,
961 473, 508, 0, 514, 223, 321, 406, 0, 392, 402,
962 241, 0, 174, 349, 241, 0, 241, 476, 492, 0,
963 517, 241, 149, 147, 241, 241, 201, 0, 204, 241,
964 172, 494, 495, 241, 241, 241, 515, 241, 241, 349,
965 44, 26, 485, 488, 241, 241, 486, 241, 502, 0,
966 232, 241, 325, 345, 481, 331, 346, 481, 334, 241,
967 366, 241, 0, 0, 241, 241, 241, 0, 32, 0,
968 241, 0, 46, 391, 241, 403, 469, 241, 0, 407,
969 410, 241, 0, 408, 0, 392, 0, 0, 241, 475,
970 241, 241, 156, 151, 152, 207, 0, 496, 511, 0,
971 241, 241, 241, 241, 241, 241, 241, 241, 241, 0,
972 141, 142, 144, 157, 173, 166, 179, 182, 185, 190,
973 193, 195, 197, 199, 202, 0, 520, 519, 528, 537,
974 547, 549, 553, 556, 559, 564, 567, 569, 571, 573,
975 575, 577, 581, 522, 140, 0, 23, 25, 72, 44,
976 489, 490, 241, 487, 21, 241, 246, 349, 337, 481,
977 349, 338, 481, 360, 365, 241, 0, 238, 241, 248,
978 236, 241, 0, 349, 46, 34, 0, 386, 388, 37,
979 79, 395, 369, 0, 241, 403, 370, 404, 513, 431,
980 0, 411, 409, 412, 0, 0, 150, 471, 0, 520,
981 241, 171, 601, 0, 0, 160, 165, 164, 163, 162,
982 161, 158, 159, 241, 241, 241, 153, 154, 0, 241,
983 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
984 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
985 241, 241, 241, 241, 241, 241, 200, 578, 203, 435,
986 0, 429, 66, 82, 70, 86, 87, 88, 89, 90,
987 93, 94, 45, 72, 48, 71, 349, 349, 52, 27,
988 491, 241, 0, 351, 349, 349, 350, 349, 349, 349,
989 368, 241, 251, 0, 246, 12, 31, 33, 46, 29,
990 613, 73, 84, 77, 47, 79, 50, 78, 392, 396,
991 371, 372, 223, 405, 413, 0, 0, 479, 208, 600,
992 143, 241, 0, 148, 0, 0, 0, 0, 582, 583,
993 584, 585, 586, 587, 588, 589, 590, 591, 592, 176,
994 177, 178, 181, 180, 183, 184, 186, 187, 188, 189,
995 191, 192, 194, 196, 198, 574, 241, 576, 241, 428,
996 349, 64, 613, 49, 103, 0, 53, 246, 241, 349,
997 0, 241, 352, 340, 349, 343, 349, 362, 249, 241,
998 613, 35, 0, 349, 64, 613, 51, 241, 432, 241,
999 597, 594, 174, 241, 149, 147, 241, 241, 0, 521,
1000 349, 59, 60, 61, 62, 63, 613, 54, 64, 0,
1001 0, 0, 119, 83, 128, 613, 0, 118, 0, 95,
1002 100, 99, 98, 97, 96, 101, 102, 105, 0, 231,
1003 241, 354, 241, 241, 349, 357, 0, 332, 0, 335,
1004 250, 252, 0, 38, 613, 613, 85, 613, 117, 241,
1005 0, 168, 593, 480, 0, 151, 152, 579, 0, 64,
1006 0, 65, 58, 56, 57, 0, 122, 0, 0, 0,
1007 0, 0, 115, 0, 0, 131, 138, 613, 130, 0,
1008 241, 247, 358, 241, 0, 355, 241, 341, 0, 344,
1009 0, 13, 81, 81, 116, 433, 518, 150, 241, 81,
1010 55, 81, 123, 120, 127, 126, 0, 124, 125, 129,
1011 114, 0, 134, 0, 0, 0, 0, 0, 613, 233,
1012 349, 353, 359, 333, 336, 74, 80, 76, 580, 67,
1013 69, 121, 135, 132, 0, 136, 137, 139, 92, 241,
1014 0, 356, 133, 104, 91, 241, 106, 0, 0, 0
1017 static const short yydefgoto[] = { 1148,
1018 81, 82, 83, 84, 119, 316, 317, 85, 651, 760,
1019 318, 785, 899, 86, 683, 901, 884, 88, 758, 759,
1020 790, 791, 873, 905, 874, 1007, 1008, 1064, 1009, 1010,
1021 875, 961, 962, 907, 984, 985, 1126, 1127, 963, 908,
1022 986, 877, 1146, 1140, 878, 1028, 879, 1019, 1080, 89,
1023 285, 444, 446, 90, 1014, 1047, 1015, 1107, 1016, 1077,
1024 1078, 159, 160, 514, 161, 162, 163, 416, 551, 164,
1025 165, 166, 167, 168, 169, 170, 171, 172, 173, 546,
1026 174, 548, 175, 547, 811, 176, 204, 485, 329, 286,
1027 92, 662, 766, 113, 594, 93, 312, 178, 283, 114,
1028 115, 883, 781, 894, 95, 96, 97, 98, 342, 287,
1029 452, 100, 293, 101, 770, 1089, 773, 1091, 665, 1037,
1030 668, 1039, 102, 886, 887, 1034, 1035, 103, 673, 587,
1031 588, 795, 117, 474, 110, 111, 105, 602, 603, 475,
1032 476, 477, 685, 608, 343, 801, 797, 494, 364, 205,
1033 225, 206, 207, 365, 913, 1051, 209, 648, 210, 211,
1034 212, 213, 180, 421, 366, 367, 479, 626, 368, 330,
1035 505, 369, 185, 370, 557, 768, 974, 218, 571, 509,
1036 420, 187, 572, 573, 371, 188, 189, 372, 645, 613,
1037 373, 221, 374, 378, 702, 737, 861, 738, 739, 740,
1038 741, 742, 743, 744, 745, 746, 747, 748, 749, 750,
1039 751, 752, 753, 957, 1099, 754, 1054, 375, 376, 194,
1040 377, 290, 196, 197, 107
1043 static const short yypact[] = { 1812,
1044 -32768, 148, 5048,-32768, 6116,-32768, 432, 2708, 3070, 3070,
1045 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1046 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1047 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1048 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1049 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1050 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1051 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1052 1993,-32768,-32768,-32768, 236,-32768,-32768, 4898,-32768, 67,
1053 -32768,-32768,-32768, 71, 5848, 5848,-32768, 5848, 89, 104,
1054 -32768, 1025,-32768,-32768, 432,-32768,-32768,-32768,-32768,-32768,
1055 148,-32768,-32768, 178,-32768, 89,-32768,-32768, 5048, 183,
1056 -32768, 5313,-32768, 221, 281, 290,-32768, 299, 432, 177,
1057 311, 755,-32768, 2348, 5313, 5313, 5313, 5313, 5313, 5313,
1058 -32768, 5338, 5338, 362,-32768, 376, 388, 416, 422, 434,
1059 171, 4350,-32768, 436, 444,-32768, 464,-32768,-32768, 734,
1060 844,-32768,-32768,-32768, 1072, 197, 248, 637, 315, 472,
1061 470, 481, 483, 210,-32768,-32768, 132,-32768, 3112, 459,
1062 485,-32768,-32768,-32768,-32768, 525, 2750,-32768, 4350,-32768,
1063 3112,-32768, 3112,-32768,-32768,-32768, 539,-32768, 566,-32768,
1064 2528, 464, 562, 405, 517, 2889,-32768, 3070,-32768,-32768,
1065 -32768, 5610,-32768,-32768,-32768,-32768, 597, 621,-32768, 3070,
1066 3070, 3112,-32768,-32768, 558,-32768,-32768,-32768,-32768,-32768,
1067 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1068 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1069 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1070 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1071 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1072 -32768, 629, 640,-32768,-32768,-32768, 89, 4743,-32768,-32768,
1073 -32768,-32768,-32768,-32768,-32768,-32768, 665, 381,-32768,-32768,
1074 432, 432, 223,-32768, 236,-32768,-32768,-32768,-32768, 671,
1075 -32768,-32768, 700, 701, 381, 67,-32768, 656, 703,-32768,
1076 432,-32768, 169, 5313,-32768,-32768,-32768,-32768,-32768, 712,
1077 5313, 5313, 5313, 5200, 719,-32768,-32768,-32768, 453, 506,
1078 5480, 491, 720, 726,-32768,-32768,-32768,-32768,-32768,-32768,
1079 735, 5313,-32768,-32768, 5313, 753, 786, 791, 794, 797,
1080 5313,-32768, 1381,-32768, 4350,-32768,-32768,-32768,-32768, 810,
1081 -32768,-32768, 4350,-32768, 4350,-32768,-32768,-32768, 5219, 5313,
1082 -32768,-32768, 112, 5313, 5313, 5313, 5313, 5313, 5313, 5313,
1083 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313,
1084 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313,
1085 -32768,-32768,-32768,-32768, 5313, 776,-32768,-32768, 2168,-32768,
1086 -32768, 831,-32768, 852, 4350, 5313, 603, 833, 853,-32768,
1087 -32768,-32768,-32768, 5610,-32768,-32768,-32768, 1684, 861,-32768,
1088 -32768, 5313, 253, 3249, 381, 862,-32768, 381,-32768, 530,
1089 6116, 808, 905, 908, 915, 917, 915, 432, 926, 381,
1090 -32768, 381,-32768,-32768,-32768, 877, 919, 924,-32768, 381,
1091 656,-32768, 432, 946,-32768, 952, 432, 393, 954, 4350,
1092 642, 963, 648, 963, 968,-32768,-32768,-32768,-32768, 5244,
1093 967, 686,-32768, 691, 5313,-32768,-32768, 971,-32768,-32768,
1094 -32768,-32768,-32768,-32768, 989, 976,-32768, 3249,-32768,-32768,
1095 1008, 1009,-32768, 670,-32768, 115, 432, 432,-32768,-32768,
1096 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1097 -32768,-32768, 1072, 1072, 197, 197, 248, 248, 248, 248,
1098 637, 637, 315, 472, 470, 5313, 5313, 5313,-32768, 5381,
1099 -32768,-32768, 5956,-32768, 2931, 3424,-32768,-32768, 1012,-32768,
1100 727,-32768,-32768, 1028, 998,-32768, 1013,-32768, 3774,-32768,
1101 -32768, 3599, 3816,-32768, 862,-32768,-32768, 1049,-32768,-32768,
1102 1035, 1052,-32768, 1062, 1064,-32768, 358,-32768, 1067,-32768,
1103 -32768,-32768, 178,-32768, 327,-32768,-32768, 5313, 259, 381,
1104 -32768,-32768, 1077,-32768,-32768, 1080, 6116,-32768,-32768, 4350,
1105 -32768,-32768, 1079,-32768, 5200,-32768,-32768, 1070, 704, 691,
1106 5269, 1088,-32768,-32768,-32768, 1095, 4350,-32768,-32768, 1098,
1107 -32768, 5313,-32768,-32768,-32768,-32768, 481, 451, 483, 5313,
1108 -32768,-32768,-32768, 3952, 4350, 5313,-32768, 5406, 5313,-32768,
1109 -32768,-32768,-32768,-32768, 3994, 4130,-32768, 4172,-32768, 1101,
1110 -32768,-32768,-32768,-32768,-32768, 1081,-32768,-32768, 1082,-32768,
1111 432,-32768, 432, 1109, 4770,-32768,-32768, 1102,-32768, 1103,
1112 -32768, 305,-32768,-32768, 432, 548,-32768, 4350, 1112,-32768,
1113 -32768, 103, 1106,-32768, 1107, 107, 1114, 1108, 4350,-32768,
1114 5313, 5406,-32768,-32768,-32768,-32768, 1116,-32768,-32768, 740,
1115 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5338, 5338, 1119,
1116 747, 772, 778, 847, 1282, 806, 1075, 668, 799, 795,
1117 730, 1110, 1105, 1111, 1091, 275, 1125,-32768,-32768,-32768,
1118 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1119 -32768,-32768,-32768,-32768, 809, 814,-32768,-32768, 1076,-32768,
1120 -32768,-32768, 4308,-32768,-32768,-32768,-32768, 6042,-32768,-32768,
1121 6042,-32768,-32768,-32768,-32768, 5313, 840,-32768, 4770,-32768,
1122 -32768, 4770, 1074,-32768,-32768,-32768, 1137,-32768,-32768,-32768,
1123 1142,-32768, 236, 1140,-32768, 325,-32768, 691,-32768,-32768,
1124 1157,-32768,-32768,-32768, 1160, 432,-32768,-32768, 817, 1161,
1125 5313,-32768, 1147, 845, 1162, 857, 858, 859, 866, 912,
1126 935, 937, 938, 5313, 5294, 5313, 960, 962, 117, 5313,
1127 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313,
1128 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313,
1129 5313, 5313, 5313, 5313, 5313, 5313, 5313,-32768, 5313,-32768,
1130 1168, 1173, 95,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1131 -32768,-32768,-32768, 1043,-32768,-32768,-32768,-32768, 997,-32768,
1132 -32768, 4770, 477,-32768, 89, 4972,-32768, 6042, 4972, 6042,
1133 -32768,-32768,-32768, 848,-32768,-32768,-32768,-32768,-32768,-32768,
1134 67, 105,-32768,-32768,-32768, 1048,-32768,-32768, 266,-32768,
1135 -32768,-32768, 5200,-32768,-32768, 1167, 1175, 862,-32768,-32768,
1136 979, 5313, 1174, 982, 987, 191, 432, 432,-32768,-32768,
1137 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 999,
1138 1001, 1014, 907, 1007, 443, 594, 76, 521, 617, 742,
1139 609, 669, 570, 749, 313, 481, 5313, 483, 5406,-32768,
1140 5740, 502, 120,-32768,-32768, 674,-32768,-32768,-32768,-32768,
1141 1178, 62,-32768,-32768, 4972,-32768, 4972,-32768,-32768, 920,
1142 542,-32768, 1113, 5740, 502, 120,-32768, 57,-32768,-32768,
1143 -32768, 1019, 1023,-32768, 1024, 1026,-32768,-32768, 867,-32768,
1144 4586,-32768,-32768,-32768,-32768,-32768, 550,-32768, 502, 723,
1145 74, 74,-32768,-32768, 382, 560, 1117,-32768, 93,-32768,
1146 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 571,-32768,
1147 381,-32768, 5313, 1177,-32768, 1179, 1183,-32768, 1185,-32768,
1148 -32768,-32768, 1120,-32768, 4430, 550,-32768, 560,-32768, 310,
1149 1181,-32768,-32768,-32768, 1184, 1032, 1039,-32768, 1121, 502,
1150 1123,-32768,-32768,-32768,-32768, 283, 382, 186, 432, 432,
1151 74, 1139,-32768, 93, 93,-32768, 396, 580,-32768, 93,
1152 -32768,-32768,-32768, 62, 1217,-32768, 5313,-32768, 1216,-32768,
1153 1218,-32768, 1165, 1165,-32768,-32768,-32768, 1041, 5313, 1165,
1154 -32768, 1165,-32768,-32768,-32768, 382, 1213,-32768,-32768, 382,
1155 -32768, 486, 396, 331, 432, 432, 93, 1154, 580,-32768,
1156 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1157 -32768,-32768,-32768,-32768, 1215,-32768,-32768, 396,-32768,-32768,
1158 1156,-32768,-32768,-32768,-32768,-32768,-32768, 1244, 1245,-32768
1161 static const short yypgoto[] = {-32768,
1162 -32768, 1169,-32768,-32768,-32768,-32768, -453, -103,-32768,-32768,
1163 925,-32768,-32768,-32768,-32768,-32768, 80,-32768, 488,-32768,
1164 -707,-32768,-32768,-32768, -703, 267, 196,-32768,-32768, 245,
1165 384,-32768,-32768, 353,-32768,-32768, -648, -689,-32768,-32768,
1166 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1167 -32768,-32768,-32768,-32768,-32768,-32768, -860, 146, 277, -858,
1168 184,-32768, -602, 442, 515,-32768, -556,-32768,-32768, 137,
1169 -326, -311, -246, -330, -363, -362, -395, -530, -469,-32768,
1170 -554,-32768, -78,-32768,-32768, 787, 836, -607, -355, 1,
1171 -32768,-32768,-32768, -456,-32768,-32768,-32768, 0, -244, 811,
1172 -32768, -782, -676,-32768,-32768,-32768,-32768,-32768,-32768, 128,
1173 690,-32768, 644,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1174 -32768,-32768, 97, -669, -512,-32768, 188,-32768,-32768, 601,
1175 607, 487, 5, -374, 1176,-32768, 11,-32768,-32768, -553,
1176 -32768,-32768,-32768, 600, -292, 947,-32768, -483, 1022, 1278,
1177 -32768, 1069,-32768, 1060,-32768,-32768,-32768,-32768, -97,-32768,
1178 -32768,-32768,-32768, 317, 1078, 1115,-32768,-32768, 1267,-32768,
1179 -32768, -353,-32768, 635, 238, -529, -714,-32768, 785,-32768,
1180 -32768, 876, -23, -446, 111,-32768, 174, 59,-32768,-32768,
1181 194,-32768, 220,-32768,-32768, 595,-32768, 337,-32768,-32768,
1182 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1183 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1321,-32768,-32768,
1184 1367, -302, -255, 68,-32768
1191 static const short yytable[] = { 94,
1192 91, 305, 94, 592, 104, 504, 453, 689, 620, 506,
1193 226, 227, 112, 466, 545, 637, 601, 228, 229, 230,
1194 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
1195 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
1196 251, 252, 253, 328, 543, 724, 544, 254, 255, 256,
1197 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
1198 267, 268, 269, 270, 288, 693, 190, 106, 567, 876,
1199 106, 533, 534, 468, 120, 541, 542, 898, 639, 87,
1200 94, 91, 490, 1033, 289, 104, 565, 906, 535, 536,
1201 2, 726, 576, 736, 291, 2, -560, 1011, 297, 724,
1202 -560, 889, 893, 428, 94, 895, -241, 1012, 432, 644,
1203 433, 472, 981, 310, 311, 313, 1074, 734, 319, 219,
1204 219, 308, 437, 400, 401, 656, 1075, 99, 490, 321,
1205 116, 804, 118, 341, 618, 415, 2, 289, 771, 517,
1206 351, 634, 805, 1011, 927, 726, 681, 736, 106, 414,
1207 1066, 1067, 415, 1012, 518, 537, 538, 539, 540, 928,
1208 87, 271, 272, 273, 274, 275, 276, 277, 278, 279,
1209 280, 734, 106, 472, 976, 967, 361, 362, 735, -68,
1210 -68, 2, 220, 220, 876, 1029, 322, 299, 434, -75,
1211 -75, 982, 190, 295, 336, 298, 335, 300, 309, 304,
1212 341, 191, 798, 306, 624, 968, 323, 1106, 99, 1011,
1213 1110, 415, 1104, 314, 315, 1112, 1113, 996, 975, 1012,
1214 977, 506, 292, 292, 680, 292, 468, 192, 398, 399,
1215 75, 76, 735, 77, 78, 75, 76, 190, 77, 78,
1216 888, 458, 678, 890, 331, 190, 320, 325, 1013, 190,
1217 412, 190, 733, 1106, 108, 109, 383, 472, 1138, -242,
1218 1038, 282, 1040, 472, 413, 695, 325, 1076, -68, -68,
1219 472, 345, 346, 347, 348, 349, 350, 566, -75, -75,
1220 190, 442, 328, 679, 731, 732, 297, 453, 447, -349,
1221 691, -349, 677, 325, 1013, 400, 401, 94, 451, -349,
1222 454, 456, 450, 1042, 332, 989, 733, 1103, 1068, 788,
1223 1069, 219, 798, 333, 94, 858, 219, 730, 219, 465,
1224 319, 727, 334, 341, 181, 1070, 956, 191, 337, 859,
1225 219, 219, 698, -572, -400, 490, 728, -572, 731, 732,
1226 432, 491, -349, -349, 289, -349, -349, 707, -241, 676,
1227 490, 409, 492, 192, 1011, 693, 724, 1134, 2, 325,
1228 1013, 1105, 341, 328, 1012, 106, 406, 407, 455, 457,
1229 459, 730, 191, 973, 220, 727, 973, 670, 671, 220,
1230 191, 220, 106, 445, 191, 355, 191, 448, 322, 958,
1231 728, 356, 755, 220, 220, 556, 75, 76, 192, 77,
1232 78, 729, 726, 357, 736, 460, 192, 1068, 462, 1069,
1233 192, 328, 192, 415, 2, 191, 470, 488, 815, 473,
1234 891, 1114, 430, 1115, 1070, 415, -349, -349, 734, -349,
1235 -349, 358, -349, -349, 447, -349, -349, 359, 1116, -349,
1236 -349, 192, -349, -349, 94, 1128, 755, 94, 360, 574,
1237 344, 1130, 577, 1131, 582, 729, 585, -619, 591, 94,
1238 955, 94, 973, -557, 973, -616, 598, -557, 489, 319,
1239 487, 415, 706, 415, 398, 399, 607, 190, 75, 76,
1240 321, 77, 78, 75, 76, -617, 77, 78, 616, 735,
1241 953, 491, 954, 622, 969, 417, 451, 970, 75, 76,
1242 408, 77, 78, 911, 325, 1013, 1105, 423, 409, 424,
1243 1133, 1114, 106, 1115, -241, 106, 490, 943, 944, 328,
1244 410, 951, 952, 414, 2, 589, 415, 106, 1116, 106,
1245 488, 530, 531, 532, 945, 946, 411, 322, 439, 473,
1246 604, -561, 328, 419, 609, -561, 578, -349, 219, 418,
1247 -349, 583, -349, 586, 75, 76, 447, 77, 78, 289,
1248 425, 595, 970, 733, 992, 600, 620, 289, 400, 401,
1249 1060, -241, 447, 490, 1082, -453, 660, 289, 489, 451,
1250 1071, 2, 793, -618, 635, 636, 1002, 1003, 1081, 426,
1251 -568, 970, 674, 675, -568, 731, 732, 289, 983, 319,
1252 1117, 947, 948, 949, 950, 75, 76, 431, 77, 78,
1253 321, 220, 191, 190, -558, 435, 1004, 1005, -558, 622,
1254 430, 406, 407, 415, 451, 398, 399, 488, 730, -565,
1255 1006, 623, 727, -565, 704, 705, 327, -562, 192, 341,
1256 436, -562, 186, 217, 217, 402, 403, 728, 440, 327,
1257 327, 327, 327, 327, 327, 441, 353, 354, 404, 405,
1258 1017, 767, 415, 443, 400, 401, 612, 322, 415, 774,
1259 578, 776, 614, 402, 403, 782, 783, 1083, 1043, -242,
1260 787, 467, 449, 1049, 607, 794, 404, 405, 461, -566,
1261 632, 491, 793, -566, 633, 473, 796, 328, 1059, 844,
1262 845, 1055, 492, 755, 1061, 402, 403, 1018, 472, -241,
1263 341, 490, 729, 1072, -241, 692, 621, 463, 404, 405,
1264 697, 75, 76, 464, 77, 78, 469, -349, 691, -349,
1265 1018, 1123, 919, 480, 686, 554, 486, -349, 589, 294,
1266 589, 296, 1093, 1094, 495, 1095, 757, 415, 191, 789,
1267 496, 647, 609, 106, 1065, 1018, 1018, 379, 497, 380,
1268 415, -349, -563, 1079, 813, 882, -563, -525, 186, -570,
1269 499, -525, 338, -570, 192, 1118, -349, 408, 324, 381,
1270 382, 852, 853, 135, 136, 137, 138, 139, 140, 400,
1271 401, 1020, -526, 1021, 910, 794, -526, 622, -524, 141,
1272 142, 143, -524, 500, 1022, 1023, 796, 1024, 501, 1025,
1273 1026, 502, 1018, 186, 503, 1018, 1141, 550, 1079, 1079,
1274 829, 186, 1027, 144, 1079, 186, -546, 186, 508, -523,
1275 -546, 848, 849, -523, 415, 217, 429, 415, 862, 558,
1276 217, 917, 217, 177, 850, 851, 846, 847, 816, 817,
1277 818, 819, 820, 821, 217, 217, 186, 562, 1018, 892,
1278 671, 1079, 559, 106, 153, 415, 384, 979, 980, 921,
1279 825, 564, 826, 916, -349, 327, 563, -540, -545, -544,
1280 897, -540, -545, -544, 971, 575, -543, 415, 1058, -349,
1281 -543, 978, 827, 828, 579, 885, 325, 1063, 885, 385,
1282 386, 387, 388, 389, 390, 391, 392, 393, 394, 327,
1283 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
1284 327, 327, 327, 327, 327, 580, 581, -555, 325, 326,
1285 156, -555, -542, -241, 158, 584, -542, 1001, 779, 1041,
1286 395, 396, 397, 324, 590, 597, 305, 599, 135, 136,
1287 137, 138, 139, 140, 328, -541, 327, -538, -539, -541,
1288 1045, -538, -539, 596, 141, 142, 143, 339, 1030, 340,
1289 605, 94, 606, 965, 966, 610, 1036, 940, 941, 942,
1290 -535, 972, -536, 415, -535, 615, -536, 794, 144, 1052,
1291 619, 625, 577, 451, 997, 998, 1056, 1057, 1050, -527,
1292 628, 447, -530, -527, 327, 988, -530, 632, 328, 327,
1293 627, 995, 512, 885, 177, 885, 885, 885, 630, -550,
1294 1129, -551, 177, -550, 650, -551, 177, -554, 177, 153,
1295 94, -554, 631, 1085, -552, 646, 427, 652, -552, 106,
1296 395, 396, 397, -548, -531, 447, -529, -548, -531, 794,
1297 -529, 649, -533, 186, 664, 106, -533, 177, 993, -534,
1298 327, -532, 327, -534, 641, -532, 1031, 179, 208, 208,
1299 666, 661, 217, 866, 867, 868, 869, 870, 871, 872,
1300 1120, 667, 669, 94, 684, 182, 214, 214, 1036, 672,
1301 301, 302, 303, 325, 326, 156, 690, 682, 106, 158,
1302 769, 772, 885, 688, 885, 395, 396, 397, 841, 842,
1303 843, 696, 327, 863, 864, 865, 699, 106, 902, 903,
1304 904, 701, 183, 215, 215, 765, 778, 786, 784, 800,
1305 802, 1086, 807, 803, 806, 327, 1108, 1109, 854, 1144,
1306 812, 498, 824, 855, 857, 1147, 863, 864, 865, 860,
1307 856, 106, 866, 867, 868, 869, 870, 871, 872, 478,
1308 896, 900, 725, 909, 920, 515, 481, 482, 483, 484,
1309 519, 520, 521, 522, 523, 524, 525, 526, 527, 528,
1310 529, 914, 1136, 1137, 915, 918, 922, 478, 959, 186,
1311 960, 990, 991, 179, 994, 1032, 1053, 1084, 478, 1044,
1312 1087, 549, 1088, 1073, 1090, 1096, 1092, 1100, 1098, 1102,
1313 422, 182, 902, 903, 904, 516, 725, 1142, 866, 867,
1314 868, 869, 870, 871, 872, 1111, 327, 327, 327, 327,
1315 327, 327, 822, 823, 1122, 1124, 864, 1125, 179, 1132,
1316 1139, 1143, 1145, 1149, 1150, 471, 179, 880, 183, 281,
1317 179, 1046, 179, 1062, 177, 1101, 182, 964, 987, 1135,
1318 208, 561, 1048, 1119, 182, 208, 925, 208, 182, 663,
1319 182, 1121, 593, 777, 184, 216, 216, 775, 214, 208,
1320 208, 179, 912, 214, 792, 214, 307, 224, 493, 438,
1321 327, 1097, 629, 183, 555, 1000, 810, 214, 214, 182,
1322 0, 183, 0, 0, 830, 183, 0, 183, 0, 0,
1323 0, 0, 0, 0, 0, 215, 0, 0, 0, 0,
1324 215, 0, 215, 0, 0, 327, 0, 0, 193, 222,
1325 222, 0, 0, 0, 215, 215, 183, 831, 832, 833,
1326 834, 835, 836, 837, 838, 839, 840, 0, 0, 0,
1327 0, 0, 0, 0, 0, 327, 327, 327, 327, 327,
1328 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
1329 327, 327, 0, 327, 195, 223, 223, 0, 0, 0,
1330 0, 0, 638, 0, 0, 0, 507, 0, 0, 0,
1331 177, 0, 0, 0, 510, 0, 511, 0, 0, -479,
1332 184, 0, 0, 0, 363, 0, 0, 0, 0, 135,
1333 136, 137, 138, 139, 140, 0, 0, 0, 703, 0,
1334 0, 0, 0, 0, 0, 141, 142, 143, 0, 0,
1335 0, 0, 0, 0, 0, 0, 327, 0, 0, 0,
1336 0, 0, 0, 0, 0, 184, 560, 0, 0, 144,
1337 484, 0, 0, 184, 193, 0, 0, 184, 0, 184,
1338 0, 780, 0, 0, 0, 570, 0, 216, 0, 0,
1339 0, 0, 216, 725, 216, 478, 0, 0, 179, 0,
1340 0, 710, 0, 0, 756, 0, 216, 216, 184, 0,
1341 153, 0, 0, 0, 0, 0, 182, 208, 0, 193,
1342 195, 611, 0, 0, 0, 0, 0, 193, 0, 0,
1343 0, 193, 0, 193, 0, 214, 0, 0, 0, 0,
1344 0, 222, 0, 0, 0, 0, 222, 0, 222, 570,
1345 0, 0, 0, 183, 0, 0, 809, 0, 0, 0,
1346 222, 222, 193, 0, 0, 195, 814, 327, 0, 0,
1347 0, 0, 215, 195, 325, 326, 156, 195, 0, 195,
1348 158, 0, 0, 0, 0, 780, 0, 223, 780, 0,
1349 0, 0, 223, 0, 223, 0, 0, 570, 0, 0,
1350 0, 0, 0, 0, 0, 0, 223, 223, 195, 0,
1351 0, 0, 0, 570, 659, 0, 0, 0, 0, 0,
1352 0, 327, 0, 0, 0, 0, 0, 0, 0, 0,
1353 923, 515, 0, 327, 179, 0, 929, 930, 931, 932,
1354 933, 934, 935, 936, 937, 938, 939, 0, 0, 0,
1355 0, 687, 182, 0, 0, 0, 0, 0, 0, 0,
1356 0, 0, 0, 0, 0, 0, 0, 0, 700, 0,
1357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1358 0, 926, 0, 0, 0, 659, 709, 0, 780, 183,
1359 0, 0, 0, 0, 0, 0, 0, 659, 0, 0,
1360 0, 0, 0, 0, 198, 184, 0, 0, 0, 122,
1361 123, 124, 0, 0, 199, 127, 128, 129, 130, 131,
1362 132, 200, -427, -427, 216, 0, 0, 201, -427, 799,
1363 0, 0, 135, 136, 137, 138, 139, 140, 0, 0,
1364 808, 0, 0, 0, 0, -241, 0, 0, 141, 142,
1365 143, 0, 0, 0, 0, 0, 0, 0, 0, 193,
1366 0, 0, 0, 0, 0, 0, 0, 0, 484, 0,
1367 0, 0, 144, 0, 0, 0, 0, 0, 222, 0,
1368 0, 0, 0, 0, 0, 0, 780, 0, 0, 0,
1369 0, 0, 0, 0, -427, 146, 147, 148, 149, 150,
1370 151, 0, 0, 0, 0, 195, 0, 0, 0, 152,
1371 0, 0, 999, 153, 0, 0, 0, 0, 0, 0,
1372 0, 0, 0, 0, 223, 0, 0, 0, 0, 0,
1373 0, -1, 1, 0, 0, 0, 0, 0, 0, 0,
1374 0, 184, 0, 0, 0, 0, 0, 0, 0, 0,
1375 0, 0, 0, 0, 0, -241, 0, 0, 0, 0,
1376 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
1377 0, 0, 0, 0, 0, 3, 0, 154, 155, 156,
1378 202, 203, 0, 158, 0, 0, 0, 0, 0, 0,
1379 0, 0, 0, 0, 0, 193, 0, -349, -349, -349,
1380 0, 4, 0, 0, 0, 5, 6, 7, 0, 0,
1381 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
1382 9, 10, 0, 0, 0, 0, 0, 0, 0, 0,
1383 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1384 13, 195, 14, 15, 16, 17, 18, 19, 20, 21,
1385 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1386 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1387 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1388 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1389 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1390 70, 71, 72, 73, 74, 75, 76, 0, 77, 78,
1391 79, 80, -2, 1, 0, 0, 0, 0, 0, 0,
1392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1393 0, 0, 0, 0, 0, 0, -241, 0, 0, 0,
1394 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
1395 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
1396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1397 0, 0, 0, 0, 0, 0, 0, 0, -349, -349,
1398 -349, 0, 4, 0, 0, 0, 5, 6, 7, 0,
1399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1400 8, 9, 10, 0, 0, 0, 0, 0, 0, 0,
1401 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
1402 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1403 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1404 30, 31, 32, 33, 34, 35, 36, 37, 38, 0,
1405 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1406 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1407 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1408 69, 70, 71, 72, 73, 74, 75, 76, 121, 77,
1409 78, 79, 80, 122, 123, 124, 0, 125, 126, 127,
1410 128, 129, 130, 131, 132, 133, -479, 552, 0, 0,
1411 0, 134, 0, 0, 0, 0, 135, 136, 137, 138,
1412 139, 140, 0, 0, 0, 0, 0, 0, 0, -241,
1413 0, 3, 141, 142, 143, 0, 0, 0, 0, 0,
1414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1415 0, 0, 0, -349, -349, -349, 144, 4, 0, 0,
1416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1417 0, 0, 0, 0, 0, 0, 0, 0, 0, 146,
1418 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
1419 0, 0, 0, 152, 11, 12, 13, 153, 14, 15,
1420 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1421 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1422 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1423 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1424 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1425 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1426 74, 154, 155, 156, 157, 78, 79, 553, 121, 0,
1427 0, 0, 0, 122, 123, 124, 0, 125, 126, 127,
1428 128, 129, 130, 131, 132, 133, -479, 0, 0, 0,
1429 0, 134, 0, 0, 0, 0, 135, 136, 137, 138,
1430 139, 140, 0, 0, 0, 0, 0, 0, 0, -241,
1431 0, 0, 141, 142, 143, 0, 0, 0, 0, 0,
1432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1433 0, 0, 0, -241, -241, -241, 144, 0, 0, 0,
1434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1435 0, 0, 0, 0, 0, 0, 0, 0, 0, 146,
1436 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
1437 0, 0, 0, 152, -241, -241, -241, 153, -241, -241,
1438 -241, -241, -241, -241, -241, -241, -241, -241, 0, -241,
1439 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1440 -241, -241, -241, -241, 0, -241, -241, -241, -241, -241,
1441 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1442 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1443 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1444 -241, 154, 155, 156, 157, 78, -241, 158, 198, 0,
1445 0, 0, 0, 122, 123, 124, 0, 0, 199, 127,
1446 128, 129, 130, 131, 132, 200, -479, -483, 0, 0,
1447 0, 201, 0, 0, 0, 0, 135, 136, 137, 138,
1448 139, 140, 0, 0, 0, 0, 0, 0, 0, -241,
1449 0, 0, 141, 142, 143, 0, 0, 0, 0, 0,
1450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1451 0, 0, 0, -241, -241, -241, 144, 0, 0, 0,
1452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1453 0, 0, 0, 0, 0, 0, 0, 0, 0, 146,
1454 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
1455 0, 0, 0, 152, -241, -241, -241, 153, -241, -241,
1456 -241, -241, -241, -241, -241, -241, -241, -241, 0, -241,
1457 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1458 -241, -241, -241, -241, 0, -241, -241, -241, -241, -241,
1459 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1460 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1461 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1462 -241, 154, 155, 156, 202, 203, -241, 158, 121, 0,
1463 0, 0, 0, 122, 123, 124, 0, 125, 126, 127,
1464 128, 129, 130, 131, 132, 133, -479, 0, 0, 0,
1465 0, 134, 0, 0, 0, 0, 135, 136, 137, 138,
1466 139, 140, 0, 0, 0, 0, 0, 0, 0, -241,
1467 121, 0, 141, 142, 143, 122, 123, 124, 0, 125,
1468 126, 127, 128, 129, 130, 131, 132, 133, -479, 0,
1469 0, 0, 0, 134, 0, 0, 144, 0, 135, 136,
1470 137, 138, 139, 140, 0, 0, 0, 0, 0, 0,
1471 0, -241, 0, 0, 141, 142, 143, 0, 145, 146,
1472 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
1473 0, 0, 0, 152, 0, 0, 0, 153, 144, 0,
1474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1476 -454, 146, 147, 148, 149, 150, 151, 0, 0, 0,
1477 0, 0, 0, 0, 0, 152, 0, 0, 0, 153,
1478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1480 0, 154, 155, 156, 157, 78, 0, 158, 0, 198,
1481 0, 0, 0, 0, 122, 123, 124, 0, 0, 199,
1482 127, 128, 129, 130, 131, 132, 200, -479, -483, 0,
1483 0, 0, 201, 0, 0, 0, 0, 135, 136, 137,
1484 138, 139, 140, 154, 155, 156, 157, 78, 0, 158,
1485 -241, 121, 0, 141, 142, 143, 122, 123, 124, 0,
1486 125, 126, 127, 128, 129, 130, 131, 132, 133, -479,
1487 642, 0, 0, 0, 134, 0, 0, 144, 0, 135,
1488 136, 137, 138, 139, 140, 0, 0, 0, 0, 0,
1489 0, 0, -241, 0, 0, 141, 142, 143, 0, -423,
1490 146, 147, 148, 149, 150, 151, 0, 0, 0, 0,
1491 0, 0, 0, 0, 152, 0, 0, 0, 153, 144,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1494 0, 0, 146, 147, 148, 149, 150, 151, 0, 0,
1495 0, 0, 0, 0, 0, 0, 152, 0, 0, 0,
1496 153, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1498 0, 0, 154, 155, 156, 202, 203, 0, 158, 0,
1499 198, 0, 0, 0, 0, 122, 123, 124, 0, 0,
1500 199, 127, 128, 129, 130, 131, 132, 200, -479, -483,
1501 0, 0, 0, 201, 0, 0, 0, 0, 135, 136,
1502 137, 138, 139, 140, 154, 155, 156, 157, 78, 0,
1503 158, -241, 121, 0, 141, 142, 143, 122, 123, 124,
1504 0, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1505 -479, 0, 0, 0, 0, 134, 0, 0, 144, 0,
1506 135, 136, 137, 138, 139, 140, 0, 0, 0, 0,
1507 0, 0, 0, -241, 0, 0, 141, 142, 143, 0,
1508 0, 146, 147, 148, 149, 150, 151, 0, 0, 0,
1509 0, 0, 0, 0, 0, 152, 0, 0, 0, 153,
1510 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1512 0, 0, 0, 146, 147, 148, 149, 150, 151, 0,
1513 0, 0, 0, 0, 0, 0, 0, 152, 0, 0,
1514 0, 153, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1516 0, 0, 0, 154, 155, 156, 202, 203, 0, 158,
1517 0, 0, 0, 0, 122, 123, 124, 0, 125, 126,
1518 127, 128, 129, 130, 131, 132, 200, -479, 568, 0,
1519 0, 0, 363, 0, 0, 0, 0, 135, 136, 137,
1520 138, 139, 140, 0, 0, 154, 155, 156, 157, 78,
1521 -241, 158, 3, 141, 142, 143, 0, 0, 0, 0,
1522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1523 0, 0, 0, 0, 0, 0, 0, 144, 4, 0,
1524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1526 146, 147, 148, 149, 150, 151, 0, 0, 0, 0,
1527 0, 0, 0, 0, 569, 11, 12, 13, 153, 14,
1528 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1529 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1530 34, 35, 36, 37, 38, 0, 39, 40, 41, 42,
1531 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1532 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1533 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1534 73, 74, 154, 155, 156, 157, 78, 79, 553, 122,
1535 123, 124, 0, 125, 126, 127, 128, 129, 130, 131,
1536 132, 200, -479, 643, 0, 0, 0, 363, 0, 0,
1537 0, 0, 135, 136, 137, 138, 139, 140, 0, 0,
1538 0, 0, 0, 0, 0, -241, 0, 3, 141, 142,
1539 143, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1541 0, 0, 144, 4, 0, 0, 0, 0, 0, 0,
1542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1543 0, 0, 0, 0, 0, 146, 147, 148, 149, 150,
1544 151, 0, 0, 0, 0, 0, 0, 0, 0, 152,
1545 11, 12, 13, 153, 14, 15, 16, 17, 18, 19,
1546 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1547 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1548 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1549 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1550 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1551 68, 69, 70, 71, 72, 73, 74, 154, 155, 156,
1552 157, 78, 79, 553, 122, 123, 124, 0, 125, 126,
1553 127, 128, 129, 130, 131, 132, 200, -479, 654, 0,
1554 0, 0, 363, 0, 0, 0, 0, 135, 136, 137,
1555 138, 139, 140, 0, 0, 0, 0, 0, 0, 0,
1556 -241, 0, 3, 141, 142, 143, 0, 0, 0, 0,
1557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1558 0, 0, 0, 0, 0, 0, 0, 144, 4, 0,
1559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1561 146, 147, 148, 149, 150, 151, 0, 0, 0, 0,
1562 0, 0, 0, 0, 655, 11, 12, 13, 153, 14,
1563 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1564 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1565 34, 35, 36, 37, 38, 0, 39, 40, 41, 42,
1566 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1567 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1568 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1569 73, 74, 154, 155, 156, 157, 78, 79, 553, 122,
1570 123, 124, 0, 125, 126, 127, 128, 129, 130, 131,
1571 132, 200, -479, 653, 0, 0, 0, 363, 0, 0,
1572 0, 0, 135, 136, 137, 138, 139, 140, 0, 0,
1573 0, 0, 0, 0, 0, 0, 0, 0, 141, 142,
1574 143, 122, 123, 124, 0, 125, 126, 127, 128, 129,
1575 130, 131, 132, 200, -479, 657, 0, 0, 0, 363,
1576 0, 0, 144, 0, 135, 136, 137, 138, 139, 140,
1577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1578 141, 142, 143, 0, 0, 146, 147, 148, 149, 150,
1579 151, 0, 0, 0, 0, 0, 0, 0, 0, 152,
1580 0, 0, 0, 153, 144, 0, 0, 0, 0, 0,
1581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1582 0, 0, 0, 0, 0, 0, 0, 146, 147, 148,
1583 149, 150, 151, 0, 0, 0, 0, 0, 0, 0,
1584 0, 658, 0, 0, 0, 153, 0, 0, 0, 0,
1585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1586 0, 0, 0, 0, 0, 0, 0, 154, 155, 156,
1587 157, 78, 0, 158, 0, 0, 0, 122, 123, 124,
1588 0, 125, 126, 127, 128, 129, 130, 131, 132, 200,
1589 -479, 708, 0, 0, 0, 363, 0, 0, 0, 0,
1590 135, 136, 137, 138, 139, 140, 0, 0, 0, 154,
1591 155, 156, 157, 78, 0, 158, 141, 142, 143, 122,
1592 123, 124, 0, 125, 126, 127, 128, 129, 130, 131,
1593 132, 200, -479, 761, 0, 0, 0, 363, 0, 0,
1594 144, 0, 135, 136, 137, 138, 139, 140, 0, 0,
1595 0, 0, 0, 0, 0, 0, 0, 0, 141, 142,
1596 143, 0, 0, 146, 147, 148, 149, 150, 151, 0,
1597 0, 0, 0, 0, 0, 0, 0, 152, 0, 0,
1598 0, 153, 144, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1600 0, 0, 0, 0, 0, 146, 147, 148, 149, 150,
1601 151, 0, 0, 0, 0, 0, 0, 0, 0, 152,
1602 0, 0, 0, 153, 0, 0, 0, 0, 0, 0,
1603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1604 0, 0, 0, 0, 0, 154, 155, 156, 157, 78,
1605 0, 158, 0, 0, 0, 122, 123, 124, 0, 125,
1606 126, 127, 128, 129, 130, 131, 132, 200, -479, 762,
1607 0, 0, 0, 363, 0, 0, 0, 0, 135, 136,
1608 137, 138, 139, 140, 0, 0, 0, 154, 155, 156,
1609 157, 78, 0, 158, 141, 142, 143, 122, 123, 124,
1610 0, 125, 126, 127, 128, 129, 130, 131, 132, 200,
1611 -479, 764, 0, 0, 0, 363, 0, 0, 144, 0,
1612 135, 136, 137, 138, 139, 140, 0, 0, 0, 0,
1613 0, 0, 0, 0, 0, 0, 141, 142, 143, 0,
1614 0, 146, 147, 148, 149, 150, 151, 0, 0, 0,
1615 0, 0, 0, 0, 0, 763, 0, 0, 0, 153,
1616 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1618 0, 0, 0, 146, 147, 148, 149, 150, 151, 0,
1619 0, 0, 0, 0, 0, 0, 0, 152, 0, 0,
1620 0, 153, 0, 0, 0, 0, 0, 0, 0, 0,
1621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1622 0, 0, 0, 154, 155, 156, 157, 78, 0, 158,
1623 0, 0, 0, 122, 123, 124, 0, 125, 126, 127,
1624 128, 129, 130, 131, 132, 200, -479, 881, 0, 0,
1625 0, 363, 0, 0, 0, 0, 135, 136, 137, 138,
1626 139, 140, 0, 0, 0, 154, 155, 156, 157, 78,
1627 0, 158, 141, 142, 143, 122, 123, 124, 0, 125,
1628 126, 127, 128, 129, 130, 131, 132, 200, -479, 0,
1629 0, 0, 0, 363, 0, 0, 144, 0, 135, 136,
1630 137, 138, 139, 140, 0, 0, 0, 0, 0, 0,
1631 0, 0, 0, 0, 141, 142, 143, 0, 0, 146,
1632 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
1633 0, 0, 0, 152, 0, 0, 0, 153, 144, 0,
1634 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1635 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1636 0, 146, 147, 148, 149, 150, 151, 289, 0, 0,
1637 0, 0, 0, 0, 0, 152, 0, 0, 0, 153,
1638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1639 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
1640 0, 154, 155, 156, 157, 78, 0, 158, 0, 0,
1641 0, 0, 0, 0, 0, -349, -349, -349, 0, 4,
1642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1644 0, 0, 0, 154, 155, 156, 157, 78, 0, 158,
1645 0, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1646 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1647 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1648 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1649 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1650 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1651 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1652 72, 73, 74, 289, 0, 0, 0, 0, 79, 80,
1653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1654 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,
1655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1657 0, 0, 0, 0, 0, 4, 0, 0, 0, 0,
1658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1659 0, 0, -613, 0, 0, 0, 0, 0, 0, 0,
1660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1661 0, 0, 11, 12, 13, 0, 14, 15, 16, 17,
1662 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1663 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1664 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1665 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1666 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1667 66, 67, 68, 69, 70, 71, 72, 73, 74, 0,
1668 0, -111, 0, 0, 79, 80, -111, 0, 0, 0,
1669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1670 0, 0, 0, 0, 0, 0, 3, 0, 779, 0,
1671 0, 0, 0, 324, 0, 0, 0, 0, 135, 136,
1672 137, 138, 139, 140, 0, 0, 0, 0, 0, 0,
1673 0, 0, 4, 0, 141, 142, 143, 0, 0, 0,
1674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1675 0, 0, 0, 0, 0, 0, 0, 0, 144, 0,
1676 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
1677 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1678 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1679 30, 31, 32, 33, 34, 35, 36, 37, 38, 153,
1680 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1681 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1682 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1683 69, 70, 71, 72, 73, 74, 284, 0, 0, 0,
1684 0, 79, 80, 0, 0, 0, 0, 0, 0, 0,
1685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1686 0, 3, 0, 325, 326, 156, 0, 0, 0, 158,
1687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1688 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,
1689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1690 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1691 0, -482, 0, 0, 0, 0, 0, 0, 0, 0,
1692 0, 0, 0, 0, 11, 12, 13, 0, 14, 15,
1693 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1694 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1695 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1696 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1697 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1698 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1699 74, -241, 0, 0, 0, 0, 79, 80, 11, 12,
1700 13, 2, 14, 15, 16, 17, 18, 19, 20, 21,
1701 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1702 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1703 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1704 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1705 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1706 70, 71, 72, 73, 74, 0, 0, 0, 0, 0,
1707 79, 80, 0, 0, 11, 12, 13, 0, 14, 15,
1708 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1709 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1710 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1711 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1712 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1713 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1714 74, 75, 76, 324, 77, 78, 79, 80, 135, 136,
1715 137, 138, 139, 140, 0, 0, 0, 0, 0, 0,
1716 0, -241, 324, 513, 141, 142, 143, 135, 136, 137,
1717 138, 139, 140, 0, 0, 0, 0, 0, 0, 0,
1718 0, 0, 0, 141, 142, 143, 0, 324, 144, 0,
1719 617, 0, 135, 136, 137, 138, 139, 140, 0, 0,
1720 0, 0, 0, 0, 0, 0, 0, 144, 141, 142,
1721 143, 0, 324, 0, 0, 694, 0, 135, 136, 137,
1722 138, 139, 140, 0, 0, 0, 0, 0, 0, 153,
1723 0, 0, 144, 141, 142, 143, 0, 324, 924, 0,
1724 0, 0, 135, 136, 137, 138, 139, 140, 153, 0,
1725 0, 0, 0, 0, 0, 0, 324, 144, 141, 142,
1726 143, 135, 136, 137, 138, 139, 140, 0, 0, 0,
1727 0, 0, 0, 153, 0, 0, 0, 141, 142, 143,
1728 0, 352, 144, 0, 0, 0, 135, 136, 137, 138,
1729 139, 140, 0, 325, 326, 156, 0, 0, 153, 158,
1730 0, 144, 141, 142, 143, 0, 0, 0, 0, 0,
1731 0, 0, 325, 326, 156, 0, 0, 0, 158, 0,
1732 0, 0, 0, 153, 640, 0, 144, 0, 0, 135,
1733 136, 137, 138, 139, 140, 0, 0, 325, 326, 156,
1734 0, 0, 153, 158, 0, 141, 142, 143, 0, 711,
1735 0, 0, 0, 0, 712, 713, 714, 715, 716, 717,
1736 0, 0, 325, 326, 156, 0, 0, 153, 158, 144,
1737 141, 718, 719, 0, 0, 0, 0, 0, 0, 0,
1738 0, 0, 0, 0, 0, 0, 0, 325, 326, 156,
1739 0, 0, 0, 158, 720, 0, 0, 0, 0, 0,
1740 0, 0, 0, 0, 0, 0, 325, 326, 156, 0,
1741 153, 0, 158, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 325, 326, 156, 0, 153, 0, 158, 0, 0,
1744 0, -169, 0, 0, 0, 0, 0, 0, 0, 0,
1745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 0, 0, 0, 0, 325, 326, 156, 0, 0, 0,
1748 158, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1749 0, 0, 0, 0, 0, 0, 0, 0, 0, 325,
1750 721, 722, 0, 0, 0, 723, 11, 12, 13, 0,
1751 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1752 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1753 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1754 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1755 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1756 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1757 72, 73, 74, 3, 0, 0, 0, 0, 79, 80,
1758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1759 0, 0, 0, 0, 0, -349, -349, -349, 0, 4,
1760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1763 0, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1764 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1765 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1766 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1767 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1768 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1769 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1770 72, 73, 74, 3, 0, 0, 0, 0, 79, 80,
1771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1772 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
1773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1776 0, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1777 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1778 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1779 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1780 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1781 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1782 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1783 72, 73, 74, -349, -349, -349, 0, 0, 79, 80,
1784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1787 0, 0, 0, 0, 11, 12, 13, 0, 14, 15,
1788 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1789 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1790 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1791 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1792 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1793 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1794 74, -621, -621, -621, 0, 0, 79, 80, 0, 0,
1795 0, 0, 0, 0, 0, 0, 0, 0, 0, -621,
1796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1798 0, 0, -621, -621, -621, 0, -621, -621, -621, -621,
1799 -621, -621, -621, -621, -621, -621, 0, -621, -621, -621,
1800 -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
1801 -621, -621, 0, -621, -621, -621, -621, -621, -621, -621,
1802 -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
1803 -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
1804 -621, -621, -621, -621, -621, -621, -621, -621, -621, 8,
1805 9, 10, 0, 0, -621, 0, 0, 0, 0, 0,
1806 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1807 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1808 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1809 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1810 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1811 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1812 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1813 70, 71, 72, 73, 74, 0, 0, 0, 0, 0,
1814 79, 80, 11, 12, 13, 0, 14, 15, 16, 17,
1815 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1816 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1817 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1818 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1819 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1820 66, 67, 68, 69, 70, 71, 72, 73, 74, 0,
1824 static const short yycheck[] = { 0,
1825 0, 105, 3, 460, 0, 361, 299, 615, 492, 363,
1826 11, 12, 2, 316, 410, 546, 470, 18, 19, 20,
1827 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1828 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1829 41, 42, 43, 122, 408, 648, 409, 48, 49, 50,
1830 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1831 61, 62, 63, 64, 88, 619, 8, 0, 443, 759,
1832 3, 398, 399, 318, 7, 406, 407, 785, 548, 0,
1833 81, 81, 26, 22, 18, 81, 442, 791, 400, 401,
1834 34, 648, 446, 648, 24, 34, 21, 24, 99, 702,
1835 25, 771, 779, 201, 105, 782, 18, 34, 206, 556,
1836 208, 5, 895, 114, 115, 116, 24, 648, 119, 9,
1837 10, 111, 220, 48, 49, 572, 34, 0, 26, 119,
1838 3, 25, 5, 134, 490, 21, 34, 18, 668, 28,
1839 141, 27, 696, 24, 28, 702, 600, 702, 81, 18,
1840 1011, 1012, 21, 34, 43, 402, 403, 404, 405, 43,
1841 81, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1842 74, 702, 105, 5, 889, 879, 6, 7, 648, 85,
1843 86, 34, 9, 10, 874, 968, 119, 84, 212, 85,
1844 86, 899, 134, 97, 18, 99, 129, 101, 21, 103,
1845 201, 8, 686, 107, 497, 882, 24, 1068, 81, 24,
1846 1071, 21, 27, 117, 118, 1074, 1075, 27, 888, 34,
1847 890, 575, 95, 96, 599, 98, 471, 8, 32, 33,
1848 174, 175, 702, 177, 178, 174, 175, 179, 177, 178,
1849 770, 19, 598, 773, 24, 187, 119, 174, 175, 191,
1850 41, 193, 648, 1114, 107, 108, 160, 5, 1117, 24,
1851 975, 26, 977, 5, 55, 621, 174, 175, 174, 175,
1852 5, 135, 136, 137, 138, 139, 140, 25, 174, 175,
1853 222, 282, 361, 25, 648, 648, 287, 580, 288, 24,
1854 25, 26, 595, 174, 175, 48, 49, 298, 299, 34,
1855 301, 302, 298, 980, 24, 913, 702, 25, 26, 5,
1856 28, 201, 796, 24, 315, 41, 206, 648, 208, 315,
1857 321, 648, 24, 324, 8, 43, 857, 134, 18, 55,
1858 220, 221, 625, 21, 25, 26, 648, 25, 702, 702,
1859 438, 342, 174, 175, 18, 177, 178, 640, 24, 23,
1860 26, 39, 342, 134, 24, 909, 959, 27, 34, 174,
1861 175, 176, 363, 442, 34, 298, 52, 53, 301, 302,
1862 303, 702, 179, 886, 201, 702, 889, 20, 21, 206,
1863 187, 208, 315, 287, 191, 24, 193, 291, 321, 859,
1864 702, 16, 648, 220, 221, 419, 174, 175, 179, 177,
1865 178, 648, 959, 16, 959, 309, 187, 26, 312, 28,
1866 191, 490, 193, 21, 34, 222, 320, 25, 711, 323,
1867 776, 26, 18, 28, 43, 21, 174, 175, 959, 177,
1868 178, 16, 174, 175, 434, 177, 178, 16, 43, 174,
1869 175, 222, 177, 178, 445, 1094, 702, 448, 15, 445,
1870 134, 1100, 448, 1102, 455, 702, 457, 22, 459, 460,
1871 856, 462, 975, 21, 977, 22, 467, 25, 341, 470,
1872 18, 21, 22, 21, 32, 33, 477, 419, 174, 175,
1873 470, 177, 178, 174, 175, 22, 177, 178, 489, 959,
1874 854, 492, 855, 494, 18, 179, 497, 21, 174, 175,
1875 29, 177, 178, 179, 174, 175, 176, 191, 39, 193,
1876 25, 26, 445, 28, 24, 448, 26, 844, 845, 598,
1877 40, 852, 853, 18, 34, 458, 21, 460, 43, 462,
1878 25, 395, 396, 397, 846, 847, 54, 470, 222, 443,
1879 473, 21, 621, 19, 477, 25, 450, 18, 438, 91,
1880 21, 455, 23, 457, 174, 175, 556, 177, 178, 18,
1881 22, 465, 21, 959, 918, 469, 1050, 18, 48, 49,
1882 21, 24, 572, 26, 1031, 91, 577, 18, 451, 580,
1883 21, 34, 686, 22, 517, 518, 85, 86, 18, 24,
1884 21, 21, 593, 594, 25, 959, 959, 18, 901, 600,
1885 21, 848, 849, 850, 851, 174, 175, 91, 177, 178,
1886 600, 438, 419, 555, 21, 19, 115, 116, 25, 620,
1887 18, 52, 53, 21, 625, 32, 33, 25, 959, 21,
1888 129, 495, 959, 25, 635, 636, 122, 21, 419, 640,
1889 20, 25, 8, 9, 10, 37, 38, 959, 91, 135,
1890 136, 137, 138, 139, 140, 27, 142, 143, 50, 51,
1891 963, 662, 21, 24, 48, 49, 25, 600, 21, 670,
1892 574, 672, 25, 37, 38, 676, 677, 1033, 981, 24,
1893 681, 26, 18, 986, 685, 686, 50, 51, 18, 21,
1894 21, 692, 796, 25, 25, 599, 686, 776, 1001, 32,
1895 33, 994, 692, 959, 1007, 37, 38, 963, 5, 24,
1896 711, 26, 959, 1016, 24, 619, 26, 18, 50, 51,
1897 624, 174, 175, 23, 177, 178, 24, 24, 25, 26,
1898 986, 1087, 811, 22, 607, 419, 18, 34, 671, 96,
1899 673, 98, 1045, 1046, 25, 1048, 650, 21, 555, 682,
1900 25, 25, 685, 686, 1010, 1011, 1012, 24, 24, 26,
1901 21, 28, 21, 1019, 25, 766, 25, 21, 134, 21,
1902 18, 25, 18, 25, 555, 1078, 43, 29, 24, 46,
1903 47, 52, 53, 29, 30, 31, 32, 33, 34, 48,
1904 49, 118, 21, 120, 795, 796, 25, 798, 21, 45,
1905 46, 47, 25, 18, 131, 132, 796, 134, 18, 136,
1906 137, 18, 1068, 179, 18, 1071, 1119, 42, 1074, 1075,
1907 724, 187, 149, 69, 1080, 191, 21, 193, 19, 21,
1908 25, 37, 38, 25, 21, 201, 202, 21, 25, 9,
1909 206, 25, 208, 8, 50, 51, 48, 49, 712, 713,
1910 714, 715, 716, 717, 220, 221, 222, 25, 1114, 20,
1911 21, 1117, 11, 796, 110, 21, 23, 20, 21, 25,
1912 24, 11, 26, 806, 28, 361, 24, 21, 21, 21,
1913 784, 25, 25, 25, 885, 24, 21, 21, 22, 43,
1914 25, 892, 46, 47, 87, 768, 174, 175, 771, 56,
1915 57, 58, 59, 60, 61, 62, 63, 64, 65, 395,
1916 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
1917 406, 407, 408, 409, 410, 21, 19, 21, 174, 175,
1918 176, 25, 21, 19, 180, 19, 25, 961, 19, 20,
1919 34, 35, 36, 24, 19, 27, 1050, 24, 29, 30,
1920 31, 32, 33, 34, 1033, 21, 442, 21, 21, 25,
1921 984, 25, 25, 87, 45, 46, 47, 132, 969, 134,
1922 25, 972, 21, 877, 878, 22, 972, 841, 842, 843,
1923 21, 885, 21, 21, 25, 18, 25, 988, 69, 990,
1924 24, 21, 988, 994, 927, 928, 997, 998, 988, 21,
1925 25, 1001, 21, 25, 490, 909, 25, 21, 1087, 495,
1926 22, 25, 378, 886, 179, 888, 889, 890, 11, 21,
1927 1099, 21, 187, 25, 27, 25, 191, 21, 193, 110,
1928 1031, 25, 24, 1034, 21, 24, 201, 25, 25, 972,
1929 34, 35, 36, 21, 21, 1045, 21, 25, 25, 1050,
1930 25, 24, 21, 419, 20, 988, 25, 222, 922, 21,
1931 546, 21, 548, 25, 550, 25, 970, 8, 9, 10,
1932 19, 23, 438, 77, 78, 79, 80, 81, 82, 83,
1933 1081, 20, 19, 1084, 5, 8, 9, 10, 1084, 23,
1934 66, 67, 68, 174, 175, 176, 27, 21, 1031, 180,
1935 20, 20, 975, 25, 977, 34, 35, 36, 34, 35,
1936 36, 24, 598, 71, 72, 73, 22, 1050, 71, 72,
1937 73, 24, 8, 9, 10, 25, 18, 25, 27, 18,
1938 25, 1035, 25, 27, 21, 621, 1069, 1070, 29, 1140,
1939 25, 355, 24, 39, 54, 1146, 71, 72, 73, 25,
1940 40, 1084, 77, 78, 79, 80, 81, 82, 83, 324,
1941 87, 25, 648, 24, 18, 379, 331, 332, 333, 334,
1942 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
1943 394, 25, 1115, 1116, 25, 25, 25, 352, 21, 555,
1944 18, 25, 18, 134, 21, 18, 178, 21, 363, 87,
1945 22, 415, 20, 87, 20, 25, 87, 87, 25, 87,
1946 189, 134, 71, 72, 73, 380, 702, 1121, 77, 78,
1947 79, 80, 81, 82, 83, 87, 712, 713, 714, 715,
1948 716, 717, 718, 719, 18, 20, 72, 20, 179, 27,
1949 87, 27, 87, 0, 0, 321, 187, 760, 134, 81,
1950 191, 985, 193, 1009, 419, 1060, 179, 874, 906, 1114,
1951 201, 426, 986, 1080, 187, 206, 825, 208, 191, 580,
1952 193, 1084, 462, 673, 8, 9, 10, 671, 201, 220,
1953 221, 222, 796, 206, 685, 208, 111, 10, 342, 221,
1954 776, 1054, 508, 179, 419, 959, 702, 220, 221, 222,
1955 -1, 187, -1, -1, 23, 191, -1, 193, -1, -1,
1956 -1, -1, -1, -1, -1, 201, -1, -1, -1, -1,
1957 206, -1, 208, -1, -1, 811, -1, -1, 8, 9,
1958 10, -1, -1, -1, 220, 221, 222, 56, 57, 58,
1959 59, 60, 61, 62, 63, 64, 65, -1, -1, -1,
1960 -1, -1, -1, -1, -1, 841, 842, 843, 844, 845,
1961 846, 847, 848, 849, 850, 851, 852, 853, 854, 855,
1962 856, 857, -1, 859, 8, 9, 10, -1, -1, -1,
1963 -1, -1, 547, -1, -1, -1, 365, -1, -1, -1,
1964 555, -1, -1, -1, 373, -1, 375, -1, -1, 19,
1965 134, -1, -1, -1, 24, -1, -1, -1, -1, 29,
1966 30, 31, 32, 33, 34, -1, -1, -1, 632, -1,
1967 -1, -1, -1, -1, -1, 45, 46, 47, -1, -1,
1968 -1, -1, -1, -1, -1, -1, 922, -1, -1, -1,
1969 -1, -1, -1, -1, -1, 179, 425, -1, -1, 69,
1970 615, -1, -1, 187, 134, -1, -1, 191, -1, 193,
1971 -1, 675, -1, -1, -1, 444, -1, 201, -1, -1,
1972 -1, -1, 206, 959, 208, 640, -1, -1, 419, -1,
1973 -1, 646, -1, -1, 649, -1, 220, 221, 222, -1,
1974 110, -1, -1, -1, -1, -1, 419, 438, -1, 179,
1975 134, 480, -1, -1, -1, -1, -1, 187, -1, -1,
1976 -1, 191, -1, 193, -1, 438, -1, -1, -1, -1,
1977 -1, 201, -1, -1, -1, -1, 206, -1, 208, 508,
1978 -1, -1, -1, 419, -1, -1, 701, -1, -1, -1,
1979 220, 221, 222, -1, -1, 179, 711, 1033, -1, -1,
1980 -1, -1, 438, 187, 174, 175, 176, 191, -1, 193,
1981 180, -1, -1, -1, -1, 779, -1, 201, 782, -1,
1982 -1, -1, 206, -1, 208, -1, -1, 556, -1, -1,
1983 -1, -1, -1, -1, -1, -1, 220, 221, 222, -1,
1984 -1, -1, -1, 572, 573, -1, -1, -1, -1, -1,
1985 -1, 1087, -1, -1, -1, -1, -1, -1, -1, -1,
1986 824, 825, -1, 1099, 555, -1, 830, 831, 832, 833,
1987 834, 835, 836, 837, 838, 839, 840, -1, -1, -1,
1988 -1, 610, 555, -1, -1, -1, -1, -1, -1, -1,
1989 -1, -1, -1, -1, -1, -1, -1, -1, 627, -1,
1990 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1991 -1, 826, -1, -1, -1, 644, 645, -1, 882, 555,
1992 -1, -1, -1, -1, -1, -1, -1, 656, -1, -1,
1993 -1, -1, -1, -1, 1, 419, -1, -1, -1, 6,
1994 7, 8, -1, -1, 11, 12, 13, 14, 15, 16,
1995 17, 18, 19, 20, 438, -1, -1, 24, 25, 688,
1996 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
1997 699, -1, -1, -1, -1, 42, -1, -1, 45, 46,
1998 47, -1, -1, -1, -1, -1, -1, -1, -1, 419,
1999 -1, -1, -1, -1, -1, -1, -1, -1, 913, -1,
2000 -1, -1, 69, -1, -1, -1, -1, -1, 438, -1,
2001 -1, -1, -1, -1, -1, -1, 980, -1, -1, -1,
2002 -1, -1, -1, -1, 91, 92, 93, 94, 95, 96,
2003 97, -1, -1, -1, -1, 419, -1, -1, -1, 106,
2004 -1, -1, 957, 110, -1, -1, -1, -1, -1, -1,
2005 -1, -1, -1, -1, 438, -1, -1, -1, -1, -1,
2006 -1, 0, 1, -1, -1, -1, -1, -1, -1, -1,
2007 -1, 555, -1, -1, -1, -1, -1, -1, -1, -1,
2008 -1, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2009 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
2010 -1, -1, -1, -1, -1, 44, -1, 174, 175, 176,
2011 177, 178, -1, 180, -1, -1, -1, -1, -1, -1,
2012 -1, -1, -1, -1, -1, 555, -1, 66, 67, 68,
2013 -1, 70, -1, -1, -1, 74, 75, 76, -1, -1,
2014 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2015 89, 90, -1, -1, -1, -1, -1, -1, -1, -1,
2016 -1, -1, -1, -1, -1, -1, -1, -1, 107, 108,
2017 109, 555, 111, 112, 113, 114, 115, 116, 117, 118,
2018 119, 120, -1, 122, 123, 124, 125, 126, 127, 128,
2019 129, 130, 131, 132, 133, 134, 135, 136, -1, 138,
2020 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2021 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2022 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2023 169, 170, 171, 172, 173, 174, 175, -1, 177, 178,
2024 179, 180, 0, 1, -1, -1, -1, -1, -1, -1,
2025 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2026 -1, -1, -1, -1, -1, -1, 24, -1, -1, -1,
2027 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
2028 -1, -1, -1, -1, -1, -1, 44, -1, -1, -1,
2029 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2030 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
2031 68, -1, 70, -1, -1, -1, 74, 75, 76, -1,
2032 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2033 88, 89, 90, -1, -1, -1, -1, -1, -1, -1,
2034 -1, -1, -1, -1, -1, -1, -1, -1, -1, 107,
2035 108, 109, -1, 111, 112, 113, 114, 115, 116, 117,
2036 118, 119, 120, -1, 122, 123, 124, 125, 126, 127,
2037 128, 129, 130, 131, 132, 133, 134, 135, 136, -1,
2038 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2039 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2040 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2041 168, 169, 170, 171, 172, 173, 174, 175, 1, 177,
2042 178, 179, 180, 6, 7, 8, -1, 10, 11, 12,
2043 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2044 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2045 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2046 -1, 44, 45, 46, 47, -1, -1, -1, -1, -1,
2047 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2048 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
2049 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2050 -1, -1, -1, -1, -1, -1, -1, -1, -1, 92,
2051 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2052 -1, -1, -1, 106, 107, 108, 109, 110, 111, 112,
2053 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2054 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2055 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2056 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2057 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2058 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2059 173, 174, 175, 176, 177, 178, 179, 180, 1, -1,
2060 -1, -1, -1, 6, 7, 8, -1, 10, 11, 12,
2061 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2062 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2063 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2064 -1, -1, 45, 46, 47, -1, -1, -1, -1, -1,
2065 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2066 -1, -1, -1, 66, 67, 68, 69, -1, -1, -1,
2067 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2068 -1, -1, -1, -1, -1, -1, -1, -1, -1, 92,
2069 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2070 -1, -1, -1, 106, 107, 108, 109, 110, 111, 112,
2071 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2072 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2073 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2074 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2075 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2076 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2077 173, 174, 175, 176, 177, 178, 179, 180, 1, -1,
2078 -1, -1, -1, 6, 7, 8, -1, -1, 11, 12,
2079 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2080 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2081 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2082 -1, -1, 45, 46, 47, -1, -1, -1, -1, -1,
2083 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2084 -1, -1, -1, 66, 67, 68, 69, -1, -1, -1,
2085 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2086 -1, -1, -1, -1, -1, -1, -1, -1, -1, 92,
2087 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2088 -1, -1, -1, 106, 107, 108, 109, 110, 111, 112,
2089 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2090 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2091 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2092 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2093 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2094 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2095 173, 174, 175, 176, 177, 178, 179, 180, 1, -1,
2096 -1, -1, -1, 6, 7, 8, -1, 10, 11, 12,
2097 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2098 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2099 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2100 1, -1, 45, 46, 47, 6, 7, 8, -1, 10,
2101 11, 12, 13, 14, 15, 16, 17, 18, 19, -1,
2102 -1, -1, -1, 24, -1, -1, 69, -1, 29, 30,
2103 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2104 -1, 42, -1, -1, 45, 46, 47, -1, 91, 92,
2105 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2106 -1, -1, -1, 106, -1, -1, -1, 110, 69, -1,
2107 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2108 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2109 91, 92, 93, 94, 95, 96, 97, -1, -1, -1,
2110 -1, -1, -1, -1, -1, 106, -1, -1, -1, 110,
2111 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2112 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2113 -1, 174, 175, 176, 177, 178, -1, 180, -1, 1,
2114 -1, -1, -1, -1, 6, 7, 8, -1, -1, 11,
2115 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2116 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2117 32, 33, 34, 174, 175, 176, 177, 178, -1, 180,
2118 42, 1, -1, 45, 46, 47, 6, 7, 8, -1,
2119 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2120 20, -1, -1, -1, 24, -1, -1, 69, -1, 29,
2121 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2122 -1, -1, 42, -1, -1, 45, 46, 47, -1, 91,
2123 92, 93, 94, 95, 96, 97, -1, -1, -1, -1,
2124 -1, -1, -1, -1, 106, -1, -1, -1, 110, 69,
2125 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2126 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2127 -1, -1, 92, 93, 94, 95, 96, 97, -1, -1,
2128 -1, -1, -1, -1, -1, -1, 106, -1, -1, -1,
2129 110, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2130 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2131 -1, -1, 174, 175, 176, 177, 178, -1, 180, -1,
2132 1, -1, -1, -1, -1, 6, 7, 8, -1, -1,
2133 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2134 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2135 31, 32, 33, 34, 174, 175, 176, 177, 178, -1,
2136 180, 42, 1, -1, 45, 46, 47, 6, 7, 8,
2137 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2138 19, -1, -1, -1, -1, 24, -1, -1, 69, -1,
2139 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2140 -1, -1, -1, 42, -1, -1, 45, 46, 47, -1,
2141 -1, 92, 93, 94, 95, 96, 97, -1, -1, -1,
2142 -1, -1, -1, -1, -1, 106, -1, -1, -1, 110,
2143 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2144 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2145 -1, -1, -1, 92, 93, 94, 95, 96, 97, -1,
2146 -1, -1, -1, -1, -1, -1, -1, 106, -1, -1,
2147 -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
2148 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2149 -1, -1, -1, 174, 175, 176, 177, 178, -1, 180,
2150 -1, -1, -1, -1, 6, 7, 8, -1, 10, 11,
2151 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2152 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2153 32, 33, 34, -1, -1, 174, 175, 176, 177, 178,
2154 42, 180, 44, 45, 46, 47, -1, -1, -1, -1,
2155 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2156 -1, -1, -1, -1, -1, -1, -1, 69, 70, -1,
2157 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2158 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2159 92, 93, 94, 95, 96, 97, -1, -1, -1, -1,
2160 -1, -1, -1, -1, 106, 107, 108, 109, 110, 111,
2161 112, 113, 114, 115, 116, 117, 118, 119, 120, -1,
2162 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2163 132, 133, 134, 135, 136, -1, 138, 139, 140, 141,
2164 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2165 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2166 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2167 172, 173, 174, 175, 176, 177, 178, 179, 180, 6,
2168 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2169 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2170 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2171 -1, -1, -1, -1, -1, 42, -1, 44, 45, 46,
2172 47, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2173 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2174 -1, -1, 69, 70, -1, -1, -1, -1, -1, -1,
2175 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2176 -1, -1, -1, -1, -1, 92, 93, 94, 95, 96,
2177 97, -1, -1, -1, -1, -1, -1, -1, -1, 106,
2178 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2179 117, 118, 119, 120, -1, 122, 123, 124, 125, 126,
2180 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2181 -1, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2182 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2183 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2184 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2185 177, 178, 179, 180, 6, 7, 8, -1, 10, 11,
2186 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2187 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2188 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2189 42, -1, 44, 45, 46, 47, -1, -1, -1, -1,
2190 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2191 -1, -1, -1, -1, -1, -1, -1, 69, 70, -1,
2192 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2193 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2194 92, 93, 94, 95, 96, 97, -1, -1, -1, -1,
2195 -1, -1, -1, -1, 106, 107, 108, 109, 110, 111,
2196 112, 113, 114, 115, 116, 117, 118, 119, 120, -1,
2197 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2198 132, 133, 134, 135, 136, -1, 138, 139, 140, 141,
2199 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2200 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2201 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2202 172, 173, 174, 175, 176, 177, 178, 179, 180, 6,
2203 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2204 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2205 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2206 -1, -1, -1, -1, -1, -1, -1, -1, 45, 46,
2207 47, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2208 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2209 -1, -1, 69, -1, 29, 30, 31, 32, 33, 34,
2210 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2211 45, 46, 47, -1, -1, 92, 93, 94, 95, 96,
2212 97, -1, -1, -1, -1, -1, -1, -1, -1, 106,
2213 -1, -1, -1, 110, 69, -1, -1, -1, -1, -1,
2214 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2215 -1, -1, -1, -1, -1, -1, -1, 92, 93, 94,
2216 95, 96, 97, -1, -1, -1, -1, -1, -1, -1,
2217 -1, 106, -1, -1, -1, 110, -1, -1, -1, -1,
2218 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2219 -1, -1, -1, -1, -1, -1, -1, 174, 175, 176,
2220 177, 178, -1, 180, -1, -1, -1, 6, 7, 8,
2221 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2222 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2223 29, 30, 31, 32, 33, 34, -1, -1, -1, 174,
2224 175, 176, 177, 178, -1, 180, 45, 46, 47, 6,
2225 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2226 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2227 69, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2228 -1, -1, -1, -1, -1, -1, -1, -1, 45, 46,
2229 47, -1, -1, 92, 93, 94, 95, 96, 97, -1,
2230 -1, -1, -1, -1, -1, -1, -1, 106, -1, -1,
2231 -1, 110, 69, -1, -1, -1, -1, -1, -1, -1,
2232 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2233 -1, -1, -1, -1, -1, 92, 93, 94, 95, 96,
2234 97, -1, -1, -1, -1, -1, -1, -1, -1, 106,
2235 -1, -1, -1, 110, -1, -1, -1, -1, -1, -1,
2236 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2237 -1, -1, -1, -1, -1, 174, 175, 176, 177, 178,
2238 -1, 180, -1, -1, -1, 6, 7, 8, -1, 10,
2239 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2240 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2241 31, 32, 33, 34, -1, -1, -1, 174, 175, 176,
2242 177, 178, -1, 180, 45, 46, 47, 6, 7, 8,
2243 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2244 19, 20, -1, -1, -1, 24, -1, -1, 69, -1,
2245 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2246 -1, -1, -1, -1, -1, -1, 45, 46, 47, -1,
2247 -1, 92, 93, 94, 95, 96, 97, -1, -1, -1,
2248 -1, -1, -1, -1, -1, 106, -1, -1, -1, 110,
2249 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2250 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2251 -1, -1, -1, 92, 93, 94, 95, 96, 97, -1,
2252 -1, -1, -1, -1, -1, -1, -1, 106, -1, -1,
2253 -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
2254 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2255 -1, -1, -1, 174, 175, 176, 177, 178, -1, 180,
2256 -1, -1, -1, 6, 7, 8, -1, 10, 11, 12,
2257 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2258 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2259 33, 34, -1, -1, -1, 174, 175, 176, 177, 178,
2260 -1, 180, 45, 46, 47, 6, 7, 8, -1, 10,
2261 11, 12, 13, 14, 15, 16, 17, 18, 19, -1,
2262 -1, -1, -1, 24, -1, -1, 69, -1, 29, 30,
2263 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2264 -1, -1, -1, -1, 45, 46, 47, -1, -1, 92,
2265 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2266 -1, -1, -1, 106, -1, -1, -1, 110, 69, -1,
2267 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2268 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2269 -1, 92, 93, 94, 95, 96, 97, 18, -1, -1,
2270 -1, -1, -1, -1, -1, 106, -1, -1, -1, 110,
2271 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2272 -1, -1, -1, 44, -1, -1, -1, -1, -1, -1,
2273 -1, 174, 175, 176, 177, 178, -1, 180, -1, -1,
2274 -1, -1, -1, -1, -1, 66, 67, 68, -1, 70,
2275 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2276 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2277 -1, -1, -1, 174, 175, 176, 177, 178, -1, 180,
2278 -1, -1, -1, -1, -1, -1, 107, 108, 109, -1,
2279 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2280 -1, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2281 131, 132, 133, 134, 135, 136, -1, 138, 139, 140,
2282 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2283 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2284 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2285 171, 172, 173, 18, -1, -1, -1, -1, 179, 180,
2286 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2287 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
2288 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2289 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2290 -1, -1, -1, -1, -1, 70, -1, -1, -1, -1,
2291 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2292 -1, -1, 87, -1, -1, -1, -1, -1, -1, -1,
2293 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2294 -1, -1, 107, 108, 109, -1, 111, 112, 113, 114,
2295 115, 116, 117, 118, 119, 120, -1, 122, 123, 124,
2296 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2297 135, 136, -1, 138, 139, 140, 141, 142, 143, 144,
2298 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2299 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2300 165, 166, 167, 168, 169, 170, 171, 172, 173, -1,
2301 -1, 19, -1, -1, 179, 180, 24, -1, -1, -1,
2302 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2303 -1, -1, -1, -1, -1, -1, 44, -1, 19, -1,
2304 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2305 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2306 -1, -1, 70, -1, 45, 46, 47, -1, -1, -1,
2307 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2308 -1, -1, -1, -1, -1, -1, -1, -1, 69, -1,
2309 -1, -1, -1, -1, -1, -1, -1, -1, -1, 107,
2310 108, 109, -1, 111, 112, 113, 114, 115, 116, 117,
2311 118, 119, 120, -1, 122, 123, 124, 125, 126, 127,
2312 128, 129, 130, 131, 132, 133, 134, 135, 136, 110,
2313 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2314 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2315 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2316 168, 169, 170, 171, 172, 173, 19, -1, -1, -1,
2317 -1, 179, 180, -1, -1, -1, -1, -1, -1, -1,
2318 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2319 -1, 44, -1, 174, 175, 176, -1, -1, -1, 180,
2320 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2321 -1, -1, -1, -1, -1, -1, -1, 70, -1, -1,
2322 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2323 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2324 -1, 20, -1, -1, -1, -1, -1, -1, -1, -1,
2325 -1, -1, -1, -1, 107, 108, 109, -1, 111, 112,
2326 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2327 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2328 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2329 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2330 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2331 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2332 173, 24, -1, -1, -1, -1, 179, 180, 107, 108,
2333 109, 34, 111, 112, 113, 114, 115, 116, 117, 118,
2334 119, 120, -1, 122, 123, 124, 125, 126, 127, 128,
2335 129, 130, 131, 132, 133, 134, 135, 136, -1, 138,
2336 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2337 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2338 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2339 169, 170, 171, 172, 173, -1, -1, -1, -1, -1,
2340 179, 180, -1, -1, 107, 108, 109, -1, 111, 112,
2341 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2342 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2343 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2344 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2345 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2346 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2347 173, 174, 175, 24, 177, 178, 179, 180, 29, 30,
2348 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2349 -1, 42, 24, 25, 45, 46, 47, 29, 30, 31,
2350 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2351 -1, -1, -1, 45, 46, 47, -1, 24, 69, -1,
2352 27, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2353 -1, -1, -1, -1, -1, -1, -1, 69, 45, 46,
2354 47, -1, 24, -1, -1, 27, -1, 29, 30, 31,
2355 32, 33, 34, -1, -1, -1, -1, -1, -1, 110,
2356 -1, -1, 69, 45, 46, 47, -1, 24, 25, -1,
2357 -1, -1, 29, 30, 31, 32, 33, 34, 110, -1,
2358 -1, -1, -1, -1, -1, -1, 24, 69, 45, 46,
2359 47, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2360 -1, -1, -1, 110, -1, -1, -1, 45, 46, 47,
2361 -1, 24, 69, -1, -1, -1, 29, 30, 31, 32,
2362 33, 34, -1, 174, 175, 176, -1, -1, 110, 180,
2363 -1, 69, 45, 46, 47, -1, -1, -1, -1, -1,
2364 -1, -1, 174, 175, 176, -1, -1, -1, 180, -1,
2365 -1, -1, -1, 110, 24, -1, 69, -1, -1, 29,
2366 30, 31, 32, 33, 34, -1, -1, 174, 175, 176,
2367 -1, -1, 110, 180, -1, 45, 46, 47, -1, 24,
2368 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2369 -1, -1, 174, 175, 176, -1, -1, 110, 180, 69,
2370 45, 46, 47, -1, -1, -1, -1, -1, -1, -1,
2371 -1, -1, -1, -1, -1, -1, -1, 174, 175, 176,
2372 -1, -1, -1, 180, 69, -1, -1, -1, -1, -1,
2373 -1, -1, -1, -1, -1, -1, 174, 175, 176, -1,
2374 110, -1, 180, -1, -1, -1, -1, -1, -1, -1,
2375 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2376 -1, 174, 175, 176, -1, 110, -1, 180, -1, -1,
2377 -1, 42, -1, -1, -1, -1, -1, -1, -1, -1,
2378 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2379 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2380 -1, -1, -1, -1, 174, 175, 176, -1, -1, -1,
2381 180, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2382 -1, -1, -1, -1, -1, -1, -1, -1, -1, 174,
2383 175, 176, -1, -1, -1, 180, 107, 108, 109, -1,
2384 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2385 -1, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2386 131, 132, 133, 134, 135, 136, -1, 138, 139, 140,
2387 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2388 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2389 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2390 171, 172, 173, 44, -1, -1, -1, -1, 179, 180,
2391 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2392 -1, -1, -1, -1, -1, 66, 67, 68, -1, 70,
2393 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2394 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2395 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2396 -1, -1, -1, -1, -1, -1, 107, 108, 109, -1,
2397 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2398 -1, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2399 131, 132, 133, 134, 135, 136, -1, 138, 139, 140,
2400 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2401 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2402 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2403 171, 172, 173, 44, -1, -1, -1, -1, 179, 180,
2404 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2405 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2406 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2407 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2408 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2409 -1, -1, -1, -1, -1, -1, 107, 108, 109, -1,
2410 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2411 -1, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2412 131, 132, 133, 134, 135, 136, -1, 138, 139, 140,
2413 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2414 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2415 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2416 171, 172, 173, 66, 67, 68, -1, -1, 179, 180,
2417 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2418 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2419 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2420 -1, -1, -1, -1, 107, 108, 109, -1, 111, 112,
2421 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2422 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2423 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2424 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2425 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2426 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2427 173, 66, 67, 68, -1, -1, 179, 180, -1, -1,
2428 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
2429 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2430 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2431 -1, -1, 107, 108, 109, -1, 111, 112, 113, 114,
2432 115, 116, 117, 118, 119, 120, -1, 122, 123, 124,
2433 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2434 135, 136, -1, 138, 139, 140, 141, 142, 143, 144,
2435 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2436 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2437 165, 166, 167, 168, 169, 170, 171, 172, 173, 88,
2438 89, 90, -1, -1, 179, -1, -1, -1, -1, -1,
2439 -1, -1, -1, -1, -1, -1, -1, -1, 107, 108,
2440 109, -1, 111, 112, 113, 114, 115, 116, 117, 118,
2441 119, 120, -1, 122, 123, 124, 125, 126, 127, 128,
2442 129, 130, 131, 132, 133, 134, 135, 136, -1, 138,
2443 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2444 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2445 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2446 169, 170, 171, 172, 173, -1, -1, -1, -1, -1,
2447 179, 180, 107, 108, 109, -1, 111, 112, 113, 114,
2448 115, 116, 117, 118, 119, 120, -1, 122, 123, 124,
2449 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2450 135, 136, -1, 138, 139, 140, 141, 142, 143, 144,
2451 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2452 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2453 165, 166, 167, 168, 169, 170, 171, 172, 173, -1,
2454 -1, -1, -1, -1, 179, 180
2456 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2457 #line 3 "/usr/share/bison.simple"
2459 /* Skeleton output parser for bison,
2460 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2462 This program is free software; you can redistribute it and/or modify
2463 it under the terms of the GNU General Public License as published by
2464 the Free Software Foundation; either version 2, or (at your option)
2467 This program is distributed in the hope that it will be useful,
2468 but WITHOUT ANY WARRANTY; without even the implied warranty of
2469 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2470 GNU General Public License for more details.
2472 You should have received a copy of the GNU General Public License
2473 along with this program; if not, write to the Free Software
2474 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
2476 /* As a special exception, when this file is copied by Bison into a
2477 Bison output file, you may use that output file without restriction.
2478 This special exception was added by the Free Software Foundation
2479 in version 1.24 of Bison. */
2483 #define alloca __builtin_alloca
2484 #else /* not GNU C. */
2485 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
2487 #else /* not sparc */
2488 #if defined (MSDOS) && !defined (__TURBOC__)
2490 #else /* not MSDOS, or __TURBOC__ */
2494 #else /* not MSDOS, __TURBOC__, or _AIX */
2498 void *alloca (unsigned int);
2500 #else /* not __cplusplus */
2502 #endif /* not __cplusplus */
2504 #endif /* not _AIX */
2505 #endif /* not MSDOS, or __TURBOC__ */
2506 #endif /* not sparc. */
2507 #endif /* not GNU C. */
2508 #endif /* alloca not defined. */
2510 /* This is the parser code that is written into each bison parser
2511 when the %semantic_parser declaration is not specified in the grammar.
2512 It was written by Richard Stallman by simplifying the hairy parser
2513 used when %semantic_parser is specified. */
2515 /* Note: there must be only one dollar sign in this file.
2516 It is replaced by the list of actions, each action
2517 as one case of the switch. */
2519 #define yyerrok (yyerrstatus = 0)
2520 #define yyclearin (yychar = YYEMPTY)
2523 #define YYACCEPT return(0)
2524 #define YYABORT return(1)
2525 #define YYERROR goto yyerrlab1
2526 /* Like YYERROR except do call yyerror.
2527 This remains here temporarily to ease the
2528 transition to the new meaning of YYERROR, for GCC.
2529 Once GCC version 2 has supplanted version 1, this can go. */
2530 #define YYFAIL goto yyerrlab
2531 #define YYRECOVERING() (!!yyerrstatus)
2532 #define YYBACKUP(token, value) \
2534 if (yychar == YYEMPTY && yylen == 1) \
2535 { yychar = (token), yylval = (value); \
2536 yychar1 = YYTRANSLATE (yychar); \
2541 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2545 #define YYERRCODE 256
2548 #define YYLEX yylex()
2554 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2556 #define YYLEX yylex(&yylval, &yylloc)
2558 #else /* not YYLSP_NEEDED */
2560 #define YYLEX yylex(&yylval, YYLEX_PARAM)
2562 #define YYLEX yylex(&yylval)
2564 #endif /* not YYLSP_NEEDED */
2567 /* If nonreentrant, generate the variables here */
2571 int yychar; /* the lookahead symbol */
2572 YYSTYPE yylval; /* the semantic value of the */
2573 /* lookahead symbol */
2576 YYLTYPE yylloc; /* location data for the lookahead */
2580 int yynerrs; /* number of parse errors so far */
2581 #endif /* not YYPURE */
2584 int yydebug; /* nonzero means print parse trace */
2585 /* Since this is uninitialized, it does not stop multiple parsers
2589 /* YYINITDEPTH indicates the initial size of the parser's stacks */
2592 #define YYINITDEPTH 200
2595 /* YYMAXDEPTH is the maximum size the stacks can grow to
2596 (effective only if the built-in stack extension method is used). */
2603 #define YYMAXDEPTH 10000
2606 /* Prevent warning if -Wstrict-prototypes. */
2611 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2612 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2613 #else /* not GNU C or C++ */
2616 /* This is the most reliable way to avoid incompatibilities
2617 in available built-in functions on various systems. */
2619 __yy_memcpy (to, from, count)
2624 register char *f = from;
2625 register char *t = to;
2626 register int i = count;
2632 #else /* __cplusplus */
2634 /* This is the most reliable way to avoid incompatibilities
2635 in available built-in functions on various systems. */
2637 __yy_memcpy (char *to, char *from, int count)
2639 register char *f = from;
2640 register char *t = to;
2641 register int i = count;
2650 #line 196 "/usr/share/bison.simple"
2652 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2653 into yyparse. The argument should have type void *.
2654 It should actually point to an object.
2655 Grammar actions can access the variable by casting it
2656 to the proper pointer type. */
2658 #ifdef YYPARSE_PARAM
2660 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2661 #define YYPARSE_PARAM_DECL
2662 #else /* not __cplusplus */
2663 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2664 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2665 #endif /* not __cplusplus */
2666 #else /* not YYPARSE_PARAM */
2667 #define YYPARSE_PARAM_ARG
2668 #define YYPARSE_PARAM_DECL
2669 #endif /* not YYPARSE_PARAM */
2672 yyparse(YYPARSE_PARAM_ARG)
2675 register int yystate;
2677 register short *yyssp;
2678 register YYSTYPE *yyvsp;
2679 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2680 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2682 short yyssa[YYINITDEPTH]; /* the state stack */
2683 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2685 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2686 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2689 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2690 YYLTYPE *yyls = yylsa;
2693 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2695 #define YYPOPSTACK (yyvsp--, yyssp--)
2698 int yystacksize = YYINITDEPTH;
2709 YYSTYPE yyval; /* the variable used to return */
2710 /* semantic values from the action */
2717 fprintf(stderr, "Starting parse\n");
2723 yychar = YYEMPTY; /* Cause a token to be read. */
2725 /* Initialize stack pointers.
2726 Waste one element of value and location stack
2727 so that they stay on the same level as the state stack.
2728 The wasted elements are never initialized. */
2736 /* Push a new state, which is found in yystate . */
2737 /* In all cases, when you get here, the value and location stacks
2738 have just been pushed. so pushing a state here evens the stacks. */
2743 if (yyssp >= yyss + yystacksize - 1)
2745 /* Give user a chance to reallocate the stack */
2746 /* Use copies of these so that the &'s don't force the real ones into memory. */
2747 YYSTYPE *yyvs1 = yyvs;
2748 short *yyss1 = yyss;
2750 YYLTYPE *yyls1 = yyls;
2753 /* Get the current used size of the three stacks, in elements. */
2754 int size = yyssp - yyss + 1;
2757 /* Each stack pointer address is followed by the size of
2758 the data in use in that stack, in bytes. */
2760 /* This used to be a conditional around just the two extra args,
2761 but that might be undefined if yyoverflow is a macro. */
2762 yyoverflow("parser stack overflow",
2763 &yyss1, size * sizeof (*yyssp),
2764 &yyvs1, size * sizeof (*yyvsp),
2765 &yyls1, size * sizeof (*yylsp),
2768 yyoverflow("parser stack overflow",
2769 &yyss1, size * sizeof (*yyssp),
2770 &yyvs1, size * sizeof (*yyvsp),
2774 yyss = yyss1; yyvs = yyvs1;
2778 #else /* no yyoverflow */
2779 /* Extend the stack our own way. */
2780 if (yystacksize >= YYMAXDEPTH)
2782 yyerror("parser stack overflow");
2786 if (yystacksize > YYMAXDEPTH)
2787 yystacksize = YYMAXDEPTH;
2788 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
2789 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
2790 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
2791 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
2793 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
2794 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
2796 #endif /* no yyoverflow */
2798 yyssp = yyss + size - 1;
2799 yyvsp = yyvs + size - 1;
2801 yylsp = yyls + size - 1;
2806 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2809 if (yyssp >= yyss + yystacksize - 1)
2815 fprintf(stderr, "Entering state %d\n", yystate);
2821 /* Do appropriate processing given the current state. */
2822 /* Read a lookahead token if we need one and don't already have one. */
2825 /* First try to decide what to do without reference to lookahead token. */
2827 yyn = yypact[yystate];
2831 /* Not known => get a lookahead token if don't already have one. */
2833 /* yychar is either YYEMPTY or YYEOF
2834 or a valid token in external form. */
2836 if (yychar == YYEMPTY)
2840 fprintf(stderr, "Reading a token: ");
2845 /* Convert token to internal form (in yychar1) for indexing tables with */
2847 if (yychar <= 0) /* This means end of input. */
2850 yychar = YYEOF; /* Don't call YYLEX any more */
2854 fprintf(stderr, "Now at end of input.\n");
2859 yychar1 = YYTRANSLATE(yychar);
2864 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2865 /* Give the individual parser a way to print the precise meaning
2866 of a token, for further debugging info. */
2868 YYPRINT (stderr, yychar, yylval);
2870 fprintf (stderr, ")\n");
2876 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2881 /* yyn is what to do for this token type in this state.
2882 Negative => reduce, -yyn is rule number.
2883 Positive => shift, yyn is new state.
2884 New state is final state => don't bother to shift,
2885 just return success.
2886 0, or most negative number => error. */
2901 /* Shift the lookahead token. */
2905 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2908 /* Discard the token being shifted unless it is eof. */
2909 if (yychar != YYEOF)
2917 /* count tokens shifted since error; after three, turn off error status. */
2918 if (yyerrstatus) yyerrstatus--;
2923 /* Do the default action for the current state. */
2926 yyn = yydefact[yystate];
2930 /* Do a reduction. yyn is the number of a rule to reduce with. */
2934 yyval = yyvsp[1-yylen]; /* implement default value of the action */
2941 fprintf (stderr, "Reducing via rule %d (line %d), ",
2944 /* Print the symbols being reduced, and their result. */
2945 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2946 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2947 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2955 #line 223 "cgrammar.y"
2956 { uentry_clearDecl (); ;
2959 #line 224 "cgrammar.y"
2960 { uentry_clearDecl (); ;
2963 #line 225 "cgrammar.y"
2964 { uentry_clearDecl (); ;
2967 #line 226 "cgrammar.y"
2968 { uentry_clearDecl (); ;
2971 #line 227 "cgrammar.y"
2972 { uentry_clearDecl (); ;
2975 #line 228 "cgrammar.y"
2976 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
2979 #line 229 "cgrammar.y"
2980 { uentry_clearDecl (); ;
2983 #line 233 "cgrammar.y"
2984 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
2987 #line 235 "cgrammar.y"
2988 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
2991 #line 238 "cgrammar.y"
2992 { context_enterFunctionDecl (); ;
2995 #line 239 "cgrammar.y"
2996 { declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
2997 context_exitFunctionDecl (); ;
3000 #line 244 "cgrammar.y"
3002 qtype qint = qtype_create (ctype_int);
3003 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3008 #line 250 "cgrammar.y"
3009 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3012 #line 255 "cgrammar.y"
3013 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3016 #line 258 "cgrammar.y"
3017 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3020 #line 260 "cgrammar.y"
3021 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3024 #line 262 "cgrammar.y"
3025 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3028 #line 264 "cgrammar.y"
3032 if (exprNode_hasValue (yyvsp[-2].expr)
3033 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3035 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3042 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3046 #line 280 "cgrammar.y"
3047 { setCurrentParams (uentryList_missingParams);
3051 #line 283 "cgrammar.y"
3052 { /* need to support globals and modifies here! */
3053 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3054 uentryList_makeMissingParams ());
3056 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3061 #line 291 "cgrammar.y"
3062 { setCurrentParams (yyvsp[-1].entrylist);
3066 #line 294 "cgrammar.y"
3067 { clearCurrentParams ();
3068 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3073 #line 300 "cgrammar.y"
3074 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3077 #line 302 "cgrammar.y"
3078 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3081 #line 304 "cgrammar.y"
3082 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3085 #line 306 "cgrammar.y"
3089 if (exprNode_hasValue (yyvsp[-2].expr)
3090 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3092 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3099 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3103 #line 322 "cgrammar.y"
3104 { setCurrentParams (uentryList_missingParams);
3108 #line 325 "cgrammar.y"
3109 { /* need to support globals and modifies here! */
3110 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3111 uentryList_makeMissingParams ());
3113 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3118 #line 333 "cgrammar.y"
3119 { setCurrentParams (yyvsp[-1].entrylist);
3123 #line 336 "cgrammar.y"
3124 { clearCurrentParams ();
3125 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3130 #line 343 "cgrammar.y"
3131 { setCurrentParams (yyvsp[-1].entrylist); ;
3134 #line 344 "cgrammar.y"
3135 { clearCurrentParams (); ;
3138 #line 345 "cgrammar.y"
3139 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3142 #line 348 "cgrammar.y"
3143 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3146 #line 349 "cgrammar.y"
3147 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3150 #line 350 "cgrammar.y"
3151 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3154 #line 351 "cgrammar.y"
3155 { exprChecks_checkEmptyMacroBody (); ;
3158 #line 354 "cgrammar.y"
3159 { declareFunction (yyvsp[0].ntyp); ;
3162 #line 357 "cgrammar.y"
3163 { setProcessingGlobMods (); ;
3166 #line 358 "cgrammar.y"
3167 { clearProcessingGlobMods (); ;
3170 #line 361 "cgrammar.y"
3171 { setProcessingGlobMods (); ;
3174 #line 362 "cgrammar.y"
3175 { clearProcessingGlobMods (); ;
3178 #line 377 "cgrammar.y"
3182 #line 378 "cgrammar.y"
3186 #line 381 "cgrammar.y"
3187 { globListAdd (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3190 #line 384 "cgrammar.y"
3191 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3194 #line 385 "cgrammar.y"
3195 { yyval.sr = globListUnrecognized (yyvsp[0].cname); ;
3198 #line 388 "cgrammar.y"
3199 { yyval.typequal = qual_createUndef (); ;
3202 #line 389 "cgrammar.y"
3203 { yyval.typequal = qual_createKilled (); ;
3206 #line 390 "cgrammar.y"
3207 { yyval.typequal = qual_createOut (); ;
3210 #line 391 "cgrammar.y"
3211 { yyval.typequal = qual_createIn (); ;
3214 #line 392 "cgrammar.y"
3215 { yyval.typequal = qual_createPartial (); ;
3218 #line 395 "cgrammar.y"
3219 { yyval.tquallist = qualList_undefined; ;
3222 #line 396 "cgrammar.y"
3223 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3226 #line 399 "cgrammar.y"
3227 { setProcessingGlobalsList (); ;
3230 #line 401 "cgrammar.y"
3231 { unsetProcessingGlobals (); ;
3234 #line 402 "cgrammar.y"
3235 { setProcessingGlobalsList (); ;
3238 #line 404 "cgrammar.y"
3239 { unsetProcessingGlobals (); ;
3242 #line 406 "cgrammar.y"
3243 { setFunctionNoGlobals ();
3244 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3248 #line 413 "cgrammar.y"
3249 { setProcessingGlobalsList (); ;
3252 #line 415 "cgrammar.y"
3253 { unsetProcessingGlobals (); ;
3256 #line 416 "cgrammar.y"
3257 { setProcessingGlobalsList (); ;
3260 #line 418 "cgrammar.y"
3261 { unsetProcessingGlobals (); ;
3264 #line 420 "cgrammar.y"
3265 { setFunctionNoGlobals ();
3266 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3270 #line 432 "cgrammar.y"
3272 context_setProtectVars (); enterParamsTemp ();
3273 sRef_setGlobalScopeSafe ();
3277 #line 437 "cgrammar.y"
3279 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3280 sRef_clearGlobalScopeSafe ();
3281 context_releaseVars ();
3285 #line 445 "cgrammar.y"
3287 context_setProtectVars (); enterParamsTemp ();
3288 sRef_setGlobalScopeSafe ();
3292 #line 450 "cgrammar.y"
3294 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3295 sRef_clearGlobalScopeSafe ();
3296 context_releaseVars ();
3300 #line 474 "cgrammar.y"
3301 { yyval.sck = SP_ISONLY; ;
3304 #line 475 "cgrammar.y"
3305 { yyval.sck = SP_ISOBSERVER; ;
3308 #line 476 "cgrammar.y"
3309 { yyval.sck = SP_ISEXPOSED; ;
3312 #line 477 "cgrammar.y"
3313 { yyval.sck = SP_ISDEPENDENT; ;
3316 #line 478 "cgrammar.y"
3317 { yyval.sck = SP_ISOWNED; ;
3320 #line 479 "cgrammar.y"
3321 { yyval.sck = SP_ISSHARED; ;
3324 #line 480 "cgrammar.y"
3325 { yyval.sck = SP_ISNULL; ;
3328 #line 481 "cgrammar.y"
3329 { yyval.sck = SP_ISNOTNULL; ;
3332 #line 485 "cgrammar.y"
3334 context_setProtectVars ();
3336 sRef_setGlobalScopeSafe ();
3340 #line 491 "cgrammar.y"
3342 setFunctionSpecialClause (yyvsp[-6].tok, yyvsp[-3].srset, yyvsp[-1].tok);
3344 sRef_clearGlobalScopeSafe ();
3345 context_releaseVars ();
3349 #line 498 "cgrammar.y"
3351 context_setProtectVars ();
3353 sRef_setGlobalScopeSafe ();
3357 #line 504 "cgrammar.y"
3359 setFunctionStateSpecialClause (yyvsp[-7].tok, yyvsp[-5].sck, yyvsp[-3].srset, yyvsp[-1].tok);
3361 sRef_clearGlobalScopeSafe ();
3362 context_releaseVars ();
3366 #line 513 "cgrammar.y"
3368 qtype qint = qtype_create (ctype_int);
3369 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3374 #line 519 "cgrammar.y"
3375 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3378 #line 522 "cgrammar.y"
3379 { checkDoneParams (); context_enterInnerContext (); ;
3382 #line 524 "cgrammar.y"
3384 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3385 context_exitInner (yyvsp[0].expr);
3389 #line 529 "cgrammar.y"
3390 { doneParams (); context_enterInnerContext (); ;
3393 #line 531 "cgrammar.y"
3395 context_exitInner (yyvsp[0].expr);
3396 exprNode_checkFunctionBody (yyvsp[0].expr);
3397 yyval.expr = yyvsp[0].expr; /* old style */
3401 #line 539 "cgrammar.y"
3403 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3404 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3405 context_exitFunction ();
3409 #line 546 "cgrammar.y"
3410 { yyval.srset = yyvsp[-2].srset; ;
3413 #line 547 "cgrammar.y"
3414 { yyval.srset = sRefSet_new (); ;
3417 #line 550 "cgrammar.y"
3418 { yyval.srset = yyvsp[-1].srset; ;
3421 #line 551 "cgrammar.y"
3422 { yyval.srset = sRefSet_new (); ;
3425 #line 554 "cgrammar.y"
3426 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3429 #line 555 "cgrammar.y"
3430 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3433 #line 556 "cgrammar.y"
3434 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3437 #line 557 "cgrammar.y"
3438 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3441 #line 558 "cgrammar.y"
3442 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3445 #line 559 "cgrammar.y"
3446 { yyval.sr = yyvsp[-1].sr; ;
3449 #line 560 "cgrammar.y"
3450 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3453 #line 561 "cgrammar.y"
3454 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3457 #line 565 "cgrammar.y"
3458 { yyval.sr = yyvsp[0].sr; ;
3461 #line 566 "cgrammar.y"
3462 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3465 #line 570 "cgrammar.y"
3466 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3469 #line 571 "cgrammar.y"
3470 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3473 #line 575 "cgrammar.y"
3474 { yyval.sr = checkSpecClausesId (yyvsp[0].entry); ;
3477 #line 577 "cgrammar.y"
3478 { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
3481 #line 578 "cgrammar.y"
3482 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3485 #line 579 "cgrammar.y"
3486 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3489 #line 580 "cgrammar.y"
3490 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3493 #line 581 "cgrammar.y"
3494 { yyval.sr = yyvsp[-1].sr; ;
3497 #line 582 "cgrammar.y"
3498 { cstring_markOwned (yyvsp[0].cname);
3499 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3502 #line 584 "cgrammar.y"
3503 { cstring_markOwned (yyvsp[0].cname);
3504 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3507 #line 589 "cgrammar.y"
3508 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3509 else { yyval.srset = sRefSet_undefined; }
3513 #line 593 "cgrammar.y"
3514 { if (sRef_isValid (yyvsp[0].sr))
3516 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3520 yyval.srset = yyvsp[-2].srset;
3525 #line 604 "cgrammar.y"
3526 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3529 #line 605 "cgrammar.y"
3530 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3533 #line 607 "cgrammar.y"
3534 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3537 #line 608 "cgrammar.y"
3538 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].ctyp)); ;
3541 #line 609 "cgrammar.y"
3542 { yyval.expr = exprNode_makeError (); ;
3545 #line 613 "cgrammar.y"
3546 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3549 #line 614 "cgrammar.y"
3550 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3553 #line 615 "cgrammar.y"
3554 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
3557 #line 616 "cgrammar.y"
3558 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3561 #line 617 "cgrammar.y"
3562 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3565 #line 618 "cgrammar.y"
3566 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3569 #line 619 "cgrammar.y"
3570 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3573 #line 620 "cgrammar.y"
3574 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3577 #line 623 "cgrammar.y"
3578 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
3581 #line 624 "cgrammar.y"
3582 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
3585 #line 628 "cgrammar.y"
3586 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3589 #line 629 "cgrammar.y"
3590 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3593 #line 630 "cgrammar.y"
3594 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3597 #line 631 "cgrammar.y"
3598 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3601 #line 632 "cgrammar.y"
3602 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3605 #line 633 "cgrammar.y"
3606 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3609 #line 634 "cgrammar.y"
3610 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3613 #line 635 "cgrammar.y"
3614 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3617 #line 636 "cgrammar.y"
3618 { yyval.expr = yyvsp[0].expr; ;
3621 #line 637 "cgrammar.y"
3622 { yyval.expr = yyvsp[0].expr; ;
3625 #line 641 "cgrammar.y"
3626 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cname); ;
3629 #line 644 "cgrammar.y"
3630 { context_setProtectVars (); ;
3633 #line 645 "cgrammar.y"
3634 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3637 #line 648 "cgrammar.y"
3638 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3641 #line 649 "cgrammar.y"
3642 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3645 #line 654 "cgrammar.y"
3646 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3649 #line 658 "cgrammar.y"
3650 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3653 #line 659 "cgrammar.y"
3654 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3657 #line 660 "cgrammar.y"
3658 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3661 #line 664 "cgrammar.y"
3662 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3665 #line 665 "cgrammar.y"
3666 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3669 #line 669 "cgrammar.y"
3670 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3673 #line 670 "cgrammar.y"
3674 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3677 #line 674 "cgrammar.y"
3678 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3681 #line 675 "cgrammar.y"
3682 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3685 #line 676 "cgrammar.y"
3686 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3689 #line 677 "cgrammar.y"
3690 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3693 #line 681 "cgrammar.y"
3694 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3697 #line 682 "cgrammar.y"
3698 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3701 #line 686 "cgrammar.y"
3702 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3705 #line 690 "cgrammar.y"
3706 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3709 #line 695 "cgrammar.y"
3710 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3713 #line 700 "cgrammar.y"
3714 { exprNode_produceGuards (yyvsp[-1].expr);
3715 context_enterAndClause (yyvsp[-1].expr);
3719 #line 704 "cgrammar.y"
3721 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3722 context_exitAndClause (yyval.expr, yyvsp[0].expr);
3726 #line 712 "cgrammar.y"
3728 exprNode_produceGuards (yyvsp[-1].expr);
3729 context_enterOrClause (yyvsp[-1].expr);
3733 #line 717 "cgrammar.y"
3735 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3736 context_exitOrClause (yyval.expr, yyvsp[0].expr);
3740 #line 724 "cgrammar.y"
3741 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3744 #line 725 "cgrammar.y"
3745 { context_enterFalseClause (yyvsp[-4].expr); ;
3748 #line 726 "cgrammar.y"
3749 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
3752 #line 730 "cgrammar.y"
3753 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3756 #line 731 "cgrammar.y"
3757 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3760 #line 732 "cgrammar.y"
3761 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3764 #line 733 "cgrammar.y"
3765 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3768 #line 734 "cgrammar.y"
3769 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3772 #line 735 "cgrammar.y"
3773 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3776 #line 736 "cgrammar.y"
3777 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3780 #line 737 "cgrammar.y"
3781 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3784 #line 738 "cgrammar.y"
3785 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3788 #line 739 "cgrammar.y"
3789 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3792 #line 740 "cgrammar.y"
3793 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3796 #line 744 "cgrammar.y"
3797 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
3800 #line 747 "cgrammar.y"
3801 { yyval.expr = exprNode_undefined; ;
3804 #line 756 "cgrammar.y"
3805 { yyval.expr = yyvsp[0].expr; ;
3808 #line 757 "cgrammar.y"
3809 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
3812 #line 758 "cgrammar.y"
3813 { yyval.expr = exprNode_makeError (); ;
3816 #line 761 "cgrammar.y"
3817 { yyval.expr = exprNode_makeError (); ;
3820 #line 775 "cgrammar.y"
3822 setProcessingVars (yyvsp[-3].qtyp);
3823 processNamedDecl (yyvsp[-1].ntyp); ;
3826 #line 778 "cgrammar.y"
3827 { unsetProcessingVars (); yyval.expr = yyvsp[-2].expr; ;
3830 #line 780 "cgrammar.y"
3831 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp);
3835 #line 783 "cgrammar.y"
3836 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
3837 unsetProcessingVars ();
3841 #line 787 "cgrammar.y"
3842 { processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeError (); ;
3845 #line 788 "cgrammar.y"
3846 { processNamedDecl (yyvsp[-2].ntyp); ;
3849 #line 789 "cgrammar.y"
3850 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
3853 #line 793 "cgrammar.y"
3854 { setProcessingTypedef (yyvsp[0].qtyp); ;
3857 #line 794 "cgrammar.y"
3858 { unsetProcessingTypedef (); ;
3861 #line 795 "cgrammar.y"
3862 { /* in the ANSI grammar, semantics unclear */ ;
3865 #line 796 "cgrammar.y"
3866 { /* in the ANSI grammar, semantics unclear */ ;
3869 #line 799 "cgrammar.y"
3870 { g_expectingTypeName = TRUE; ;
3873 #line 802 "cgrammar.y"
3874 { g_expectingTypeName = TRUE; context_pushLoc (); ;
3877 #line 805 "cgrammar.y"
3881 #line 808 "cgrammar.y"
3885 #line 809 "cgrammar.y"
3889 #line 812 "cgrammar.y"
3890 { yyval.expr = exprNode_makeError (); ;
3893 #line 813 "cgrammar.y"
3894 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
3897 #line 817 "cgrammar.y"
3898 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].alist); ;
3901 #line 818 "cgrammar.y"
3902 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].alist); ;
3905 #line 823 "cgrammar.y"
3906 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
3909 #line 825 "cgrammar.y"
3910 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
3913 #line 833 "cgrammar.y"
3914 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
3917 #line 834 "cgrammar.y"
3918 { yyval.typequal = qual_createInline (); ;
3921 #line 835 "cgrammar.y"
3922 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
3925 #line 836 "cgrammar.y"
3926 { yyval.typequal = qual_createAuto (); ;
3929 #line 837 "cgrammar.y"
3930 { yyval.typequal = qual_createRegister (); ;
3933 #line 840 "cgrammar.y"
3934 { yyval.typequal = qual_createConst (); ;
3937 #line 841 "cgrammar.y"
3938 { yyval.typequal = qual_createVolatile (); ;
3941 #line 842 "cgrammar.y"
3942 { yyval.typequal = qual_createOut (); ;
3945 #line 843 "cgrammar.y"
3946 { yyval.typequal = qual_createIn (); ;
3949 #line 844 "cgrammar.y"
3950 { yyval.typequal = qual_createPartial (); ;
3953 #line 845 "cgrammar.y"
3954 { yyval.typequal = qual_createSpecial (); ;
3957 #line 846 "cgrammar.y"
3958 { yyval.typequal = qual_createOwned (); ;
3961 #line 847 "cgrammar.y"
3962 { yyval.typequal = qual_createDependent (); ;
3965 #line 848 "cgrammar.y"
3966 { yyval.typequal = qual_createYield (); ;
3969 #line 849 "cgrammar.y"
3970 { yyval.typequal = qual_createTemp (); ;
3973 #line 850 "cgrammar.y"
3974 { yyval.typequal = qual_createOnly (); ;
3977 #line 851 "cgrammar.y"
3978 { yyval.typequal = qual_createKeep (); ;
3981 #line 852 "cgrammar.y"
3982 { yyval.typequal = qual_createKept (); ;
3985 #line 853 "cgrammar.y"
3986 { yyval.typequal = qual_createShared (); ;
3989 #line 854 "cgrammar.y"
3990 { yyval.typequal = qual_createUnique (); ;
3993 #line 855 "cgrammar.y"
3994 { yyval.typequal = qual_createExits (); ;
3997 #line 856 "cgrammar.y"
3998 { yyval.typequal = qual_createMayExit (); ;
4001 #line 857 "cgrammar.y"
4002 { yyval.typequal = qual_createTrueExit (); ;
4005 #line 858 "cgrammar.y"
4006 { yyval.typequal = qual_createFalseExit (); ;
4009 #line 859 "cgrammar.y"
4010 { yyval.typequal = qual_createNeverExit (); ;
4013 #line 860 "cgrammar.y"
4014 { yyval.typequal = qual_createNull (); ;
4017 #line 861 "cgrammar.y"
4018 { yyval.typequal = qual_createRelNull (); ;
4021 #line 862 "cgrammar.y"
4022 { yyval.typequal = qual_createReturned (); ;
4025 #line 863 "cgrammar.y"
4026 { yyval.typequal = qual_createExposed (); ;
4029 #line 864 "cgrammar.y"
4030 { yyval.typequal = qual_createObserver (); ;
4033 #line 865 "cgrammar.y"
4034 { yyval.typequal = qual_createChecked (); ;
4037 #line 866 "cgrammar.y"
4038 { yyval.typequal = qual_createCheckMod (); ;
4041 #line 867 "cgrammar.y"
4042 { yyval.typequal = qual_createUnchecked (); ;
4045 #line 868 "cgrammar.y"
4046 { yyval.typequal = qual_createCheckedStrict (); ;
4049 #line 869 "cgrammar.y"
4050 { yyval.typequal = qual_createTrueNull (); ;
4053 #line 870 "cgrammar.y"
4054 { yyval.typequal = qual_createFalseNull (); ;
4057 #line 871 "cgrammar.y"
4058 { yyval.typequal = qual_createUnused (); ;
4061 #line 872 "cgrammar.y"
4062 { yyval.typequal = qual_createExternal (); ;
4065 #line 873 "cgrammar.y"
4066 { yyval.typequal = qual_createSef (); ;
4069 #line 874 "cgrammar.y"
4070 { yyval.typequal = qual_createAbstract (); ;
4073 #line 875 "cgrammar.y"
4074 { yyval.typequal = qual_createConcrete (); ;
4077 #line 876 "cgrammar.y"
4078 { yyval.typequal = qual_createMutable (); ;
4081 #line 877 "cgrammar.y"
4082 { yyval.typequal = qual_createImmutable (); ;
4085 #line 878 "cgrammar.y"
4086 { yyval.typequal = qual_createNotNull (); ;
4089 #line 879 "cgrammar.y"
4090 { yyval.typequal = qual_createRefCounted (); ;
4093 #line 880 "cgrammar.y"
4094 { yyval.typequal = qual_createRefs (); ;
4097 #line 881 "cgrammar.y"
4098 { yyval.typequal = qual_createKillRef (); ;
4101 #line 882 "cgrammar.y"
4102 { yyval.typequal = qual_createRelDef (); ;
4105 #line 883 "cgrammar.y"
4106 { yyval.typequal = qual_createNewRef (); ;
4109 #line 884 "cgrammar.y"
4110 { yyval.typequal = qual_createTempRef (); ;
4113 #line 887 "cgrammar.y"
4114 { yyval.typequal = qual_createShort (); ;
4117 #line 888 "cgrammar.y"
4118 { yyval.typequal = qual_createLong (); ;
4121 #line 889 "cgrammar.y"
4122 { yyval.typequal = qual_createSigned (); ;
4125 #line 890 "cgrammar.y"
4126 { yyval.typequal = qual_createUnsigned (); ;
4129 #line 899 "cgrammar.y"
4130 { yyval.ctyp = ctype_unknown; ;
4133 #line 900 "cgrammar.y"
4134 { yyval.ctyp = ctype_anyintegral; ;
4137 #line 901 "cgrammar.y"
4138 { yyval.ctyp = ctype_unsignedintegral; ;
4141 #line 902 "cgrammar.y"
4142 { yyval.ctyp = ctype_signedintegral; ;
4145 #line 906 "cgrammar.y"
4146 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4149 #line 910 "cgrammar.y"
4150 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4153 #line 913 "cgrammar.y"
4154 { yyval.qtyp = yyvsp[0].qtyp; ;
4157 #line 915 "cgrammar.y"
4158 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4161 #line 920 "cgrammar.y"
4162 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4165 #line 923 "cgrammar.y"
4166 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4169 #line 924 "cgrammar.y"
4170 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4173 #line 925 "cgrammar.y"
4174 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4177 #line 928 "cgrammar.y"
4178 { yyval.qtyp = qtype_unknown (); ;
4181 #line 929 "cgrammar.y"
4182 { yyval.qtyp = yyvsp[0].qtyp; ;
4185 #line 932 "cgrammar.y"
4186 { sRef_setGlobalScopeSafe (); ;
4189 #line 934 "cgrammar.y"
4190 { sRef_clearGlobalScopeSafe (); ;
4193 #line 936 "cgrammar.y"
4194 { yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ;
4197 #line 937 "cgrammar.y"
4198 { sRef_setGlobalScopeSafe (); ;
4201 #line 939 "cgrammar.y"
4202 { sRef_clearGlobalScopeSafe (); ;
4205 #line 941 "cgrammar.y"
4206 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4209 #line 943 "cgrammar.y"
4210 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4213 #line 945 "cgrammar.y"
4214 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4217 #line 946 "cgrammar.y"
4218 { sRef_setGlobalScopeSafe (); ;
4221 #line 948 "cgrammar.y"
4222 { sRef_clearGlobalScopeSafe (); ;
4225 #line 950 "cgrammar.y"
4226 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4229 #line 951 "cgrammar.y"
4230 { sRef_setGlobalScopeSafe (); ;
4233 #line 953 "cgrammar.y"
4234 { sRef_clearGlobalScopeSafe (); ;
4237 #line 955 "cgrammar.y"
4238 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4241 #line 957 "cgrammar.y"
4242 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4245 #line 959 "cgrammar.y"
4246 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4249 #line 960 "cgrammar.y"
4250 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4253 #line 961 "cgrammar.y"
4254 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4257 #line 964 "cgrammar.y"
4258 { g_expectingTypeName = FALSE; ;
4261 #line 968 "cgrammar.y"
4262 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4265 #line 969 "cgrammar.y"
4266 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4269 #line 973 "cgrammar.y"
4270 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4273 #line 975 "cgrammar.y"
4274 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4277 #line 979 "cgrammar.y"
4278 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4281 #line 981 "cgrammar.y"
4282 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4285 #line 984 "cgrammar.y"
4286 { yyval.ntyp = yyvsp[0].ntyp; ;
4289 #line 985 "cgrammar.y"
4290 { yyval.ntyp = idDecl_undefined; ;
4293 #line 986 "cgrammar.y"
4294 { yyval.ntyp = yyvsp[-2].ntyp; ;
4297 #line 990 "cgrammar.y"
4298 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4301 #line 991 "cgrammar.y"
4302 { context_pushLoc (); ;
4305 #line 992 "cgrammar.y"
4306 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4309 #line 993 "cgrammar.y"
4310 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4313 #line 997 "cgrammar.y"
4314 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4317 #line 999 "cgrammar.y"
4318 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4321 #line 1004 "cgrammar.y"
4322 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4323 usymtab_supGlobalEntry (ue);
4324 yyval.cname = yyvsp[0].cname;
4328 #line 1009 "cgrammar.y"
4329 { uentry ue = uentry_makeEnumConstant (yyvsp[-3].cname, ctype_unknown);
4330 usymtab_supGlobalEntry (ue);
4331 yyval.cname = yyvsp[-3].cname;
4335 #line 1016 "cgrammar.y"
4336 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4339 #line 1018 "cgrammar.y"
4341 qtype qt = qtype_unknown ();
4343 qtype_adjustPointers (yyvsp[-1].count, qt);
4344 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4348 #line 1025 "cgrammar.y"
4349 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4352 #line 1030 "cgrammar.y"
4353 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4356 #line 1033 "cgrammar.y"
4357 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4360 #line 1034 "cgrammar.y"
4361 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4364 #line 1037 "cgrammar.y"
4365 { /* ignored for now */; ;
4368 #line 1038 "cgrammar.y"
4372 #line 1041 "cgrammar.y"
4376 #line 1042 "cgrammar.y"
4380 #line 1045 "cgrammar.y"
4381 { yyval.count = 1; ;
4384 #line 1046 "cgrammar.y"
4385 { yyval.count = 1; ;
4388 #line 1047 "cgrammar.y"
4389 { yyval.count = 1 + yyvsp[0].count; ;
4392 #line 1048 "cgrammar.y"
4393 { yyval.count = 1 + yyvsp[0].count; ;
4396 #line 1052 "cgrammar.y"
4397 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4400 #line 1055 "cgrammar.y"
4401 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4404 #line 1056 "cgrammar.y"
4405 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4408 #line 1059 "cgrammar.y"
4409 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4412 #line 1061 "cgrammar.y"
4413 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4416 #line 1064 "cgrammar.y"
4420 #line 1064 "cgrammar.y"
4421 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4424 #line 1065 "cgrammar.y"
4428 #line 1066 "cgrammar.y"
4429 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4432 #line 1070 "cgrammar.y"
4434 if (isFlipOldStyle ())
4436 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4442 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4446 #line 1082 "cgrammar.y"
4448 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4452 llparseerror (message ("Inconsistent function parameter syntax: %q",
4453 idDecl_unparse (tparam)));
4457 yyval.oentry = makeCurrentParam (tparam);
4458 idDecl_free (tparam);
4462 #line 1098 "cgrammar.y"
4463 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4466 #line 1101 "cgrammar.y"
4467 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4470 #line 1103 "cgrammar.y"
4471 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4474 #line 1106 "cgrammar.y"
4475 { yyval.ctyp = ctype_unknown; ;
4478 #line 1111 "cgrammar.y"
4479 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4482 #line 1112 "cgrammar.y"
4483 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4486 #line 1113 "cgrammar.y"
4487 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4490 #line 1114 "cgrammar.y"
4491 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4494 #line 1115 "cgrammar.y"
4495 { yyval.ctyp = ctype_makeArray (yyvsp[-3].ctyp); ;
4498 #line 1117 "cgrammar.y"
4499 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4502 #line 1119 "cgrammar.y"
4503 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4506 #line 1121 "cgrammar.y"
4507 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4510 #line 1123 "cgrammar.y"
4511 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4514 #line 1139 "cgrammar.y"
4515 { yyval.expr = yyvsp[0].expr; ;
4518 #line 1147 "cgrammar.y"
4519 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4522 #line 1151 "cgrammar.y"
4523 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4526 #line 1153 "cgrammar.y"
4527 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4530 #line 1155 "cgrammar.y"
4531 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4534 #line 1157 "cgrammar.y"
4535 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4538 #line 1161 "cgrammar.y"
4539 { context_setProtectVars (); ;
4542 #line 1161 "cgrammar.y"
4543 { context_sizeofReleaseVars (); ;
4546 #line 1163 "cgrammar.y"
4547 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4548 context_enterForClause (yyvsp[-5].expr); ;
4551 #line 1168 "cgrammar.y"
4552 { setProcessingIterVars (yyvsp[-2].entry); ;
4555 #line 1170 "cgrammar.y"
4556 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].alist); ;
4559 #line 1171 "cgrammar.y"
4560 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4563 #line 1177 "cgrammar.y"
4564 { yyval.expr = yyvsp[0].expr; ;
4567 #line 1185 "cgrammar.y"
4568 { yyval.expr = yyvsp[-1].expr; ;
4571 #line 1186 "cgrammar.y"
4572 { yyval.expr = exprNode_makeError (); ;
4575 #line 1190 "cgrammar.y"
4576 { /* don't: context_exitTrueClause ($1, $2); */
4577 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4581 #line 1195 "cgrammar.y"
4582 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4585 #line 1198 "cgrammar.y"
4586 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4589 #line 1213 "cgrammar.y"
4590 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4593 #line 1215 "cgrammar.y"
4594 { yyval.expr = exprNode_makeError (); ;
4597 #line 1218 "cgrammar.y"
4598 { yyval.expr = exprNode_labelStatement (yyvsp[-2].cname, yyvsp[0].expr); ;
4601 #line 1219 "cgrammar.y"
4602 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4605 #line 1225 "cgrammar.y"
4606 { context_enterCaseClause (yyvsp[0].expr); ;
4609 #line 1226 "cgrammar.y"
4610 { yyval.expr = exprNode_caseStatement (yyvsp[-3].expr, yyvsp[0].expr, FALSE); ;
4613 #line 1227 "cgrammar.y"
4614 { context_enterCaseClause (yyvsp[0].expr); ;
4617 #line 1228 "cgrammar.y"
4618 { yyval.expr = exprNode_caseStatement (yyvsp[-3].expr, yyvsp[0].expr, TRUE); ;
4621 #line 1231 "cgrammar.y"
4622 { context_enterCaseClause (exprNode_undefined); ;
4625 #line 1232 "cgrammar.y"
4626 { yyval.expr = exprNode_defaultStatement (yyvsp[-3].tok, yyvsp[0].expr, FALSE); ;
4629 #line 1233 "cgrammar.y"
4630 { context_enterCaseClause (exprNode_undefined); ;
4633 #line 1234 "cgrammar.y"
4634 { yyval.expr = exprNode_defaultStatement (yyvsp[-3].tok, yyvsp[0].expr, TRUE); ;
4637 #line 1237 "cgrammar.y"
4638 { yyval.expr = yyvsp[-1].expr; ;
4641 #line 1239 "cgrammar.y"
4642 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4645 #line 1242 "cgrammar.y"
4646 { yyval.expr = yyvsp[-1].expr; ;
4649 #line 1245 "cgrammar.y"
4650 { context_enterInnerContext (); ;
4653 #line 1248 "cgrammar.y"
4654 { context_exitInnerPlain (); ;
4657 #line 1251 "cgrammar.y"
4658 { context_enterStructInnerContext (); ;
4661 #line 1254 "cgrammar.y"
4662 { context_exitStructInnerContext (); ;
4665 #line 1257 "cgrammar.y"
4666 { context_exitInnerSafe (); ;
4669 #line 1260 "cgrammar.y"
4670 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4673 #line 1261 "cgrammar.y"
4674 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4677 #line 1262 "cgrammar.y"
4678 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4681 #line 1264 "cgrammar.y"
4682 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4685 #line 1265 "cgrammar.y"
4686 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4689 #line 1267 "cgrammar.y"
4690 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4693 #line 1269 "cgrammar.y"
4694 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4697 #line 1271 "cgrammar.y"
4698 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
4699 lltok_getLoc (yyvsp[-1].tok)));
4703 #line 1278 "cgrammar.y"
4704 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
4707 #line 1282 "cgrammar.y"
4708 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4711 #line 1284 "cgrammar.y"
4712 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4715 #line 1286 "cgrammar.y"
4716 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4719 #line 1288 "cgrammar.y"
4720 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4723 #line 1292 "cgrammar.y"
4724 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4727 #line 1295 "cgrammar.y"
4728 { yyval.expr = yyvsp[0].expr; ;
4731 #line 1296 "cgrammar.y"
4732 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4735 #line 1299 "cgrammar.y"
4736 { yyval.expr = yyvsp[0].expr; ;
4739 #line 1300 "cgrammar.y"
4740 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4743 #line 1303 "cgrammar.y"
4744 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4747 #line 1304 "cgrammar.y"
4748 { yyval.expr = exprNode_statement (yyvsp[-1].expr); ;
4751 #line 1307 "cgrammar.y"
4752 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4755 #line 1308 "cgrammar.y"
4756 { yyval.expr = exprNode_statement (yyvsp[-1].expr); ;
4759 #line 1309 "cgrammar.y"
4760 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
4763 #line 1313 "cgrammar.y"
4764 { yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4767 #line 1321 "cgrammar.y"
4769 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
4770 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4774 #line 1325 "cgrammar.y"
4775 { context_enterFalseClause (yyvsp[-2].expr); ;
4778 #line 1326 "cgrammar.y"
4780 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4781 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4785 #line 1330 "cgrammar.y"
4786 { context_enterSwitch (yyvsp[0].expr); ;
4789 #line 1331 "cgrammar.y"
4790 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
4793 #line 1335 "cgrammar.y"
4794 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
4797 #line 1339 "cgrammar.y"
4798 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
4801 #line 1342 "cgrammar.y"
4802 { context_enterIterClause (); ;
4805 #line 1343 "cgrammar.y"
4806 { setProcessingIterVars (yyvsp[-3].entry); ;
4809 #line 1346 "cgrammar.y"
4811 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].alist, yyvsp[-2].expr, yyvsp[-1].entry);
4816 #line 1352 "cgrammar.y"
4817 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
4820 #line 1353 "cgrammar.y"
4821 { nextIterParam (); ;
4824 #line 1354 "cgrammar.y"
4825 { yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ;
4828 #line 1357 "cgrammar.y"
4829 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
4832 #line 1358 "cgrammar.y"
4833 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
4836 #line 1359 "cgrammar.y"
4837 { uentry ue = coerceIterId (yyvsp[0].ctyp);
4839 if (uentry_isValid (ue))
4841 yyval.expr = exprNode_iterId (ue);
4845 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
4850 #line 1370 "cgrammar.y"
4851 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
4854 #line 1378 "cgrammar.y"
4855 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4858 #line 1382 "cgrammar.y"
4859 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4862 #line 1383 "cgrammar.y"
4863 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4866 #line 1384 "cgrammar.y"
4867 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
4870 #line 1386 "cgrammar.y"
4871 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
4874 #line 1387 "cgrammar.y"
4875 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
4878 #line 1388 "cgrammar.y"
4879 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
4882 #line 1389 "cgrammar.y"
4883 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4886 #line 1390 "cgrammar.y"
4887 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4890 #line 1394 "cgrammar.y"
4891 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4894 #line 1395 "cgrammar.y"
4895 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4898 #line 1396 "cgrammar.y"
4899 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4902 #line 1397 "cgrammar.y"
4903 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4906 #line 1398 "cgrammar.y"
4907 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4910 #line 1399 "cgrammar.y"
4911 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4914 #line 1400 "cgrammar.y"
4915 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4918 #line 1401 "cgrammar.y"
4919 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4922 #line 1402 "cgrammar.y"
4923 { yyval.expr = yyvsp[0].expr; ;
4926 #line 1406 "cgrammar.y"
4927 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
4930 #line 1410 "cgrammar.y"
4931 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4934 #line 1411 "cgrammar.y"
4935 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4938 #line 1412 "cgrammar.y"
4939 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4942 #line 1416 "cgrammar.y"
4943 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4946 #line 1417 "cgrammar.y"
4947 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4950 #line 1421 "cgrammar.y"
4951 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4954 #line 1422 "cgrammar.y"
4955 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4958 #line 1426 "cgrammar.y"
4959 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4962 #line 1427 "cgrammar.y"
4963 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4966 #line 1428 "cgrammar.y"
4967 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4970 #line 1429 "cgrammar.y"
4971 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4974 #line 1433 "cgrammar.y"
4975 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4978 #line 1434 "cgrammar.y"
4979 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4982 #line 1438 "cgrammar.y"
4983 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4986 #line 1442 "cgrammar.y"
4987 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4990 #line 1447 "cgrammar.y"
4991 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4994 #line 1451 "cgrammar.y"
4995 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4998 #line 1455 "cgrammar.y"
4999 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5002 #line 1459 "cgrammar.y"
5003 { context_enterTrueClause (yyvsp[-1].expr); ;
5006 #line 1460 "cgrammar.y"
5007 { context_enterFalseClause (yyvsp[-4].expr); ;
5010 #line 1461 "cgrammar.y"
5011 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5014 #line 1465 "cgrammar.y"
5015 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5018 #line 1466 "cgrammar.y"
5019 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5022 #line 1467 "cgrammar.y"
5023 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5026 #line 1468 "cgrammar.y"
5027 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5030 #line 1469 "cgrammar.y"
5031 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5034 #line 1470 "cgrammar.y"
5035 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5038 #line 1471 "cgrammar.y"
5039 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5042 #line 1472 "cgrammar.y"
5043 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5046 #line 1473 "cgrammar.y"
5047 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5050 #line 1474 "cgrammar.y"
5051 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5054 #line 1475 "cgrammar.y"
5055 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5058 #line 1478 "cgrammar.y"
5059 { yyval.entry = yyvsp[0].entry; ;
5062 #line 1479 "cgrammar.y"
5063 { yyval.entry = uentry_undefined; ;
5066 #line 1482 "cgrammar.y"
5067 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5070 #line 1486 "cgrammar.y"
5071 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5074 #line 1488 "cgrammar.y"
5075 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ;
5078 #line 1490 "cgrammar.y"
5079 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5082 #line 1493 "cgrammar.y"
5083 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5086 #line 1495 "cgrammar.y"
5087 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ;
5090 #line 1497 "cgrammar.y"
5091 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5094 #line 1498 "cgrammar.y"
5095 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5098 #line 1501 "cgrammar.y"
5099 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5102 #line 1502 "cgrammar.y"
5103 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5106 #line 1504 "cgrammar.y"
5107 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5110 #line 1505 "cgrammar.y"
5111 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5114 #line 1506 "cgrammar.y"
5115 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5118 #line 1507 "cgrammar.y"
5119 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5122 #line 1508 "cgrammar.y"
5123 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5126 #line 1509 "cgrammar.y"
5127 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5130 #line 1510 "cgrammar.y"
5131 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5134 #line 1511 "cgrammar.y"
5135 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5138 #line 1515 "cgrammar.y"
5142 #line 1522 "cgrammar.y"
5143 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5146 #line 1523 "cgrammar.y"
5147 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5150 #line 1524 "cgrammar.y"
5151 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5154 /* the action file gets copied in in place of this dollarsign */
5155 #line 498 "/usr/share/bison.simple"
5166 short *ssp1 = yyss - 1;
5167 fprintf (stderr, "state stack now");
5168 while (ssp1 != yyssp)
5169 fprintf (stderr, " %d", *++ssp1);
5170 fprintf (stderr, "\n");
5180 yylsp->first_line = yylloc.first_line;
5181 yylsp->first_column = yylloc.first_column;
5182 yylsp->last_line = (yylsp-1)->last_line;
5183 yylsp->last_column = (yylsp-1)->last_column;
5188 yylsp->last_line = (yylsp+yylen-1)->last_line;
5189 yylsp->last_column = (yylsp+yylen-1)->last_column;
5193 /* Now "shift" the result of the reduction.
5194 Determine what state that goes to,
5195 based on the state we popped back to
5196 and the rule number reduced by. */
5200 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5201 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5202 yystate = yytable[yystate];
5204 yystate = yydefgoto[yyn - YYNTBASE];
5208 yyerrlab: /* here on detecting error */
5211 /* If not already recovering from an error, report this error. */
5215 #ifdef YYERROR_VERBOSE
5216 yyn = yypact[yystate];
5218 if (yyn > YYFLAG && yyn < YYLAST)
5225 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5226 for (x = (yyn < 0 ? -yyn : 0);
5227 x < (sizeof(yytname) / sizeof(char *)); x++)
5228 if (yycheck[x + yyn] == x)
5229 size += strlen(yytname[x]) + 15, count++;
5230 msg = (char *) malloc(size + 15);
5233 strcpy(msg, "parse error");
5238 for (x = (yyn < 0 ? -yyn : 0);
5239 x < (sizeof(yytname) / sizeof(char *)); x++)
5240 if (yycheck[x + yyn] == x)
5242 strcat(msg, count == 0 ? ", expecting `" : " or `");
5243 strcat(msg, yytname[x]);
5252 yyerror ("parse error; also virtual memory exceeded");
5255 #endif /* YYERROR_VERBOSE */
5256 yyerror("parse error");
5260 yyerrlab1: /* here on error raised explicitly by an action */
5262 if (yyerrstatus == 3)
5264 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5266 /* return failure if at end of input */
5267 if (yychar == YYEOF)
5272 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5278 /* Else will try to reuse lookahead token
5279 after shifting the error token. */
5281 yyerrstatus = 3; /* Each real token shifted decrements this */
5285 yyerrdefault: /* current state does not do anything special for the error token. */
5288 /* This is wrong; only states that explicitly want error tokens
5289 should shift them. */
5290 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5291 if (yyn) goto yydefault;
5294 yyerrpop: /* pop the current state because it cannot handle the error token */
5296 if (yyssp == yyss) YYABORT;
5306 short *ssp1 = yyss - 1;
5307 fprintf (stderr, "Error: state stack now");
5308 while (ssp1 != yyssp)
5309 fprintf (stderr, " %d", *++ssp1);
5310 fprintf (stderr, "\n");
5316 yyn = yypact[yystate];
5321 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5340 fprintf(stderr, "Shifting error token, ");
5351 #line 1530 "cgrammar.y"
5355 extern char *yytext;
5358 # include "bison.reset"
5360 void yyerror (/*@unused@*/ char *s)
5362 static bool givehint = FALSE;
5364 if (context_inIterDef ())
5366 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5367 context_inFunctionName ()));
5369 else if (context_inIterEnd ())
5371 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5372 context_inFunctionName ()));
5374 else if (context_inMacro ())
5376 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5377 context_inFunctionName ()));
5379 if (context_inMacroUnknown ())
5383 llhint (cstring_makeLiteral
5384 ("Precede macro definition with /*@notfunction@*/ "
5385 "to suppress checking and force expansion"));
5394 llparseerror (cstring_undefined);