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