]> andersk Git - splint.git/blame - src/cgrammar.c.der
*** empty log message ***
[splint.git] / src / cgrammar.c.der
CommitLineData
885824d3 1/*
2** Inserted at beginning of c files generated by bison
3** REMEMBER: Change bison.reset too.
4*/
5
6/*@-allmacros@*/
7/*@+boolint@*/
8/*@+charint@*/
9/*@-macroparams@*/
10/*@-macroundef@*/
11/*@-unreachable@*/
12/*@-macrospec@*/
13/*@-varuse@*/
14/*@+ignorequals@*/
15/*@-macrostmt@*/
16/*@-noeffect@*/
17/*@-shadow@*/
18/*@-exitarg@*/
19/*@-macroredef@*/
20/*@-uniondef@*/
21/*@-compdef@*/
22/*@-matchfields@*/
23/*@-exportlocal@*/
24/*@-evalorderuncon@*/
25/*@-exportheader@*/
26/*@-typeuse@*/
27/*@-redecl@*/
28/*@-redef@*/
29/*@-noparams@*/
30/*@-ansireserved@*/
31/*@-fielduse@*/
32/*@-ifblock@*/
33/*@-elseifcomplete@*/
34/*@-whileblock@*/
35/*@-forblock@*/
36/*@-branchstate@*/
37/*@-readonlytrans@*/
38/*@-namechecks@*/
39/*@-usedef@*/
40/*@-systemunrecog@*/
41/*@-dependenttrans@*/
42/*@-unqualifiedtrans@*/
43/*@-nullassign@*/
2e127cb8 44/*@-nullpass@*/
45/*@-nullptrarith*/
46/*@-usereleased@*/
c05aefaa 47/*@-declundef@*/
885824d3 48
c05aefaa 49/*drl added 11/27/2001*/
bb7c2085 50/*@-bounds@*/
885824d3 51/* < end of bison.head > */
52
53
e55c0c6d 54/* A Bison parser, made from cgrammar.y
55 by GNU bison 1.30. */
885824d3 56
57#define YYBISON 1 /* Identify Bison output. */
58
e55c0c6d 59# define BADTOK 257
60# define SKIPTOK 258
61# define CTOK_ELIPSIS 259
62# define CASE 260
63# define DEFAULT 261
64# define CIF 262
65# define CELSE 263
66# define SWITCH 264
67# define WHILE 265
68# define DO 266
69# define CFOR 267
70# define GOTO 268
71# define CONTINUE 269
72# define BREAK 270
73# define RETURN 271
74# define TSEMI 272
75# define TLBRACE 273
76# define TRBRACE 274
77# define TCOMMA 275
78# define TCOLON 276
79# define TASSIGN 277
80# define TLPAREN 278
81# define TRPAREN 279
82# define TLSQBR 280
83# define TRSQBR 281
84# define TDOT 282
85# define TAMPERSAND 283
86# define TEXCL 284
87# define TTILDE 285
88# define TMINUS 286
89# define TPLUS 287
90# define TMULT 288
91# define TDIV 289
92# define TPERCENT 290
93# define TLT 291
94# define TGT 292
95# define TCIRC 293
96# define TBAR 294
97# define TQUEST 295
98# define CSIZEOF 296
99# define CALIGNOF 297
100# define ARROW_OP 298
101# define CTYPEDEF 299
102# define COFFSETOF 300
103# define INC_OP 301
104# define DEC_OP 302
105# define LEFT_OP 303
106# define RIGHT_OP 304
107# define LE_OP 305
108# define GE_OP 306
109# define EQ_OP 307
110# define NE_OP 308
111# define AND_OP 309
112# define OR_OP 310
113# define MUL_ASSIGN 311
114# define DIV_ASSIGN 312
115# define MOD_ASSIGN 313
116# define ADD_ASSIGN 314
117# define SUB_ASSIGN 315
118# define LEFT_ASSIGN 316
119# define RIGHT_ASSIGN 317
120# define AND_ASSIGN 318
121# define XOR_ASSIGN 319
122# define OR_ASSIGN 320
123# define CSTRUCT 321
124# define CUNION 322
125# define CENUM 323
126# define VA_ARG 324
127# define VA_DCL 325
128# define QWARN 326
129# define QGLOBALS 327
130# define QMODIFIES 328
131# define QNOMODS 329
132# define QCONSTANT 330
133# define QFUNCTION 331
134# define QITER 332
135# define QDEFINES 333
136# define QUSES 334
137# define QALLOCATES 335
138# define QSETS 336
139# define QRELEASES 337
140# define QPRECLAUSE 338
141# define QPOSTCLAUSE 339
142# define QINVARIANT 340
143# define QALT 341
144# define QUNDEF 342
145# define QKILLED 343
146# define QENDMACRO 344
147# define LLMACRO 345
148# define LLMACROITER 346
149# define LLMACROEND 347
150# define TENDMACRO 348
151# define QSWITCHBREAK 349
152# define QLOOPBREAK 350
153# define QINNERBREAK 351
154# define QSAFEBREAK 352
155# define QINNERCONTINUE 353
156# define QFALLTHROUGH 354
157# define QLINTNOTREACHED 355
158# define QLINTFALLTHROUGH 356
159# define QLINTFALLTHRU 357
160# define QARGSUSED 358
161# define QPRINTFLIKE 359
162# define QLINTPRINTFLIKE 360
163# define QSCANFLIKE 361
164# define QMESSAGELIKE 362
165# define QNOTREACHED 363
166# define QCONST 364
167# define QVOLATILE 365
168# define QINLINE 366
169# define QEXTENSION 367
170# define QEXTERN 368
171# define QSTATIC 369
172# define QAUTO 370
173# define QREGISTER 371
174# define QOUT 372
175# define QIN 373
176# define QYIELD 374
177# define QONLY 375
178# define QTEMP 376
179# define QSHARED 377
180# define QREF 378
181# define QUNIQUE 379
182# define QCHECKED 380
183# define QUNCHECKED 381
184# define QCHECKEDSTRICT 382
185# define QCHECKMOD 383
186# define QKEEP 384
187# define QKEPT 385
188# define QPARTIAL 386
189# define QSPECIAL 387
190# define QOWNED 388
191# define QDEPENDENT 389
192# define QRETURNED 390
193# define QEXPOSED 391
194# define QNULL 392
195# define QOBSERVER 393
196# define QISNULL 394
197# define QEXITS 395
198# define QMAYEXIT 396
199# define QNEVEREXIT 397
200# define QTRUEEXIT 398
201# define QFALSEEXIT 399
202# define QLONG 400
203# define QSIGNED 401
204# define QUNSIGNED 402
205# define QSHORT 403
206# define QUNUSED 404
207# define QSEF 405
208# define QNOTNULL 406
209# define QRELNULL 407
210# define QABSTRACT 408
211# define QCONCRETE 409
212# define QMUTABLE 410
213# define QIMMUTABLE 411
214# define QTRUENULL 412
215# define QFALSENULL 413
216# define QEXTERNAL 414
217# define QREFCOUNTED 415
218# define QREFS 416
219# define QNEWREF 417
220# define QTEMPREF 418
221# define QKILLREF 419
222# define QRELDEF 420
223# define CGCHAR 421
224# define CBOOL 422
225# define CINT 423
226# define CGFLOAT 424
227# define CDOUBLE 425
228# define CVOID 426
229# define QANYTYPE 427
230# define QINTEGRALTYPE 428
231# define QUNSIGNEDINTEGRALTYPE 429
232# define QSIGNEDINTEGRALTYPE 430
233# define QNULLTERMINATED 431
234# define QSETBUFFERSIZE 432
235# define QSETSTRINGLENGTH 433
236# define QMAXSET 434
237# define QMAXREAD 435
238# define QTESTINRANGE 436
239# define TCAND 437
240# define IDENTIFIER 438
241# define NEW_IDENTIFIER 439
242# define TYPE_NAME_OR_ID 440
243# define CANNOTATION 441
244# define CCONSTANT 442
245# define ITER_NAME 443
246# define ITER_ENDNAME 444
247# define TYPE_NAME 445
248# define METASTATE_NAME 446
885824d3 249
885824d3 250
251/*
252**
253** cgrammar.y
254**
1b8ae690 255** Yacc/Bison grammar for extended ANSI C used by Splint.
885824d3 256**
257** original grammar by Nate Osgood ---
258** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
259**
1b8ae690 260** changes for Splint --- handle typedef names correctly
885824d3 261** fix struct/union parsing bug (empty struct is accepted)
262** add productions to handle macros --- require
263** error correction --- main source of conflicts in grammar.
264** need to process initializations sequentially, L->R
265**
266** production names are cryptic, so more productions fit on one line
267**
268** conflicts: 87 shift/reduce, 18 reduce/reduce
269** most of these are due to handling macros
270** a few are due to handling type expressions
271*/
272
273/*@=allmacros@*/
274
275extern int yylex ();
276extern void swallowMacro (void);
c05aefaa 277extern void yyerror (char *);
885824d3 278
1b8ae690 279# include "splintMacros.nf"
885824d3 280# include "basic.h"
c05aefaa 281# include "cscanner.h"
885824d3 282# include "cgrammar.h"
283# include "exprChecks.h"
284
285/*@-allmacros@*/
286/*@-matchfields@*/
287
288# define SHOWCSYM FALSE
885824d3 289
c05aefaa 290/*
291** This is necessary, or else when the bison-generated code #include's malloc.h,
292** there will be a parse error.
293**
294** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
295** in bison-generated files under Win32.
296*/
297
298# ifdef WIN32
299# undef malloc
300# undef calloc
301# undef realloc
302# endif
303
304
885824d3 305typedef union
306{
c05aefaa 307 lltok tok;
308 int count;
309 qual typequal;
310 qualList tquallist;
311 ctype ctyp;
312 /*@dependent@*/ sRef sr;
313 /*@only@*/ sRef osr;
314
315 /*@only@*/ functionClauseList funcclauselist;
316 /*@only@*/ functionClause funcclause;
317 /*@only@*/ flagSpec flagspec;
318 /*@only@*/ globalsClause globsclause;
319 /*@only@*/ modifiesClause modsclause;
320 /*@only@*/ warnClause warnclause;
321 /*@only@*/ stateClause stateclause;
322
323 /*@only@*/ functionConstraint fcnconstraint;
324
325 /*@only@*/ metaStateConstraint msconstraint;
326 /*@only@*/ metaStateSpecifier msspec;
327 /*@only@*/ metaStateExpression msexpr;
328 /*@observer@*/ metaStateInfo msinfo;
329
330 /*@only@*/ sRefList srlist;
331 /*@only@*/ globSet globset;
332 /*@only@*/ qtype qtyp;
333 /*@only@*/ cstring cname;
334 /*@observer@*/ annotationInfo annotation;
335 /*@only@*/ idDecl ntyp;
336 /*@only@*/ idDeclList ntyplist;
337 /*@only@*/ uentryList flist;
338 /*@owned@*/ uentryList entrylist;
339 /*@observer@*/ /*@dependent@*/ uentry entry;
340 /*@only@*/ uentry oentry;
341 /*@only@*/ exprNode expr;
342 /*@only@*/ enumNameList enumnamelist;
343 /*@only@*/ exprNodeList exprlist;
344 /*@only@*/ sRefSet srset;
345 /*@only@*/ cstringList cstringlist;
346
347 /*drl
348 added 1/19/2001
349 */
350 constraint con;
351 constraintList conL;
352 constraintExpr conE;
353 /* drl */
885824d3 354} YYSTYPE;
355#ifndef YYDEBUG
e55c0c6d 356# define YYDEBUG 1
885824d3 357#endif
358
359#include <stdio.h>
360
885824d3 361
362
86d93ed3 363#define YYFINAL 1196
885824d3 364#define YYFLAG -32768
86d93ed3 365#define YYNTBASE 193
885824d3 366
e55c0c6d 367/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
86d93ed3 368#define YYTRANSLATE(x) ((unsigned)(x) <= 446 ? yytranslate[x] : 451)
885824d3 369
e55c0c6d 370/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
371static const short yytranslate[] =
372{
373 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
374 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
375 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
376 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
377 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
378 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
379 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
380 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
381 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
382 2, 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, 1, 3, 4, 5,
399 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
400 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
401 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
402 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
403 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
404 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
405 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
406 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
407 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
408 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
409 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
410 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
411 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
412 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
413 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
414 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
415 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
416 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
417 186, 187, 188, 189, 190, 191, 192
885824d3 418};
419
420#if YYDEBUG != 0
e55c0c6d 421static const short yyprhs[] =
422{
423 0, 0, 1, 3, 5, 8, 11, 13, 15, 17,
424 19, 21, 23, 32, 44, 45, 51, 53, 57, 59,
425 62, 64, 71, 75, 82, 83, 90, 91, 99, 101,
426 108, 112, 119, 120, 127, 128, 136, 137, 138, 149,
427 153, 157, 161, 164, 166, 170, 171, 176, 177, 182,
428 184, 188, 190, 192, 194, 198, 200, 204, 206, 208,
429 210, 212, 214, 216, 221, 227, 229, 231, 233, 235,
430 239, 244, 247, 251, 255, 259, 261, 263, 265, 266,
431 269, 270, 273, 275, 277, 279, 281, 283, 285, 287,
432 289, 291, 293, 295, 297, 300, 301, 306, 308, 311,
433 312, 316, 318, 322, 324, 326, 327, 330, 334, 337,
434 339, 343, 346, 347, 350, 352, 354, 356, 358, 360,
435 362, 364, 366, 368, 370, 372, 374, 376, 378, 380,
436 382, 386, 387, 391, 392, 393, 398, 401, 404, 406,
437 408, 410, 414, 419, 422, 426, 430, 434, 436, 438,
438 440, 444, 446, 448, 452, 457, 460, 464, 468, 472,
439 473, 475, 477, 481, 483, 485, 487, 491, 493, 495,
440 497, 502, 506, 511, 518, 524, 530, 533, 536, 538,
441 542, 544, 547, 550, 553, 556, 559, 562, 565, 568,
442 570, 572, 576, 578, 588, 589, 593, 598, 601, 606,
443 609, 611, 616, 618, 622, 626, 630, 632, 636, 640,
444 642, 646, 650, 652, 656, 660, 664, 668, 670, 674,
445 678, 680, 684, 686, 690, 692, 696, 698, 699, 704,
446 706, 707, 712, 714, 715, 716, 724, 726, 730, 734,
447 738, 742, 746, 750, 754, 758, 762, 766, 770, 772,
448 776, 777, 779, 781, 783, 785, 787, 791, 792, 802,
449 803, 815, 818, 819, 826, 827, 836, 841, 846, 847,
450 848, 851, 853, 858, 859, 864, 866, 870, 875, 877,
451 881, 883, 885, 887, 889, 891, 894, 895, 902, 905,
452 908, 909, 916, 917, 923, 925, 927, 929, 931, 933,
453 935, 937, 939, 941, 943, 945, 947, 949, 951, 953,
454 955, 957, 959, 961, 963, 965, 967, 969, 971, 973,
455 975, 977, 979, 981, 983, 985, 987, 989, 991, 993,
456 995, 997, 999, 1001, 1003, 1005, 1007, 1009, 1011, 1013,
457 1015, 1017, 1019, 1021, 1023, 1025, 1027, 1030, 1033, 1036,
458 1039, 1042, 1045, 1048, 1051, 1054, 1057, 1060, 1063, 1066,
459 1069, 1072, 1075, 1078, 1081, 1084, 1087, 1090, 1093, 1096,
460 1099, 1102, 1106, 1108, 1113, 1115, 1119, 1122, 1125, 1128,
461 1129, 1131, 1132, 1133, 1134, 1147, 1148, 1149, 1161, 1168,
462 1175, 1176, 1177, 1188, 1189, 1190, 1201, 1207, 1213, 1218,
463 1223, 1224, 1226, 1228, 1231, 1237, 1241, 1244, 1249, 1251,
464 1255, 1260, 1267, 1268, 1277, 1282, 1284, 1288, 1291, 1293,
465 1298, 1300, 1302, 1305, 1308, 1310, 1313, 1315, 1318, 1320,
466 1322, 1324, 1327, 1329, 1332, 1335, 1339, 1341, 1345, 1347,
467 1351, 1353, 1355, 1359, 1360, 1363, 1364, 1369, 1374, 1376,
468 1378, 1381, 1383, 1385, 1388, 1389, 1391, 1397, 1400, 1404,
469 1408, 1413, 1417, 1422, 1427, 1433, 1435, 1437, 1439, 1441,
470 1443, 1445, 1447, 1449, 1451, 1453, 1455, 1457, 1460, 1463,
471 1471, 1478, 1481, 1482, 1483, 1494, 1495, 1502, 1504, 1506,
472 1508, 1510, 1513, 1515, 1517, 1519, 1521, 1523, 1525, 1527,
473 1531, 1533, 1534, 1538, 1541, 1544, 1546, 1548, 1550, 1552,
474 1554, 1556, 1558, 1560, 1562, 1564, 1568, 1570, 1572, 1575,
475 1578, 1579, 1582, 1583, 1588, 1589, 1596, 1597, 1601, 1602,
476 1608, 1612, 1615, 1619, 1620, 1621, 1622, 1623, 1624, 1626,
477 1629, 1632, 1636, 1639, 1643, 1647, 1652, 1655, 1658, 1662,
478 1666, 1671, 1673, 1676, 1678, 1681, 1683, 1686, 1688, 1691,
479 1693, 1696, 1698, 1703, 1706, 1707, 1713, 1714, 1721, 1726,
480 1731, 1732, 1733, 1744, 1746, 1747, 1752, 1754, 1756, 1758,
481 1760, 1762, 1765, 1767, 1771, 1773, 1778, 1782, 1787, 1794,
482 1800, 1806, 1809, 1812, 1814, 1817, 1820, 1823, 1826, 1829,
483 1832, 1835, 1838, 1840, 1842, 1847, 1849, 1853, 1857, 1861,
484 1863, 1867, 1871, 1873, 1877, 1881, 1883, 1887, 1891, 1895,
485 1899, 1901, 1905, 1909, 1911, 1915, 1917, 1921, 1923, 1927,
486 1929, 1933, 1935, 1939, 1941, 1942, 1943, 1951, 1953, 1957,
487 1961, 1965, 1969, 1973, 1977, 1981, 1985, 1989, 1993, 1997,
488 1999, 2000, 2002, 2005, 2013, 2016, 2019, 2027, 2034, 2037,
489 2041, 2044, 2048, 2051, 2055, 2059, 2063, 2067, 2070, 2074,
490 2075, 2077, 2079, 2081, 2083, 2085, 2087, 2089, 2091
885824d3 491};
e55c0c6d 492static const short yyrhs[] =
493{
494 -1, 194, 0, 195, 0, 194, 195, 0, 256, 447,
495 0, 196, 0, 197, 0, 207, 0, 210, 0, 293,
496 0, 1, 0, 76, 331, 345, 355, 345, 447, 301,
497 90, 0, 76, 331, 345, 355, 345, 23, 301, 306,
498 305, 447, 90, 0, 0, 77, 198, 199, 447, 90,
499 0, 200, 0, 331, 345, 200, 0, 204, 0, 359,
500 204, 0, 449, 0, 301, 24, 345, 355, 301, 25,
501 0, 201, 26, 27, 0, 201, 26, 301, 292, 27,
502 345, 0, 0, 201, 302, 24, 25, 202, 228, 0,
503 0, 201, 302, 24, 356, 25, 203, 228, 0, 449,
504 0, 301, 24, 345, 200, 301, 25, 0, 204, 26,
505 27, 0, 204, 26, 301, 292, 27, 345, 0, 0,
506 204, 302, 24, 25, 205, 229, 0, 0, 204, 302,
507 24, 356, 25, 206, 229, 0, 0, 0, 78, 449,
508 24, 356, 25, 208, 229, 209, 447, 90, 0, 91,
509 386, 94, 0, 92, 372, 94, 0, 93, 373, 94,
510 0, 91, 94, 0, 251, 0, 213, 23, 216, 0,
511 0, 225, 214, 22, 217, 0, 0, 5, 215, 22,
512 217, 0, 213, 0, 213, 40, 216, 0, 192, 0,
513 183, 0, 55, 0, 220, 218, 219, 0, 220, 0,
514 223, 222, 223, 0, 180, 0, 181, 0, 52, 0,
515 51, 0, 53, 0, 224, 0, 226, 24, 223, 25,
516 0, 24, 223, 227, 223, 25, 0, 225, 0, 188,
517 0, 448, 0, 185, 0, 225, 26, 27, 0, 225,
518 26, 188, 27, 0, 34, 225, 0, 24, 225, 25,
519 0, 225, 28, 449, 0, 225, 44, 449, 0, 221,
520 0, 33, 0, 32, 0, 0, 230, 228, 0, 0,
521 231, 229, 0, 232, 0, 236, 0, 235, 0, 309,
522 0, 312, 0, 242, 0, 233, 0, 237, 0, 235,
523 0, 310, 0, 314, 0, 243, 0, 233, 90, 0,
524 0, 73, 234, 244, 447, 0, 75, 0, 237, 90,
525 0, 0, 74, 238, 257, 0, 240, 0, 240, 40,
526 239, 0, 185, 0, 242, 0, 0, 243, 90, 0,
527 72, 239, 423, 0, 72, 239, 0, 245, 0, 244,
528 21, 245, 0, 246, 247, 0, 0, 248, 246, 0,
529 448, 0, 185, 0, 293, 0, 88, 0, 89, 0,
530 118, 0, 119, 0, 132, 0, 79, 0, 80, 0,
531 81, 0, 82, 0, 83, 0, 84, 0, 85, 0,
532 355, 0, 331, 345, 355, 0, 0, 19, 253, 403,
533 0, 0, 0, 254, 407, 255, 396, 0, 211, 252,
534 0, 260, 447, 0, 447, 0, 448, 0, 185, 0,
535 258, 26, 27, 0, 258, 26, 259, 27, 0, 34,
536 258, 0, 24, 258, 25, 0, 258, 28, 449, 0,
537 258, 44, 449, 0, 258, 0, 423, 0, 258, 0,
538 260, 21, 258, 0, 448, 0, 185, 0, 261, 26,
539 27, 0, 261, 26, 259, 27, 0, 34, 261, 0,
540 24, 261, 25, 0, 261, 28, 449, 0, 261, 44,
541 449, 0, 0, 263, 0, 261, 0, 263, 21, 261,
542 0, 448, 0, 185, 0, 423, 0, 24, 290, 25,
543 0, 186, 0, 113, 0, 264, 0, 265, 26, 290,
544 27, 0, 265, 24, 25, 0, 265, 24, 266, 25,
545 0, 70, 24, 289, 21, 367, 25, 0, 265, 345,
546 28, 449, 301, 0, 265, 345, 44, 449, 301, 0,
547 265, 47, 0, 265, 48, 0, 289, 0, 266, 21,
548 289, 0, 265, 0, 47, 267, 0, 48, 267, 0,
549 29, 273, 0, 34, 273, 0, 33, 273, 0, 32,
550 273, 0, 31, 273, 0, 30, 273, 0, 270, 0,
551 269, 0, 268, 28, 449, 0, 449, 0, 46, 301,
552 24, 367, 345, 21, 268, 25, 301, 0, 0, 301,
553 271, 272, 0, 42, 24, 367, 25, 0, 42, 267,
554 0, 43, 24, 367, 25, 0, 43, 267, 0, 267,
555 0, 24, 367, 25, 273, 0, 273, 0, 274, 34,
556 273, 0, 274, 35, 273, 0, 274, 36, 273, 0,
557 274, 0, 275, 33, 274, 0, 275, 32, 274, 0,
558 275, 0, 276, 49, 275, 0, 276, 50, 275, 0,
559 276, 0, 277, 37, 276, 0, 277, 38, 276, 0,
560 277, 51, 276, 0, 277, 52, 276, 0, 277, 0,
561 278, 53, 277, 0, 278, 54, 277, 0, 278, 0,
562 279, 29, 278, 0, 279, 0, 280, 39, 279, 0,
563 280, 0, 281, 40, 280, 0, 281, 0, 0, 282,
564 55, 283, 281, 0, 282, 0, 0, 284, 56, 285,
565 282, 0, 284, 0, 0, 0, 284, 41, 287, 290,
566 22, 288, 286, 0, 286, 0, 267, 23, 289, 0,
567 267, 57, 289, 0, 267, 58, 289, 0, 267, 59,
568 289, 0, 267, 60, 289, 0, 267, 61, 289, 0,
569 267, 62, 289, 0, 267, 63, 289, 0, 267, 64,
570 289, 0, 267, 65, 289, 0, 267, 66, 289, 0,
571 289, 0, 290, 21, 289, 0, 0, 290, 0, 286,
572 0, 294, 0, 71, 0, 299, 0, 331, 301, 18,
573 0, 0, 331, 345, 355, 345, 295, 301, 305, 18,
574 301, 0, 0, 331, 345, 355, 345, 23, 296, 301,
575 306, 305, 18, 301, 0, 355, 345, 0, 0, 355,
576 345, 23, 298, 301, 306, 0, 0, 45, 331, 300,
577 345, 303, 301, 241, 18, 0, 45, 331, 301, 18,
578 0, 45, 303, 301, 18, 0, 0, 0, 304, 301,
579 0, 297, 0, 303, 21, 345, 297, 0, 0, 305,
580 21, 345, 297, 0, 289, 0, 19, 307, 20, 0,
581 19, 307, 21, 20, 0, 306, 0, 307, 21, 306,
582 0, 114, 0, 112, 0, 115, 0, 116, 0, 117,
583 0, 310, 90, 0, 0, 249, 345, 311, 263, 447,
584 301, 0, 314, 90, 0, 250, 345, 0, 0, 313,
585 320, 315, 262, 447, 301, 0, 0, 313, 316, 317,
586 447, 301, 0, 219, 0, 212, 0, 141, 0, 142,
587 0, 144, 0, 145, 0, 143, 0, 126, 0, 129,
588 0, 127, 0, 128, 0, 134, 0, 135, 0, 120,
589 0, 122, 0, 121, 0, 130, 0, 131, 0, 123,
590 0, 125, 0, 138, 0, 140, 0, 153, 0, 152,
591 0, 137, 0, 139, 0, 177, 0, 187, 0, 136,
592 0, 151, 0, 150, 0, 160, 0, 158, 0, 159,
593 0, 154, 0, 155, 0, 156, 0, 157, 0, 161,
594 0, 162, 0, 165, 0, 166, 0, 163, 0, 164,
595 0, 149, 0, 146, 0, 147, 0, 148, 0, 118,
596 0, 119, 0, 132, 0, 133, 0, 110, 301, 0,
597 111, 301, 0, 327, 301, 0, 320, 301, 0, 318,
598 301, 0, 321, 301, 0, 319, 301, 0, 323, 301,
599 0, 322, 301, 0, 324, 301, 0, 325, 301, 0,
600 167, 345, 0, 169, 345, 0, 168, 345, 0, 170,
601 345, 0, 171, 345, 0, 172, 345, 0, 173, 345,
602 0, 174, 345, 0, 175, 345, 0, 176, 345, 0,
603 450, 345, 0, 336, 345, 0, 350, 345, 0, 326,
604 345, 0, 301, 331, 301, 0, 333, 0, 333, 87,
605 332, 90, 0, 367, 0, 367, 21, 332, 0, 308,
606 334, 0, 328, 334, 0, 329, 334, 0, 0, 331,
607 0, 0, 0, 0, 345, 67, 449, 301, 19, 337,
608 400, 346, 401, 338, 20, 335, 0, 0, 0, 345,
609 68, 449, 301, 19, 339, 400, 346, 401, 340, 20,
610 0, 345, 67, 449, 301, 19, 20, 0, 345, 68,
611 449, 301, 19, 20, 0, 0, 0, 345, 67, 301,
612 19, 341, 400, 346, 401, 342, 20, 0, 0, 0,
613 345, 68, 301, 19, 343, 400, 346, 401, 344, 20,
614 0, 345, 67, 301, 19, 20, 0, 345, 68, 301,
615 19, 20, 0, 345, 67, 449, 345, 0, 345, 68,
616 449, 345, 0, 0, 347, 0, 210, 0, 346, 347,
617 0, 331, 345, 348, 301, 18, 0, 331, 301, 18,
618 0, 349, 345, 0, 348, 21, 349, 345, 0, 355,
619 0, 22, 301, 292, 0, 355, 22, 301, 292, 0,
620 345, 69, 19, 352, 20, 301, 0, 0, 345, 69,
621 449, 19, 351, 352, 20, 301, 0, 345, 69, 449,
622 301, 0, 353, 0, 352, 21, 353, 0, 352, 21,
623 0, 449, 0, 449, 23, 301, 292, 0, 201, 0,
624 369, 0, 359, 191, 0, 359, 354, 0, 201, 0,
625 359, 201, 0, 362, 0, 345, 360, 0, 110, 0,
626 111, 0, 357, 0, 358, 357, 0, 34, 0, 34,
627 358, 0, 34, 359, 0, 34, 358, 359, 0, 361,
628 0, 361, 21, 5, 0, 449, 0, 361, 21, 449,
629 0, 5, 0, 363, 0, 363, 21, 5, 0, 0,
630 364, 366, 0, 0, 363, 21, 365, 366, 0, 301,
631 331, 354, 301, 0, 449, 0, 330, 0, 330, 368,
632 0, 359, 0, 370, 0, 359, 370, 0, 0, 370,
633 0, 301, 24, 345, 368, 25, 0, 26, 27, 0,
634 26, 292, 27, 0, 370, 26, 27, 0, 370, 26,
635 292, 27, 0, 301, 24, 25, 0, 301, 24, 362,
636 25, 0, 370, 301, 24, 25, 0, 370, 301, 24,
637 362, 25, 0, 388, 0, 390, 0, 393, 0, 396,
638 0, 409, 0, 412, 0, 444, 0, 417, 0, 446,
639 0, 374, 0, 372, 0, 381, 0, 374, 381, 0,
640 416, 374, 0, 443, 387, 11, 24, 290, 25, 18,
641 0, 443, 387, 11, 24, 290, 25, 0, 376, 381,
642 0, 0, 0, 13, 24, 291, 18, 291, 18, 377,
643 291, 378, 25, 0, 0, 189, 398, 24, 380, 420,
644 25, 0, 190, 0, 388, 0, 390, 0, 393, 0,
645 384, 407, 0, 384, 0, 385, 0, 409, 0, 382,
646 0, 375, 0, 379, 0, 446, 0, 24, 381, 25,
647 0, 1, 0, 0, 411, 383, 381, 0, 398, 19,
648 0, 402, 20, 0, 387, 0, 406, 0, 388, 0,
649 390, 0, 393, 0, 397, 0, 410, 0, 412, 0,
650 417, 0, 445, 0, 24, 387, 25, 0, 446, 0,
651 1, 0, 449, 22, 0, 109, 371, 0, 0, 100,
652 389, 0, 0, 6, 292, 391, 22, 0, 0, 100,
653 389, 6, 292, 392, 22, 0, 0, 7, 394, 22,
654 0, 0, 100, 389, 7, 395, 22, 0, 24, 396,
655 25, 0, 398, 404, 0, 398, 405, 399, 0, 0,
656 0, 0, 0, 0, 20, 0, 109, 20, 0, 408,
657 20, 0, 408, 109, 20, 0, 407, 20, 0, 407,
658 109, 20, 0, 407, 408, 20, 0, 407, 408, 109,
659 20, 0, 19, 403, 0, 19, 20, 0, 19, 406,
660 20, 0, 19, 407, 20, 0, 19, 407, 408, 20,
661 0, 387, 0, 406, 387, 0, 293, 0, 407, 293,
662 0, 371, 0, 408, 371, 0, 18, 0, 290, 18,
663 0, 18, 0, 290, 18, 0, 290, 0, 8, 24,
664 290, 25, 0, 411, 371, 0, 0, 411, 371, 9,
665 413, 371, 0, 0, 10, 24, 290, 414, 25, 371,
666 0, 11, 24, 290, 25, 0, 11, 24, 290, 25,
667 0, 0, 0, 189, 418, 398, 24, 419, 420, 25,
668 396, 442, 399, 0, 422, 0, 0, 420, 421, 21,
669 422, 0, 441, 0, 448, 0, 186, 0, 185, 0,
670 188, 0, 423, 188, 0, 423, 0, 24, 290, 25,
671 0, 424, 0, 265, 26, 290, 27, 0, 265, 24,
672 25, 0, 265, 24, 266, 25, 0, 70, 24, 289,
673 21, 367, 25, 0, 265, 345, 28, 449, 301, 0,
674 265, 345, 44, 449, 301, 0, 265, 47, 0, 265,
675 48, 0, 425, 0, 47, 267, 0, 48, 267, 0,
676 29, 273, 0, 34, 273, 0, 33, 273, 0, 32,
677 273, 0, 31, 273, 0, 30, 273, 0, 270, 0,
678 426, 0, 24, 367, 25, 273, 0, 427, 0, 274,
679 34, 273, 0, 274, 35, 273, 0, 274, 36, 273,
680 0, 428, 0, 275, 33, 274, 0, 275, 32, 274,
681 0, 429, 0, 276, 49, 275, 0, 276, 50, 275,
682 0, 430, 0, 277, 37, 276, 0, 277, 38, 276,
683 0, 277, 51, 276, 0, 277, 52, 276, 0, 431,
684 0, 278, 53, 277, 0, 278, 54, 277, 0, 432,
685 0, 279, 29, 278, 0, 433, 0, 280, 39, 279,
686 0, 434, 0, 281, 40, 280, 0, 435, 0, 282,
687 55, 281, 0, 436, 0, 284, 56, 282, 0, 437,
688 0, 0, 0, 284, 41, 439, 290, 22, 440, 286,
689 0, 438, 0, 267, 23, 289, 0, 267, 57, 289,
690 0, 267, 58, 289, 0, 267, 59, 289, 0, 267,
691 60, 289, 0, 267, 61, 289, 0, 267, 62, 289,
692 0, 267, 63, 289, 0, 267, 64, 289, 0, 267,
693 65, 289, 0, 267, 66, 289, 0, 190, 0, 0,
694 12, 0, 415, 371, 0, 443, 371, 11, 24, 290,
695 25, 18, 0, 376, 371, 0, 415, 387, 0, 443,
696 387, 11, 24, 290, 25, 18, 0, 443, 387, 11,
697 24, 290, 25, 0, 376, 387, 0, 14, 449, 18,
698 0, 15, 18, 0, 99, 15, 18, 0, 16, 18,
699 0, 95, 16, 18, 0, 96, 16, 18, 0, 97,
700 16, 18, 0, 98, 16, 18, 0, 17, 18, 0,
701 17, 290, 18, 0, 0, 18, 0, 184, 0, 185,
702 0, 189, 0, 190, 0, 448, 0, 186, 0, 191,
703 0, 186, 0
885824d3 704};
705
706#endif
707
708#if YYDEBUG != 0
e55c0c6d 709/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
710static const short yyrline[] =
711{
712 0, 324, 325, 328, 329, 332, 333, 334, 335, 336,
713 337, 338, 341, 343, 347, 347, 354, 360, 364, 365,
714 369, 370, 372, 374, 387, 390, 400, 403, 411, 412,
715 414, 416, 432, 435, 443, 446, 454, 456, 456, 460,
716 461, 462, 463, 466, 469, 473, 473, 476, 476, 481,
717 482, 485, 490, 491, 494, 495, 498, 503, 504, 507,
718 508, 509, 512, 513, 514, 519, 520, 523, 525, 527,
719 529, 538, 540, 542, 544, 560, 564, 565, 572, 573,
720 581, 583, 587, 588, 589, 590, 591, 592, 595, 596,
721 597, 598, 599, 600, 603, 606, 607, 614, 617, 620,
722 626, 634, 636, 640, 643, 644, 647, 650, 656, 660,
723 661, 664, 667, 668, 671, 672, 673, 676, 677, 678,
724 679, 680, 683, 684, 685, 686, 687, 690, 691, 694,
725 700, 704, 706, 710, 711, 713, 720, 730, 731, 734,
726 735, 736, 737, 738, 739, 740, 741, 745, 746, 750,
727 751, 754, 756, 758, 759, 760, 761, 762, 764, 768,
728 769, 772, 776, 788, 789, 790, 791, 792, 793, 796,
729 797, 798, 799, 800, 801, 802, 803, 804, 807, 808,
730 811, 812, 813, 814, 815, 816, 817, 818, 819, 820,
731 821, 824, 825, 828, 832, 833, 836, 837, 838, 839,
732 842, 843, 847, 848, 849, 850, 853, 854, 855, 858,
733 859, 860, 863, 864, 865, 866, 867, 870, 871, 872,
734 875, 876, 879, 880, 884, 885, 888, 889, 894, 900,
735 901, 907, 913, 914, 914, 916, 919, 920, 921, 922,
736 923, 924, 925, 926, 927, 928, 929, 930, 933, 934,
737 937, 938, 941, 946, 947, 948, 951, 965, 970, 976,
738 978, 984, 989, 989, 993, 994, 996, 997, 1000, 1003,
739 1006, 1009, 1010, 1013, 1014, 1017, 1018, 1019, 1023, 1025,
740 1034, 1035, 1036, 1037, 1038, 1041, 1044, 1050, 1059, 1062,
741 1065, 1072, 1079, 1085, 1110, 1111, 1114, 1115, 1116, 1117,
742 1118, 1121, 1122, 1123, 1124, 1127, 1128, 1129, 1130, 1131,
743 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141,
744 1142, 1143, 1147, 1148, 1151, 1152, 1155, 1156, 1159, 1160,
745 1161, 1162, 1165, 1166, 1167, 1168, 1169, 1170, 1173, 1174,
746 1175, 1176, 1179, 1180, 1181, 1182, 1185, 1186, 1187, 1188,
747 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1202, 1203, 1204,
748 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214,
749 1215, 1218, 1222, 1223, 1227, 1228, 1232, 1233, 1234, 1237,
750 1238, 1242, 1249, 1251, 1253, 1254, 1256, 1258, 1259, 1261,
751 1263, 1265, 1267, 1268, 1269, 1272, 1273, 1275, 1277, 1278,
752 1281, 1284, 1285, 1286, 1289, 1291, 1295, 1297, 1301, 1302,
753 1303, 1307, 1309, 1309, 1311, 1314, 1316, 1318, 1321, 1326,
754 1333, 1334, 1335, 1342, 1346, 1347, 1351, 1352, 1355, 1356,
755 1359, 1360, 1363, 1364, 1365, 1366, 1369, 1370, 1373, 1374,
756 1377, 1378, 1379, 1382, 1382, 1383, 1384, 1387, 1399, 1415,
757 1416, 1419, 1420, 1421, 1424, 1425, 1428, 1430, 1431, 1433,
758 1434, 1436, 1438, 1440, 1442, 1448, 1449, 1450, 1451, 1452,
759 1453, 1454, 1455, 1456, 1460, 1463, 1466, 1467, 1471, 1473,
760 1475, 1477, 1481, 1482, 1484, 1488, 1490, 1492, 1495, 1496,
761 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506,
762 1507, 1510, 1511, 1516, 1519, 1522, 1523, 1526, 1527, 1528,
763 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1539, 1540,
764 1547, 1548, 1554, 1555, 1556, 1557, 1560, 1561, 1562, 1563,
765 1566, 1567, 1571, 1574, 1577, 1580, 1583, 1586, 1589, 1590,
766 1591, 1592, 1594, 1595, 1597, 1599, 1605, 1609, 1611, 1613,
767 1615, 1619, 1620, 1623, 1624, 1627, 1628, 1631, 1632, 1635,
768 1636, 1637, 1640, 1653, 1658, 1659, 1663, 1664, 1667, 1672,
769 1675, 1676, 1677, 1685, 1686, 1686, 1690, 1691, 1692, 1703,
770 1710, 1711, 1714, 1715, 1718, 1719, 1720, 1721, 1722, 1724,
771 1725, 1726, 1727, 1730, 1731, 1732, 1733, 1734, 1735, 1736,
772 1737, 1738, 1739, 1742, 1743, 1746, 1747, 1748, 1749, 1752,
773 1753, 1754, 1757, 1758, 1759, 1762, 1763, 1764, 1765, 1766,
774 1769, 1770, 1771, 1774, 1775, 1778, 1779, 1783, 1784, 1787,
775 1788, 1791, 1792, 1795, 1796, 1797, 1798, 1801, 1802, 1803,
776 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1815,
777 1816, 1819, 1822, 1824, 1826, 1830, 1831, 1833, 1835, 1838,
778 1839, 1840, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1851,
779 1852, 1855, 1858, 1859, 1860, 1861, 1862, 1865, 1866
885824d3 780};
781#endif
782
783
e55c0c6d 784#if YYDEBUG != 0 || defined YYERROR_VERBOSE
785
786/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
787static const char *const yytname[] =
788{
789 "$", "error", "$undefined.", "BADTOK", "SKIPTOK", "CTOK_ELIPSIS", "CASE",
790 "DEFAULT", "CIF", "CELSE", "SWITCH", "WHILE", "DO", "CFOR", "GOTO",
791 "CONTINUE", "BREAK", "RETURN", "TSEMI", "TLBRACE", "TRBRACE", "TCOMMA",
792 "TCOLON", "TASSIGN", "TLPAREN", "TRPAREN", "TLSQBR", "TRSQBR", "TDOT",
793 "TAMPERSAND", "TEXCL", "TTILDE", "TMINUS", "TPLUS", "TMULT", "TDIV",
794 "TPERCENT", "TLT", "TGT", "TCIRC", "TBAR", "TQUEST", "CSIZEOF",
795 "CALIGNOF", "ARROW_OP", "CTYPEDEF", "COFFSETOF", "INC_OP", "DEC_OP",
796 "LEFT_OP", "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP",
797 "OR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", "ADD_ASSIGN",
798 "SUB_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN",
799 "OR_ASSIGN", "CSTRUCT", "CUNION", "CENUM", "VA_ARG", "VA_DCL", "QWARN",
800 "QGLOBALS", "QMODIFIES", "QNOMODS", "QCONSTANT", "QFUNCTION", "QITER",
801 "QDEFINES", "QUSES", "QALLOCATES", "QSETS", "QRELEASES", "QPRECLAUSE",
802 "QPOSTCLAUSE", "QINVARIANT", "QALT", "QUNDEF", "QKILLED", "QENDMACRO",
803 "LLMACRO", "LLMACROITER", "LLMACROEND", "TENDMACRO", "QSWITCHBREAK",
804 "QLOOPBREAK", "QINNERBREAK", "QSAFEBREAK", "QINNERCONTINUE",
805 "QFALLTHROUGH", "QLINTNOTREACHED", "QLINTFALLTHROUGH", "QLINTFALLTHRU",
806 "QARGSUSED", "QPRINTFLIKE", "QLINTPRINTFLIKE", "QSCANFLIKE",
807 "QMESSAGELIKE", "QNOTREACHED", "QCONST", "QVOLATILE", "QINLINE",
808 "QEXTENSION", "QEXTERN", "QSTATIC", "QAUTO", "QREGISTER", "QOUT", "QIN",
809 "QYIELD", "QONLY", "QTEMP", "QSHARED", "QREF", "QUNIQUE", "QCHECKED",
810 "QUNCHECKED", "QCHECKEDSTRICT", "QCHECKMOD", "QKEEP", "QKEPT",
811 "QPARTIAL", "QSPECIAL", "QOWNED", "QDEPENDENT", "QRETURNED", "QEXPOSED",
812 "QNULL", "QOBSERVER", "QISNULL", "QEXITS", "QMAYEXIT", "QNEVEREXIT",
813 "QTRUEEXIT", "QFALSEEXIT", "QLONG", "QSIGNED", "QUNSIGNED", "QSHORT",
814 "QUNUSED", "QSEF", "QNOTNULL", "QRELNULL", "QABSTRACT", "QCONCRETE",
815 "QMUTABLE", "QIMMUTABLE", "QTRUENULL", "QFALSENULL", "QEXTERNAL",
816 "QREFCOUNTED", "QREFS", "QNEWREF", "QTEMPREF", "QKILLREF", "QRELDEF",
817 "CGCHAR", "CBOOL", "CINT", "CGFLOAT", "CDOUBLE", "CVOID", "QANYTYPE",
818 "QINTEGRALTYPE", "QUNSIGNEDINTEGRALTYPE", "QSIGNEDINTEGRALTYPE",
819 "QNULLTERMINATED", "QSETBUFFERSIZE", "QSETSTRINGLENGTH", "QMAXSET",
820 "QMAXREAD", "QTESTINRANGE", "TCAND", "IDENTIFIER", "NEW_IDENTIFIER",
821 "TYPE_NAME_OR_ID", "CANNOTATION", "CCONSTANT", "ITER_NAME",
822 "ITER_ENDNAME", "TYPE_NAME", "METASTATE_NAME", "file", "externalDefs",
823 "externalDef", "constantDecl", "fcnDecl", "@1", "plainFcn",
824 "plainNamedDecl", "namedDeclBase", "@2", "@3", "plainNamedDeclBase",
825 "@4", "@5", "iterDecl", "@6", "@7", "macroDef", "fcnDefHdr",
826 "metaStateConstraint", "metaStateSpecifier", "@8", "@9",
827 "metaStateExpression", "metaStateName", "constraintSeperator",
828 "BufConstraintList", "BufConstraint", "bufferModifier", "relationalOp",
829 "BufConstraintExpr", "BufConstraintTerm", "BufConstraintSrefExpr",
830 "BufUnaryOp", "BufBinaryOp", "functionClauses", "functionClausesPlain",
831 "functionClause", "functionClausePlain", "globalsClause",
832 "globalsClausePlain", "@10", "nomodsClause", "modifiesClause",
833 "modifiesClausePlain", "@11", "flagSpec", "flagId", "optWarnClause",
834 "warnClause", "warnClausePlain", "globIdList", "globIdListExpr",
835 "optGlobQuals", "globId", "globQual", "stateTag", "conditionTag",
836 "fcnDefHdrAux", "fcnBody", "@12", "@13", "@14", "fcnDef", "locModifies",
837 "modListExpr", "mExpr", "modList", "specClauseListExpr",
838 "optSpecClauseList", "specClauseList", "primaryExpr", "postfixExpr",
839 "argumentExprList", "unaryExpr", "fieldDesignator", "offsetofExpr",
840 "sizeofExpr", "@15", "sizeofExprAux", "castExpr", "timesExpr",
841 "plusExpr", "shiftExpr", "relationalExpr", "equalityExpr", "bitandExpr",
842 "xorExpr", "bitorExpr", "andExpr", "@16", "orExpr", "@17",
843 "conditionalExpr", "@18", "@19", "assignExpr", "expr", "optExpr",
844 "constantExpr", "initializer", "instanceDecl", "@20", "@21",
845 "namedInitializer", "@22", "typeDecl", "@23", "IsType", "PushType",
846 "namedInitializerList", "namedInitializerListAux", "optDeclarators",
847 "init", "initList", "storageSpecifier", "stateClause",
848 "stateClausePlain", "@24", "conditionClause", "startConditionClause",
849 "conditionClausePlain", "@25", "@26", "functionConstraint",
850 "exitsQualifier", "checkQualifier", "stateQualifier", "paramQualifier",
851 "visibilityQualifier", "returnQualifier", "typedefQualifier",
852 "refcountQualifier", "typeModifier", "definedQualifier",
853 "typeQualifier", "typeSpecifier", "completeType",
854 "completeTypeSpecifier", "altType", "completeTypeSpecifierAux",
855 "optCompleteType", "optStructInvariant", "suSpc", "@27", "@28", "@29",
856 "@30", "@31", "@32", "@33", "@34", "NotType", "structDeclList",
857 "structDecl", "structNamedDeclList", "structNamedDecl", "enumSpc",
858 "@35", "enumeratorList", "enumerator", "optNamedDecl", "namedDecl",
859 "genericParamList", "innerMods", "innerModsList", "pointers",
860 "paramIdList", "idList", "paramTypeList", "paramList", "@36", "@37",
861 "paramDecl", "typeExpression", "abstractDecl", "optAbstractDeclBase",
862 "abstractDeclBase", "stmt", "iterBody", "endBody", "iterDefStmtList",
863 "iterDefIterationStmt", "forPred", "@38", "@39", "partialIterStmt",
864 "@40", "iterDefStmt", "iterSelectionStmt", "@41", "openScope",
865 "closeScope", "macroBody", "stmtErr", "labeledStmt",
866 "optExtraFallThroughs", "caseStmt", "@42", "@43", "defaultStmt", "@44",
867 "@45", "compoundStmt", "compoundStmtErr", "CreateInnerScope",
868 "DeleteInnerScope", "CreateStructInnerScope", "DeleteStructInnerScope",
869 "DeleteInnerScopeSafe", "compoundStmtRest", "compoundStmtAux",
870 "compoundStmtAuxErr", "stmtListErr", "initializerList", "stmtList",
871 "expressionStmt", "expressionStmtErr", "ifPred", "selectionStmt", "@46",
872 "@47", "whilePred", "iterWhilePred", "iterStmt", "@48", "@49",
873 "iterArgList", "@50", "iterArgExpr", "cconstantExpr", "primaryIterExpr",
874 "postfixIterExpr", "unaryIterExpr", "castIterExpr", "timesIterExpr",
875 "plusIterExpr", "shiftIterExpr", "relationalIterExpr",
876 "equalityIterExpr", "bitandIterExpr", "xorIterExpr", "bitorIterExpr",
877 "andIterExpr", "orIterExpr", "conditionalIterExpr", "@51", "@52",
878 "assignIterExpr", "endIter", "doHeader", "iterationStmt",
879 "iterationStmtErr", "jumpStmt", "optSemi", "id", "newId", "typeName", NULL
885824d3 880};
881#endif
882
e55c0c6d 883/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
884static const short yyr1[] =
885{
886 0, 193, 193, 194, 194, 195, 195, 195, 195, 195,
887 195, 195, 196, 196, 198, 197, 199, 199, 200, 200,
888 201, 201, 201, 201, 202, 201, 203, 201, 204, 204,
889 204, 204, 205, 204, 206, 204, 208, 209, 207, 210,
890 210, 210, 210, 211, 212, 214, 213, 215, 213, 216,
891 216, 217, 218, 218, 219, 219, 220, 221, 221, 222,
892 222, 222, 223, 223, 223, 224, 224, 225, 225, 225,
893 225, 225, 225, 225, 225, 226, 227, 227, 228, 228,
894 229, 229, 230, 230, 230, 230, 230, 230, 231, 231,
895 231, 231, 231, 231, 232, 234, 233, 235, 236, 238,
896 237, 239, 239, 240, 241, 241, 242, 243, 243, 244,
897 244, 245, 246, 246, 247, 247, 247, 248, 248, 248,
898 248, 248, 249, 249, 249, 249, 249, 250, 250, 251,
899 251, 253, 252, 254, 255, 252, 256, 257, 257, 258,
900 258, 258, 258, 258, 258, 258, 258, 259, 259, 260,
901 260, 261, 261, 261, 261, 261, 261, 261, 261, 262,
902 262, 263, 263, 264, 264, 264, 264, 264, 264, 265,
903 265, 265, 265, 265, 265, 265, 265, 265, 266, 266,
904 267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
905 267, 268, 268, 269, 271, 270, 272, 272, 272, 272,
906 273, 273, 274, 274, 274, 274, 275, 275, 275, 276,
907 276, 276, 277, 277, 277, 277, 277, 278, 278, 278,
908 279, 279, 280, 280, 281, 281, 282, 283, 282, 284,
909 285, 284, 286, 287, 288, 286, 289, 289, 289, 289,
910 289, 289, 289, 289, 289, 289, 289, 289, 290, 290,
911 291, 291, 292, 293, 293, 293, 294, 295, 294, 296,
912 294, 297, 298, 297, 300, 299, 299, 299, 301, 302,
913 303, 304, 304, 305, 305, 306, 306, 306, 307, 307,
914 308, 308, 308, 308, 308, 309, 311, 310, 312, 313,
915 315, 314, 316, 314, 317, 317, 318, 318, 318, 318,
916 318, 319, 319, 319, 319, 320, 320, 320, 320, 320,
917 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
918 320, 320, 321, 321, 322, 322, 323, 323, 324, 324,
919 324, 324, 325, 325, 325, 325, 325, 325, 326, 326,
920 326, 326, 327, 327, 327, 327, 328, 328, 328, 328,
921 328, 328, 328, 328, 328, 328, 328, 329, 329, 329,
922 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
923 329, 330, 331, 331, 332, 332, 333, 333, 333, 334,
924 334, 335, 337, 338, 336, 339, 340, 336, 336, 336,
925 341, 342, 336, 343, 344, 336, 336, 336, 336, 336,
926 345, 346, 346, 346, 347, 347, 348, 348, 349, 349,
927 349, 350, 351, 350, 350, 352, 352, 352, 353, 353,
928 354, 354, 354, 354, 355, 355, 356, 356, 357, 357,
929 358, 358, 359, 359, 359, 359, 360, 360, 361, 361,
930 362, 362, 362, 364, 363, 365, 363, 366, 366, 367,
931 367, 368, 368, 368, 369, 369, 370, 370, 370, 370,
932 370, 370, 370, 370, 370, 371, 371, 371, 371, 371,
933 371, 371, 371, 371, 372, 373, 374, 374, 375, 375,
934 375, 375, 377, 378, 376, 380, 379, 379, 381, 381,
935 381, 381, 381, 381, 381, 381, 381, 381, 381, 381,
936 381, 383, 382, 384, 385, 386, 386, 387, 387, 387,
937 387, 387, 387, 387, 387, 387, 387, 387, 388, 388,
938 389, 389, 391, 390, 392, 390, 394, 393, 395, 393,
939 396, 396, 397, 398, 399, 400, 401, 402, 403, 403,
940 403, 403, 403, 403, 403, 403, 404, 405, 405, 405,
941 405, 406, 406, 407, 407, 408, 408, 409, 409, 410,
942 410, 410, 411, 412, 413, 412, 414, 412, 415, 416,
943 418, 419, 417, 420, 421, 420, 422, 422, 422, 422,
944 423, 423, 424, 424, 425, 425, 425, 425, 425, 425,
945 425, 425, 425, 426, 426, 426, 426, 426, 426, 426,
946 426, 426, 426, 427, 427, 428, 428, 428, 428, 429,
947 429, 429, 430, 430, 430, 431, 431, 431, 431, 431,
948 432, 432, 432, 433, 433, 434, 434, 435, 435, 436,
949 436, 437, 437, 438, 439, 440, 438, 441, 441, 441,
950 441, 441, 441, 441, 441, 441, 441, 441, 441, 442,
951 442, 443, 444, 444, 444, 445, 445, 445, 445, 446,
952 446, 446, 446, 446, 446, 446, 446, 446, 446, 447,
953 447, 448, 449, 449, 449, 449, 449, 450, 450
885824d3 954};
955
e55c0c6d 956/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
957static const short yyr2[] =
958{
959 0, 0, 1, 1, 2, 2, 1, 1, 1, 1,
960 1, 1, 8, 11, 0, 5, 1, 3, 1, 2,
961 1, 6, 3, 6, 0, 6, 0, 7, 1, 6,
962 3, 6, 0, 6, 0, 7, 0, 0, 10, 3,
963 3, 3, 2, 1, 3, 0, 4, 0, 4, 1,
964 3, 1, 1, 1, 3, 1, 3, 1, 1, 1,
965 1, 1, 1, 4, 5, 1, 1, 1, 1, 3,
966 4, 2, 3, 3, 3, 1, 1, 1, 0, 2,
967 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
968 1, 1, 1, 1, 2, 0, 4, 1, 2, 0,
969 3, 1, 3, 1, 1, 0, 2, 3, 2, 1,
970 3, 2, 0, 2, 1, 1, 1, 1, 1, 1,
971 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
972 3, 0, 3, 0, 0, 4, 2, 2, 1, 1,
973 1, 3, 4, 2, 3, 3, 3, 1, 1, 1,
974 3, 1, 1, 3, 4, 2, 3, 3, 3, 0,
975 1, 1, 3, 1, 1, 1, 3, 1, 1, 1,
976 4, 3, 4, 6, 5, 5, 2, 2, 1, 3,
977 1, 2, 2, 2, 2, 2, 2, 2, 2, 1,
978 1, 3, 1, 9, 0, 3, 4, 2, 4, 2,
979 1, 4, 1, 3, 3, 3, 1, 3, 3, 1,
980 3, 3, 1, 3, 3, 3, 3, 1, 3, 3,
981 1, 3, 1, 3, 1, 3, 1, 0, 4, 1,
982 0, 4, 1, 0, 0, 7, 1, 3, 3, 3,
983 3, 3, 3, 3, 3, 3, 3, 3, 1, 3,
984 0, 1, 1, 1, 1, 1, 3, 0, 9, 0,
985 11, 2, 0, 6, 0, 8, 4, 4, 0, 0,
986 2, 1, 4, 0, 4, 1, 3, 4, 1, 3,
987 1, 1, 1, 1, 1, 2, 0, 6, 2, 2,
988 0, 6, 0, 5, 1, 1, 1, 1, 1, 1,
989 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
990 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
991 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
992 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
993 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
994 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
995 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
996 2, 3, 1, 4, 1, 3, 2, 2, 2, 0,
997 1, 0, 0, 0, 12, 0, 0, 11, 6, 6,
998 0, 0, 10, 0, 0, 10, 5, 5, 4, 4,
999 0, 1, 1, 2, 5, 3, 2, 4, 1, 3,
1000 4, 6, 0, 8, 4, 1, 3, 2, 1, 4,
1001 1, 1, 2, 2, 1, 2, 1, 2, 1, 1,
1002 1, 2, 1, 2, 2, 3, 1, 3, 1, 3,
1003 1, 1, 3, 0, 2, 0, 4, 4, 1, 1,
1004 2, 1, 1, 2, 0, 1, 5, 2, 3, 3,
1005 4, 3, 4, 4, 5, 1, 1, 1, 1, 1,
1006 1, 1, 1, 1, 1, 1, 1, 2, 2, 7,
1007 6, 2, 0, 0, 10, 0, 6, 1, 1, 1,
1008 1, 2, 1, 1, 1, 1, 1, 1, 1, 3,
1009 1, 0, 3, 2, 2, 1, 1, 1, 1, 1,
1010 1, 1, 1, 1, 1, 3, 1, 1, 2, 2,
1011 0, 2, 0, 4, 0, 6, 0, 3, 0, 5,
1012 3, 2, 3, 0, 0, 0, 0, 0, 1, 2,
1013 2, 3, 2, 3, 3, 4, 2, 2, 3, 3,
1014 4, 1, 2, 1, 2, 1, 2, 1, 2, 1,
1015 2, 1, 4, 2, 0, 5, 0, 6, 4, 4,
1016 0, 0, 10, 1, 0, 4, 1, 1, 1, 1,
1017 1, 2, 1, 3, 1, 4, 3, 4, 6, 5,
1018 5, 2, 2, 1, 2, 2, 2, 2, 2, 2,
1019 2, 2, 1, 1, 4, 1, 3, 3, 3, 1,
1020 3, 3, 1, 3, 3, 1, 3, 3, 3, 3,
1021 1, 3, 3, 1, 3, 1, 3, 1, 3, 1,
1022 3, 1, 3, 1, 0, 0, 7, 1, 3, 3,
1023 3, 3, 3, 3, 3, 3, 3, 3, 3, 1,
1024 0, 1, 2, 7, 2, 2, 7, 6, 2, 3,
1025 2, 3, 2, 3, 3, 3, 3, 2, 3, 0,
1026 1, 1, 1, 1, 1, 1, 1, 1, 1
885824d3 1027};
1028
e55c0c6d 1029/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
1030 doesn't specify something else to do. Zero means the default is an
1031 error. */
1032static const short yydefact[] =
1033{
1034 0, 11, 432, 400, 254, 400, 14, 0, 0, 0,
1035 0, 268, 268, 281, 280, 282, 283, 284, 342, 343,
1036 307, 309, 308, 312, 313, 301, 303, 304, 302, 310,
1037 311, 344, 345, 305, 306, 322, 318, 314, 319, 315,
1038 296, 297, 300, 298, 299, 339, 340, 341, 338, 324,
1039 323, 317, 316, 328, 329, 330, 331, 326, 327, 325,
1040 332, 333, 336, 337, 334, 335, 400, 400, 400, 400,
1041 400, 400, 400, 400, 400, 400, 320, 671, 672, 676,
1042 321, 673, 674, 677, 0, 3, 6, 7, 424, 8,
1043 9, 133, 43, 669, 10, 253, 255, 0, 379, 268,
1044 268, 268, 268, 268, 268, 268, 268, 400, 268, 379,
1045 379, 400, 372, 400, 0, 400, 129, 268, 675, 20,
1046 400, 428, 429, 430, 433, 434, 271, 268, 268, 264,
1047 400, 678, 400, 400, 676, 0, 517, 268, 526, 0,
1048 0, 0, 651, 0, 0, 0, 0, 268, 559, 0,
1049 268, 268, 268, 268, 268, 268, 268, 268, 268, 0,
1050 42, 0, 0, 0, 0, 0, 520, 268, 168, 164,
1051 167, 580, 570, 169, 180, 200, 190, 189, 202, 206,
1052 209, 212, 217, 220, 222, 224, 226, 229, 232, 236,
1053 248, 561, 194, 0, 0, 551, 507, 508, 509, 510,
1054 0, 0, 511, 268, 512, 0, 513, 165, 0, 514,
1055 516, 163, 0, 500, 0, 557, 0, 533, 487, 0,
1056 0, 0, 496, 0, 497, 476, 495, 492, 493, 488,
1057 489, 490, 0, 0, 494, 501, 0, 0, 498, 475,
1058 0, 346, 347, 357, 359, 358, 360, 361, 362, 363,
1059 364, 365, 366, 4, 268, 0, 131, 136, 400, 670,
1060 5, 400, 380, 376, 350, 352, 349, 351, 354, 353,
1061 355, 356, 370, 348, 377, 378, 0, 268, 268, 368,
1062 268, 268, 0, 369, 425, 367, 431, 435, 400, 0,
1063 270, 400, 0, 261, 268, 669, 16, 18, 0, 400,
1064 268, 28, 443, 268, 164, 167, 200, 252, 522, 163,
1065 0, 268, 268, 268, 268, 0, 660, 662, 667, 0,
1066 0, 400, 449, 0, 0, 183, 188, 187, 186, 185,
1067 184, 0, 268, 181, 182, 268, 0, 0, 0, 0,
1068 0, 520, 0, 268, 519, 268, 465, 466, 467, 468,
1069 0, 469, 470, 268, 472, 268, 471, 473, 533, 268,
1070 268, 176, 177, 0, 268, 268, 268, 268, 268, 268,
1071 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
1072 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
1073 268, 227, 233, 230, 560, 268, 0, 658, 39, 0,
1074 534, 552, 563, 655, 581, 0, 518, 268, 0, 0,
1075 0, 558, 40, 477, 481, 553, 400, 491, 503, 504,
1076 0, 0, 0, 41, 22, 268, 443, 400, 400, 268,
1077 256, 130, 400, 0, 374, 0, 400, 0, 400, 0,
1078 268, 268, 267, 268, 266, 262, 400, 0, 268, 0,
1079 400, 268, 19, 440, 0, 0, 426, 441, 268, 0,
1080 0, 527, 0, 566, 0, 251, 0, 659, 668, 166,
1081 268, 268, 0, 451, 450, 452, 268, 515, 268, 0,
1082 663, 664, 665, 666, 661, 521, 268, 528, 0, 654,
1083 400, 531, 652, 0, 0, 171, 0, 178, 0, 0,
1084 0, 237, 238, 239, 240, 241, 242, 243, 244, 245,
1085 246, 247, 203, 204, 205, 208, 207, 210, 211, 213,
1086 214, 215, 216, 218, 219, 221, 223, 225, 268, 268,
1087 268, 249, 268, 268, 195, 547, 167, 551, 0, 400,
1088 532, 564, 0, 0, 499, 485, 268, 554, 502, 0,
1089 0, 24, 0, 538, 268, 555, 132, 400, 268, 533,
1090 268, 257, 373, 268, 390, 0, 398, 393, 0, 399,
1091 0, 415, 418, 412, 414, 272, 268, 268, 669, 15,
1092 30, 268, 443, 268, 17, 427, 436, 438, 36, 445,
1093 400, 444, 448, 523, 562, 0, 568, 268, 371, 457,
1094 0, 443, 453, 268, 0, 201, 400, 268, 524, 0,
1095 530, 546, 0, 571, 268, 172, 170, 268, 268, 228,
1096 0, 231, 268, 197, 268, 199, 548, 549, 268, 268,
1097 268, 569, 268, 400, 268, 400, 78, 26, 539, 542,
1098 268, 268, 540, 268, 556, 533, 135, 0, 259, 268,
1099 375, 396, 535, 382, 397, 535, 385, 268, 417, 268,
1100 0, 105, 268, 268, 268, 0, 32, 0, 268, 0,
1101 80, 442, 268, 454, 268, 0, 458, 461, 268, 0,
1102 459, 0, 443, 0, 0, 0, 529, 268, 268, 179,
1103 174, 175, 234, 0, 0, 550, 565, 0, 268, 268,
1104 268, 268, 268, 268, 268, 268, 268, 0, 164, 167,
1105 180, 200, 189, 206, 209, 212, 217, 220, 222, 224,
1106 226, 229, 0, 574, 573, 165, 584, 593, 603, 605,
1107 609, 612, 615, 620, 623, 625, 627, 629, 631, 633,
1108 637, 576, 163, 0, 23, 0, 95, 99, 97, 122,
1109 123, 124, 125, 126, 127, 128, 25, 78, 82, 0,
1110 84, 83, 0, 87, 0, 400, 400, 85, 0, 86,
1111 292, 0, 78, 543, 544, 268, 541, 21, 268, 273,
1112 400, 388, 535, 400, 389, 535, 411, 416, 268, 0,
1113 0, 104, 268, 275, 263, 268, 0, 400, 80, 34,
1114 0, 437, 439, 37, 80, 88, 90, 89, 93, 91,
1115 92, 446, 420, 0, 268, 454, 421, 455, 567, 482,
1116 0, 462, 460, 463, 0, 0, 173, 525, 0, 574,
1117 268, 196, 198, 657, 0, 0, 183, 188, 187, 186,
1118 185, 184, 181, 182, 268, 268, 268, 176, 177, 0,
1119 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
1120 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
1121 268, 268, 268, 268, 268, 268, 268, 227, 634, 230,
1122 486, 0, 480, 103, 108, 101, 112, 669, 79, 94,
1123 98, 106, 286, 289, 285, 0, 290, 288, 27, 545,
1124 268, 0, 402, 400, 400, 401, 400, 400, 400, 419,
1125 268, 265, 278, 0, 273, 12, 31, 33, 80, 29,
1126 669, 81, 443, 447, 422, 423, 268, 456, 464, 0,
1127 192, 0, 533, 235, 656, 166, 268, 0, 171, 0,
1128 0, 0, 0, 638, 639, 640, 641, 642, 643, 644,
1129 645, 646, 647, 648, 203, 204, 205, 208, 207, 210,
1130 211, 213, 214, 215, 216, 218, 219, 221, 223, 225,
1131 630, 268, 632, 268, 479, 107, 0, 117, 118, 119,
1132 120, 121, 669, 109, 400, 112, 0, 0, 140, 100,
1133 149, 669, 138, 139, 0, 47, 0, 0, 57, 58,
1134 68, 66, 295, 0, 294, 55, 75, 0, 62, 65,
1135 0, 669, 67, 159, 273, 268, 400, 0, 268, 403,
1136 391, 400, 394, 400, 413, 276, 268, 669, 35, 0,
1137 268, 483, 268, 0, 653, 650, 201, 268, 172, 170,
1138 268, 268, 0, 575, 102, 112, 96, 115, 111, 116,
1139 114, 113, 0, 143, 0, 0, 0, 0, 137, 0,
1140 0, 152, 161, 669, 151, 0, 0, 65, 0, 71,
1141 0, 53, 52, 0, 60, 59, 61, 0, 0, 0,
1142 0, 0, 0, 268, 669, 160, 0, 258, 268, 405,
1143 268, 268, 400, 408, 0, 383, 0, 386, 277, 279,
1144 0, 38, 268, 0, 193, 191, 649, 534, 0, 174,
1145 175, 635, 110, 144, 141, 147, 0, 148, 145, 146,
1146 150, 0, 155, 0, 0, 0, 0, 268, 0, 77,
1147 76, 0, 72, 0, 49, 44, 45, 54, 65, 56,
1148 69, 0, 73, 74, 0, 0, 293, 268, 268, 274,
1149 268, 268, 0, 406, 268, 392, 0, 395, 0, 13,
1150 484, 572, 173, 268, 142, 156, 153, 0, 157, 158,
1151 162, 287, 51, 48, 0, 0, 70, 46, 63, 291,
1152 260, 409, 400, 404, 268, 381, 387, 636, 154, 64,
1153 50, 407, 410, 384, 0, 0, 0
885824d3 1154};
1155
e55c0c6d 1156static const short yydefgoto[] =
1157{
1158 1194, 84, 85, 86, 87, 133, 295, 296, 88, 636,
1159 772, 297, 798, 918, 89, 670, 920, 902, 91, 1002,
1160 1134, 1081, 1065, 1135, 1173, 1073, 1004, 1005, 1006, 1077,
1161 1007, 1008, 1138, 1010, 1131, 756, 803, 757, 804, 758,
1162 805, 886, 806, 761, 807, 887, 884, 885, 790, 763,
1163 764, 982, 983, 984, 1048, 985, 765, 766, 92, 257,
1164 427, 258, 559, 93, 989, 1115, 1116, 991, 1062, 1084,
1165 1063, 173, 174, 496, 175, 929, 176, 177, 396, 534,
1166 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
1167 528, 188, 530, 189, 529, 830, 190, 219, 466, 308,
1168 415, 95, 649, 778, 126, 577, 96, 291, 192, 255,
1169 127, 128, 901, 794, 913, 98, 767, 809, 994, 769,
1170 770, 810, 1013, 895, 1011, 99, 100, 101, 102, 103,
1171 104, 105, 106, 107, 108, 109, 110, 322, 416, 433,
1172 112, 263, 1193, 113, 782, 1156, 785, 1158, 652, 1094,
1173 655, 1096, 114, 904, 905, 1091, 1092, 115, 660, 570,
1174 571, 814, 130, 455, 123, 124, 117, 585, 586, 456,
1175 457, 458, 672, 591, 323, 820, 816, 475, 344, 220,
1176 240, 221, 222, 345, 926, 1103, 224, 632, 225, 226,
1177 420, 227, 228, 194, 401, 346, 342, 347, 460, 685,
1178 348, 310, 609, 349, 199, 350, 540, 780, 1020, 233,
1179 556, 491, 400, 201, 557, 558, 351, 202, 203, 352,
1180 629, 595, 353, 236, 354, 358, 688, 723, 881, 724,
1181 207, 726, 727, 728, 729, 730, 731, 732, 733, 734,
1182 735, 736, 737, 738, 739, 740, 971, 1163, 741, 1107,
1183 355, 356, 209, 357, 260, 309, 212, 120
885824d3 1184};
1185
e55c0c6d 1186static const short yypact[] =
1187{
1188 2060,-32768, 48, 5211,-32768, 6258,-32768, 337, 3056, 3442,
1189 3442,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1190 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1191 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1192 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1193 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1194 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1195 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 297,
1196 -32768,-32768,-32768,-32768, 2252,-32768,-32768,-32768, 408,-32768,
1197 -32768, 46,-32768, 78,-32768,-32768,-32768, 83, 6093,-32768,
1198 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 6093,
1199 6093, 186, 154,-32768, 588,-32768,-32768, 337,-32768,-32768,
1200 -32768,-32768,-32768,-32768, 48,-32768,-32768, 267,-32768, 186,
1201 -32768,-32768,-32768, 5211,-32768, 273,-32768, 1635,-32768, 290,
1202 314, 363,-32768, 372, 337, 397, 478, 1549,-32768, 2630,
1203 1635, 1635, 1635, 1635, 1635, 1635,-32768, 5427, 5427, 482,
1204 -32768, 488, 512, 517, 532, 545, 481, 4741,-32768, 570,
1205 586,-32768, 591,-32768, 716, 1169,-32768,-32768,-32768, 864,
1206 483, 595, 542, 693, 573, 597, 599, 608, 59,-32768,
1207 -32768, 121,-32768, 3591, 577, 604,-32768,-32768,-32768,-32768,
1208 649, 3205,-32768, 4741,-32768, 3591,-32768, 505, 3591,-32768,
1209 -32768, 679, 690,-32768, 698,-32768, 2821, 591, 692, 161,
1210 643, 3249,-32768, 3442,-32768,-32768,-32768, 5716,-32768,-32768,
1211 -32768,-32768, 735, 739,-32768,-32768, 3442, 3591,-32768,-32768,
1212 678,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1213 -32768,-32768,-32768,-32768, 747, 755,-32768,-32768, 5982,-32768,
1214 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1215 -32768,-32768,-32768,-32768,-32768,-32768, 801, 761,-32768,-32768,
1216 337, 337, 29,-32768, 408,-32768,-32768,-32768,-32768, 804,
1217 -32768,-32768, 813, 783, 761, 78,-32768, 450, 810,-32768,
1218 337,-32768, 143, 1635,-32768,-32768,-32768,-32768,-32768,-32768,
1219 817, 1635, 1635, 1635, 1582, 833,-32768,-32768,-32768, 302,
1220 669, 5583, 426, 829, 837,-32768,-32768,-32768,-32768,-32768,
1221 -32768, 851, 1635,-32768,-32768, 1635, 874, 891, 893, 919,
1222 931, 481, 778, 1903,-32768, 4741,-32768,-32768,-32768,-32768,
1223 903,-32768,-32768, 4741,-32768, 4741,-32768,-32768,-32768, 3547,
1224 1635,-32768,-32768, 85, 1635, 1635, 1635, 1635, 1635, 1635,
1225 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
1226 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
1227 1635,-32768,-32768,-32768,-32768, 1635, 842,-32768,-32768, 2439,
1228 -32768,-32768, 949,-32768,-32768, 964,-32768, 1635, 688, 981,
1229 965,-32768,-32768,-32768,-32768,-32768, 186, 5716,-32768,-32768,
1230 3442, 3012, 998,-32768,-32768, 1635, 294, 3695, 4823, 761,
1231 -32768, 321, 6258, 922, 993, 1008, 1010, 1016, 1010, 337,
1232 1028, 761,-32768, 761,-32768,-32768,-32768, 958, 1023, 1027,
1233 -32768, 761, 450,-32768, 337, 1036,-32768, 1031, 337, 204,
1234 1042,-32768, 236, 1032, 281, 1032, 1047,-32768,-32768,-32768,
1235 -32768, 5222, 1043, 768,-32768, 820, 1635,-32768,-32768, 1045,
1236 -32768,-32768,-32768,-32768,-32768,-32768, 1635,-32768, 1044,-32768,
1237 3695,-32768,-32768, 1060, 1048,-32768, 316,-32768, 98, 337,
1238 337,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1239 -32768,-32768,-32768,-32768,-32768, 864, 864, 483, 483, 595,
1240 595, 595, 595, 542, 542, 693, 573, 597, 1635, 1635,
1241 1635,-32768, 5447, 5472,-32768,-32768, 5057,-32768, 3398, 3881,
1242 -32768,-32768, 1050, 333,-32768,-32768, 761,-32768,-32768, 1051,
1243 1049,-32768, 1053,-32768, 4253,-32768,-32768, 4067, 4297, 1057,
1244 -32768, 1062,-32768,-32768, 1063, 1067,-32768, 1069, 1068,-32768,
1245 962,-32768, 1070,-32768,-32768,-32768, 267,-32768, 188,-32768,
1246 -32768, 1635, 366, 761,-32768,-32768, 1071,-32768,-32768, 1085,
1247 6258,-32768,-32768,-32768,-32768, 1066,-32768, 1582,-32768,-32768,
1248 1073, 127, 820, 5385, 1074,-32768,-32768,-32768,-32768, 1072,
1249 -32768,-32768, 1077,-32768, 1635,-32768,-32768,-32768,-32768, 599,
1250 979, 608, 1635,-32768, 1635,-32768,-32768,-32768, 4401, 4741,
1251 1635,-32768, 5504,-32768, 1635,-32768, 1677,-32768,-32768,-32768,
1252 4445, 4549,-32768, 4593,-32768, 1057,-32768, 1078,-32768,-32768,
1253 -32768,-32768,-32768, 1075,-32768,-32768, 1084,-32768, 337,-32768,
1254 337, 1025, 1960,-32768,-32768, 1079,-32768, 1080,-32768, 280,
1255 1677,-32768, 337, 592, 4741, 1093,-32768,-32768, 249, 1087,
1256 -32768, 1083, 89, 1095, 1088, 1096,-32768, 1635, 5504,-32768,
1257 -32768,-32768,-32768, 1089, 1094,-32768,-32768, 355, 1635, 1635,
1258 1635, 1635, 1635, 1635, 1635, 5427, 5427, 1103, 412, 436,
1259 742, 1405, 442, 900, 971, 961, 627, 972, 1091, 1090,
1260 1098, 1081, 87, 1105,-32768, 32,-32768,-32768,-32768,-32768,
1261 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1262 -32768,-32768, 452, 580,-32768, 932,-32768,-32768,-32768,-32768,
1263 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1677,-32768, 1054,
1264 -32768,-32768, 1058,-32768, 1065,-32768,-32768,-32768, 1086,-32768,
1265 1116, 1097, 1677,-32768,-32768, 4697,-32768,-32768,-32768,-32768,
1266 6180,-32768,-32768, 6180,-32768,-32768,-32768,-32768, 1635, 1003,
1267 1114,-32768, 1960,-32768,-32768, 1960, 1104,-32768, 1677,-32768,
1268 1108,-32768,-32768,-32768, 1677,-32768,-32768,-32768,-32768,-32768,
1269 -32768,-32768, 408, 1110,-32768, 717,-32768, 820,-32768,-32768,
1270 1118,-32768,-32768,-32768, 1128, 337,-32768,-32768, 617, 1131,
1271 1635,-32768,-32768, 1123, 702, 1145, 711, 732, 746, 748,
1272 788, 799, 808, 815, 1635, 5396, 1635, 828, 852, 112,
1273 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
1274 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
1275 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,-32768, 1635,
1276 -32768, 1150, 1160,-32768, 991, 1142, 317, 84,-32768,-32768,
1277 -32768,-32768,-32768,-32768,-32768, 54,-32768,-32768,-32768,-32768,
1278 1960, 368,-32768, 186, 4901,-32768, 6180, 4901, 6180,-32768,
1279 -32768,-32768,-32768, 1017,-32768,-32768,-32768,-32768, 1677,-32768,
1280 78,-32768, 378,-32768,-32768,-32768, 5416,-32768,-32768, 382,
1281 -32768, 1163, 1057,-32768,-32768, 855, 1635, 1162, 861, 872,
1282 139, 337, 337,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1283 -32768,-32768,-32768,-32768, 889, 943, 944, 683, 927, 376,
1284 836, 367, 464, 524, 574, 610, 645, 144, 352, 62,
1285 599, 1635, 608, 5504,-32768, 505, 932,-32768,-32768,-32768,
1286 -32768,-32768, 470,-32768, 5849, 317, 86, 86,-32768,-32768,
1287 110, 480,-32768,-32768, 107,-32768, 657, 123,-32768,-32768,
1288 -32768,-32768,-32768, 1161,-32768, 17,-32768, 904,-32768, 556,
1289 1164, 78,-32768, 107,-32768,-32768,-32768, 1167, 425,-32768,
1290 -32768, 4901,-32768, 4901,-32768,-32768, 1835, 554,-32768, 1106,
1291 754,-32768,-32768, 337,-32768, 996, 945,-32768, 946, 953,
1292 -32768,-32768, 1018,-32768,-32768, 317,-32768,-32768,-32768,-32768,
1293 -32768,-32768, 515, 110, 728, 337, 337, 86,-32768, 107,
1294 107,-32768, 147, 601,-32768, 1171, 1011, 786, 123, 396,
1295 75,-32768,-32768, 657,-32768,-32768,-32768, 657, 4, 337,
1296 337, 1173, 657,-32768, 78, 1168, 609,-32768, 761,-32768,
1297 -32768, 1177,-32768, 1178, 1181,-32768, 1182,-32768,-32768,-32768,
1298 1119,-32768, 544, 1179,-32768,-32768,-32768,-32768, 1183, 960,
1299 967,-32768,-32768,-32768,-32768, 110, 1184, 505,-32768,-32768,
1300 110, 846, 147, 832, 337, 337, 107,-32768, 1014,-32768,
1301 -32768, 657,-32768, 786, 1170,-32768, 396,-32768, 396,-32768,
1302 -32768, 1186,-32768,-32768, 1014, 1189,-32768,-32768,-32768,-32768,
1303 1635, 425, 1197,-32768,-32768,-32768, 1196,-32768, 1198,-32768,
1304 -32768,-32768, 970, 1635,-32768,-32768,-32768, 1192,-32768,-32768,
1305 147,-32768,-32768,-32768, 1195, 75,-32768,-32768,-32768,-32768,
1306 -32768,-32768,-32768,-32768, 1635,-32768,-32768,-32768,-32768,-32768,
1307 -32768,-32768,-32768,-32768, 1223, 1225,-32768
885824d3 1308};
1309
e55c0c6d 1310static const short yypgoto[] =
1311{
1312 -32768,-32768, 1156,-32768,-32768,-32768,-32768, -388, -112,-32768,
1313 -32768, 942,-32768,-32768,-32768,-32768,-32768, 71,-32768,-32768,
1314 348,-32768,-32768, 69, 105,-32768, 179,-32768,-32768,-32768,
1315 -687,-32768, -825,-32768,-32768, -627, -709,-32768,-32768,-32768,
1316 -550,-32768, -524,-32768, -499,-32768, 282,-32768,-32768, 596,
1317 -602,-32768, 215, 276,-32768,-32768,-32768,-32768,-32768,-32768,
1318 -32768,-32768,-32768,-32768,-32768, -806, 140,-32768, -956,-32768,
1319 251,-32768, -612, 420, 1174,-32768,-32768, -611,-32768,-32768,
1320 -113, -353, -348, -339, -336, -377, -367, -366, -498, -511,
1321 -32768, -609,-32768, -135,-32768,-32768, 559, 1141, -561, -419,
1322 14,-32768,-32768,-32768, -429,-32768,-32768,-32768, 699, -222,
1323 824,-32768, -850, -737,-32768,-32768,-32768, -447,-32768,-32768,
1324 -32768, -442,-32768,-32768,-32768,-32768,-32768, 500,-32768,-32768,
1325 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 13, 708,
1326 -32768, 936,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1327 -32768,-32768, 1092, -656, -479,-32768, 122,-32768,-32768, 612,
1328 616, 462, 1, -333, 1154,-32768, 2,-32768,-32768, -566,
1329 -32768,-32768,-32768, 607, -250, 959,-32768, -456, 331, 1270,
1330 -32768, 1055,-32768, 484,-32768,-32768,-32768,-32768, -167,-32768,
1331 -32768,-32768,-32768,-32768, 19, 642, 948, 1099,-32768,-32768,
1332 1289,-32768,-32768, -328,-32768, 177, 176, -481, -845,-32768,
1333 794,-32768,-32768, 886, -153, -433, 51,-32768, 82, 39,
1334 -32768,-32768, 218,-32768, 659,-32768,-32768, 598,-32768, 322,
1335 -598,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1336 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1337 1417,-32768,-32768, 1703, -266, 0, 66,-32768
885824d3 1338};
1339
1340
86d93ed3 1341#define YYLAST 6449
c05aefaa 1342
1343
e55c0c6d 1344static const short yytable[] =
1345{
1346 118, 116, 307, 118, 125, 284, 550, 118, 211, 211,
1347 211, 525, 575, 111, 94, 488, 129, 602, 132, 621,
1348 710, 712, 526, 722, 527, 515, 516, 195, 434, 447,
1349 619, 1140, 517, 518, 725, 679, 675, 325, 326, 327,
1350 328, 329, 330, 519, 520, 521, 522, 204, 439, 409,
1351 523, 524, 600, -582, 413, 912, 414, -582, 914, 995,
1352 234, 234, 1022, 584, 1027, 256, 119, 608, 808, 119,
1353 1009, 90, 1071, 135, 417, 449, 710, 712, 996, 722,
1354 995, 990, 2, -628, 118, 116, 759, -628, 997, 917,
1355 725, 235, 235, 552, 453, 921, 259, 111, 94, 1068,
1356 392, 389, 259, 1121, 1122, 428, 628, 261, 986, 997,
1357 986, 262, 760, 499, 823, 393, 824, 118, 987, 395,
1358 987, 721, 262, 262, 641, 616, 287, 907, 878, 500,
1359 888, 1059, 453, 118, 720, 300, 1054, 762, 1055, 394,
1360 941, 1060, 395, 879, 118, 898, 299, 1068, 453, 211,
1361 119, -400, 677, -400, 1056, 90, 942, 997, 121, 122,
1362 395, -400, 665, 1014, 1086, -624, 1039, 211, 324, -624,
1363 1170, 1067, 1069, 1123, 783, 1124, 1095, 721, 1097, 411,
1364 1052, 1053, 395, 119, 681, 200, 232, 232, 204, 768,
1365 720, 1125, 1141, 211, 771, 668, 808, 386, 387, 301,
1366 1072, 211, 808, 211, -268, 211, 259, 759, 211, 1028,
1367 315, 663, 397, 77, 78, 134, 211, 817, 81, 82,
1368 404, 211, 759, 211, 403, 395, 205, 405, 606, 469,
1369 449, 646, 204, 760, 998, 999, 211, 211, 77, 1000,
1370 204, 278, 1001, 1133, 204, 1136, 539, 204, 760, 667,
1371 1021, 1120, 1023, 548, 413, 717, 422, 395, 762, 77,
1372 1000, 594, 512, 513, 514, 718, 719, 234, 77, 988,
1373 77, 988, 234, 762, 234, 471, 204, 118, 431, 713,
1374 118, 118, 118, 2, 714, 801, 975, 234, 288, 1099,
1375 307, 77, 1061, 715, 118, 446, 716, 302, 235, 453,
1376 118, 906, 395, 235, 908, 235, 596, 77, 1000, 1066,
1377 768, 717, 664, 434, 311, 771, 808, 488, 235, 551,
1378 468, 718, 719, 395, 473, 768, 200, -400, -400, -400,
1379 771, -678, -400, -400, 470, 713, 307, 614, 312, -400,
1380 714, 615, -400, 119, -400, 211, 436, 438, 440, 715,
1381 1136, 307, 716, 211, 395, 211, 679, 684, 631, 817,
1382 119, 710, 712, 605, 722, 1031, 301, 205, 972, 909,
1383 200, 453, 693, -626, 694, 725, 395, -626, 200, 970,
1384 833, 388, 200, 453, -678, 200, 1015, 313, -616, 1016,
1385 1139, 666, -616, 232, 410, 1145, 314, -613, 232, 211,
1386 232, -613, -400, 677, -400, 977, 978, 1032, 378, 379,
1387 1033, 205, -400, 232, 200, 316, 380, 381, 537, 205,
1388 211, 211, 1078, 205, 1079, 1019, 205, 211, 1019, 118,
1389 560, 547, -269, -579, 254, 979, 980, -579, 204, 118,
1390 1080, 118, 547, 118, 1174, 470, 307, 1090, 835, 981,
1391 -268, 118, 471, 300, 118, 205, 1117, -578, 118, 2,
1392 2, -578, 721, -602, 77, 78, 134, -602, 307, 81,
1393 82, 234, 234, -577, -269, 720, 448, -577, -400, -400,
1394 -400, -678, -678, -400, -400, -617, -678, -678, 259, -617,
1395 211, 1045, 193, 223, 223, 119, 317, 967, 259, 118,
1396 118, 1057, 235, 235, 336, 572, 335, 119, 968, 119,
1397 969, 957, 958, 380, 381, 378, 379, 301, 959, 960,
1398 587, 77, 78, 134, 592, 1117, 81, 82, 337, 961,
1399 962, 963, 964, 338, 402, 494, 965, 966, 211, 211,
1400 1113, 1054, 1019, 1055, 1019, -618, 118, 633, 339, -618,
1401 -400, -400, -400, 547, 211, -400, -400, 211, 211, 1056,
1402 340, 812, -400, -400, -400, 617, 618, -400, -400, -451,
1403 471, 547, 259, 380, 381, 1016, 200, 204, -45, 382,
1404 383, 341, 1078, 118, 1079, 300, 836, 837, 838, 839,
1405 840, 841, -672, 384, 385, -619, 717, 232, 232, -619,
1406 1080, 395, 388, 673, 1035, 882, 718, 719, -676, 77,
1407 78, 134, 119, -673, 81, 82, -268, 205, 471, 259,
1408 713, 992, 1126, 380, 381, 714, 2, 1148, 211, 211,
1409 1016, -621, 742, 193, 715, -621, 389, 716, 395, 390,
1410 211, 211, 931, 211, 380, 381, 602, 382, 383, 301,
1411 196, 229, 229, 307, 1029, 280, 281, 282, 118, 1149,
1412 118, 384, 385, 391, 868, 869, -622, 206, 399, 118,
1413 -622, 398, 118, 118, 211, 815, 489, 193, 870, 871,
1414 473, 996, 382, 383, 492, 193, 493, 394, 742, 193,
1415 395, 997, 193, 404, 469, 933, 384, 385, -505, 97,
1416 223, -675, 97, 812, -611, 223, 411, 223, -611, 395,
1417 241, 242, 406, 469, -674, 200, 1046, 375, 376, 377,
1418 223, 193, 407, 395, 572, 1058, 572, 935, 77, 78,
1419 134, 1181, -596, 81, 82, 802, -596, 412, 592, 119,
1420 359, -268, 360, 471, -400, 1083, 386, 387, 954, 955,
1421 956, 2, 986, -601, 418, 1114, 205, -601, 555, 419,
1422 -400, 1100, 987, 361, 362, 1192, 845, -600, 846, -599,
1423 -400, -600, 423, -599, 424, 211, 77, 78, 134, 426,
1424 471, 81, 82, 97, 486, 487, -400, 1108, 2, 847,
1425 848, 196, -268, 903, 471, 2, 903, 1127, 264, 265,
1426 266, 267, 268, 269, 270, 271, 445, 273, 206, -598,
1427 276, 1132, 1078, -598, 1079, 118, 97, 815, 1147, 430,
1428 -597, 555, 442, 1036, -597, 118, 289, 290, 292, -594,
1429 1080, 444, 298, -594, 450, 196, -595, 998, 999, 461,
1430 -595, 77, 1000, 196, -268, 1001, 603, 196, 321, -591,
1431 196, 467, 206, -591, 476, 331, 986, -614, 229, 1166,
1432 206, -614, 477, 229, 206, 229, 987, 206, 378, 379,
1433 555, 1165, 1123, -592, 1124, 478, -583, -592, 229, 196,
1434 -583, 119, -586, 193, 532, 533, -586, 993, 555, 644,
1435 1125, 930, 480, 614, 479, 1012, 206, 1038, 375, 376,
1436 377, 77, 78, 134, 223, 223, 81, 82, 924, 481,
1437 -606, 482, 77, 988, -606, 321, 171, 903, 497, 903,
1438 903, 903, 490, 501, 502, 503, 504, 505, 506, 507,
1439 508, 509, 510, 511, 861, 862, 863, 483, 77, 78,
1440 134, 118, 118, 81, 82, 77, 78, 134, -610, 484,
1441 81, 82, -610, 425, 531, 1074, 1075, 1076, 541, 644,
1442 696, 375, 376, 377, -607, -608, -604, -587, -607, -608,
1443 -604, -587, 644, 742, -585, 542, 97, 432, -585, 435,
1444 437, -589, 657, 658, 1050, -589, 993, 993, -590, 545,
1445 284, -588, -590, 97, 1064, -588, 1012, 1012, 1049, 298,
1446 395, 692, 321, 864, 865, 818, 544, 1040, 1041, 549,
1447 866, 867, 562, 1064, 563, 307, 77, 988, 118, 1093,
1448 171, 472, 193, 910, 658, 872, 873, 564, 1187, -268,
1449 118, 560, 1102, 118, 903, 567, 903, 1025, 1026, 395,
1450 1111, 196, 321, 1129, 1130, 274, 275, 573, 579, 307,
1451 580, 582, 589, 395, 993, 118, 118, 993, 206, 1064,
1452 1064, 588, 229, 229, 593, 597, 607, 601, 1012, 610,
1453 1012, 612, 613, 1012, 630, 634, 635, 1012, 637, 118,
1454 118, 645, 1012, 651, 119, 648, 653, 656, 118, 654,
1455 671, 674, 669, 659, 686, 781, 119, 745, 682, 1105,
1456 676, 687, 118, 777, 784, 799, 797, 197, 230, 230,
1457 822, 819, 821, 826, 831, 276, 825, 883, 827, 832,
1458 874, 1118, 1119, 993, 118, 118, 1064, 844, 97, 875,
1459 880, 1012, 911, 919, 922, 565, 877, 568, 876, 574,
1460 97, 934, 97, 927, 889, 1142, 1143, 581, 890, 191,
1461 298, 118, 1093, 928, 119, 891, 932, 590, 243, 244,
1462 245, 246, 247, 248, 249, 250, 251, 252, 119, 598,
1463 936, 973, 472, 689, 604, 1012, 894, 432, 974, 171,
1464 196, 1034, 976, 1037, 1070, 1089, 1106, 897, 1082, 1126,
1465 1168, 1169, 364, 1128, 915, 1144, 1101, 206, 1151, 272,
1466 1154, 1155, 1157, 277, 1160, 279, 1172, 283, 1162, 1159,
1467 1175, 1164, 285, 1176, 1178, 1183, 1185, 119, 1186, 1188,
1468 1189, 793, 293, 1195, 294, 1196, 365, 366, 367, 368,
1469 369, 370, 371, 372, 373, 374, 20, 21, 22, 23,
1470 253, 24, 452, 1003, 1190, 97, 29, 30, 197, 1177,
1471 33, 34, 1137, 36, 37, 38, 39, 791, 1044, 647,
1472 1112, 1051, 432, 1167, 1085, 939, 363, 576, 51, 52,
1473 896, 650, 789, 1182, 787, 661, 662, 925, 286, 811,
1474 239, 474, 298, 1161, 611, 538, 829, 0, 319, 485,
1475 320, 421, 197, 76, 0, 1043, 0, 198, 231, 231,
1476 197, 604, 0, 80, 197, 0, 432, 197, 0, 0,
1477 0, 306, 0, 0, 0, 230, 690, 691, 0, 0,
1478 230, 321, 230, 321, 306, 306, 306, 306, 306, 306,
1479 0, 333, 334, 0, 191, 230, 197, 0, 0, 0,
1480 0, 0, 191, 0, 0, 0, 191, 0, 779, 191,
1481 0, 793, 0, 429, 793, 0, 786, 408, 788, 0,
1482 0, 0, 795, 796, 0, 0, 0, 800, 0, 0,
1483 0, 590, 813, 0, 0, 0, 0, 472, 191, 0,
1484 441, 0, 0, 443, 0, 0, 0, 0, 0, 0,
1485 0, 451, 0, 0, 454, 0, 0, 321, 0, 0,
1486 0, 0, 0, 937, 497, 0, 0, 0, 0, 943,
1487 944, 945, 946, 947, 948, 949, 950, 951, 952, 953,
1488 0, 0, 0, 0, 0, 208, 237, 237, 850, 0,
1489 0, 0, 0, 0, 0, 0, 0, 0, 198, 0,
1490 0, 0, 0, 0, 459, 0, 0, 0, 0, 0,
1491 0, 0, 462, 463, 464, 465, 0, 0, 0, 793,
1492 0, 0, 851, 852, 853, 854, 855, 856, 857, 858,
1493 859, 860, 0, 459, 0, 0, 0, 900, 0, 0,
1494 0, 0, 198, 0, 459, 0, 0, 0, 0, 0,
1495 198, 0, 0, 0, 198, 0, 0, 198, 197, 0,
1496 0, 498, 0, 0, 0, 231, 0, 0, 546, 0,
1497 231, 0, 231, 923, 813, 0, 604, 0, 454, 230,
1498 230, 0, 0, 561, 0, 231, 198, 0, 566, 0,
1499 569, 0, 0, 0, 0, 0, 0, 0, 578, 0,
1500 191, 0, 583, 0, 0, 0, 0, 0, 543, 306,
1501 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
1502 306, 306, 306, 306, 306, 0, 208, 318, 0, 0,
1503 0, 0, 0, 303, 0, 0, 0, 0, 150, 151,
1504 152, 153, 154, 155, 0, 793, 0, 0, 0, 0,
1505 0, 0, 0, 0, 0, 156, 157, 158, 0, 306,
1506 -250, 0, 1017, 0, 0, 0, 303, 0, 0, 1024,
1507 208, 150, 151, 152, 153, 154, 155, 0, 208, 159,
1508 0, 0, 208, 0, 0, 208, 0, 0, 156, 157,
1509 158, 0, 0, 237, 0, 0, 0, 197, 237, 0,
1510 237, 0, 0, 0, 0, 306, 0, 0, 0, 0,
1511 306, 0, 159, 237, 208, 0, 0, 0, 0, 303,
1512 306, 0, 168, 0, 150, 151, 152, 153, 154, 155,
1513 620, 0, 0, 0, 454, 0, 0, 0, 0, 191,
1514 0, 156, 157, 158, 0, 0, 0, 0, 198, 0,
1515 0, 0, 0, 678, 0, 168, 0, 0, 683, 0,
1516 0, 0, 306, 0, 306, 159, 623, 625, 0, 231,
1517 231, 210, 238, 238, 1087, 0, 0, 97, 0, 0,
1518 0, 0, 0, 0, 0, 561, 0, 744, 0, 813,
1519 0, 1104, 0, 77, 304, 305, 432, 171, 465, 1109,
1520 1110, 0, 0, 0, 0, 0, 0, 0, 168, 745,
1521 746, 747, 748, 0, 0, 306, 749, 750, 751, 752,
1522 753, 754, 755, 459, 0, 459, 77, 304, 305, 0,
1523 171, 697, 0, 0, 0, 743, 0, 306, 0, 0,
1524 0, 0, 1146, 0, 0, 0, 0, 97, 0, 1150,
1525 1152, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1526 0, 813, 849, 0, 0, 0, 711, 0, 0, 0,
1527 0, 0, 0, 0, 0, 0, 208, 0, 0, 77,
1528 304, 305, 0, 171, 0, 0, 1171, 198, 828, 0,
1529 0, 0, 0, 0, 0, 0, 0, 237, 237, 834,
1530 0, 0, 0, 0, 0, 0, 1179, 1180, 0, 0,
1531 97, 0, 210, 1184, 792, 1098, 0, 892, 893, 303,
1532 0, 0, 711, 0, 150, 151, 152, 153, 154, 155,
1533 0, 0, 0, 306, 306, 306, 306, 306, 306, 842,
1534 843, 156, 157, 158, 0, 0, 0, 0, 0, 916,
1535 0, 0, 0, 0, 0, 0, 210, 0, 0, 0,
1536 0, 0, 0, 0, 210, 159, 0, 0, 210, 0,
1537 0, 210, 0, 0, 0, 0, 0, 0, 0, 238,
1538 0, 0, -533, 0, 238, 0, 238, 343, 0, 0,
1539 0, 0, 150, 151, 152, 153, 154, 155, 0, 238,
1540 210, 0, 0, 0, 0, 0, 0, 0, 168, 156,
1541 157, 158, 0, 0, 0, 208, 0, 0, 0, 0,
1542 0, 0, 306, 0, 0, 0, 0, 0, 0, 0,
1543 0, 0, 0, 159, 0, 0, 0, 0, 0, 792,
1544 0, 0, 0, 0, 303, 0, 0, 940, 0, 150,
1545 151, 152, 153, 154, 155, 1018, 0, 0, 0, 0,
1546 0, 0, 0, 0, 306, 0, 156, 157, 158, 0,
1547 0, 0, 0, 0, 1030, 0, 168, 0, 0, 77,
1548 304, 305, 0, 171, 0, 0, 0, 0, 0, 0,
1549 159, 0, 0, 0, 0, 306, 306, 306, 306, 306,
1550 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
1551 306, 306, 0, 306, 0, 0, 0, 0, 0, 0,
1552 -1, 1, 0, 0, 0, 0, 0, 465, 0, 0,
1553 0, 0, 0, 168, 0, 0, 0, 0, 0, 0,
1554 0, 0, 0, 0, -268, 0, 0, 77, 304, 305,
1555 0, 171, 0, 0, 2, 0, 0, 0, 0, 0,
1556 0, 0, 210, 0, 0, 3, 0, 0, 1088, 0,
1557 306, 0, 1042, 0, 0, 0, 0, 0, 0, 0,
1558 0, 0, 0, 238, 238, 0, 0, -400, -400, -400,
1559 0, 4, 0, 0, 0, 0, 5, 6, 7, 0,
1560 0, 0, 0, 0, 77, 304, 305, 711, 171, 0,
1561 0, 8, 9, 10, 0, 0, 0, 0, 0, 0,
1562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1563 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1564 20, 21, 22, 23, 1153, 24, 25, 26, 27, 28,
1565 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1566 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1567 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1568 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1569 69, 70, 71, 72, 73, 74, 75, 76, 0, 0,
1570 0, 210, 0, 0, 77, 78, 79, 80, 0, 81,
1571 82, 83, -2, 1, 0, 0, 0, 0, 0, 0,
1572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1573 0, 0, 0, 0, 1191, 0, -268, 0, 0, 0,
1574 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
1575 0, 0, 0, 0, 0, 0, 0, 3, 0, 0,
1576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1577 0, 0, 0, 0, 0, 0, 0, 0, 0, -400,
1578 -400, -400, 0, 4, 306, 0, 0, 0, 5, 6,
1579 7, 0, 0, 0, 0, 0, 0, 306, 0, 0,
1580 0, 0, 0, 8, 9, 10, 0, 0, 0, 0,
1581 0, 0, 0, 0, 0, 0, 0, 0, 306, 0,
1582 0, 0, 11, 12, 13, 0, 14, 15, 16, 17,
1583 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1584 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1585 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1586 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1587 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1588 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1589 0, 0, 0, 0, 0, 0, 77, 78, 79, 80,
1590 136, 81, 82, 83, 0, 137, 138, 139, 0, 140,
1591 141, 142, 143, 144, 145, 146, 147, 148, -533, 535,
1592 0, 0, 0, 149, 0, 0, 0, 0, 150, 151,
1593 152, 153, 154, 155, 0, 0, 0, 0, 0, 0,
1594 0, -268, -268, 0, 3, 156, 157, 158, 0, 0,
1595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1596 0, 0, 0, 0, 0, 0, -400, -400, -400, 159,
1597 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 0, 0, 161, 162, 163, 164, 165, 166,
1600 0, 0, 0, 0, 0, 0, 0, 0, 167, 11,
1601 12, 13, 168, 14, 15, 16, 17, 18, 19, 20,
1602 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1603 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1604 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1605 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1606 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1607 70, 71, 72, 73, 74, 75, 76, 0, 0, 0,
1608 0, 0, 0, 77, 169, 536, 80, 171, 172, 82,
1609 83, 136, 0, 0, 0, 0, 137, 138, 139, 0,
1610 140, 141, 142, 143, 144, 145, 146, 147, 148, -533,
1611 0, 0, 0, 0, 149, 0, 0, 0, 0, 150,
1612 151, 152, 153, 154, 155, 0, 0, 0, 0, 0,
1613 0, 0, -268, -268, 0, 0, 156, 157, 158, 0,
1614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1615 0, 0, 0, 0, 0, 0, 0, -268, -268, -268,
1616 159, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1618 0, 0, 0, 0, 0, 161, 162, 163, 164, 165,
1619 166, 0, 0, 0, 0, 0, 0, 0, 0, 167,
1620 -268, -268, -268, 168, -268, -268, -268, -268, -268, -268,
1621 -268, -268, -268, -268, 0, -268, -268, -268, -268, -268,
1622 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1623 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1624 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1625 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1626 -268, -268, -268, -268, -268, -268, -268, -268, 0, 0,
1627 0, 0, 0, 0, 77, 169, 170, -268, 171, 172,
1628 82, -268, 213, 0, 0, 0, 0, 137, 138, 139,
1629 0, 0, 214, 142, 143, 144, 145, 146, 147, 215,
1630 -533, -537, 0, 0, 0, 216, 0, 0, 0, 0,
1631 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1632 0, 0, 0, -268, -268, 0, 0, 156, 157, 158,
1633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1634 0, 0, 0, 0, 0, 0, 0, 0, -268, -268,
1635 -268, 159, 0, 0, 0, 0, 0, 0, 0, 0,
1636 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1637 0, 0, 0, 0, 0, 0, 161, 162, 163, 164,
1638 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1639 167, -268, -268, -268, 168, -268, -268, -268, -268, -268,
1640 -268, -268, -268, -268, -268, 0, -268, -268, -268, -268,
1641 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1642 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1643 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1644 -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
1645 -268, -268, -268, -268, -268, -268, -268, -268, -268, 0,
1646 0, 0, 0, 0, 0, 77, 169, 170, -268, 171,
1647 217, 218, -268, 213, 0, 0, 0, 0, 137, 138,
1648 139, 0, 0, 214, 142, 143, 144, 145, 146, 147,
1649 215, -478, -478, 0, 0, 0, 216, -478, 0, 0,
1650 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1651 0, 0, 0, 0, -268, -268, 0, 136, 156, 157,
1652 158, 0, 137, 138, 139, 0, 140, 141, 142, 143,
1653 144, 145, 146, 147, 148, -533, 0, 0, 0, 0,
1654 149, 0, 159, 0, 0, 150, 151, 152, 153, 154,
1655 155, 0, 0, 0, 0, 0, 0, 0, -268, -268,
1656 0, 0, 156, 157, 158, 0, -478, 161, 162, 163,
1657 164, 165, 166, 0, 0, 0, 0, 0, 0, 0,
1658 0, 167, 0, 0, 0, 168, 159, 0, 0, 0,
1659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1661 160, 161, 162, 163, 164, 165, 166, 0, 0, 0,
1662 0, 0, 0, 0, 0, 167, 0, 0, 0, 168,
1663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1665 0, 0, 0, 0, 0, 0, 77, 169, 170, 0,
1666 171, 217, 218, 0, 0, 0, 136, 0, 0, 0,
1667 0, 137, 138, 139, 0, 140, 141, 142, 143, 144,
1668 145, 146, 147, 148, -533, 0, 0, 0, 0, 149,
1669 0, 0, 0, 0, 150, 151, 152, 153, 154, 155,
1670 77, 169, 170, 0, 171, 172, 82, -268, -268, 0,
1671 213, 156, 157, 158, 0, 137, 138, 139, 0, 0,
1672 214, 142, 143, 144, 145, 146, 147, 215, -533, -537,
1673 0, 0, 0, 216, 0, 159, 0, 0, 150, 151,
1674 152, 153, 154, 155, 0, 0, 0, 0, 0, 0,
1675 0, -268, -268, 0, 0, 156, 157, 158, 0, -506,
1676 161, 162, 163, 164, 165, 166, 0, 0, 0, 0,
1677 0, 0, 0, 0, 167, 0, 0, 0, 168, 159,
1678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1680 0, 0, 0, -474, 161, 162, 163, 164, 165, 166,
1681 0, 0, 0, 0, 0, 0, 0, 0, 167, 0,
1682 0, 0, 168, 0, 0, 0, 0, 0, 0, 0,
1683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1684 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,
1685 169, 170, 0, 171, 172, 82, 0, 0, 0, 136,
1686 0, 0, 0, 0, 137, 138, 139, 0, 140, 141,
1687 142, 143, 144, 145, 146, 147, 148, -533, 626, 0,
1688 0, 0, 149, 0, 0, 0, 0, 150, 151, 152,
1689 153, 154, 155, 77, 169, 170, 0, 171, 217, 218,
1690 -268, -268, 0, 213, 156, 157, 158, 0, 137, 138,
1691 139, 0, 0, 214, 142, 143, 144, 145, 146, 147,
1692 215, -533, -537, 0, 0, 0, 216, 0, 159, 0,
1693 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1694 0, 0, 0, 0, -268, -268, 0, 0, 156, 157,
1695 158, 0, 0, 161, 162, 163, 164, 165, 166, 0,
1696 0, 0, 0, 0, 0, 0, 0, 167, 0, 0,
1697 0, 168, 159, 0, 0, 0, 0, 0, 0, 0,
1698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1699 0, 0, 0, 0, 0, 0, 0, 161, 162, 163,
1700 164, 165, 166, 0, 0, 0, 0, 0, 0, 0,
1701 0, 167, 0, 0, 0, 168, 0, 0, 0, 0,
1702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1703 0, 303, 495, 0, 0, 0, 150, 151, 152, 153,
1704 154, 155, 77, 169, 170, 0, 171, 172, 82, 0,
1705 0, 0, 136, 156, 157, 158, 0, 137, 138, 139,
1706 0, 140, 141, 142, 143, 144, 145, 146, 147, 148,
1707 -533, 0, 0, 0, 0, 149, 0, 159, 0, 0,
1708 150, 151, 152, 153, 154, 155, 77, 169, 170, 0,
1709 171, 217, 218, -268, -268, 0, 0, 156, 157, 158,
1710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1712 168, 159, 0, 0, 0, 0, 0, 0, 0, 0,
1713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1714 0, 0, 0, 0, 0, 0, 161, 162, 163, 164,
1715 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1716 167, 137, 138, 139, 168, 140, 141, 142, 143, 144,
1717 145, 146, 147, 215, -533, 553, 0, 0, 0, 343,
1718 0, 0, 0, 0, 150, 151, 152, 153, 154, 155,
1719 0, 77, 304, 305, 0, 171, 0, -268, -268, 0,
1720 3, 156, 157, 158, 0, 0, 0, 0, 0, 0,
1721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1722 0, 0, 0, 0, 0, 159, 4, 0, 0, 0,
1723 0, 0, 0, 0, 0, 77, 169, 170, 0, 171,
1724 172, 82, 0, 0, 0, 0, 0, 0, 0, 0,
1725 161, 162, 163, 164, 165, 166, 0, 0, 0, 0,
1726 0, 0, 0, 0, 554, 11, 12, 13, 168, 14,
1727 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1728 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1729 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1730 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1731 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1732 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1733 74, 75, 76, 0, 0, 0, 0, 0, 0, 77,
1734 169, 536, 80, 171, 172, 82, 83, 137, 138, 139,
1735 0, 140, 141, 142, 143, 144, 145, 146, 147, 215,
1736 -533, 627, 0, 0, 0, 343, 0, 0, 0, 0,
1737 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
1738 0, 0, 0, -268, -268, 0, 3, 156, 157, 158,
1739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741 0, 159, 4, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 0, 0, 0, 0, 0, 161, 162, 163, 164,
1744 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1745 167, 11, 12, 13, 168, 14, 15, 16, 17, 18,
1746 19, 20, 21, 22, 23, 0, 24, 25, 26, 27,
1747 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1748 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1749 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1750 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1751 68, 69, 70, 71, 72, 73, 74, 75, 76, 0,
1752 0, 0, 0, 0, 0, 77, 169, 536, 80, 171,
1753 172, 82, 83, 137, 138, 139, 0, 140, 141, 142,
1754 143, 144, 145, 146, 147, 215, -533, 639, 0, 0,
1755 0, 343, 0, 0, 0, 0, 150, 151, 152, 153,
1756 154, 155, 0, 0, 0, 0, 0, 0, 0, -268,
1757 -268, 0, 3, 156, 157, 158, 0, 0, 0, 0,
1758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1759 0, 0, 0, 0, 0, 0, 0, 159, 4, 0,
1760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1762 0, 0, 161, 162, 163, 164, 165, 166, 0, 0,
1763 0, 0, 0, 0, 0, 0, 640, 11, 12, 13,
1764 168, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1765 23, 0, 24, 25, 26, 27, 28, 29, 30, 31,
1766 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1767 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1768 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1769 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1770 72, 73, 74, 75, 76, 0, 0, 0, 0, 0,
1771 0, 77, 169, 536, 80, 171, 172, 82, 83, 137,
1772 138, 139, 0, 140, 141, 142, 143, 144, 145, 146,
1773 147, 215, -533, 638, 0, 0, 0, 343, 0, 0,
1774 0, 0, 150, 151, 152, 153, 154, 155, 0, 0,
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 156,
1776 157, 158, 0, 137, 138, 139, 0, 140, 141, 142,
1777 143, 144, 145, 146, 147, 215, -533, 642, 0, 0,
1778 0, 343, 0, 159, 0, 0, 150, 151, 152, 153,
1779 154, 155, 0, 0, 0, 0, 0, 0, 0, 0,
1780 0, 0, 0, 156, 157, 158, 0, 0, 161, 162,
1781 163, 164, 165, 166, 0, 0, 0, 0, 0, 0,
1782 0, 0, 167, 0, 0, 0, 168, 159, 0, 0,
1783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1785 0, 0, 161, 162, 163, 164, 165, 166, 0, 0,
1786 0, 0, 0, 0, 0, 0, 643, 137, 138, 139,
1787 168, 140, 141, 142, 143, 144, 145, 146, 147, 215,
1788 -533, 695, 0, 0, 0, 343, 0, 0, 0, 0,
1789 150, 151, 152, 153, 154, 155, 0, 77, 169, 170,
1790 0, 171, 172, 82, 0, 0, 0, 156, 157, 158,
1791 0, 137, 138, 139, 0, 140, 141, 142, 143, 144,
1792 145, 146, 147, 215, -533, 773, 0, 0, 0, 343,
1793 0, 159, 0, 0, 150, 151, 152, 153, 154, 155,
1794 0, 77, 169, 170, 0, 171, 172, 82, 0, 0,
1795 0, 156, 157, 158, 0, 0, 161, 162, 163, 164,
1796 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1797 167, 0, 0, 0, 168, 159, 0, 0, 0, 0,
1798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1800 161, 162, 163, 164, 165, 166, 0, 0, 0, 0,
1801 0, 0, 0, 0, 167, 137, 138, 139, 168, 140,
1802 141, 142, 143, 144, 145, 146, 147, 215, -533, 774,
1803 0, 0, 0, 343, 0, 0, 0, 0, 150, 151,
1804 152, 153, 154, 155, 0, 77, 169, 170, 0, 171,
1805 172, 82, 0, 0, 0, 156, 157, 158, 0, 137,
1806 138, 139, 0, 140, 141, 142, 143, 144, 145, 146,
1807 147, 215, -533, 776, 0, 0, 0, 343, 0, 159,
1808 0, 0, 150, 151, 152, 153, 154, 155, 0, 77,
1809 169, 170, 0, 171, 172, 82, 0, 0, 0, 156,
1810 157, 158, 0, 0, 161, 162, 163, 164, 165, 166,
1811 0, 0, 0, 0, 0, 0, 0, 0, 775, 0,
1812 0, 0, 168, 159, 0, 0, 0, 0, 0, 0,
1813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1814 0, 0, 0, 0, 0, 0, 0, 0, 161, 162,
1815 163, 164, 165, 166, 0, 0, 0, 0, 0, 0,
1816 0, 0, 167, 137, 138, 139, 168, 140, 141, 142,
1817 143, 144, 145, 146, 147, 215, -533, 899, 0, 0,
1818 0, 343, 0, 0, 0, 0, 150, 151, 152, 153,
1819 154, 155, 0, 77, 169, 170, 0, 171, 172, 82,
1820 0, 0, 0, 156, 157, 158, 0, 137, 138, 139,
1821 0, 140, 141, 142, 143, 144, 145, 146, 147, 215,
1822 -533, 0, 0, 0, 0, 343, 0, 159, 0, 0,
1823 150, 151, 152, 153, 154, 155, 0, 77, 169, 170,
1824 0, 171, 172, 82, 0, 0, 0, 156, 157, 158,
1825 0, 0, 161, 162, 163, 164, 165, 166, 0, 0,
1826 0, 0, 0, 0, 0, 0, 167, 0, 0, 0,
1827 168, 159, 0, 0, 0, 0, 0, 0, 0, 0,
1828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1829 0, 0, 0, 0, 0, 0, 161, 162, 163, 164,
1830 165, 166, -134, 0, 0, 0, 0, -134, 0, 0,
1831 167, 0, 0, 0, 168, 0, 0, 0, 0, 0,
1832 0, 0, 0, 0, 0, 0, 0, 0, 3, 0,
1833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1834 0, 77, 169, 170, 0, 171, 172, 82, 0, 0,
1835 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
1836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838 0, -536, 0, 0, 0, 77, 169, 170, 0, 171,
1839 172, 82, 0, 11, 12, 13, 0, 14, 15, 16,
1840 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
1841 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1842 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1843 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1844 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1845 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1846 76, 0, 0, 0, 0, 0, 0, 0, 0, 131,
1847 80, 11, 12, 13, 83, 14, 15, 16, 17, 18,
1848 19, 20, 21, 22, 23, 0, 24, 25, 26, 27,
1849 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1850 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1851 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1852 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1853 68, 69, 70, 71, 72, 73, 74, 75, 76, -676,
1854 0, 0, 0, 0, 0, 0, 0, 131, 80, 0,
1855 0, 0, 83, 0, 0, 0, 0, 0, 0, 0,
1856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1858 0, 0, 0, 0, -678, -678, -678, 0, 0, 0,
1859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1860 0, 0, 0, 0, -678, 0, 0, 0, 0, 0,
1861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 0, 0, 0, 0, 0, 0, -678, -678, -678,
1863 0, -678, -678, -678, -678, -678, -678, -678, -678, -678,
1864 -678, 0, -678, -678, -678, -678, -678, -678, -678, -678,
1865 -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
1866 -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
1867 -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
1868 -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
1869 -678, -678, -678, -678, -678, -268, 0, 0, 0, 0,
1870 0, 0, 0, 0, -678, 2, 303, 0, -678, 599,
1871 0, 150, 151, 152, 153, 154, 155, 0, 0, 0,
1872 0, 0, 0, 0, 0, 0, 0, 0, 156, 157,
1873 158, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1875 0, 0, 159, 0, 0, 0, 0, 0, 0, 0,
1876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1878 0, 11, 12, 13, 0, 14, 15, 16, 17, 18,
1879 19, 20, 21, 22, 23, 168, 24, 25, 26, 27,
1880 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1881 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1882 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1883 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1884 68, 69, 70, 71, 72, 73, 74, 75, 76, 0,
1885 0, 0, 0, 0, 0, 77, 78, 79, 80, 0,
1886 81, 82, 83, 0, 0, 0, 77, 304, 305, 303,
1887 171, 0, 680, 0, 150, 151, 152, 153, 154, 155,
1888 303, 938, 0, 0, 0, 150, 151, 152, 153, 154,
1889 155, 156, 157, 158, 0, 0, 0, 0, 0, 0,
1890 303, -250, 156, 157, 158, 150, 151, 152, 153, 154,
1891 155, 332, 0, 0, 0, 159, 150, 151, 152, 153,
1892 154, 155, 156, 157, 158, 0, 159, 0, 0, 0,
1893 0, 622, 0, 156, 157, 158, 150, 151, 152, 153,
1894 154, 155, 0, 0, 0, 0, 159, 0, 0, 0,
1895 0, 0, 0, 156, 157, 158, 624, 159, 168, 0,
1896 0, 150, 151, 152, 153, 154, 155, 0, 0, 168,
1897 0, 0, 0, 0, 0, 0, 0, 159, 156, 157,
1898 158, 0, 0, 0, 0, 0, 0, 0, 698, 168,
1899 0, 0, 0, 699, 700, 701, 702, 703, 704, 0,
1900 168, 0, 159, 0, 0, 0, 0, 0, 0, 0,
1901 156, 705, 706, 0, 0, 0, 0, 0, 0, 0,
1902 168, 0, 0, 0, 0, 0, 0, 0, 0, 77,
1903 304, 305, 0, 171, 707, 0, 0, 0, 0, 0,
1904 77, 304, 305, 0, 171, 168, 0, 0, 0, 0,
1905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1906 77, 304, 305, 0, 171, 0, 0, 0, 0, 0,
1907 0, 77, 304, 305, 0, 171, 0, 168, 0, 0,
1908 0, 0, 0, 0, 0, -194, -194, 0, 0, 0,
1909 0, 77, 304, 305, 0, 171, 0, 0, 0, 0,
1910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1911 0, 0, 0, 0, 0, 0, 77, 304, 305, 0,
1912 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1914 0, 0, 0, 0, 0, 0, 0, 0, 77, 708,
1915 709, 0, 171, 11, 12, 13, 0, 14, 15, 16,
1916 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
1917 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1918 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1919 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1920 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1921 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1922 76, 3, 0, 0, 0, 0, 0, 0, 0, 131,
1923 80, 0, 0, 0, 83, 0, 0, 0, 0, 0,
1924 0, 0, 0, -400, -400, -400, 0, 4, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1928 0, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1929 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1930 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1931 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1932 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1933 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1934 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1935 73, 74, 75, 76, 3, 0, 0, 0, 0, 0,
1936 0, 0, 131, 80, 0, 0, 0, 83, 0, 0,
1937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1938 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1941 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
1942 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1943 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1944 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1945 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1946 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1947 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1948 70, 71, 72, 73, 74, 75, 76, 3, 0, 0,
1949 0, 0, 0, 77, 1047, 131, 80, 0, 0, 0,
1950 83, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1951 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
1952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1955 0, 0, 11, 12, 13, 0, 14, 15, 16, 17,
1956 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1957 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1958 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1959 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1960 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1961 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1962 -400, -400, -400, 0, 0, 0, 0, 0, 131, 80,
1963 0, 0, 0, 83, 0, 0, 0, 0, 0, 0,
1964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1965 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1966 0, 0, 0, 11, 12, 13, 0, 14, 15, 16,
1967 17, 18, 19, 20, 21, 22, 23, 0, 24, 25,
1968 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1969 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1970 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1971 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1972 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1973 76, 8, 9, 10, 0, 0, 0, 0, 0, 131,
1974 80, 0, 0, 0, 83, 0, 0, 0, 0, 0,
1975 11, 12, 13, 0, 14, 15, 16, 17, 18, 19,
1976 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1977 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1978 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1979 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1980 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1981 69, 70, 71, 72, 73, 74, 75, 76, 0, 0,
1982 0, 0, 0, 0, 0, 0, 131, 80, 11, 12,
1983 13, 83, 14, 15, 16, 17, 18, 19, 20, 21,
1984 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1985 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1986 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1987 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1988 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1989 71, 72, 73, 74, 75, 76, 0, 0, 0, 0,
1990 0, 0, 0, 0, 131, 80, 0, 0, 0, 83
885824d3 1991};
1992
e55c0c6d 1993static const short yycheck[] =
1994{
1995 0, 0, 137, 3, 2, 117, 425, 7, 8, 9,
1996 10, 388, 441, 0, 0, 343, 3, 473, 5, 530,
1997 632, 632, 389, 632, 390, 378, 379, 8, 278, 295,
1998 528, 27, 380, 381, 632, 601, 597, 150, 151, 152,
1999 153, 154, 155, 382, 383, 384, 385, 8, 19, 216,
2000 386, 387, 471, 21, 221, 792, 223, 25, 795, 5,
2001 9, 10, 907, 451, 914, 19, 0, 486, 670, 3,
2002 895, 0, 55, 7, 227, 297, 688, 688, 24, 688,
2003 5, 887, 34, 21, 84, 84, 636, 25, 34, 798,
2004 688, 9, 10, 426, 5, 804, 18, 84, 84, 24,
2005 41, 39, 18, 1059, 1060, 258, 539, 24, 24, 34,
2006 24, 98, 636, 28, 25, 56, 682, 117, 34, 21,
2007 34, 632, 109, 110, 557, 27, 124, 783, 41, 44,
2008 757, 24, 5, 133, 632, 133, 26, 636, 28, 18,
2009 28, 34, 21, 56, 144, 772, 133, 24, 5, 149,
2010 84, 24, 25, 26, 44, 84, 44, 34, 110, 111,
2011 21, 34, 581, 900, 1014, 21, 27, 167, 149, 25,
2012 1126, 996, 997, 26, 655, 28, 1021, 688, 1023, 18,
2013 986, 987, 21, 117, 603, 8, 9, 10, 149, 636,
2014 688, 44, 188, 193, 636, 583, 798, 53, 54, 133,
2015 183, 201, 804, 203, 18, 205, 18, 757, 208, 918,
2016 144, 23, 193, 184, 185, 186, 216, 673, 189, 190,
2017 188, 221, 772, 223, 205, 21, 8, 208, 478, 25,
2018 452, 559, 193, 757, 180, 181, 236, 237, 184, 185,
2019 201, 87, 188, 1068, 205, 1070, 399, 208, 772, 582,
2020 906, 1057, 908, 420, 421, 632, 237, 21, 757, 184,
2021 185, 25, 375, 376, 377, 632, 632, 216, 184, 185,
2022 184, 185, 221, 772, 223, 26, 237, 277, 277, 632,
2023 280, 281, 282, 34, 632, 5, 884, 236, 21, 1026,
2024 425, 184, 185, 632, 294, 294, 632, 24, 216, 5,
2025 300, 782, 21, 221, 785, 223, 25, 184, 185, 996,
2026 757, 688, 578, 563, 24, 757, 918, 645, 236, 25,
2027 18, 688, 688, 21, 322, 772, 149, 184, 185, 186,
2028 772, 34, 189, 190, 321, 688, 471, 21, 24, 18,
2029 688, 25, 21, 277, 23, 345, 280, 281, 282, 688,
2030 1175, 486, 688, 353, 21, 355, 922, 607, 25, 815,
2031 294, 973, 973, 476, 973, 926, 300, 149, 879, 788,
2032 193, 5, 622, 21, 624, 973, 21, 25, 201, 877,
2033 25, 29, 205, 5, 87, 208, 18, 24, 21, 21,
2034 1077, 25, 25, 216, 217, 1082, 24, 21, 221, 399,
2035 223, 25, 24, 25, 26, 88, 89, 25, 32, 33,
2036 28, 193, 34, 236, 237, 18, 49, 50, 399, 201,
2037 420, 421, 26, 205, 28, 904, 208, 427, 907, 429,
2038 429, 417, 24, 21, 26, 118, 119, 25, 399, 439,
2039 44, 441, 428, 443, 1131, 432, 581, 22, 698, 132,
2040 24, 451, 26, 451, 454, 237, 1054, 21, 458, 34,
2041 34, 25, 973, 21, 184, 185, 186, 25, 603, 189,
2042 190, 420, 421, 21, 24, 973, 26, 25, 184, 185,
2043 186, 184, 185, 189, 190, 21, 189, 190, 18, 25,
2044 490, 21, 8, 9, 10, 429, 18, 874, 18, 499,
2045 500, 21, 420, 421, 16, 439, 24, 441, 875, 443,
2046 876, 864, 865, 49, 50, 32, 33, 451, 866, 867,
2047 454, 184, 185, 186, 458, 1123, 189, 190, 16, 868,
2048 869, 870, 871, 16, 203, 358, 872, 873, 538, 539,
2049 25, 26, 1021, 28, 1023, 21, 546, 546, 16, 25,
2050 184, 185, 186, 539, 554, 189, 190, 557, 558, 44,
2051 15, 673, 184, 185, 186, 499, 500, 189, 190, 25,
2052 26, 557, 18, 49, 50, 21, 399, 538, 22, 37,
2053 38, 100, 26, 583, 28, 583, 699, 700, 701, 702,
2054 703, 704, 22, 51, 52, 21, 973, 420, 421, 25,
2055 44, 21, 29, 590, 932, 25, 973, 973, 22, 184,
2056 185, 186, 546, 22, 189, 190, 24, 399, 26, 18,
2057 973, 887, 21, 49, 50, 973, 34, 18, 628, 629,
2058 21, 21, 632, 149, 973, 25, 39, 973, 21, 40,
2059 640, 641, 25, 643, 49, 50, 1102, 37, 38, 583,
2060 8, 9, 10, 788, 920, 67, 68, 69, 658, 1088,
2061 660, 51, 52, 55, 37, 38, 21, 8, 19, 669,
2062 25, 94, 672, 673, 674, 673, 345, 193, 51, 52,
2063 678, 24, 37, 38, 353, 201, 355, 18, 688, 205,
2064 21, 34, 208, 188, 25, 830, 51, 52, 94, 0,
2065 216, 22, 3, 815, 21, 221, 18, 223, 25, 21,
2066 11, 12, 22, 25, 22, 538, 982, 34, 35, 36,
2067 236, 237, 24, 21, 658, 991, 660, 25, 184, 185,
2068 186, 1150, 21, 189, 190, 669, 25, 94, 672, 673,
2069 24, 24, 26, 26, 28, 1011, 53, 54, 861, 862,
2070 863, 34, 24, 21, 19, 27, 538, 25, 427, 20,
2071 44, 1027, 34, 47, 48, 1184, 24, 21, 26, 21,
2072 28, 25, 94, 25, 27, 775, 184, 185, 186, 24,
2073 26, 189, 190, 84, 6, 7, 44, 1037, 34, 47,
2074 48, 149, 24, 780, 26, 34, 783, 1063, 99, 100,
2075 101, 102, 103, 104, 105, 106, 23, 108, 149, 21,
2076 111, 25, 26, 25, 28, 815, 117, 815, 1084, 18,
2077 21, 490, 18, 936, 25, 825, 127, 128, 129, 21,
2078 44, 18, 133, 25, 24, 193, 21, 180, 181, 22,
2079 25, 184, 185, 201, 24, 188, 26, 205, 149, 21,
2080 208, 18, 193, 25, 25, 156, 24, 21, 216, 27,
2081 201, 25, 25, 221, 205, 223, 34, 208, 32, 33,
2082 539, 25, 26, 21, 28, 24, 21, 25, 236, 237,
2083 25, 815, 21, 399, 42, 43, 25, 887, 557, 558,
2084 44, 825, 18, 21, 335, 895, 237, 25, 34, 35,
2085 36, 184, 185, 186, 420, 421, 189, 190, 191, 18,
2086 21, 18, 184, 185, 25, 216, 188, 904, 359, 906,
2087 907, 908, 19, 364, 365, 366, 367, 368, 369, 370,
2088 371, 372, 373, 374, 34, 35, 36, 18, 184, 185,
2089 186, 941, 942, 189, 190, 184, 185, 186, 21, 18,
2090 189, 190, 25, 254, 395, 51, 52, 53, 9, 628,
2091 629, 34, 35, 36, 21, 21, 21, 21, 25, 25,
2092 25, 25, 641, 973, 21, 11, 277, 278, 25, 280,
2093 281, 21, 20, 21, 984, 25, 986, 987, 21, 24,
2094 1102, 21, 25, 294, 994, 25, 996, 997, 984, 300,
2095 21, 22, 303, 32, 33, 674, 25, 941, 942, 11,
2096 49, 50, 90, 1013, 21, 1150, 184, 185, 1018, 1018,
2097 188, 322, 538, 20, 21, 53, 54, 19, 1163, 19,
2098 1030, 1030, 1030, 1033, 1021, 19, 1023, 20, 21, 21,
2099 22, 399, 343, 32, 33, 109, 110, 19, 90, 1184,
2100 27, 24, 21, 21, 1054, 1055, 1056, 1057, 399, 1059,
2101 1060, 25, 420, 421, 22, 18, 21, 24, 1068, 25,
2102 1070, 11, 24, 1073, 24, 24, 27, 1077, 25, 1079,
2103 1080, 24, 1082, 20, 1018, 23, 19, 19, 1088, 20,
2104 5, 25, 21, 23, 22, 20, 1030, 72, 24, 1033,
2105 27, 24, 1102, 25, 20, 25, 27, 8, 9, 10,
2106 27, 18, 25, 25, 25, 416, 21, 185, 22, 25,
2107 29, 1055, 1056, 1123, 1124, 1125, 1126, 24, 429, 39,
2108 25, 1131, 18, 25, 24, 436, 55, 438, 40, 440,
2109 441, 18, 443, 25, 90, 1079, 1080, 448, 90, 8,
2110 451, 1151, 1151, 25, 1088, 90, 25, 458, 66, 67,
2111 68, 69, 70, 71, 72, 73, 74, 75, 1102, 470,
2112 25, 21, 473, 614, 475, 1175, 90, 478, 18, 188,
2113 538, 18, 40, 21, 23, 18, 190, 90, 24, 21,
2114 1124, 1125, 23, 22, 90, 22, 90, 538, 21, 107,
2115 22, 20, 20, 111, 25, 113, 192, 115, 25, 90,
2116 40, 27, 120, 27, 25, 18, 20, 1151, 20, 27,
2117 25, 662, 130, 0, 132, 0, 57, 58, 59, 60,
2118 61, 62, 63, 64, 65, 66, 120, 121, 122, 123,
2119 84, 125, 300, 895, 1175, 546, 130, 131, 149, 1144,
2120 134, 135, 1073, 137, 138, 139, 140, 661, 976, 560,
2121 1045, 985, 563, 1123, 1013, 845, 174, 443, 152, 153,
2122 770, 563, 660, 1151, 658, 576, 577, 815, 124, 672,
2123 10, 322, 583, 1107, 490, 399, 688, -1, 147, 341,
2124 149, 236, 193, 177, -1, 973, -1, 8, 9, 10,
2125 201, 602, -1, 187, 205, -1, 607, 208, -1, -1,
2126 -1, 137, -1, -1, -1, 216, 617, 618, -1, -1,
2127 221, 622, 223, 624, 150, 151, 152, 153, 154, 155,
2128 -1, 157, 158, -1, 193, 236, 237, -1, -1, -1,
2129 -1, -1, 201, -1, -1, -1, 205, -1, 649, 208,
2130 -1, 792, -1, 261, 795, -1, 657, 216, 659, -1,
2131 -1, -1, 663, 664, -1, -1, -1, 668, -1, -1,
2132 -1, 672, 673, -1, -1, -1, -1, 678, 237, -1,
2133 288, -1, -1, 291, -1, -1, -1, -1, -1, -1,
2134 -1, 299, -1, -1, 302, -1, -1, 698, -1, -1,
2135 -1, -1, -1, 844, 845, -1, -1, -1, -1, 850,
2136 851, 852, 853, 854, 855, 856, 857, 858, 859, 860,
2137 -1, -1, -1, -1, -1, 8, 9, 10, 23, -1,
2138 -1, -1, -1, -1, -1, -1, -1, -1, 149, -1,
2139 -1, -1, -1, -1, 303, -1, -1, -1, -1, -1,
2140 -1, -1, 311, 312, 313, 314, -1, -1, -1, 900,
2141 -1, -1, 57, 58, 59, 60, 61, 62, 63, 64,
2142 65, 66, -1, 332, -1, -1, -1, 778, -1, -1,
2143 -1, -1, 193, -1, 343, -1, -1, -1, -1, -1,
2144 201, -1, -1, -1, 205, -1, -1, 208, 399, -1,
2145 -1, 360, -1, -1, -1, 216, -1, -1, 416, -1,
2146 221, -1, 223, 814, 815, -1, 817, -1, 426, 420,
2147 421, -1, -1, 431, -1, 236, 237, -1, 436, -1,
2148 438, -1, -1, -1, -1, -1, -1, -1, 446, -1,
2149 399, -1, 450, -1, -1, -1, -1, -1, 407, 375,
2150 376, 377, 378, 379, 380, 381, 382, 383, 384, 385,
2151 386, 387, 388, 389, 390, -1, 149, 18, -1, -1,
2152 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2153 31, 32, 33, 34, -1, 1026, -1, -1, -1, -1,
2154 -1, -1, -1, -1, -1, 46, 47, 48, -1, 425,
2155 18, -1, 903, -1, -1, -1, 24, -1, -1, 910,
2156 193, 29, 30, 31, 32, 33, 34, -1, 201, 70,
2157 -1, -1, 205, -1, -1, 208, -1, -1, 46, 47,
2158 48, -1, -1, 216, -1, -1, -1, 538, 221, -1,
2159 223, -1, -1, -1, -1, 471, -1, -1, -1, -1,
2160 476, -1, 70, 236, 237, -1, -1, -1, -1, 24,
2161 486, -1, 113, -1, 29, 30, 31, 32, 33, 34,
2162 529, -1, -1, -1, 582, -1, -1, -1, -1, 538,
2163 -1, 46, 47, 48, -1, -1, -1, -1, 399, -1,
2164 -1, -1, -1, 601, -1, 113, -1, -1, 606, -1,
2165 -1, -1, 528, -1, 530, 70, 532, 533, -1, 420,
2166 421, 8, 9, 10, 1015, -1, -1, 1018, -1, -1,
2167 -1, -1, -1, -1, -1, 633, -1, 635, -1, 1030,
2168 -1, 1032, -1, 184, 185, 186, 1037, 188, 597, 1040,
2169 1041, -1, -1, -1, -1, -1, -1, -1, 113, 72,
2170 73, 74, 75, -1, -1, 581, 79, 80, 81, 82,
2171 83, 84, 85, 622, -1, 624, 184, 185, 186, -1,
2172 188, 630, -1, -1, -1, 634, -1, 603, -1, -1,
2173 -1, -1, 1083, -1, -1, -1, -1, 1088, -1, 1090,
2174 1091, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2175 -1, 1102, 710, -1, -1, -1, 632, -1, -1, -1,
2176 -1, -1, -1, -1, -1, -1, 399, -1, -1, 184,
2177 185, 186, -1, 188, -1, -1, 1127, 538, 687, -1,
2178 -1, -1, -1, -1, -1, -1, -1, 420, 421, 698,
2179 -1, -1, -1, -1, -1, -1, 1147, 1148, -1, -1,
2180 1151, -1, 149, 1154, 19, 20, -1, 765, 766, 24,
2181 -1, -1, 688, -1, 29, 30, 31, 32, 33, 34,
2182 -1, -1, -1, 699, 700, 701, 702, 703, 704, 705,
2183 706, 46, 47, 48, -1, -1, -1, -1, -1, 797,
2184 -1, -1, -1, -1, -1, -1, 193, -1, -1, -1,
2185 -1, -1, -1, -1, 201, 70, -1, -1, 205, -1,
2186 -1, 208, -1, -1, -1, -1, -1, -1, -1, 216,
2187 -1, -1, 19, -1, 221, -1, 223, 24, -1, -1,
2188 -1, -1, 29, 30, 31, 32, 33, 34, -1, 236,
2189 237, -1, -1, -1, -1, -1, -1, -1, 113, 46,
2190 47, 48, -1, -1, -1, 538, -1, -1, -1, -1,
2191 -1, -1, 788, -1, -1, -1, -1, -1, -1, -1,
2192 -1, -1, -1, 70, -1, -1, -1, -1, -1, 19,
2193 -1, -1, -1, -1, 24, -1, -1, 846, -1, 29,
2194 30, 31, 32, 33, 34, 903, -1, -1, -1, -1,
2195 -1, -1, -1, -1, 830, -1, 46, 47, 48, -1,
2196 -1, -1, -1, -1, 922, -1, 113, -1, -1, 184,
2197 185, 186, -1, 188, -1, -1, -1, -1, -1, -1,
2198 70, -1, -1, -1, -1, 861, 862, 863, 864, 865,
2199 866, 867, 868, 869, 870, 871, 872, 873, 874, 875,
2200 876, 877, -1, 879, -1, -1, -1, -1, -1, -1,
2201 0, 1, -1, -1, -1, -1, -1, 926, -1, -1,
2202 -1, -1, -1, 113, -1, -1, -1, -1, -1, -1,
2203 -1, -1, -1, -1, 24, -1, -1, 184, 185, 186,
2204 -1, 188, -1, -1, 34, -1, -1, -1, -1, -1,
2205 -1, -1, 399, -1, -1, 45, -1, -1, 1016, -1,
2206 936, -1, 971, -1, -1, -1, -1, -1, -1, -1,
2207 -1, -1, -1, 420, 421, -1, -1, 67, 68, 69,
2208 -1, 71, -1, -1, -1, -1, 76, 77, 78, -1,
2209 -1, -1, -1, -1, 184, 185, 186, 973, 188, -1,
2210 -1, 91, 92, 93, -1, -1, -1, -1, -1, -1,
2211 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2212 110, 111, 112, -1, 114, 115, 116, 117, 118, 119,
2213 120, 121, 122, 123, 1092, 125, 126, 127, 128, 129,
2214 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2215 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2216 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2217 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2218 170, 171, 172, 173, 174, 175, 176, 177, -1, -1,
2219 -1, 538, -1, -1, 184, 185, 186, 187, -1, 189,
2220 190, 191, 0, 1, -1, -1, -1, -1, -1, -1,
2221 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2222 -1, -1, -1, -1, 1182, -1, 24, -1, -1, -1,
2223 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
2224 -1, -1, -1, -1, -1, -1, -1, 45, -1, -1,
2225 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2226 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
2227 68, 69, -1, 71, 1150, -1, -1, -1, 76, 77,
2228 78, -1, -1, -1, -1, -1, -1, 1163, -1, -1,
2229 -1, -1, -1, 91, 92, 93, -1, -1, -1, -1,
2230 -1, -1, -1, -1, -1, -1, -1, -1, 1184, -1,
2231 -1, -1, 110, 111, 112, -1, 114, 115, 116, 117,
2232 118, 119, 120, 121, 122, 123, -1, 125, 126, 127,
2233 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2234 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2235 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2236 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2237 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2238 -1, -1, -1, -1, -1, -1, 184, 185, 186, 187,
2239 1, 189, 190, 191, -1, 6, 7, 8, -1, 10,
2240 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2241 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2242 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2243 -1, 42, 43, -1, 45, 46, 47, 48, -1, -1,
2244 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2245 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
2246 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2247 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2248 -1, -1, -1, -1, 95, 96, 97, 98, 99, 100,
2249 -1, -1, -1, -1, -1, -1, -1, -1, 109, 110,
2250 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2251 121, 122, 123, -1, 125, 126, 127, 128, 129, 130,
2252 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2253 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2254 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2255 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2256 171, 172, 173, 174, 175, 176, 177, -1, -1, -1,
2257 -1, -1, -1, 184, 185, 186, 187, 188, 189, 190,
2258 191, 1, -1, -1, -1, -1, 6, 7, 8, -1,
2259 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2260 -1, -1, -1, -1, 24, -1, -1, -1, -1, 29,
2261 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2262 -1, -1, 42, 43, -1, -1, 46, 47, 48, -1,
2263 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2264 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
2265 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2266 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2267 -1, -1, -1, -1, -1, 95, 96, 97, 98, 99,
2268 100, -1, -1, -1, -1, -1, -1, -1, -1, 109,
2269 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
2270 120, 121, 122, 123, -1, 125, 126, 127, 128, 129,
2271 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2272 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2273 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2274 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2275 170, 171, 172, 173, 174, 175, 176, 177, -1, -1,
2276 -1, -1, -1, -1, 184, 185, 186, 187, 188, 189,
2277 190, 191, 1, -1, -1, -1, -1, 6, 7, 8,
2278 -1, -1, 11, 12, 13, 14, 15, 16, 17, 18,
2279 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2280 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2281 -1, -1, -1, 42, 43, -1, -1, 46, 47, 48,
2282 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2283 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
2284 69, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2285 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2286 -1, -1, -1, -1, -1, -1, 95, 96, 97, 98,
2287 99, 100, -1, -1, -1, -1, -1, -1, -1, -1,
2288 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2289 119, 120, 121, 122, 123, -1, 125, 126, 127, 128,
2290 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2291 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2292 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2293 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2294 169, 170, 171, 172, 173, 174, 175, 176, 177, -1,
2295 -1, -1, -1, -1, -1, 184, 185, 186, 187, 188,
2296 189, 190, 191, 1, -1, -1, -1, -1, 6, 7,
2297 8, -1, -1, 11, 12, 13, 14, 15, 16, 17,
2298 18, 19, 20, -1, -1, -1, 24, 25, -1, -1,
2299 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2300 -1, -1, -1, -1, 42, 43, -1, 1, 46, 47,
2301 48, -1, 6, 7, 8, -1, 10, 11, 12, 13,
2302 14, 15, 16, 17, 18, 19, -1, -1, -1, -1,
2303 24, -1, 70, -1, -1, 29, 30, 31, 32, 33,
2304 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
2305 -1, -1, 46, 47, 48, -1, 94, 95, 96, 97,
2306 98, 99, 100, -1, -1, -1, -1, -1, -1, -1,
2307 -1, 109, -1, -1, -1, 113, 70, -1, -1, -1,
2308 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2309 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2310 94, 95, 96, 97, 98, 99, 100, -1, -1, -1,
2311 -1, -1, -1, -1, -1, 109, -1, -1, -1, 113,
2312 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2313 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2314 -1, -1, -1, -1, -1, -1, 184, 185, 186, -1,
2315 188, 189, 190, -1, -1, -1, 1, -1, -1, -1,
2316 -1, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2317 15, 16, 17, 18, 19, -1, -1, -1, -1, 24,
2318 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2319 184, 185, 186, -1, 188, 189, 190, 42, 43, -1,
2320 1, 46, 47, 48, -1, 6, 7, 8, -1, -1,
2321 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2322 -1, -1, -1, 24, -1, 70, -1, -1, 29, 30,
2323 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2324 -1, 42, 43, -1, -1, 46, 47, 48, -1, 94,
2325 95, 96, 97, 98, 99, 100, -1, -1, -1, -1,
2326 -1, -1, -1, -1, 109, -1, -1, -1, 113, 70,
2327 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2328 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2329 -1, -1, -1, 94, 95, 96, 97, 98, 99, 100,
2330 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1,
2331 -1, -1, 113, -1, -1, -1, -1, -1, -1, -1,
2332 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2333 -1, -1, -1, -1, -1, -1, -1, -1, -1, 184,
2334 185, 186, -1, 188, 189, 190, -1, -1, -1, 1,
2335 -1, -1, -1, -1, 6, 7, 8, -1, 10, 11,
2336 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2337 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2338 32, 33, 34, 184, 185, 186, -1, 188, 189, 190,
2339 42, 43, -1, 1, 46, 47, 48, -1, 6, 7,
2340 8, -1, -1, 11, 12, 13, 14, 15, 16, 17,
2341 18, 19, 20, -1, -1, -1, 24, -1, 70, -1,
2342 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2343 -1, -1, -1, -1, 42, 43, -1, -1, 46, 47,
2344 48, -1, -1, 95, 96, 97, 98, 99, 100, -1,
2345 -1, -1, -1, -1, -1, -1, -1, 109, -1, -1,
2346 -1, 113, 70, -1, -1, -1, -1, -1, -1, -1,
2347 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2348 -1, -1, -1, -1, -1, -1, -1, 95, 96, 97,
2349 98, 99, 100, -1, -1, -1, -1, -1, -1, -1,
2350 -1, 109, -1, -1, -1, 113, -1, -1, -1, -1,
2351 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2352 -1, 24, 25, -1, -1, -1, 29, 30, 31, 32,
2353 33, 34, 184, 185, 186, -1, 188, 189, 190, -1,
2354 -1, -1, 1, 46, 47, 48, -1, 6, 7, 8,
2355 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2356 19, -1, -1, -1, -1, 24, -1, 70, -1, -1,
2357 29, 30, 31, 32, 33, 34, 184, 185, 186, -1,
2358 188, 189, 190, 42, 43, -1, -1, 46, 47, 48,
2359 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2360 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2361 113, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2362 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2363 -1, -1, -1, -1, -1, -1, 95, 96, 97, 98,
2364 99, 100, -1, -1, -1, -1, -1, -1, -1, -1,
2365 109, 6, 7, 8, 113, 10, 11, 12, 13, 14,
2366 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2367 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2368 -1, 184, 185, 186, -1, 188, -1, 42, 43, -1,
2369 45, 46, 47, 48, -1, -1, -1, -1, -1, -1,
2370 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2371 -1, -1, -1, -1, -1, 70, 71, -1, -1, -1,
2372 -1, -1, -1, -1, -1, 184, 185, 186, -1, 188,
2373 189, 190, -1, -1, -1, -1, -1, -1, -1, -1,
2374 95, 96, 97, 98, 99, 100, -1, -1, -1, -1,
2375 -1, -1, -1, -1, 109, 110, 111, 112, 113, 114,
2376 115, 116, 117, 118, 119, 120, 121, 122, 123, -1,
2377 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2378 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2379 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2380 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2381 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2382 175, 176, 177, -1, -1, -1, -1, -1, -1, 184,
2383 185, 186, 187, 188, 189, 190, 191, 6, 7, 8,
2384 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2385 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2386 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2387 -1, -1, -1, 42, 43, -1, 45, 46, 47, 48,
2388 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2389 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2390 -1, 70, 71, -1, -1, -1, -1, -1, -1, -1,
2391 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2392 -1, -1, -1, -1, -1, -1, 95, 96, 97, 98,
2393 99, 100, -1, -1, -1, -1, -1, -1, -1, -1,
2394 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2395 119, 120, 121, 122, 123, -1, 125, 126, 127, 128,
2396 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2397 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2398 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2399 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2400 169, 170, 171, 172, 173, 174, 175, 176, 177, -1,
2401 -1, -1, -1, -1, -1, 184, 185, 186, 187, 188,
2402 189, 190, 191, 6, 7, 8, -1, 10, 11, 12,
2403 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2404 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2405 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2406 43, -1, 45, 46, 47, 48, -1, -1, -1, -1,
2407 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2408 -1, -1, -1, -1, -1, -1, -1, 70, 71, -1,
2409 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2410 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2411 -1, -1, 95, 96, 97, 98, 99, 100, -1, -1,
2412 -1, -1, -1, -1, -1, -1, 109, 110, 111, 112,
2413 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2414 123, -1, 125, 126, 127, 128, 129, 130, 131, 132,
2415 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2416 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2417 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2418 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2419 173, 174, 175, 176, 177, -1, -1, -1, -1, -1,
2420 -1, 184, 185, 186, 187, 188, 189, 190, 191, 6,
2421 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2422 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2423 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2424 -1, -1, -1, -1, -1, -1, -1, -1, -1, 46,
2425 47, 48, -1, 6, 7, 8, -1, 10, 11, 12,
2426 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2427 -1, 24, -1, 70, -1, -1, 29, 30, 31, 32,
2428 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
2429 -1, -1, -1, 46, 47, 48, -1, -1, 95, 96,
2430 97, 98, 99, 100, -1, -1, -1, -1, -1, -1,
2431 -1, -1, 109, -1, -1, -1, 113, 70, -1, -1,
2432 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2433 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2434 -1, -1, 95, 96, 97, 98, 99, 100, -1, -1,
2435 -1, -1, -1, -1, -1, -1, 109, 6, 7, 8,
2436 113, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2437 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2438 29, 30, 31, 32, 33, 34, -1, 184, 185, 186,
2439 -1, 188, 189, 190, -1, -1, -1, 46, 47, 48,
2440 -1, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2441 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2442 -1, 70, -1, -1, 29, 30, 31, 32, 33, 34,
2443 -1, 184, 185, 186, -1, 188, 189, 190, -1, -1,
2444 -1, 46, 47, 48, -1, -1, 95, 96, 97, 98,
2445 99, 100, -1, -1, -1, -1, -1, -1, -1, -1,
2446 109, -1, -1, -1, 113, 70, -1, -1, -1, -1,
2447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2448 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2449 95, 96, 97, 98, 99, 100, -1, -1, -1, -1,
2450 -1, -1, -1, -1, 109, 6, 7, 8, 113, 10,
2451 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2452 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2453 31, 32, 33, 34, -1, 184, 185, 186, -1, 188,
2454 189, 190, -1, -1, -1, 46, 47, 48, -1, 6,
2455 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2456 17, 18, 19, 20, -1, -1, -1, 24, -1, 70,
2457 -1, -1, 29, 30, 31, 32, 33, 34, -1, 184,
2458 185, 186, -1, 188, 189, 190, -1, -1, -1, 46,
2459 47, 48, -1, -1, 95, 96, 97, 98, 99, 100,
2460 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1,
2461 -1, -1, 113, 70, -1, -1, -1, -1, -1, -1,
2462 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2463 -1, -1, -1, -1, -1, -1, -1, -1, 95, 96,
2464 97, 98, 99, 100, -1, -1, -1, -1, -1, -1,
2465 -1, -1, 109, 6, 7, 8, 113, 10, 11, 12,
2466 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2467 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2468 33, 34, -1, 184, 185, 186, -1, 188, 189, 190,
2469 -1, -1, -1, 46, 47, 48, -1, 6, 7, 8,
2470 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2471 19, -1, -1, -1, -1, 24, -1, 70, -1, -1,
2472 29, 30, 31, 32, 33, 34, -1, 184, 185, 186,
2473 -1, 188, 189, 190, -1, -1, -1, 46, 47, 48,
2474 -1, -1, 95, 96, 97, 98, 99, 100, -1, -1,
2475 -1, -1, -1, -1, -1, -1, 109, -1, -1, -1,
2476 113, 70, -1, -1, -1, -1, -1, -1, -1, -1,
2477 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2478 -1, -1, -1, -1, -1, -1, 95, 96, 97, 98,
2479 99, 100, 19, -1, -1, -1, -1, 24, -1, -1,
2480 109, -1, -1, -1, 113, -1, -1, -1, -1, -1,
2481 -1, -1, -1, -1, -1, -1, -1, -1, 45, -1,
2482 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2483 -1, 184, 185, 186, -1, 188, 189, 190, -1, -1,
2484 -1, -1, -1, -1, 71, -1, -1, -1, -1, -1,
2485 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2486 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2487 -1, 20, -1, -1, -1, 184, 185, 186, -1, 188,
2488 189, 190, -1, 110, 111, 112, -1, 114, 115, 116,
2489 117, 118, 119, 120, 121, 122, 123, -1, 125, 126,
2490 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2491 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2492 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2493 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2494 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2495 177, -1, -1, -1, -1, -1, -1, -1, -1, 186,
2496 187, 110, 111, 112, 191, 114, 115, 116, 117, 118,
2497 119, 120, 121, 122, 123, -1, 125, 126, 127, 128,
2498 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2499 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2500 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2501 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2502 169, 170, 171, 172, 173, 174, 175, 176, 177, 22,
2503 -1, -1, -1, -1, -1, -1, -1, 186, 187, -1,
2504 -1, -1, 191, -1, -1, -1, -1, -1, -1, -1,
2505 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2506 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2507 -1, -1, -1, -1, 67, 68, 69, -1, -1, -1,
2508 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2509 -1, -1, -1, -1, 87, -1, -1, -1, -1, -1,
2510 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2511 -1, -1, -1, -1, -1, -1, -1, 110, 111, 112,
2512 -1, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2513 123, -1, 125, 126, 127, 128, 129, 130, 131, 132,
2514 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2515 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2516 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2517 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2518 173, 174, 175, 176, 177, 24, -1, -1, -1, -1,
2519 -1, -1, -1, -1, 187, 34, 24, -1, 191, 27,
2520 -1, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2521 -1, -1, -1, -1, -1, -1, -1, -1, 46, 47,
2522 48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2523 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2524 -1, -1, 70, -1, -1, -1, -1, -1, -1, -1,
2525 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2526 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2527 -1, 110, 111, 112, -1, 114, 115, 116, 117, 118,
2528 119, 120, 121, 122, 123, 113, 125, 126, 127, 128,
2529 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2530 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2531 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2532 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2533 169, 170, 171, 172, 173, 174, 175, 176, 177, -1,
2534 -1, -1, -1, -1, -1, 184, 185, 186, 187, -1,
2535 189, 190, 191, -1, -1, -1, 184, 185, 186, 24,
2536 188, -1, 27, -1, 29, 30, 31, 32, 33, 34,
2537 24, 25, -1, -1, -1, 29, 30, 31, 32, 33,
2538 34, 46, 47, 48, -1, -1, -1, -1, -1, -1,
2539 24, 25, 46, 47, 48, 29, 30, 31, 32, 33,
2540 34, 24, -1, -1, -1, 70, 29, 30, 31, 32,
2541 33, 34, 46, 47, 48, -1, 70, -1, -1, -1,
2542 -1, 24, -1, 46, 47, 48, 29, 30, 31, 32,
2543 33, 34, -1, -1, -1, -1, 70, -1, -1, -1,
2544 -1, -1, -1, 46, 47, 48, 24, 70, 113, -1,
2545 -1, 29, 30, 31, 32, 33, 34, -1, -1, 113,
2546 -1, -1, -1, -1, -1, -1, -1, 70, 46, 47,
2547 48, -1, -1, -1, -1, -1, -1, -1, 24, 113,
2548 -1, -1, -1, 29, 30, 31, 32, 33, 34, -1,
2549 113, -1, 70, -1, -1, -1, -1, -1, -1, -1,
2550 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
2551 113, -1, -1, -1, -1, -1, -1, -1, -1, 184,
2552 185, 186, -1, 188, 70, -1, -1, -1, -1, -1,
2553 184, 185, 186, -1, 188, 113, -1, -1, -1, -1,
2554 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2555 184, 185, 186, -1, 188, -1, -1, -1, -1, -1,
2556 -1, 184, 185, 186, -1, 188, -1, 113, -1, -1,
2557 -1, -1, -1, -1, -1, 42, 43, -1, -1, -1,
2558 -1, 184, 185, 186, -1, 188, -1, -1, -1, -1,
2559 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2560 -1, -1, -1, -1, -1, -1, 184, 185, 186, -1,
2561 188, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2562 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2563 -1, -1, -1, -1, -1, -1, -1, -1, 184, 185,
2564 186, -1, 188, 110, 111, 112, -1, 114, 115, 116,
2565 117, 118, 119, 120, 121, 122, 123, -1, 125, 126,
2566 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2567 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2568 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2569 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2570 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2571 177, 45, -1, -1, -1, -1, -1, -1, -1, 186,
2572 187, -1, -1, -1, 191, -1, -1, -1, -1, -1,
2573 -1, -1, -1, 67, 68, 69, -1, 71, -1, -1,
2574 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2575 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2576 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2577 -1, -1, -1, -1, -1, -1, 110, 111, 112, -1,
2578 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2579 -1, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2580 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2581 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2582 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
2583 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2584 174, 175, 176, 177, 45, -1, -1, -1, -1, -1,
2585 -1, -1, 186, 187, -1, -1, -1, 191, -1, -1,
2586 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2587 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2588 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2589 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2590 -1, -1, -1, -1, -1, -1, -1, -1, -1, 110,
2591 111, 112, -1, 114, 115, 116, 117, 118, 119, 120,
2592 121, 122, 123, -1, 125, 126, 127, 128, 129, 130,
2593 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
2594 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2595 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2596 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2597 171, 172, 173, 174, 175, 176, 177, 45, -1, -1,
2598 -1, -1, -1, 184, 185, 186, 187, -1, -1, -1,
2599 191, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2600 -1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2601 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2602 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2603 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2604 -1, -1, 110, 111, 112, -1, 114, 115, 116, 117,
2605 118, 119, 120, 121, 122, 123, -1, 125, 126, 127,
2606 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2607 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2608 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2609 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2610 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
2611 67, 68, 69, -1, -1, -1, -1, -1, 186, 187,
2612 -1, -1, -1, 191, -1, -1, -1, -1, -1, -1,
2613 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2614 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2615 -1, -1, -1, 110, 111, 112, -1, 114, 115, 116,
2616 117, 118, 119, 120, 121, 122, 123, -1, 125, 126,
2617 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2618 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2619 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2620 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2621 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2622 177, 91, 92, 93, -1, -1, -1, -1, -1, 186,
2623 187, -1, -1, -1, 191, -1, -1, -1, -1, -1,
2624 110, 111, 112, -1, 114, 115, 116, 117, 118, 119,
2625 120, 121, 122, 123, -1, 125, 126, 127, 128, 129,
2626 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2627 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
2628 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
2629 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
2630 170, 171, 172, 173, 174, 175, 176, 177, -1, -1,
2631 -1, -1, -1, -1, -1, -1, 186, 187, 110, 111,
2632 112, 191, 114, 115, 116, 117, 118, 119, 120, 121,
2633 122, 123, -1, 125, 126, 127, 128, 129, 130, 131,
2634 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
2635 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2636 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2637 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2638 172, 173, 174, 175, 176, 177, -1, -1, -1, -1,
2639 -1, -1, -1, -1, 186, 187, -1, -1, -1, 191
885824d3 2640};
2641/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
3e3ec469 2642
885824d3 2643/* Skeleton output parser for bison,
e55c0c6d 2644 Copyright 1984, 1989, 1990, 2000, 2001 Free Software Foundation, Inc.
885824d3 2645
2646 This program is free software; you can redistribute it and/or modify
2647 it under the terms of the GNU General Public License as published by
2648 the Free Software Foundation; either version 2, or (at your option)
2649 any later version.
2650
2651 This program is distributed in the hope that it will be useful,
2652 but WITHOUT ANY WARRANTY; without even the implied warranty of
2653 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2654 GNU General Public License for more details.
2655
2656 You should have received a copy of the GNU General Public License
2657 along with this program; if not, write to the Free Software
c05aefaa 2658 Foundation, Inc., 59 Temple Place - Suite 330,
2659 Boston, MA 02111-1307, USA. */
885824d3 2660
2661/* As a special exception, when this file is copied by Bison into a
2662 Bison output file, you may use that output file without restriction.
2663 This special exception was added by the Free Software Foundation
2664 in version 1.24 of Bison. */
2665
e55c0c6d 2666/* This is the parser code that is written into each bison parser when
2667 the %semantic_parser declaration is not specified in the grammar.
2668 It was written by Richard Stallman by simplifying the hairy parser
2669 used when %semantic_parser is specified. */
c05aefaa 2670
2671#ifndef YYSTACK_USE_ALLOCA
e55c0c6d 2672# ifdef alloca
2673# define YYSTACK_USE_ALLOCA 1
2674# else /* alloca not defined */
2675# ifdef __GNUC__
2676# define YYSTACK_USE_ALLOCA 1
2677# define alloca __builtin_alloca
2678# else /* not GNU C. */
2679# if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
2680# define YYSTACK_USE_ALLOCA 1
2681# include <alloca.h>
2682# else /* not sparc */
2683 /* We think this test detects Watcom and Microsoft C. */
2684 /* This used to test MSDOS, but that is a bad idea since that
2685 symbol is in the user namespace. */
2686# if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
2687# if 0
2688 /* No need for malloc.h, which pollutes the namespace; instead,
2689 just don't use alloca. */
2690# include <malloc.h>
2691# endif
2692# else /* not MSDOS, or __TURBOC__ */
2693# if defined(_AIX)
2694 /* I don't know what this was needed for, but it pollutes the
2695 namespace. So I turned it off. rms, 2 May 1997. */
2696 /* #include <malloc.h> */
885824d3 2697 #pragma alloca
e55c0c6d 2698# define YYSTACK_USE_ALLOCA 1
2699# else /* not MSDOS, or __TURBOC__, or _AIX */
2700# if 0
2701 /* haible@ilog.fr says this works for HPUX 9.05 and up, and on
2702 HPUX 10. Eventually we can turn this on. */
2703# ifdef __hpux
2704# define YYSTACK_USE_ALLOCA 1
2705# define alloca __builtin_alloca
2706# endif /* __hpux */
2707# endif
2708# endif /* not _AIX */
2709# endif /* not MSDOS, or __TURBOC__ */
2710# endif /* not sparc */
2711# endif /* not GNU C */
2712# endif /* alloca not defined */
c05aefaa 2713#endif /* YYSTACK_USE_ALLOCA not defined */
885824d3 2714
e55c0c6d 2715#ifndef YYSTACK_USE_ALLOCA
2716# define YYSTACK_USE_ALLOCA 0
c05aefaa 2717#endif
885824d3 2718
e55c0c6d 2719#if YYSTACK_USE_ALLOCA
2720# define YYSTACK_ALLOC alloca
2721#else
2722# define YYSTACK_ALLOC malloc
2723#endif
885824d3 2724
2725#define yyerrok (yyerrstatus = 0)
2726#define yyclearin (yychar = YYEMPTY)
2727#define YYEMPTY -2
2728#define YYEOF 0
c05aefaa 2729#define YYACCEPT goto yyacceptlab
2730#define YYABORT goto yyabortlab
885824d3 2731#define YYERROR goto yyerrlab1
e55c0c6d 2732/* Like YYERROR except do call yyerror. This remains here temporarily
2733 to ease the transition to the new meaning of YYERROR, for GCC.
885824d3 2734 Once GCC version 2 has supplanted version 1, this can go. */
2735#define YYFAIL goto yyerrlab
2736#define YYRECOVERING() (!!yyerrstatus)
e55c0c6d 2737#define YYBACKUP(Token, Value) \
885824d3 2738do \
2739 if (yychar == YYEMPTY && yylen == 1) \
e55c0c6d 2740 { \
2741 yychar = (Token); \
2742 yylval = (Value); \
885824d3 2743 yychar1 = YYTRANSLATE (yychar); \
2744 YYPOPSTACK; \
2745 goto yybackup; \
2746 } \
2747 else \
e55c0c6d 2748 { \
2749 yyerror ("syntax error: cannot back up"); \
2750 YYERROR; \
2751 } \
885824d3 2752while (0)
2753
2754#define YYTERROR 1
2755#define YYERRCODE 256
2756
885824d3 2757
e55c0c6d 2758/* YYLLOC_DEFAULT -- Compute the default location (before the actions
2759 are run).
885824d3 2760
e55c0c6d 2761 When YYLLOC_DEFAULT is run, CURRENT is set the location of the
2762 first token. By default, to implement support for ranges, extend
2763 its range to the last symbol. */
885824d3 2764
e55c0c6d 2765#ifndef YYLLOC_DEFAULT
2766# define YYLLOC_DEFAULT(Current, Rhs, N) \
2767 Current.last_line = Rhs[N].last_line; \
2768 Current.last_column = Rhs[N].last_column;
885824d3 2769#endif
2770
885824d3 2771
e55c0c6d 2772/* YYLEX -- calling `yylex' with the right arguments. */
2773
2774#if YYPURE
2775# if YYLSP_NEEDED
2776# ifdef YYLEX_PARAM
2777# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
2778# else
2779# define YYLEX yylex (&yylval, &yylloc)
2780# endif
2781# else /* !YYLSP_NEEDED */
2782# ifdef YYLEX_PARAM
2783# define YYLEX yylex (&yylval, YYLEX_PARAM)
2784# else
2785# define YYLEX yylex (&yylval)
2786# endif
2787# endif /* !YYLSP_NEEDED */
2788#else /* !YYPURE */
2789# define YYLEX yylex ()
2790#endif /* !YYPURE */
2791
2792
2793/* Enable debugging if requested. */
2794#if YYDEBUG
2795# define YYDPRINTF(Args) \
2796do { \
2797 if (yydebug) \
2798 fprintf Args; \
2799} while (0)
2800/* Nonzero means print parse trace. [The following comment makes no
2801 sense to me. Could someone clarify it? --akim] Since this is
2802 uninitialized, it does not stop multiple parsers from coexisting.
2803 */
2804int yydebug;
2805#else /* !YYDEBUG */
2806# define YYDPRINTF(Args)
2807#endif /* !YYDEBUG */
2808
2809/* YYINITDEPTH -- initial size of the parser's stacks. */
885824d3 2810#ifndef YYINITDEPTH
e55c0c6d 2811# define YYINITDEPTH 200
885824d3 2812#endif
2813
e55c0c6d 2814/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2815 if the built-in stack extension method is used). */
885824d3 2816#if YYMAXDEPTH == 0
e55c0c6d 2817# undef YYMAXDEPTH
885824d3 2818#endif
2819
2820#ifndef YYMAXDEPTH
e55c0c6d 2821# define YYMAXDEPTH 10000
885824d3 2822#endif
885824d3 2823\f
c05aefaa 2824/* Define __yy_memcpy. Note that the size argument
2825 should be passed with type unsigned int, because that is what the non-GCC
2826 definitions require. With GCC, __builtin_memcpy takes an arg
2827 of type size_t, but it can handle unsigned int. */
2828
885824d3 2829#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
e55c0c6d 2830# define __yy_memcpy(To, From, Count) __builtin_memcpy (To, From, Count)
885824d3 2831#else /* not GNU C or C++ */
885824d3 2832
2833/* This is the most reliable way to avoid incompatibilities
2834 in available built-in functions on various systems. */
2835static void
e55c0c6d 2836# ifndef __cplusplus
885824d3 2837__yy_memcpy (to, from, count)
2838 char *to;
e55c0c6d 2839 const char *from;
c05aefaa 2840 unsigned int count;
e55c0c6d 2841# else /* __cplusplus */
2842__yy_memcpy (char *to, const char *from, unsigned int count)
2843# endif
885824d3 2844{
e55c0c6d 2845 register const char *f = from;
885824d3 2846 register char *t = to;
2847 register int i = count;
2848
2849 while (i-- > 0)
2850 *t++ = *f++;
2851}
2852
885824d3 2853#endif
2854\f
3e3ec469 2855
885824d3 2856
2857/* The user can define YYPARSE_PARAM as the name of an argument to be passed
2858 into yyparse. The argument should have type void *.
2859 It should actually point to an object.
2860 Grammar actions can access the variable by casting it
2861 to the proper pointer type. */
2862
2863#ifdef YYPARSE_PARAM
e55c0c6d 2864# ifdef __cplusplus
2865# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2866# define YYPARSE_PARAM_DECL
2867# else /* !__cplusplus */
2868# define YYPARSE_PARAM_ARG YYPARSE_PARAM
2869# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2870# endif /* !__cplusplus */
2871#else /* !YYPARSE_PARAM */
2872# define YYPARSE_PARAM_ARG
2873# define YYPARSE_PARAM_DECL
2874#endif /* !YYPARSE_PARAM */
885824d3 2875
c05aefaa 2876/* Prevent warning if -Wstrict-prototypes. */
2877#ifdef __GNUC__
e55c0c6d 2878# ifdef YYPARSE_PARAM
c05aefaa 2879int yyparse (void *);
e55c0c6d 2880# else
c05aefaa 2881int yyparse (void);
e55c0c6d 2882# endif
c05aefaa 2883#endif
e55c0c6d 2884
2885/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
2886 variables are global, or local to YYPARSE. */
2887
2888#define _YY_DECL_VARIABLES \
2889/* The lookahead symbol. */ \
2890int yychar; \
2891 \
2892/* The semantic value of the lookahead symbol. */ \
2893YYSTYPE yylval; \
2894 \
2895/* Number of parse errors so far. */ \
2896int yynerrs;
2897
2898#if YYLSP_NEEDED
2899# define YY_DECL_VARIABLES \
2900_YY_DECL_VARIABLES \
2901 \
2902/* Location data for the lookahead symbol. */ \
2903YYLTYPE yylloc;
2904#else
2905# define YY_DECL_VARIABLES \
2906_YY_DECL_VARIABLES
c05aefaa 2907#endif
2908
e55c0c6d 2909
2910/* If nonreentrant, generate the variables here. */
2911
2912#if !YYPURE
2913YY_DECL_VARIABLES
2914#endif /* !YYPURE */
2915
885824d3 2916int
e55c0c6d 2917yyparse (YYPARSE_PARAM_ARG)
885824d3 2918 YYPARSE_PARAM_DECL
2919{
e55c0c6d 2920 /* If reentrant, generate the variables here. */
2921#if YYPURE
2922 YY_DECL_VARIABLES
2923#endif /* !YYPURE */
2924
885824d3 2925 register int yystate;
2926 register int yyn;
e55c0c6d 2927 /* Number of tokens to shift before error messages enabled. */
2928 int yyerrstatus;
2929 /* Lookahead token as an internal (translated) token number. */
2930 int yychar1 = 0;
2931
2932 /* Three stacks and their tools:
2933 `yyss': related to states,
2934 `yysv': related to semantic values,
2935 `yyls': related to locations.
2936
2937 Refer to the stacks thru separate pointers, to allow yyoverflow
2938 to reallocate them elsewhere. */
2939
2940 /* The state stack. */
2941 short yyssa[YYINITDEPTH];
2942 short *yyss = yyssa;
885824d3 2943 register short *yyssp;
885824d3 2944
e55c0c6d 2945 /* The semantic value stack. */
2946 YYSTYPE yyvsa[YYINITDEPTH];
2947 YYSTYPE *yyvs = yyvsa;
2948 register YYSTYPE *yyvsp;
885824d3 2949
e55c0c6d 2950#if YYLSP_NEEDED
2951 /* The location stack. */
2952 YYLTYPE yylsa[YYINITDEPTH];
885824d3 2953 YYLTYPE *yyls = yylsa;
2954 YYLTYPE *yylsp;
e55c0c6d 2955#endif
885824d3 2956
e55c0c6d 2957#if YYLSP_NEEDED
2958# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
885824d3 2959#else
e55c0c6d 2960# define YYPOPSTACK (yyvsp--, yyssp--)
885824d3 2961#endif
2962
2963 int yystacksize = YYINITDEPTH;
c05aefaa 2964 int yyfree_stacks = 0;
885824d3 2965
885824d3 2966
e55c0c6d 2967 /* The variables used to return semantic value and location from the
2968 action routines. */
2969 YYSTYPE yyval;
2970# if YYLSP_NEEDED
2971 YYLTYPE yyloc;
2972# endif
885824d3 2973
e55c0c6d 2974 /* When reducing, the number of symbols on the RHS of the reduced
2975 rule. */
885824d3 2976 int yylen;
2977
e55c0c6d 2978 YYDPRINTF ((stderr, "Starting parse\n"));
885824d3 2979
2980 yystate = 0;
2981 yyerrstatus = 0;
2982 yynerrs = 0;
2983 yychar = YYEMPTY; /* Cause a token to be read. */
2984
2985 /* Initialize stack pointers.
2986 Waste one element of value and location stack
2987 so that they stay on the same level as the state stack.
2988 The wasted elements are never initialized. */
2989
e55c0c6d 2990 yyssp = yyss;
885824d3 2991 yyvsp = yyvs;
e55c0c6d 2992#if YYLSP_NEEDED
885824d3 2993 yylsp = yyls;
2994#endif
e55c0c6d 2995 goto yysetstate;
885824d3 2996
e55c0c6d 2997/*------------------------------------------------------------.
2998| yynewstate -- Push a new state, which is found in yystate. |
2999`------------------------------------------------------------*/
3000 yynewstate:
3001 /* In all cases, when you get here, the value and location stacks
3002 have just been pushed. so pushing a state here evens the stacks.
3003 */
3004 yyssp++;
885824d3 3005
e55c0c6d 3006 yysetstate:
3007 *yyssp = yystate;
885824d3 3008
3009 if (yyssp >= yyss + yystacksize - 1)
3010 {
e55c0c6d 3011 /* Give user a chance to reallocate the stack. Use copies of
3012 these so that the &'s don't force the real ones into memory.
3013 */
885824d3 3014 YYSTYPE *yyvs1 = yyvs;
3015 short *yyss1 = yyss;
e55c0c6d 3016#if YYLSP_NEEDED
885824d3 3017 YYLTYPE *yyls1 = yyls;
3018#endif
3019
3020 /* Get the current used size of the three stacks, in elements. */
3021 int size = yyssp - yyss + 1;
3022
3023#ifdef yyoverflow
e55c0c6d 3024 /* Each stack pointer address is followed by the size of the
3025 data in use in that stack, in bytes. */
3026# if YYLSP_NEEDED
885824d3 3027 /* This used to be a conditional around just the two extra args,
3028 but that might be undefined if yyoverflow is a macro. */
e55c0c6d 3029 yyoverflow ("parser stack overflow",
3030 &yyss1, size * sizeof (*yyssp),
3031 &yyvs1, size * sizeof (*yyvsp),
3032 &yyls1, size * sizeof (*yylsp),
3033 &yystacksize);
3034# else
3035 yyoverflow ("parser stack overflow",
3036 &yyss1, size * sizeof (*yyssp),
3037 &yyvs1, size * sizeof (*yyvsp),
3038 &yystacksize);
3039# endif
885824d3 3040
3041 yyss = yyss1; yyvs = yyvs1;
e55c0c6d 3042# if YYLSP_NEEDED
885824d3 3043 yyls = yyls1;
e55c0c6d 3044# endif
885824d3 3045#else /* no yyoverflow */
3046 /* Extend the stack our own way. */
3047 if (yystacksize >= YYMAXDEPTH)
3048 {
e55c0c6d 3049 yyerror ("parser stack overflow");
c05aefaa 3050 if (yyfree_stacks)
3051 {
3052 free (yyss);
3053 free (yyvs);
e55c0c6d 3054# if YYLSP_NEEDED
c05aefaa 3055 free (yyls);
e55c0c6d 3056# endif
c05aefaa 3057 }
885824d3 3058 return 2;
3059 }
3060 yystacksize *= 2;
3061 if (yystacksize > YYMAXDEPTH)
3062 yystacksize = YYMAXDEPTH;
e55c0c6d 3063# if !YYSTACK_USE_ALLOCA
c05aefaa 3064 yyfree_stacks = 1;
e55c0c6d 3065# endif
c05aefaa 3066 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
3067 __yy_memcpy ((char *)yyss, (char *)yyss1,
3068 size * (unsigned int) sizeof (*yyssp));
3069 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
3070 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
3071 size * (unsigned int) sizeof (*yyvsp));
e55c0c6d 3072# if YYLSP_NEEDED
c05aefaa 3073 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
3074 __yy_memcpy ((char *)yyls, (char *)yyls1,
3075 size * (unsigned int) sizeof (*yylsp));
e55c0c6d 3076# endif
885824d3 3077#endif /* no yyoverflow */
3078
3079 yyssp = yyss + size - 1;
3080 yyvsp = yyvs + size - 1;
e55c0c6d 3081#if YYLSP_NEEDED
885824d3 3082 yylsp = yyls + size - 1;
3083#endif
3084
e55c0c6d 3085 YYDPRINTF ((stderr, "Stack size increased to %d\n", yystacksize));
885824d3 3086
3087 if (yyssp >= yyss + yystacksize - 1)
3088 YYABORT;
3089 }
3090
e55c0c6d 3091 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
885824d3 3092
3093 goto yybackup;
e55c0c6d 3094
3095
3096/*-----------.
3097| yybackup. |
3098`-----------*/
3099yybackup:
885824d3 3100
3101/* Do appropriate processing given the current state. */
3102/* Read a lookahead token if we need one and don't already have one. */
3103/* yyresume: */
3104
3105 /* First try to decide what to do without reference to lookahead token. */
3106
3107 yyn = yypact[yystate];
3108 if (yyn == YYFLAG)
3109 goto yydefault;
3110
3111 /* Not known => get a lookahead token if don't already have one. */
3112
3113 /* yychar is either YYEMPTY or YYEOF
3114 or a valid token in external form. */
3115
3116 if (yychar == YYEMPTY)
3117 {
e55c0c6d 3118 YYDPRINTF ((stderr, "Reading a token: "));
885824d3 3119 yychar = YYLEX;
3120 }
3121
3122 /* Convert token to internal form (in yychar1) for indexing tables with */
3123
3124 if (yychar <= 0) /* This means end of input. */
3125 {
3126 yychar1 = 0;
3127 yychar = YYEOF; /* Don't call YYLEX any more */
3128
e55c0c6d 3129 YYDPRINTF ((stderr, "Now at end of input.\n"));
885824d3 3130 }
3131 else
3132 {
e55c0c6d 3133 yychar1 = YYTRANSLATE (yychar);
885824d3 3134
e55c0c6d 3135#if YYDEBUG
3136 /* We have to keep this `#if YYDEBUG', since we use variables
3137 which are defined only if `YYDEBUG' is set. */
885824d3 3138 if (yydebug)
3139 {
3140 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
e55c0c6d 3141 /* Give the individual parser a way to print the precise
3142 meaning of a token, for further debugging info. */
3143# ifdef YYPRINT
885824d3 3144 YYPRINT (stderr, yychar, yylval);
e55c0c6d 3145# endif
885824d3 3146 fprintf (stderr, ")\n");
3147 }
3148#endif
3149 }
3150
3151 yyn += yychar1;
3152 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3153 goto yydefault;
3154
3155 yyn = yytable[yyn];
3156
3157 /* yyn is what to do for this token type in this state.
3158 Negative => reduce, -yyn is rule number.
3159 Positive => shift, yyn is new state.
3160 New state is final state => don't bother to shift,
3161 just return success.
3162 0, or most negative number => error. */
3163
3164 if (yyn < 0)
3165 {
3166 if (yyn == YYFLAG)
3167 goto yyerrlab;
3168 yyn = -yyn;
3169 goto yyreduce;
3170 }
3171 else if (yyn == 0)
3172 goto yyerrlab;
3173
3174 if (yyn == YYFINAL)
3175 YYACCEPT;
3176
3177 /* Shift the lookahead token. */
e55c0c6d 3178 YYDPRINTF ((stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]));
885824d3 3179
3180 /* Discard the token being shifted unless it is eof. */
3181 if (yychar != YYEOF)
3182 yychar = YYEMPTY;
3183
3184 *++yyvsp = yylval;
e55c0c6d 3185#if YYLSP_NEEDED
885824d3 3186 *++yylsp = yylloc;
3187#endif
3188
e55c0c6d 3189 /* Count tokens shifted since error; after three, turn off error
3190 status. */
3191 if (yyerrstatus)
3192 yyerrstatus--;
885824d3 3193
3194 yystate = yyn;
3195 goto yynewstate;
3196
885824d3 3197
e55c0c6d 3198/*-----------------------------------------------------------.
3199| yydefault -- do the default action for the current state. |
3200`-----------------------------------------------------------*/
3201yydefault:
885824d3 3202 yyn = yydefact[yystate];
3203 if (yyn == 0)
3204 goto yyerrlab;
e55c0c6d 3205 goto yyreduce;
3206
885824d3 3207
e55c0c6d 3208/*-----------------------------.
3209| yyreduce -- Do a reduction. |
3210`-----------------------------*/
885824d3 3211yyreduce:
e55c0c6d 3212 /* yyn is the number of a rule to reduce with. */
885824d3 3213 yylen = yyr2[yyn];
885824d3 3214
e55c0c6d 3215 /* If YYLEN is nonzero, implement the default value of the action:
3216 `$$ = $1'.
3217
3218 Otherwise, the following line sets YYVAL to the semantic value of
3219 the lookahead token. This behavior is undocumented and Bison
3220 users should not rely upon it. Assigning to YYVAL
3221 unconditionally makes the parser a bit smaller, and it avoids a
3222 GCC warning that YYVAL may be used uninitialized. */
3223 yyval = yyvsp[1-yylen];
3224
3225#if YYLSP_NEEDED
3226 /* Similarly for the default location. Let the user run additional
3227 commands if for instance locations are ranges. */
3228 yyloc = yylsp[1-yylen];
3229 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
3230#endif
3231
3232#if YYDEBUG
3233 /* We have to keep this `#if YYDEBUG', since we use variables which
3234 are defined only if `YYDEBUG' is set. */
885824d3 3235 if (yydebug)
3236 {
3237 int i;
3238
3239 fprintf (stderr, "Reducing via rule %d (line %d), ",
3240 yyn, yyrline[yyn]);
3241
3242 /* Print the symbols being reduced, and their result. */
3243 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3244 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3245 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3246 }
3247#endif
3248
885824d3 3249 switch (yyn) {
3250
c05aefaa 3251case 3:
c05aefaa 3252{ context_checkGlobalScope (); ;
3253 break;}
3254case 4:
c05aefaa 3255{ context_checkGlobalScope (); ;
3256 break;}
885824d3 3257case 5:
885824d3 3258{ uentry_clearDecl (); ;
3259 break;}
3260case 6:
885824d3 3261{ uentry_clearDecl (); ;
3262 break;}
3263case 7:
885824d3 3264{ uentry_clearDecl (); ;
3265 break;}
3266case 8:
885824d3 3267{ uentry_clearDecl (); ;
3268 break;}
3269case 9:
885824d3 3270{ uentry_clearDecl (); ;
3271 break;}
3272case 10:
885824d3 3273{ uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3274 break;}
3275case 11:
885824d3 3276{ uentry_clearDecl (); ;
3277 break;}
3278case 12:
885824d3 3279{ checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3280 break;}
3281case 13:
885824d3 3282{ checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3283 break;}
3284case 14:
c05aefaa 3285{ context_enterFunctionHeader (); ;
885824d3 3286 break;}
3287case 15:
c05aefaa 3288{
3289 declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3290 context_exitFunctionHeader ();
3291 ;
885824d3 3292 break;}
3293case 16:
885824d3 3294{
3295 qtype qint = qtype_create (ctype_int);
3296 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3297 qtype_free (qint);
3298 ;
3299 break;}
3300case 17:
885824d3 3301{ yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3302 break;}
3303case 19:
885824d3 3304{ yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3305 break;}
3306case 20:
885824d3 3307{ yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3308 break;}
3309case 21:
885824d3 3310{ yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3311 break;}
3312case 22:
885824d3 3313{ yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3314 break;}
3315case 23:
c05aefaa 3316{
3317 exprNode_findValue(yyvsp[-2].expr);
3318 if (exprNode_hasValue (yyvsp[-2].expr))
885824d3 3319 {
077d4458 3320 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp),
3321 exprNode_getLongValue (yyvsp[-2].expr)));
c05aefaa 3322 }
885824d3 3323 else
3324 {
c05aefaa 3325 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-5].ntyp)));
885824d3 3326 }
885824d3 3327 ;
3328 break;}
3329case 24:
c05aefaa 3330{ setCurrentParams (uentryList_missingParams); ;
885824d3 3331 break;}
3332case 25:
885824d3 3333{ /* need to support globals and modifies here! */
3334 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3335 uentryList_makeMissingParams ());
c05aefaa 3336
885824d3 3337 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
c05aefaa 3338 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3339 context_popLoc ();
3340 /*drl 7/25/01 added*/
3341 setImplictfcnConstraints();
885824d3 3342 ;
3343 break;}
3344case 26:
c05aefaa 3345{ setCurrentParams (yyvsp[-1].entrylist); ;
885824d3 3346 break;}
3347case 27:
c05aefaa 3348{ setImplictfcnConstraints ();
3349 clearCurrentParams ();
885824d3 3350 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
c05aefaa 3351 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
885824d3 3352 context_popLoc ();
3353 ;
3354 break;}
3355case 28:
885824d3 3356{ yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3357 break;}
3358case 29:
885824d3 3359{ yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3360 break;}
3361case 30:
885824d3 3362{ yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3363 break;}
3364case 31:
885824d3 3365{
3366 int value;
3367
3368 if (exprNode_hasValue (yyvsp[-2].expr)
3369 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3370 {
3371 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3372 }
3373 else
3374 {
3375 value = 0;
3376 }
3377
3378 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3379 ;
3380 break;}
3381case 32:
c05aefaa 3382{ setCurrentParams (uentryList_missingParams); ;
885824d3 3383 break;}
3384case 33:
c05aefaa 3385{
885824d3 3386 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3387 uentryList_makeMissingParams ());
c05aefaa 3388
885824d3 3389 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
c05aefaa 3390 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
885824d3 3391 context_popLoc ();
3392 ;
3393 break;}
3394case 34:
c05aefaa 3395{ setCurrentParams (yyvsp[-1].entrylist); ;
885824d3 3396 break;}
3397case 35:
c05aefaa 3398{
3399 clearCurrentParams ();
885824d3 3400 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
c05aefaa 3401 idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
885824d3 3402 context_popLoc ();
3403 ;
3404 break;}
3405case 36:
885824d3 3406{ setCurrentParams (yyvsp[-1].entrylist); ;
3407 break;}
3408case 37:
885824d3 3409{ clearCurrentParams (); ;
3410 break;}
3411case 38:
885824d3 3412{ declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3413 break;}
3414case 39:
885824d3 3415{ exprNode_checkMacroBody (yyvsp[-1].expr); ;
3416 break;}
3417case 40:
885824d3 3418{ exprNode_checkIterBody (yyvsp[-1].expr); ;
3419 break;}
3420case 41:
885824d3 3421{ exprNode_checkIterEnd (yyvsp[-1].expr); ;
3422 break;}
3423case 42:
885824d3 3424{ exprChecks_checkEmptyMacroBody (); ;
3425 break;}
3426case 43:
c05aefaa 3427{ clabstract_declareFunction (yyvsp[0].ntyp); ;
885824d3 3428 break;}
3429case 44:
c05aefaa 3430{ yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
885824d3 3431 break;}
3432case 45:
c05aefaa 3433{ cscanner_expectingMetaStateName (); ;
885824d3 3434 break;}
3435case 46:
c05aefaa 3436{ cscanner_clearExpectingMetaStateName ();
3437 yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo); ;
885824d3 3438 break;}
3439case 47:
c05aefaa 3440{ cscanner_expectingMetaStateName (); ;
885824d3 3441 break;}
c05aefaa 3442case 48:
c05aefaa 3443{ cscanner_clearExpectingMetaStateName ();
3444 yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo); ;
885824d3 3445 break;}
c05aefaa 3446case 49:
c05aefaa 3447{ yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
885824d3 3448 break;}
c05aefaa 3449case 50:
c05aefaa 3450{ yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
885824d3 3451 break;}
86d93ed3 3452case 54:
c05aefaa 3453{ yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
885824d3 3454 break;}
86d93ed3 3455case 55:
c05aefaa 3456{ yyval.conL = constraintList_single (yyvsp[0].con); ;
885824d3 3457 break;}
86d93ed3 3458case 56:
c05aefaa 3459{
3460 yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
3461 DPRINTF(("Done BufConstraint1\n")); ;
885824d3 3462 break;}
86d93ed3 3463case 63:
c05aefaa 3464{yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
885824d3 3465 break;}
86d93ed3 3466case 64:
c05aefaa 3467{
3468 DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3469 yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
885824d3 3470 break;}
86d93ed3 3471case 65:
c05aefaa 3472{ yyval.conE = constraintExpr_makeTermsRef (yyvsp[0].sr);;
885824d3 3473 break;}
86d93ed3 3474case 66:
c05aefaa 3475{ yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
885824d3 3476 break;}
86d93ed3 3477case 67:
c05aefaa 3478{ /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
885824d3 3479 break;}
86d93ed3 3480case 68:
c05aefaa 3481{ yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
885824d3 3482 break;}
86d93ed3 3483case 69:
c05aefaa 3484{ yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
885824d3 3485 break;}
86d93ed3 3486case 70:
c05aefaa 3487{
3488 /*
3489 char *t; int c;
3490 t = cstring_toCharsSafe (exprNode_unparse($3));
3491 c = atoi( t );
3492 */
3493 yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
3494 ;
885824d3 3495 break;}
86d93ed3 3496case 71:
c05aefaa 3497{ yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
885824d3 3498 break;}
86d93ed3 3499case 72:
c05aefaa 3500{ yyval.sr = yyvsp[-1].sr; ;
885824d3 3501 break;}
86d93ed3 3502case 73:
c05aefaa 3503{ cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
885824d3 3504 break;}
86d93ed3 3505case 74:
c05aefaa 3506{ cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
885824d3 3507 break;}
86d93ed3 3508case 78:
c05aefaa 3509{ yyval.funcclauselist = functionClauseList_new (); ;
885824d3 3510 break;}
86d93ed3 3511case 79:
c05aefaa 3512{ yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3513 break;}
86d93ed3 3514case 80:
c05aefaa 3515{ yyval.funcclauselist = functionClauseList_new (); ;
3516 break;}
86d93ed3 3517case 81:
c05aefaa 3518{ yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3519 break;}
86d93ed3 3520case 82:
c05aefaa 3521{ yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3522 break;}
86d93ed3 3523case 83:
c05aefaa 3524{ yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
885824d3 3525 break;}
86d93ed3 3526case 84:
c05aefaa 3527{ yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
885824d3 3528 break;}
86d93ed3 3529case 85:
c05aefaa 3530{ yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
885824d3 3531 break;}
86d93ed3 3532case 86:
c05aefaa 3533{ yyval.funcclause = yyvsp[0].funcclause; ;
885824d3 3534 break;}
86d93ed3 3535case 87:
c05aefaa 3536{ yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3537 break;}
86d93ed3 3538case 88:
c05aefaa 3539{ yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3540 break;}
86d93ed3 3541case 89:
c05aefaa 3542{ yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3543 break;}
86d93ed3 3544case 90:
c05aefaa 3545{ yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3546 break;}
86d93ed3 3547case 91:
c05aefaa 3548{ yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3549 break;}
86d93ed3 3550case 92:
c05aefaa 3551{ yyval.funcclause = yyvsp[0].funcclause; ;
3552 break;}
86d93ed3 3553case 93:
c05aefaa 3554{ yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3555 break;}
86d93ed3 3556case 94:
c05aefaa 3557{ yyval.globsclause = yyvsp[-1].globsclause; ;
3558 break;}
86d93ed3 3559case 95:
c05aefaa 3560{ setProcessingGlobalsList (); ;
3561 break;}
86d93ed3 3562case 96:
885824d3 3563{
c05aefaa 3564 unsetProcessingGlobals ();
3565 yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset);
885824d3 3566 ;
3567 break;}
86d93ed3 3568case 97:
c05aefaa 3569{ yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
885824d3 3570 break;}
86d93ed3 3571case 98:
c05aefaa 3572{ yyval.modsclause = yyvsp[-1].modsclause; ;
885824d3 3573 break;}
86d93ed3 3574case 99:
c05aefaa 3575{
3576 context_setProtectVars (); enterParamsTemp ();
3577 sRef_setGlobalScopeSafe ();
3578 ;
885824d3 3579 break;}
86d93ed3 3580case 100:
c05aefaa 3581{
3582 exitParamsTemp ();
3583 sRef_clearGlobalScopeSafe ();
3584 context_releaseVars ();
3585 yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
3586 ;
885824d3 3587 break;}
86d93ed3 3588case 101:
c05aefaa 3589{ yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
885824d3 3590 break;}
86d93ed3 3591case 102:
c05aefaa 3592{ yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
885824d3 3593 break;}
86d93ed3 3594case 105:
c05aefaa 3595{ yyval.warnclause = warnClause_undefined; ;
885824d3 3596 break;}
86d93ed3 3597case 106:
c05aefaa 3598{ yyval.warnclause = yyvsp[-1].warnclause; ;
885824d3 3599 break;}
86d93ed3 3600case 107:
c05aefaa 3601{
3602 llassert (exprNode_knownStringValue (yyvsp[0].expr));
3603 yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr))));
3604 exprNode_free (yyvsp[0].expr);
3605 ;
885824d3 3606 break;}
86d93ed3 3607case 108:
c05aefaa 3608{ yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
885824d3 3609 break;}
86d93ed3 3610case 109:
c05aefaa 3611{ yyval.globset = globSet_single (yyvsp[0].sr); ;
3612 break;}
86d93ed3 3613case 110:
c05aefaa 3614{ yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
3615 break;}
86d93ed3 3616case 111:
c05aefaa 3617{ yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3618 break;}
86d93ed3 3619case 112:
c05aefaa 3620{ yyval.tquallist = qualList_undefined; ;
3621 break;}
86d93ed3 3622case 113:
c05aefaa 3623{ yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3624 break;}
86d93ed3 3625case 114:
c05aefaa 3626{ yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3627 break;}
86d93ed3 3628case 115:
c05aefaa 3629{ yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
3630 break;}
86d93ed3 3631case 116:
c05aefaa 3632{ yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
3633 break;}
86d93ed3 3634case 117:
c05aefaa 3635{ yyval.typequal = qual_createUndef (); ;
3636 break;}
86d93ed3 3637case 118:
c05aefaa 3638{ yyval.typequal = qual_createKilled (); ;
3639 break;}
86d93ed3 3640case 119:
c05aefaa 3641{ yyval.typequal = qual_createOut (); ;
3642 break;}
86d93ed3 3643case 120:
c05aefaa 3644{ yyval.typequal = qual_createIn (); ;
3645 break;}
86d93ed3 3646case 121:
c05aefaa 3647{ yyval.typequal = qual_createPartial (); ;
3648 break;}
86d93ed3 3649case 129:
885824d3 3650{
3651 qtype qint = qtype_create (ctype_int);
3652 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3653 qtype_free (qint);
3654 ;
3655 break;}
86d93ed3 3656case 130:
885824d3 3657{ yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3658 break;}
86d93ed3 3659case 131:
885824d3 3660{ checkDoneParams (); context_enterInnerContext (); ;
3661 break;}
86d93ed3 3662case 132:
885824d3 3663{
3664 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3665 context_exitInner (yyvsp[0].expr);
3666 ;
3667 break;}
86d93ed3 3668case 133:
c05aefaa 3669{ context_enterOldStyleScope (); ;
885824d3 3670 break;}
86d93ed3 3671case 134:
c05aefaa 3672{ oldStyleDoneParams (); context_enterInnerContext (); ;
3673 break;}
86d93ed3 3674case 135:
885824d3 3675{
885824d3 3676 exprNode_checkFunctionBody (yyvsp[0].expr);
c05aefaa 3677 yyval.expr = yyvsp[0].expr; /* oldstyle */
3678 context_exitInner (yyvsp[0].expr);
885824d3 3679 ;
3680 break;}
86d93ed3 3681case 136:
885824d3 3682{
3683 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
c05aefaa 3684 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3685 /* DRL 8 8 2000 */
3686
885824d3 3687 context_exitFunction ();
3688 ;
3689 break;}
86d93ed3 3690case 137:
885824d3 3691{ yyval.srset = yyvsp[-1].srset; ;
3692 break;}
86d93ed3 3693case 138:
885824d3 3694{ yyval.srset = sRefSet_new (); ;
3695 break;}
86d93ed3 3696case 139:
885824d3 3697{ yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3698 break;}
86d93ed3 3699case 140:
885824d3 3700{ yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3701 break;}
86d93ed3 3702case 141:
885824d3 3703{ yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3704 break;}
86d93ed3 3705case 142:
885824d3 3706{ yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3707 break;}
86d93ed3 3708case 143:
885824d3 3709{ yyval.sr = modListPointer (yyvsp[0].sr); ;
3710 break;}
86d93ed3 3711case 144:
885824d3 3712{ yyval.sr = yyvsp[-1].sr; ;
3713 break;}
86d93ed3 3714case 145:
885824d3 3715{ yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3716 break;}
86d93ed3 3717case 146:
885824d3 3718{ yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3719 break;}
86d93ed3 3720case 147:
885824d3 3721{ yyval.sr = yyvsp[0].sr; ;
3722 break;}
86d93ed3 3723case 148:
885824d3 3724{ yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3725 break;}
86d93ed3 3726case 149:
885824d3 3727{ yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3728 break;}
86d93ed3 3729case 150:
885824d3 3730{ yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3731 break;}
86d93ed3 3732case 151:
c05aefaa 3733{ yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
885824d3 3734 break;}
86d93ed3 3735case 152:
c05aefaa 3736{ yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
885824d3 3737 break;}
86d93ed3 3738case 153:
885824d3 3739{ yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3740 break;}
86d93ed3 3741case 154:
885824d3 3742{ yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3743 break;}
86d93ed3 3744case 155:
885824d3 3745{ yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3746 break;}
86d93ed3 3747case 156:
885824d3 3748{ yyval.sr = yyvsp[-1].sr; ;
3749 break;}
86d93ed3 3750case 157:
885824d3 3751{ cstring_markOwned (yyvsp[0].cname);
3752 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3753 break;}
86d93ed3 3754case 158:
885824d3 3755{ cstring_markOwned (yyvsp[0].cname);
3756 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3757 break;}
86d93ed3 3758case 159:
c05aefaa 3759{ yyval.srset = sRefSet_undefined ;
3760 break;}
86d93ed3 3761case 161:
885824d3 3762{ if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3763 else { yyval.srset = sRefSet_undefined; }
3764 ;
3765 break;}
86d93ed3 3766case 162:
885824d3 3767{ if (sRef_isValid (yyvsp[0].sr))
3768 {
3769 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3770 }
3771 else
3772 {
3773 yyval.srset = yyvsp[-2].srset;
3774 }
3775 ;
3776 break;}
86d93ed3 3777case 163:
885824d3 3778{ yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3779 break;}
86d93ed3 3780case 164:
885824d3 3781{ yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3782 break;}
86d93ed3 3783case 166:
885824d3 3784{ yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3785 break;}
86d93ed3 3786case 167:
c05aefaa 3787{ yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
885824d3 3788 break;}
86d93ed3 3789case 168:
885824d3 3790{ yyval.expr = exprNode_makeError (); ;
3791 break;}
86d93ed3 3792case 170:
885824d3 3793{ yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3794 break;}
86d93ed3 3795case 171:
885824d3 3796{ yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3797 break;}
86d93ed3 3798case 172:
c05aefaa 3799{ yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
885824d3 3800 break;}
86d93ed3 3801case 173:
885824d3 3802{ yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3803 break;}
86d93ed3 3804case 174:
c05aefaa 3805{ yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
885824d3 3806 break;}
86d93ed3 3807case 175:
c05aefaa 3808{ yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
885824d3 3809 break;}
86d93ed3 3810case 176:
885824d3 3811{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3812 break;}
86d93ed3 3813case 177:
885824d3 3814{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3815 break;}
86d93ed3 3816case 178:
c05aefaa 3817{ yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
885824d3 3818 break;}
c05aefaa 3819case 179:
86d93ed3 3820{ yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
885824d3 3821 break;}
c05aefaa 3822case 181:
885824d3 3823{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3824 break;}
c05aefaa 3825case 182:
885824d3 3826{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3827 break;}
c05aefaa 3828case 183:
885824d3 3829{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3830 break;}
c05aefaa 3831case 184:
885824d3 3832{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3833 break;}
c05aefaa 3834case 185:
885824d3 3835{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3836 break;}
c05aefaa 3837case 186:
885824d3 3838{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3839 break;}
c05aefaa 3840case 187:
86d93ed3 3841{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
885824d3 3842 break;}
c05aefaa 3843case 188:
86d93ed3 3844{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
885824d3 3845 break;}
c05aefaa 3846case 189:
86d93ed3 3847{ yyval.expr = yyvsp[0].expr; ;
885824d3 3848 break;}
c05aefaa 3849case 190:
86d93ed3 3850{ yyval.expr = yyvsp[0].expr; ;
c05aefaa 3851 break;}
3852case 191:
86d93ed3 3853{ yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
c05aefaa 3854 break;}
3855case 192:
86d93ed3 3856{ yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
885824d3 3857 break;}
c05aefaa 3858case 193:
86d93ed3 3859{ yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
885824d3 3860 break;}
c05aefaa 3861case 194:
86d93ed3 3862{ context_setProtectVars (); ;
885824d3 3863 break;}
c05aefaa 3864case 195:
86d93ed3 3865{ context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
885824d3 3866 break;}
c05aefaa 3867case 196:
86d93ed3 3868{ yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
c05aefaa 3869 break;}
3870case 197:
86d93ed3 3871{ yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3872 break;}
3873case 198:
3874{ yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
c05aefaa 3875 break;}
3876case 199:
86d93ed3 3877{ yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
885824d3 3878 break;}
c05aefaa 3879case 201:
86d93ed3 3880{ yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
1ac6313d 3881 break;}
86d93ed3 3882case 203:
1ac6313d 3883{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
885824d3 3884 break;}
86d93ed3 3885case 204:
1ac6313d 3886{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
885824d3 3887 break;}
c05aefaa 3888case 205:
885824d3 3889{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3890 break;}
86d93ed3 3891case 207:
885824d3 3892{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3893 break;}
c05aefaa 3894case 208:
885824d3 3895{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3896 break;}
86d93ed3 3897case 210:
885824d3 3898{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3899 break;}
c05aefaa 3900case 211:
885824d3 3901{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3902 break;}
c05aefaa 3903case 213:
885824d3 3904{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3905 break;}
c05aefaa 3906case 214:
86d93ed3 3907{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3908 break;}
3909case 215:
885824d3 3910{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3911 break;}
c05aefaa 3912case 216:
885824d3 3913{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3914 break;}
86d93ed3 3915case 218:
885824d3 3916{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3917 break;}
c05aefaa 3918case 219:
885824d3 3919{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3920 break;}
c05aefaa 3921case 221:
885824d3 3922{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3923 break;}
c05aefaa 3924case 223:
885824d3 3925{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3926 break;}
c05aefaa 3927case 225:
86d93ed3 3928{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3929 break;}
3930case 227:
885824d3 3931{ exprNode_produceGuards (yyvsp[-1].expr);
3932 context_enterAndClause (yyvsp[-1].expr);
3933 ;
3934 break;}
86d93ed3 3935case 228:
885824d3 3936{
3937 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3938 context_exitAndClause (yyval.expr, yyvsp[0].expr);
3939 ;
3940 break;}
86d93ed3 3941case 230:
885824d3 3942{
3943 exprNode_produceGuards (yyvsp[-1].expr);
3944 context_enterOrClause (yyvsp[-1].expr);
3945 ;
3946 break;}
86d93ed3 3947case 231:
885824d3 3948{
3949 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3950 context_exitOrClause (yyval.expr, yyvsp[0].expr);
3951 ;
3952 break;}
86d93ed3 3953case 233:
885824d3 3954{ exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3955 break;}
86d93ed3 3956case 234:
885824d3 3957{ context_enterFalseClause (yyvsp[-4].expr); ;
3958 break;}
c05aefaa 3959case 235:
86d93ed3 3960{ yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
885824d3 3961 break;}
c05aefaa 3962case 237:
885824d3 3963{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3964 break;}
c05aefaa 3965case 238:
885824d3 3966{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3967 break;}
c05aefaa 3968case 239:
885824d3 3969{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3970 break;}
c05aefaa 3971case 240:
885824d3 3972{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3973 break;}
c05aefaa 3974case 241:
885824d3 3975{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3976 break;}
c05aefaa 3977case 242:
885824d3 3978{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3979 break;}
c05aefaa 3980case 243:
885824d3 3981{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3982 break;}
c05aefaa 3983case 244:
885824d3 3984{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3985 break;}
c05aefaa 3986case 245:
86d93ed3 3987{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3988 break;}
3989case 246:
885824d3 3990{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3991 break;}
c05aefaa 3992case 247:
86d93ed3 3993{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3994 break;}
3995case 249:
885824d3 3996{ yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
3997 break;}
86d93ed3 3998case 250:
885824d3 3999{ yyval.expr = exprNode_undefined; ;
4000 break;}
86d93ed3 4001case 253:
885824d3 4002{ yyval.expr = yyvsp[0].expr; ;
4003 break;}
86d93ed3 4004case 254:
885824d3 4005{ doVaDcl (); yyval.expr = exprNode_makeError (); ;
4006 break;}
86d93ed3 4007case 255:
885824d3 4008{ yyval.expr = exprNode_makeError (); ;
4009 break;}
86d93ed3 4010case 256:
885824d3 4011{ yyval.expr = exprNode_makeError (); ;
4012 break;}
86d93ed3 4013case 257:
885824d3 4014{
c05aefaa 4015 setProcessingVars (yyvsp[-3].qtyp);
4016 processNamedDecl (yyvsp[-1].ntyp);
4017 ;
885824d3 4018 break;}
86d93ed3 4019case 258:
c05aefaa 4020{
4021 unsetProcessingVars ();
4022 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp);
4023 DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
4024 ;
885824d3 4025 break;}
86d93ed3 4026case 259:
c05aefaa 4027{ setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
885824d3 4028 break;}
86d93ed3 4029case 260:
885824d3 4030{ yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
4031 unsetProcessingVars ();
4032 ;
4033 break;}
86d93ed3 4034case 261:
c05aefaa 4035{
4036 processNamedDecl (yyvsp[-1].ntyp);
4037 yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
4038 ;
885824d3 4039 break;}
86d93ed3 4040case 262:
885824d3 4041{ processNamedDecl (yyvsp[-2].ntyp); ;
4042 break;}
86d93ed3 4043case 263:
885824d3 4044{ yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
4045 break;}
86d93ed3 4046case 264:
885824d3 4047{ setProcessingTypedef (yyvsp[0].qtyp); ;
4048 break;}
86d93ed3 4049case 265:
c05aefaa 4050{ clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
885824d3 4051 break;}
86d93ed3 4052case 266:
885824d3 4053{ /* in the ANSI grammar, semantics unclear */ ;
4054 break;}
86d93ed3 4055case 267:
885824d3 4056{ /* in the ANSI grammar, semantics unclear */ ;
4057 break;}
86d93ed3 4058case 268:
885824d3 4059{ g_expectingTypeName = TRUE; ;
4060 break;}
86d93ed3 4061case 269:
885824d3 4062{ g_expectingTypeName = TRUE; context_pushLoc (); ;
4063 break;}
86d93ed3 4064case 270:
c05aefaa 4065{ yyval.exprlist = yyvsp[-1].exprlist; ;
885824d3 4066 break;}
86d93ed3 4067case 271:
c05aefaa 4068{ yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
885824d3 4069 break;}
86d93ed3 4070case 272:
c05aefaa 4071{ yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
885824d3 4072 break;}
86d93ed3 4073case 273:
885824d3 4074{ yyval.expr = exprNode_makeError (); ;
4075 break;}
86d93ed3 4076case 274:
885824d3 4077{ yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4078 break;}
86d93ed3 4079case 276:
c05aefaa 4080{ yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); ;
885824d3 4081 break;}
86d93ed3 4082case 277:
c05aefaa 4083{ yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); ;
885824d3 4084 break;}
86d93ed3 4085case 278:
c05aefaa 4086{ yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
885824d3 4087 break;}
86d93ed3 4088case 279:
c05aefaa 4089{ yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
885824d3 4090 break;}
86d93ed3 4091case 280:
885824d3 4092{ setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4093 break;}
86d93ed3 4094case 281:
885824d3 4095{ yyval.typequal = qual_createInline (); ;
4096 break;}
86d93ed3 4097case 282:
885824d3 4098{ setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4099 break;}
86d93ed3 4100case 283:
885824d3 4101{ yyval.typequal = qual_createAuto (); ;
4102 break;}
86d93ed3 4103case 284:
885824d3 4104{ yyval.typequal = qual_createRegister (); ;
4105 break;}
86d93ed3 4106case 285:
c05aefaa 4107{ yyval.stateclause = yyvsp[-1].stateclause; ;
885824d3 4108 break;}
077d4458 4109case 286:
c05aefaa 4110{
4111 context_setProtectVars ();
4112 enterParamsTemp ();
4113 sRef_setGlobalScopeSafe ();
4114 ;
885824d3 4115 break;}
077d4458 4116case 287:
c05aefaa 4117{
4118 exitParamsTemp ();
4119 sRef_clearGlobalScopeSafe ();
4120 context_releaseVars ();
4121 yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
4122 ;
885824d3 4123 break;}
077d4458 4124case 288:
c05aefaa 4125{ yyval.funcclause = yyvsp[-1].funcclause; ;
885824d3 4126 break;}
077d4458 4127case 289:
c05aefaa 4128{ yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
885824d3 4129 break;}
077d4458 4130case 290:
c05aefaa 4131{
4132 context_exitFunctionHeader ();
4133 context_setProtectVars ();
4134 enterParamsTemp ();
4135 sRef_setGlobalScopeSafe ();
4136 ;
4137 break;}
077d4458 4138case 291:
c05aefaa 4139{
4140 exitParamsTemp ();
4141 sRef_clearGlobalScopeSafe ();
4142 context_releaseVars ();
4143 yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
4144 ;
4145 break;}
077d4458 4146case 292:
c05aefaa 4147{
4148 context_setProtectVars ();
4149 enterParamsTemp ();
4150 sRef_setGlobalScopeSafe ();
4151 ;
4152 break;}
077d4458 4153case 293:
c05aefaa 4154{
4155 context_exitFunctionHeader ();
4156 exitParamsTemp ();
4157 sRef_clearGlobalScopeSafe ();
4158 context_releaseVars ();
4159 DPRINTF (("done optGlobBufConstraintsAux\n"));
4160
4161 if (lltok_isEnsures (yyvsp[-4].tok))
4162 {
4163 yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint);
4164 }
4165 else if (lltok_isRequires (yyvsp[-4].tok))
4166 {
4167 yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint);
4168 }
4169 else
4170 {
4171 BADBRANCH;
4172 }
4173
4174 DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
4175 ;
4176 break;}
077d4458 4177case 294:
86d93ed3 4178{ yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
c05aefaa 4179 break;}
077d4458 4180case 295:
86d93ed3 4181{ yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
c05aefaa 4182 break;}
077d4458 4183case 296:
86d93ed3 4184{ yyval.typequal = qual_createExits (); ;
c05aefaa 4185 break;}
077d4458 4186case 297:
86d93ed3 4187{ yyval.typequal = qual_createMayExit (); ;
c05aefaa 4188 break;}
077d4458 4189case 298:
86d93ed3 4190{ yyval.typequal = qual_createTrueExit (); ;
c05aefaa 4191 break;}
077d4458 4192case 299:
86d93ed3 4193{ yyval.typequal = qual_createFalseExit (); ;
c05aefaa 4194 break;}
077d4458 4195case 300:
86d93ed3 4196{ yyval.typequal = qual_createNeverExit (); ;
c05aefaa 4197 break;}
077d4458 4198case 301:
86d93ed3 4199{ yyval.typequal = qual_createChecked (); ;
c05aefaa 4200 break;}
077d4458 4201case 302:
86d93ed3 4202{ yyval.typequal = qual_createCheckMod (); ;
c05aefaa 4203 break;}
077d4458 4204case 303:
86d93ed3 4205{ yyval.typequal = qual_createUnchecked (); ;
885824d3 4206 break;}
077d4458 4207case 304:
86d93ed3 4208{ yyval.typequal = qual_createCheckedStrict (); ;
885824d3 4209 break;}
077d4458 4210case 305:
86d93ed3 4211{ yyval.typequal = qual_createOwned (); ;
885824d3 4212 break;}
077d4458 4213case 306:
86d93ed3 4214{ yyval.typequal = qual_createDependent (); ;
885824d3 4215 break;}
077d4458 4216case 307:
86d93ed3 4217{ yyval.typequal = qual_createYield (); ;
885824d3 4218 break;}
077d4458 4219case 308:
86d93ed3 4220{ yyval.typequal = qual_createTemp (); ;
885824d3 4221 break;}
077d4458 4222case 309:
86d93ed3 4223{ yyval.typequal = qual_createOnly (); ;
885824d3 4224 break;}
077d4458 4225case 310:
86d93ed3 4226{ yyval.typequal = qual_createKeep (); ;
885824d3 4227 break;}
077d4458 4228case 311:
86d93ed3 4229{ yyval.typequal = qual_createKept (); ;
885824d3 4230 break;}
077d4458 4231case 312:
86d93ed3 4232{ yyval.typequal = qual_createShared (); ;
885824d3 4233 break;}
077d4458 4234case 313:
86d93ed3 4235{ yyval.typequal = qual_createUnique (); ;
c05aefaa 4236 break;}
077d4458 4237case 314:
86d93ed3 4238{ yyval.typequal = qual_createNull (); ;
885824d3 4239 break;}
077d4458 4240case 315:
86d93ed3 4241{ yyval.typequal = qual_createIsNull (); ;
885824d3 4242 break;}
077d4458 4243case 316:
86d93ed3 4244{ yyval.typequal = qual_createRelNull (); ;
885824d3 4245 break;}
077d4458 4246case 317:
86d93ed3 4247{ yyval.typequal = qual_createNotNull (); ;
885824d3 4248 break;}
077d4458 4249case 318:
86d93ed3 4250{ yyval.typequal = qual_createExposed (); ;
885824d3 4251 break;}
077d4458 4252case 319:
86d93ed3 4253{ yyval.typequal = qual_createObserver (); ;
885824d3 4254 break;}
077d4458 4255case 320:
86d93ed3 4256{ yyval.typequal = qual_createNullTerminated (); ;
885824d3 4257 break;}
077d4458 4258case 321:
86d93ed3 4259{ yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
885824d3 4260 break;}
077d4458 4261case 322:
86d93ed3 4262{ yyval.typequal = qual_createReturned (); ;
885824d3 4263 break;}
077d4458 4264case 323:
86d93ed3 4265{ yyval.typequal = qual_createSef (); ;
885824d3 4266 break;}
077d4458 4267case 324:
86d93ed3 4268{ yyval.typequal = qual_createUnused (); ;
885824d3 4269 break;}
077d4458 4270case 325:
86d93ed3 4271{ yyval.typequal = qual_createExternal (); ;
c05aefaa 4272 break;}
077d4458 4273case 326:
86d93ed3 4274{ yyval.typequal = qual_createTrueNull (); ;
885824d3 4275 break;}
077d4458 4276case 327:
86d93ed3 4277{ yyval.typequal = qual_createFalseNull (); ;
885824d3 4278 break;}
077d4458 4279case 328:
86d93ed3 4280{ yyval.typequal = qual_createAbstract (); ;
885824d3 4281 break;}
077d4458 4282case 329:
86d93ed3 4283{ yyval.typequal = qual_createConcrete (); ;
885824d3 4284 break;}
077d4458 4285case 330:
86d93ed3 4286{ yyval.typequal = qual_createMutable (); ;
885824d3 4287 break;}
077d4458 4288case 331:
86d93ed3 4289{ yyval.typequal = qual_createImmutable (); ;
885824d3 4290 break;}
077d4458 4291case 332:
86d93ed3 4292{ yyval.typequal = qual_createRefCounted (); ;
885824d3 4293 break;}
077d4458 4294case 333:
86d93ed3 4295{ yyval.typequal = qual_createRefs (); ;
885824d3 4296 break;}
077d4458 4297case 334:
86d93ed3 4298{ yyval.typequal = qual_createKillRef (); ;
885824d3 4299 break;}
077d4458 4300case 335:
86d93ed3 4301{ yyval.typequal = qual_createRelDef (); ;
885824d3 4302 break;}
077d4458 4303case 336:
86d93ed3 4304{ yyval.typequal = qual_createNewRef (); ;
885824d3 4305 break;}
077d4458 4306case 337:
86d93ed3 4307{ yyval.typequal = qual_createTempRef (); ;
885824d3 4308 break;}
077d4458 4309case 338:
86d93ed3 4310{ yyval.typequal = qual_createShort (); ;
885824d3 4311 break;}
077d4458 4312case 339:
86d93ed3 4313{ yyval.typequal = qual_createLong (); ;
885824d3 4314 break;}
077d4458 4315case 340:
86d93ed3 4316{ yyval.typequal = qual_createSigned (); ;
c05aefaa 4317 break;}
077d4458 4318case 341:
86d93ed3 4319{ yyval.typequal = qual_createUnsigned (); ;
c05aefaa 4320 break;}
077d4458 4321case 342:
86d93ed3 4322{ yyval.typequal = qual_createOut (); ;
c05aefaa 4323 break;}
077d4458 4324case 343:
86d93ed3 4325{ yyval.typequal = qual_createIn (); ;
c05aefaa 4326 break;}
077d4458 4327case 344:
86d93ed3 4328{ yyval.typequal = qual_createPartial (); ;
c05aefaa 4329 break;}
077d4458 4330case 345:
86d93ed3 4331{ yyval.typequal = qual_createSpecial (); ;
c05aefaa 4332 break;}
077d4458 4333case 346:
86d93ed3 4334{ yyval.typequal = qual_createConst (); ;
c05aefaa 4335 break;}
077d4458 4336case 347:
86d93ed3 4337{ yyval.typequal = qual_createVolatile (); ;
c05aefaa 4338 break;}
077d4458 4339case 348:
4340{ yyval.typequal = yyvsp[-1].typequal; ;
4341 break;}
c05aefaa 4342case 349:
c05aefaa 4343{ yyval.typequal = yyvsp[-1].typequal; ;
4344 break;}
4345case 350:
c05aefaa 4346{ yyval.typequal = yyvsp[-1].typequal; ;
4347 break;}
4348case 351:
c05aefaa 4349{ yyval.typequal = yyvsp[-1].typequal; ;
4350 break;}
4351case 352:
c05aefaa 4352{ yyval.typequal = yyvsp[-1].typequal; ;
4353 break;}
4354case 353:
c05aefaa 4355{ yyval.typequal = yyvsp[-1].typequal; ;
4356 break;}
4357case 354:
c05aefaa 4358{ yyval.typequal = yyvsp[-1].typequal; ;
4359 break;}
4360case 355:
c05aefaa 4361{ yyval.typequal = yyvsp[-1].typequal; ;
4362 break;}
86d93ed3 4363case 356:
4364{ yyval.typequal = yyvsp[-1].typequal; ;
4365 break;}
077d4458 4366case 363:
885824d3 4367{ yyval.ctyp = ctype_unknown; ;
4368 break;}
077d4458 4369case 364:
885824d3 4370{ yyval.ctyp = ctype_anyintegral; ;
4371 break;}
077d4458 4372case 365:
885824d3 4373{ yyval.ctyp = ctype_unsignedintegral; ;
4374 break;}
077d4458 4375case 366:
885824d3 4376{ yyval.ctyp = ctype_signedintegral; ;
4377 break;}
077d4458 4378case 370:
885824d3 4379{ yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4380 break;}
077d4458 4381case 371:
885824d3 4382{ yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4383 break;}
077d4458 4384case 372:
885824d3 4385{ yyval.qtyp = yyvsp[0].qtyp; ;
4386 break;}
077d4458 4387case 373:
86d93ed3 4388{ yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
885824d3 4389 break;}
077d4458 4390case 375:
86d93ed3 4391{ yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
885824d3 4392 break;}
077d4458 4393case 376:
86d93ed3 4394{ yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
885824d3 4395 break;}
077d4458 4396case 377:
86d93ed3 4397{ yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
885824d3 4398 break;}
077d4458 4399case 378:
86d93ed3 4400{ yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
885824d3 4401 break;}
077d4458 4402case 379:
86d93ed3 4403{ yyval.qtyp = qtype_unknown (); ;
885824d3 4404 break;}
077d4458 4405case 380:
86d93ed3 4406{ yyval.qtyp = yyvsp[0].qtyp; ;
885824d3 4407 break;}
077d4458 4408case 381:
86d93ed3 4409{ yyval.conL = constraintList_undefined; ;
885824d3 4410 break;}
077d4458 4411case 382:
885824d3 4412{ sRef_setGlobalScopeSafe (); ;
4413 break;}
077d4458 4414case 383:
885824d3 4415{ sRef_clearGlobalScopeSafe (); ;
4416 break;}
077d4458 4417case 384:
86d93ed3 4418{ {ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); /* setGlobalStructInfo(ct, $12);*/ yyval.ctyp = ct;} ;
885824d3 4419 break;}
077d4458 4420case 385:
86d93ed3 4421{ sRef_setGlobalScopeSafe (); ;
885824d3 4422 break;}
077d4458 4423case 386:
86d93ed3 4424{ sRef_clearGlobalScopeSafe (); ;
885824d3 4425 break;}
077d4458 4426case 387:
86d93ed3 4427{ yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
885824d3 4428 break;}
077d4458 4429case 388:
86d93ed3 4430{ yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
885824d3 4431 break;}
077d4458 4432case 389:
86d93ed3 4433{ yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
885824d3 4434 break;}
077d4458 4435case 390:
885824d3 4436{ sRef_setGlobalScopeSafe (); ;
4437 break;}
077d4458 4438case 391:
885824d3 4439{ sRef_clearGlobalScopeSafe (); ;
4440 break;}
077d4458 4441case 392:
86d93ed3 4442{ yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
885824d3 4443 break;}
077d4458 4444case 393:
86d93ed3 4445{ sRef_setGlobalScopeSafe (); ;
885824d3 4446 break;}
077d4458 4447case 394:
86d93ed3 4448{ sRef_clearGlobalScopeSafe (); ;
885824d3 4449 break;}
077d4458 4450case 395:
86d93ed3 4451{ yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
885824d3 4452 break;}
077d4458 4453case 396:
86d93ed3 4454{ yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
885824d3 4455 break;}
077d4458 4456case 397:
86d93ed3 4457{ yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4458 break;}
077d4458 4459case 398:
86d93ed3 4460{ yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
885824d3 4461 break;}
077d4458 4462case 399:
86d93ed3 4463{ yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
885824d3 4464 break;}
077d4458 4465case 400:
86d93ed3 4466{ g_expectingTypeName = FALSE; ;
4467 break;}
077d4458 4468case 402:
86d93ed3 4469{ yyval.flist = uentryList_undefined; /* bogus! */ ;
4470 break;}
077d4458 4471case 403:
885824d3 4472{ yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4473 break;}
077d4458 4474case 404:
885824d3 4475{ yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4476 break;}
077d4458 4477case 405:
885824d3 4478{ yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4479 break;}
077d4458 4480case 406:
885824d3 4481{ yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4482 break;}
077d4458 4483case 407:
885824d3 4484{ yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4485 break;}
077d4458 4486case 408:
885824d3 4487{ yyval.ntyp = yyvsp[0].ntyp; ;
4488 break;}
077d4458 4489case 409:
885824d3 4490{ yyval.ntyp = idDecl_undefined; ;
4491 break;}
077d4458 4492case 410:
c05aefaa 4493{ yyval.ntyp = yyvsp[-3].ntyp; ;
885824d3 4494 break;}
077d4458 4495case 411:
885824d3 4496{ yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4497 break;}
077d4458 4498case 412:
885824d3 4499{ context_pushLoc (); ;
4500 break;}
077d4458 4501case 413:
885824d3 4502{ context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4503 break;}
077d4458 4504case 414:
885824d3 4505{ yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4506 break;}
077d4458 4507case 415:
885824d3 4508{ yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4509 break;}
077d4458 4510case 416:
885824d3 4511{ yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4512 break;}
077d4458 4513case 418:
885824d3 4514{ uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4515 usymtab_supGlobalEntry (ue);
4516 yyval.cname = yyvsp[0].cname;
4517 ;
4518 break;}
077d4458 4519case 419:
c05aefaa 4520{ uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
885824d3 4521 usymtab_supGlobalEntry (ue);
4522 yyval.cname = yyvsp[-3].cname;
4523 ;
4524 break;}
077d4458 4525case 421:
885824d3 4526{ yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4527 break;}
077d4458 4528case 422:
885824d3 4529{
4530 qtype qt = qtype_unknown ();
4531
4532 qtype_adjustPointers (yyvsp[-1].count, qt);
4533 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4534 ;
4535 break;}
077d4458 4536case 423:
885824d3 4537{ yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4538 break;}
077d4458 4539case 425:
885824d3 4540{ yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4541 break;}
077d4458 4542case 426:
885824d3 4543{ yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4544 break;}
077d4458 4545case 427:
885824d3 4546{ yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4547 break;}
077d4458 4548case 428:
885824d3 4549{ /* ignored for now */; ;
4550 break;}
077d4458 4551case 429:
4552{ ; ;
4553 break;}
86d93ed3 4554case 430:
885824d3 4555{ ; ;
4556 break;}
86d93ed3 4557case 431:
885824d3 4558{ ; ;
4559 break;}
86d93ed3 4560case 432:
077d4458 4561{ yyval.count = 1; ;
885824d3 4562 break;}
86d93ed3 4563case 433:
885824d3 4564{ yyval.count = 1; ;
4565 break;}
86d93ed3 4566case 434:
885824d3 4567{ yyval.count = 1 + yyvsp[0].count; ;
4568 break;}
077d4458 4569case 435:
885824d3 4570{ yyval.count = 1 + yyvsp[0].count; ;
4571 break;}
077d4458 4572case 437:
885824d3 4573{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4574 break;}
077d4458 4575case 438:
885824d3 4576{ yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4577 break;}
077d4458 4578case 439:
885824d3 4579{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4580 break;}
077d4458 4581case 440:
885824d3 4582{ yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4583 break;}
077d4458 4584case 442:
885824d3 4585{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4586 break;}
077d4458 4587case 443:
885824d3 4588{ storeLoc (); ;
4589 break;}
077d4458 4590case 444:
885824d3 4591{ yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4592 break;}
077d4458 4593case 445:
885824d3 4594{ storeLoc (); ;
4595 break;}
077d4458 4596case 446:
885824d3 4597{ yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4598 break;}
077d4458 4599case 447:
885824d3 4600{
4601 if (isFlipOldStyle ())
4602 {
4603 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4604 }
4605 else
4606 {
4607 setNewStyle ();
4608 }
4609 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4610 ;
4611 break;}
077d4458 4612case 448:
885824d3 4613{
4614 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4615
4616 if (isNewStyle ())
4617 {
4618 llparseerror (message ("Inconsistent function parameter syntax: %q",
4619 idDecl_unparse (tparam)));
4620 }
4621
4622 setFlipOldStyle ();
4623 yyval.oentry = makeCurrentParam (tparam);
4624 idDecl_free (tparam);
4625 ;
4626 break;}
077d4458 4627case 450:
885824d3 4628{ yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4629 break;}
077d4458 4630case 451:
885824d3 4631{ yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4632 break;}
077d4458 4633case 453:
885824d3 4634{ yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4635 break;}
077d4458 4636case 454:
885824d3 4637{ yyval.ctyp = ctype_unknown; ;
4638 break;}
077d4458 4639case 456:
885824d3 4640{ yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4641 break;}
077d4458 4642case 457:
885824d3 4643{ yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4644 break;}
077d4458 4645case 458:
c05aefaa 4646{ yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
885824d3 4647 break;}
077d4458 4648case 459:
885824d3 4649{ yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4650 break;}
077d4458 4651case 460:
4652{ yyval.ctyp = ctype_makeInnerFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
885824d3 4653 break;}
077d4458 4654case 461:
885824d3 4655{ yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4656 break;}
077d4458 4657case 462:
885824d3 4658{ yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4659 break;}
077d4458 4660case 463:
885824d3 4661{ yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4662 break;}
077d4458 4663case 464:
885824d3 4664{ yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4665 break;}
077d4458 4666case 474:
885824d3 4667{ yyval.expr = yyvsp[0].expr; ;
4668 break;}
077d4458 4669case 477:
885824d3 4670{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4671 break;}
077d4458 4672case 478:
885824d3 4673{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4674 break;}
077d4458 4675case 479:
885824d3 4676{ yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4677 break;}
077d4458 4678case 480:
885824d3 4679{ yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4680 break;}
077d4458 4681case 481:
885824d3 4682{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4683 break;}
077d4458 4684case 482:
885824d3 4685{ context_setProtectVars (); ;
4686 break;}
077d4458 4687case 483:
885824d3 4688{ context_sizeofReleaseVars (); ;
4689 break;}
077d4458 4690case 484:
885824d3 4691{ yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4692 context_enterForClause (yyvsp[-5].expr); ;
4693 break;}
077d4458 4694case 485:
885824d3 4695{ setProcessingIterVars (yyvsp[-2].entry); ;
4696 break;}
077d4458 4697case 486:
c05aefaa 4698{ yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
885824d3 4699 break;}
077d4458 4700case 487:
885824d3 4701{ yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4702 break;}
077d4458 4703case 491:
c05aefaa 4704{ yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
885824d3 4705 break;}
077d4458 4706case 499:
885824d3 4707{ yyval.expr = yyvsp[-1].expr; ;
4708 break;}
077d4458 4709case 500:
885824d3 4710{ yyval.expr = exprNode_makeError (); ;
4711 break;}
077d4458 4712case 501:
2e127cb8 4713{ exprNode_checkIfPred (yyvsp[0].expr); ;
4714 break;}
077d4458 4715case 502:
885824d3 4716{ /* don't: context_exitTrueClause ($1, $2); */
2e127cb8 4717 yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr);
885824d3 4718 ;
4719 break;}
077d4458 4720case 503:
885824d3 4721{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4722 break;}
077d4458 4723case 504:
885824d3 4724{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4725 break;}
077d4458 4726case 515:
885824d3 4727{ yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4728 break;}
077d4458 4729case 517:
2e127cb8 4730{ yyval.expr = exprNode_makeError (); ;
885824d3 4731 break;}
077d4458 4732case 518:
2e127cb8 4733{ yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
885824d3 4734 break;}
077d4458 4735case 519:
2e127cb8 4736{ yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
885824d3 4737 break;}
077d4458 4738case 520:
fafc64cf 4739{ ; ;
885824d3 4740 break;}
077d4458 4741case 521:
2e127cb8 4742{ ; ;
885824d3 4743 break;}
077d4458 4744case 522:
2e127cb8 4745{ context_enterCaseClause (yyvsp[0].expr); ;
885824d3 4746 break;}
077d4458 4747case 523:
2e127cb8 4748{ yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
885824d3 4749 break;}
077d4458 4750case 524:
2e127cb8 4751{ context_enterCaseClause (yyvsp[0].expr); ;
885824d3 4752 break;}
077d4458 4753case 525:
2e127cb8 4754{ yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
885824d3 4755 break;}
077d4458 4756case 526:
2e127cb8 4757{ context_enterCaseClause (exprNode_undefined); ;
885824d3 4758 break;}
077d4458 4759case 527:
2e127cb8 4760{ yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
885824d3 4761 break;}
077d4458 4762case 528:
2e127cb8 4763{ context_enterCaseClause (exprNode_undefined); ;
885824d3 4764 break;}
077d4458 4765case 529:
2e127cb8 4766{ yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
885824d3 4767 break;}
077d4458 4768case 530:
2e127cb8 4769{ yyval.expr = yyvsp[-1].expr; ;
885824d3 4770 break;}
077d4458 4771case 531:
2e127cb8 4772{ yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
885824d3 4773 break;}
077d4458 4774case 532:
2e127cb8 4775{ yyval.expr = yyvsp[-1].expr; ;
885824d3 4776 break;}
077d4458 4777case 533:
2e127cb8 4778{ context_enterInnerContext (); ;
885824d3 4779 break;}
077d4458 4780case 534:
2e127cb8 4781{ context_exitInnerPlain (); ;
885824d3 4782 break;}
077d4458 4783case 535:
2e127cb8 4784{ context_enterStructInnerContext (); ;
885824d3 4785 break;}
077d4458 4786case 536:
2e127cb8 4787{ context_exitStructInnerContext (); ;
885824d3 4788 break;}
077d4458 4789case 537:
2e127cb8 4790{ context_exitInnerSafe (); ;
885824d3 4791 break;}
077d4458 4792case 538:
2e127cb8 4793{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
885824d3 4794 break;}
077d4458 4795case 539:
2e127cb8 4796{ yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
885824d3 4797 break;}
077d4458 4798case 540:
2e127cb8 4799{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
885824d3 4800 break;}
077d4458 4801case 541:
2e127cb8 4802{ yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
fafc64cf 4803 break;}
077d4458 4804case 542:
2e127cb8 4805{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
fafc64cf 4806 break;}
077d4458 4807case 543:
2e127cb8 4808{ yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
885824d3 4809 break;}
077d4458 4810case 544:
2e127cb8 4811{ yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4812 break;}
077d4458 4813case 545:
885824d3 4814{ yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
4815 lltok_getLoc (yyvsp[-1].tok)));
4816 ;
4817 break;}
077d4458 4818case 546:
2e127cb8 4819{ yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
885824d3 4820 break;}
077d4458 4821case 547:
2e127cb8 4822{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
885824d3 4823 break;}
077d4458 4824case 548:
885824d3 4825{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4826 break;}
077d4458 4827case 549:
2e127cb8 4828{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
885824d3 4829 break;}
077d4458 4830case 550:
2e127cb8 4831{ yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
885824d3 4832 break;}
077d4458 4833case 552:
2e127cb8 4834{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
885824d3 4835 break;}
077d4458 4836case 553:
2e127cb8 4837{ yyval.expr = yyvsp[0].expr; ;
885824d3 4838 break;}
077d4458 4839case 554:
2e127cb8 4840{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
885824d3 4841 break;}
077d4458 4842case 555:
2e127cb8 4843{ yyval.expr = yyvsp[0].expr; ;
885824d3 4844 break;}
077d4458 4845case 556:
2e127cb8 4846{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
885824d3 4847 break;}
077d4458 4848case 557:
2e127cb8 4849{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
885824d3 4850 break;}
077d4458 4851case 558:
2e127cb8 4852{ yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
885824d3 4853 break;}
077d4458 4854case 559:
2e127cb8 4855{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
885824d3 4856 break;}
077d4458 4857case 560:
2e127cb8 4858{ yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
fafc64cf 4859 break;}
077d4458 4860case 561:
2e127cb8 4861{ yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
fafc64cf 4862 break;}
077d4458 4863case 562:
2e127cb8 4864{
4865 exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr);
4866 exprNode_checkIfPred (yyvsp[-1].expr);
4867 yyval.expr = yyvsp[-1].expr;
4868 ;
4869 break;}
077d4458 4870case 563:
885824d3 4871{
4872 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
4873 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4874 ;
4875 break;}
077d4458 4876case 564:
885824d3 4877{ context_enterFalseClause (yyvsp[-2].expr); ;
4878 break;}
077d4458 4879case 565:
885824d3 4880{
4881 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4882 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4883 ;
4884 break;}
077d4458 4885case 566:
885824d3 4886{ context_enterSwitch (yyvsp[0].expr); ;
4887 break;}
077d4458 4888case 567:
885824d3 4889{ yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
4890 break;}
077d4458 4891case 568:
885824d3 4892{ yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
4893 break;}
077d4458 4894case 569:
885824d3 4895{ yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
4896 break;}
077d4458 4897case 570:
885824d3 4898{ context_enterIterClause (); ;
4899 break;}
077d4458 4900case 571:
885824d3 4901{ setProcessingIterVars (yyvsp[-3].entry); ;
4902 break;}
077d4458 4903case 572:
885824d3 4904{
c05aefaa 4905 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry);
885824d3 4906
4907 ;
4908 break;}
077d4458 4909case 573:
c05aefaa 4910{ yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
885824d3 4911 break;}
077d4458 4912case 574:
885824d3 4913{ nextIterParam (); ;
4914 break;}
077d4458 4915case 575:
c05aefaa 4916{ yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
885824d3 4917 break;}
077d4458 4918case 576:
885824d3 4919{ yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
4920 break;}
077d4458 4921case 577:
885824d3 4922{ yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
4923 break;}
077d4458 4924case 578:
c05aefaa 4925{ uentry ue = coerceIterId (yyvsp[0].cname);
885824d3 4926
4927 if (uentry_isValid (ue))
4928 {
4929 yyval.expr = exprNode_iterId (ue);
4930 }
4931 else
4932 {
4933 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
4934 }
4935 ;
4936 break;}
077d4458 4937case 579:
fafc64cf 4938{ yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
c05aefaa 4939 break;}
077d4458 4940case 581:
fafc64cf 4941{ yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
885824d3 4942 break;}
077d4458 4943case 583:
fafc64cf 4944{ yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
885824d3 4945 break;}
077d4458 4946case 585:
2e127cb8 4947{ yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
885824d3 4948 break;}
077d4458 4949case 586:
2e127cb8 4950{ yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
885824d3 4951 break;}
077d4458 4952case 587:
2e127cb8 4953{ yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
885824d3 4954 break;}
077d4458 4955case 588:
2e127cb8 4956{ yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
885824d3 4957 break;}
077d4458 4958case 589:
2e127cb8 4959{ yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
fafc64cf 4960 break;}
077d4458 4961case 590:
2e127cb8 4962{ yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
885824d3 4963 break;}
077d4458 4964case 591:
86d93ed3 4965{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
885824d3 4966 break;}
077d4458 4967case 592:
86d93ed3 4968{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
885824d3 4969 break;}
077d4458 4970case 594:
4971{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4972 break;}
c05aefaa 4973case 595:
885824d3 4974{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4975 break;}
c05aefaa 4976case 596:
885824d3 4977{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4978 break;}
c05aefaa 4979case 597:
fafc64cf 4980{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4981 break;}
4982case 598:
fafc64cf 4983{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
885824d3 4984 break;}
c05aefaa 4985case 599:
2e127cb8 4986{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4987 break;}
4988case 600:
86d93ed3 4989{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4990 break;}
4991case 601:
4992{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
885824d3 4993 break;}
2e127cb8 4994case 602:
86d93ed3 4995{ yyval.expr = yyvsp[0].expr; ;
1ac6313d 4996 break;}
077d4458 4997case 604:
86d93ed3 4998{ yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
885824d3 4999 break;}
077d4458 5000case 606:
5001{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5002 break;}
86d93ed3 5003case 607:
885824d3 5004{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5005 break;}
c05aefaa 5006case 608:
885824d3 5007{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5008 break;}
077d4458 5009case 610:
885824d3 5010{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5011 break;}
c05aefaa 5012case 611:
885824d3 5013{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5014 break;}
077d4458 5015case 613:
885824d3 5016{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5017 break;}
c05aefaa 5018case 614:
fafc64cf 5019{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5020 break;}
077d4458 5021case 616:
885824d3 5022{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5023 break;}
86d93ed3 5024case 617:
885824d3 5025{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5026 break;}
86d93ed3 5027case 618:
885824d3 5028{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5029 break;}
c05aefaa 5030case 619:
885824d3 5031{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5032 break;}
077d4458 5033case 621:
885824d3 5034{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5035 break;}
2e127cb8 5036case 622:
885824d3 5037{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5038 break;}
077d4458 5039case 624:
885824d3 5040{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5041 break;}
077d4458 5042case 626:
fafc64cf 5043{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5044 break;}
077d4458 5045case 628:
2e127cb8 5046{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
1ac6313d 5047 break;}
077d4458 5048case 630:
86d93ed3 5049{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
885824d3 5050 break;}
077d4458 5051case 632:
86d93ed3 5052{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
885824d3 5053 break;}
077d4458 5054case 634:
86d93ed3 5055{ context_enterTrueClause (yyvsp[-1].expr); ;
1ac6313d 5056 break;}
077d4458 5057case 635:
86d93ed3 5058{ context_enterFalseClause (yyvsp[-4].expr); ;
885824d3 5059 break;}
077d4458 5060case 636:
86d93ed3 5061{ yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
885824d3 5062 break;}
077d4458 5063case 638:
5064{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5065 break;}
c05aefaa 5066case 639:
885824d3 5067{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5068 break;}
c05aefaa 5069case 640:
885824d3 5070{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5071 break;}
c05aefaa 5072case 641:
885824d3 5073{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5074 break;}
c05aefaa 5075case 642:
885824d3 5076{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5077 break;}
c05aefaa 5078case 643:
885824d3 5079{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5080 break;}
c05aefaa 5081case 644:
fafc64cf 5082{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
885824d3 5083 break;}
c05aefaa 5084case 645:
fafc64cf 5085{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
885824d3 5086 break;}
c05aefaa 5087case 646:
2e127cb8 5088{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
885824d3 5089 break;}
c05aefaa 5090case 647:
86d93ed3 5091{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
885824d3 5092 break;}
c05aefaa 5093case 648:
86d93ed3 5094{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
885824d3 5095 break;}
c05aefaa 5096case 649:
86d93ed3 5097{ yyval.entry = yyvsp[0].entry; ;
885824d3 5098 break;}
077d4458 5099case 650:
86d93ed3 5100{ yyval.entry = uentry_undefined; ;
885824d3 5101 break;}
077d4458 5102case 651:
86d93ed3 5103{ context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
885824d3 5104 break;}
077d4458 5105case 652:
2e127cb8 5106{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
885824d3 5107 break;}
077d4458 5108case 653:
2e127cb8 5109{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
885824d3 5110 break;}
077d4458 5111case 654:
86d93ed3 5112{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
885824d3 5113 break;}
077d4458 5114case 655:
86d93ed3 5115{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
885824d3 5116 break;}
077d4458 5117case 656:
86d93ed3 5118{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
885824d3 5119 break;}
077d4458 5120case 657:
86d93ed3 5121{ yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
885824d3 5122 break;}
077d4458 5123case 658:
86d93ed3 5124{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
885824d3 5125 break;}
077d4458 5126case 659:
86d93ed3 5127{ yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
885824d3 5128 break;}
077d4458 5129case 660:
86d93ed3 5130{ yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
885824d3 5131 break;}
077d4458 5132case 661:
86d93ed3 5133{ yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
885824d3 5134 break;}
077d4458 5135case 662:
86d93ed3 5136{ yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
fafc64cf 5137 break;}
077d4458 5138case 663:
86d93ed3 5139{ yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
885824d3 5140 break;}
077d4458 5141case 664:
86d93ed3 5142{ yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
2e127cb8 5143 break;}
077d4458 5144case 665:
86d93ed3 5145{ yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5146 break;}
077d4458 5147case 666:
86d93ed3 5148{ yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
fafc64cf 5149 break;}
077d4458 5150case 667:
86d93ed3 5151{ yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5152 break;}
077d4458 5153case 668:
86d93ed3 5154{ yyval.expr = exprNode_return (yyvsp[-1].expr); ;
885824d3 5155 break;}
077d4458 5156case 670:
86d93ed3 5157{ ; ;
5158 break;}
077d4458 5159case 673:
5160{ yyval.cname = uentry_getName (yyvsp[0].entry); ;
5161 break;}
86d93ed3 5162case 674:
885824d3 5163{ yyval.cname = uentry_getName (yyvsp[0].entry); ;
5164 break;}
86d93ed3 5165case 675:
885824d3 5166{ yyval.cname = uentry_getName (yyvsp[0].entry); ;
5167 break;}
86d93ed3 5168case 676:
c05aefaa 5169{ yyval.cname = yyvsp[0].cname; ;
5170 break;}
077d4458 5171case 678:
c05aefaa 5172{ yyval.ctyp = ctype_unknown; ;
5173 break;}
885824d3 5174}
e55c0c6d 5175
3e3ec469 5176
885824d3 5177\f
5178 yyvsp -= yylen;
5179 yyssp -= yylen;
e55c0c6d 5180#if YYLSP_NEEDED
885824d3 5181 yylsp -= yylen;
5182#endif
5183
e55c0c6d 5184#if YYDEBUG
885824d3 5185 if (yydebug)
5186 {
5187 short *ssp1 = yyss - 1;
5188 fprintf (stderr, "state stack now");
5189 while (ssp1 != yyssp)
5190 fprintf (stderr, " %d", *++ssp1);
5191 fprintf (stderr, "\n");
5192 }
5193#endif
5194
5195 *++yyvsp = yyval;
e55c0c6d 5196#if YYLSP_NEEDED
5197 *++yylsp = yyloc;
885824d3 5198#endif
5199
e55c0c6d 5200 /* Now `shift' the result of the reduction. Determine what state
5201 that goes to, based on the state we popped back to and the rule
5202 number reduced by. */
885824d3 5203
5204 yyn = yyr1[yyn];
5205
5206 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5207 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5208 yystate = yytable[yystate];
5209 else
5210 yystate = yydefgoto[yyn - YYNTBASE];
5211
5212 goto yynewstate;
5213
885824d3 5214
e55c0c6d 5215/*------------------------------------.
5216| yyerrlab -- here on detecting error |
5217`------------------------------------*/
5218yyerrlab:
5219 /* If not already recovering from an error, report this error. */
5220 if (!yyerrstatus)
885824d3 5221 {
5222 ++yynerrs;
5223
5224#ifdef YYERROR_VERBOSE
5225 yyn = yypact[yystate];
5226
5227 if (yyn > YYFLAG && yyn < YYLAST)
5228 {
5229 int size = 0;
5230 char *msg;
5231 int x, count;
5232
5233 count = 0;
5234 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5235 for (x = (yyn < 0 ? -yyn : 0);
e55c0c6d 5236 x < (int) (sizeof (yytname) / sizeof (char *)); x++)
885824d3 5237 if (yycheck[x + yyn] == x)
e55c0c6d 5238 size += strlen (yytname[x]) + 15, count++;
5239 size += strlen ("parse error, unexpected `") + 1;
5240 size += strlen (yytname[YYTRANSLATE (yychar)]);
5241 msg = (char *) malloc (size);
885824d3 5242 if (msg != 0)
5243 {
e55c0c6d 5244 strcpy (msg, "parse error, unexpected `");
5245 strcat (msg, yytname[YYTRANSLATE (yychar)]);
5246 strcat (msg, "'");
885824d3 5247
5248 if (count < 5)
5249 {
5250 count = 0;
5251 for (x = (yyn < 0 ? -yyn : 0);
e55c0c6d 5252 x < (int) (sizeof (yytname) / sizeof (char *)); x++)
885824d3 5253 if (yycheck[x + yyn] == x)
5254 {
e55c0c6d 5255 strcat (msg, count == 0 ? ", expecting `" : " or `");
5256 strcat (msg, yytname[x]);
5257 strcat (msg, "'");
885824d3 5258 count++;
5259 }
5260 }
e55c0c6d 5261 yyerror (msg);
5262 free (msg);
885824d3 5263 }
5264 else
5265 yyerror ("parse error; also virtual memory exceeded");
5266 }
5267 else
5268#endif /* YYERROR_VERBOSE */
e55c0c6d 5269 yyerror ("parse error");
885824d3 5270 }
885824d3 5271 goto yyerrlab1;
885824d3 5272
e55c0c6d 5273
5274/*--------------------------------------------------.
5275| yyerrlab1 -- error raised explicitly by an action |
5276`--------------------------------------------------*/
5277yyerrlab1:
885824d3 5278 if (yyerrstatus == 3)
5279 {
e55c0c6d 5280 /* If just tried and failed to reuse lookahead token after an
5281 error, discard it. */
885824d3 5282
5283 /* return failure if at end of input */
5284 if (yychar == YYEOF)
5285 YYABORT;
e55c0c6d 5286 YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
5287 yychar, yytname[yychar1]));
885824d3 5288 yychar = YYEMPTY;
5289 }
5290
e55c0c6d 5291 /* Else will try to reuse lookahead token after shifting the error
5292 token. */
885824d3 5293
5294 yyerrstatus = 3; /* Each real token shifted decrements this */
5295
5296 goto yyerrhandle;
5297
885824d3 5298
e55c0c6d 5299/*-------------------------------------------------------------------.
5300| yyerrdefault -- current state does not do anything special for the |
5301| error token. |
5302`-------------------------------------------------------------------*/
5303yyerrdefault:
885824d3 5304#if 0
5305 /* This is wrong; only states that explicitly want error tokens
5306 should shift them. */
e55c0c6d 5307
5308 /* If its default is to accept any token, ok. Otherwise pop it. */
5309 yyn = yydefact[yystate];
5310 if (yyn)
5311 goto yydefault;
885824d3 5312#endif
5313
885824d3 5314
e55c0c6d 5315/*---------------------------------------------------------------.
5316| yyerrpop -- pop the current state because it cannot handle the |
5317| error token |
5318`---------------------------------------------------------------*/
5319yyerrpop:
5320 if (yyssp == yyss)
5321 YYABORT;
885824d3 5322 yyvsp--;
5323 yystate = *--yyssp;
e55c0c6d 5324#if YYLSP_NEEDED
885824d3 5325 yylsp--;
5326#endif
5327
e55c0c6d 5328#if YYDEBUG
885824d3 5329 if (yydebug)
5330 {
5331 short *ssp1 = yyss - 1;
5332 fprintf (stderr, "Error: state stack now");
5333 while (ssp1 != yyssp)
5334 fprintf (stderr, " %d", *++ssp1);
5335 fprintf (stderr, "\n");
5336 }
5337#endif
5338
e55c0c6d 5339/*--------------.
5340| yyerrhandle. |
5341`--------------*/
885824d3 5342yyerrhandle:
885824d3 5343 yyn = yypact[yystate];
5344 if (yyn == YYFLAG)
5345 goto yyerrdefault;
5346
5347 yyn += YYTERROR;
5348 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5349 goto yyerrdefault;
5350
5351 yyn = yytable[yyn];
5352 if (yyn < 0)
5353 {
5354 if (yyn == YYFLAG)
5355 goto yyerrpop;
5356 yyn = -yyn;
5357 goto yyreduce;
5358 }
5359 else if (yyn == 0)
5360 goto yyerrpop;
5361
5362 if (yyn == YYFINAL)
5363 YYACCEPT;
5364
e55c0c6d 5365 YYDPRINTF ((stderr, "Shifting error token, "));
885824d3 5366
5367 *++yyvsp = yylval;
e55c0c6d 5368#if YYLSP_NEEDED
885824d3 5369 *++yylsp = yylloc;
5370#endif
5371
5372 yystate = yyn;
5373 goto yynewstate;
c05aefaa 5374
e55c0c6d 5375
5376/*-------------------------------------.
5377| yyacceptlab -- YYACCEPT comes here. |
5378`-------------------------------------*/
5379yyacceptlab:
c05aefaa 5380 if (yyfree_stacks)
5381 {
5382 free (yyss);
5383 free (yyvs);
e55c0c6d 5384#if YYLSP_NEEDED
c05aefaa 5385 free (yyls);
5386#endif
5387 }
5388 return 0;
5389
e55c0c6d 5390
5391/*-----------------------------------.
5392| yyabortlab -- YYABORT comes here. |
5393`-----------------------------------*/
5394yyabortlab:
c05aefaa 5395 if (yyfree_stacks)
5396 {
5397 free (yyss);
5398 free (yyvs);
e55c0c6d 5399#if YYLSP_NEEDED
c05aefaa 5400 free (yyls);
5401#endif
5402 }
5403 return 1;
885824d3 5404}
885824d3 5405
5406
c05aefaa 5407/*@-redecl@*/ /*@-namechecks@*/
885824d3 5408extern char *yytext;
c05aefaa 5409/*@=redecl@*/ /*@=namechecks@*/
885824d3 5410
5411# include "bison.reset"
5412
5413void yyerror (/*@unused@*/ char *s)
5414{
5415 static bool givehint = FALSE;
5416
5417 if (context_inIterDef ())
5418 {
5419 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5420 context_inFunctionName ()));
5421 }
5422 else if (context_inIterEnd ())
5423 {
5424 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5425 context_inFunctionName ()));
5426 }
5427 else if (context_inMacro ())
5428 {
5429 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5430 context_inFunctionName ()));
5431
c05aefaa 5432 if (context_inUnknownMacro ())
885824d3 5433 {
5434 if (!givehint)
5435 {
5436 llhint (cstring_makeLiteral
5437 ("Precede macro definition with /*@notfunction@*/ "
5438 "to suppress checking and force expansion"));
5439 givehint = TRUE;
5440 }
5441 }
5442
5443 swallowMacro ();
c05aefaa 5444 context_exitAllClausesQuiet ();
885824d3 5445 }
5446 else
5447 {
5448 llparseerror (cstring_undefined);
5449 }
5450}
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
c05aefaa 5463/*
5464** Resets all flags in bison.head
5465*/
5466
885824d3 5467
c05aefaa 5468/*@=allmacros@*/
5469/*@=boolint@*/
5470/*@=charint@*/
5471/*@=macroparams@*/
5472/*@=macroundef@*/
5473/*@=unreachable@*/
5474/*@=macrospec@*/
5475/*@=varuse@*/
5476/*@=ignorequals@*/
5477/*@=macrostmt@*/
5478/*@=noeffect@*/
5479/*@=shadow@*/
5480/*@=exitarg@*/
5481/*@=macroredef@*/
5482/*@=uniondef@*/
5483/*@=compdef@*/
5484/*@=matchfields@*/
5485/*@=exportlocal@*/
5486/*@=evalorderuncon@*/
5487/*@=exportheader@*/
5488/*@=typeuse@*/
5489/*@=redecl@*/
5490/*@=redef@*/
5491/*@=noparams@*/
5492/*@=ansireserved@*/
5493/*@=fielduse@*/
5494/*@=ifblock@*/
5495/*@=elseifcomplete@*/
5496/*@=whileblock@*/
5497/*@=forblock@*/
5498/*@=branchstate@*/
5499/*@=readonlytrans@*/
5500/*@=namechecks@*/
5501/*@=usedef@*/
5502/*@=systemunrecog@*/
5503/*@=dependenttrans@*/
5504/*@=unqualifiedtrans@*/
5505/*@=declundef@*/
5506
5507
5508/*drl added 11/27/2001*/
bb7c2085 5509/*@=bounds@*/
This page took 0.945835 seconds and 5 git commands to generate.