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