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