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