2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
49 /*drl added 11/27/2001*/
52 /*drl added 12/11/2002*/
55 /* < end of bison.head > */
57 /* A Bison parser, made from cgrammar.y
60 #define YYBISON 1 /* Identify Bison output. */
64 # define CTOK_ELIPSIS 259
88 # define TAMPERSAND 283
102 # define CALIGNOF 297
104 # define ARROW_OP 299
105 # define CTYPEDEF 300
106 # define COFFSETOF 301
110 # define RIGHT_OP 305
117 # define MUL_ASSIGN 312
118 # define DIV_ASSIGN 313
119 # define MOD_ASSIGN 314
120 # define ADD_ASSIGN 315
121 # define SUB_ASSIGN 316
122 # define LEFT_ASSIGN 317
123 # define RIGHT_ASSIGN 318
124 # define AND_ASSIGN 319
125 # define XOR_ASSIGN 320
126 # define OR_ASSIGN 321
133 # define QGLOBALS 328
134 # define QMODIFIES 329
136 # define QCONSTANT 331
137 # define QFUNCTION 332
139 # define QDEFINES 334
141 # define QALLOCATES 336
143 # define QRELEASES 338
144 # define QPRECLAUSE 339
145 # define QPOSTCLAUSE 340
146 # define QINVARIANT 341
150 # define QENDMACRO 345
152 # define LLMACROITER 347
153 # define LLMACROEND 348
154 # define TENDMACRO 349
155 # define QDREVEALSTATE 350
156 # define QSWITCHBREAK 351
157 # define QLOOPBREAK 352
158 # define QINNERBREAK 353
159 # define QSAFEBREAK 354
160 # define QINNERCONTINUE 355
161 # define QFALLTHROUGH 356
162 # define QLINTNOTREACHED 357
163 # define QLINTFALLTHROUGH 358
164 # define QLINTFALLTHRU 359
165 # define QARGSUSED 360
166 # define QPRINTFLIKE 361
167 # define QLINTPRINTFLIKE 362
168 # define QSCANFLIKE 363
169 # define QMESSAGELIKE 364
170 # define QNOTREACHED 365
172 # define QRESTRICT 367
173 # define QVOLATILE 368
175 # define QEXTENSION 370
179 # define QREGISTER 374
188 # define QCHECKED 383
189 # define QUNCHECKED 384
190 # define QCHECKEDSTRICT 385
191 # define QCHECKMOD 386
194 # define QPARTIAL 389
195 # define QSPECIAL 390
197 # define QDEPENDENT 392
198 # define QRETURNED 393
199 # define QEXPOSED 394
201 # define QOBSERVER 396
204 # define QMAYEXIT 399
205 # define QNEVEREXIT 400
206 # define QTRUEEXIT 401
207 # define QFALSEEXIT 402
210 # define QUNSIGNED 405
214 # define QNOTNULL 409
215 # define QRELNULL 410
216 # define QABSTRACT 411
217 # define QNUMABSTRACT 412
218 # define QCONCRETE 413
219 # define QMUTABLE 414
220 # define QIMMUTABLE 415
221 # define QTRUENULL 416
222 # define QFALSENULL 417
223 # define QEXTERNAL 418
224 # define QREFCOUNTED 419
227 # define QTEMPREF 422
228 # define QKILLREF 423
236 # define QANYTYPE 431
237 # define QINTEGRALTYPE 432
238 # define QUNSIGNEDINTEGRALTYPE 433
239 # define QSIGNEDINTEGRALTYPE 434
240 # define QNULLTERMINATED 435
241 # define QSETBUFFERSIZE 436
242 # define QSETSTRINGLENGTH 437
244 # define QMAXREAD 439
245 # define QTESTINRANGE 440
247 # define IDENTIFIER 442
248 # define NEW_IDENTIFIER 443
249 # define TYPE_NAME_OR_ID 444
250 # define CANNOTATION 445
251 # define CCONSTANT 446
252 # define ITER_NAME 447
253 # define ITER_ENDNAME 448
254 # define TYPE_NAME 449
255 # define METASTATE_NAME 450
262 ** Yacc/Bison grammar for extended ANSI C used by Splint.
264 ** original grammar by Nate Osgood ---
265 ** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
267 ** changes for Splint --- handle typedef names correctly
268 ** fix struct/union parsing bug (empty struct is accepted)
269 ** add productions to handle macros --- require
270 ** error correction --- main source of conflicts in grammar.
271 ** need to process initializations sequentially, L->R
273 ** production names are cryptic, so more productions fit on one line
275 ** conflicts: 87 shift/reduce, 18 reduce/reduce
276 ** most of these are due to handling macros
277 ** a few are due to handling type expressions
283 extern void yyerror (char *);
285 # include "splintMacros.nf"
287 # include "cscanner.h"
288 # include "cscannerHelp.h"
289 # include "cgrammar.h"
290 # include "exprChecks.h"
295 # define SHOWCSYM FALSE
298 ** This is necessary, or else when the bison-generated code #include's malloc.h,
299 ** there will be a parse error.
301 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
302 ** in bison-generated files under Win32.
312 #ifndef cgrammar_YYSTYPE
320 /*@dependent@*/ sRef sr;
323 /*@only@*/ functionClauseList funcclauselist;
324 /*@only@*/ functionClause funcclause;
325 /*@only@*/ flagSpec flagspec;
326 /*@only@*/ globalsClause globsclause;
327 /*@only@*/ modifiesClause modsclause;
328 /*@only@*/ warnClause warnclause;
329 /*@only@*/ stateClause stateclause;
330 /*@only@*/ pointers pointers;
331 /*@only@*/ functionConstraint fcnconstraint;
333 /*@only@*/ metaStateConstraint msconstraint;
334 /*@only@*/ metaStateSpecifier msspec;
335 /*@only@*/ metaStateExpression msexpr;
336 /*@observer@*/ metaStateInfo msinfo;
338 /*@only@*/ sRefList srlist;
339 /*@only@*/ globSet globset;
340 /*@only@*/ qtype qtyp;
341 /*@only@*/ cstring cname;
342 /*@observer@*/ annotationInfo annotation;
343 /*@only@*/ idDecl ntyp;
344 /*@only@*/ idDeclList ntyplist;
345 /*@only@*/ uentryList flist;
346 /*@owned@*/ uentryList entrylist;
347 /*@observer@*/ /*@dependent@*/ uentry entry;
348 /*@only@*/ uentry oentry;
349 /*@only@*/ exprNode expr;
350 /*@only@*/ enumNameList enumnamelist;
351 /*@only@*/ exprNodeList exprlist;
352 /*@only@*/ sRefSet srset;
353 /*@only@*/ cstringList cstringlist;
363 # define cgrammar_YYSTYPE yystype
364 # define cgrammar_YYSTYPE_IS_TRIVIAL 1
373 #define YYFLAG -32768
376 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
377 #define YYTRANSLATE(x) ((unsigned)(x) <= 450 ? yytranslate[x] : 472)
379 /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
380 static const short yytranslate[] =
382 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
383 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
384 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
385 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
386 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
387 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
388 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
389 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
390 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
391 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
392 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
393 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
394 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
395 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
396 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
397 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
398 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
399 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
400 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
401 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
402 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
403 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
404 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
405 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
406 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
407 2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
408 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
409 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
410 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
411 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
412 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
413 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
414 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
415 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
416 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
417 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
418 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
419 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
420 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
421 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
422 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
423 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
424 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
425 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
426 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
431 static const short yyprhs[] =
433 0, 0, 1, 3, 5, 8, 11, 13, 15, 17,
434 19, 21, 23, 25, 34, 46, 47, 53, 55, 59,
435 61, 64, 66, 73, 77, 84, 85, 92, 93, 101,
436 103, 110, 114, 121, 122, 129, 130, 138, 139, 140,
437 151, 155, 159, 163, 166, 168, 172, 173, 178, 179,
438 184, 186, 190, 192, 194, 196, 200, 202, 206, 208,
439 210, 212, 214, 216, 218, 223, 229, 231, 233, 235,
440 237, 241, 246, 249, 253, 257, 261, 263, 265, 267,
441 268, 271, 272, 275, 277, 279, 281, 283, 285, 287,
442 289, 291, 293, 295, 297, 299, 302, 303, 308, 310,
443 313, 314, 318, 320, 324, 326, 328, 329, 332, 336,
444 339, 341, 345, 348, 349, 352, 354, 356, 358, 360,
445 362, 364, 366, 368, 370, 372, 374, 376, 378, 380,
446 382, 384, 388, 389, 393, 394, 395, 400, 403, 406,
447 408, 410, 412, 414, 418, 423, 426, 430, 434, 438,
448 440, 442, 444, 448, 450, 452, 456, 461, 464, 468,
449 472, 476, 477, 479, 481, 485, 487, 489, 491, 495,
450 497, 499, 500, 505, 507, 512, 516, 521, 528, 534,
451 540, 543, 546, 554, 556, 560, 562, 565, 568, 571,
452 574, 577, 580, 583, 586, 590, 592, 596, 601, 603,
453 613, 614, 618, 619, 620, 625, 628, 633, 636, 638,
454 643, 645, 649, 653, 657, 659, 663, 667, 669, 673,
455 677, 679, 683, 687, 691, 695, 697, 701, 705, 707,
456 711, 713, 717, 719, 723, 725, 726, 731, 733, 734,
457 739, 741, 742, 743, 750, 751, 752, 760, 762, 766,
458 770, 774, 778, 782, 786, 790, 794, 798, 802, 806,
459 808, 812, 813, 815, 817, 819, 821, 823, 827, 828,
460 838, 839, 851, 853, 855, 858, 859, 866, 867, 876,
461 881, 886, 887, 888, 891, 893, 898, 901, 903, 908,
462 909, 914, 916, 920, 925, 928, 931, 934, 936, 939,
463 943, 946, 948, 952, 954, 956, 958, 960, 962, 965,
464 966, 973, 976, 979, 980, 987, 988, 994, 996, 998,
465 1000, 1002, 1004, 1006, 1008, 1010, 1012, 1014, 1016, 1018,
466 1020, 1022, 1024, 1026, 1028, 1030, 1032, 1034, 1036, 1038,
467 1040, 1042, 1044, 1046, 1048, 1050, 1052, 1054, 1056, 1058,
468 1060, 1062, 1064, 1066, 1068, 1070, 1072, 1074, 1076, 1078,
469 1080, 1082, 1084, 1086, 1088, 1090, 1092, 1094, 1096, 1098,
470 1100, 1103, 1106, 1109, 1112, 1115, 1118, 1121, 1124, 1127,
471 1130, 1133, 1136, 1139, 1142, 1145, 1148, 1151, 1154, 1157,
472 1160, 1163, 1166, 1169, 1172, 1175, 1178, 1182, 1184, 1189,
473 1191, 1195, 1198, 1201, 1204, 1205, 1207, 1208, 1209, 1210,
474 1223, 1224, 1225, 1237, 1244, 1251, 1252, 1253, 1264, 1265,
475 1266, 1277, 1283, 1289, 1294, 1299, 1300, 1302, 1304, 1307,
476 1313, 1317, 1320, 1325, 1327, 1331, 1336, 1343, 1344, 1353,
477 1358, 1360, 1364, 1367, 1369, 1374, 1376, 1378, 1381, 1384,
478 1386, 1389, 1391, 1394, 1396, 1398, 1400, 1402, 1405, 1407,
479 1410, 1413, 1417, 1419, 1423, 1425, 1429, 1431, 1433, 1437,
480 1438, 1441, 1442, 1447, 1452, 1454, 1456, 1459, 1461, 1463,
481 1466, 1467, 1469, 1475, 1478, 1482, 1486, 1491, 1495, 1500,
482 1505, 1511, 1513, 1515, 1517, 1519, 1521, 1523, 1525, 1527,
483 1529, 1531, 1536, 1538, 1540, 1542, 1545, 1548, 1556, 1563,
484 1566, 1567, 1568, 1579, 1580, 1587, 1589, 1591, 1593, 1595,
485 1598, 1600, 1602, 1604, 1606, 1608, 1610, 1612, 1616, 1618,
486 1619, 1623, 1626, 1629, 1631, 1633, 1635, 1637, 1639, 1641,
487 1643, 1645, 1647, 1649, 1653, 1655, 1657, 1659, 1662, 1665,
488 1666, 1669, 1670, 1675, 1676, 1683, 1684, 1688, 1689, 1695,
489 1699, 1702, 1706, 1707, 1708, 1709, 1710, 1711, 1713, 1716,
490 1719, 1723, 1726, 1730, 1734, 1739, 1742, 1745, 1749, 1753,
491 1758, 1760, 1763, 1765, 1768, 1770, 1774, 1776, 1781, 1783,
492 1786, 1788, 1791, 1793, 1796, 1798, 1803, 1806, 1807, 1813,
493 1814, 1821, 1826, 1831, 1832, 1833, 1844, 1846, 1847, 1852,
494 1854, 1856, 1858, 1860, 1862, 1865, 1867, 1871, 1873, 1878,
495 1882, 1887, 1894, 1900, 1906, 1909, 1912, 1914, 1917, 1920,
496 1923, 1926, 1929, 1932, 1935, 1938, 1940, 1942, 1947, 1949,
497 1953, 1957, 1961, 1963, 1967, 1971, 1973, 1977, 1981, 1983,
498 1987, 1991, 1995, 1999, 2001, 2005, 2009, 2011, 2015, 2017,
499 2021, 2023, 2027, 2029, 2033, 2035, 2039, 2041, 2042, 2043,
500 2050, 2051, 2052, 2060, 2062, 2066, 2070, 2074, 2078, 2082,
501 2086, 2090, 2094, 2098, 2102, 2106, 2108, 2109, 2111, 2114,
502 2122, 2125, 2128, 2136, 2143, 2146, 2150, 2153, 2157, 2160,
503 2164, 2168, 2172, 2176, 2179, 2183, 2184, 2186, 2187, 2189,
504 2191, 2193, 2195, 2197, 2199, 2201, 2203, 2205, 2210
506 static const short yyrhs[] =
508 -1, 198, 0, 199, 0, 198, 199, 0, 260, 467,
509 0, 200, 0, 201, 0, 211, 0, 214, 0, 302,
510 0, 18, 0, 1, 0, 77, 346, 360, 370, 360,
511 467, 311, 91, 0, 77, 346, 360, 370, 360, 23,
512 311, 318, 317, 467, 91, 0, 0, 78, 202, 203,
513 467, 91, 0, 204, 0, 346, 360, 204, 0, 208,
514 0, 374, 208, 0, 470, 0, 311, 24, 360, 370,
515 311, 25, 0, 205, 26, 27, 0, 205, 26, 311,
516 301, 27, 360, 0, 0, 205, 312, 24, 25, 206,
517 232, 0, 0, 205, 312, 24, 371, 25, 207, 232,
518 0, 470, 0, 311, 24, 360, 204, 311, 25, 0,
519 208, 26, 27, 0, 208, 26, 311, 301, 27, 360,
520 0, 0, 208, 312, 24, 25, 209, 233, 0, 0,
521 208, 312, 24, 371, 25, 210, 233, 0, 0, 0,
522 79, 470, 24, 371, 25, 212, 233, 213, 467, 91,
523 0, 92, 402, 95, 0, 93, 388, 95, 0, 94,
524 389, 95, 0, 92, 95, 0, 255, 0, 217, 23,
525 220, 0, 0, 229, 218, 22, 221, 0, 0, 5,
526 219, 22, 221, 0, 217, 0, 217, 40, 220, 0,
527 196, 0, 187, 0, 56, 0, 224, 222, 223, 0,
528 224, 0, 227, 226, 227, 0, 184, 0, 185, 0,
529 53, 0, 52, 0, 54, 0, 228, 0, 230, 24,
530 227, 25, 0, 24, 227, 231, 227, 25, 0, 229,
531 0, 192, 0, 469, 0, 189, 0, 229, 26, 27,
532 0, 229, 26, 192, 27, 0, 34, 229, 0, 24,
533 229, 25, 0, 229, 28, 470, 0, 229, 45, 470,
534 0, 225, 0, 33, 0, 32, 0, 0, 234, 232,
535 0, 0, 235, 233, 0, 236, 0, 240, 0, 239,
536 0, 324, 0, 327, 0, 246, 0, 237, 0, 241,
537 0, 239, 0, 325, 0, 329, 0, 247, 0, 237,
538 91, 0, 0, 74, 238, 248, 467, 0, 76, 0,
539 241, 91, 0, 0, 75, 242, 261, 0, 244, 0,
540 244, 40, 243, 0, 189, 0, 246, 0, 0, 247,
541 91, 0, 73, 243, 441, 0, 73, 243, 0, 249,
542 0, 248, 21, 249, 0, 250, 251, 0, 0, 252,
543 250, 0, 469, 0, 189, 0, 302, 0, 89, 0,
544 90, 0, 121, 0, 122, 0, 135, 0, 80, 0,
545 81, 0, 82, 0, 83, 0, 84, 0, 85, 0,
546 86, 0, 370, 0, 346, 360, 370, 0, 0, 19,
547 257, 419, 0, 0, 0, 258, 423, 259, 412, 0,
548 215, 256, 0, 264, 467, 0, 467, 0, 469, 0,
549 189, 0, 190, 0, 262, 26, 27, 0, 262, 26,
550 263, 27, 0, 34, 262, 0, 24, 262, 25, 0,
551 262, 28, 470, 0, 262, 45, 470, 0, 262, 0,
552 441, 0, 262, 0, 264, 21, 262, 0, 469, 0,
553 189, 0, 265, 26, 27, 0, 265, 26, 263, 27,
554 0, 34, 265, 0, 24, 265, 25, 0, 265, 28,
555 470, 0, 265, 45, 470, 0, 0, 267, 0, 265,
556 0, 267, 21, 265, 0, 469, 0, 189, 0, 441,
557 0, 24, 299, 25, 0, 190, 0, 116, 0, 0,
558 24, 269, 412, 25, 0, 268, 0, 270, 26, 299,
559 27, 0, 270, 24, 25, 0, 270, 24, 271, 25,
560 0, 71, 24, 298, 21, 382, 25, 0, 270, 360,
561 28, 470, 311, 0, 270, 360, 45, 470, 311, 0,
562 270, 48, 0, 270, 49, 0, 24, 382, 25, 19,
563 424, 468, 20, 0, 298, 0, 271, 21, 298, 0,
564 270, 0, 48, 272, 0, 49, 272, 0, 29, 280,
565 0, 34, 280, 0, 33, 280, 0, 32, 280, 0,
566 31, 280, 0, 30, 280, 0, 277, 275, 278, 0,
567 274, 0, 273, 28, 470, 0, 273, 26, 299, 27,
568 0, 470, 0, 47, 311, 24, 382, 360, 21, 273,
569 25, 311, 0, 0, 311, 276, 279, 0, 0, 0,
570 42, 24, 382, 25, 0, 42, 272, 0, 43, 24,
571 382, 25, 0, 43, 272, 0, 272, 0, 24, 382,
572 25, 280, 0, 280, 0, 281, 34, 280, 0, 281,
573 35, 280, 0, 281, 36, 280, 0, 281, 0, 282,
574 33, 281, 0, 282, 32, 281, 0, 282, 0, 283,
575 50, 282, 0, 283, 51, 282, 0, 283, 0, 284,
576 37, 283, 0, 284, 38, 283, 0, 284, 52, 283,
577 0, 284, 53, 283, 0, 284, 0, 285, 54, 284,
578 0, 285, 55, 284, 0, 285, 0, 286, 29, 285,
579 0, 286, 0, 287, 39, 286, 0, 287, 0, 288,
580 40, 287, 0, 288, 0, 0, 289, 56, 290, 288,
581 0, 289, 0, 0, 291, 57, 292, 289, 0, 291,
582 0, 0, 0, 291, 41, 294, 22, 295, 293, 0,
583 0, 0, 291, 41, 296, 299, 22, 297, 293, 0,
584 293, 0, 272, 23, 298, 0, 272, 58, 298, 0,
585 272, 59, 298, 0, 272, 60, 298, 0, 272, 61,
586 298, 0, 272, 62, 298, 0, 272, 63, 298, 0,
587 272, 64, 298, 0, 272, 65, 298, 0, 272, 66,
588 298, 0, 272, 67, 298, 0, 298, 0, 299, 21,
589 298, 0, 0, 299, 0, 293, 0, 303, 0, 72,
590 0, 309, 0, 346, 311, 18, 0, 0, 346, 360,
591 370, 360, 304, 311, 317, 18, 311, 0, 0, 346,
592 360, 370, 360, 23, 305, 311, 318, 317, 18, 311,
593 0, 307, 0, 195, 0, 370, 360, 0, 0, 370,
594 360, 23, 308, 311, 318, 0, 0, 46, 346, 310,
595 360, 315, 311, 245, 18, 0, 46, 346, 311, 18,
596 0, 46, 313, 311, 18, 0, 0, 0, 314, 311,
597 0, 307, 0, 313, 21, 360, 307, 0, 316, 311,
598 0, 306, 0, 315, 21, 360, 306, 0, 0, 317,
599 21, 360, 307, 0, 298, 0, 19, 322, 20, 0,
600 19, 322, 21, 20, 0, 319, 318, 0, 320, 23,
601 0, 470, 22, 0, 321, 0, 320, 321, 0, 26,
602 301, 27, 0, 28, 470, 0, 318, 0, 322, 21,
603 318, 0, 117, 0, 115, 0, 118, 0, 119, 0,
604 120, 0, 325, 91, 0, 0, 253, 360, 326, 267,
605 467, 311, 0, 329, 91, 0, 254, 360, 0, 0,
606 328, 335, 330, 266, 467, 311, 0, 0, 328, 331,
607 332, 467, 311, 0, 223, 0, 216, 0, 144, 0,
608 145, 0, 147, 0, 148, 0, 146, 0, 129, 0,
609 132, 0, 130, 0, 131, 0, 137, 0, 138, 0,
610 123, 0, 125, 0, 124, 0, 133, 0, 134, 0,
611 126, 0, 128, 0, 141, 0, 143, 0, 156, 0,
612 155, 0, 140, 0, 142, 0, 181, 0, 191, 0,
613 139, 0, 154, 0, 153, 0, 164, 0, 162, 0,
614 163, 0, 157, 0, 158, 0, 159, 0, 160, 0,
615 161, 0, 165, 0, 166, 0, 169, 0, 170, 0,
616 167, 0, 168, 0, 152, 0, 149, 0, 150, 0,
617 151, 0, 121, 0, 122, 0, 135, 0, 136, 0,
618 112, 311, 0, 114, 311, 0, 113, 311, 0, 342,
619 311, 0, 335, 311, 0, 333, 311, 0, 336, 311,
620 0, 334, 311, 0, 338, 311, 0, 337, 311, 0,
621 339, 311, 0, 340, 311, 0, 171, 360, 0, 173,
622 360, 0, 172, 360, 0, 174, 360, 0, 175, 360,
623 0, 176, 360, 0, 177, 360, 0, 178, 360, 0,
624 179, 360, 0, 180, 360, 0, 471, 360, 0, 351,
625 360, 0, 365, 360, 0, 341, 360, 0, 311, 346,
626 311, 0, 348, 0, 348, 88, 347, 91, 0, 382,
627 0, 382, 21, 347, 0, 323, 349, 0, 343, 349,
628 0, 344, 349, 0, 0, 346, 0, 0, 0, 0,
629 360, 68, 470, 311, 19, 352, 416, 361, 417, 353,
630 20, 350, 0, 0, 0, 360, 69, 470, 311, 19,
631 354, 416, 361, 417, 355, 20, 0, 360, 68, 470,
632 311, 19, 20, 0, 360, 69, 470, 311, 19, 20,
633 0, 0, 0, 360, 68, 311, 19, 356, 416, 361,
634 417, 357, 20, 0, 0, 0, 360, 69, 311, 19,
635 358, 416, 361, 417, 359, 20, 0, 360, 68, 311,
636 19, 20, 0, 360, 69, 311, 19, 20, 0, 360,
637 68, 470, 360, 0, 360, 69, 470, 360, 0, 0,
638 362, 0, 214, 0, 361, 362, 0, 346, 360, 363,
639 311, 18, 0, 346, 311, 18, 0, 364, 360, 0,
640 363, 21, 364, 360, 0, 370, 0, 22, 311, 301,
641 0, 370, 22, 311, 301, 0, 360, 70, 19, 367,
642 20, 311, 0, 0, 360, 70, 470, 19, 366, 367,
643 20, 311, 0, 360, 70, 470, 311, 0, 368, 0,
644 367, 21, 368, 0, 367, 21, 0, 470, 0, 470,
645 23, 311, 301, 0, 205, 0, 384, 0, 374, 195,
646 0, 374, 369, 0, 205, 0, 374, 205, 0, 377,
647 0, 360, 375, 0, 112, 0, 113, 0, 114, 0,
648 372, 0, 373, 372, 0, 34, 0, 34, 373, 0,
649 34, 374, 0, 34, 373, 374, 0, 376, 0, 376,
650 21, 5, 0, 470, 0, 376, 21, 470, 0, 5,
651 0, 378, 0, 378, 21, 5, 0, 0, 379, 381,
652 0, 0, 378, 21, 380, 381, 0, 311, 346, 369,
653 311, 0, 470, 0, 345, 0, 345, 383, 0, 374,
654 0, 385, 0, 374, 385, 0, 0, 385, 0, 311,
655 24, 360, 383, 25, 0, 26, 27, 0, 26, 301,
656 27, 0, 385, 26, 27, 0, 385, 26, 301, 27,
657 0, 311, 24, 25, 0, 311, 24, 377, 25, 0,
658 385, 311, 24, 25, 0, 385, 311, 24, 377, 25,
659 0, 404, 0, 406, 0, 409, 0, 412, 0, 427,
660 0, 430, 0, 464, 0, 435, 0, 466, 0, 387,
661 0, 96, 24, 299, 25, 0, 390, 0, 388, 0,
662 397, 0, 390, 397, 0, 434, 390, 0, 463, 403,
663 11, 24, 299, 25, 18, 0, 463, 403, 11, 24,
664 299, 25, 0, 392, 397, 0, 0, 0, 13, 24,
665 300, 18, 300, 18, 393, 300, 394, 25, 0, 0,
666 193, 414, 24, 396, 438, 25, 0, 194, 0, 404,
667 0, 406, 0, 409, 0, 400, 423, 0, 400, 0,
668 401, 0, 427, 0, 398, 0, 391, 0, 395, 0,
669 466, 0, 24, 397, 25, 0, 1, 0, 0, 429,
670 399, 397, 0, 414, 19, 0, 418, 20, 0, 403,
671 0, 422, 0, 404, 0, 406, 0, 409, 0, 413,
672 0, 428, 0, 430, 0, 435, 0, 465, 0, 24,
673 403, 25, 0, 466, 0, 387, 0, 1, 0, 470,
674 22, 0, 111, 386, 0, 0, 102, 405, 0, 0,
675 6, 301, 407, 22, 0, 0, 102, 405, 6, 301,
676 408, 22, 0, 0, 7, 410, 22, 0, 0, 102,
677 405, 7, 411, 22, 0, 24, 412, 25, 0, 414,
678 420, 0, 414, 421, 415, 0, 0, 0, 0, 0,
679 0, 20, 0, 111, 20, 0, 426, 20, 0, 426,
680 111, 20, 0, 423, 20, 0, 423, 111, 20, 0,
681 423, 426, 20, 0, 423, 426, 111, 20, 0, 19,
682 419, 0, 19, 20, 0, 19, 422, 20, 0, 19,
683 423, 20, 0, 19, 423, 426, 20, 0, 403, 0,
684 422, 403, 0, 302, 0, 423, 302, 0, 425, 0,
685 424, 21, 425, 0, 298, 0, 19, 424, 468, 20,
686 0, 386, 0, 426, 386, 0, 18, 0, 299, 18,
687 0, 18, 0, 299, 18, 0, 299, 0, 8, 24,
688 299, 25, 0, 429, 386, 0, 0, 429, 386, 9,
689 431, 386, 0, 0, 10, 24, 299, 432, 25, 386,
690 0, 11, 24, 299, 25, 0, 11, 24, 299, 25,
691 0, 0, 0, 193, 436, 414, 24, 437, 438, 25,
692 412, 462, 415, 0, 440, 0, 0, 438, 439, 21,
693 440, 0, 461, 0, 469, 0, 190, 0, 189, 0,
694 192, 0, 441, 192, 0, 441, 0, 24, 299, 25,
695 0, 442, 0, 270, 26, 299, 27, 0, 270, 24,
696 25, 0, 270, 24, 271, 25, 0, 71, 24, 298,
697 21, 382, 25, 0, 270, 360, 28, 470, 311, 0,
698 270, 360, 45, 470, 311, 0, 270, 48, 0, 270,
699 49, 0, 443, 0, 48, 272, 0, 49, 272, 0,
700 29, 280, 0, 34, 280, 0, 33, 280, 0, 32,
701 280, 0, 31, 280, 0, 30, 280, 0, 275, 0,
702 444, 0, 24, 382, 25, 280, 0, 445, 0, 281,
703 34, 280, 0, 281, 35, 280, 0, 281, 36, 280,
704 0, 446, 0, 282, 33, 281, 0, 282, 32, 281,
705 0, 447, 0, 283, 50, 282, 0, 283, 51, 282,
706 0, 448, 0, 284, 37, 283, 0, 284, 38, 283,
707 0, 284, 52, 283, 0, 284, 53, 283, 0, 449,
708 0, 285, 54, 284, 0, 285, 55, 284, 0, 450,
709 0, 286, 29, 285, 0, 451, 0, 287, 39, 286,
710 0, 452, 0, 288, 40, 287, 0, 453, 0, 289,
711 56, 288, 0, 454, 0, 291, 57, 289, 0, 455,
712 0, 0, 0, 291, 41, 457, 22, 458, 293, 0,
713 0, 0, 291, 41, 459, 299, 22, 460, 293, 0,
714 456, 0, 272, 23, 298, 0, 272, 58, 298, 0,
715 272, 59, 298, 0, 272, 60, 298, 0, 272, 61,
716 298, 0, 272, 62, 298, 0, 272, 63, 298, 0,
717 272, 64, 298, 0, 272, 65, 298, 0, 272, 66,
718 298, 0, 272, 67, 298, 0, 194, 0, 0, 12,
719 0, 433, 386, 0, 463, 386, 11, 24, 299, 25,
720 18, 0, 392, 386, 0, 433, 403, 0, 463, 403,
721 11, 24, 299, 25, 18, 0, 463, 403, 11, 24,
722 299, 25, 0, 392, 403, 0, 14, 470, 18, 0,
723 15, 18, 0, 101, 15, 18, 0, 16, 18, 0,
724 97, 16, 18, 0, 98, 16, 18, 0, 99, 16,
725 18, 0, 100, 16, 18, 0, 17, 18, 0, 17,
726 299, 18, 0, 0, 18, 0, 0, 21, 0, 188,
727 0, 189, 0, 193, 0, 194, 0, 469, 0, 190,
728 0, 195, 0, 190, 0, 44, 24, 299, 25, 0,
735 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
736 static const short yyrline[] =
738 0, 328, 329, 333, 334, 338, 339, 340, 341, 342,
739 343, 344, 345, 349, 351, 356, 356, 365, 371, 376,
740 377, 382, 383, 385, 387, 404, 404, 435, 435, 465,
741 466, 468, 472, 489, 489, 501, 501, 515, 515, 515,
742 524, 525, 526, 527, 531, 535, 540, 540, 545, 545,
743 553, 554, 558, 564, 565, 569, 570, 574, 580, 581,
744 585, 586, 587, 591, 592, 593, 599, 600, 604, 606,
745 608, 610, 619, 621, 623, 625, 642, 646, 647, 654,
746 655, 664, 666, 671, 672, 673, 674, 675, 676, 680,
747 681, 682, 683, 684, 685, 689, 693, 693, 702, 706,
748 710, 710, 725, 727, 732, 736, 737, 741, 745, 751,
749 756, 757, 761, 765, 766, 770, 771, 772, 776, 777,
750 778, 779, 780, 784, 785, 786, 787, 788, 792, 793,
751 797, 804, 809, 809, 815, 815, 815, 826, 837, 838,
752 842, 843, 844, 845, 846, 847, 848, 849, 850, 854,
753 855, 860, 861, 865, 867, 869, 870, 871, 872, 873,
754 875, 880, 881, 885, 891, 904, 905, 906, 907, 908,
755 909, 910, 910, 916, 917, 918, 919, 920, 921, 922,
756 923, 924, 925, 930, 931, 935, 936, 937, 938, 939,
757 940, 941, 942, 943, 944, 945, 949, 950, 952, 956,
758 962, 962, 966, 969, 973, 974, 975, 976, 982, 983,
759 988, 989, 990, 991, 995, 996, 997, 1001, 1002, 1003,
760 1007, 1008, 1009, 1010, 1011, 1015, 1016, 1017, 1021, 1022,
761 1026, 1027, 1031, 1032, 1036, 1037, 1037, 1049, 1050, 1050,
762 1063, 1064, 1064, 1064, 1069, 1069, 1069, 1075, 1076, 1077,
763 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1090,
764 1091, 1095, 1096, 1100, 1106, 1107, 1108, 1112, 1126, 1126,
765 1137, 1137, 1146, 1147, 1151, 1156, 1156, 1161, 1161, 1164,
766 1165, 1169, 1173, 1177, 1181, 1182, 1186, 1190, 1191, 1195,
767 1196, 1200, 1201, 1202, 1203, 1211, 1212, 1217, 1218, 1222,
768 1223, 1227, 1229, 1239, 1240, 1241, 1242, 1243, 1247, 1251,
769 1251, 1267, 1271, 1275, 1275, 1289, 1289, 1321, 1322, 1326,
770 1327, 1328, 1329, 1330, 1334, 1335, 1336, 1337, 1341, 1342,
771 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352,
772 1353, 1354, 1355, 1356, 1357, 1361, 1362, 1366, 1367, 1371,
773 1372, 1376, 1377, 1378, 1379, 1380, 1384, 1385, 1386, 1387,
774 1388, 1389, 1393, 1394, 1395, 1396, 1400, 1401, 1402, 1403,
775 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416,
776 1417, 1418, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433,
777 1434, 1435, 1436, 1437, 1438, 1439, 1443, 1448, 1449, 1454,
778 1455, 1460, 1461, 1462, 1466, 1467, 1471, 1478, 1478, 1478,
779 1484, 1484, 1484, 1489, 1491, 1493, 1493, 1493, 1498, 1498,
780 1498, 1503, 1505, 1507, 1508, 1512, 1516, 1517, 1518, 1522,
781 1524, 1529, 1531, 1536, 1537, 1538, 1543, 1545, 1545, 1547,
782 1551, 1553, 1555, 1559, 1564, 1572, 1573, 1574, 1580, 1585,
783 1586, 1591, 1592, 1596, 1597, 1598, 1602, 1603, 1607, 1608,
784 1609, 1610, 1614, 1615, 1619, 1620, 1624, 1625, 1626, 1630,
785 1630, 1631, 1631, 1636, 1648, 1665, 1666, 1670, 1671, 1672,
786 1676, 1677, 1681, 1683, 1684, 1686, 1687, 1689, 1691, 1693,
787 1695, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710,
788 1711, 1715, 1719, 1723, 1727, 1728, 1733, 1735, 1737, 1739,
789 1744, 1744, 1744, 1752, 1752, 1756, 1760, 1761, 1762, 1763,
790 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1776,
791 1776, 1783, 1787, 1791, 1792, 1796, 1797, 1798, 1799, 1800,
792 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1811, 1812, 1820,
793 1821, 1828, 1828, 1830, 1830, 1835, 1835, 1837, 1837, 1842,
794 1843, 1848, 1852, 1856, 1860, 1864, 1868, 1872, 1873, 1874,
795 1875, 1877, 1878, 1880, 1882, 1889, 1894, 1896, 1898, 1900,
796 1905, 1906, 1910, 1911, 1915, 1916, 1920, 1921, 1925, 1926,
797 1930, 1931, 1935, 1936, 1937, 1941, 1955, 1960, 1960, 1965,
798 1965, 1970, 1976, 1980, 1980, 1980, 1991, 1992, 1992, 1997,
799 1998, 1999, 2010, 2018, 2019, 2023, 2024, 2028, 2029, 2030,
800 2031, 2032, 2034, 2035, 2036, 2037, 2041, 2042, 2043, 2044,
801 2045, 2046, 2047, 2048, 2049, 2050, 2054, 2055, 2059, 2060,
802 2061, 2062, 2066, 2067, 2068, 2072, 2073, 2074, 2078, 2079,
803 2080, 2081, 2082, 2086, 2087, 2088, 2092, 2093, 2097, 2098,
804 2102, 2103, 2107, 2108, 2112, 2113, 2117, 2118, 2118, 2118,
805 2121, 2121, 2121, 2127, 2128, 2129, 2130, 2131, 2132, 2133,
806 2134, 2135, 2136, 2137, 2138, 2142, 2143, 2147, 2151, 2153,
807 2155, 2160, 2161, 2163, 2165, 2169, 2170, 2171, 2173, 2174,
808 2175, 2176, 2177, 2178, 2179, 2183, 2184, 2188, 2189, 2193,
809 2197, 2198, 2199, 2200, 2201, 2205, 2206, 2207, 2208
814 #if (YYDEBUG) || defined YYERROR_VERBOSE
816 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
817 static const char *const yytname[] =
819 "$", "error", "$undefined.", "BADTOK", "SKIPTOK", "CTOK_ELIPSIS", "CASE",
820 "DEFAULT", "CIF", "CELSE", "SWITCH", "WHILE", "DO", "CFOR", "GOTO",
821 "CONTINUE", "BREAK", "RETURN", "TSEMI", "TLBRACE", "TRBRACE", "TCOMMA",
822 "TCOLON", "TASSIGN", "TLPAREN", "TRPAREN", "TLSQBR", "TRSQBR", "TDOT",
823 "TAMPERSAND", "TEXCL", "TTILDE", "TMINUS", "TPLUS", "TMULT", "TDIV",
824 "TPERCENT", "TLT", "TGT", "TCIRC", "TBAR", "TQUEST", "CSIZEOF",
825 "CALIGNOF", "CTYPEOF", "ARROW_OP", "CTYPEDEF", "COFFSETOF", "INC_OP",
826 "DEC_OP", "LEFT_OP", "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP",
827 "AND_OP", "OR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN",
828 "ADD_ASSIGN", "SUB_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN",
829 "XOR_ASSIGN", "OR_ASSIGN", "CSTRUCT", "CUNION", "CENUM", "VA_ARG",
830 "VA_DCL", "QWARN", "QGLOBALS", "QMODIFIES", "QNOMODS", "QCONSTANT",
831 "QFUNCTION", "QITER", "QDEFINES", "QUSES", "QALLOCATES", "QSETS",
832 "QRELEASES", "QPRECLAUSE", "QPOSTCLAUSE", "QINVARIANT", "QALT",
833 "QUNDEF", "QKILLED", "QENDMACRO", "LLMACRO", "LLMACROITER",
834 "LLMACROEND", "TENDMACRO", "QDREVEALSTATE", "QSWITCHBREAK",
835 "QLOOPBREAK", "QINNERBREAK", "QSAFEBREAK", "QINNERCONTINUE",
836 "QFALLTHROUGH", "QLINTNOTREACHED", "QLINTFALLTHROUGH", "QLINTFALLTHRU",
837 "QARGSUSED", "QPRINTFLIKE", "QLINTPRINTFLIKE", "QSCANFLIKE",
838 "QMESSAGELIKE", "QNOTREACHED", "QCONST", "QRESTRICT", "QVOLATILE",
839 "QINLINE", "QEXTENSION", "QEXTERN", "QSTATIC", "QAUTO", "QREGISTER",
840 "QOUT", "QIN", "QYIELD", "QONLY", "QTEMP", "QSHARED", "QREF", "QUNIQUE",
841 "QCHECKED", "QUNCHECKED", "QCHECKEDSTRICT", "QCHECKMOD", "QKEEP",
842 "QKEPT", "QPARTIAL", "QSPECIAL", "QOWNED", "QDEPENDENT", "QRETURNED",
843 "QEXPOSED", "QNULL", "QOBSERVER", "QISNULL", "QEXITS", "QMAYEXIT",
844 "QNEVEREXIT", "QTRUEEXIT", "QFALSEEXIT", "QLONG", "QSIGNED",
845 "QUNSIGNED", "QSHORT", "QUNUSED", "QSEF", "QNOTNULL", "QRELNULL",
846 "QABSTRACT", "QNUMABSTRACT", "QCONCRETE", "QMUTABLE", "QIMMUTABLE",
847 "QTRUENULL", "QFALSENULL", "QEXTERNAL", "QREFCOUNTED", "QREFS",
848 "QNEWREF", "QTEMPREF", "QKILLREF", "QRELDEF", "CGCHAR", "CBOOL", "CINT",
849 "CGFLOAT", "CDOUBLE", "CVOID", "QANYTYPE", "QINTEGRALTYPE",
850 "QUNSIGNEDINTEGRALTYPE", "QSIGNEDINTEGRALTYPE", "QNULLTERMINATED",
851 "QSETBUFFERSIZE", "QSETSTRINGLENGTH", "QMAXSET", "QMAXREAD",
852 "QTESTINRANGE", "TCAND", "IDENTIFIER", "NEW_IDENTIFIER",
853 "TYPE_NAME_OR_ID", "CANNOTATION", "CCONSTANT", "ITER_NAME",
854 "ITER_ENDNAME", "TYPE_NAME", "METASTATE_NAME", "file", "externalDefs",
855 "externalDef", "constantDecl", "fcnDecl", "@1", "plainFcn",
856 "plainNamedDecl", "namedDeclBase", "@2", "@3", "plainNamedDeclBase",
857 "@4", "@5", "iterDecl", "@6", "@7", "macroDef", "fcnDefHdr",
858 "metaStateConstraint", "metaStateSpecifier", "@8", "@9",
859 "metaStateExpression", "metaStateName", "constraintSeperator",
860 "BufConstraintList", "BufConstraint", "bufferModifier", "relationalOp",
861 "BufConstraintExpr", "BufConstraintTerm", "BufConstraintSrefExpr",
862 "BufUnaryOp", "BufBinaryOp", "functionClauses", "functionClausesPlain",
863 "functionClause", "functionClausePlain", "globalsClause",
864 "globalsClausePlain", "@10", "nomodsClause", "modifiesClause",
865 "modifiesClausePlain", "@11", "flagSpec", "flagId", "optWarnClause",
866 "warnClause", "warnClausePlain", "globIdList", "globIdListExpr",
867 "optGlobQuals", "globId", "globQual", "stateTag", "conditionTag",
868 "fcnDefHdrAux", "fcnBody", "@12", "@13", "@14", "fcnDef", "locModifies",
869 "modListExpr", "mExpr", "modList", "specClauseListExpr",
870 "optSpecClauseList", "specClauseList", "primaryExpr", "@15",
871 "postfixExpr", "argumentExprList", "unaryExpr", "fieldDesignator",
872 "offsetofExpr", "sizeofExpr", "@16", "processSizeof",
873 "endprocessSizeof", "sizeofExprAux", "castExpr", "timesExpr",
874 "plusExpr", "shiftExpr", "relationalExpr", "equalityExpr", "bitandExpr",
875 "xorExpr", "bitorExpr", "andExpr", "@17", "orExpr", "@18",
876 "conditionalExpr", "@19", "@20", "@21", "@22", "assignExpr", "expr",
877 "optExpr", "constantExpr", "initializer", "instanceDecl", "@23", "@24",
878 "namedInitializerType", "namedInitializer", "@25", "typeDecl", "@26",
879 "IsType", "PushType", "namedInitializerList", "namedInitializerListAux",
880 "namedInitializerTypeList", "namedInitializerTypeListAux",
881 "optDeclarators", "init", "designation", "designatorList", "designator",
882 "initList", "storageSpecifier", "stateClause", "stateClausePlain",
883 "@27", "conditionClause", "startConditionClause",
884 "conditionClausePlain", "@28", "@29", "functionConstraint",
885 "exitsQualifier", "checkQualifier", "stateQualifier", "paramQualifier",
886 "visibilityQualifier", "returnQualifier", "typedefQualifier",
887 "refcountQualifier", "typeModifier", "definedQualifier",
888 "typeQualifier", "typeSpecifier", "completeType",
889 "completeTypeSpecifier", "altType", "completeTypeSpecifierAux",
890 "optCompleteType", "optStructInvariant", "suSpc", "@30", "@31", "@32",
891 "@33", "@34", "@35", "@36", "@37", "NotType", "structDeclList",
892 "structDecl", "structNamedDeclList", "structNamedDecl", "enumSpc",
893 "@38", "enumeratorList", "enumerator", "optNamedDecl", "namedDecl",
894 "genericParamList", "innerMods", "innerModsList", "pointers",
895 "paramIdList", "idList", "paramTypeList", "paramList", "@39", "@40",
896 "paramDecl", "typeExpression", "abstractDecl", "optAbstractDeclBase",
897 "abstractDeclBase", "stmt", "debugStmt", "iterBody", "endBody",
898 "iterDefStmtList", "iterDefIterationStmt", "forPred", "@41", "@42",
899 "partialIterStmt", "@43", "iterDefStmt", "iterSelectionStmt", "@44",
900 "openScope", "closeScope", "macroBody", "stmtErr", "labeledStmt",
901 "optExtraFallThroughs", "caseStmt", "@45", "@46", "defaultStmt", "@47",
902 "@48", "compoundStmt", "compoundStmtErr", "CreateInnerScope",
903 "DeleteInnerScope", "CreateStructInnerScope", "DeleteStructInnerScope",
904 "DeleteInnerScopeSafe", "compoundStmtRest", "compoundStmtAux",
905 "compoundStmtAuxErr", "stmtListErr", "initializerList",
906 "typeInitializerList", "typeInitializer", "stmtList", "expressionStmt",
907 "expressionStmtErr", "ifPred", "selectionStmt", "@49", "@50",
908 "whilePred", "iterWhilePred", "iterStmt", "@51", "@52", "iterArgList",
909 "@53", "iterArgExpr", "cconstantExpr", "primaryIterExpr",
910 "postfixIterExpr", "unaryIterExpr", "castIterExpr", "timesIterExpr",
911 "plusIterExpr", "shiftIterExpr", "relationalIterExpr",
912 "equalityIterExpr", "bitandIterExpr", "xorIterExpr", "bitorIterExpr",
913 "andIterExpr", "orIterExpr", "conditionalIterExpr", "@54", "@55", "@56",
914 "@57", "assignIterExpr", "endIter", "doHeader", "iterationStmt",
915 "iterationStmtErr", "jumpStmt", "optSemi", "optComma", "id", "newId",
920 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
921 static const short yyr1[] =
923 0, 197, 197, 198, 198, 199, 199, 199, 199, 199,
924 199, 199, 199, 200, 200, 202, 201, 203, 203, 204,
925 204, 205, 205, 205, 205, 206, 205, 207, 205, 208,
926 208, 208, 208, 209, 208, 210, 208, 212, 213, 211,
927 214, 214, 214, 214, 215, 216, 218, 217, 219, 217,
928 220, 220, 221, 222, 222, 223, 223, 224, 225, 225,
929 226, 226, 226, 227, 227, 227, 228, 228, 229, 229,
930 229, 229, 229, 229, 229, 229, 230, 231, 231, 232,
931 232, 233, 233, 234, 234, 234, 234, 234, 234, 235,
932 235, 235, 235, 235, 235, 236, 238, 237, 239, 240,
933 242, 241, 243, 243, 244, 245, 245, 246, 247, 247,
934 248, 248, 249, 250, 250, 251, 251, 251, 252, 252,
935 252, 252, 252, 253, 253, 253, 253, 253, 254, 254,
936 255, 255, 257, 256, 258, 259, 256, 260, 261, 261,
937 262, 262, 262, 262, 262, 262, 262, 262, 262, 263,
938 263, 264, 264, 265, 265, 265, 265, 265, 265, 265,
939 265, 266, 266, 267, 267, 268, 268, 268, 268, 268,
940 268, 269, 268, 270, 270, 270, 270, 270, 270, 270,
941 270, 270, 270, 271, 271, 272, 272, 272, 272, 272,
942 272, 272, 272, 272, 272, 272, 273, 273, 273, 274,
943 276, 275, 277, 278, 279, 279, 279, 279, 280, 280,
944 281, 281, 281, 281, 282, 282, 282, 283, 283, 283,
945 284, 284, 284, 284, 284, 285, 285, 285, 286, 286,
946 287, 287, 288, 288, 289, 290, 289, 291, 292, 291,
947 293, 294, 295, 293, 296, 297, 293, 298, 298, 298,
948 298, 298, 298, 298, 298, 298, 298, 298, 298, 299,
949 299, 300, 300, 301, 302, 302, 302, 303, 304, 303,
950 305, 303, 306, 306, 307, 308, 307, 310, 309, 309,
951 309, 311, 312, 313, 314, 314, 315, 316, 316, 317,
952 317, 318, 318, 318, 318, 319, 319, 320, 320, 321,
953 321, 322, 322, 323, 323, 323, 323, 323, 324, 326,
954 325, 327, 328, 330, 329, 331, 329, 332, 332, 333,
955 333, 333, 333, 333, 334, 334, 334, 334, 335, 335,
956 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
957 335, 335, 335, 335, 335, 336, 336, 337, 337, 338,
958 338, 339, 339, 339, 339, 339, 340, 340, 340, 340,
959 340, 340, 341, 341, 341, 341, 342, 342, 342, 342,
960 343, 343, 343, 343, 343, 343, 343, 343, 343, 343,
961 343, 343, 344, 344, 344, 344, 344, 344, 344, 344,
962 344, 344, 344, 344, 344, 344, 345, 346, 346, 347,
963 347, 348, 348, 348, 349, 349, 350, 352, 353, 351,
964 354, 355, 351, 351, 351, 356, 357, 351, 358, 359,
965 351, 351, 351, 351, 351, 360, 361, 361, 361, 362,
966 362, 363, 363, 364, 364, 364, 365, 366, 365, 365,
967 367, 367, 367, 368, 368, 369, 369, 369, 369, 370,
968 370, 371, 371, 372, 372, 372, 373, 373, 374, 374,
969 374, 374, 375, 375, 376, 376, 377, 377, 377, 379,
970 378, 380, 378, 381, 381, 382, 382, 383, 383, 383,
971 384, 384, 385, 385, 385, 385, 385, 385, 385, 385,
972 385, 386, 386, 386, 386, 386, 386, 386, 386, 386,
973 386, 387, 388, 389, 390, 390, 391, 391, 391, 391,
974 393, 394, 392, 396, 395, 395, 397, 397, 397, 397,
975 397, 397, 397, 397, 397, 397, 397, 397, 397, 399,
976 398, 400, 401, 402, 402, 403, 403, 403, 403, 403,
977 403, 403, 403, 403, 403, 403, 403, 404, 404, 405,
978 405, 407, 406, 408, 406, 410, 409, 411, 409, 412,
979 412, 413, 414, 415, 416, 417, 418, 419, 419, 419,
980 419, 419, 419, 419, 419, 420, 421, 421, 421, 421,
981 422, 422, 423, 423, 424, 424, 425, 425, 426, 426,
982 427, 427, 428, 428, 428, 429, 430, 431, 430, 432,
983 430, 433, 434, 436, 437, 435, 438, 439, 438, 440,
984 440, 440, 440, 441, 441, 442, 442, 443, 443, 443,
985 443, 443, 443, 443, 443, 443, 444, 444, 444, 444,
986 444, 444, 444, 444, 444, 444, 445, 445, 446, 446,
987 446, 446, 447, 447, 447, 448, 448, 448, 449, 449,
988 449, 449, 449, 450, 450, 450, 451, 451, 452, 452,
989 453, 453, 454, 454, 455, 455, 456, 457, 458, 456,
990 459, 460, 456, 461, 461, 461, 461, 461, 461, 461,
991 461, 461, 461, 461, 461, 462, 462, 463, 464, 464,
992 464, 465, 465, 465, 465, 466, 466, 466, 466, 466,
993 466, 466, 466, 466, 466, 467, 467, 468, 468, 469,
994 470, 470, 470, 470, 470, 471, 471, 471, 471
997 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
998 static const short yyr2[] =
1000 0, 0, 1, 1, 2, 2, 1, 1, 1, 1,
1001 1, 1, 1, 8, 11, 0, 5, 1, 3, 1,
1002 2, 1, 6, 3, 6, 0, 6, 0, 7, 1,
1003 6, 3, 6, 0, 6, 0, 7, 0, 0, 10,
1004 3, 3, 3, 2, 1, 3, 0, 4, 0, 4,
1005 1, 3, 1, 1, 1, 3, 1, 3, 1, 1,
1006 1, 1, 1, 1, 4, 5, 1, 1, 1, 1,
1007 3, 4, 2, 3, 3, 3, 1, 1, 1, 0,
1008 2, 0, 2, 1, 1, 1, 1, 1, 1, 1,
1009 1, 1, 1, 1, 1, 2, 0, 4, 1, 2,
1010 0, 3, 1, 3, 1, 1, 0, 2, 3, 2,
1011 1, 3, 2, 0, 2, 1, 1, 1, 1, 1,
1012 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1013 1, 3, 0, 3, 0, 0, 4, 2, 2, 1,
1014 1, 1, 1, 3, 4, 2, 3, 3, 3, 1,
1015 1, 1, 3, 1, 1, 3, 4, 2, 3, 3,
1016 3, 0, 1, 1, 3, 1, 1, 1, 3, 1,
1017 1, 0, 4, 1, 4, 3, 4, 6, 5, 5,
1018 2, 2, 7, 1, 3, 1, 2, 2, 2, 2,
1019 2, 2, 2, 2, 3, 1, 3, 4, 1, 9,
1020 0, 3, 0, 0, 4, 2, 4, 2, 1, 4,
1021 1, 3, 3, 3, 1, 3, 3, 1, 3, 3,
1022 1, 3, 3, 3, 3, 1, 3, 3, 1, 3,
1023 1, 3, 1, 3, 1, 0, 4, 1, 0, 4,
1024 1, 0, 0, 6, 0, 0, 7, 1, 3, 3,
1025 3, 3, 3, 3, 3, 3, 3, 3, 3, 1,
1026 3, 0, 1, 1, 1, 1, 1, 3, 0, 9,
1027 0, 11, 1, 1, 2, 0, 6, 0, 8, 4,
1028 4, 0, 0, 2, 1, 4, 2, 1, 4, 0,
1029 4, 1, 3, 4, 2, 2, 2, 1, 2, 3,
1030 2, 1, 3, 1, 1, 1, 1, 1, 2, 0,
1031 6, 2, 2, 0, 6, 0, 5, 1, 1, 1,
1032 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1033 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1034 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1035 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1036 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1037 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1038 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1039 2, 2, 2, 2, 2, 2, 3, 1, 4, 1,
1040 3, 2, 2, 2, 0, 1, 0, 0, 0, 12,
1041 0, 0, 11, 6, 6, 0, 0, 10, 0, 0,
1042 10, 5, 5, 4, 4, 0, 1, 1, 2, 5,
1043 3, 2, 4, 1, 3, 4, 6, 0, 8, 4,
1044 1, 3, 2, 1, 4, 1, 1, 2, 2, 1,
1045 2, 1, 2, 1, 1, 1, 1, 2, 1, 2,
1046 2, 3, 1, 3, 1, 3, 1, 1, 3, 0,
1047 2, 0, 4, 4, 1, 1, 2, 1, 1, 2,
1048 0, 1, 5, 2, 3, 3, 4, 3, 4, 4,
1049 5, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1050 1, 4, 1, 1, 1, 2, 2, 7, 6, 2,
1051 0, 0, 10, 0, 6, 1, 1, 1, 1, 2,
1052 1, 1, 1, 1, 1, 1, 1, 3, 1, 0,
1053 3, 2, 2, 1, 1, 1, 1, 1, 1, 1,
1054 1, 1, 1, 3, 1, 1, 1, 2, 2, 0,
1055 2, 0, 4, 0, 6, 0, 3, 0, 5, 3,
1056 2, 3, 0, 0, 0, 0, 0, 1, 2, 2,
1057 3, 2, 3, 3, 4, 2, 2, 3, 3, 4,
1058 1, 2, 1, 2, 1, 3, 1, 4, 1, 2,
1059 1, 2, 1, 2, 1, 4, 2, 0, 5, 0,
1060 6, 4, 4, 0, 0, 10, 1, 0, 4, 1,
1061 1, 1, 1, 1, 2, 1, 3, 1, 4, 3,
1062 4, 6, 5, 5, 2, 2, 1, 2, 2, 2,
1063 2, 2, 2, 2, 2, 1, 1, 4, 1, 3,
1064 3, 3, 1, 3, 3, 1, 3, 3, 1, 3,
1065 3, 3, 3, 1, 3, 3, 1, 3, 1, 3,
1066 1, 3, 1, 3, 1, 3, 1, 0, 0, 6,
1067 0, 0, 7, 1, 3, 3, 3, 3, 3, 3,
1068 3, 3, 3, 3, 3, 1, 0, 1, 2, 7,
1069 2, 2, 7, 6, 2, 3, 2, 3, 2, 3,
1070 3, 3, 3, 2, 3, 0, 1, 0, 1, 1,
1071 1, 1, 1, 1, 1, 1, 1, 4, 4
1074 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
1075 doesn't specify something else to do. Zero means the default is an
1077 static const short yydefact[] =
1079 0, 12, 11, 458, 0, 425, 265, 425, 15, 0,
1080 0, 0, 0, 281, 281, 281, 304, 303, 305, 306,
1081 307, 366, 367, 330, 332, 331, 335, 336, 324, 326,
1082 327, 325, 333, 334, 368, 369, 328, 329, 345, 341,
1083 337, 342, 338, 319, 320, 323, 321, 322, 363, 364,
1084 365, 362, 347, 346, 340, 339, 351, 352, 353, 354,
1085 355, 349, 350, 348, 356, 357, 360, 361, 358, 359,
1086 425, 425, 425, 425, 425, 425, 425, 425, 425, 425,
1087 343, 709, 710, 714, 344, 711, 712, 715, 0, 3,
1088 6, 7, 449, 8, 9, 134, 44, 705, 10, 264,
1089 266, 0, 404, 281, 281, 281, 281, 281, 281, 281,
1090 281, 425, 281, 404, 404, 425, 397, 425, 0, 425,
1091 130, 281, 713, 21, 425, 453, 454, 455, 456, 459,
1092 460, 281, 284, 281, 281, 277, 425, 716, 425, 425,
1093 714, 0, 546, 202, 555, 0, 0, 0, 687, 0,
1094 0, 0, 0, 202, 592, 0, 202, 202, 202, 202,
1095 202, 202, 281, 202, 202, 0, 43, 0, 0, 0,
1096 0, 0, 0, 549, 202, 170, 166, 169, 613, 603,
1097 173, 185, 208, 195, 281, 210, 214, 217, 220, 225,
1098 228, 230, 232, 234, 237, 240, 247, 259, 594, 545,
1099 0, 0, 580, 535, 536, 537, 538, 0, 0, 539,
1100 202, 540, 0, 541, 167, 0, 542, 544, 165, 0,
1101 528, 0, 590, 0, 562, 515, 0, 0, 0, 524,
1102 0, 525, 504, 523, 520, 521, 516, 517, 518, 0,
1103 0, 522, 529, 0, 0, 526, 503, 0, 370, 372,
1104 371, 382, 384, 383, 385, 386, 387, 388, 389, 390,
1105 391, 4, 281, 0, 132, 137, 425, 706, 5, 425,
1106 405, 401, 375, 377, 374, 376, 379, 378, 380, 381,
1107 395, 373, 402, 403, 0, 281, 281, 393, 281, 281,
1108 0, 394, 450, 392, 457, 461, 281, 166, 169, 0,
1109 425, 475, 0, 165, 425, 0, 283, 425, 0, 274,
1110 281, 705, 17, 19, 0, 425, 281, 29, 469, 208,
1111 263, 551, 0, 202, 202, 202, 202, 0, 696, 698,
1112 703, 0, 562, 0, 0, 0, 188, 193, 192, 191,
1113 190, 189, 0, 281, 186, 187, 202, 202, 0, 0,
1114 0, 0, 0, 549, 0, 281, 548, 500, 202, 491,
1115 492, 493, 494, 0, 495, 496, 202, 498, 202, 497,
1116 499, 562, 202, 202, 180, 181, 0, 202, 202, 202,
1117 202, 202, 202, 202, 202, 202, 202, 202, 203, 200,
1118 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
1119 202, 202, 202, 202, 202, 202, 235, 244, 238, 593,
1120 202, 694, 40, 0, 563, 581, 596, 691, 614, 0,
1121 547, 202, 0, 0, 0, 591, 41, 505, 509, 582,
1122 425, 519, 531, 532, 0, 0, 0, 42, 23, 202,
1123 469, 425, 425, 281, 267, 131, 0, 399, 0, 425,
1124 0, 425, 0, 281, 0, 717, 281, 202, 0, 477,
1125 476, 478, 718, 281, 280, 281, 279, 275, 425, 0,
1126 281, 0, 425, 281, 20, 466, 0, 0, 451, 467,
1127 281, 0, 556, 0, 599, 0, 262, 0, 695, 704,
1128 562, 0, 168, 202, 543, 281, 0, 0, 0, 699,
1129 700, 701, 702, 697, 550, 202, 557, 0, 690, 425,
1130 560, 688, 0, 0, 175, 0, 183, 0, 0, 0,
1131 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
1132 258, 194, 0, 211, 212, 213, 216, 215, 218, 219,
1133 221, 222, 223, 224, 226, 227, 229, 231, 233, 202,
1134 0, 202, 202, 260, 576, 716, 580, 0, 425, 561,
1135 597, 0, 0, 527, 513, 281, 583, 530, 0, 0,
1136 25, 0, 567, 202, 588, 133, 425, 202, 562, 281,
1137 268, 398, 281, 415, 0, 423, 418, 0, 424, 0,
1138 440, 443, 437, 439, 396, 483, 0, 469, 479, 202,
1139 0, 285, 273, 287, 272, 281, 281, 281, 705, 16,
1140 31, 202, 469, 281, 18, 452, 462, 464, 37, 471,
1141 425, 470, 474, 552, 595, 0, 601, 202, 172, 202,
1142 209, 425, 0, 281, 501, 553, 0, 559, 575, 0,
1143 604, 202, 176, 174, 281, 281, 202, 202, 201, 236,
1144 242, 0, 239, 577, 578, 202, 202, 202, 602, 202,
1145 425, 202, 425, 79, 27, 568, 571, 202, 202, 569,
1146 202, 589, 136, 0, 270, 281, 400, 421, 564, 407,
1147 422, 564, 410, 281, 442, 281, 0, 484, 487, 281,
1148 0, 485, 0, 469, 425, 106, 286, 202, 281, 281,
1149 0, 33, 0, 281, 0, 81, 468, 281, 480, 202,
1150 0, 202, 586, 707, 584, 0, 0, 0, 558, 202,
1151 202, 184, 178, 179, 281, 205, 281, 207, 202, 245,
1152 579, 598, 0, 281, 202, 202, 202, 202, 202, 202,
1153 202, 202, 0, 166, 169, 185, 208, 635, 214, 217,
1154 220, 225, 228, 230, 232, 234, 237, 0, 607, 606,
1155 167, 617, 626, 636, 638, 642, 645, 648, 653, 656,
1156 658, 660, 662, 664, 666, 673, 609, 165, 0, 24,
1157 0, 96, 100, 98, 123, 124, 125, 126, 127, 128,
1158 129, 26, 79, 83, 0, 85, 84, 0, 88, 0,
1159 425, 425, 86, 0, 87, 315, 0, 79, 572, 573,
1160 202, 570, 22, 281, 289, 425, 413, 564, 425, 414,
1161 564, 436, 441, 202, 0, 0, 488, 486, 489, 0,
1162 281, 0, 105, 202, 202, 0, 291, 276, 202, 0,
1163 297, 0, 202, 0, 425, 81, 35, 0, 463, 465,
1164 38, 81, 89, 91, 90, 94, 92, 93, 472, 445,
1165 0, 281, 480, 446, 481, 600, 510, 707, 202, 0,
1166 0, 177, 554, 0, 607, 0, 0, 243, 202, 693,
1167 0, 0, 188, 193, 192, 191, 190, 189, 186, 187,
1168 202, 202, 202, 180, 181, 0, 202, 202, 202, 202,
1169 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
1170 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
1171 202, 202, 202, 202, 670, 202, 514, 0, 508, 104,
1172 109, 102, 113, 705, 80, 95, 99, 107, 309, 312,
1173 308, 0, 313, 311, 28, 574, 202, 0, 427, 425,
1174 425, 426, 425, 425, 425, 444, 281, 482, 490, 288,
1175 278, 301, 0, 0, 300, 294, 295, 298, 296, 289,
1176 13, 32, 34, 81, 30, 705, 82, 469, 473, 447,
1177 448, 202, 0, 585, 182, 0, 198, 0, 562, 204,
1178 206, 246, 692, 168, 202, 0, 175, 0, 0, 0,
1179 0, 674, 675, 676, 677, 678, 679, 680, 681, 682,
1180 683, 684, 211, 212, 213, 216, 215, 218, 219, 221,
1181 222, 223, 224, 226, 227, 229, 231, 233, 663, 0,
1182 202, 665, 202, 507, 108, 0, 118, 119, 120, 121,
1183 122, 705, 110, 425, 113, 0, 0, 141, 142, 101,
1184 151, 705, 139, 140, 0, 48, 0, 0, 58, 59,
1185 69, 67, 318, 0, 317, 56, 76, 0, 63, 66,
1186 0, 705, 68, 161, 289, 281, 425, 0, 281, 428,
1187 416, 425, 419, 425, 438, 292, 202, 299, 705, 36,
1188 0, 281, 511, 587, 281, 202, 0, 689, 686, 209,
1189 281, 176, 174, 281, 281, 668, 0, 608, 103, 113,
1190 97, 116, 112, 117, 115, 114, 0, 145, 0, 0,
1191 0, 0, 138, 0, 0, 154, 163, 705, 153, 0,
1192 0, 66, 0, 72, 0, 54, 53, 0, 61, 60,
1193 62, 0, 0, 0, 0, 0, 0, 281, 705, 162,
1194 0, 269, 281, 430, 281, 281, 425, 433, 0, 408,
1195 0, 411, 293, 302, 0, 39, 281, 0, 199, 0,
1196 196, 685, 563, 0, 178, 179, 202, 671, 111, 146,
1197 143, 149, 0, 150, 147, 148, 152, 0, 157, 0,
1198 0, 0, 0, 281, 0, 78, 77, 0, 73, 0,
1199 50, 45, 46, 55, 66, 57, 70, 0, 74, 75,
1200 0, 0, 316, 281, 281, 290, 202, 281, 0, 431,
1201 281, 417, 0, 420, 0, 14, 512, 197, 605, 177,
1202 669, 202, 144, 158, 155, 0, 159, 160, 164, 310,
1203 52, 49, 0, 0, 71, 47, 64, 314, 271, 434,
1204 425, 429, 202, 406, 412, 672, 156, 65, 51, 432,
1208 static const short yydefgoto[] =
1210 1262, 88, 89, 90, 91, 139, 311, 312, 92, 663,
1211 807, 313, 845, 973, 93, 705, 975, 948, 95, 1062,
1212 1200, 1145, 1129, 1201, 1241, 1137, 1064, 1065, 1066, 1141,
1213 1067, 1068, 1204, 1070, 1197, 791, 850, 792, 851, 793,
1214 852, 932, 853, 796, 854, 933, 930, 931, 831, 798,
1215 799, 1041, 1042, 1043, 1112, 1044, 800, 801, 96, 265,
1216 441, 266, 578, 97, 1049, 1181, 1182, 1051, 1126, 1148,
1217 1127, 180, 332, 181, 515, 182, 985, 183, 747, 532,
1218 184, 531, 648, 185, 186, 187, 188, 189, 190, 191,
1219 192, 193, 194, 549, 195, 552, 196, 550, 728, 551,
1220 878, 197, 226, 487, 321, 429, 99, 675, 813, 603,
1221 604, 607, 100, 307, 101, 263, 133, 134, 605, 606,
1222 947, 837, 838, 839, 840, 962, 102, 802, 856, 1054,
1223 804, 805, 857, 1073, 941, 1071, 103, 104, 105, 106,
1224 107, 108, 109, 110, 111, 112, 113, 114, 301, 430,
1225 446, 116, 271, 1261, 117, 817, 1222, 820, 1224, 678,
1226 1158, 681, 1160, 118, 950, 951, 1155, 1156, 119, 686,
1227 589, 590, 861, 136, 477, 128, 129, 121, 615, 616,
1228 478, 479, 480, 707, 621, 334, 825, 863, 461, 356,
1229 357, 227, 247, 228, 229, 358, 981, 1167, 231, 659,
1230 232, 233, 434, 234, 235, 201, 415, 359, 354, 360,
1231 481, 717, 361, 322, 636, 362, 206, 363, 559, 815,
1232 1080, 240, 575, 510, 414, 208, 576, 713, 714, 577,
1233 364, 209, 210, 365, 656, 625, 366, 243, 367, 371,
1234 720, 758, 927, 759, 214, 761, 762, 763, 764, 765,
1235 766, 767, 768, 769, 770, 771, 772, 773, 774, 775,
1236 1029, 1176, 1030, 1231, 776, 1172, 368, 369, 216, 370,
1237 268, 869, 303, 219, 124
1240 static const short yypact[] =
1242 2191,-32768,-32768, 242, 36, 5658,-32768, 6887,-32768, 767,
1243 3272, 3911, 3911,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1244 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1245 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1246 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1247 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1248 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1249 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1250 -32768,-32768,-32768, 775,-32768,-32768,-32768,-32768, 2389,-32768,
1251 -32768,-32768, 112,-32768,-32768, 87,-32768, 142,-32768,-32768,
1252 -32768, 100, 6473,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1253 -32768,-32768,-32768, 6473, 6473, 164, 177,-32768, 567,-32768,
1254 -32768, 767,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 242,
1255 -32768, 5826,-32768, 278,-32768, 164,-32768,-32768,-32768, 5658,
1256 -32768, 313,-32768, 5949,-32768, 350, 355, 362,-32768, 401,
1257 767, 288, 400, 1681,-32768, 2775, 5949, 5949, 5949, 5949,
1258 5949, 5949,-32768, 5978, 5978, 437,-32768, 442, 467, 471,
1259 484, 492, 463, 420, 5085,-32768, 513, 527,-32768, 539,
1260 -32768, 462, 1141,-32768,-32768,-32768, 665, 80, 282, 716,
1261 344, 578, 606, 624, 610, 57,-32768,-32768, 224,-32768,
1262 3699, 582, 588,-32768,-32768,-32768,-32768, 691, 3379,-32768,
1263 5085,-32768, 3699,-32768, 500, 3699,-32768,-32768, 700, 736,
1264 -32768, 706,-32768, 2970, 539, 738, 370, 675, 3805,-32768,
1265 3911,-32768,-32768,-32768, 6197,-32768,-32768,-32768,-32768, 757,
1266 794,-32768,-32768, 3911, 3699,-32768,-32768, 737,-32768,-32768,
1267 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1268 -32768,-32768, 793, 798,-32768,-32768, 6749,-32768,-32768,-32768,
1269 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1270 -32768,-32768,-32768,-32768, 816, 819,-32768,-32768, 767, 767,
1271 308,-32768, 112,-32768,-32768,-32768, 2087,-32768,-32768, 509,
1272 6887, 77, 814,-32768,-32768, 837,-32768,-32768, 864, 848,
1273 819, 142,-32768, 123, 870,-32768, 767,-32768, 261,-32768,
1274 -32768,-32768, 888, 5949, 5949, 5949, 2010, 902,-32768,-32768,
1275 -32768, 495, 921, 276, 934, 945,-32768,-32768,-32768,-32768,
1276 -32768,-32768, 949, 2087,-32768,-32768, 5949, 5949, 972, 1024,
1277 1026, 1035, 1040, 420, 592, 5499,-32768,-32768, 5085,-32768,
1278 -32768,-32768,-32768, 1050,-32768,-32768, 5085,-32768, 5085,-32768,
1279 -32768,-32768, 5847, 5949,-32768,-32768, 157, 5949, 5949, 5949,
1280 5949, 5949, 5949, 5949, 5949, 5949, 5949, 5949,-32768,-32768,
1281 5949, 5949, 5949, 5949, 5949, 5949, 5949, 5949, 5949, 5949,
1282 5949, 5949, 5949, 5949, 5949, 5949,-32768, 960,-32768,-32768,
1283 5949,-32768,-32768, 2580,-32768,-32768, 1071,-32768,-32768, 1064,
1284 -32768, 5949, 391, 1057, 1069,-32768,-32768,-32768,-32768,-32768,
1285 164, 6197,-32768,-32768, 3911, 3485, 1079,-32768,-32768, 5949,
1286 62, 4018, 5169, 819,-32768, 585, 1011, 1080, 1084, 1088,
1287 1090, 1088, 767, 1095, 520,-32768,-32768, 5858, 1093, 416,
1288 -32768, 563,-32768, 819,-32768, 759,-32768,-32768,-32768, 1031,
1289 1101, 1107,-32768, 819, 123,-32768, 767, 1110,-32768, 1115,
1290 767, 1118,-32768, 542, 1121, 617, 1121, 1127,-32768,-32768,
1291 921, 1123,-32768, 5547,-32768,-32768, 1125, 1130, 654,-32768,
1292 -32768,-32768,-32768,-32768,-32768, 5949,-32768, 1128,-32768, 4018,
1293 -32768,-32768, 1143, 1131,-32768, 655,-32768, 394, 767, 767,
1294 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1295 -32768,-32768, 695,-32768,-32768,-32768, 665, 665, 80, 80,
1296 282, 282, 282, 282, 716, 716, 344, 578, 606, 5949,
1297 1139, 5949, 5949,-32768,-32768, 3165,-32768, 3592, 4208,-32768,
1298 -32768, 1144, 673,-32768,-32768, 819,-32768,-32768, 1145, 1138,
1299 -32768, 1148,-32768, 4588,-32768,-32768, 4398, 4632, 921,-32768,
1300 1151,-32768,-32768, 1155, 1157,-32768, 1161, 1158,-32768, 786,
1301 -32768, 1159,-32768,-32768,-32768,-32768, 1156, 141, 563, 5890,
1302 1160,-32768,-32768,-32768,-32768, 1165,-32768,-32768, 301,-32768,
1303 -32768, 5949, 188, 819,-32768,-32768, 1167,-32768,-32768, 1188,
1304 6887,-32768,-32768,-32768,-32768, 1169,-32768, 2010,-32768, 5574,
1305 -32768,-32768, 1176,-32768,-32768,-32768, 1174,-32768,-32768, 1187,
1306 -32768, 5949,-32768,-32768,-32768,-32768, 6027, 6057,-32768, 624,
1307 -32768, 843, 610,-32768,-32768, 4739, 5085, 5949,-32768, 6116,
1308 -32768, 5949,-32768, 1147,-32768,-32768,-32768, 4783, 4890,-32768,
1309 4934,-32768,-32768, 1173,-32768,-32768,-32768,-32768,-32768, 1192,
1310 -32768,-32768, 1193,-32768, 767,-32768, 767,-32768,-32768, 66,
1311 1190,-32768, 1189, 85,-32768, 1146,-32768, 1911,-32768,-32768,
1312 1197,-32768, 1200,-32768, 440, 1147,-32768, 767, 723, 5085,
1313 1216, 5574,-32768, 1214,-32768, 1217, 1212, 1218,-32768, 5949,
1314 6116,-32768,-32768,-32768, 2087,-32768, 2087,-32768, 5949,-32768,
1315 -32768,-32768, 681, 2087, 5949, 5949, 5949, 5949, 5949, 5949,
1316 5978, 5978, 1215, 692, 694, 707, 1295,-32768, 988, 855,
1317 881, 725, 883, 1213, 1202, 1204, 1191, 138, 1220,-32768,
1318 44,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1319 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 703, 754,-32768,
1320 1059,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1321 -32768,-32768, 1147,-32768, 1162,-32768,-32768, 1163,-32768, 1164,
1322 -32768,-32768,-32768, 1166,-32768, 3116, 1170, 1147,-32768,-32768,
1323 5041,-32768,-32768,-32768,-32768, 6611,-32768,-32768, 6611,-32768,
1324 -32768,-32768,-32768, 5949, 930, 1221,-32768,-32768,-32768, 1225,
1325 759, 1233,-32768, 1911, 5949, 767,-32768,-32768, 1911, 598,
1326 -32768, 1230, 1911, 1171,-32768, 1147,-32768, 1231,-32768,-32768,
1327 -32768, 1147,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 112,
1328 1235,-32768, 708,-32768, 563,-32768,-32768, 1214, 5520, 1240,
1329 767,-32768,-32768, 763, 1238, 1239, 1241,-32768, 5949, 1247,
1330 765, 1242, 792, 802, 820, 825, 853, 874, 879, 897,
1331 5949, 5879, 5949, 937, 946, 166, 5949, 5949, 5949, 5949,
1332 5949, 5949, 5949, 5949, 5949, 5949, 5949, 5949, 5949, 5949,
1333 5949, 5949, 5949, 5949, 5949, 5949, 5949, 5949, 5949, 5949,
1334 5949, 5949, 5949, 5949, 1249, 5949,-32768, 1251, 1255,-32768,
1335 1082, 1236, -4, 32,-32768,-32768,-32768,-32768,-32768,-32768,
1336 -32768, 607,-32768,-32768,-32768,-32768, 1911, 554,-32768, 164,
1337 5331,-32768, 6611, 5331, 6611,-32768,-32768,-32768,-32768,-32768,
1338 -32768,-32768, 975, 1250,-32768,-32768,-32768,-32768,-32768,-32768,
1339 -32768,-32768,-32768, 1147,-32768, 142,-32768, 234,-32768,-32768,
1340 -32768, 5922, 1259,-32768,-32768, 337,-32768, 1260, 921, 1176,
1341 1176,-32768,-32768, 963, 5547, 1270, 964, 966, 432, 767,
1342 767,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1343 -32768,-32768, 976, 995, 996, 519, 790, 815, 835, 296,
1344 381, 454, 464, 791, 854, 74, 507, 328, 624, 1272,
1345 5949, 610, 6116,-32768, 500, 1059,-32768,-32768,-32768,-32768,
1346 -32768, 579,-32768, 6335, -4, 103, 103,-32768,-32768,-32768,
1347 51, 727,-32768,-32768, 137,-32768, 616, 182,-32768,-32768,
1348 -32768,-32768,-32768, 1269,-32768, 14,-32768, 998,-32768, 131,
1349 1271, 142,-32768, 137,-32768,-32768,-32768, 1279, 459,-32768,
1350 -32768, 5331,-32768, 5331,-32768,-32768, 895,-32768, 776,-32768,
1351 1207, 746,-32768,-32768,-32768, 5949, 767,-32768, 1105, 1009,
1352 -32768, 1010, 1015,-32768,-32768,-32768, 993,-32768,-32768, -4,
1353 -32768,-32768,-32768,-32768,-32768,-32768, 560, 51, 499, 767,
1354 767, 103,-32768, 137, 137,-32768, 106, 859,-32768, 1278,
1355 1066, 594, 182, 128, 92,-32768,-32768, 616,-32768,-32768,
1356 -32768, 616, 41, 767, 767, 1280, 616,-32768, 142, 1282,
1357 887,-32768, 819,-32768,-32768, 1284,-32768, 1286, 1289,-32768,
1358 1290,-32768,-32768,-32768, 1223,-32768, 421, 1281,-32768, 443,
1359 -32768,-32768,-32768, 1287, 1049, 1051, 5949,-32768,-32768,-32768,
1360 -32768, 51, 1292, 500,-32768,-32768, 51, 637, 106, 849,
1361 767, 767, 137,-32768, 1129,-32768,-32768, 616,-32768, 594,
1362 1288,-32768, 128,-32768, 128,-32768,-32768, 1294,-32768,-32768,
1363 1129, 1301,-32768,-32768,-32768,-32768, 5949, 459, 1293,-32768,
1364 -32768,-32768, 1309,-32768, 1311,-32768,-32768,-32768,-32768, 1056,
1365 -32768, 5949,-32768,-32768,-32768, 1306,-32768,-32768, 106,-32768,
1366 -32768,-32768, 1310, 92,-32768,-32768,-32768,-32768,-32768,-32768,
1367 -32768,-32768, 5949,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1368 -32768,-32768, 1334, 1336,-32768
1371 static const short yypgoto[] =
1373 -32768,-32768, 1252,-32768,-32768,-32768,-32768, -350, -118,-32768,
1374 -32768, 1021,-32768,-32768,-32768,-32768,-32768, 53,-32768,-32768,
1375 397,-32768,-32768, 96, 132,-32768, 206,-32768,-32768,-32768,
1376 -761,-32768, -860,-32768,-32768, -399, -736,-32768,-32768,-32768,
1377 -561,-32768, -538,-32768, -477,-32768, 310,-32768,-32768, 651,
1378 -653,-32768, 238, 304,-32768,-32768,-32768,-32768,-32768,-32768,
1379 -32768,-32768,-32768,-32768,-32768, -842, 160,-32768, -1040,-32768,
1380 277,-32768,-32768, -615, 461, 1264,-32768,-32768, 1179,-32768,
1381 -32768,-32768,-32768, -143, -363, -361, -336, -359, -381, -375,
1382 -372, -529, -515,-32768, -612,-32768, -105,-32768,-32768,-32768,
1383 -32768, 903, 17, -586, -431, 6,-32768,-32768,-32768, 534,
1384 -3,-32768,-32768,-32768, 871, -256,-32768,-32768,-32768,-32768,
1385 -910, -784,-32768,-32768, 526,-32768,-32768,-32768, -396,-32768,
1386 -32768,-32768, -335,-32768,-32768,-32768,-32768,-32768, 562,-32768,
1387 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 75,
1388 787,-32768, 1016,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1389 -32768,-32768,-32768, 989, -745, -808,-32768, 153,-32768,-32768,
1390 685, 688, 511, 1, -385, 1245,-32768, 4,-32768,-32768,
1391 -558,-32768,-32768,-32768, 668, -108, 1076,-32768, -455, 163,
1392 26, 1366,-32768, 1136,-32768, 1168,-32768,-32768,-32768,-32768,
1393 -152,-32768,-32768,-32768,-32768,-32768, 214, 1258, 1028, 1305,
1394 -32768,-32768, 1479,-32768,-32768, -307,-32768, 559, 210, -630,
1395 -769,-32768, 875,-32768,-32768, 973, -194, 674, 521, -454,
1396 34,-32768, 108, 189,-32768,-32768, 312,-32768, 446,-32768,
1397 -32768, 667,-32768, 356, -627,-32768,-32768,-32768,-32768,-32768,
1398 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1399 -32768,-32768,-32768,-32768,-32768,-32768, 1611,-32768,-32768, 1636,
1400 -290, 523, 0, 19,-32768
1407 static const short yytable[] =
1409 122, 120, 132, 292, 598, 122, 98, 130, 569, 122,
1410 218, 218, 218, 336, 337, 338, 339, 340, 341, 123,
1411 649, 469, 546, 302, 123, 491, 596, 198, 141, 547,
1412 536, 537, 760, 548, 538, 539, 199, 652, 320, 690,
1413 431, 710, 544, 545, 745, 241, 241, 757, 507, 961,
1414 267, 818, 855, 94, 965, 571, 1045, 471, 969, 1088,
1415 131, 540, 541, 542, 543, -615, 1046, 475, 1206, -615,
1416 1135, 423, 442, 953, 635, 115, 427, 1118, 428, 1119,
1417 135, 1069, 138, 1187, 1188, 1036, 1037, 570, 122, 120,
1418 475, 1050, 457, 760, 98, -657, 1120, 1055, 407, -657,
1419 3, -281, 794, 457, 655, 745, 264, 123, 757, 972,
1420 828, 3, 393, 394, 408, 976, 1132, 1038, 1039, 242,
1421 242, 122, 668, 614, 269, 795, 1057, 1045, 401, 402,
1422 755, 1040, 1189, 295, 1190, 829, -282, 1046, 262, 122,
1423 123, 94, 1079, 316, 756, 1079, 475, -282, 299, 470,
1424 122, 1191, 1238, -46, 1142, 218, 1143, 1142, 317, 1143,
1425 267, 1123, 1074, 115, 1150, -425, 688, -425, 692, 327,
1426 331, 1124, 333, 1144, 218, -425, 1144, 270, 447, 924,
1427 700, 199, -281, 507, 1082, 518, 797, 952, 270, 270,
1428 954, 755, 855, 475, 999, 925, 1131, 1133, 855, 211,
1429 218, 1136, 519, 1116, 1117, 756, 1132, 1081, 218, 1083,
1430 218, 1000, 218, 701, 315, 218, 1057, 198, 471, 558,
1431 81, 1047, 1048, 218, 202, 198, 199, 702, 218, 198,
1432 218, 794, 198, 1207, 199, 496, 418, 1089, 199, 475,
1433 422, 199, 409, 218, 218, 410, 794, 533, 534, 535,
1434 -425, -425, -425, 864, 795, -425, -425, 241, -425, 688,
1435 -425, 198, 241, 703, 241, 286, 475, 803, -425, 795,
1436 199, 672, 1199, 1079, 1202, 1079, 3, 241, 752, 1186,
1437 81, 1060, 567, 427, 753, 122, 445, 754, 122, 122,
1438 122, 81, 1047, 1048, 409, 1130, 748, 410, 749, 304,
1439 751, 492, 1163, 1034, 123, 459, 328, 449, 451, 453,
1440 122, 468, 1159, 454, 1161, 797, 122, -649, 699, 267,
1441 855, -649, 212, 750, 698, 81, 1125, 452, 806, 123,
1442 797, 242, 395, 396, 320, 317, 242, 318, 242, 752,
1443 483, 484, 485, 486, 211, 753, 395, 396, 754, -661,
1444 630, 242, 320, -661, 125, 126, 127, 748, 218, 749,
1445 454, 751, 1094, 1095, 498, 1096, 218, 404, 218, 335,
1446 81, 1060, 454, 416, 323, 456, -425, -425, -425, 324,
1447 1205, -425, -425, 1202, 750, 1211, 325, 631, 425, 211,
1448 517, 410, 955, 934, 1028, 1092, 803, 211, 401, 402,
1449 320, 211, -650, 963, 211, 760, -650, 864, 944, 425,
1450 1031, 803, 410, 218, 411, 410, 492, 745, 329, 690,
1451 757, 643, -425, -425, -425, 326, 417, -425, -425, 419,
1452 198, 395, 396, 211, 218, 218, 1242, 566, 562, 199,
1453 -281, 218, 457, 122, 579, 848, -477, 457, 566, -425,
1454 -425, -425, 122, 410, -425, -425, 213, 806, 436, 1102,
1455 601, 346, 123, 122, 410, 122, 347, 212, 241, 241,
1456 1227, 591, 806, 122, 447, -651, 122, 316, 352, -651,
1457 122, 1154, 123, 348, 123, -652, 372, 349, 373, -652,
1458 -425, 1183, 317, 3, 320, 617, 81, 82, 140, 622,
1459 350, 85, 86, 755, 395, 396, 320, -425, 351, 218,
1460 374, 375, 212, 489, 395, 396, 410, 756, 122, 122,
1461 212, 508, 353, 1045, 212, 716, 1180, 212, -659, 511,
1462 410, 512, -659, 1046, 455, -710, 403, 644, 645, 1025,
1463 -644, 410, 242, 242, -644, 492, 1026, 1015, 1016, -714,
1464 1027, 1017, 1018, 390, 391, 392, 212, 218, 218, 1023,
1465 1024, -711, 1183, 410, 566, 122, 660, 624, 651, 207,
1466 239, 239, 1075, 218, 198, 1076, 218, 218, 1019, 1020,
1467 1021, 1022, 566, 199, 123, 1179, 1118, -281, 1119, 599,
1468 859, 882, 883, 884, 885, 886, 887, 267, 505, 506,
1469 1109, 213, 211, -425, 574, 1120, -425, 403, -425, 81,
1470 82, 140, 1055, 122, 85, 86, 875, 316, 876, 1198,
1471 1142, 966, 1143, 877, 834, 881, 835, 556, 81, 82,
1472 140, 1056, 317, 85, 86, 288, 289, 290, 410, 1144,
1473 1056, 1057, 626, 1052, 486, 404, 213, 81, 82, 140,
1474 1057, 752, 85, 86, 213, 218, 218, 753, 213, 777,
1475 754, 213, 1233, 1189, 405, 1190, 406, 218, 218, 748,
1476 218, 749, 574, 751, 732, 410, 641, 412, 778, 634,
1477 642, 1098, 1191, -533, 122, 1090, 122, 81, 1047, 1048,
1478 213, 178, 418, 459, 410, 708, 750, 218, 658, 390,
1479 391, 392, 410, 591, 122, 591, 879, 122, 122, 218,
1480 413, 598, 862, -612, 207, -611, 841, -612, 320, -611,
1481 777, 574, -713, 849, -610, 212, 622, 123, -610, 320,
1482 421, 891, -281, 892, 457, -425, 873, 646, 647, 574,
1483 671, 454, 3, 454, 859, 267, 211, -281, 1121, 457,
1484 880, 1110, -425, 397, 398, 893, 894, 3, 420, 207,
1485 -712, 1122, 914, 915, 1012, 1013, 1014, 207, 399, 400,
1486 426, 207, 457, 991, 207, 410, 432, 916, 917, 928,
1487 3, 1147, 239, 424, 410, 1249, 410, 239, 987, 239,
1488 993, 1058, 1059, 3, 267, 81, 1060, 1076, 1164, 1061,
1489 1058, 1059, 239, 207, 81, 1060, 683, 684, 1061, -716,
1490 218, -643, -654, -629, 433, -643, -654, -629, 671, 731,
1491 438, 1260, 440, -634, 390, 391, 392, -634, 397, 398,
1492 122, 671, 437, 218, 444, 122, -646, 1193, 218, 462,
1493 -646, -633, 218, 399, 400, -633, -632, 393, 394, 123,
1494 -632, 1099, 841, 3, 964, 464, -647, 841, 1213, 213,
1495 -647, 841, 122, -716, 410, 729, 862, 393, 394, 212,
1496 122, 467, 865, 1045, -631, -655, 1234, 267, -631, -655,
1497 1192, 123, 466, 1046, 248, 249, 250, 910, 911, 986,
1498 949, 397, 398, 949, 472, -630, 81, 82, 140, -630,
1499 -627, 85, 86, 979, -627, 1214, 399, 400, 1076, 998,
1500 482, 81, 82, 140, 833, 1162, 85, 86, -628, 296,
1501 488, 834, -628, 835, 156, 157, 158, 159, 160, 161,
1502 513, 912, 913, 1053, 81, 82, 140, 918, 919, 85,
1503 86, 1072, 162, 163, 164, 490, 218, 81, 82, 140,
1504 956, 684, 85, 86, 602, 81, 82, 140, -624, 493,
1505 85, 86, -624, -716, -716, 841, 165, -625, -716, -716,
1506 494, -625, 207, 495, 272, 273, 274, 275, 276, 277,
1507 278, 279, -241, 281, -616, -619, 284, 641, -616, -619,
1508 499, 1101, 1173, 239, 239, 1085, 1086, -639, 486, 122,
1509 122, -639, 300, 213, 305, 306, 308, 81, 82, 140,
1510 314, 175, 85, 86, 410, 1177, -640, -641, 1103, 1104,
1511 -640, -641, 907, 908, 909, 949, 300, 949, 949, 949,
1512 -637, -620, 777, 342, -637, -620, -618, 81, 1047, 1048,
1513 -618, 178, 500, 1114, 501, 1053, 1053, 1106, 292, 1113,
1514 1138, 1139, 1140, 502, 1128, 389, 1072, 1072, 503, 251,
1515 252, 253, 254, 255, 256, 257, 258, 259, 260, 509,
1516 -622, 1230, -623, 1128, -622, 561, -623, -621, 122, 1157,
1517 560, -621, 563, 81, 176, 177, 218, 178, 85, 86,
1518 568, 122, 579, 564, 300, 1166, 122, 123, 1195, 1196,
1519 280, 582, 581, 583, 285, 841, 287, -281, 291, 586,
1520 123, 320, 1169, 293, 592, 1170, 207, 597, 1053, 122,
1521 122, 1053, 609, 1128, 1128, 309, 1255, 310, 610, 282,
1522 283, 612, 1072, 439, 1072, 618, 619, 1072, 1184, 1185,
1523 623, 1072, 410, 122, 122, 627, 1072, 320, 628, 1215,
1524 632, 633, 122, 637, 639, 640, 949, 300, 949, 448,
1525 450, 650, 1208, 1209, 377, 662, 122, 300, 657, 661,
1526 376, 123, 458, 664, 674, 677, 679, 682, 200, 230,
1527 230, 680, 685, 687, 693, 123, 694, 314, 704, 1053,
1528 122, 122, 1128, 706, 709, 629, 718, 1072, 812, 378,
1529 379, 380, 381, 382, 383, 384, 385, 386, 387, 1236,
1530 1237, 719, 816, 819, 300, 826, 827, 122, 1157, 780,
1531 780, 781, 782, 783, 844, 846, 300, 784, 785, 786,
1532 787, 788, 789, 790, 866, 868, 123, 871, 870, 890,
1533 872, 921, 920, 1072, 922, 926, 957, 923, 929, 497,
1534 958, 960, 968, 935, 936, 937, 974, 940, 443, 977,
1535 984, 943, 970, 988, 989, 992, 990, 994, 203, 236,
1536 236, -667, 1032, 1033, 178, 516, 1035, 1087, 1097, 1093,
1537 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
1538 530, 1100, 1134, 463, 1105, 1146, 465, 1153, 1165, 1171,
1539 1194, 284, 1210, 1192, 473, 1217, 1226, 476, 1220, 1221,
1540 1223, 1251, 1229, 553, 1225, 204, 237, 237, 896, 1232,
1541 584, 1244, 587, 200, 593, 1240, 1246, 594, 1243, 1253,
1542 458, 1254, 600, 1256, 1263, 1257, 1264, 474, 1063, 1258,
1543 261, 611, 1245, 1203, 314, 1108, 832, 1178, 1115, 1235,
1544 1149, 620, 997, 897, 898, 899, 900, 901, 902, 903,
1545 904, 905, 906, 388, 959, 967, 300, 942, 200, 676,
1546 1250, 824, 822, 980, 294, 858, 200, 460, 246, 435,
1547 200, 504, 1228, 200, 638, 867, 557, 874, 1107, 983,
1548 982, 230, 0, 0, 0, 0, 230, 0, 230, 0,
1549 0, 0, 0, 0, 0, 0, 0, 319, 0, 0,
1550 0, 230, 200, 203, 0, 0, 0, 0, 0, 565,
1551 319, 319, 319, 319, 319, 319, 0, 344, 345, 476,
1552 0, 0, 0, 0, 580, 0, 0, 0, 585, 0,
1553 588, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1554 673, 0, 0, 300, 0, 0, 0, 608, 203, 0,
1555 204, 613, 0, 0, 0, 0, 203, 0, 0, 600,
1556 203, 0, 0, 203, 0, 0, 695, 696, 697, 0,
1557 0, 236, 0, 0, 314, 0, 236, 0, 236, 205,
1558 238, 238, 0, 0, 0, 0, 0, 0, 0, 0,
1559 0, 236, 203, 0, 300, 204, 0, 0, 0, 0,
1560 0, 0, 0, 204, 0, 722, 723, 204, 0, 0,
1561 204, 0, 0, 0, 0, 0, 0, 0, 237, 0,
1562 389, 0, 712, 237, 0, 237, 0, 0, 0, 0,
1563 0, 0, 0, 0, 721, 0, 814, 0, 237, 204,
1564 0, 0, 0, 0, 821, 0, 823, 0, 0, 0,
1565 458, 0, 0, 0, 0, 0, 0, 0, 0, 842,
1566 843, 0, 0, 0, 847, 0, 0, 0, 620, 860,
1567 0, 200, 0, 0, 0, 0, 689, 0, 0, 0,
1568 0, 389, 0, 0, 0, 300, 0, 300, 0, 0,
1569 836, 476, 230, 230, 300, 0, 0, 0, 0, 0,
1570 0, 0, 0, 0, 712, 0, 0, 0, 0, 0,
1571 715, 215, 244, 244, 0, 0, 0, 0, 0, 0,
1572 0, 0, 0, 0, 205, 0, 0, 0, 0, 0,
1573 0, 0, 0, 0, 0, 0, 217, 245, 245, 580,
1574 0, 779, 0, 0, 319, 319, 319, 319, 319, 319,
1575 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
1576 0, 203, 0, 0, 0, 0, 0, 0, 0, 205,
1577 0, 0, 0, 830, 946, 0, 0, 205, 0, 0,
1578 0, 205, 236, 236, 205, 0, 0, 0, 0, 330,
1579 0, 0, 238, 319, 0, 296, 0, 238, 0, 238,
1580 156, 157, 158, 159, 160, 161, 0, 0, 204, 0,
1581 0, 319, 238, 205, 0, 200, 0, 0, 162, 163,
1582 164, 0, 978, 860, 895, 600, 836, 0, 0, 237,
1583 237, 836, 0, 0, 0, 836, 0, 0, 0, 0,
1584 0, 0, 165, 0, 0, 0, 0, 319, 0, 0,
1585 0, 0, 0, 0, 0, 0, 215, 0, 0, 319,
1586 0, 712, 0, 0, 0, 0, 0, 0, 0, 0,
1587 0, 0, 0, 0, 0, 0, 0, 0, 0, 938,
1588 939, 217, 0, 995, 516, 0, 0, 175, 0, 1001,
1589 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011,
1590 0, 215, 0, 319, 0, 203, 319, 0, 0, 215,
1591 1077, 0, 0, 215, 0, 0, 215, 1084, 0, 0,
1592 0, 0, 0, 971, 244, 0, 217, 0, 0, 244,
1593 0, 244, 0, 0, 217, 0, 0, 0, 217, 836,
1594 0, 217, 0, 0, 244, 215, 0, 0, 0, 245,
1595 0, 0, 204, 319, 245, 0, 245, 0, 0, 81,
1596 297, 298, 0, 178, 0, 319, 0, 0, 0, 245,
1597 217, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1598 0, 0, 205, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 0, 389, 0, 0, 0, 0, 0, 0,
1600 725, 727, 0, 238, 238, 0, 0, 0, 0, 0,
1601 0, 0, 0, 746, 0, 0, 0, 0, 0, 0,
1602 833, 0, 0, 0, 0, 296, 0, 834, 1078, 835,
1603 156, 157, 158, 159, 160, 161, 1151, 0, 0, 0,
1604 0, 0, 0, 0, 0, 0, 0, 0, 162, 163,
1605 164, 0, 860, 0, 0, 1168, 1091, 0, 0, 0,
1606 0, 300, 0, 0, 1174, 1175, 0, 0, 0, 0,
1607 0, 0, 165, 0, 746, 0, 0, 0, 0, 836,
1608 0, 0, 319, 0, 0, 0, 0, 0, 319, 319,
1609 319, 319, 319, 319, 888, 889, 0, 0, 0, 0,
1610 0, 0, 0, 0, 0, 0, 0, 0, 1212, 0,
1611 0, 0, 0, 0, 215, 1216, 1218, 175, -261, 0,
1612 0, 0, 0, 0, 296, 0, 205, 860, 0, 156,
1613 157, 158, 159, 160, 161, 244, 244, 0, 0, 217,
1614 0, 0, 0, 0, 0, 0, 0, 162, 163, 164,
1615 0, 0, 0, 0, 1239, 1152, 0, 0, 0, 0,
1616 245, 245, 0, 0, 0, 0, 0, 0, 0, 0,
1617 0, 165, 0, 0, 1247, 1248, 0, 319, 0, 0,
1618 0, 1252, 0, 0, 0, 0, 0, 0, 319, 81,
1619 176, 177, 0, 178, 85, 86, -171, 0, 0, 0,
1620 0, 296, 0, 0, 0, 0, 156, 157, 158, 159,
1621 160, 161, 0, 0, 0, 0, 175, 0, 0, -202,
1622 -202, 0, 0, 0, 162, 163, 164, 0, 0, 0,
1623 0, 0, 319, 0, 0, 1219, 0, 0, 0, 0,
1624 0, 0, 0, 0, 0, 0, 0, 0, 165, 0,
1625 0, 0, 0, 0, 0, 0, 0, 0, 215, 0,
1626 0, 319, 319, 319, 319, 319, 319, 319, 319, 319,
1627 319, 319, 319, 319, 319, 319, 319, 319, 0, 319,
1628 0, -1, 1, 217, 0, 0, 0, 0, 81, 297,
1629 298, 0, 178, 175, 0, 0, 0, 0, 0, 2,
1630 0, 0, 0, 0, 0, -281, 0, 0, 0, 0,
1631 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
1632 0, 0, 0, 0, 0, 4, 0, 5, 0, 1259,
1633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1634 0, 0, 0, 0, 0, 0, 0, 0, 319, -425,
1635 -425, -425, 0, 6, 0, 0, 0, 0, 7, 8,
1636 9, 0, 0, 0, 0, 81, 297, 298, 0, 178,
1637 0, 0, 0, 10, 11, 12, 0, 0, 0, 0,
1638 0, 0, 0, 0, 0, 0, 746, 0, 0, 0,
1639 0, 0, 0, 13, 14, 15, 16, 0, 17, 18,
1640 19, 20, 21, 22, 23, 24, 25, 26, 0, 27,
1641 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1642 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1643 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1644 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1645 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1646 78, 79, 80, 0, 0, 0, 0, 0, 0, 81,
1647 82, 83, 84, 0, 85, 86, 87, 0, 0, -2,
1648 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1649 0, 0, 0, 0, 0, 0, 0, 2, 0, 0,
1650 0, 0, 0, -281, 0, 0, 0, 0, 0, 0,
1651 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
1652 0, 0, 0, 4, 0, 5, 0, 0, 0, 0,
1653 319, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1654 0, 0, 0, 0, 0, 0, 0, -425, -425, -425,
1655 0, 6, 0, 0, 0, 0, 7, 8, 9, 0,
1656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1657 319, 10, 11, 12, 0, 0, 0, 0, 0, 0,
1658 0, 0, 0, 0, 0, 319, 0, 0, 0, 0,
1659 0, 13, 14, 15, 16, 0, 17, 18, 19, 20,
1660 21, 22, 23, 24, 25, 26, 319, 27, 28, 29,
1661 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1662 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1663 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1664 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1665 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1666 80, 0, 0, 0, 0, 0, 0, 81, 82, 83,
1667 84, 142, 85, 86, 87, 0, 143, 144, 145, 0,
1668 146, 147, 148, 149, 150, 151, 152, 153, 154, -562,
1669 554, 0, 0, 0, 155, 0, 0, 0, 0, 156,
1670 157, 158, 159, 160, 161, 0, 0, 0, 0, 0,
1671 0, 0, -202, -202, 4, 0, 5, 162, 163, 164,
1672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1673 0, 0, 0, 0, 0, 0, 0, 0, -425, -425,
1674 -425, 165, 6, 0, 0, 0, 0, 0, 0, 0,
1675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1676 0, 0, 0, 0, 0, 0, 167, 168, 169, 170,
1677 171, 172, 173, 0, 0, 0, 0, 0, 0, 0,
1678 0, 174, 13, 14, 15, 16, 175, 17, 18, 19,
1679 20, 21, 22, 23, 24, 25, 26, 0, 27, 28,
1680 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1681 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1682 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1683 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1684 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1685 79, 80, 0, 0, 0, 0, 0, 0, 81, 176,
1686 555, 84, 178, 179, 86, 87, 142, 0, 0, 0,
1687 0, 143, 144, 145, 0, 146, 147, 148, 149, 150,
1688 151, 152, 153, 154, -171, 0, 0, 0, 0, 155,
1689 0, 0, 0, 0, 156, 157, 158, 159, 160, 161,
1690 0, 0, 0, 0, 0, 0, 0, -202, -202, -281,
1691 0, 0, 162, 163, 164, 0, 0, 0, 0, 0,
1692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1693 0, 0, 0, -281, -281, -281, 165, 0, 0, 0,
1694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1696 0, 167, 168, 169, 170, 171, 172, 173, 0, 0,
1697 0, 0, 0, 0, 0, 0, 174, -281, -281, -281,
1698 -281, 175, -281, -281, -281, -281, -281, -281, -281, -281,
1699 -281, -281, 0, -281, -281, -281, -281, -281, -281, -281,
1700 -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
1701 -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
1702 -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
1703 -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
1704 -281, -281, -281, -281, -281, -281, -281, 0, 0, 0,
1705 0, 0, 0, 81, 176, 177, -281, 178, 179, 86,
1706 -281, 220, 0, 0, 0, 0, 143, 144, 145, 0,
1707 0, 221, 148, 149, 150, 151, 152, 153, 222, -171,
1708 -566, 0, 0, 0, 223, 0, 0, 0, 0, 156,
1709 157, 158, 159, 160, 161, 0, 0, 0, 0, 0,
1710 0, 0, -202, -202, -281, 0, 0, 162, 163, 164,
1711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1712 0, 0, 0, 0, 0, 0, 0, 0, -281, -281,
1713 -281, 165, 0, 0, 0, 0, 0, 0, 0, 0,
1714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1715 0, 0, 0, 0, 0, 0, 0, 168, 169, 170,
1716 171, 172, 173, 0, 0, 0, 0, 0, 0, 0,
1717 0, 174, -281, -281, -281, -281, 175, -281, -281, -281,
1718 -281, -281, -281, -281, -281, -281, -281, 0, -281, -281,
1719 -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
1720 -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
1721 -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
1722 -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
1723 -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
1724 -281, -281, 0, 0, 0, 0, 0, 0, 81, 176,
1725 177, -281, 178, 224, 225, -281, -169, 0, 0, 0,
1726 0, -169, -169, -169, 0, -169, -169, -169, -169, -169,
1727 -169, -169, -169, -169, -169, -169, -169, -714, -169, -169,
1728 0, -169, 0, -169, -169, -169, -169, -169, -169, -169,
1729 -169, -169, -169, -169, -169, -169, -169, -169, -169, 0,
1730 -169, 0, -169, -169, -169, -169, -169, -169, -169, -169,
1731 -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
1732 -169, -169, -169, 0, 0, 0, -169, 0, 0, 23,
1733 24, 25, 26, 0, 27, 0, 0, 0, 0, 32,
1734 33, 0, 0, 36, 37, 0, 39, 40, 41, 42,
1735 0, -169, -169, -169, -169, -169, -169, -169, 0, 0,
1736 0, 54, 55, 142, 0, 0, -169, 0, 143, 144,
1737 145, -169, 146, 147, 148, 149, 150, 151, 152, 153,
1738 154, -562, 0, 0, 0, 0, 155, 80, 0, 0,
1739 0, 156, 157, 158, 159, 160, 161, 84, 0, 0,
1740 0, 0, 0, 0, -202, -202, 0, 0, 0, 162,
1741 163, 164, 0, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 0, 0, 165, 0, 0, 0, 0, 0, 0,
1744 0, 0, 0, -169, -169, -169, 0, -169, -169, -169,
1745 0, 0, 0, 0, 0, 0, 0, 166, 167, 168,
1746 169, 170, 171, 172, 173, 0, 0, 0, 0, 0,
1747 142, 0, 0, 174, 0, 143, 144, 145, 175, 146,
1748 147, 148, 149, 150, 151, 152, 153, 154, -562, 0,
1749 0, 0, 0, 155, 0, 0, 0, 0, 156, 157,
1750 158, 159, 160, 161, 0, 0, 0, 0, 0, 0,
1751 0, -202, -202, 0, 0, 0, 162, 163, 164, 0,
1752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1754 165, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755 81, 176, 177, 0, 178, 179, 86, 0, 0, 0,
1756 0, 0, 0, 0, -534, 167, 168, 169, 170, 171,
1757 172, 173, 0, 0, 0, 0, 220, 0, 0, 0,
1758 174, 143, 144, 145, 0, 175, 221, 148, 149, 150,
1759 151, 152, 153, 222, -506, -506, 0, 0, 0, 223,
1760 -506, 0, 0, 0, 156, 157, 158, 159, 160, 161,
1761 0, 0, 0, 0, 0, 0, 0, -202, -202, 0,
1762 0, 0, 162, 163, 164, 0, 0, 0, 0, 0,
1763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1764 0, 0, 0, 0, 0, 0, 165, 0, 0, 0,
1765 0, 0, 0, 0, 0, 0, 0, 81, 176, 177,
1766 0, 178, 179, 86, 0, 0, 0, 0, 0, 0,
1767 -506, 0, 168, 169, 170, 171, 172, 173, 0, 0,
1768 0, 0, 0, 142, 0, 0, 174, 0, 143, 144,
1769 145, 175, 146, 147, 148, 149, 150, 151, 152, 153,
1770 154, -562, 653, 0, 0, 0, 155, 0, 0, 0,
1771 0, 156, 157, 158, 159, 160, 161, 0, 0, 0,
1772 0, 0, 0, 0, -202, -202, 0, 0, 0, 162,
1773 163, 164, 0, 0, 0, 0, 0, 0, 0, 0,
1774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1775 0, 0, 0, 165, 0, 0, 0, 0, 0, 0,
1776 0, 0, 0, 81, 176, 177, 0, 178, 224, 225,
1777 0, 0, 0, 0, 0, 0, 0, 0, 167, 168,
1778 169, 170, 171, 172, 173, 0, 0, 0, 0, 0,
1779 142, 0, 0, 174, 0, 143, 144, 145, 175, 146,
1780 147, 148, 149, 150, 151, 152, 153, 154, -562, 0,
1781 0, 0, 0, 155, 0, 0, 0, 0, 156, 157,
1782 158, 159, 160, 161, 0, 0, 0, 0, 0, 0,
1783 0, -202, -202, 0, 0, 0, 162, 163, 164, 0,
1784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1786 165, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1787 81, 176, 177, 0, 178, 179, 86, 0, 0, 0,
1788 0, 0, 0, 0, 0, 167, 168, 169, 170, 171,
1789 172, 173, 0, 0, 0, 0, 220, 0, 0, 0,
1790 174, 143, 144, 145, 0, 175, 221, 148, 149, 150,
1791 151, 152, 153, 222, -562, -566, 0, 0, 0, 223,
1792 0, 0, 0, 0, 156, 157, 158, 159, 160, 161,
1793 0, 0, 0, 0, 0, 0, 0, -202, -202, 0,
1794 0, 0, 162, 163, 164, 0, 0, 0, 0, 0,
1795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1796 0, 0, 0, 0, 0, 0, 165, 0, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 81, 176, 177,
1798 0, 178, 179, 86, 0, 0, 0, 0, 0, 0,
1799 -502, 0, 168, 169, 170, 171, 172, 173, 0, 0,
1800 0, 0, 220, 0, 0, 0, 174, 143, 144, 145,
1801 0, 175, 221, 148, 149, 150, 151, 152, 153, 222,
1802 -562, -566, 0, 0, 0, 223, 0, 0, 0, 0,
1803 156, 157, 158, 159, 160, 161, 0, 0, 0, 0,
1804 0, 0, 0, -202, -202, 0, 0, 0, 162, 163,
1805 164, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1807 0, 0, 165, 0, 0, 0, 0, 0, 0, 0,
1808 0, 0, 0, 81, 176, 177, 0, 178, 224, 225,
1809 0, 0, 0, 0, 0, 0, 0, 0, 168, 169,
1810 170, 171, 172, 173, 0, 0, 0, 0, 0, 0,
1811 0, 0, 174, 0, 143, 144, 145, 175, 146, 147,
1812 148, 149, 150, 151, 152, 153, 222, -562, 572, 0,
1813 0, 0, 355, 0, 0, 0, 0, 156, 157, 158,
1814 159, 160, 161, 0, 0, 0, 0, 0, 0, 0,
1815 -202, -202, 4, 0, 5, 162, 163, 164, 0, 0,
1816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1817 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
1818 6, 0, 0, 0, 0, 0, 0, 0, 0, 81,
1819 176, 177, 0, 178, 224, 225, 0, 0, 0, 0,
1820 0, 0, 0, 0, 167, 168, 169, 170, 171, 172,
1821 173, 0, 0, 0, 0, 0, 0, 0, 0, 573,
1822 13, 14, 15, 16, 175, 17, 18, 19, 20, 21,
1823 22, 23, 24, 25, 26, 0, 27, 28, 29, 30,
1824 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1825 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1826 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1827 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1828 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1829 0, 0, 0, 0, 0, 0, 81, 176, 555, 84,
1830 178, 179, 86, 87, 143, 144, 145, 0, 146, 147,
1831 148, 149, 150, 151, 152, 153, 222, -562, 654, 0,
1832 0, 0, 355, 0, 0, 0, 0, 156, 157, 158,
1833 159, 160, 161, 0, 0, 0, 0, 0, 0, 0,
1834 -202, -202, 4, 0, 5, 162, 163, 164, 0, 0,
1835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1836 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
1837 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1839 0, 0, 0, 0, 167, 168, 169, 170, 171, 172,
1840 173, 0, 0, 0, 0, 0, 0, 0, 0, 174,
1841 13, 14, 15, 16, 175, 17, 18, 19, 20, 21,
1842 22, 23, 24, 25, 26, 0, 27, 28, 29, 30,
1843 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1844 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1845 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1846 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1847 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1848 0, 0, 0, 0, 0, 0, 81, 176, 555, 84,
1849 178, 179, 86, 87, 143, 144, 145, 0, 146, 147,
1850 148, 149, 150, 151, 152, 153, 222, -562, 666, 0,
1851 0, 0, 355, 0, 0, 0, 0, 156, 157, 158,
1852 159, 160, 161, 0, 0, 0, 0, 0, 0, 0,
1853 -202, -202, 4, 0, 5, 162, 163, 164, 0, 0,
1854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1855 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
1856 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1858 0, 0, 0, 0, 167, 168, 169, 170, 171, 172,
1859 173, 0, 0, 0, 0, 0, 0, 0, 0, 667,
1860 13, 14, 15, 16, 175, 17, 18, 19, 20, 21,
1861 22, 23, 24, 25, 26, 0, 27, 28, 29, 30,
1862 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1863 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1864 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1865 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1866 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1867 0, 0, 0, 0, 0, 0, 81, 176, 555, 84,
1868 178, 179, 86, 87, 143, 144, 145, 0, 146, 147,
1869 148, 149, 150, 151, 152, 153, 222, -562, 665, 0,
1870 0, 0, 355, 0, 0, 0, 0, 156, 157, 158,
1871 159, 160, 161, 0, 0, 0, 0, 0, 0, 0,
1872 0, 0, 0, 0, 0, 162, 163, 164, 143, 144,
1873 145, 0, 146, 147, 148, 149, 150, 151, 152, 153,
1874 222, -562, 669, 0, 0, 0, 355, 0, 0, 165,
1875 0, 156, 157, 158, 159, 160, 161, 0, 0, 0,
1876 0, 0, 0, 0, 0, 0, 0, 0, 0, 162,
1877 163, 164, 0, 0, 167, 168, 169, 170, 171, 172,
1878 173, 0, 0, 0, 0, 0, 0, 0, 0, 174,
1879 0, 0, 0, 165, 175, 0, 0, 0, 0, 0,
1880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1881 0, 0, 0, 0, 0, 0, 0, 0, 167, 168,
1882 169, 170, 171, 172, 173, 0, 0, 0, 0, 0,
1883 0, 0, 0, 670, 0, 143, 144, 145, 175, 146,
1884 147, 148, 149, 150, 151, 152, 153, 222, -562, 730,
1885 0, 0, 0, 355, 0, 0, 0, 0, 156, 157,
1886 158, 159, 160, 161, 0, 0, 81, 176, 177, 0,
1887 178, 179, 86, 0, 0, 0, 162, 163, 164, 143,
1888 144, 145, 0, 146, 147, 148, 149, 150, 151, 152,
1889 153, 222, -562, 808, 0, 0, 0, 355, 0, 0,
1890 165, 0, 156, 157, 158, 159, 160, 161, 0, 0,
1891 81, 176, 177, 0, 178, 179, 86, 0, 0, 0,
1892 162, 163, 164, 0, 0, 167, 168, 169, 170, 171,
1893 172, 173, 0, 0, 0, 0, 0, 0, 0, 0,
1894 174, 0, 0, 0, 165, 175, 0, 0, 0, 0,
1895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1896 0, 0, 0, 0, 0, 0, 0, 0, 0, 167,
1897 168, 169, 170, 171, 172, 173, 0, 0, 0, 0,
1898 0, 0, 0, 0, 174, 0, 143, 144, 145, 175,
1899 146, 147, 148, 149, 150, 151, 152, 153, 222, -562,
1900 809, 0, 0, 0, 355, 0, 0, 0, 0, 156,
1901 157, 158, 159, 160, 161, 0, 0, 81, 176, 177,
1902 0, 178, 179, 86, 0, 0, 0, 162, 163, 164,
1903 143, 144, 145, 0, 146, 147, 148, 149, 150, 151,
1904 152, 153, 222, -562, 811, 0, 0, 0, 355, 0,
1905 0, 165, 0, 156, 157, 158, 159, 160, 161, 0,
1906 0, 81, 176, 177, 0, 178, 179, 86, 0, 0,
1907 0, 162, 163, 164, 0, 0, 167, 168, 169, 170,
1908 171, 172, 173, 0, 0, 0, 0, 0, 0, 0,
1909 0, 810, 0, 0, 0, 165, 175, 0, 0, 0,
1910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1912 167, 168, 169, 170, 171, 172, 173, 0, 0, 0,
1913 0, 0, 0, 0, 0, 174, 0, 143, 144, 145,
1914 175, 146, 147, 148, 149, 150, 151, 152, 153, 222,
1915 -562, 945, 0, 0, 0, 355, 0, 0, 0, 0,
1916 156, 157, 158, 159, 160, 161, 0, 0, 81, 176,
1917 177, 0, 178, 179, 86, 0, 0, 0, 162, 163,
1918 164, 143, 144, 145, 0, 146, 147, 148, 149, 150,
1919 151, 152, 153, 222, -562, 0, 0, 0, 0, 355,
1920 0, 0, 165, 0, 156, 157, 158, 159, 160, 161,
1921 0, 0, 81, 176, 177, 0, 178, 179, 86, 0,
1922 0, 0, 162, 163, 164, 0, 0, 167, 168, 169,
1923 170, 171, 172, 173, 0, 0, 0, 0, 0, 0,
1924 0, 0, 174, 0, 0, 0, 165, 175, 0, 0,
1925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1927 0, 167, 168, 169, 170, 171, 172, 173, -135, 0,
1928 0, 0, 0, -135, 0, 0, 174, 0, 0, 0,
1929 0, 175, 0, 0, 0, 0, 0, 0, 0, 0,
1930 0, 0, 0, 4, 0, 5, 0, 0, 0, 0,
1931 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,
1932 176, 177, 0, 178, 179, 86, 0, 0, 0, 0,
1933 0, 6, 0, 0, 0, 0, 0, 0, 0, 0,
1934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1936 0, 0, 0, 81, 176, 177, 0, 178, 179, 86,
1937 0, 13, 14, 15, 16, 0, 17, 18, 19, 20,
1938 21, 22, 23, 24, 25, 26, 0, 27, 28, 29,
1939 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1940 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1941 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1942 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1943 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1944 80, -565, 0, 0, 0, 0, 0, 0, 0, 137,
1945 84, 0, 0, 0, 87, 0, 0, 0, 0, 0,
1946 0, 0, 0, 0, 0, 4, 0, 0, 0, 0,
1947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1953 0, 0, 0, 13, 14, 15, 16, 0, 17, 18,
1954 19, 20, 21, 22, 23, 24, 25, 26, 0, 27,
1955 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1956 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1957 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1958 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1959 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1960 78, 79, 80, 0, 0, 0, 0, 0, -171, 0,
1961 0, 137, 84, 355, 0, 0, 87, 0, 156, 157,
1962 158, 159, 160, 161, 0, 0, 0, 0, 0, 711,
1963 -708, -202, -202, 0, 296, 0, 162, 163, 164, 156,
1964 157, 158, 159, 160, 161, 0, 0, 0, 0, 0,
1965 0, 0, 0, 0, 0, 0, 629, 162, 163, 164,
1966 165, 296, 0, 0, 0, 0, 156, 157, 158, 159,
1967 160, 161, 0, 0, 0, 0, 0, 0, 0, 0,
1968 0, 165, 0, 711, 162, 163, 164, 0, 296, 0,
1969 0, 0, 0, 156, 157, 158, 159, 160, 161, 0,
1970 0, 0, 0, 0, 0, 175, 0, 0, 165, 0,
1971 0, 162, 163, 164, 0, 0, 0, 0, 0, 0,
1972 0, 0, 0, 0, 0, 0, 175, 0, 0, 0,
1973 0, 0, 0, 0, 0, 165, 0, 0, 0, 0,
1974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1975 0, 0, 0, 175, 0, 0, 0, 0, 0, 0,
1976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1977 0, 0, -281, 0, 0, 0, 0, 81, 297, 298,
1978 175, 178, 3, 0, 0, 0, 0, 0, 0, 0,
1979 0, 0, 4, 0, 0, 0, 0, 0, 81, 297,
1980 298, 0, 178, 0, 0, 0, 0, 0, 0, 0,
1981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1982 0, 0, 0, 0, 0, 81, 297, 298, 0, 178,
1983 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1984 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1985 0, 0, 81, 297, 298, 0, 178, 0, 0, 0,
1986 13, 14, 15, 16, 0, 17, 18, 19, 20, 21,
1987 22, 23, 24, 25, 26, 0, 27, 28, 29, 30,
1988 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1989 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1990 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1991 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1992 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1993 0, 0, 0, 0, 0, 0, 81, 82, 83, 84,
1994 296, 85, 86, 87, 0, 156, 157, 158, 159, 160,
1995 161, 0, 0, 0, 0, 0, 0, 0, -202, -202,
1996 0, 296, 514, 162, 163, 164, 156, 157, 158, 159,
1997 160, 161, 296, 0, 0, 595, 0, 156, 157, 158,
1998 159, 160, 161, 0, 162, 163, 164, 165, 0, 0,
1999 0, 0, 0, 296, 996, 162, 163, 164, 156, 157,
2000 158, 159, 160, 161, 296, 0, 0, 691, 165, 156,
2001 157, 158, 159, 160, 161, 0, 162, 163, 164, 165,
2002 0, 0, 0, 0, 0, 0, 0, 162, 163, 164,
2003 0, 0, 175, 0, 0, 0, 296, -261, 0, 0,
2004 165, 156, 157, 158, 159, 160, 161, 0, 0, 0,
2005 0, 165, 0, 175, 0, 0, 0, 0, 0, 162,
2006 163, 164, 0, 296, 175, 0, 0, 0, 156, 157,
2007 158, 159, 160, 161, 0, 0, 0, 0, 0, 0,
2008 0, 0, 0, 165, 0, 175, 162, 163, 164, 0,
2009 0, 0, 343, 0, 0, 0, 175, 156, 157, 158,
2010 159, 160, 161, 0, 81, 297, 298, 0, 178, 0,
2011 165, 0, 0, 0, 0, 162, 163, 164, 0, 0,
2012 0, 0, 0, 0, 0, 81, 297, 298, 175, 178,
2013 0, 0, 0, 0, 0, 0, 81, 297, 298, 165,
2014 178, 724, 0, 0, 0, 0, 156, 157, 158, 159,
2015 160, 161, 0, 0, 0, 175, 0, 81, 297, 298,
2016 0, 178, 0, 0, 162, 163, 164, 0, 81, 297,
2017 298, 726, 178, 0, 0, 0, 156, 157, 158, 159,
2018 160, 161, 0, 0, 175, 0, 0, 0, 165, 0,
2019 0, 0, 0, 0, 162, 163, 164, 0, 0, 0,
2020 81, 297, 298, 0, 178, 0, 0, 0, 0, 0,
2021 0, 0, 0, 0, 0, 0, 0, 0, 165, 0,
2022 0, 0, 0, 0, 0, 0, 0, 81, 297, 298,
2023 733, 178, 0, 175, 0, 734, 735, 736, 737, 738,
2024 739, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2025 0, 0, 0, 162, 740, 741, 81, 297, 298, 0,
2026 178, 0, 0, 175, 0, 0, 0, 0, 0, 0,
2027 0, 0, 0, 0, 0, 0, 0, 742, 0, 0,
2028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2030 0, 0, 0, 0, 0, 81, 297, 298, 0, 178,
2031 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2032 0, 0, 175, 0, 0, 0, 0, 0, 0, 0,
2033 0, 4, 0, 5, 0, 81, 297, 298, 0, 178,
2034 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2035 0, 0, 0, 0, 0, -425, -425, -425, 0, 6,
2036 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2039 0, 0, 0, 0, 81, 743, 744, 0, 178, 13,
2040 14, 15, 16, 0, 17, 18, 19, 20, 21, 22,
2041 23, 24, 25, 26, 0, 27, 28, 29, 30, 31,
2042 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2043 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2044 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
2045 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2046 72, 73, 74, 75, 76, 77, 78, 79, 80, 4,
2047 0, 5, 0, 0, 0, 0, 0, 137, 84, 0,
2048 0, 0, 87, 0, 0, 0, 0, 0, 0, 0,
2049 0, 0, 0, 0, 0, 0, 0, 6, 0, 0,
2050 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2052 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2053 0, 0, 0, 0, 0, 0, 0, 13, 14, 15,
2054 16, 0, 17, 18, 19, 20, 21, 22, 23, 24,
2055 25, 26, 0, 27, 28, 29, 30, 31, 32, 33,
2056 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2057 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2058 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2059 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2060 74, 75, 76, 77, 78, 79, 80, 4, 0, 0,
2061 0, 0, 0, 81, 1111, 137, 84, 0, 0, 0,
2062 87, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2063 0, -425, -425, -425, 0, 0, 0, 0, 0, 0,
2064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2066 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2067 0, 0, 0, 0, 0, 13, 14, 15, 16, 0,
2068 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2069 0, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2070 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2071 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2072 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
2073 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2074 76, 77, 78, 79, 80, 4, 0, 0, 0, 0,
2075 0, 0, 0, 137, 84, 0, 0, 0, 87, 0,
2076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2078 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2079 0, 0, 0, 10, 11, 12, 0, 0, 0, 0,
2080 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2081 0, 0, 0, 13, 14, 15, 16, 0, 17, 18,
2082 19, 20, 21, 22, 23, 24, 25, 26, 0, 27,
2083 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2084 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2085 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2086 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2087 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2088 78, 79, 80, 4, 0, 5, 0, 0, 0, 0,
2089 0, 137, 84, 0, 0, 0, 87, 0, 0, 0,
2090 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2091 0, 6, 0, 0, 0, 0, 0, 0, 0, 0,
2092 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2093 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2094 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2095 0, 13, 14, 15, 16, 0, 17, 18, 19, 20,
2096 21, 22, 23, 24, 25, 26, 0, 27, 28, 29,
2097 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2098 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2099 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2100 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2101 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2102 80, 4, 0, 0, 0, 0, 0, 0, 0, 137,
2103 84, 0, 0, 0, 87, 0, 0, 0, 0, 0,
2104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2105 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2106 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2108 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
2109 14, 15, 16, 0, 17, 18, 19, 20, 21, 22,
2110 23, 24, 25, 26, 0, 27, 28, 29, 30, 31,
2111 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2112 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2113 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
2114 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2115 72, 73, 74, 75, 76, 77, 78, 79, 80, 0,
2116 0, 0, 0, 0, 0, 0, 0, 137, 84, 0,
2120 static const short yycheck[] =
2122 0, 0, 5, 121, 459, 5, 0, 3, 439, 9,
2123 10, 11, 12, 156, 157, 158, 159, 160, 161, 0,
2124 549, 311, 403, 131, 5, 332, 457, 10, 9, 404,
2125 393, 394, 659, 405, 395, 396, 10, 552, 143, 597,
2126 234, 627, 401, 402, 659, 11, 12, 659, 355, 833,
2127 18, 681, 705, 0, 838, 440, 24, 313, 842, 969,
2128 24, 397, 398, 399, 400, 21, 34, 5, 27, 25,
2129 56, 223, 266, 818, 505, 0, 228, 26, 230, 28,
2130 5, 941, 7, 1123, 1124, 89, 90, 25, 88, 88,
2131 5, 933, 26, 720, 88, 21, 45, 5, 41, 25,
2132 34, 24, 663, 26, 558, 720, 19, 88, 720, 845,
2133 25, 34, 32, 33, 57, 851, 24, 121, 122, 11,
2134 12, 121, 576, 473, 24, 663, 34, 24, 54, 55,
2135 659, 135, 26, 129, 28, 693, 24, 34, 26, 139,
2136 121, 88, 950, 139, 659, 953, 5, 24, 131, 26,
2137 150, 45, 1192, 22, 26, 155, 28, 26, 139, 28,
2138 18, 24, 946, 88, 1074, 24, 25, 26, 599, 150,
2139 153, 34, 155, 45, 174, 34, 45, 102, 286, 41,
2140 611, 155, 18, 490, 953, 28, 663, 817, 113, 114,
2141 820, 720, 845, 5, 28, 57, 1056, 1057, 851, 10,
2142 200, 187, 45, 1045, 1046, 720, 24, 952, 208, 954,
2143 210, 45, 212, 25, 139, 215, 34, 200, 474, 413,
2144 188, 189, 190, 223, 10, 208, 200, 612, 228, 212,
2145 230, 792, 215, 192, 208, 343, 192, 973, 212, 5,
2146 223, 215, 18, 243, 244, 21, 807, 390, 391, 392,
2147 188, 189, 190, 708, 792, 193, 194, 223, 24, 25,
2148 26, 244, 228, 613, 230, 88, 5, 663, 34, 807,
2149 244, 578, 1132, 1081, 1134, 1083, 34, 243, 659, 1121,
2150 188, 189, 434, 435, 659, 285, 285, 659, 288, 289,
2151 290, 188, 189, 190, 18, 1056, 659, 21, 659, 21,
2152 659, 25, 1086, 930, 285, 301, 18, 288, 289, 290,
2153 310, 310, 1081, 296, 1083, 792, 316, 21, 608, 18,
2154 973, 25, 10, 659, 23, 188, 189, 19, 663, 310,
2155 807, 223, 50, 51, 439, 316, 228, 24, 230, 720,
2156 323, 324, 325, 326, 155, 720, 50, 51, 720, 21,
2157 493, 243, 457, 25, 112, 113, 114, 720, 358, 720,
2158 343, 720, 25, 26, 347, 28, 366, 39, 368, 155,
2159 188, 189, 355, 210, 24, 300, 188, 189, 190, 24,
2160 1141, 193, 194, 1243, 720, 1146, 24, 495, 18, 200,
2161 373, 21, 823, 792, 923, 981, 792, 208, 54, 55,
2162 505, 212, 21, 834, 215, 1032, 25, 862, 807, 18,
2163 925, 807, 21, 413, 200, 21, 25, 1032, 18, 977,
2164 1032, 27, 188, 189, 190, 24, 212, 193, 194, 215,
2165 413, 50, 51, 244, 434, 435, 1197, 431, 421, 413,
2166 24, 441, 26, 443, 443, 5, 25, 26, 442, 188,
2167 189, 190, 452, 21, 193, 194, 10, 792, 244, 27,
2168 463, 24, 443, 463, 21, 465, 24, 155, 434, 435,
2169 27, 452, 807, 473, 582, 21, 476, 473, 15, 25,
2170 480, 22, 463, 16, 465, 21, 24, 16, 26, 25,
2171 28, 1118, 473, 34, 599, 476, 188, 189, 190, 480,
2172 16, 193, 194, 1032, 50, 51, 611, 45, 16, 509,
2173 48, 49, 200, 18, 50, 51, 21, 1032, 518, 519,
2174 208, 358, 102, 24, 212, 633, 27, 215, 21, 366,
2175 21, 368, 25, 34, 25, 22, 29, 518, 519, 920,
2176 21, 21, 434, 435, 25, 25, 921, 910, 911, 22,
2177 922, 912, 913, 34, 35, 36, 244, 557, 558, 918,
2178 919, 22, 1189, 21, 558, 565, 565, 25, 551, 10,
2179 11, 12, 18, 573, 557, 21, 576, 577, 914, 915,
2180 916, 917, 576, 557, 565, 25, 26, 24, 28, 26,
2181 708, 734, 735, 736, 737, 738, 739, 18, 6, 7,
2182 21, 155, 413, 18, 441, 45, 21, 29, 23, 188,
2183 189, 190, 5, 613, 193, 194, 724, 613, 726, 25,
2184 26, 23, 28, 728, 26, 733, 28, 413, 188, 189,
2185 190, 24, 613, 193, 194, 68, 69, 70, 21, 45,
2186 24, 34, 25, 933, 627, 39, 200, 188, 189, 190,
2187 34, 1032, 193, 194, 208, 655, 656, 1032, 212, 659,
2188 1032, 215, 25, 26, 40, 28, 56, 667, 668, 1032,
2189 670, 1032, 509, 1032, 657, 21, 21, 95, 661, 25,
2190 25, 988, 45, 95, 684, 975, 686, 188, 189, 190,
2191 244, 192, 192, 689, 21, 620, 1032, 697, 25, 34,
2192 35, 36, 21, 684, 704, 686, 25, 707, 708, 709,
2193 19, 1166, 708, 21, 155, 21, 697, 25, 823, 25,
2194 720, 558, 22, 704, 21, 413, 707, 708, 25, 834,
2195 24, 24, 24, 26, 26, 28, 719, 42, 43, 576,
2196 577, 724, 34, 726, 862, 18, 557, 24, 21, 26,
2197 733, 1041, 45, 37, 38, 48, 49, 34, 22, 200,
2198 22, 1051, 37, 38, 907, 908, 909, 208, 52, 53,
2199 95, 212, 26, 878, 215, 21, 19, 52, 53, 25,
2200 34, 1071, 223, 224, 21, 1216, 21, 228, 25, 230,
2201 25, 184, 185, 34, 18, 188, 189, 21, 1088, 192,
2202 184, 185, 243, 244, 188, 189, 20, 21, 192, 34,
2203 810, 21, 21, 21, 20, 25, 25, 25, 655, 656,
2204 27, 1252, 24, 21, 34, 35, 36, 25, 37, 38,
2205 830, 668, 95, 833, 18, 835, 21, 1127, 838, 25,
2206 25, 21, 842, 52, 53, 25, 21, 32, 33, 830,
2207 25, 994, 833, 34, 835, 18, 21, 838, 1148, 413,
2208 25, 842, 862, 88, 21, 22, 862, 32, 33, 557,
2209 870, 23, 709, 24, 21, 21, 27, 18, 25, 25,
2210 21, 862, 18, 34, 13, 14, 15, 32, 33, 870,
2211 815, 37, 38, 818, 24, 21, 188, 189, 190, 25,
2212 21, 193, 194, 195, 25, 18, 52, 53, 21, 892,
2213 22, 188, 189, 190, 19, 20, 193, 194, 21, 24,
2214 18, 26, 25, 28, 29, 30, 31, 32, 33, 34,
2215 371, 50, 51, 933, 188, 189, 190, 54, 55, 193,
2216 194, 941, 47, 48, 49, 24, 946, 188, 189, 190,
2217 20, 21, 193, 194, 195, 188, 189, 190, 21, 25,
2218 193, 194, 25, 188, 189, 946, 71, 21, 193, 194,
2219 25, 25, 413, 24, 103, 104, 105, 106, 107, 108,
2220 109, 110, 22, 112, 21, 21, 115, 21, 25, 25,
2221 18, 25, 1100, 434, 435, 20, 21, 21, 981, 999,
2222 1000, 25, 131, 557, 133, 134, 135, 188, 189, 190,
2223 139, 116, 193, 194, 21, 22, 21, 21, 999, 1000,
2224 25, 25, 34, 35, 36, 950, 155, 952, 953, 954,
2225 21, 21, 1032, 162, 25, 25, 21, 188, 189, 190,
2226 25, 192, 18, 1043, 18, 1045, 1046, 1030, 1166, 1043,
2227 52, 53, 54, 18, 1054, 184, 1056, 1057, 18, 70,
2228 71, 72, 73, 74, 75, 76, 77, 78, 79, 19,
2229 21, 1176, 21, 1073, 25, 11, 25, 21, 1078, 1078,
2230 9, 25, 25, 188, 189, 190, 1086, 192, 193, 194,
2231 11, 1091, 1091, 24, 223, 1091, 1096, 1078, 32, 33,
2232 111, 21, 91, 19, 115, 1086, 117, 19, 119, 19,
2233 1091, 1216, 1095, 124, 19, 1096, 557, 24, 1118, 1119,
2234 1120, 1121, 91, 1123, 1124, 136, 1231, 138, 27, 113,
2235 114, 24, 1132, 262, 1134, 25, 21, 1137, 1119, 1120,
2236 22, 1141, 21, 1143, 1144, 18, 1146, 1252, 25, 1152,
2237 25, 21, 1152, 25, 11, 24, 1081, 286, 1083, 288,
2238 289, 22, 1143, 1144, 23, 27, 1166, 296, 24, 24,
2239 181, 1152, 301, 25, 23, 20, 19, 19, 10, 11,
2240 12, 20, 23, 27, 24, 1166, 21, 316, 21, 1189,
2241 1190, 1191, 1192, 5, 25, 19, 22, 1197, 25, 58,
2242 59, 60, 61, 62, 63, 64, 65, 66, 67, 1190,
2243 1191, 24, 20, 20, 343, 25, 27, 1217, 1217, 73,
2244 73, 74, 75, 76, 27, 25, 355, 80, 81, 82,
2245 83, 84, 85, 86, 18, 21, 1217, 25, 21, 24,
2246 22, 39, 29, 1243, 40, 25, 25, 56, 189, 346,
2247 25, 18, 22, 91, 91, 91, 25, 91, 269, 24,
2248 20, 91, 91, 25, 25, 18, 25, 25, 10, 11,
2249 12, 22, 21, 18, 192, 372, 40, 27, 18, 20,
2250 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
2251 387, 21, 23, 304, 22, 24, 307, 18, 91, 194,
2252 22, 430, 22, 21, 315, 21, 25, 318, 22, 20,
2253 20, 18, 25, 410, 91, 10, 11, 12, 23, 27,
2254 449, 27, 451, 155, 453, 196, 25, 456, 40, 20,
2255 459, 20, 461, 27, 0, 25, 0, 316, 941, 1243,
2256 88, 470, 1210, 1137, 473, 1035, 695, 1109, 1044, 1189,
2257 1073, 480, 891, 58, 59, 60, 61, 62, 63, 64,
2258 65, 66, 67, 184, 830, 839, 495, 805, 200, 582,
2259 1217, 686, 684, 862, 129, 707, 208, 301, 12, 243,
2260 212, 353, 1172, 215, 509, 711, 413, 720, 1032, 868,
2261 867, 223, -1, -1, -1, -1, 228, -1, 230, -1,
2262 -1, -1, -1, -1, -1, -1, -1, 143, -1, -1,
2263 -1, 243, 244, 155, -1, -1, -1, -1, -1, 430,
2264 156, 157, 158, 159, 160, 161, -1, 163, 164, 440,
2265 -1, -1, -1, -1, 445, -1, -1, -1, 449, -1,
2266 451, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2267 579, -1, -1, 582, -1, -1, -1, 468, 200, -1,
2268 155, 472, -1, -1, -1, -1, 208, -1, -1, 598,
2269 212, -1, -1, 215, -1, -1, 605, 606, 607, -1,
2270 -1, 223, -1, -1, 613, -1, 228, -1, 230, 10,
2271 11, 12, -1, -1, -1, -1, -1, -1, -1, -1,
2272 -1, 243, 244, -1, 633, 200, -1, -1, -1, -1,
2273 -1, -1, -1, 208, -1, 644, 645, 212, -1, -1,
2274 215, -1, -1, -1, -1, -1, -1, -1, 223, -1,
2275 659, -1, 629, 228, -1, 230, -1, -1, -1, -1,
2276 -1, -1, -1, -1, 641, -1, 675, -1, 243, 244,
2277 -1, -1, -1, -1, 683, -1, 685, -1, -1, -1,
2278 689, -1, -1, -1, -1, -1, -1, -1, -1, 698,
2279 699, -1, -1, -1, 703, -1, -1, -1, 707, 708,
2280 -1, 413, -1, -1, -1, -1, 597, -1, -1, -1,
2281 -1, 720, -1, -1, -1, 724, -1, 726, -1, -1,
2282 697, 612, 434, 435, 733, -1, -1, -1, -1, -1,
2283 -1, -1, -1, -1, 711, -1, -1, -1, -1, -1,
2284 631, 10, 11, 12, -1, -1, -1, -1, -1, -1,
2285 -1, -1, -1, -1, 155, -1, -1, -1, -1, -1,
2286 -1, -1, -1, -1, -1, -1, 10, 11, 12, 660,
2287 -1, 662, -1, -1, 390, 391, 392, 393, 394, 395,
2288 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2289 -1, 413, -1, -1, -1, -1, -1, -1, -1, 200,
2290 -1, -1, -1, 694, 813, -1, -1, 208, -1, -1,
2291 -1, 212, 434, 435, 215, -1, -1, -1, -1, 18,
2292 -1, -1, 223, 439, -1, 24, -1, 228, -1, 230,
2293 29, 30, 31, 32, 33, 34, -1, -1, 413, -1,
2294 -1, 457, 243, 244, -1, 557, -1, -1, 47, 48,
2295 49, -1, 861, 862, 745, 864, 833, -1, -1, 434,
2296 435, 838, -1, -1, -1, 842, -1, -1, -1, -1,
2297 -1, -1, 71, -1, -1, -1, -1, 493, -1, -1,
2298 -1, -1, -1, -1, -1, -1, 155, -1, -1, 505,
2299 -1, 868, -1, -1, -1, -1, -1, -1, -1, -1,
2300 -1, -1, -1, -1, -1, -1, -1, -1, -1, 800,
2301 801, 155, -1, 890, 891, -1, -1, 116, -1, 896,
2302 897, 898, 899, 900, 901, 902, 903, 904, 905, 906,
2303 -1, 200, -1, 549, -1, 557, 552, -1, -1, 208,
2304 949, -1, -1, 212, -1, -1, 215, 956, -1, -1,
2305 -1, -1, -1, 844, 223, -1, 200, -1, -1, 228,
2306 -1, 230, -1, -1, 208, -1, -1, -1, 212, 946,
2307 -1, 215, -1, -1, 243, 244, -1, -1, -1, 223,
2308 -1, -1, 557, 599, 228, -1, 230, -1, -1, 188,
2309 189, 190, -1, 192, -1, 611, -1, -1, -1, 243,
2310 244, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2311 -1, -1, 413, -1, -1, -1, -1, -1, -1, -1,
2312 -1, -1, -1, 1032, -1, -1, -1, -1, -1, -1,
2313 646, 647, -1, 434, 435, -1, -1, -1, -1, -1,
2314 -1, -1, -1, 659, -1, -1, -1, -1, -1, -1,
2315 19, -1, -1, -1, -1, 24, -1, 26, 949, 28,
2316 29, 30, 31, 32, 33, 34, 1075, -1, -1, -1,
2317 -1, -1, -1, -1, -1, -1, -1, -1, 47, 48,
2318 49, -1, 1091, -1, -1, 1094, 977, -1, -1, -1,
2319 -1, 1100, -1, -1, 1103, 1104, -1, -1, -1, -1,
2320 -1, -1, 71, -1, 720, -1, -1, -1, -1, 1086,
2321 -1, -1, 728, -1, -1, -1, -1, -1, 734, 735,
2322 736, 737, 738, 739, 740, 741, -1, -1, -1, -1,
2323 -1, -1, -1, -1, -1, -1, -1, -1, 1147, -1,
2324 -1, -1, -1, -1, 413, 1154, 1155, 116, 18, -1,
2325 -1, -1, -1, -1, 24, -1, 557, 1166, -1, 29,
2326 30, 31, 32, 33, 34, 434, 435, -1, -1, 413,
2327 -1, -1, -1, -1, -1, -1, -1, 47, 48, 49,
2328 -1, -1, -1, -1, 1193, 1076, -1, -1, -1, -1,
2329 434, 435, -1, -1, -1, -1, -1, -1, -1, -1,
2330 -1, 71, -1, -1, 1213, 1214, -1, 823, -1, -1,
2331 -1, 1220, -1, -1, -1, -1, -1, -1, 834, 188,
2332 189, 190, -1, 192, 193, 194, 19, -1, -1, -1,
2333 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2334 33, 34, -1, -1, -1, -1, 116, -1, -1, 42,
2335 43, -1, -1, -1, 47, 48, 49, -1, -1, -1,
2336 -1, -1, 878, -1, -1, 1156, -1, -1, -1, -1,
2337 -1, -1, -1, -1, -1, -1, -1, -1, 71, -1,
2338 -1, -1, -1, -1, -1, -1, -1, -1, 557, -1,
2339 -1, 907, 908, 909, 910, 911, 912, 913, 914, 915,
2340 916, 917, 918, 919, 920, 921, 922, 923, -1, 925,
2341 -1, 0, 1, 557, -1, -1, -1, -1, 188, 189,
2342 190, -1, 192, 116, -1, -1, -1, -1, -1, 18,
2343 -1, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2344 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
2345 -1, -1, -1, -1, -1, 44, -1, 46, -1, 1250,
2346 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2347 -1, -1, -1, -1, -1, -1, -1, -1, 994, 68,
2348 69, 70, -1, 72, -1, -1, -1, -1, 77, 78,
2349 79, -1, -1, -1, -1, 188, 189, 190, -1, 192,
2350 -1, -1, -1, 92, 93, 94, -1, -1, -1, -1,
2351 -1, -1, -1, -1, -1, -1, 1032, -1, -1, -1,
2352 -1, -1, -1, 112, 113, 114, 115, -1, 117, 118,
2353 119, 120, 121, 122, 123, 124, 125, 126, -1, 128,
2354 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2355 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2356 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2357 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2358 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2359 179, 180, 181, -1, -1, -1, -1, -1, -1, 188,
2360 189, 190, 191, -1, 193, 194, 195, -1, -1, 0,
2361 1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2362 -1, -1, -1, -1, -1, -1, -1, 18, -1, -1,
2363 -1, -1, -1, 24, -1, -1, -1, -1, -1, -1,
2364 -1, -1, -1, 34, -1, -1, -1, -1, -1, -1,
2365 -1, -1, -1, 44, -1, 46, -1, -1, -1, -1,
2366 1176, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2367 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
2368 -1, 72, -1, -1, -1, -1, 77, 78, 79, -1,
2369 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2370 1216, 92, 93, 94, -1, -1, -1, -1, -1, -1,
2371 -1, -1, -1, -1, -1, 1231, -1, -1, -1, -1,
2372 -1, 112, 113, 114, 115, -1, 117, 118, 119, 120,
2373 121, 122, 123, 124, 125, 126, 1252, 128, 129, 130,
2374 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2375 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2376 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2377 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2378 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
2379 181, -1, -1, -1, -1, -1, -1, 188, 189, 190,
2380 191, 1, 193, 194, 195, -1, 6, 7, 8, -1,
2381 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2382 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2383 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2384 -1, -1, 42, 43, 44, -1, 46, 47, 48, 49,
2385 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2386 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
2387 70, 71, 72, -1, -1, -1, -1, -1, -1, -1,
2388 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2389 -1, -1, -1, -1, -1, -1, 96, 97, 98, 99,
2390 100, 101, 102, -1, -1, -1, -1, -1, -1, -1,
2391 -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2392 120, 121, 122, 123, 124, 125, 126, -1, 128, 129,
2393 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2394 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2395 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2396 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2397 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2398 180, 181, -1, -1, -1, -1, -1, -1, 188, 189,
2399 190, 191, 192, 193, 194, 195, 1, -1, -1, -1,
2400 -1, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2401 15, 16, 17, 18, 19, -1, -1, -1, -1, 24,
2402 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2403 -1, -1, -1, -1, -1, -1, -1, 42, 43, 44,
2404 -1, -1, 47, 48, 49, -1, -1, -1, -1, -1,
2405 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2406 -1, -1, -1, 68, 69, 70, 71, -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, 96, 97, 98, 99, 100, 101, 102, -1, -1,
2410 -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
2411 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2412 125, 126, -1, 128, 129, 130, 131, 132, 133, 134,
2413 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2414 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2415 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2416 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2417 175, 176, 177, 178, 179, 180, 181, -1, -1, -1,
2418 -1, -1, -1, 188, 189, 190, 191, 192, 193, 194,
2419 195, 1, -1, -1, -1, -1, 6, 7, 8, -1,
2420 -1, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2421 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2422 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2423 -1, -1, 42, 43, 44, -1, -1, 47, 48, 49,
2424 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2425 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
2426 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
2427 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2428 -1, -1, -1, -1, -1, -1, -1, 97, 98, 99,
2429 100, 101, 102, -1, -1, -1, -1, -1, -1, -1,
2430 -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2431 120, 121, 122, 123, 124, 125, 126, -1, 128, 129,
2432 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2433 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2434 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2435 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2436 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2437 180, 181, -1, -1, -1, -1, -1, -1, 188, 189,
2438 190, 191, 192, 193, 194, 195, 1, -1, -1, -1,
2439 -1, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2440 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2441 -1, 26, -1, 28, 29, 30, 31, 32, 33, 34,
2442 35, 36, 37, 38, 39, 40, 41, 42, 43, -1,
2443 45, -1, 47, 48, 49, 50, 51, 52, 53, 54,
2444 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2445 65, 66, 67, -1, -1, -1, 71, -1, -1, 123,
2446 124, 125, 126, -1, 128, -1, -1, -1, -1, 133,
2447 134, -1, -1, 137, 138, -1, 140, 141, 142, 143,
2448 -1, 96, 97, 98, 99, 100, 101, 102, -1, -1,
2449 -1, 155, 156, 1, -1, -1, 111, -1, 6, 7,
2450 8, 116, 10, 11, 12, 13, 14, 15, 16, 17,
2451 18, 19, -1, -1, -1, -1, 24, 181, -1, -1,
2452 -1, 29, 30, 31, 32, 33, 34, 191, -1, -1,
2453 -1, -1, -1, -1, 42, 43, -1, -1, -1, 47,
2454 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2455 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2456 -1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2457 -1, -1, -1, 188, 189, 190, -1, 192, 193, 194,
2458 -1, -1, -1, -1, -1, -1, -1, 95, 96, 97,
2459 98, 99, 100, 101, 102, -1, -1, -1, -1, -1,
2460 1, -1, -1, 111, -1, 6, 7, 8, 116, 10,
2461 11, 12, 13, 14, 15, 16, 17, 18, 19, -1,
2462 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2463 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2464 -1, 42, 43, -1, -1, -1, 47, 48, 49, -1,
2465 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2466 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2467 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2468 188, 189, 190, -1, 192, 193, 194, -1, -1, -1,
2469 -1, -1, -1, -1, 95, 96, 97, 98, 99, 100,
2470 101, 102, -1, -1, -1, -1, 1, -1, -1, -1,
2471 111, 6, 7, 8, -1, 116, 11, 12, 13, 14,
2472 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2473 25, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2474 -1, -1, -1, -1, -1, -1, -1, 42, 43, -1,
2475 -1, -1, 47, 48, 49, -1, -1, -1, -1, -1,
2476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2477 -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
2478 -1, -1, -1, -1, -1, -1, -1, 188, 189, 190,
2479 -1, 192, 193, 194, -1, -1, -1, -1, -1, -1,
2480 95, -1, 97, 98, 99, 100, 101, 102, -1, -1,
2481 -1, -1, -1, 1, -1, -1, 111, -1, 6, 7,
2482 8, 116, 10, 11, 12, 13, 14, 15, 16, 17,
2483 18, 19, 20, -1, -1, -1, 24, -1, -1, -1,
2484 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2485 -1, -1, -1, -1, 42, 43, -1, -1, -1, 47,
2486 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2488 -1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2489 -1, -1, -1, 188, 189, 190, -1, 192, 193, 194,
2490 -1, -1, -1, -1, -1, -1, -1, -1, 96, 97,
2491 98, 99, 100, 101, 102, -1, -1, -1, -1, -1,
2492 1, -1, -1, 111, -1, 6, 7, 8, 116, 10,
2493 11, 12, 13, 14, 15, 16, 17, 18, 19, -1,
2494 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2495 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2496 -1, 42, 43, -1, -1, -1, 47, 48, 49, -1,
2497 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2498 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2499 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2500 188, 189, 190, -1, 192, 193, 194, -1, -1, -1,
2501 -1, -1, -1, -1, -1, 96, 97, 98, 99, 100,
2502 101, 102, -1, -1, -1, -1, 1, -1, -1, -1,
2503 111, 6, 7, 8, -1, 116, 11, 12, 13, 14,
2504 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2505 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2506 -1, -1, -1, -1, -1, -1, -1, 42, 43, -1,
2507 -1, -1, 47, 48, 49, -1, -1, -1, -1, -1,
2508 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2509 -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
2510 -1, -1, -1, -1, -1, -1, -1, 188, 189, 190,
2511 -1, 192, 193, 194, -1, -1, -1, -1, -1, -1,
2512 95, -1, 97, 98, 99, 100, 101, 102, -1, -1,
2513 -1, -1, 1, -1, -1, -1, 111, 6, 7, 8,
2514 -1, 116, 11, 12, 13, 14, 15, 16, 17, 18,
2515 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2516 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2517 -1, -1, -1, 42, 43, -1, -1, -1, 47, 48,
2518 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2519 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2520 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
2521 -1, -1, -1, 188, 189, 190, -1, 192, 193, 194,
2522 -1, -1, -1, -1, -1, -1, -1, -1, 97, 98,
2523 99, 100, 101, 102, -1, -1, -1, -1, -1, -1,
2524 -1, -1, 111, -1, 6, 7, 8, 116, 10, 11,
2525 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2526 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2527 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2528 42, 43, 44, -1, 46, 47, 48, 49, -1, -1,
2529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2530 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2531 72, -1, -1, -1, -1, -1, -1, -1, -1, 188,
2532 189, 190, -1, 192, 193, 194, -1, -1, -1, -1,
2533 -1, -1, -1, -1, 96, 97, 98, 99, 100, 101,
2534 102, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2535 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2536 122, 123, 124, 125, 126, -1, 128, 129, 130, 131,
2537 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2538 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2539 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2540 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2541 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2542 -1, -1, -1, -1, -1, -1, 188, 189, 190, 191,
2543 192, 193, 194, 195, 6, 7, 8, -1, 10, 11,
2544 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2545 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2546 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2547 42, 43, 44, -1, 46, 47, 48, 49, -1, -1,
2548 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2549 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2550 72, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2551 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2552 -1, -1, -1, -1, 96, 97, 98, 99, 100, 101,
2553 102, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2554 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2555 122, 123, 124, 125, 126, -1, 128, 129, 130, 131,
2556 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2557 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2558 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2559 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2560 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2561 -1, -1, -1, -1, -1, -1, 188, 189, 190, 191,
2562 192, 193, 194, 195, 6, 7, 8, -1, 10, 11,
2563 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2564 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2565 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2566 42, 43, 44, -1, 46, 47, 48, 49, -1, -1,
2567 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2568 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2569 72, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2570 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2571 -1, -1, -1, -1, 96, 97, 98, 99, 100, 101,
2572 102, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2573 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2574 122, 123, 124, 125, 126, -1, 128, 129, 130, 131,
2575 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2576 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2577 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2578 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2579 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2580 -1, -1, -1, -1, -1, -1, 188, 189, 190, 191,
2581 192, 193, 194, 195, 6, 7, 8, -1, 10, 11,
2582 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2583 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2584 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2585 -1, -1, -1, -1, -1, 47, 48, 49, 6, 7,
2586 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2587 18, 19, 20, -1, -1, -1, 24, -1, -1, 71,
2588 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2589 -1, -1, -1, -1, -1, -1, -1, -1, -1, 47,
2590 48, 49, -1, -1, 96, 97, 98, 99, 100, 101,
2591 102, -1, -1, -1, -1, -1, -1, -1, -1, 111,
2592 -1, -1, -1, 71, 116, -1, -1, -1, -1, -1,
2593 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2594 -1, -1, -1, -1, -1, -1, -1, -1, 96, 97,
2595 98, 99, 100, 101, 102, -1, -1, -1, -1, -1,
2596 -1, -1, -1, 111, -1, 6, 7, 8, 116, 10,
2597 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2598 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2599 31, 32, 33, 34, -1, -1, 188, 189, 190, -1,
2600 192, 193, 194, -1, -1, -1, 47, 48, 49, 6,
2601 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2602 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2603 71, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2604 188, 189, 190, -1, 192, 193, 194, -1, -1, -1,
2605 47, 48, 49, -1, -1, 96, 97, 98, 99, 100,
2606 101, 102, -1, -1, -1, -1, -1, -1, -1, -1,
2607 111, -1, -1, -1, 71, 116, -1, -1, -1, -1,
2608 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2609 -1, -1, -1, -1, -1, -1, -1, -1, -1, 96,
2610 97, 98, 99, 100, 101, 102, -1, -1, -1, -1,
2611 -1, -1, -1, -1, 111, -1, 6, 7, 8, 116,
2612 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2613 20, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2614 30, 31, 32, 33, 34, -1, -1, 188, 189, 190,
2615 -1, 192, 193, 194, -1, -1, -1, 47, 48, 49,
2616 6, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2617 16, 17, 18, 19, 20, -1, -1, -1, 24, -1,
2618 -1, 71, -1, 29, 30, 31, 32, 33, 34, -1,
2619 -1, 188, 189, 190, -1, 192, 193, 194, -1, -1,
2620 -1, 47, 48, 49, -1, -1, 96, 97, 98, 99,
2621 100, 101, 102, -1, -1, -1, -1, -1, -1, -1,
2622 -1, 111, -1, -1, -1, 71, 116, -1, -1, -1,
2623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2624 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2625 96, 97, 98, 99, 100, 101, 102, -1, -1, -1,
2626 -1, -1, -1, -1, -1, 111, -1, 6, 7, 8,
2627 116, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2628 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2629 29, 30, 31, 32, 33, 34, -1, -1, 188, 189,
2630 190, -1, 192, 193, 194, -1, -1, -1, 47, 48,
2631 49, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2632 15, 16, 17, 18, 19, -1, -1, -1, -1, 24,
2633 -1, -1, 71, -1, 29, 30, 31, 32, 33, 34,
2634 -1, -1, 188, 189, 190, -1, 192, 193, 194, -1,
2635 -1, -1, 47, 48, 49, -1, -1, 96, 97, 98,
2636 99, 100, 101, 102, -1, -1, -1, -1, -1, -1,
2637 -1, -1, 111, -1, -1, -1, 71, 116, -1, -1,
2638 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2639 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2640 -1, 96, 97, 98, 99, 100, 101, 102, 19, -1,
2641 -1, -1, -1, 24, -1, -1, 111, -1, -1, -1,
2642 -1, 116, -1, -1, -1, -1, -1, -1, -1, -1,
2643 -1, -1, -1, 44, -1, 46, -1, -1, -1, -1,
2644 -1, -1, -1, -1, -1, -1, -1, -1, -1, 188,
2645 189, 190, -1, 192, 193, 194, -1, -1, -1, -1,
2646 -1, 72, -1, -1, -1, -1, -1, -1, -1, -1,
2647 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2648 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2649 -1, -1, -1, 188, 189, 190, -1, 192, 193, 194,
2650 -1, 112, 113, 114, 115, -1, 117, 118, 119, 120,
2651 121, 122, 123, 124, 125, 126, -1, 128, 129, 130,
2652 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2653 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2654 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2655 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2656 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
2657 181, 20, -1, -1, -1, -1, -1, -1, -1, 190,
2658 191, -1, -1, -1, 195, -1, -1, -1, -1, -1,
2659 -1, -1, -1, -1, -1, 44, -1, -1, -1, -1,
2660 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2662 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2663 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2664 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2665 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2666 -1, -1, -1, 112, 113, 114, 115, -1, 117, 118,
2667 119, 120, 121, 122, 123, 124, 125, 126, -1, 128,
2668 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2669 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2670 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2671 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2672 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2673 179, 180, 181, -1, -1, -1, -1, -1, 19, -1,
2674 -1, 190, 191, 24, -1, -1, 195, -1, 29, 30,
2675 31, 32, 33, 34, -1, -1, -1, -1, -1, 19,
2676 20, 42, 43, -1, 24, -1, 47, 48, 49, 29,
2677 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2678 -1, -1, -1, -1, -1, -1, 19, 47, 48, 49,
2679 71, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2680 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2681 -1, 71, -1, 19, 47, 48, 49, -1, 24, -1,
2682 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2683 -1, -1, -1, -1, -1, 116, -1, -1, 71, -1,
2684 -1, 47, 48, 49, -1, -1, -1, -1, -1, -1,
2685 -1, -1, -1, -1, -1, -1, 116, -1, -1, -1,
2686 -1, -1, -1, -1, -1, 71, -1, -1, -1, -1,
2687 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2688 -1, -1, -1, 116, -1, -1, -1, -1, -1, -1,
2689 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2690 -1, -1, 24, -1, -1, -1, -1, 188, 189, 190,
2691 116, 192, 34, -1, -1, -1, -1, -1, -1, -1,
2692 -1, -1, 44, -1, -1, -1, -1, -1, 188, 189,
2693 190, -1, 192, -1, -1, -1, -1, -1, -1, -1,
2694 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2695 -1, -1, -1, -1, -1, 188, 189, 190, -1, 192,
2696 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2697 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2698 -1, -1, 188, 189, 190, -1, 192, -1, -1, -1,
2699 112, 113, 114, 115, -1, 117, 118, 119, 120, 121,
2700 122, 123, 124, 125, 126, -1, 128, 129, 130, 131,
2701 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2702 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2703 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2704 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2705 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2706 -1, -1, -1, -1, -1, -1, 188, 189, 190, 191,
2707 24, 193, 194, 195, -1, 29, 30, 31, 32, 33,
2708 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
2709 -1, 24, 25, 47, 48, 49, 29, 30, 31, 32,
2710 33, 34, 24, -1, -1, 27, -1, 29, 30, 31,
2711 32, 33, 34, -1, 47, 48, 49, 71, -1, -1,
2712 -1, -1, -1, 24, 25, 47, 48, 49, 29, 30,
2713 31, 32, 33, 34, 24, -1, -1, 27, 71, 29,
2714 30, 31, 32, 33, 34, -1, 47, 48, 49, 71,
2715 -1, -1, -1, -1, -1, -1, -1, 47, 48, 49,
2716 -1, -1, 116, -1, -1, -1, 24, 25, -1, -1,
2717 71, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2718 -1, 71, -1, 116, -1, -1, -1, -1, -1, 47,
2719 48, 49, -1, 24, 116, -1, -1, -1, 29, 30,
2720 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2721 -1, -1, -1, 71, -1, 116, 47, 48, 49, -1,
2722 -1, -1, 24, -1, -1, -1, 116, 29, 30, 31,
2723 32, 33, 34, -1, 188, 189, 190, -1, 192, -1,
2724 71, -1, -1, -1, -1, 47, 48, 49, -1, -1,
2725 -1, -1, -1, -1, -1, 188, 189, 190, 116, 192,
2726 -1, -1, -1, -1, -1, -1, 188, 189, 190, 71,
2727 192, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2728 33, 34, -1, -1, -1, 116, -1, 188, 189, 190,
2729 -1, 192, -1, -1, 47, 48, 49, -1, 188, 189,
2730 190, 24, 192, -1, -1, -1, 29, 30, 31, 32,
2731 33, 34, -1, -1, 116, -1, -1, -1, 71, -1,
2732 -1, -1, -1, -1, 47, 48, 49, -1, -1, -1,
2733 188, 189, 190, -1, 192, -1, -1, -1, -1, -1,
2734 -1, -1, -1, -1, -1, -1, -1, -1, 71, -1,
2735 -1, -1, -1, -1, -1, -1, -1, 188, 189, 190,
2736 24, 192, -1, 116, -1, 29, 30, 31, 32, 33,
2737 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2738 -1, -1, -1, 47, 48, 49, 188, 189, 190, -1,
2739 192, -1, -1, 116, -1, -1, -1, -1, -1, -1,
2740 -1, -1, -1, -1, -1, -1, -1, 71, -1, -1,
2741 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2742 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2743 -1, -1, -1, -1, -1, 188, 189, 190, -1, 192,
2744 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2745 -1, -1, 116, -1, -1, -1, -1, -1, -1, -1,
2746 -1, 44, -1, 46, -1, 188, 189, 190, -1, 192,
2747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2748 -1, -1, -1, -1, -1, 68, 69, 70, -1, 72,
2749 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2750 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2751 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2752 -1, -1, -1, -1, 188, 189, 190, -1, 192, 112,
2753 113, 114, 115, -1, 117, 118, 119, 120, 121, 122,
2754 123, 124, 125, 126, -1, 128, 129, 130, 131, 132,
2755 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2756 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2757 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2758 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2759 173, 174, 175, 176, 177, 178, 179, 180, 181, 44,
2760 -1, 46, -1, -1, -1, -1, -1, 190, 191, -1,
2761 -1, -1, 195, -1, -1, -1, -1, -1, -1, -1,
2762 -1, -1, -1, -1, -1, -1, -1, 72, -1, -1,
2763 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2764 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2765 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2766 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
2767 115, -1, 117, 118, 119, 120, 121, 122, 123, 124,
2768 125, 126, -1, 128, 129, 130, 131, 132, 133, 134,
2769 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2770 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2771 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2772 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2773 175, 176, 177, 178, 179, 180, 181, 44, -1, -1,
2774 -1, -1, -1, 188, 189, 190, 191, -1, -1, -1,
2775 195, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2776 -1, 68, 69, 70, -1, -1, -1, -1, -1, -1,
2777 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2778 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2779 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2780 -1, -1, -1, -1, -1, 112, 113, 114, 115, -1,
2781 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2782 -1, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2783 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2784 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2785 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2786 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2787 177, 178, 179, 180, 181, 44, -1, -1, -1, -1,
2788 -1, -1, -1, 190, 191, -1, -1, -1, 195, -1,
2789 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2790 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2791 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2792 -1, -1, -1, 92, 93, 94, -1, -1, -1, -1,
2793 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2794 -1, -1, -1, 112, 113, 114, 115, -1, 117, 118,
2795 119, 120, 121, 122, 123, 124, 125, 126, -1, 128,
2796 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2797 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2798 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2799 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2800 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
2801 179, 180, 181, 44, -1, 46, -1, -1, -1, -1,
2802 -1, 190, 191, -1, -1, -1, 195, -1, -1, -1,
2803 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2804 -1, 72, -1, -1, -1, -1, -1, -1, -1, -1,
2805 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2806 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2807 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2808 -1, 112, 113, 114, 115, -1, 117, 118, 119, 120,
2809 121, 122, 123, 124, 125, 126, -1, 128, 129, 130,
2810 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2811 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2812 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2813 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2814 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
2815 181, 44, -1, -1, -1, -1, -1, -1, -1, 190,
2816 191, -1, -1, -1, 195, -1, -1, -1, -1, -1,
2817 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2818 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2819 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2820 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2821 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
2822 113, 114, 115, -1, 117, 118, 119, 120, 121, 122,
2823 123, 124, 125, 126, -1, 128, 129, 130, 131, 132,
2824 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2825 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2826 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2827 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2828 173, 174, 175, 176, 177, 178, 179, 180, 181, -1,
2829 -1, -1, -1, -1, -1, -1, -1, 190, 191, -1,
2832 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2834 /* Skeleton output parser for bison,
2836 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
2839 This program is free software; you can redistribute it and/or modify
2840 it under the terms of the GNU General Public License as published by
2841 the Free Software Foundation; either version 2, or (at your option)
2844 This program is distributed in the hope that it will be useful,
2845 but WITHOUT ANY WARRANTY; without even the implied warranty of
2846 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2847 GNU General Public License for more details.
2849 You should have received a copy of the GNU General Public License
2850 along with this program; if not, write to the Free Software
2851 Foundation, Inc., 59 Temple Place - Suite 330,
2852 Boston, MA 02111-1307, USA. */
2854 /* As a special exception, when this file is copied by Bison into a
2855 Bison output file, you may use that output file without restriction.
2856 This special exception was added by the Free Software Foundation
2857 in version 1.24 of Bison. */
2859 /* This is the parser code that is written into each bison parser when
2860 the %semantic_parser declaration is not specified in the grammar.
2861 It was written by Richard Stallman by simplifying the hairy parser
2862 used when %semantic_parser is specified. */
2864 /* All symbols defined below should begin with yy or YY, to avoid
2865 infringing on user name space. This should be done even for local
2866 variables, as they might otherwise be expanded by user macros.
2867 There are some unavoidable exceptions within include files to
2868 define necessary library symbols; they are noted "INFRINGES ON
2869 USER NAME SPACE" below. */
2871 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
2873 /* The parser invokes alloca or malloc; define the necessary symbols. */
2875 # if YYSTACK_USE_ALLOCA
2876 # define YYSTACK_ALLOC alloca
2878 # ifndef YYSTACK_USE_ALLOCA
2879 # if defined (alloca) || defined (_ALLOCA_H)
2880 # define YYSTACK_ALLOC alloca
2883 # define YYSTACK_ALLOC __builtin_alloca
2889 # ifdef YYSTACK_ALLOC
2890 /* Pacify GCC's `empty if-body' warning. */
2891 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
2893 # if defined (__STDC__) || defined (__cplusplus)
2894 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
2895 # define YYSIZE_T size_t
2897 # define YYSTACK_ALLOC malloc
2898 # define YYSTACK_FREE free
2900 #endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
2903 #if (! defined (yyoverflow) \
2904 && (! defined (__cplusplus) \
2905 || (YYLTYPE_IS_TRIVIAL && cgrammar_YYSTYPE_IS_TRIVIAL)))
2907 /* A type that is properly aligned for any stack member. */
2911 cgrammar_YYSTYPE yyvs;
2917 /* The size of the maximum gap between one aligned stack and the next. */
2918 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
2920 /* The size of an array large to enough to hold all stacks, each with
2923 # define YYSTACK_BYTES(N) \
2924 ((N) * (sizeof (short) + sizeof (cgrammar_YYSTYPE) + sizeof (YYLTYPE)) \
2925 + 2 * YYSTACK_GAP_MAX)
2927 # define YYSTACK_BYTES(N) \
2928 ((N) * (sizeof (short) + sizeof (cgrammar_YYSTYPE)) \
2932 /* Copy COUNT objects from FROM to TO. The source and destination do
2936 # define YYCOPY(To, From, Count) \
2937 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
2939 # define YYCOPY(To, From, Count) \
2942 register YYSIZE_T yyi; \
2943 for (yyi = 0; yyi < (Count); yyi++) \
2944 (To)[yyi] = (From)[yyi]; \
2950 /* Relocate STACK from its old location to the new one. The
2951 local variables YYSIZE and YYSTACKSIZE give the old and new number of
2952 elements in the stack, and YYPTR gives the new location of the
2953 stack. Advance YYPTR to a properly aligned location for the next
2955 # define YYSTACK_RELOCATE(Stack) \
2958 YYSIZE_T yynewbytes; \
2959 YYCOPY (&yyptr->Stack, Stack, yysize); \
2960 Stack = &yyptr->Stack; \
2961 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
2962 yyptr += yynewbytes / sizeof (*yyptr); \
2969 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
2970 # define YYSIZE_T __SIZE_TYPE__
2972 #if ! defined (YYSIZE_T) && defined (size_t)
2973 # define YYSIZE_T size_t
2975 #if ! defined (YYSIZE_T)
2976 # if defined (__STDC__) || defined (__cplusplus)
2977 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
2978 # define YYSIZE_T size_t
2981 #if ! defined (YYSIZE_T)
2982 # define YYSIZE_T unsigned int
2985 #define yyerrok (yyerrstatus = 0)
2986 #define yyclearin (yychar = YYEMPTY)
2989 #define YYACCEPT goto yyacceptlab
2990 #define YYABORT goto yyabortlab
2991 #define YYERROR goto yyerrlab1
2992 /* Like YYERROR except do call yyerror. This remains here temporarily
2993 to ease the transition to the new meaning of YYERROR, for GCC.
2994 Once GCC version 2 has supplanted version 1, this can go. */
2995 #define YYFAIL goto yyerrlab
2996 #define YYRECOVERING() (!!yyerrstatus)
2997 #define YYBACKUP(Token, Value) \
2999 if (yychar == YYEMPTY && yylen == 1) \
3003 yychar1 = YYTRANSLATE (yychar); \
3009 yyerror ("syntax error: cannot back up"); \
3015 #define YYERRCODE 256
3018 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
3021 When YYLLOC_DEFAULT is run, CURRENT is set the location of the
3022 first token. By default, to implement support for ranges, extend
3023 its range to the last symbol. */
3025 #ifndef YYLLOC_DEFAULT
3026 # define YYLLOC_DEFAULT(Current, Rhs, N) \
3027 Current.last_line = Rhs[N].last_line; \
3028 Current.last_column = Rhs[N].last_column;
3032 /* YYLEX -- calling `yylex' with the right arguments. */
3037 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
3039 # define YYLEX yylex (&yylval, &yylloc)
3041 # else /* !YYLSP_NEEDED */
3043 # define YYLEX yylex (&yylval, YYLEX_PARAM)
3045 # define YYLEX yylex (&yylval)
3047 # endif /* !YYLSP_NEEDED */
3049 # define YYLEX yylex ()
3050 #endif /* !YYPURE */
3053 /* Enable debugging if requested. */
3057 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3058 # define YYFPRINTF fprintf
3061 # define YYDPRINTF(Args) \
3066 /* Nonzero means print parse trace. It is left uninitialized so that
3067 multiple parsers can coexist. */
3069 #else /* !YYDEBUG */
3070 # define YYDPRINTF(Args)
3071 #endif /* !YYDEBUG */
3073 /* YYINITDEPTH -- initial size of the parser's stacks. */
3075 # define YYINITDEPTH 200
3078 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3079 if the built-in stack extension method is used).
3081 Do not make this value too large; the results are undefined if
3082 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
3083 evaluated with infinite-precision integer arithmetic. */
3090 # define YYMAXDEPTH 10000
3093 #ifdef YYERROR_VERBOSE
3096 # if defined (__GLIBC__) && defined (_STRING_H)
3097 # define yystrlen strlen
3099 /* Return the length of YYSTR. */
3101 # if defined (__STDC__) || defined (__cplusplus)
3102 yystrlen (const char *yystr)
3108 register const char *yys = yystr;
3110 while (*yys++ != '\0')
3113 return yys - yystr - 1;
3119 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
3120 # define yystpcpy stpcpy
3122 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3125 # if defined (__STDC__) || defined (__cplusplus)
3126 yystpcpy (char *yydest, const char *yysrc)
3128 yystpcpy (yydest, yysrc)
3133 register char *yyd = yydest;
3134 register const char *yys = yysrc;
3136 while ((*yyd++ = *yys++) != '\0')
3147 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
3148 into yyparse. The argument should have type void *.
3149 It should actually point to an object.
3150 Grammar actions can access the variable by casting it
3151 to the proper pointer type. */
3153 #ifdef YYPARSE_PARAM
3154 # if defined (__STDC__) || defined (__cplusplus)
3155 # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
3156 # define YYPARSE_PARAM_DECL
3158 # define YYPARSE_PARAM_ARG YYPARSE_PARAM
3159 # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
3161 #else /* !YYPARSE_PARAM */
3162 # define YYPARSE_PARAM_ARG
3163 # define YYPARSE_PARAM_DECL
3164 #endif /* !YYPARSE_PARAM */
3166 /* Prevent warning if -Wstrict-prototypes. */
3168 # ifdef YYPARSE_PARAM
3169 int yyparse (void *);
3175 /* YY_DECL_VARIABLES -- depending whether we use a pure parser,
3176 variables are global, or local to YYPARSE. */
3178 #define YY_DECL_NON_LSP_VARIABLES \
3179 /* The lookahead symbol. */ \
3182 /* The semantic value of the lookahead symbol. */ \
3183 cgrammar_YYSTYPE yylval; \
3185 /* Number of parse errors so far. */ \
3189 # define YY_DECL_VARIABLES \
3190 YY_DECL_NON_LSP_VARIABLES \
3192 /* Location data for the lookahead symbol. */ \
3195 # define YY_DECL_VARIABLES \
3196 YY_DECL_NON_LSP_VARIABLES
3200 /* If nonreentrant, generate the variables here. */
3204 #endif /* !YYPURE */
3207 yyparse (YYPARSE_PARAM_ARG)
3210 /* If reentrant, generate the variables here. */
3213 #endif /* !YYPURE */
3215 register int yystate;
3218 /* Number of tokens to shift before error messages enabled. */
3220 /* Lookahead token as an internal (translated) token number. */
3223 /* Three stacks and their tools:
3224 `yyss': related to states,
3225 `yyvs': related to semantic values,
3226 `yyls': related to locations.
3228 Refer to the stacks thru separate pointers, to allow yyoverflow
3229 to reallocate them elsewhere. */
3231 /* The state stack. */
3232 short yyssa[YYINITDEPTH];
3233 short *yyss = yyssa;
3234 register short *yyssp;
3236 /* The semantic value stack. */
3237 cgrammar_YYSTYPE yyvsa[YYINITDEPTH];
3238 cgrammar_YYSTYPE *yyvs = yyvsa;
3239 register cgrammar_YYSTYPE *yyvsp;
3242 /* The location stack. */
3243 YYLTYPE yylsa[YYINITDEPTH];
3244 YYLTYPE *yyls = yylsa;
3249 # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
3251 # define YYPOPSTACK (yyvsp--, yyssp--)
3254 YYSIZE_T yystacksize = YYINITDEPTH;
3257 /* The variables used to return semantic value and location from the
3259 cgrammar_YYSTYPE yyval;
3264 /* When reducing, the number of symbols on the RHS of the reduced
3268 YYDPRINTF ((stderr, "Starting parse\n"));
3273 yychar = YYEMPTY; /* Cause a token to be read. */
3275 /* Initialize stack pointers.
3276 Waste one element of value and location stack
3277 so that they stay on the same level as the state stack.
3278 The wasted elements are never initialized. */
3287 /*------------------------------------------------------------.
3288 | yynewstate -- Push a new state, which is found in yystate. |
3289 `------------------------------------------------------------*/
3291 /* In all cases, when you get here, the value and location stacks
3292 have just been pushed. so pushing a state here evens the stacks.
3299 if (yyssp >= yyss + yystacksize - 1)
3301 /* Get the current used size of the three stacks, in elements. */
3302 YYSIZE_T yysize = yyssp - yyss + 1;
3306 /* Give user a chance to reallocate the stack. Use copies of
3307 these so that the &'s don't force the real ones into
3309 cgrammar_YYSTYPE *yyvs1 = yyvs;
3310 short *yyss1 = yyss;
3312 /* Each stack pointer address is followed by the size of the
3313 data in use in that stack, in bytes. */
3315 YYLTYPE *yyls1 = yyls;
3316 /* This used to be a conditional around just the two extra args,
3317 but that might be undefined if yyoverflow is a macro. */
3318 yyoverflow ("parser stack overflow",
3319 &yyss1, yysize * sizeof (*yyssp),
3320 &yyvs1, yysize * sizeof (*yyvsp),
3321 &yyls1, yysize * sizeof (*yylsp),
3325 yyoverflow ("parser stack overflow",
3326 &yyss1, yysize * sizeof (*yyssp),
3327 &yyvs1, yysize * sizeof (*yyvsp),
3333 #else /* no yyoverflow */
3334 # ifndef YYSTACK_RELOCATE
3337 /* Extend the stack our own way. */
3338 if (yystacksize >= YYMAXDEPTH)
3341 if (yystacksize > YYMAXDEPTH)
3342 yystacksize = YYMAXDEPTH;
3345 short *yyss1 = yyss;
3346 union yyalloc *yyptr =
3347 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3350 YYSTACK_RELOCATE (yyss);
3351 YYSTACK_RELOCATE (yyvs);
3353 YYSTACK_RELOCATE (yyls);
3355 # undef YYSTACK_RELOCATE
3357 YYSTACK_FREE (yyss1);
3360 #endif /* no yyoverflow */
3362 yyssp = yyss + yysize - 1;
3363 yyvsp = yyvs + yysize - 1;
3365 yylsp = yyls + yysize - 1;
3368 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3369 (unsigned long int) yystacksize));
3371 if (yyssp >= yyss + yystacksize - 1)
3375 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3385 /* Do appropriate processing given the current state. */
3386 /* Read a lookahead token if we need one and don't already have one. */
3389 /* First try to decide what to do without reference to lookahead token. */
3391 yyn = yypact[yystate];
3395 /* Not known => get a lookahead token if don't already have one. */
3397 /* yychar is either YYEMPTY or YYEOF
3398 or a valid token in external form. */
3400 if (yychar == YYEMPTY)
3402 YYDPRINTF ((stderr, "Reading a token: "));
3406 /* Convert token to internal form (in yychar1) for indexing tables with */
3408 if (yychar <= 0) /* This means end of input. */
3411 yychar = YYEOF; /* Don't call YYLEX any more */
3413 YYDPRINTF ((stderr, "Now at end of input.\n"));
3417 yychar1 = YYTRANSLATE (yychar);
3420 /* We have to keep this `#if YYDEBUG', since we use variables
3421 which are defined only if `YYDEBUG' is set. */
3424 YYFPRINTF (stderr, "Next token is %d (%s",
3425 yychar, yytname[yychar1]);
3426 /* Give the individual parser a way to print the precise
3427 meaning of a token, for further debugging info. */
3429 YYPRINT (stderr, yychar, yylval);
3431 YYFPRINTF (stderr, ")\n");
3437 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3442 /* yyn is what to do for this token type in this state.
3443 Negative => reduce, -yyn is rule number.
3444 Positive => shift, yyn is new state.
3445 New state is final state => don't bother to shift,
3446 just return success.
3447 0, or most negative number => error. */
3462 /* Shift the lookahead token. */
3463 YYDPRINTF ((stderr, "Shifting token %d (%s), ",
3464 yychar, yytname[yychar1]));
3466 /* Discard the token being shifted unless it is eof. */
3467 if (yychar != YYEOF)
3475 /* Count tokens shifted since error; after three, turn off error
3484 /*-----------------------------------------------------------.
3485 | yydefault -- do the default action for the current state. |
3486 `-----------------------------------------------------------*/
3488 yyn = yydefact[yystate];
3494 /*-----------------------------.
3495 | yyreduce -- Do a reduction. |
3496 `-----------------------------*/
3498 /* yyn is the number of a rule to reduce with. */
3501 /* If YYLEN is nonzero, implement the default value of the action:
3504 Otherwise, the following line sets YYVAL to the semantic value of
3505 the lookahead token. This behavior is undocumented and Bison
3506 users should not rely upon it. Assigning to YYVAL
3507 unconditionally makes the parser a bit smaller, and it avoids a
3508 GCC warning that YYVAL may be used uninitialized. */
3509 yyval = yyvsp[1-yylen];
3512 /* Similarly for the default location. Let the user run additional
3513 commands if for instance locations are ranges. */
3514 yyloc = yylsp[1-yylen];
3515 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
3519 /* We have to keep this `#if YYDEBUG', since we use variables which
3520 are defined only if `YYDEBUG' is set. */
3525 YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
3528 /* Print the symbols being reduced, and their result. */
3529 for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
3530 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
3531 YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3538 { context_checkGlobalScope (); ;
3541 { context_checkGlobalScope (); ;
3544 { uentry_clearDecl (); ;
3547 { uentry_clearDecl (); ;
3550 { uentry_clearDecl (); ;
3553 { uentry_clearDecl (); ;
3556 { uentry_clearDecl (); ;
3559 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3562 { uentry_clearDecl (); lltok_free (yyvsp[0].tok); /* evans 2002-02-08: okay to have a null statement */ ;
3565 { uentry_clearDecl (); ;
3568 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); lltok_free2 (yyvsp[-7].tok, yyvsp[0].tok); ;
3571 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr); lltok_free3 (yyvsp[-10].tok, yyvsp[-5].tok, yyvsp[0].tok); ;
3574 { context_enterFunctionHeader (); ;
3578 declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3579 context_exitFunctionHeader ();
3580 lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); /*!*/
3585 qtype qint = qtype_create (ctype_int);
3586 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3591 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3594 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
3597 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3600 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;
3603 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp))); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
3607 exprNode_findValue (yyvsp[-2].expr);
3608 idDecl_notExpectingFunction (yyvsp[-5].ntyp);
3610 if (exprNode_hasValue (yyvsp[-2].expr))
3612 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp),
3613 exprNode_getLongValue (yyvsp[-2].expr)));
3617 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-5].ntyp)));
3620 lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
3624 { setCurrentParams (uentryList_missingParams); ;
3627 { /* need to support globals and modifies here! */
3628 functionClauseList fcl;
3629 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3630 uentryList_makeMissingParams ());
3632 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3634 /*drl 7/25/01 added*/
3635 setImplicitfcnConstraints();
3637 DPRINTF((message("namedDeclBase PushType TLPAREN TRPAREN...:\n adding implict constraints to functionClause List: %s",
3638 functionClauseList_unparse(yyvsp[0].funcclauselist)
3642 fcl = functionClauseList_setImplicitConstraints(yyvsp[0].funcclauselist);
3644 idDecl_addClauses (yyval.ntyp, fcl);
3646 DPRINTF((message("1 added fuctionClause List: %s to the Id",
3647 functionClauseList_unparse(fcl)
3653 lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
3657 { setCurrentParams (yyvsp[-1].entrylist); ;
3661 functionClauseList fcl;
3662 setImplicitfcnConstraints ();
3663 clearCurrentParams ();
3664 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3666 DPRINTF((message("namedDeclBase PushType TLPAREN genericParamList TRPAREN...:\n adding implict constraints to functionClause List: %s",
3667 functionClauseList_unparse(yyvsp[0].funcclauselist)
3671 fcl = functionClauseList_setImplicitConstraints(yyvsp[0].funcclauselist);
3673 idDecl_addClauses (yyval.ntyp, fcl);
3675 DPRINTF((message("added fuctionClause List: %s to the Id",
3676 functionClauseList_unparse(fcl)
3682 lltok_free2 (yyvsp[-4].tok, yyvsp[-2].tok);
3686 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3689 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); lltok_free2 (yyvsp[-4].tok, yyvsp[0].tok); ;
3692 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeInnerArray (idDecl_getCtype (yyvsp[-2].ntyp)));
3693 lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok);
3700 if (exprNode_hasValue (yyvsp[-2].expr)
3701 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3703 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3710 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3711 lltok_free2 (yyvsp[-4].tok, yyvsp[-1].tok);
3715 { setCurrentParams (uentryList_missingParams); ;
3719 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3720 uentryList_makeMissingParams ());
3722 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3723 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3725 lltok_free2 (yyvsp[-3].tok, yyvsp[-2].tok);
3729 { setCurrentParams (yyvsp[-1].entrylist); ;
3733 clearCurrentParams ();
3734 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3735 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3737 lltok_free (yyvsp[-4].tok);
3738 /*!! lltok_free2 ($3, $5); */
3742 { setCurrentParams (yyvsp[-1].entrylist); ;
3745 { clearCurrentParams (); ;
3748 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist);
3749 lltok_free3 (yyvsp[-9].tok, yyvsp[-7].tok, yyvsp[-5].tok);
3753 { exprNode_checkMacroBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
3756 { exprNode_checkIterBody (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
3759 { exprNode_checkIterEnd (yyvsp[-1].expr); lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok);;
3762 { exprChecks_checkEmptyMacroBody (); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
3765 { clabstract_declareFunction (yyvsp[0].ntyp); ;
3768 { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;
3771 { cscannerHelp_expectingMetaStateName (); ;
3774 { cscannerHelp_clearExpectingMetaStateName ();
3775 yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo);
3776 lltok_free (yyvsp[-1].tok);
3780 { cscannerHelp_expectingMetaStateName (); ;
3783 { cscannerHelp_clearExpectingMetaStateName ();
3784 yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo);
3785 lltok_free2 (yyvsp[-3].tok, yyvsp[-1].tok);
3789 { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
3792 { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); lltok_free (yyvsp[-1].tok); ;
3795 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
3798 { yyval.conL = constraintList_single (yyvsp[0].con); ;
3802 yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
3803 DPRINTF(("Done BufConstraint1\n")); ;
3806 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3810 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3811 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3814 { yyval.conE = constraintExpr_makeTermsRef (yyvsp[0].sr);;
3817 { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
3820 { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
3823 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3826 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3832 t = cstring_toCharsSafe (exprNode_unparse($3));
3835 yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
3839 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3842 { yyval.sr = yyvsp[-1].sr; ;
3845 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3848 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3851 { yyval.funcclauselist = functionClauseList_new (); ;
3854 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3857 { yyval.funcclauselist = functionClauseList_new (); ;
3860 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3863 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3866 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3869 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3872 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3875 { yyval.funcclause = yyvsp[0].funcclause; ;
3878 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3881 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3884 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3887 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3890 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3893 { yyval.funcclause = yyvsp[0].funcclause; ;
3896 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3899 { yyval.globsclause = yyvsp[-1].globsclause; ;
3902 { setProcessingGlobalsList (); ;
3906 unsetProcessingGlobals ();
3907 yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset);
3911 { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
3914 { yyval.modsclause = yyvsp[-1].modsclause; ;
3918 context_setProtectVars (); enterParamsTemp ();
3919 sRef_setGlobalScopeSafe ();
3925 sRef_clearGlobalScopeSafe ();
3926 context_releaseVars ();
3927 yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
3931 { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
3934 { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
3937 { yyval.warnclause = warnClause_undefined; ;
3940 { yyval.warnclause = yyvsp[-1].warnclause; ;
3944 llassert (exprNode_knownStringValue (yyvsp[0].expr));
3945 yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr))));
3946 exprNode_free (yyvsp[0].expr);
3950 { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
3953 { yyval.globset = globSet_single (yyvsp[0].sr); ;
3956 { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
3959 { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3962 { yyval.tquallist = qualList_undefined; ;
3965 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3968 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3971 { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
3974 { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
3977 { yyval.typequal = qual_createUndef (); ;
3980 { yyval.typequal = qual_createKilled (); ;
3983 { yyval.typequal = qual_createOut (); ;
3986 { yyval.typequal = qual_createIn (); ;
3989 { yyval.typequal = qual_createPartial (); ;
3993 /**!!! deal with fred; fred (int); declarations! **/
3994 qtype qint = qtype_create (ctype_int);
3995 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
4000 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
4003 { checkDoneParams (); context_enterInnerContext (); ;
4007 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
4008 context_exitInner (yyvsp[0].expr);
4012 { context_enterOldStyleScope (); ;
4015 { oldStyleDoneParams (); context_enterInnerContext (); ;
4019 exprNode_checkFunctionBody (yyvsp[0].expr);
4020 yyval.expr = yyvsp[0].expr; /* oldstyle */
4021 context_exitInner (yyvsp[0].expr);
4026 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
4027 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
4030 context_exitFunction ();
4034 { yyval.srset = yyvsp[-1].srset; ;
4037 { yyval.srset = sRefSet_new (); ;
4040 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
4043 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
4046 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
4049 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
4052 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
4055 { yyval.sr = modListPointer (yyvsp[0].sr); ;
4058 { yyval.sr = yyvsp[-1].sr; ;
4061 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
4064 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
4067 { yyval.sr = yyvsp[0].sr; ;
4070 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
4073 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
4076 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
4079 { yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
4082 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
4085 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
4088 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
4091 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
4094 { yyval.sr = yyvsp[-1].sr; ;
4097 { cstring_markOwned (yyvsp[0].cname);
4098 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
4101 { cstring_markOwned (yyvsp[0].cname);
4102 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
4105 { DPRINTF ((message("Empty optSpecClauseList") )); yyval.srset = sRefSet_undefined ;
4108 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
4110 DPRINTF((message("returning sRefSEt_undefined ") ));
4111 yyval.srset = sRefSet_undefined; }
4115 { if (sRef_isValid (yyvsp[0].sr))
4117 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
4121 yyval.srset = yyvsp[-2].srset;
4126 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
4129 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
4132 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4135 { yyval.expr = exprNode_fromIdentifier (cscannerHelp_coerceId (yyvsp[0].cname)); ;
4138 { yyval.expr = exprNode_makeError (); ;
4141 { exprChecks_inCompoundStatementExpression (); ;
4144 { exprChecks_leaveCompoundStatementExpression (); yyval.expr = exprNode_compoundStatementExpression (yyvsp[-3].tok, yyvsp[-1].expr); ;
4147 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4150 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4153 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
4156 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
4159 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4162 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4165 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4168 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4171 { /* added for C99 */ yyval.expr = exprNode_undefined; /*@i87 no checking */ ;
4174 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4177 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
4180 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4183 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4186 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4189 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4192 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4195 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4198 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4201 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4204 { yyval.expr = yyvsp[-1].expr; ;
4207 { yyval.expr = yyvsp[0].expr; ;
4210 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); lltok_free (yyvsp[-1].tok); ;
4213 { yyval.cstringlist = yyvsp[-3].cstringlist; lltok_free2 (yyvsp[-2].tok, yyvsp[0].tok); ;
4216 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
4219 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist);
4220 lltok_free3 (yyvsp[-8].tok, yyvsp[-6].tok, yyvsp[-3].tok); lltok_free (yyvsp[-1].tok); ;
4223 { context_setProtectVars (); ;
4226 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
4229 {context_enterSizeof();
4232 {context_leaveSizeof();
4235 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok); ;
4238 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;
4241 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); lltok_free3 (yyvsp[-3].tok, yyvsp[-2].tok, yyvsp[0].tok); ;
4244 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); lltok_free (yyvsp[-1].tok); ;
4247 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); lltok_free (yyvsp[-1].tok); ;
4250 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4253 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4256 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4259 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4262 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4265 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4268 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4271 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4274 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4277 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4280 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4283 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4286 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4289 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4292 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4295 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4298 { exprNode_produceGuards (yyvsp[-1].expr);
4299 context_enterAndClause (yyvsp[-1].expr);
4304 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4305 context_exitAndClause (yyval.expr, yyvsp[0].expr);
4310 exprNode_produceGuards (yyvsp[-1].expr);
4311 context_enterOrClause (yyvsp[-1].expr);
4316 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
4317 context_exitOrClause (yyval.expr, yyvsp[0].expr);
4321 { /* GCC extension: conditional with empty if */
4322 exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4325 { context_enterFalseClause (yyvsp[-3].expr); ;
4328 { yyval.expr = exprNode_condIfOmit (yyvsp[-5].expr, yyvsp[0].expr); context_exitClause (yyvsp[-5].expr, exprNode_undefined, yyvsp[0].expr); ;
4331 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4334 { context_enterFalseClause (yyvsp[-4].expr); ;
4337 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
4340 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4343 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4346 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4349 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4352 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4355 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4358 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4361 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4364 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4367 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4370 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4373 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
4376 { yyval.expr = exprNode_undefined; ;
4379 { yyval.expr = yyvsp[0].expr; ;
4382 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
4385 { yyval.expr = exprNode_makeError (); ;
4388 { yyval.expr = exprNode_makeError (); ;
4392 setProcessingVars (yyvsp[-3].qtyp);
4393 processNamedDecl (yyvsp[-1].ntyp);
4398 unsetProcessingVars ();
4399 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp);
4400 DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
4404 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
4407 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
4408 unsetProcessingVars ();
4412 { yyval.expr = yyvsp[0].expr; ;
4415 { yyval.expr = exprNode_fromIdentifier (usymtab_getTypeEntry (ctype_typeId (yyvsp[0].ctyp))); ;
4419 processNamedDecl (yyvsp[-1].ntyp);
4420 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
4424 { processNamedDecl (yyvsp[-2].ntyp); ;
4427 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
4430 { setProcessingTypedef (yyvsp[0].qtyp); ;
4433 { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
4436 { /* in the ANSI grammar, semantics unclear */ ;
4439 { /* in the ANSI grammar, semantics unclear */ ;
4442 { cscannerHelp_setExpectingTypeName (); ;
4445 { cscannerHelp_setExpectingTypeName (); context_pushLoc (); ;
4448 { yyval.exprlist = yyvsp[-1].exprlist; ;
4451 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4454 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4457 { yyval.exprlist = yyvsp[-1].exprlist; ;
4460 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4463 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4466 { yyval.expr = exprNode_makeError (); ;
4469 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4472 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); lltok_free (yyvsp[0].tok); ;
4475 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); lltok_free2 (yyvsp[-1].tok, yyvsp[0].tok); ;
4478 { yyval.expr = exprNode_undefined; ;
4481 { yyval.expr = yyvsp[-1].expr; ;
4484 { yyval.expr = exprNode_undefined;
4485 /* gcc extension, obsolete since 2.5 */ ;
4488 { yyval.expr = exprNode_undefined; ;
4491 { yyval.expr = exprNode_undefined; ;
4494 { yyval.expr = exprNode_undefined; ;
4497 { yyval.expr = exprNode_undefined; ;
4500 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4503 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
4506 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4509 { yyval.typequal = qual_createInline (); ;
4512 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4515 { yyval.typequal = qual_createAuto (); ;
4518 { yyval.typequal = qual_createRegister (); ;
4521 { yyval.stateclause = yyvsp[-1].stateclause; ;
4525 context_setProtectVars ();
4527 sRef_setGlobalScopeSafe ();
4533 sRef_clearGlobalScopeSafe ();
4534 context_releaseVars ();
4535 yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
4539 { yyval.funcclause = yyvsp[-1].funcclause; ;
4542 { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
4546 context_exitFunctionHeader ();
4547 context_setProtectVars ();
4549 sRef_setGlobalScopeSafe ();
4555 sRef_clearGlobalScopeSafe ();
4556 context_releaseVars ();
4557 yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
4562 context_setProtectVars ();
4564 sRef_setGlobalScopeSafe ();
4569 context_exitFunctionHeader ();
4571 sRef_clearGlobalScopeSafe ();
4572 context_releaseVars ();
4573 DPRINTF (("done optGlobBufConstraintsAux\n"));
4575 if (lltok_isEnsures (yyvsp[-4].tok))
4577 yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint);
4579 else if (lltok_isRequires (yyvsp[-4].tok))
4581 yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint);
4588 DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
4592 { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
4595 { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
4598 { yyval.typequal = qual_createExits (); ;
4601 { yyval.typequal = qual_createMayExit (); ;
4604 { yyval.typequal = qual_createTrueExit (); ;
4607 { yyval.typequal = qual_createFalseExit (); ;
4610 { yyval.typequal = qual_createNeverExit (); ;
4613 { yyval.typequal = qual_createChecked (); ;
4616 { yyval.typequal = qual_createCheckMod (); ;
4619 { yyval.typequal = qual_createUnchecked (); ;
4622 { yyval.typequal = qual_createCheckedStrict (); ;
4625 { yyval.typequal = qual_createOwned (); ;
4628 { yyval.typequal = qual_createDependent (); ;
4631 { yyval.typequal = qual_createYield (); ;
4634 { yyval.typequal = qual_createTemp (); ;
4637 { yyval.typequal = qual_createOnly (); ;
4640 { yyval.typequal = qual_createKeep (); ;
4643 { yyval.typequal = qual_createKept (); ;
4646 { yyval.typequal = qual_createShared (); ;
4649 { yyval.typequal = qual_createUnique (); ;
4652 { yyval.typequal = qual_createNull (); ;
4655 { yyval.typequal = qual_createIsNull (); ;
4658 { yyval.typequal = qual_createRelNull (); ;
4661 { yyval.typequal = qual_createNotNull (); ;
4664 { yyval.typequal = qual_createExposed (); ;
4667 { yyval.typequal = qual_createObserver (); ;
4670 { yyval.typequal = qual_createNullTerminated (); ;
4673 { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
4676 { yyval.typequal = qual_createReturned (); ;
4679 { yyval.typequal = qual_createSef (); ;
4682 { yyval.typequal = qual_createUnused (); ;
4685 { yyval.typequal = qual_createExternal (); ;
4688 { yyval.typequal = qual_createTrueNull (); ;
4691 { yyval.typequal = qual_createFalseNull (); ;
4694 { yyval.typequal = qual_createAbstract (); ;
4697 { yyval.typequal = qual_createNumAbstract (); ;
4700 { yyval.typequal = qual_createConcrete (); ;
4703 { yyval.typequal = qual_createMutable (); ;
4706 { yyval.typequal = qual_createImmutable (); ;
4709 { yyval.typequal = qual_createRefCounted (); ;
4712 { yyval.typequal = qual_createRefs (); ;
4715 { yyval.typequal = qual_createKillRef (); ;
4718 { yyval.typequal = qual_createRelDef (); ;
4721 { yyval.typequal = qual_createNewRef (); ;
4724 { yyval.typequal = qual_createTempRef (); ;
4727 { yyval.typequal = qual_createShort (); ;
4730 { yyval.typequal = qual_createLong (); ;
4733 { yyval.typequal = qual_createSigned (); ;
4736 { yyval.typequal = qual_createUnsigned (); ;
4739 { yyval.typequal = qual_createOut (); ;
4742 { yyval.typequal = qual_createIn (); ;
4745 { yyval.typequal = qual_createPartial (); ;
4748 { yyval.typequal = qual_createSpecial (); ;
4751 { yyval.typequal = qual_createConst (); ;
4754 { yyval.typequal = qual_createVolatile (); ;
4757 { yyval.typequal = qual_createRestrict (); ;
4760 { yyval.typequal = yyvsp[-1].typequal; ;
4763 { yyval.typequal = yyvsp[-1].typequal; ;
4766 { yyval.typequal = yyvsp[-1].typequal; ;
4769 { yyval.typequal = yyvsp[-1].typequal; ;
4772 { yyval.typequal = yyvsp[-1].typequal; ;
4775 { yyval.typequal = yyvsp[-1].typequal; ;
4778 { yyval.typequal = yyvsp[-1].typequal; ;
4781 { yyval.typequal = yyvsp[-1].typequal; ;
4784 { yyval.typequal = yyvsp[-1].typequal; ;
4787 { yyval.ctyp = ctype_makeAnytype (); ;
4790 { yyval.ctyp = ctype_anyintegral; ;
4793 { yyval.ctyp = ctype_unsignedintegral; ;
4796 { yyval.ctyp = ctype_signedintegral; ;
4799 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4802 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4805 { yyval.qtyp = yyvsp[0].qtyp; ;
4808 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4811 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4814 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4817 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4820 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4823 { yyval.qtyp = qtype_unknown (); ;
4826 { yyval.qtyp = yyvsp[0].qtyp; ;
4829 { yyval.conL = constraintList_undefined; ;
4832 { sRef_setGlobalScopeSafe (); ;
4835 { sRef_clearGlobalScopeSafe (); ;
4838 { ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); /* context_setGlobalStructInfo(ct, $12); */ yyval.ctyp = ct; ;
4841 { sRef_setGlobalScopeSafe (); ;
4844 { sRef_clearGlobalScopeSafe (); ;
4847 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4850 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4853 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4856 { sRef_setGlobalScopeSafe (); ;
4859 { sRef_clearGlobalScopeSafe (); ;
4862 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4865 { sRef_setGlobalScopeSafe (); ;
4868 { sRef_clearGlobalScopeSafe (); ;
4871 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4874 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4877 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4880 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4883 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4886 { cscannerHelp_clearExpectingTypeName (); ;
4889 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4892 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4895 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4898 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4901 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4904 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4907 { yyval.ntyp = yyvsp[0].ntyp; ;
4910 { yyval.ntyp = idDecl_undefined; ;
4913 { yyval.ntyp = yyvsp[-3].ntyp; ;
4916 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4919 { context_pushLoc (); ;
4922 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4925 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4928 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4931 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4934 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4935 usymtab_supGlobalEntry (ue);
4936 yyval.cname = yyvsp[0].cname;
4940 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4941 usymtab_supGlobalEntry (ue);
4942 yyval.cname = yyvsp[-3].cname;
4946 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4950 qtype qt = qtype_unknown ();
4951 qtype_adjustPointers (yyvsp[-1].pointers, qt);
4952 yyval.ntyp = idDecl_create (cstring_copy (cscannerHelp_observeLastIdentifier ()), qt);
4956 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
4959 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].pointers, idDecl_getTyp (yyval.ntyp)); ;
4962 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4965 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4968 { yyval.typequal = qual_createConst (); ;
4971 { yyval.typequal = qual_createRestrict (); ;
4974 { yyval.typequal = qual_createVolatile (); ;
4977 { yyval.tquallist = qualList_single (yyvsp[0].typequal); ;
4980 { yyval.tquallist = qualList_add (yyvsp[-1].tquallist, yyvsp[0].typequal); ;
4983 { yyval.pointers = pointers_create (yyvsp[0].tok); ;
4986 { yyval.pointers = pointers_createMods (yyvsp[-1].tok, yyvsp[0].tquallist); ;
4989 { yyval.pointers = pointers_extend (pointers_create (yyvsp[-1].tok), yyvsp[0].pointers); ;
4992 { yyval.pointers = pointers_extend (pointers_createMods (yyvsp[-2].tok, yyvsp[-1].tquallist), yyvsp[0].pointers); ;
4995 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4998 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
5001 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
5004 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
5007 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
5013 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
5019 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
5023 if (isFlipOldStyle ())
5025 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
5031 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
5036 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
5040 llparseerror (message ("Inconsistent function parameter syntax: %q",
5041 idDecl_unparse (tparam)));
5045 yyval.oentry = makeCurrentParam (tparam);
5046 idDecl_free (tparam);
5050 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
5053 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;
5056 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;
5059 { yyval.ctyp = ctype_unknown; ;
5062 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
5065 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
5068 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
5071 { yyval.ctyp = ctype_makeInnerArray (yyvsp[-2].ctyp); ;
5074 { yyval.ctyp = ctype_makeInnerFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
5077 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
5080 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
5083 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
5086 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
5089 { exprNode_revealState (yyvsp[-1].expr); yyval.expr = exprNode_undefined; ;
5092 { yyval.expr = yyvsp[0].expr; ;
5095 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5098 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
5101 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
5104 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5107 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
5110 { context_setProtectVars (); ;
5113 { context_sizeofReleaseVars (); ;
5116 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
5117 context_enterForClause (yyvsp[-5].expr); ;
5120 { setProcessingIterVars (yyvsp[-2].entry); ;
5123 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
5126 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
5129 { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
5132 { yyval.expr = yyvsp[-1].expr; ;
5135 { yyval.expr = exprNode_makeError (); ;
5138 { exprNode_checkIfPred (yyvsp[0].expr); ;
5141 { /* don't: context_exitTrueClause ($1, $2); */
5142 yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr);
5146 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5149 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5152 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5155 { yyval.expr = exprNode_makeError (); ;
5158 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
5161 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
5170 { context_enterCaseClause (yyvsp[0].expr); ;
5173 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
5176 { context_enterCaseClause (yyvsp[0].expr); ;
5179 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
5182 { context_enterCaseClause (exprNode_undefined); ;
5185 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
5188 { context_enterCaseClause (exprNode_undefined); ;
5191 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
5194 { yyval.expr = yyvsp[-1].expr; ;
5197 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
5200 { yyval.expr = yyvsp[-1].expr; ;
5203 { context_enterInnerContext (); ;
5206 { context_exitInnerPlain (); ;
5209 { context_enterStructInnerContext (); ;
5212 { context_exitStructInnerContext (); ;
5215 { context_exitInnerSafe (); ;
5218 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5221 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
5224 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5227 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5230 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5233 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
5236 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5239 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
5240 lltok_getLoc (yyvsp[-1].tok)));
5244 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
5247 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5250 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5253 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
5256 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
5259 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5262 { yyval.expr = yyvsp[0].expr; ;
5265 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5268 { yyval.expr = yyvsp[0].expr; ;
5271 { yyval.expr = exprNode_concat (yyvsp[-2].expr, yyvsp[0].expr); ;
5274 { yyval.expr = yyvsp[0].expr; ;
5277 { yyval.expr = yyvsp[-2].expr; ;
5280 { yyval.expr = yyvsp[0].expr; ;
5283 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
5286 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5289 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5292 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
5295 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
5298 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
5302 exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr);
5303 exprNode_checkIfPred (yyvsp[-1].expr);
5304 yyval.expr = yyvsp[-1].expr;
5309 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
5310 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
5314 { context_enterFalseClause (yyvsp[-2].expr); ;
5318 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5319 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
5323 { context_enterSwitch (yyvsp[0].expr); ;
5326 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
5329 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
5332 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
5335 { context_enterIterClause (); ;
5338 { setProcessingIterVars (yyvsp[-3].entry); ;
5342 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry);
5347 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
5350 { nextIterParam (); ;
5353 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
5356 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
5359 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
5362 { uentry ue = cscannerHelp_coerceIterId (yyvsp[0].cname);
5364 if (uentry_isValid (ue))
5366 yyval.expr = exprNode_iterId (ue);
5370 yyval.expr = exprNode_iterNewId (cstring_copy (cscannerHelp_observeLastIdentifier ()));
5375 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
5378 { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
5381 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
5384 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
5387 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
5390 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
5393 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
5396 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
5399 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
5402 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5405 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
5408 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5411 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5414 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5417 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5420 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5423 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5426 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5429 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
5432 { yyval.expr = yyvsp[0].expr; ;
5435 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
5438 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5441 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5444 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5447 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5450 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5453 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5456 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5459 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5462 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5465 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5468 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5471 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5474 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5477 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5480 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5483 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5486 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5489 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5492 { context_enterTrueClause (yyvsp[-1].expr); ;
5495 { context_enterFalseClause (yyvsp[-3].expr); ;
5498 { yyval.expr = exprNode_condIfOmit (yyvsp[-5].expr, yyvsp[0].expr); ;
5501 { context_enterTrueClause (yyvsp[-1].expr); ;
5504 { context_enterFalseClause (yyvsp[-4].expr); ;
5507 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5510 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5513 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5516 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5519 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5522 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5525 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5528 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5531 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5534 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5537 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5540 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5543 { yyval.entry = yyvsp[0].entry; ;
5546 { yyval.entry = uentry_undefined; ;
5549 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5552 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5555 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5558 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5561 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5564 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5567 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5570 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5573 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5576 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5579 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5582 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5585 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5588 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5591 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5594 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5597 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5600 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5609 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5612 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5615 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5618 { yyval.cname = yyvsp[0].cname; ;
5621 { yyval.ctyp = ctype_unknown; ;
5624 { yyval.ctyp = exprNode_getType (yyvsp[-1].expr); exprNode_free (yyvsp[-1].expr); ;
5627 { yyval.ctyp = qtype_getType (yyvsp[-1].qtyp); ;
5642 short *yyssp1 = yyss - 1;
5643 YYFPRINTF (stderr, "state stack now");
5644 while (yyssp1 != yyssp)
5645 YYFPRINTF (stderr, " %d", *++yyssp1);
5646 YYFPRINTF (stderr, "\n");
5655 /* Now `shift' the result of the reduction. Determine what state
5656 that goes to, based on the state we popped back to and the rule
5657 number reduced by. */
5661 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5662 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5663 yystate = yytable[yystate];
5665 yystate = yydefgoto[yyn - YYNTBASE];
5670 /*------------------------------------.
5671 | yyerrlab -- here on detecting error |
5672 `------------------------------------*/
5674 /* If not already recovering from an error, report this error. */
5679 #ifdef YYERROR_VERBOSE
5680 yyn = yypact[yystate];
5682 if (yyn > YYFLAG && yyn < YYLAST)
5684 YYSIZE_T yysize = 0;
5689 /* Start YYX at -YYN if negative to avoid negative indexes in
5691 for (yyx = yyn < 0 ? -yyn : 0;
5692 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
5693 if (yycheck[yyx + yyn] == yyx)
5694 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
5695 yysize += yystrlen ("parse error, unexpected ") + 1;
5696 yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
5697 yymsg = (char *) YYSTACK_ALLOC (yysize);
5700 char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
5701 yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
5706 for (yyx = yyn < 0 ? -yyn : 0;
5707 yyx < (int) (sizeof (yytname) / sizeof (char *));
5709 if (yycheck[yyx + yyn] == yyx)
5711 const char *yyq = ! yycount ? ", expecting " : " or ";
5712 yyp = yystpcpy (yyp, yyq);
5713 yyp = yystpcpy (yyp, yytname[yyx]);
5718 YYSTACK_FREE (yymsg);
5721 yyerror ("parse error; also virtual memory exhausted");
5724 #endif /* defined (YYERROR_VERBOSE) */
5725 yyerror ("parse error");
5730 /*--------------------------------------------------.
5731 | yyerrlab1 -- error raised explicitly by an action |
5732 `--------------------------------------------------*/
5734 if (yyerrstatus == 3)
5736 /* If just tried and failed to reuse lookahead token after an
5737 error, discard it. */
5739 /* return failure if at end of input */
5740 if (yychar == YYEOF)
5742 YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
5743 yychar, yytname[yychar1]));
5747 /* Else will try to reuse lookahead token after shifting the error
5750 yyerrstatus = 3; /* Each real token shifted decrements this */
5755 /*-------------------------------------------------------------------.
5756 | yyerrdefault -- current state does not do anything special for the |
5758 `-------------------------------------------------------------------*/
5761 /* This is wrong; only states that explicitly want error tokens
5762 should shift them. */
5764 /* If its default is to accept any token, ok. Otherwise pop it. */
5765 yyn = yydefact[yystate];
5771 /*---------------------------------------------------------------.
5772 | yyerrpop -- pop the current state because it cannot handle the |
5774 `---------------------------------------------------------------*/
5787 short *yyssp1 = yyss - 1;
5788 YYFPRINTF (stderr, "Error: state stack now");
5789 while (yyssp1 != yyssp)
5790 YYFPRINTF (stderr, " %d", *++yyssp1);
5791 YYFPRINTF (stderr, "\n");
5799 yyn = yypact[yystate];
5804 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5821 YYDPRINTF ((stderr, "Shifting error token, "));
5832 /*-------------------------------------.
5833 | yyacceptlab -- YYACCEPT comes here. |
5834 `-------------------------------------*/
5839 /*-----------------------------------.
5840 | yyabortlab -- YYABORT comes here. |
5841 `-----------------------------------*/
5846 /*---------------------------------------------.
5847 | yyoverflowab -- parser overflow comes here. |
5848 `---------------------------------------------*/
5850 yyerror ("parser stack overflow");
5857 YYSTACK_FREE (yyss);
5863 /*@-redecl@*/ /*@-namechecks@*/
5864 extern char *yytext;
5865 /*@=redecl@*/ /*@=namechecks@*/
5867 # include "bison.reset"
5869 void yyerror (/*@unused@*/ char *s)
5871 static bool givehint = FALSE;
5873 if (context_inIterDef ())
5875 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5876 context_inFunctionName ()));
5878 else if (context_inIterEnd ())
5880 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5881 context_inFunctionName ()));
5883 else if (context_inMacro ())
5885 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5886 context_inFunctionName ()));
5888 if (context_inUnknownMacro ())
5892 llhint (cstring_makeLiteral
5893 ("Precede macro definition with /*@notfunction@*/ "
5894 "to suppress checking and force expansion"));
5899 cscannerHelp_swallowMacro ();
5900 context_exitAllClausesQuiet ();
5904 llparseerror (cstring_undefined);
5920 ** Resets all flags in bison.head
5942 /*@=evalorderuncon@*/
5951 /*@=elseifcomplete@*/
5955 /*@=readonlytrans@*/
5958 /*@=systemunrecog@*/
5959 /*@=dependenttrans@*/
5960 /*@=unqualifiedtrans@*/
5964 /*drl added 11/27/2001*/
5967 /*drl added 12/11/2002*/