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