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