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