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