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