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