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