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