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