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