]> andersk Git - splint.git/blob - src/llgrammar.c.der
1dc52a1e50702b76572dfd6774cdd493b059c4af
[splint.git] / src / llgrammar.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
52 /*drl added 12/11/2002*/
53 /*@-type@*/
54
55 /* < end of bison.head > */
56
57 /* A Bison parser, made from llgrammar.y
58    by GNU bison 1.35.  */
59
60 #define YYBISON 1  /* Identify Bison output.  */
61
62 #define yyparse ylparse
63 #define yylex yllex
64 #define yyerror ylerror
65 #define yylval yllval
66 #define yychar ylchar
67 #define yydebug yldebug
68 #define yynerrs ylnerrs
69 # define        simpleOp        257
70 # define        PREFIX_OP       258
71 # define        POSTFIX_OP      259
72 # define        LLT_MULOP       260
73 # define        LLT_SEMI        261
74 # define        LLT_VERTICALBAR 262
75 # define        ITERATION_OP    263
76 # define        LLT_LPAR        264
77 # define        LLT_LBRACKET    265
78 # define        selectSym       266
79 # define        LLT_IF_THEN_ELSE        267
80 # define        logicalOp       268
81 # define        eqSepSym        269
82 # define        equationSym     270
83 # define        commentSym      271
84 # define        LLT_WHITESPACE  272
85 # define        LLT_EOL 273
86 # define        LLT_TYPEDEF_NAME        274
87 # define        quantifierSym   275
88 # define        openSym 276
89 # define        closeSym        277
90 # define        sepSym  278
91 # define        simpleId        279
92 # define        mapSym  280
93 # define        markerSym       281
94 # define        preSym  282
95 # define        postSym 283
96 # define        anySym  284
97 # define        LLT_COLON       285
98 # define        LLT_COMMA       286
99 # define        LLT_EQUALS      287
100 # define        LLT_LBRACE      288
101 # define        LLT_RBRACE      289
102 # define        LLT_RBRACKET    290
103 # define        LLT_RPAR        291
104 # define        LLT_QUOTE       292
105 # define        eqOp    293
106 # define        LLT_CCHAR       294
107 # define        LLT_CFLOAT      295
108 # define        LLT_CINTEGER    296
109 # define        LLT_LCSTRING    297
110 # define        LLT_ALL 298
111 # define        LLT_ANYTHING    299
112 # define        LLT_BE  300
113 # define        LLT_BODY        301
114 # define        LLT_CLAIMS      302
115 # define        LLT_CHECKS      303
116 # define        LLT_CONSTANT    304
117 # define        LLT_ELSE        305
118 # define        LLT_ENSURES     306
119 # define        LLT_FOR 307
120 # define        LLT_FRESH       308
121 # define        LLT_IF  309
122 # define        LLT_IMMUTABLE   310
123 # define        LLT_IMPORTS     311
124 # define        LLT_CONSTRAINT  312
125 # define        LLT_ISSUB       313
126 # define        LLT_LET 314
127 # define        LLT_MODIFIES    315
128 # define        LLT_MUTABLE     316
129 # define        LLT_NOTHING     317
130 # define        LLT_INTERNAL    318
131 # define        LLT_FILESYS     319
132 # define        LLT_OBJ 320
133 # define        LLT_OUT 321
134 # define        LLT_SEF 322
135 # define        LLT_ONLY        323
136 # define        LLT_PARTIAL     324
137 # define        LLT_OWNED       325
138 # define        LLT_DEPENDENT   326
139 # define        LLT_KEEP        327
140 # define        LLT_KEPT        328
141 # define        LLT_TEMP        329
142 # define        LLT_SHARED      330
143 # define        LLT_UNIQUE      331
144 # define        LLT_UNUSED      332
145 # define        LLT_EXITS       333
146 # define        LLT_MAYEXIT     334
147 # define        LLT_NEVEREXIT   335
148 # define        LLT_TRUEEXIT    336
149 # define        LLT_FALSEEXIT   337
150 # define        LLT_UNDEF       338
151 # define        LLT_KILLED      339
152 # define        LLT_CHECKMOD    340
153 # define        LLT_CHECKED     341
154 # define        LLT_UNCHECKED   342
155 # define        LLT_CHECKEDSTRICT       343
156 # define        LLT_TRUENULL    344
157 # define        LLT_FALSENULL   345
158 # define        LLT_LNULL       346
159 # define        LLT_LNOTNULL    347
160 # define        LLT_RETURNED    348
161 # define        LLT_OBSERVER    349
162 # define        LLT_EXPOSED     350
163 # define        LLT_REFCOUNTED  351
164 # define        LLT_REFS        352
165 # define        LLT_RELNULL     353
166 # define        LLT_RELDEF      354
167 # define        LLT_KILLREF     355
168 # define        LLT_NULLTERMINATED      356
169 # define        LLT_TEMPREF     357
170 # define        LLT_NEWREF      358
171 # define        LLT_PRIVATE     359
172 # define        LLT_REQUIRES    360
173 # define        LLT_RESULT      361
174 # define        LLT_SIZEOF      362
175 # define        LLT_SPEC        363
176 # define        LLT_TAGGEDUNION 364
177 # define        LLT_THEN        365
178 # define        LLT_TYPE        366
179 # define        LLT_TYPEDEF     367
180 # define        LLT_UNCHANGED   368
181 # define        LLT_USES        369
182 # define        LLT_CHAR        370
183 # define        LLT_CONST       371
184 # define        LLT_DOUBLE      372
185 # define        LLT_ENUM        373
186 # define        LLT_FLOAT       374
187 # define        LLT_INT 375
188 # define        LLT_ITER        376
189 # define        LLT_YIELD       377
190 # define        LLT_LONG        378
191 # define        LLT_SHORT       379
192 # define        LLT_SIGNED      380
193 # define        LLT_UNKNOWN     381
194 # define        LLT_STRUCT      382
195 # define        LLT_TELIPSIS    383
196 # define        LLT_UNION       384
197 # define        LLT_UNSIGNED    385
198 # define        LLT_VOID        386
199 # define        LLT_VOLATILE    387
200 # define        LLT_PRINTFLIKE  388
201 # define        LLT_SCANFLIKE   389
202 # define        LLT_MESSAGELIKE 390
203
204
205
206 # include "splintMacros.nf"
207 # include "llbasic.h"
208 # include "lclscan.h"
209 # include "checking.h"
210 # include "lslparse.h" 
211 # include "lh.h"
212 # include "usymtab_interface.h"
213
214 /*@-noparams@*/
215 static /*@unused@*/ void yyprint ();
216 /*@=noparams@*/
217
218 /*@-redecl@*/
219 void ylerror (char *) /*@modifies *g_warningstream@*/ ;
220 /*@=redecl@*/
221
222 bool g_inTypeDef = FALSE;
223
224 /*@constant int YYDEBUG;@*/
225 # define YYDEBUG 1
226
227 /*@notfunction@*/
228 # define YYPRINT(file, type, value) yyprint (file, type, value)
229
230 /*
231 ** This is necessary, or else when the bison-generated code #include's malloc.h,
232 ** there will be a parse error.
233 **
234 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
235 ** in bison-generated files under Win32.
236 */
237
238 # ifdef WIN32
239 # undef malloc
240 # undef calloc
241 # undef realloc
242 # endif
243
244
245 #ifndef YYSTYPE
246 typedef union 
247 {
248   ltoken ltok;  /* a leaf is also an ltoken */
249   qual typequal;
250   unsigned int count;
251   /*@only@*/ ltokenList ltokenList;
252   /*@only@*/ abstDeclaratorNode abstDecl; 
253   /*@only@*/ declaratorNode declare;
254   /*@only@*/ declaratorNodeList declarelist;
255   /*@only@*/ typeExpr typeexpr;
256   /*@only@*/ arrayQualNode array;
257   /*@only@*/ quantifierNode quantifier;
258   /*@only@*/ quantifierNodeList quantifiers;
259   /*@only@*/ varNode var;
260   /*@only@*/ varNodeList vars;
261   /*@only@*/ storeRefNode storeref;
262   /*@only@*/ storeRefNodeList storereflist;
263   /*@only@*/ termNode term;
264   /*@only@*/ termNodeList termlist;
265   /*@only@*/ programNode program; 
266   /*@only@*/ stmtNode stmt;
267   /*@only@*/ claimNode claim;
268   /*@only@*/ typeNode type;
269   /*@only@*/ iterNode iter;
270   /*@only@*/ fcnNode fcn;
271   /*@only@*/ fcnNodeList fcns;
272   /*@only@*/ letDeclNode letdecl;
273   /*@only@*/ letDeclNodeList letdecls;
274   /*@only@*/ lclPredicateNode lclpredicate;
275   /*@only@*/ modifyNode modify;
276   /*@only@*/ paramNode param;
277   /*@only@*/ paramNodeList paramlist;
278   /*@only@*/ declaratorInvNodeList declaratorinvs;      
279   /*@only@*/ declaratorInvNode declaratorinv;   
280   /*@only@*/ abstBodyNode abstbody;
281   /*@only@*/ abstractNode abstract;
282   /*@only@*/ exposedNode exposed;
283   /*@only@*/ pointers pointers;
284   /*    taggedUnionNode taggedunion; */
285   /*@only@*/ globalList globals;
286   /*@only@*/ constDeclarationNode constdeclaration;
287   /*@only@*/ varDeclarationNode vardeclaration;
288   /*@only@*/ varDeclarationNodeList vardeclarationlist;
289   /*@only@*/ initDeclNodeList initdecls;
290   /*@only@*/ initDeclNode initdecl;
291   /*@only@*/ stDeclNodeList structdecls;
292   /*@only@*/ stDeclNode structdecl;
293   /*@only@*/ strOrUnionNode structorunion;
294   /*@only@*/ enumSpecNode enumspec; 
295   /*@only@*/ lclTypeSpecNode lcltypespec;
296   /*@only@*/ typeNameNode typname;
297   /*@only@*/ opFormNode opform;
298   /*@only@*/ sigNode signature;
299   /*@only@*/ nameNode name;
300   /*@only@*/ typeNameNodeList namelist;
301   /*@only@*/ replaceNode replace;       
302   /*@only@*/ replaceNodeList replacelist;
303   /*@only@*/ renamingNode renaming;
304   /*@only@*/ traitRefNode traitref;
305   /*@only@*/ traitRefNodeList traitreflist;
306   /*@only@*/ importNode import;
307   /*@only@*/ importNodeList importlist;
308   /*@only@*/ interfaceNode iface;
309   /*@only@*/ interfaceNodeList interfacelist; 
310   /*@only@*/ CTypesNode ctypes;
311   /*@-redef@*/
312 } yystype;
313 # define YYSTYPE yystype
314 # define YYSTYPE_IS_TRIVIAL 1
315 #endif
316 #ifndef YYDEBUG
317 # define YYDEBUG 1
318 #endif
319
320
321
322 #define YYFINAL         684
323 #define YYFLAG          -32768
324 #define YYNTBASE        137
325
326 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
327 #define YYTRANSLATE(x) ((unsigned)(x) <= 390 ? yytranslate[x] : 291)
328
329 /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
330 static const short yytranslate[] =
331 {
332        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
333        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
334        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
335        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
336        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
337        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
338        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
339        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
340        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
341        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
342        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
343        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
344        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
345        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
346        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
347        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
348        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
349        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
350        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
351        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
352        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
353        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
354        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
355        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
356        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
357        2,     2,     2,     2,     2,     2,     1,     3,     4,     5,
358        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
359       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
360       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
361       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
362       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
363       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
364       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
365       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
366       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
367       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
368      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
369      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
370      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
371      136
372 };
373
374 #if YYDEBUG
375 static const short yyprhs[] =
376 {
377        0,     0,     1,     5,     6,     9,    11,    13,    14,    17,
378       20,    21,    24,    26,    28,    30,    34,    38,    40,    42,
379       44,    46,    48,    50,    57,    58,    60,    62,    66,    69,
380       71,    72,    76,    78,    80,    82,    84,    89,    93,    98,
381      103,   105,   107,   109,   111,   113,   114,   128,   129,   144,
382      145,   159,   164,   165,   166,   173,   174,   175,   183,   184,
383      185,   193,   194,   195,   202,   203,   204,   211,   214,   217,
384      219,   223,   225,   229,   231,   233,   237,   239,   241,   245,
385      247,   252,   256,   263,   265,   269,   271,   273,   277,   279,
386      283,   285,   289,   293,   297,   302,   304,   306,   308,   310,
387      312,   316,   318,   322,   323,   326,   330,   333,   336,   337,
388      340,   345,   346,   350,   352,   356,   362,   366,   368,   369,
389      373,   374,   378,   379,   383,   387,   391,   393,   397,   399,
390      401,   404,   406,   408,   409,   413,   414,   418,   419,   421,
391      423,   425,   429,   431,   435,   436,   441,   447,   449,   453,
392      456,   460,   464,   469,   473,   479,   486,   488,   492,   494,
393      496,   499,   502,   506,   510,   514,   519,   521,   525,   530,
394      534,   535,   538,   539,   541,   542,   549,   551,   555,   556,
395      560,   561,   565,   567,   569,   571,   573,   575,   577,   579,
396      581,   583,   585,   587,   590,   592,   594,   596,   598,   600,
397      602,   604,   606,   608,   610,   612,   614,   616,   618,   620,
398      622,   624,   626,   628,   630,   632,   634,   636,   638,   640,
399      642,   644,   646,   648,   650,   652,   654,   656,   658,   660,
400      662,   664,   666,   668,   670,   672,   675,   681,   683,   686,
401      688,   691,   692,   699,   700,   707,   710,   713,   714,   716,
402      718,   721,   725,   727,   731,   732,   734,   741,   744,   746,
403      750,   752,   754,   756,   760,   763,   766,   770,   775,   777,
404      781,   784,   787,   791,   796,   798,   801,   804,   808,   813,
405      816,   819,   822,   825,   829,   831,   832,   834,   838,   841,
406      843,   845,   848,   852,   856,   861,   864,   868,   875,   877,
407      880,   883,   887,   891,   896,   901,   907,   911,   916,   921,
408      927,   930,   933,   937,   941,   943,   945,   947,   949,   951,
409      953,   955,   956,   958,   960,   964,   966,   968,   973,   974,
410      976,   978,   982,   984,   986,   993,   995,   999,  1001,  1006,
411     1010,  1014,  1016,  1019,  1022,  1024,  1026,  1028,  1031,  1033,
412     1036,  1039,  1043,  1045,  1047,  1050,  1053,  1057,  1059,  1062,
413     1066,  1068,  1074,  1078,  1083,  1086,  1090,  1093,  1095,  1099,
414     1103,  1105,  1110,  1112,  1115,  1119,  1123,  1127,  1132,  1136,
415     1138,  1142,  1144,  1146,  1148,  1150,  1152,  1154,  1159,  1164,
416     1169,  1174,  1181,  1186,  1188,  1190,  1192,  1194,  1196,  1199,
417     1200,  1204,  1206,  1210,  1214,  1219,  1221,  1223,  1225,  1227,
418     1229,  1231,  1233,  1235
419 };
420 static const short yyrhs[] =
421 {
422       -1,   139,   138,   141,     0,     0,   139,   140,     0,   144,
423        0,   145,     0,     0,   146,   142,     0,   151,   142,     0,
424        0,   142,   143,     0,   146,     0,   151,     0,   145,     0,
425       57,   175,     7,     0,   115,   179,     7,     0,   154,     0,
426      155,     0,   156,     0,   158,     0,   161,     0,   147,     0,
427      122,   285,    10,   148,    37,     7,     0,     0,   149,     0,
428      150,     0,   149,    32,   150,     0,   123,   244,     0,   244,
429        0,     0,   109,   152,   153,     0,   154,     0,   155,     0,
430      156,     0,   158,     0,    50,   227,   189,     7,     0,   227,
431      189,     7,     0,   117,   227,   189,     7,     0,   133,   227,
432      189,     7,     0,   163,     0,   172,     0,   134,     0,   135,
433        0,   136,     0,     0,   227,   240,   191,   159,    34,   193,
434      195,   199,   200,   201,   204,   205,    35,     0,     0,   157,
435      227,   240,   191,   160,    34,   193,   195,   199,   200,   201,
436      204,   205,    35,     0,     0,    48,   287,    10,   206,    37,
437      191,   162,    34,   195,   200,   209,   204,    35,     0,    48,
438      284,   287,     7,     0,     0,     0,    62,   164,   112,    20,
439      165,   214,     0,     0,     0,    62,   166,    97,   112,    20,
440      167,   214,     0,     0,     0,    97,    62,   168,   112,    20,
441      169,   214,     0,     0,     0,    56,   170,   112,    20,   171,
442      214,     0,     0,     0,   113,   227,   173,   219,   174,     7,
443        0,   230,     7,     0,   238,     7,     0,   176,     0,   175,
444       32,   176,     0,   178,     0,     3,   178,     3,     0,    43,
445        0,   178,     0,   177,    32,   178,     0,   283,     0,   180,
446        0,   179,    32,   180,     0,   289,     0,   289,    10,   182,
447       37,     0,    10,   181,    37,     0,    10,   181,    37,    10,
448      182,    37,     0,   289,     0,   181,    32,   289,     0,   184,
449        0,   183,     0,   183,    32,   184,     0,   245,     0,   183,
450       32,   245,     0,   185,     0,   184,    32,   185,     0,   245,
451       53,   223,     0,   245,    53,   186,     0,   245,    53,   186,
452      256,     0,   290,     0,   249,     0,   188,     0,   260,     0,
453      190,     0,   189,    32,   190,     0,   240,     0,   240,    33,
454      187,     0,     0,   191,   192,     0,   227,   189,     7,     0,
455       64,     7,     0,    65,     7,     0,     0,   193,   194,     0,
456      105,   227,   189,     7,     0,     0,    60,   196,     7,     0,
457      197,     0,   196,    32,   197,     0,   285,    31,   198,    46,
458      260,     0,   285,    46,   260,     0,   227,     0,     0,    49,
459      259,     7,     0,     0,   106,   259,     7,     0,     0,    61,
460       63,     7,     0,    61,    45,     7,     0,    61,   202,     7,
461        0,   203,     0,   202,    32,   203,     0,   260,     0,   228,
462        0,    66,   228,     0,    64,     0,    65,     0,     0,    52,
463      259,     7,     0,     0,    48,   259,     7,     0,     0,   207,
464        0,   208,     0,   129,     0,   208,    32,   129,     0,   244,
465        0,   208,    32,   244,     0,     0,    47,    34,   210,    35,
466        0,    47,    34,   210,     7,    35,     0,   211,     0,    10,
467      210,    37,     0,   210,     6,     0,   210,     8,   210,     0,
468      210,     7,   210,     0,   284,    10,   212,    37,     0,   284,
469       10,    37,     0,   285,    33,   284,    10,    37,     0,   285,
470       33,   284,    10,   212,    37,     0,   213,     0,   212,    32,
471      213,     0,   277,     0,   285,     0,     3,   213,     0,   213,
472        3,     0,   213,     3,   213,     0,    10,   213,    37,     0,
473      284,    10,    37,     0,   284,    10,   212,    37,     0,     7,
474        0,    34,   215,    35,     0,    34,   177,    35,     7,     0,
475       34,    35,     7,     0,     0,   215,   158,     0,     0,   217,
476        0,     0,    58,   218,   279,    10,   259,    37,     0,   220,
477        0,   219,    32,   220,     0,     0,   240,   221,   222,     0,
478        0,    34,   216,    35,     0,   132,     0,   116,     0,   118,
479        0,   120,     0,   121,     0,   124,     0,   125,     0,   126,
480        0,   131,     0,   127,     0,   223,     0,   224,   223,     0,
481       20,     0,   224,     0,    67,     0,    78,     0,    68,     0,
482       69,     0,    71,     0,    72,     0,    73,     0,    74,     0,
483       95,     0,    79,     0,    80,     0,    82,     0,    83,     0,
484       81,     0,    75,     0,    76,     0,    77,     0,    87,     0,
485       88,     0,    89,     0,    90,     0,    91,     0,    99,     0,
486      100,     0,    97,     0,    98,     0,   104,     0,   101,     0,
487       92,     0,    93,     0,    94,     0,    96,     0,    70,     0,
488      102,     0,    84,     0,    85,     0,   225,     0,   230,     0,
489      238,     0,   226,   227,     0,     8,   228,    31,   228,     8,
490        0,   227,     0,   227,   229,     0,     6,     0,   229,     6,
491        0,     0,   128,   233,   231,    34,   234,    35,     0,     0,
492      130,   233,   232,    34,   234,    35,     0,   128,   286,     0,
493      130,   286,     0,     0,   286,     0,   235,     0,   234,   235,
494        0,   227,   236,     7,     0,   240,     0,   236,    32,   240,
495        0,     0,    32,     0,   119,   233,    34,   239,   237,    35,
496        0,   119,   286,     0,    25,     0,   239,    32,    25,     0,
497      242,     0,   241,     0,   285,     0,    10,   241,    37,     0,
498        6,   241,     0,   241,   248,     0,   241,    10,    37,     0,
499      241,    10,   207,    37,     0,    20,     0,    10,   242,    37,
500        0,     6,   242,     0,   242,   248,     0,   242,    10,    37,
501        0,   242,    10,   207,    37,     0,    20,     0,     6,   243,
502        0,   243,   248,     0,   243,    10,    37,     0,   243,    10,
503      207,    37,     0,   227,   243,     0,   227,   241,     0,   227,
504      246,     0,   227,   246,     0,    66,   227,   246,     0,   249,
505        0,     0,   247,     0,    10,   247,    37,     0,     6,   247,
506        0,     6,     0,   248,     0,   247,   248,     0,   247,    10,
507       37,     0,    10,   207,    37,     0,   247,    10,   207,    37,
508        0,    11,    36,     0,    11,   188,    36,     0,    55,    27,
509      111,    27,    51,    27,     0,   252,     0,    27,   252,     0,
510      252,    27,     0,    27,   252,    27,     0,   250,   253,   251,
511        0,    27,   250,   253,   251,     0,   250,   253,   251,    27,
512        0,    27,   250,   253,   251,    27,     0,    11,   253,    36,
513        0,    11,   253,    36,    27,     0,    27,    11,   253,    36,
514        0,    27,    11,   253,    36,    27,     0,    12,   283,     0,
515       26,   283,     0,    27,    12,   283,     0,    27,    26,   283,
516        0,    22,     0,    34,     0,    23,     0,    35,     0,   264,
517        0,    14,     0,    39,     0,     0,   254,     0,    27,     0,
518      254,   255,    27,     0,    32,     0,    24,     0,    31,   257,
519       26,   288,     0,     0,   258,     0,   288,     0,   258,    32,
520      288,     0,   260,     0,   261,     0,    55,   261,   111,   261,
521       51,   261,     0,   262,     0,   261,    14,   261,     0,   263,
522        0,   278,    10,   259,    37,     0,   263,    39,   263,     0,
523      263,    33,   263,     0,   265,     0,   268,   266,     0,   268,
524      267,     0,     3,     0,     6,     0,   268,     0,   264,   265,
525        0,   264,     0,   266,   264,     0,   264,   268,     0,   267,
526      264,   268,     0,   273,     0,   269,     0,   269,   273,     0,
527      273,   269,     0,   273,   269,   273,     0,   270,     0,   270,
528      273,     0,   271,    31,   288,     0,   271,     0,    11,   272,
529       36,    31,   288,     0,    11,   272,    36,     0,    11,    36,
530       31,   288,     0,    11,    36,     0,   250,   272,   251,     0,
531      250,   251,     0,   260,     0,   272,   255,   260,     0,    10,
532      261,    37,     0,   285,     0,   290,    10,   274,    37,     0,
533      276,     0,   273,   275,     0,   273,    12,   283,     0,   273,
534       26,   283,     0,   273,    11,    36,     0,   273,    11,   274,
535       36,     0,   273,    31,   288,     0,   261,     0,   274,    32,
536      261,     0,    28,     0,    29,     0,    30,     0,    38,     0,
537      277,     0,   107,     0,    54,    10,   274,    37,     0,   114,
538       10,    44,    37,     0,   114,    10,   202,    37,     0,   108,
539       10,   260,    37,     0,    59,    10,   260,    32,   260,    37,
540        0,   108,    10,   227,    37,     0,    42,     0,    43,     0,
541       40,     0,    41,     0,   279,     0,   278,   279,     0,     0,
542       21,   280,   281,     0,   282,     0,   281,    32,   282,     0,
543      285,    31,   198,     0,   285,    31,    66,   198,     0,    25,
544        0,    20,     0,    25,     0,    25,     0,   283,     0,   283,
545        0,   283,     0,   283,     0,   283,     0
546 };
547
548 #endif
549
550 #if YYDEBUG
551 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
552 static const short yyrline[] =
553 {
554        0,   382,   382,   387,   388,   392,   393,   397,   398,   399,
555      403,   404,   408,   409,   410,   414,   421,   426,   428,   430,
556      432,   434,   436,   441,   446,   447,   451,   453,   458,   459,
557      463,   463,   468,   470,   472,   474,   479,   484,   486,   488,
558      493,   494,   498,   499,   500,   504,   504,   512,   512,   525,
559      525,   530,   535,   535,   535,   537,   537,   537,   540,   540,
560      540,   543,   543,   543,   548,   548,   548,   551,   553,   570,
561      572,   577,   578,   580,   584,   585,   589,   594,   596,   601,
562      603,   605,   607,   612,   613,   617,   619,   621,   625,   627,
563      631,   633,   637,   638,   639,   644,   645,   648,   651,   655,
564      657,   662,   663,   667,   669,   674,   675,   676,   680,   681,
565      685,   690,   691,   695,   696,   700,   701,   704,   708,   709,
566      713,   714,   718,   719,   720,   721,   725,   726,   730,   731,
567      732,   733,   734,   738,   739,   743,   744,   748,   749,   753,
568      754,   755,   759,   760,   764,   765,   766,   770,   771,   774,
569      779,   785,   794,   796,   798,   800,   805,   806,   810,   811,
570      812,   813,   814,   815,   816,   818,   823,   824,   825,   826,
571      830,   831,   835,   836,   840,   840,   850,   851,   856,   856,
572      861,   862,   866,   867,   868,   869,   870,   871,   872,   873,
573      874,   875,   884,   885,   891,   893,   900,   901,   902,   903,
574      904,   905,   906,   907,   908,   909,   910,   911,   912,   913,
575      914,   915,   916,   917,   918,   919,   920,   921,   922,   923,
576      924,   925,   926,   927,   928,   929,   930,   931,   932,   933,
577      934,   935,   939,   941,   943,   945,   947,   957,   958,   964,
578      965,   969,   969,   973,   973,   977,   979,   984,   985,   989,
579      990,   996,  1000,  1002,  1007,  1008,  1012,  1014,  1019,  1020,
580     1031,  1032,  1036,  1037,  1038,  1039,  1040,  1041,  1045,  1046,
581     1047,  1048,  1049,  1050,  1060,  1061,  1062,  1063,  1064,  1071,
582     1072,  1073,  1084,  1085,  1086,  1092,  1093,  1097,  1098,  1099,
583     1100,  1101,  1102,  1103,  1104,  1108,  1109,  1113,  1115,  1117,
584     1119,  1121,  1124,  1126,  1128,  1130,  1132,  1134,  1142,  1144,
585     1146,  1149,  1152,  1155,  1161,  1162,  1166,  1167,  1171,  1172,
586     1173,  1177,  1178,  1182,  1183,  1187,  1188,  1192,  1196,  1197,
587     1201,  1202,  1206,  1210,  1217,  1219,  1220,  1224,  1225,  1230,
588     1232,  1237,  1238,  1239,  1243,  1244,  1248,  1249,  1253,  1254,
589     1258,  1259,  1263,  1264,  1265,  1266,  1267,  1268,  1269,  1273,
590     1274,  1278,  1281,  1283,  1287,  1292,  1293,  1297,  1298,  1302,
591     1304,  1306,  1308,  1309,  1311,  1313,  1315,  1318,  1320,  1325,
592     1326,  1330,  1331,  1332,  1333,  1337,  1338,  1339,  1340,  1341,
593     1342,  1347,  1353,  1364,  1365,  1366,  1367,  1371,  1373,  1378,
594     1378,  1386,  1387,  1391,  1392,  1396,  1397,  1401,  1402,  1403,
595     1404,  1405,  1406,  1407
596 };
597 #endif
598
599
600 #if (YYDEBUG) || defined YYERROR_VERBOSE
601
602 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
603 static const char *const yytname[] =
604 {
605   "$", "error", "$undefined.", "simpleOp", "PREFIX_OP", "POSTFIX_OP", 
606   "LLT_MULOP", "LLT_SEMI", "LLT_VERTICALBAR", "ITERATION_OP", "LLT_LPAR", 
607   "LLT_LBRACKET", "selectSym", "LLT_IF_THEN_ELSE", "logicalOp", 
608   "eqSepSym", "equationSym", "commentSym", "LLT_WHITESPACE", "LLT_EOL", 
609   "LLT_TYPEDEF_NAME", "quantifierSym", "openSym", "closeSym", "sepSym", 
610   "simpleId", "mapSym", "markerSym", "preSym", "postSym", "anySym", 
611   "LLT_COLON", "LLT_COMMA", "LLT_EQUALS", "LLT_LBRACE", "LLT_RBRACE", 
612   "LLT_RBRACKET", "LLT_RPAR", "LLT_QUOTE", "eqOp", "LLT_CCHAR", 
613   "LLT_CFLOAT", "LLT_CINTEGER", "LLT_LCSTRING", "LLT_ALL", "LLT_ANYTHING", 
614   "LLT_BE", "LLT_BODY", "LLT_CLAIMS", "LLT_CHECKS", "LLT_CONSTANT", 
615   "LLT_ELSE", "LLT_ENSURES", "LLT_FOR", "LLT_FRESH", "LLT_IF", 
616   "LLT_IMMUTABLE", "LLT_IMPORTS", "LLT_CONSTRAINT", "LLT_ISSUB", 
617   "LLT_LET", "LLT_MODIFIES", "LLT_MUTABLE", "LLT_NOTHING", "LLT_INTERNAL", 
618   "LLT_FILESYS", "LLT_OBJ", "LLT_OUT", "LLT_SEF", "LLT_ONLY", 
619   "LLT_PARTIAL", "LLT_OWNED", "LLT_DEPENDENT", "LLT_KEEP", "LLT_KEPT", 
620   "LLT_TEMP", "LLT_SHARED", "LLT_UNIQUE", "LLT_UNUSED", "LLT_EXITS", 
621   "LLT_MAYEXIT", "LLT_NEVEREXIT", "LLT_TRUEEXIT", "LLT_FALSEEXIT", 
622   "LLT_UNDEF", "LLT_KILLED", "LLT_CHECKMOD", "LLT_CHECKED", 
623   "LLT_UNCHECKED", "LLT_CHECKEDSTRICT", "LLT_TRUENULL", "LLT_FALSENULL", 
624   "LLT_LNULL", "LLT_LNOTNULL", "LLT_RETURNED", "LLT_OBSERVER", 
625   "LLT_EXPOSED", "LLT_REFCOUNTED", "LLT_REFS", "LLT_RELNULL", 
626   "LLT_RELDEF", "LLT_KILLREF", "LLT_NULLTERMINATED", "LLT_TEMPREF", 
627   "LLT_NEWREF", "LLT_PRIVATE", "LLT_REQUIRES", "LLT_RESULT", "LLT_SIZEOF", 
628   "LLT_SPEC", "LLT_TAGGEDUNION", "LLT_THEN", "LLT_TYPE", "LLT_TYPEDEF", 
629   "LLT_UNCHANGED", "LLT_USES", "LLT_CHAR", "LLT_CONST", "LLT_DOUBLE", 
630   "LLT_ENUM", "LLT_FLOAT", "LLT_INT", "LLT_ITER", "LLT_YIELD", "LLT_LONG", 
631   "LLT_SHORT", "LLT_SIGNED", "LLT_UNKNOWN", "LLT_STRUCT", "LLT_TELIPSIS", 
632   "LLT_UNION", "LLT_UNSIGNED", "LLT_VOID", "LLT_VOLATILE", 
633   "LLT_PRINTFLIKE", "LLT_SCANFLIKE", "LLT_MESSAGELIKE", "interface", "@1", 
634   "externals", "external", "optDeclarations", "declarations", 
635   "declaration", "imports", "uses", "export", "iter", "iterParamList", 
636   "realIterParamList", "iterParam", "private", "@2", "private2", 
637   "constDeclaration", "varDeclaration", "type", "special", "fcn", "@3", 
638   "@4", "claim", "@5", "abstract", "@6", "@7", "@8", "@9", "@10", "@11", 
639   "@12", "@13", "exposed", "@14", "@15", "importNameList", "importName", 
640   "interfaceNameList", "interfaceName", "traitRefNodeList", "traitRef", 
641   "traitIdList", "renaming", "nameList", "replaceNodeList", "replace", 
642   "name", "initializer", "constLclExpr", "initDecls", "initDecl", 
643   "globals", "globalDecl", "privateInits", "privateInit", "optLetDecl", 
644   "beDeclList", "beDecl", "sortSpec", "optChecks", "optRequire", 
645   "optModify", "storeRefList", "storeRef", "optEnsure", "optClaim", 
646   "optParamList", "realParamList", "paramList", "optBody", "callExpr", 
647   "stmt", "valueList", "value", "abstBody", "fcns", "optTypeInv", 
648   "typeInv", "@16", "declaratorInvs", "declaratorInv", "@17", 
649   "optExposedBody", "CType", "CTypes", "typeSpecifier", 
650   "specialQualifier", "lclTypeSpec", "lclType", "pointers", 
651   "structOrUnionSpec", "@18", "@19", "optTagId", "structDecls", 
652   "structDecl", "declaratorList", "optCOMMA", "enumSpec", 
653   "enumeratorList", "declarator", "notype_decl", "after_type_decl", 
654   "parameter_decl", "param", "typeName", "optAbstDeclarator", 
655   "abstDeclarator", "arrayQual", "opForm", "open", "close", "anyOp", 
656   "middle", "placeList", "separator", "signature", "domain", "sortList", 
657   "lclPredicate", "term", "term0", "equalityTerm", "simpleOpTerm", 
658   "simpleOp2", "prefixOpTerm", "postfixOps", "infixOpPart", "secondary", 
659   "bracketed", "sqBracketed", "matched", "args", "primary", "termList", 
660   "stateFcn", "lclPrimary", "cLiteral", "quantifiers", "quantifier", 
661   "@20", "quantifiedList", "quantified", "simpleIdOrTypedefName", "fcnId", 
662   "varId", "tagId", "claimId", "sortId", "traitId", "opId", 0
663 };
664 #endif
665
666 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
667 static const short yyr1[] =
668 {
669        0,   138,   137,   139,   139,   140,   140,   141,   141,   141,
670      142,   142,   143,   143,   143,   144,   145,   146,   146,   146,
671      146,   146,   146,   147,   148,   148,   149,   149,   150,   150,
672      152,   151,   153,   153,   153,   153,   154,   155,   155,   155,
673      156,   156,   157,   157,   157,   159,   158,   160,   158,   162,
674      161,   161,   164,   165,   163,   166,   167,   163,   168,   169,
675      163,   170,   171,   163,   173,   174,   172,   172,   172,   175,
676      175,   176,   176,   176,   177,   177,   178,   179,   179,   180,
677      180,   180,   180,   181,   181,   182,   182,   182,   183,   183,
678      184,   184,   185,   185,   185,   186,   186,   187,   188,   189,
679      189,   190,   190,   191,   191,   192,   192,   192,   193,   193,
680      194,   195,   195,   196,   196,   197,   197,   198,   199,   199,
681      200,   200,   201,   201,   201,   201,   202,   202,   203,   203,
682      203,   203,   203,   204,   204,   205,   205,   206,   206,   207,
683      207,   207,   208,   208,   209,   209,   209,   210,   210,   210,
684      210,   210,   211,   211,   211,   211,   212,   212,   213,   213,
685      213,   213,   213,   213,   213,   213,   214,   214,   214,   214,
686      215,   215,   216,   216,   218,   217,   219,   219,   221,   220,
687      222,   222,   223,   223,   223,   223,   223,   223,   223,   223,
688      223,   223,   224,   224,   225,   225,   226,   226,   226,   226,
689      226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
690      226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
691      226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
692      226,   226,   227,   227,   227,   227,   227,   228,   228,   229,
693      229,   231,   230,   232,   230,   230,   230,   233,   233,   234,
694      234,   235,   236,   236,   237,   237,   238,   238,   239,   239,
695      240,   240,   241,   241,   241,   241,   241,   241,   242,   242,
696      242,   242,   242,   242,   243,   243,   243,   243,   243,   244,
697      244,   244,   245,   245,   245,   246,   246,   247,   247,   247,
698      247,   247,   247,   247,   247,   248,   248,   249,   249,   249,
699      249,   249,   249,   249,   249,   249,   249,   249,   249,   249,
700      249,   249,   249,   249,   250,   250,   251,   251,   252,   252,
701      252,   253,   253,   254,   254,   255,   255,   256,   257,   257,
702      258,   258,   259,   260,   261,   261,   261,   262,   262,   262,
703      262,   263,   263,   263,   264,   264,   265,   265,   266,   266,
704      267,   267,   268,   268,   268,   268,   268,   268,   268,   269,
705      269,   270,   270,   270,   270,   271,   271,   272,   272,   273,
706      273,   273,   273,   273,   273,   273,   273,   273,   273,   274,
707      274,   275,   275,   275,   275,   276,   276,   276,   276,   276,
708      276,   276,   276,   277,   277,   277,   277,   278,   278,   280,
709      279,   281,   281,   282,   282,   283,   283,   284,   285,   286,
710      287,   288,   289,   290
711 };
712
713 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
714 static const short yyr2[] =
715 {
716        0,     0,     3,     0,     2,     1,     1,     0,     2,     2,
717        0,     2,     1,     1,     1,     3,     3,     1,     1,     1,
718        1,     1,     1,     6,     0,     1,     1,     3,     2,     1,
719        0,     3,     1,     1,     1,     1,     4,     3,     4,     4,
720        1,     1,     1,     1,     1,     0,    13,     0,    14,     0,
721       13,     4,     0,     0,     6,     0,     0,     7,     0,     0,
722        7,     0,     0,     6,     0,     0,     6,     2,     2,     1,
723        3,     1,     3,     1,     1,     3,     1,     1,     3,     1,
724        4,     3,     6,     1,     3,     1,     1,     3,     1,     3,
725        1,     3,     3,     3,     4,     1,     1,     1,     1,     1,
726        3,     1,     3,     0,     2,     3,     2,     2,     0,     2,
727        4,     0,     3,     1,     3,     5,     3,     1,     0,     3,
728        0,     3,     0,     3,     3,     3,     1,     3,     1,     1,
729        2,     1,     1,     0,     3,     0,     3,     0,     1,     1,
730        1,     3,     1,     3,     0,     4,     5,     1,     3,     2,
731        3,     3,     4,     3,     5,     6,     1,     3,     1,     1,
732        2,     2,     3,     3,     3,     4,     1,     3,     4,     3,
733        0,     2,     0,     1,     0,     6,     1,     3,     0,     3,
734        0,     3,     1,     1,     1,     1,     1,     1,     1,     1,
735        1,     1,     1,     2,     1,     1,     1,     1,     1,     1,
736        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
737        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
738        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
739        1,     1,     1,     1,     1,     2,     5,     1,     2,     1,
740        2,     0,     6,     0,     6,     2,     2,     0,     1,     1,
741        2,     3,     1,     3,     0,     1,     6,     2,     1,     3,
742        1,     1,     1,     3,     2,     2,     3,     4,     1,     3,
743        2,     2,     3,     4,     1,     2,     2,     3,     4,     2,
744        2,     2,     2,     3,     1,     0,     1,     3,     2,     1,
745        1,     2,     3,     3,     4,     2,     3,     6,     1,     2,
746        2,     3,     3,     4,     4,     5,     3,     4,     4,     5,
747        2,     2,     3,     3,     1,     1,     1,     1,     1,     1,
748        1,     0,     1,     1,     3,     1,     1,     4,     0,     1,
749        1,     3,     1,     1,     6,     1,     3,     1,     4,     3,
750        3,     1,     2,     2,     1,     1,     1,     2,     1,     2,
751        2,     3,     1,     1,     2,     2,     3,     1,     2,     3,
752        1,     5,     3,     4,     2,     3,     2,     1,     3,     3,
753        1,     4,     1,     2,     3,     3,     3,     4,     3,     1,
754        3,     1,     1,     1,     1,     1,     1,     4,     4,     4,
755        4,     6,     4,     1,     1,     1,     1,     1,     2,     0,
756        3,     1,     3,     3,     4,     1,     1,     1,     1,     1,
757        1,     1,     1,     1
758 };
759
760 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
761    doesn't specify something else to do.  Zero means the default is an
762    error. */
763 static const short yydefact[] =
764 {
765        3,     1,     0,     0,     7,     4,     5,     6,     0,   406,
766      405,    73,     0,    69,    71,    76,     0,     0,    77,   412,
767       79,     0,   194,     0,     0,    61,    52,   196,   198,   199,
768      228,   200,   201,   202,   203,   210,   211,   212,   197,   205,
769      206,   209,   207,   208,   230,   231,   213,   214,   215,   216,
770      217,   224,   225,   226,   204,   227,   220,   221,   218,   219,
771      223,   229,   222,    30,     0,   183,     0,   184,   247,   185,
772      186,     0,   187,   188,   189,   191,   247,   247,   190,   182,
773        0,    42,    43,    44,     2,    10,    22,    10,    17,    18,
774       19,     0,    20,    21,    40,    41,   192,   195,   232,     0,
775        0,   233,   234,     0,    15,     0,     0,    83,    16,     0,
776        0,   220,   237,     0,   233,   234,   407,   410,     0,     0,
777        0,     0,     0,     0,    58,     0,    64,     0,     0,   409,
778      257,   408,     0,   241,   245,   243,   246,     0,     8,     9,
779        0,   193,   235,     0,     0,   268,     0,    99,   103,   261,
780      260,   262,    67,    68,    72,    70,     0,    81,    78,   344,
781      345,   321,     0,   319,   314,     0,     0,   315,   320,     0,
782        0,     0,    86,    85,    90,   285,    88,   284,   321,   298,
783      318,   239,   238,     0,     0,   137,     0,   101,     0,     0,
784        0,     0,    31,    32,    33,    34,    35,     0,     0,     0,
785       24,     0,     0,     0,    11,    14,    12,    13,   103,   264,
786      270,     0,     0,    37,     0,     0,    45,     0,     0,   265,
787        0,   271,    84,     0,   323,     0,   322,   310,   311,   321,
788        0,     0,   321,   299,     0,   285,    80,     0,     0,   289,
789        0,   282,   286,   290,     0,     0,   300,   240,     0,    51,
790      140,     0,   138,   139,   285,   142,    36,    62,    53,     0,
791        0,    65,   176,   178,    38,   258,   254,     0,     0,    25,
792       26,    29,     0,     0,    39,    47,   263,   269,   100,     0,
793        0,   399,   408,   395,   396,   393,   394,     0,     0,     0,
794      386,     0,     0,   102,    97,     0,    98,   333,   335,   337,
795        0,   341,   346,   353,   357,   360,   352,   372,   385,     0,
796      397,   413,   370,     0,     0,     0,     0,   104,     0,   266,
797        0,   295,     0,   272,     0,     0,   306,   326,   325,     0,
798        0,   312,   313,     0,   301,     0,   283,    87,    89,    91,
799        0,   288,     0,     0,     0,   291,    93,    92,    96,    95,
800      316,   317,   302,   236,   103,     0,   289,     0,   274,   280,
801      279,   281,     0,     0,    56,    59,     0,     0,   180,   255,
802        0,    28,     0,     0,     0,     0,   249,     0,     0,     0,
803      364,   367,     0,     0,     0,     0,     0,     0,     0,   366,
804        0,     0,     0,     0,   347,   346,   348,   342,   343,   354,
805      358,     0,     0,     0,     0,   381,   382,   383,     0,   384,
806      355,   373,     0,   398,     0,   106,   107,   108,     0,   267,
807      296,   273,    82,   307,   324,   308,   303,     0,   293,   287,
808      292,     0,   328,    94,   304,    49,   141,   143,   275,   289,
809        0,   276,   166,   170,    63,    54,     0,     0,   177,    66,
810      172,   179,   259,   256,    23,    27,     0,   252,   242,   250,
811      244,   108,   369,     0,   362,     0,   400,   401,     0,   379,
812        0,     0,     0,   194,     0,     0,     0,   131,   132,     0,
813        0,   126,   129,   128,   365,   336,   340,   339,   350,   349,
814        0,   411,   359,   376,     0,   374,   375,   378,   356,     0,
815      332,     0,   111,   105,   309,   305,     0,   294,     0,   329,
816      330,     0,   277,     0,     0,     0,    74,     0,    57,    60,
817      174,     0,   173,   251,     0,   111,   363,     0,   368,     0,
818        0,     0,   387,     0,     0,   392,   390,   388,   130,     0,
819      389,   351,   377,   338,   371,     0,     0,   109,   118,   297,
820        0,     0,   111,   278,   169,     0,     0,   167,   171,     0,
821        0,   181,   253,   118,   361,   402,     0,   403,   117,   380,
822        0,     0,   127,     0,   113,     0,     0,     0,   120,   327,
823      331,   120,    75,   168,   103,     0,   120,   404,   334,   391,
824      112,     0,     0,     0,     0,     0,     0,   122,   144,     0,
825      122,   114,     0,   116,   110,   119,     0,     0,   133,     0,
826      133,     0,   133,     0,   121,     0,     0,     0,     0,   135,
827        0,     0,   175,   135,   115,   124,   123,   125,     0,     0,
828        0,     0,   408,     0,   147,     0,     0,    50,     0,   134,
829        0,    46,     0,   149,     0,     0,   145,     0,     0,    48,
830      136,     0,   148,   146,   151,   150,     0,     0,   153,     0,
831      156,   158,     0,   159,   407,     0,   160,     0,     0,   152,
832      161,     0,     0,   163,   157,   162,   164,     0,   154,     0,
833      165,   155,     0,     0,     0
834 };
835
836 static const short yydefgoto[] =
837 {
838      682,     4,     1,     5,    84,   138,   204,     6,   205,   206,
839       86,   268,   269,   270,   207,   125,   192,    88,    89,    90,
840       91,    92,   316,   378,    93,   511,    94,   122,   363,   123,
841      446,   191,   447,   121,   362,    95,   197,   367,    12,    13,
842      515,    14,    17,    18,   106,   171,   172,   173,   174,   346,
843      293,   294,   146,   147,   216,   317,   502,   547,   548,   573,
844      574,   567,   578,   597,   608,   480,   481,   619,   630,   251,
845      342,   253,   610,   654,   634,   659,   660,   444,   517,   521,
846      522,   560,   261,   262,   368,   451,    96,    97,    98,    99,
847      254,   482,   182,   114,   201,   202,   128,   375,   376,   456,
848      370,   115,   266,   187,   149,   150,   360,   255,   176,   241,
849      242,   243,   177,   295,   352,   179,   225,   226,   465,   433,
850      508,   509,   499,   500,   297,   298,   299,   300,   301,   397,
851      398,   302,   303,   304,   305,   382,   306,   470,   411,   307,
852      308,   309,   310,   383,   466,   467,   311,   662,   312,   130,
853      119,   492,    20,   313
854 };
855
856 static const short yypact[] =
857 {
858   -32768,   -25,   136,   368,  1350,-32768,-32768,-32768,   181,-32768,
859   -32768,-32768,    94,-32768,-32768,-32768,   181,   110,-32768,-32768,
860       33,  2903,-32768,   182,  2903,-32768,    17,-32768,-32768,-32768,
861   -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
862   -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
863   -32768,-32768,-32768,-32768,-32768,-32768,   -11,-32768,-32768,-32768,
864   -32768,-32768,-32768,-32768,  2903,-32768,  2903,-32768,   181,-32768,
865   -32768,   108,-32768,-32768,-32768,-32768,   181,   181,-32768,-32768,
866     2903,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
867   -32768,  2903,-32768,-32768,-32768,-32768,-32768,   399,-32768,  2903,
868      408,   155,   192,   205,-32768,   136,   204,-32768,-32768,   368,
869     1152,-32768,   233,   223,-32768,-32768,   266,-32768,   181,   305,
870      408,   211,   235,   264,-32768,  1445,-32768,   408,   339,-32768,
871      347,-32768,   377,-32768,   347,-32768,   347,   408,  1247,  1247,
872      408,-32768,-32768,   408,   408,-32768,   196,-32768,   259,   322,
873      409,-32768,-32768,-32768,-32768,-32768,   181,   387,-32768,-32768,
874   -32768,   386,   181,-32768,-32768,   181,   534,-32768,-32768,   403,
875     2903,   410,   445,   453,-32768,   360,   439,-32768,   386,   474,
876   -32768,-32768,   496,  2903,   497,  2319,   239,   470,   486,   492,
877      401,   404,-32768,-32768,-32768,-32768,-32768,   408,   282,   493,
878     2414,   488,   494,   288,-32768,-32768,-32768,-32768,-32768,   322,
879      409,   121,   141,-32768,   408,  3200,  1836,  1933,  3059,-32768,
880     2030,-32768,-32768,  1152,-32768,   499,   122,-32768,-32768,   386,
881      181,   181,   386,   502,   421,   360,-32768,  1152,  1152,   360,
882     1741,-32768,   454,-32768,   328,    80,-32768,-32768,   525,-32768,
883   -32768,   504,-32768,   507,   380,-32768,-32768,-32768,-32768,   522,
884      524,   515,-32768,-32768,-32768,-32768,   518,  2903,   514,   520,
885   -32768,-32768,  2903,  2903,-32768,  1836,-32768,-32768,-32768,  3200,
886     3109,-32768,   266,-32768,-32768,-32768,-32768,   544,  3200,   545,
887   -32768,   549,   551,-32768,-32768,  3033,-32768,   550,-32768,   114,
888     3226,-32768,   374,   382,   382,   535,   193,-32768,-32768,   273,
889   -32768,-32768,-32768,   555,   560,   562,   536,-32768,   408,-32768,
890      537,-32768,   539,-32768,   540,   541,   552,-32768,-32768,   553,
891      547,-32768,-32768,    80,-32768,   554,-32768,   453,   439,-32768,
892      439,   454,   548,   177,  2127,-32768,   556,-32768,-32768,-32768,
893   -32768,-32768,   557,-32768,-32768,  2509,   380,  1644,-32768,   322,
894      469,-32768,    47,    47,-32768,-32768,   408,   564,   538,   561,
895      559,-32768,   569,  2414,   408,  2611,-32768,  2713,   558,    36,
896      565,-32768,   293,   108,  3200,    10,  3200,  1022,   762,-32768,
897      220,  3200,  3226,  3226,-32768,-32768,   268,   374,   374,   275,
898      275,   181,  3150,   181,   181,-32768,-32768,-32768,   181,-32768,
899      382,-32768,  3200,-32768,  3200,-32768,-32768,-32768,   314,-32768,
900   -32768,-32768,-32768,-32768,-32768,   563,   568,   566,-32768,-32768,
901   -32768,   573,   181,-32768,-32768,  1836,-32768,-32768,   469,   354,
902     2224,-32768,-32768,   165,-32768,-32768,    47,    47,-32768,-32768,
903      530,-32768,-32768,-32768,-32768,-32768,   317,-32768,-32768,-32768,
904   -32768,-32768,-32768,   181,   567,  3200,   570,-32768,   572,   550,
905      362,  3200,   579,   581,   575,   577,   578,-32768,-32768,  2903,
906      384,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
907      268,-32768,-32768,-32768,   157,-32768,-32768,-32768,   275,   583,
908   -32768,   397,    -8,-32768,-32768,-32768,   574,-32768,   590,   591,
909   -32768,   571,-32768,   587,   592,   363,-32768,  1547,-32768,-32768,
910   -32768,   594,-32768,-32768,   408,    -8,-32768,   181,-32768,   108,
911     2808,  3200,-32768,    28,  3200,-32768,-32768,-32768,-32768,   892,
912   -32768,-32768,-32768,-32768,-32768,   108,  2903,-32768,   582,-32768,
913      181,   181,   576,-32768,-32768,   181,   593,-32768,-32768,   408,
914      605,-32768,-32768,   582,-32768,-32768,  2903,-32768,-32768,   550,
915     3200,   600,-32768,   331,-32768,   103,   408,  3200,   521,-32768,
916   -32768,   521,-32768,-32768,-32768,   629,   521,-32768,   550,-32768,
917   -32768,   108,  2903,  3200,   336,   634,  3200,   584,   597,  3200,
918      584,-32768,   601,-32768,-32768,-32768,   639,   632,   596,   615,
919      596,   613,   596,  3200,-32768,   644,   648,   337,  3200,   608,
920       49,   623,-32768,   608,-32768,-32768,-32768,-32768,   652,  3200,
921      625,    49,   651,    50,-32768,   653,   631,-32768,   627,-32768,
922      658,-32768,    63,-32768,   272,    49,-32768,   208,   642,-32768,
923   -32768,    49,-32768,-32768,   660,-32768,   222,   222,-32768,   419,
924      666,-32768,   661,-32768,-32768,   668,-32768,    41,   222,-32768,
925      316,   432,   468,-32768,   666,-32768,-32768,   426,-32768,   430,
926   -32768,-32768,   670,   676,-32768
927 };
928
929 static const short yypgoto[] =
930 {
931   -32768,-32768,-32768,-32768,-32768,   595,-32768,-32768,   678,   677,
932   -32768,-32768,-32768,   307,   679,-32768,-32768,   610,   612,   616,
933   -32768,  -121,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
934   -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   580,
935   -32768,    -6,-32768,   585,-32768,   461,-32768,   451,   452,-32768,
936   -32768,   471,  -108,   478,  -188,-32768,   232,-32768,  -458,-32768,
937      127,  -473,   175,  -169,   142,   137,   206,  -206,   120,-32768,
938     -180,-32768,-32768,  -507,-32768,  -190,  -230,  -318,-32768,-32768,
939   -32768,-32768,-32768,   381,-32768,-32768,   -89,-32768,-32768,-32768,
940       -3,   -18,-32768,    32,-32768,-32768,   407,   476,    68,-32768,
941   -32768,    56,-32768,   -93,  -127,   344,   398,  -187,   257,  -182,
942     -213,  -101,   511,    30,  -267,   603,  -137,-32768,   586,-32768,
943   -32768,-32768,  -531,  -204,  -254,-32768,   105,   -46,   466,-32768,
944   -32768,  -278,   455,-32768,-32768,   472,  -265,  -205,-32768,-32768,
945     -372,-32768,  -303,-32768,-32768,   242,     7,   -23,   -38,   423,
946      656,  -377,    19,   531
947 };
948
949
950 #define YYLAST          3340
951
952
953 static const short yytable[] =
954 {
955      118,   100,   103,   113,   196,   252,   413,   148,   141,    15,
956       19,   296,   186,   271,   296,    15,   209,   211,   112,   198,
957      275,   120,   395,    19,   391,   379,   341,   343,   389,   203,
958      117,   497,     2,   132,   385,   107,   101,   320,   399,   400,
959      324,   245,   391,   110,   670,   445,   595,   208,   219,   221,
960      391,   124,   545,   336,   442,   510,   643,   644,   645,   631,
961      102,   126,   151,   127,   180,   606,   426,   563,   611,   643,
962      651,   645,   361,   462,   632,   129,   381,   137,   673,   570,
963      371,   443,   151,   129,   129,   646,   526,   628,   140,   151,
964        3,   381,   330,   587,   581,   333,   142,   546,   640,   151,
965      652,   104,   151,   350,   263,   151,   151,   175,   219,   221,
966      219,   221,    15,   633,   -55,   351,    19,   108,   488,   602,
967      180,   471,   100,   484,   642,   117,   105,   359,   518,   519,
968      469,   217,   218,   131,   592,   100,   100,   485,   655,     8,
969      178,   345,   109,   341,   343,   498,   327,   392,   469,   593,
970      564,   220,   218,   393,   328,   347,     9,   101,   276,   151,
971      469,    10,   152,    19,   431,   248,   435,   235,   437,   227,
972      101,   101,   228,   579,   580,   222,   151,   180,   277,    11,
973      112,   102,   472,   475,   483,     9,   271,   344,   218,   531,
974       10,   180,   180,   542,   102,   102,   232,   494,   180,   153,
975      514,     9,     9,   213,   402,   403,    10,   116,   154,   501,
976      418,   656,   541,   318,   429,   164,   151,   533,   657,   404,
977      175,   405,   406,   407,   408,   656,   341,   167,   214,   209,
978      211,   409,   657,   632,   175,   175,   156,   331,   332,   181,
979      345,   157,   345,   350,   327,   658,   256,   632,   283,   284,
980      285,   286,   328,   178,   183,   351,   396,   585,   219,   441,
981      513,   528,   283,   284,   285,   286,  -101,   178,   178,   374,
982      374,   214,   318,   263,   178,   661,  -405,   569,   279,   280,
983      151,   457,   631,   412,   661,   661,   402,   403,     9,   264,
984      164,  -101,   215,   282,   281,   274,   661,   632,   661,   661,
985      661,   404,   167,   405,   406,   407,   408,   653,   283,   284,
986      285,   286,   209,   409,   214,   185,   588,   327,   151,   151,
987      214,   503,   287,   188,   523,   328,   657,   289,   151,   464,
988      571,   159,   217,   218,   160,   483,   151,   441,   590,   161,
989      162,   632,   163,   604,   627,   468,   214,   189,     9,   524,
990      164,   489,   490,    10,   165,   166,   283,   284,   285,   286,
991      439,   190,   167,   591,   357,   218,   239,   168,   214,   539,
992      240,   218,   374,   199,   374,   290,   291,   159,    16,   131,
993      160,  -248,   292,   169,   474,   112,   356,   200,     9,   603,
994      357,   218,   279,    10,   531,   555,   558,   223,   556,   532,
995      358,   151,     9,   483,   621,   131,   623,   282,   491,   624,
996      495,   496,   598,   224,   143,   491,   539,   600,   144,   220,
997      218,   540,   283,   284,   285,   286,   666,   667,   145,   531,
998      234,   562,   318,   131,   544,   656,   287,   516,   674,   491,
999      675,   289,   657,   459,    65,   459,    67,   236,    69,    70,
1000       15,   668,    72,    73,    74,    75,   669,   632,   668,    78,
1001       79,   538,   668,   680,   344,   218,   584,   681,   594,   676,
1002      491,   656,   283,   284,   285,   286,   112,   237,   657,   440,
1003      218,   677,   679,   133,   135,   238,   151,   210,   212,   290,
1004      291,   468,   244,   632,   338,   340,   292,   486,   487,   134,
1005      136,   246,   247,   215,   249,   678,   257,   575,   283,   284,
1006      285,   286,   258,   259,   559,    65,   260,    67,   265,    69,
1007       70,   151,   272,    72,    73,    74,    75,   568,   273,   334,
1008       78,    79,   335,   353,   491,   326,   112,   159,   151,   355,
1009      160,   354,   364,   576,   365,   229,   230,   366,   163,   582,
1010      369,   372,   373,   575,   384,   386,   164,   491,   491,   387,
1011      231,   388,    15,   568,   391,   414,   401,   415,   167,   416,
1012      417,   449,   450,   168,   419,   420,   454,   421,   422,   423,
1013      424,   427,   636,   425,   434,   428,   452,   432,   520,   568,
1014      504,  -406,   461,   636,   453,   505,   463,   635,   527,   554,
1015      583,   549,   529,   530,   112,   552,   636,   636,   635,   663,
1016      507,   534,   535,   636,   536,   537,   550,   506,   663,   663,
1017      543,   635,   635,   551,   553,   665,   281,   596,   635,   561,
1018      663,   577,   663,   663,   663,   159,   545,   589,   160,   599,
1019       21,   605,   279,   280,   609,   607,   614,   613,   618,   620,
1020      622,   625,   473,   281,   164,   626,   629,   282,   637,   639,
1021      641,  -407,   649,   647,   648,   650,   167,   664,   645,   670,
1022      683,   671,   283,   284,   285,   286,   684,   615,   672,     7,
1023      455,    85,   139,    87,   325,   155,   287,   288,   337,   322,
1024      339,   289,   278,   525,   158,   616,   477,   478,   479,    27,
1025       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1026       38,    39,    40,    41,    42,    43,    44,    45,   601,    46,
1027       47,    48,    49,    50,    51,    52,    53,    54,    55,   111,
1028       57,    58,    59,    60,    61,   193,    62,   194,   586,   290,
1029      291,   195,   612,   638,   617,   572,   292,   448,    65,   377,
1030       67,    68,    69,    70,   438,   348,    72,    73,    74,    75,
1031       76,   410,    77,    78,    79,   159,   394,   390,   160,   233,
1032       21,   565,   279,   280,   184,   349,     0,     0,     0,     0,
1033        0,     0,   473,   281,   164,     0,     0,   282,     0,     0,
1034        0,     0,     0,     0,     0,     0,   167,     0,     0,     0,
1035        0,     0,   283,   284,   285,   286,   476,     0,     0,     0,
1036        0,     0,   329,     0,     0,     0,   287,   288,     0,     0,
1037        0,   289,     0,     0,     0,     0,   477,   478,   479,    27,
1038       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1039       38,    39,    40,    41,    42,    43,    44,    45,     0,    46,
1040       47,    48,    49,    50,    51,    52,    53,    54,    55,   111,
1041       57,    58,    59,    60,    61,     0,    62,     0,     0,   290,
1042      291,     0,     0,     0,     0,     0,   292,     0,    65,     0,
1043       67,    68,    69,    70,     0,     0,    72,    73,    74,    75,
1044       76,     0,    77,    78,    79,   159,     0,     0,   160,     0,
1045       21,     0,   279,   280,     0,     0,     0,     0,     0,     0,
1046        0,     0,   473,   281,   164,     0,     0,   282,     0,     0,
1047        0,     0,     0,     0,     0,     0,   167,     0,     0,     0,
1048        0,     0,   283,   284,   285,   286,     0,     0,     0,     0,
1049        0,     0,     0,     0,     0,     0,   287,   288,     0,     0,
1050        0,   289,     0,     0,     0,     0,   477,   478,   479,    27,
1051       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1052       38,    39,    40,    41,    42,    43,    44,    45,     0,    46,
1053       47,    48,    49,    50,    51,    52,    53,    54,    55,   111,
1054       57,    58,    59,    60,    61,     0,    62,     0,     0,   290,
1055      291,     0,     0,     0,     0,     0,   292,     0,    65,     0,
1056       67,    68,    69,    70,     0,     0,    72,    73,    74,    75,
1057       76,     0,    77,    78,    79,   159,     0,     0,   160,     0,
1058       21,     0,   279,   280,     0,     0,     0,     0,     0,     0,
1059        0,     0,   473,   281,   164,     0,     0,   282,     0,     0,
1060        0,     0,     0,     0,     0,     0,   167,     0,     0,     0,
1061        0,     0,   283,   284,   285,   286,     0,     0,     0,     0,
1062        0,     0,     0,     0,     0,     0,   287,   288,     0,     0,
1063        0,   289,     0,     0,     0,     0,     0,     0,     0,    27,
1064       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1065       38,    39,    40,    41,    42,    43,    44,    45,     0,    46,
1066       47,    48,    49,    50,    51,    52,    53,    54,    55,   111,
1067       57,    58,    59,    60,    61,     0,    62,     0,     0,   290,
1068      291,     0,     0,     0,     0,     0,   292,     0,    65,     0,
1069       67,    68,    69,    70,     0,     0,    72,    73,    74,    75,
1070       76,     0,    77,    78,    79,   159,     0,     0,   160,     0,
1071       21,     0,     0,   161,   162,     0,   163,     0,     0,     0,
1072        0,     0,    22,     0,   164,     0,     0,     0,   165,   166,
1073        0,     0,     0,     0,     0,     0,   167,     0,     0,     0,
1074        0,   168,     0,     0,     0,     0,     0,     0,     0,     0,
1075        0,     0,     0,     0,     0,     0,     0,   169,     0,     0,
1076        0,     0,     0,     0,     0,     0,     0,     0,   170,    27,
1077       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1078       38,    39,    40,    41,    42,    43,    44,    45,     0,    46,
1079       47,    48,    49,    50,    51,    52,    53,    54,    55,   111,
1080       57,    58,    59,    60,    61,    21,    62,     0,     0,     0,
1081        0,     0,     0,     0,     0,     0,     0,    22,    65,     0,
1082       67,    68,    69,    70,     0,     0,    72,    73,    74,    75,
1083       76,     0,    77,    78,    79,     0,     0,     0,     0,     0,
1084        0,     0,     0,     0,     0,    23,     0,    24,     0,     0,
1085        0,     0,     0,    25,     0,     0,     0,     0,     0,    26,
1086        0,     0,     0,     0,    27,    28,    29,    30,    31,    32,
1087       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1088       43,    44,    45,     0,    46,    47,    48,    49,    50,    51,
1089       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1090        0,    62,     0,     0,     0,     0,    63,     0,    21,     0,
1091       64,     0,     3,    65,    66,    67,    68,    69,    70,    71,
1092       22,    72,    73,    74,    75,    76,     0,    77,    78,    79,
1093       80,    81,    82,    83,     0,     0,     0,     0,     0,     0,
1094        0,     0,     0,     0,     0,     0,     0,     0,    23,     0,
1095       24,     0,     0,     0,     0,     0,    25,     0,     0,     0,
1096        0,     0,    26,     0,     0,     0,     0,    27,    28,    29,
1097       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1098       40,    41,    42,    43,    44,    45,     0,    46,    47,    48,
1099       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1100       59,    60,    61,    21,    62,     0,     0,     0,     0,    63,
1101        0,     0,     0,    64,     0,    22,    65,    66,    67,    68,
1102       69,    70,    71,     0,    72,    73,    74,    75,    76,     0,
1103       77,    78,    79,    80,    81,    82,    83,     0,     0,     0,
1104        0,     0,     0,     0,     0,    24,     0,     0,     0,     0,
1105        0,    25,     0,     0,     0,     0,     0,    26,     0,     0,
1106        0,     0,    27,    28,    29,    30,    31,    32,    33,    34,
1107       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1108       45,     0,    46,    47,    48,    49,    50,    51,    52,    53,
1109       54,    55,    56,    57,    58,    59,    60,    61,     0,    62,
1110        0,     0,     0,     0,     0,    21,     0,     0,    64,     0,
1111        0,    65,    66,    67,    68,    69,    70,    22,     0,    72,
1112       73,    74,    75,    76,     0,    77,    78,    79,    80,    81,
1113       82,    83,   557,     0,     0,     0,     0,     0,     0,     0,
1114        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1115        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1116        0,     0,     0,     0,    27,    28,    29,    30,    31,    32,
1117       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1118       43,    44,    45,     0,    46,    47,    48,    49,    50,    51,
1119       52,    53,    54,    55,   111,    57,    58,    59,    60,    61,
1120      439,    62,    21,     0,   357,   218,     0,     0,     0,     0,
1121        0,     0,     0,    65,    22,    67,    68,    69,    70,   131,
1122        0,    72,    73,    74,    75,    76,     0,    77,    78,    79,
1123        0,    81,    82,    83,     0,     0,     0,     0,     0,     0,
1124        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1125        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1126        0,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1127       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1128        0,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1129       55,   111,    57,    58,    59,    60,    61,   239,    62,    21,
1130        0,   240,   218,     0,     0,     0,     0,     0,     0,     0,
1131       65,    22,    67,    68,    69,    70,     0,     0,    72,    73,
1132       74,    75,    76,   250,    77,    78,    79,     0,     0,     0,
1133        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1134        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1135        0,     0,     0,     0,     0,     0,     0,     0,    27,    28,
1136       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1137       39,    40,    41,    42,    43,    44,    45,     0,    46,    47,
1138       48,    49,    50,    51,    52,    53,    54,    55,   111,    57,
1139       58,    59,    60,    61,    21,    62,     0,     0,     0,     0,
1140        0,     0,     0,     0,     0,     0,    22,    65,     0,    67,
1141       68,    69,    70,     0,     0,    72,    73,    74,    75,    76,
1142      250,    77,    78,    79,     0,     0,     0,     0,     0,     0,
1143        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1144        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1145      314,   315,     0,    27,    28,    29,    30,    31,    32,    33,
1146       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1147       44,    45,     0,    46,    47,    48,    49,    50,    51,    52,
1148       53,    54,    55,   111,    57,    58,    59,    60,    61,     0,
1149       62,    21,     0,     0,     0,     0,     0,     0,     0,     0,
1150        0,     0,    65,    22,    67,    68,    69,    70,     0,     0,
1151       72,    73,    74,    75,    76,     0,    77,    78,    79,     0,
1152      319,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1153        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1154        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1155       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1156       37,    38,    39,    40,    41,    42,    43,    44,    45,     0,
1157       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1158      111,    57,    58,    59,    60,    61,     0,    62,    21,     0,
1159        0,     0,     0,     0,     0,     0,     0,     0,     0,    65,
1160       22,    67,    68,    69,    70,     0,     0,    72,    73,    74,
1161       75,    76,   250,    77,    78,    79,     0,   323,     0,     0,
1162        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1163        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1164        0,     0,     0,     0,     0,     0,     0,    27,    28,    29,
1165       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1166       40,    41,    42,    43,    44,    45,     0,    46,    47,    48,
1167       49,    50,    51,    52,    53,    54,    55,   111,    57,    58,
1168       59,    60,    61,     0,    62,    21,     0,     0,     0,     0,
1169        0,     0,     0,     0,     0,     0,    65,    22,    67,    68,
1170       69,    70,     0,     0,    72,    73,    74,    75,    76,   250,
1171       77,    78,    79,     0,   430,     0,     0,     0,     0,     0,
1172        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1173        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1174        0,     0,     0,     0,    27,    28,    29,    30,    31,    32,
1175       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1176       43,    44,    45,     0,    46,    47,    48,    49,    50,    51,
1177       52,    53,    54,    55,   111,    57,    58,    59,    60,    61,
1178        0,    62,    21,     0,     0,     0,     0,     0,     0,     0,
1179        0,     0,     0,    65,    22,    67,    68,    69,    70,     0,
1180        0,    72,    73,    74,    75,    76,   250,    77,    78,    79,
1181        0,   512,     0,     0,     0,     0,     0,     0,     0,     0,
1182        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1183        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1184        0,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1185       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1186        0,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1187       55,   111,    57,    58,    59,    60,    61,    21,    62,     0,
1188        0,     0,     0,     0,     0,     0,     0,     0,     0,    22,
1189       65,     0,    67,    68,    69,    70,     0,     0,    72,    73,
1190       74,    75,    76,   250,    77,    78,    79,     0,     0,     0,
1191        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1192        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1193        0,     0,     0,     0,     0,     0,    27,    28,    29,    30,
1194       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1195       41,    42,    43,    44,    45,     0,    46,    47,    48,    49,
1196       50,    51,    52,    53,    54,    55,   111,    57,    58,    59,
1197       60,    61,    21,    62,     0,     0,     0,     0,     0,     0,
1198        0,     0,     0,     0,    22,    65,     0,    67,    68,    69,
1199       70,     0,     0,    72,    73,    74,    75,    76,   250,    77,
1200       78,    79,     0,     0,     0,     0,     0,     0,     0,     0,
1201        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1202        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1203        0,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1204       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1205        0,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1206       55,   111,    57,    58,    59,    60,    61,    21,    62,     0,
1207        0,     0,     0,     0,     0,     0,     0,     0,     0,    22,
1208       65,     0,    67,    68,    69,    70,     0,   267,    72,    73,
1209       74,    75,    76,     0,    77,    78,    79,     0,     0,     0,
1210        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1211        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1212        0,     0,     0,     0,     0,     0,    27,    28,    29,    30,
1213       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1214       41,    42,    43,    44,    45,     0,    46,    47,    48,    49,
1215       50,    51,    52,    53,    54,    55,   111,    57,    58,    59,
1216       60,    61,     0,    62,     0,     0,     0,     0,     0,    21,
1217        0,     0,     0,     0,     0,    65,     0,    67,    68,    69,
1218       70,    22,     0,    72,    73,    74,    75,    76,   436,    77,
1219       78,    79,     0,     0,     0,     0,   458,     0,     0,     0,
1220        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1221        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1222        0,     0,     0,     0,     0,     0,     0,     0,    27,    28,
1223       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1224       39,    40,    41,    42,    43,    44,    45,     0,    46,    47,
1225       48,    49,    50,    51,    52,    53,    54,    55,   111,    57,
1226       58,    59,    60,    61,     0,    62,     0,     0,     0,     0,
1227        0,    21,     0,     0,     0,     0,     0,    65,     0,    67,
1228       68,    69,    70,    22,     0,    72,    73,    74,    75,    76,
1229        0,    77,    78,    79,     0,     0,     0,     0,   460,     0,
1230        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1231        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1232        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1233       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1234       37,    38,    39,    40,    41,    42,    43,    44,    45,     0,
1235       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1236      111,    57,    58,    59,    60,    61,    21,    62,     0,     0,
1237        0,     0,     0,     0,     0,     0,     0,     0,    22,    65,
1238        0,    67,    68,    69,    70,     0,     0,    72,    73,    74,
1239       75,    76,     0,    77,    78,    79,     0,     0,     0,     0,
1240        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1241        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1242        0,     0,     0,     0,   566,    27,    28,    29,    30,    31,
1243       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1244       42,    43,    44,    45,     0,    46,    47,    48,    49,    50,
1245       51,    52,    53,    54,    55,   111,    57,    58,    59,    60,
1246       61,    21,    62,     0,     0,     0,     0,     0,     0,     0,
1247        0,     0,     0,    22,    65,     0,    67,    68,    69,    70,
1248        0,     0,    72,    73,    74,    75,    76,     0,    77,    78,
1249       79,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1250        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1251        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1252       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1253       37,    38,    39,    40,    41,    42,    43,    44,    45,     0,
1254       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1255      111,    57,    58,    59,    60,    61,     0,    62,     0,     0,
1256        0,     0,     0,     0,     0,     0,     0,     0,     0,    65,
1257        0,    67,    68,    69,    70,     0,     0,    72,    73,    74,
1258       75,    76,     0,    77,    78,    79,   159,     0,     0,   160,
1259        0,     0,     0,   279,   280,     0,     0,     0,     0,     0,
1260        0,     0,     0,     9,   281,   164,   350,     0,   282,     0,
1261        0,     0,   159,     0,     0,   160,     0,   167,   351,   279,
1262      280,     0,     0,   283,   284,   285,   286,     0,     0,     9,
1263      281,   164,     0,     0,   282,     0,     0,   287,   288,     0,
1264        0,     0,   289,   167,     0,   321,     0,     0,     0,   283,
1265      284,   285,   286,     0,     0,     0,     0,     0,     0,     0,
1266        0,     0,   159,   287,   288,   160,     0,     0,   289,   279,
1267      280,     0,     0,     0,     0,     0,     0,     0,     0,     9,
1268      281,   164,     0,     0,   282,     0,     0,     0,     0,     0,
1269      290,   291,     0,   167,     0,   380,     0,   292,     0,   283,
1270      284,   285,   286,   159,     0,     0,   160,     0,     0,     0,
1271      279,   280,     0,   287,   288,     0,   290,   291,   289,     0,
1272        9,   281,   164,   292,     0,   282,     0,     0,     0,     0,
1273        0,     0,     0,     0,   167,     0,   493,     0,     0,     0,
1274      283,   284,   285,   286,     0,     0,     0,     0,     0,     0,
1275        0,     0,     0,   159,   287,   288,   160,     0,     0,   289,
1276      279,   280,     0,     0,     0,     0,   290,   291,     0,     0,
1277        9,   281,   164,   292,     0,   282,     0,     0,     0,   159,
1278        0,     0,   160,     0,   167,     0,   279,   280,     0,     0,
1279      283,   284,   285,   286,     0,     0,     9,     0,   164,     0,
1280        0,   282,     0,     0,   287,   288,     0,   290,   291,   289,
1281      167,     0,     0,     0,   292,     0,   283,   284,   285,   286,
1282        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1283      287,     0,     0,     0,     0,   289,     0,     0,     0,     0,
1284        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1285        0,     0,     0,     0,     0,     0,     0,   290,   291,     0,
1286        0,     0,     0,     0,   292,     0,     0,     0,     0,     0,
1287        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1288        0,     0,     0,   290,   291,     0,     0,     0,     0,     0,
1289      292
1290 };
1291
1292 static const short yycheck[] =
1293 {
1294       23,     4,     8,    21,   125,   185,   309,   100,    97,     2,
1295        3,   215,   120,   200,   218,     8,   143,   144,    21,   127,
1296      208,    24,   300,    16,    14,   279,   239,   240,   295,   137,
1297       23,   408,    57,    71,   288,    16,     4,   217,   303,   304,
1298      220,   178,    14,    10,     3,   363,   577,   140,   149,   150,
1299       14,    62,    60,   235,     7,   432,     6,     7,     8,    10,
1300        4,    64,   100,    66,   110,   596,   333,   525,   599,     6,
1301        7,     8,   254,    37,    25,    68,   280,    80,    37,    51,
1302      267,    34,   120,    76,    77,    35,   463,   618,    91,   127,
1303      115,   295,   229,   566,   552,   232,    99,   105,   629,   137,
1304       37,     7,   140,    23,   197,   143,   144,   110,   209,   210,
1305      211,   212,   105,   620,    97,    35,   109,     7,   396,   592,
1306      166,   111,   125,   390,   631,   118,    32,   254,   446,   447,
1307      384,    10,    11,    25,    31,   138,   139,   391,   645,     3,
1308      110,   242,    32,   356,   357,   410,    24,    33,   402,    46,
1309      527,    10,    11,    39,    32,   244,    20,   125,    37,   197,
1310      414,    25,     7,   156,   344,   183,   354,   170,   355,   162,
1311      138,   139,   165,   550,   551,   156,   214,   223,    37,    43,
1312      183,   125,   386,   387,   388,    20,   373,    10,    11,    32,
1313       25,   237,   238,    36,   138,   139,   166,   402,   244,     7,
1314       35,    20,    20,     7,    11,    12,    25,    25,     3,   414,
1315      318,     3,   490,   216,    37,    22,   254,   471,    10,    26,
1316      223,    28,    29,    30,    31,     3,   439,    34,    32,   356,
1317      357,    38,    10,    25,   237,   238,    32,   230,   231,     6,
1318      341,    37,   343,    23,    24,    37,     7,    25,    40,    41,
1319       42,    43,    32,   223,    31,    35,   302,   560,   359,   360,
1320      440,   465,    40,    41,    42,    43,     7,   237,   238,   272,
1321      273,    32,   275,   366,   244,   647,    10,   531,    10,    11,
1322      318,   374,    10,    10,   656,   657,    11,    12,    20,     7,
1323       22,    32,    33,    25,    21,     7,   668,    25,   670,   671,
1324      672,    26,    34,    28,    29,    30,    31,    35,    40,    41,
1325       42,    43,   439,    38,    32,    10,   570,    24,   356,   357,
1326       32,     7,    54,   112,     7,    32,    10,    59,   366,    36,
1327      534,     3,    10,    11,     6,   539,   374,   438,     7,    11,
1328       12,    25,    14,     7,     7,   383,    32,   112,    20,    32,
1329       22,   397,   398,    25,    26,    27,    40,    41,    42,    43,
1330        6,    97,    34,    32,    10,    11,     6,    39,    32,    32,
1331       10,    11,   375,    34,   377,   107,   108,     3,    10,    25,
1332        6,    34,   114,    55,   387,   388,     6,    10,    20,   593,
1333       10,    11,    10,    25,    32,    32,   517,    10,    35,    37,
1334       20,   439,    20,   607,   610,    25,   612,    25,   401,   613,
1335      403,   404,   581,    27,     6,   408,    32,   586,    10,    10,
1336       11,    37,    40,    41,    42,    43,   656,   657,    20,    32,
1337       27,   524,   435,    25,    37,     3,    54,   443,   668,   432,
1338      670,    59,    10,   375,   116,   377,   118,    37,   120,   121,
1339      443,    32,   124,   125,   126,   127,    37,    25,    32,   131,
1340      132,   479,    32,    37,    10,    11,   559,    37,   576,    37,
1341      463,     3,    40,    41,    42,    43,   479,    32,    10,    10,
1342       11,   671,   672,    76,    77,    32,   524,   143,   144,   107,
1343      108,   529,    53,    25,   237,   238,   114,   392,   393,    76,
1344       77,    27,     6,    33,     7,    37,    20,   545,    40,    41,
1345       42,    43,    20,   112,   517,   116,   112,   118,    25,   120,
1346      121,   559,    34,   124,   125,   126,   127,   530,    34,    27,
1347      131,   132,   111,     8,   527,    36,   539,     3,   576,    32,
1348        6,    37,    20,   546,    20,    11,    12,    32,    14,   555,
1349       32,    37,    32,   591,    10,    10,    22,   550,   551,    10,
1350       26,    10,   555,   566,    14,    10,    31,     7,    34,     7,
1351       34,     7,    34,    39,    37,    36,     7,    37,    37,    27,
1352       27,    27,   620,    36,    27,    37,    25,    31,    58,   592,
1353       27,    10,    34,   631,    35,    27,    31,   620,    31,     7,
1354        7,    27,    32,    31,   607,    34,   644,   645,   631,   647,
1355       37,    32,    37,   651,    37,    37,    26,    51,   656,   657,
1356       37,   644,   645,    32,    37,   648,    21,   106,   651,    35,
1357      668,    49,   670,   671,   672,     3,    60,    37,     6,    10,
1358        8,     7,    10,    11,    47,    61,     7,    46,    52,    34,
1359       37,     7,    20,    21,    22,     7,    48,    25,    35,     7,
1360       35,    10,    35,    10,    33,     7,    34,    25,     8,     3,
1361        0,    10,    40,    41,    42,    43,     0,    45,    10,     1,
1362      373,     4,    87,     4,   223,   105,    54,    55,   237,   218,
1363      238,    59,   214,   461,   109,    63,    64,    65,    66,    67,
1364       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1365       78,    79,    80,    81,    82,    83,    84,    85,   591,    87,
1366       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1367       98,    99,   100,   101,   102,   125,   104,   125,   563,   107,
1368      108,   125,   600,   623,   607,   539,   114,   366,   116,   273,
1369      118,   119,   120,   121,   356,   244,   124,   125,   126,   127,
1370      128,   306,   130,   131,   132,     3,   300,   295,     6,   166,
1371        8,   529,    10,    11,   118,   244,    -1,    -1,    -1,    -1,
1372       -1,    -1,    20,    21,    22,    -1,    -1,    25,    -1,    -1,
1373       -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,
1374       -1,    -1,    40,    41,    42,    43,    44,    -1,    -1,    -1,
1375       -1,    -1,   226,    -1,    -1,    -1,    54,    55,    -1,    -1,
1376       -1,    59,    -1,    -1,    -1,    -1,    64,    65,    66,    67,
1377       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1378       78,    79,    80,    81,    82,    83,    84,    85,    -1,    87,
1379       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1380       98,    99,   100,   101,   102,    -1,   104,    -1,    -1,   107,
1381      108,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
1382      118,   119,   120,   121,    -1,    -1,   124,   125,   126,   127,
1383      128,    -1,   130,   131,   132,     3,    -1,    -1,     6,    -1,
1384        8,    -1,    10,    11,    -1,    -1,    -1,    -1,    -1,    -1,
1385       -1,    -1,    20,    21,    22,    -1,    -1,    25,    -1,    -1,
1386       -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,
1387       -1,    -1,    40,    41,    42,    43,    -1,    -1,    -1,    -1,
1388       -1,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,    -1,
1389       -1,    59,    -1,    -1,    -1,    -1,    64,    65,    66,    67,
1390       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1391       78,    79,    80,    81,    82,    83,    84,    85,    -1,    87,
1392       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1393       98,    99,   100,   101,   102,    -1,   104,    -1,    -1,   107,
1394      108,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
1395      118,   119,   120,   121,    -1,    -1,   124,   125,   126,   127,
1396      128,    -1,   130,   131,   132,     3,    -1,    -1,     6,    -1,
1397        8,    -1,    10,    11,    -1,    -1,    -1,    -1,    -1,    -1,
1398       -1,    -1,    20,    21,    22,    -1,    -1,    25,    -1,    -1,
1399       -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,
1400       -1,    -1,    40,    41,    42,    43,    -1,    -1,    -1,    -1,
1401       -1,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,    -1,
1402       -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
1403       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1404       78,    79,    80,    81,    82,    83,    84,    85,    -1,    87,
1405       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1406       98,    99,   100,   101,   102,    -1,   104,    -1,    -1,   107,
1407      108,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
1408      118,   119,   120,   121,    -1,    -1,   124,   125,   126,   127,
1409      128,    -1,   130,   131,   132,     3,    -1,    -1,     6,    -1,
1410        8,    -1,    -1,    11,    12,    -1,    14,    -1,    -1,    -1,
1411       -1,    -1,    20,    -1,    22,    -1,    -1,    -1,    26,    27,
1412       -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,
1413       -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1414       -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,
1415       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
1416       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1417       78,    79,    80,    81,    82,    83,    84,    85,    -1,    87,
1418       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1419       98,    99,   100,   101,   102,     8,   104,    -1,    -1,    -1,
1420       -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,   116,    -1,
1421      118,   119,   120,   121,    -1,    -1,   124,   125,   126,   127,
1422      128,    -1,   130,   131,   132,    -1,    -1,    -1,    -1,    -1,
1423       -1,    -1,    -1,    -1,    -1,    48,    -1,    50,    -1,    -1,
1424       -1,    -1,    -1,    56,    -1,    -1,    -1,    -1,    -1,    62,
1425       -1,    -1,    -1,    -1,    67,    68,    69,    70,    71,    72,
1426       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1427       83,    84,    85,    -1,    87,    88,    89,    90,    91,    92,
1428       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1429       -1,   104,    -1,    -1,    -1,    -1,   109,    -1,     8,    -1,
1430      113,    -1,   115,   116,   117,   118,   119,   120,   121,   122,
1431       20,   124,   125,   126,   127,   128,    -1,   130,   131,   132,
1432      133,   134,   135,   136,    -1,    -1,    -1,    -1,    -1,    -1,
1433       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    48,    -1,
1434       50,    -1,    -1,    -1,    -1,    -1,    56,    -1,    -1,    -1,
1435       -1,    -1,    62,    -1,    -1,    -1,    -1,    67,    68,    69,
1436       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1437       80,    81,    82,    83,    84,    85,    -1,    87,    88,    89,
1438       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1439      100,   101,   102,     8,   104,    -1,    -1,    -1,    -1,   109,
1440       -1,    -1,    -1,   113,    -1,    20,   116,   117,   118,   119,
1441      120,   121,   122,    -1,   124,   125,   126,   127,   128,    -1,
1442      130,   131,   132,   133,   134,   135,   136,    -1,    -1,    -1,
1443       -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,
1444       -1,    56,    -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,
1445       -1,    -1,    67,    68,    69,    70,    71,    72,    73,    74,
1446       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1447       85,    -1,    87,    88,    89,    90,    91,    92,    93,    94,
1448       95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
1449       -1,    -1,    -1,    -1,    -1,     8,    -1,    -1,   113,    -1,
1450       -1,   116,   117,   118,   119,   120,   121,    20,    -1,   124,
1451      125,   126,   127,   128,    -1,   130,   131,   132,   133,   134,
1452      135,   136,    35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1453       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1454       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1455       -1,    -1,    -1,    -1,    67,    68,    69,    70,    71,    72,
1456       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1457       83,    84,    85,    -1,    87,    88,    89,    90,    91,    92,
1458       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1459        6,   104,     8,    -1,    10,    11,    -1,    -1,    -1,    -1,
1460       -1,    -1,    -1,   116,    20,   118,   119,   120,   121,    25,
1461       -1,   124,   125,   126,   127,   128,    -1,   130,   131,   132,
1462       -1,   134,   135,   136,    -1,    -1,    -1,    -1,    -1,    -1,
1463       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1464       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1465       -1,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1466       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1467       -1,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1468       96,    97,    98,    99,   100,   101,   102,     6,   104,     8,
1469       -1,    10,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1470      116,    20,   118,   119,   120,   121,    -1,    -1,   124,   125,
1471      126,   127,   128,   129,   130,   131,   132,    -1,    -1,    -1,
1472       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1473       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1474       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
1475       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1476       79,    80,    81,    82,    83,    84,    85,    -1,    87,    88,
1477       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1478       99,   100,   101,   102,     8,   104,    -1,    -1,    -1,    -1,
1479       -1,    -1,    -1,    -1,    -1,    -1,    20,   116,    -1,   118,
1480      119,   120,   121,    -1,    -1,   124,   125,   126,   127,   128,
1481      129,   130,   131,   132,    -1,    -1,    -1,    -1,    -1,    -1,
1482       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1483       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1484       64,    65,    -1,    67,    68,    69,    70,    71,    72,    73,
1485       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1486       84,    85,    -1,    87,    88,    89,    90,    91,    92,    93,
1487       94,    95,    96,    97,    98,    99,   100,   101,   102,    -1,
1488      104,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1489       -1,    -1,   116,    20,   118,   119,   120,   121,    -1,    -1,
1490      124,   125,   126,   127,   128,    -1,   130,   131,   132,    -1,
1491       37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1492       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1493       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1494       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1495       77,    78,    79,    80,    81,    82,    83,    84,    85,    -1,
1496       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1497       97,    98,    99,   100,   101,   102,    -1,   104,     8,    -1,
1498       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,
1499       20,   118,   119,   120,   121,    -1,    -1,   124,   125,   126,
1500      127,   128,   129,   130,   131,   132,    -1,    37,    -1,    -1,
1501       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1502       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1503       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,
1504       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1505       80,    81,    82,    83,    84,    85,    -1,    87,    88,    89,
1506       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1507      100,   101,   102,    -1,   104,     8,    -1,    -1,    -1,    -1,
1508       -1,    -1,    -1,    -1,    -1,    -1,   116,    20,   118,   119,
1509      120,   121,    -1,    -1,   124,   125,   126,   127,   128,   129,
1510      130,   131,   132,    -1,    37,    -1,    -1,    -1,    -1,    -1,
1511       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1512       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1513       -1,    -1,    -1,    -1,    67,    68,    69,    70,    71,    72,
1514       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1515       83,    84,    85,    -1,    87,    88,    89,    90,    91,    92,
1516       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1517       -1,   104,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1518       -1,    -1,    -1,   116,    20,   118,   119,   120,   121,    -1,
1519       -1,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1520       -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1521       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1522       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1523       -1,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1524       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1525       -1,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1526       96,    97,    98,    99,   100,   101,   102,     8,   104,    -1,
1527       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
1528      116,    -1,   118,   119,   120,   121,    -1,    -1,   124,   125,
1529      126,   127,   128,   129,   130,   131,   132,    -1,    -1,    -1,
1530       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1531       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1532       -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,    70,
1533       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1534       81,    82,    83,    84,    85,    -1,    87,    88,    89,    90,
1535       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1536      101,   102,     8,   104,    -1,    -1,    -1,    -1,    -1,    -1,
1537       -1,    -1,    -1,    -1,    20,   116,    -1,   118,   119,   120,
1538      121,    -1,    -1,   124,   125,   126,   127,   128,   129,   130,
1539      131,   132,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1540       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1541       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1542       -1,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1543       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1544       -1,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1545       96,    97,    98,    99,   100,   101,   102,     8,   104,    -1,
1546       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
1547      116,    -1,   118,   119,   120,   121,    -1,   123,   124,   125,
1548      126,   127,   128,    -1,   130,   131,   132,    -1,    -1,    -1,
1549       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1550       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1551       -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,    70,
1552       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1553       81,    82,    83,    84,    85,    -1,    87,    88,    89,    90,
1554       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1555      101,   102,    -1,   104,    -1,    -1,    -1,    -1,    -1,     8,
1556       -1,    -1,    -1,    -1,    -1,   116,    -1,   118,   119,   120,
1557      121,    20,    -1,   124,   125,   126,   127,   128,   129,   130,
1558      131,   132,    -1,    -1,    -1,    -1,    35,    -1,    -1,    -1,
1559       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1560       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1561       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
1562       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1563       79,    80,    81,    82,    83,    84,    85,    -1,    87,    88,
1564       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1565       99,   100,   101,   102,    -1,   104,    -1,    -1,    -1,    -1,
1566       -1,     8,    -1,    -1,    -1,    -1,    -1,   116,    -1,   118,
1567      119,   120,   121,    20,    -1,   124,   125,   126,   127,   128,
1568       -1,   130,   131,   132,    -1,    -1,    -1,    -1,    35,    -1,
1569       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1570       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1571       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1572       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1573       77,    78,    79,    80,    81,    82,    83,    84,    85,    -1,
1574       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1575       97,    98,    99,   100,   101,   102,     8,   104,    -1,    -1,
1576       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,   116,
1577       -1,   118,   119,   120,   121,    -1,    -1,   124,   125,   126,
1578      127,   128,    -1,   130,   131,   132,    -1,    -1,    -1,    -1,
1579       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1580       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1581       -1,    -1,    -1,    -1,    66,    67,    68,    69,    70,    71,
1582       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1583       82,    83,    84,    85,    -1,    87,    88,    89,    90,    91,
1584       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1585      102,     8,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1586       -1,    -1,    -1,    20,   116,    -1,   118,   119,   120,   121,
1587       -1,    -1,   124,   125,   126,   127,   128,    -1,   130,   131,
1588      132,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1589       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1590       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1591       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1592       77,    78,    79,    80,    81,    82,    83,    84,    85,    -1,
1593       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1594       97,    98,    99,   100,   101,   102,    -1,   104,    -1,    -1,
1595       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,
1596       -1,   118,   119,   120,   121,    -1,    -1,   124,   125,   126,
1597      127,   128,    -1,   130,   131,   132,     3,    -1,    -1,     6,
1598       -1,    -1,    -1,    10,    11,    -1,    -1,    -1,    -1,    -1,
1599       -1,    -1,    -1,    20,    21,    22,    23,    -1,    25,    -1,
1600       -1,    -1,     3,    -1,    -1,     6,    -1,    34,    35,    10,
1601       11,    -1,    -1,    40,    41,    42,    43,    -1,    -1,    20,
1602       21,    22,    -1,    -1,    25,    -1,    -1,    54,    55,    -1,
1603       -1,    -1,    59,    34,    -1,    36,    -1,    -1,    -1,    40,
1604       41,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1605       -1,    -1,     3,    54,    55,     6,    -1,    -1,    59,    10,
1606       11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
1607       21,    22,    -1,    -1,    25,    -1,    -1,    -1,    -1,    -1,
1608      107,   108,    -1,    34,    -1,    36,    -1,   114,    -1,    40,
1609       41,    42,    43,     3,    -1,    -1,     6,    -1,    -1,    -1,
1610       10,    11,    -1,    54,    55,    -1,   107,   108,    59,    -1,
1611       20,    21,    22,   114,    -1,    25,    -1,    -1,    -1,    -1,
1612       -1,    -1,    -1,    -1,    34,    -1,    36,    -1,    -1,    -1,
1613       40,    41,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,
1614       -1,    -1,    -1,     3,    54,    55,     6,    -1,    -1,    59,
1615       10,    11,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,
1616       20,    21,    22,   114,    -1,    25,    -1,    -1,    -1,     3,
1617       -1,    -1,     6,    -1,    34,    -1,    10,    11,    -1,    -1,
1618       40,    41,    42,    43,    -1,    -1,    20,    -1,    22,    -1,
1619       -1,    25,    -1,    -1,    54,    55,    -1,   107,   108,    59,
1620       34,    -1,    -1,    -1,   114,    -1,    40,    41,    42,    43,
1621       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1622       54,    -1,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,
1623       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1624       -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,    -1,
1625       -1,    -1,    -1,    -1,   114,    -1,    -1,    -1,    -1,    -1,
1626       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1627       -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,    -1,
1628      114
1629 };
1630 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
1631
1632 /* Skeleton output parser for bison,
1633
1634    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
1635    Foundation, Inc.
1636
1637    This program is free software; you can redistribute it and/or modify
1638    it under the terms of the GNU General Public License as published by
1639    the Free Software Foundation; either version 2, or (at your option)
1640    any later version.
1641
1642    This program is distributed in the hope that it will be useful,
1643    but WITHOUT ANY WARRANTY; without even the implied warranty of
1644    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1645    GNU General Public License for more details.
1646
1647    You should have received a copy of the GNU General Public License
1648    along with this program; if not, write to the Free Software
1649    Foundation, Inc., 59 Temple Place - Suite 330,
1650    Boston, MA 02111-1307, USA.  */
1651
1652 /* As a special exception, when this file is copied by Bison into a
1653    Bison output file, you may use that output file without restriction.
1654    This special exception was added by the Free Software Foundation
1655    in version 1.24 of Bison.  */
1656
1657 /* This is the parser code that is written into each bison parser when
1658    the %semantic_parser declaration is not specified in the grammar.
1659    It was written by Richard Stallman by simplifying the hairy parser
1660    used when %semantic_parser is specified.  */
1661
1662 /* All symbols defined below should begin with yy or YY, to avoid
1663    infringing on user name space.  This should be done even for local
1664    variables, as they might otherwise be expanded by user macros.
1665    There are some unavoidable exceptions within include files to
1666    define necessary library symbols; they are noted "INFRINGES ON
1667    USER NAME SPACE" below.  */
1668
1669 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
1670
1671 /* The parser invokes alloca or malloc; define the necessary symbols.  */
1672
1673 # if YYSTACK_USE_ALLOCA
1674 #  define YYSTACK_ALLOC alloca
1675 # else
1676 #  ifndef YYSTACK_USE_ALLOCA
1677 #   if defined (alloca) || defined (_ALLOCA_H)
1678 #    define YYSTACK_ALLOC alloca
1679 #   else
1680 #    ifdef __GNUC__
1681 #     define YYSTACK_ALLOC __builtin_alloca
1682 #    endif
1683 #   endif
1684 #  endif
1685 # endif
1686
1687 # ifdef YYSTACK_ALLOC
1688    /* Pacify GCC's `empty if-body' warning. */
1689 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
1690 # else
1691 #  if defined (__STDC__) || defined (__cplusplus)
1692 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1693 #   define YYSIZE_T size_t
1694 #  endif
1695 #  define YYSTACK_ALLOC malloc
1696 #  define YYSTACK_FREE free
1697 # endif
1698 #endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
1699
1700
1701 #if (! defined (yyoverflow) \
1702      && (! defined (__cplusplus) \
1703          || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1704
1705 /* A type that is properly aligned for any stack member.  */
1706 union yyalloc
1707 {
1708   short yyss;
1709   YYSTYPE yyvs;
1710 # if YYLSP_NEEDED
1711   YYLTYPE yyls;
1712 # endif
1713 };
1714
1715 /* The size of the maximum gap between one aligned stack and the next.  */
1716 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
1717
1718 /* The size of an array large to enough to hold all stacks, each with
1719    N elements.  */
1720 # if YYLSP_NEEDED
1721 #  define YYSTACK_BYTES(N) \
1722      ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))      \
1723       + 2 * YYSTACK_GAP_MAX)
1724 # else
1725 #  define YYSTACK_BYTES(N) \
1726      ((N) * (sizeof (short) + sizeof (YYSTYPE))                         \
1727       + YYSTACK_GAP_MAX)
1728 # endif
1729
1730 /* Copy COUNT objects from FROM to TO.  The source and destination do
1731    not overlap.  */
1732 # ifndef YYCOPY
1733 #  if 1 < __GNUC__
1734 #   define YYCOPY(To, From, Count) \
1735       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1736 #  else
1737 #   define YYCOPY(To, From, Count)              \
1738       do                                        \
1739         {                                       \
1740           register YYSIZE_T yyi;                \
1741           for (yyi = 0; yyi < (Count); yyi++)   \
1742             (To)[yyi] = (From)[yyi];            \
1743         }                                       \
1744       while (0)
1745 #  endif
1746 # endif
1747
1748 /* Relocate STACK from its old location to the new one.  The
1749    local variables YYSIZE and YYSTACKSIZE give the old and new number of
1750    elements in the stack, and YYPTR gives the new location of the
1751    stack.  Advance YYPTR to a properly aligned location for the next
1752    stack.  */
1753 # define YYSTACK_RELOCATE(Stack)                                        \
1754     do                                                                  \
1755       {                                                                 \
1756         YYSIZE_T yynewbytes;                                            \
1757         YYCOPY (&yyptr->Stack, Stack, yysize);                          \
1758         Stack = &yyptr->Stack;                                          \
1759         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;   \
1760         yyptr += yynewbytes / sizeof (*yyptr);                          \
1761       }                                                                 \
1762     while (0)
1763
1764 #endif
1765
1766
1767 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
1768 # define YYSIZE_T __SIZE_TYPE__
1769 #endif
1770 #if ! defined (YYSIZE_T) && defined (size_t)
1771 # define YYSIZE_T size_t
1772 #endif
1773 #if ! defined (YYSIZE_T)
1774 # if defined (__STDC__) || defined (__cplusplus)
1775 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1776 #  define YYSIZE_T size_t
1777 # endif
1778 #endif
1779 #if ! defined (YYSIZE_T)
1780 # define YYSIZE_T unsigned int
1781 #endif
1782
1783 #define yyerrok         (yyerrstatus = 0)
1784 #define yyclearin       (yychar = YYEMPTY)
1785 #define YYEMPTY         -2
1786 #define YYEOF           0
1787 #define YYACCEPT        goto yyacceptlab
1788 #define YYABORT         goto yyabortlab
1789 #define YYERROR         goto yyerrlab1
1790 /* Like YYERROR except do call yyerror.  This remains here temporarily
1791    to ease the transition to the new meaning of YYERROR, for GCC.
1792    Once GCC version 2 has supplanted version 1, this can go.  */
1793 #define YYFAIL          goto yyerrlab
1794 #define YYRECOVERING()  (!!yyerrstatus)
1795 #define YYBACKUP(Token, Value)                                  \
1796 do                                                              \
1797   if (yychar == YYEMPTY && yylen == 1)                          \
1798     {                                                           \
1799       yychar = (Token);                                         \
1800       yylval = (Value);                                         \
1801       yychar1 = YYTRANSLATE (yychar);                           \
1802       YYPOPSTACK;                                               \
1803       goto yybackup;                                            \
1804     }                                                           \
1805   else                                                          \
1806     {                                                           \
1807       yyerror ("syntax error: cannot back up");                 \
1808       YYERROR;                                                  \
1809     }                                                           \
1810 while (0)
1811
1812 #define YYTERROR        1
1813 #define YYERRCODE       256
1814
1815
1816 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
1817    are run).
1818
1819    When YYLLOC_DEFAULT is run, CURRENT is set the location of the
1820    first token.  By default, to implement support for ranges, extend
1821    its range to the last symbol.  */
1822
1823 #ifndef YYLLOC_DEFAULT
1824 # define YYLLOC_DEFAULT(Current, Rhs, N)        \
1825    Current.last_line   = Rhs[N].last_line;      \
1826    Current.last_column = Rhs[N].last_column;
1827 #endif
1828
1829
1830 /* YYLEX -- calling `yylex' with the right arguments.  */
1831
1832 #if YYPURE
1833 # if YYLSP_NEEDED
1834 #  ifdef YYLEX_PARAM
1835 #   define YYLEX                yylex (&yylval, &yylloc, YYLEX_PARAM)
1836 #  else
1837 #   define YYLEX                yylex (&yylval, &yylloc)
1838 #  endif
1839 # else /* !YYLSP_NEEDED */
1840 #  ifdef YYLEX_PARAM
1841 #   define YYLEX                yylex (&yylval, YYLEX_PARAM)
1842 #  else
1843 #   define YYLEX                yylex (&yylval)
1844 #  endif
1845 # endif /* !YYLSP_NEEDED */
1846 #else /* !YYPURE */
1847 # define YYLEX                  yylex ()
1848 #endif /* !YYPURE */
1849
1850
1851 /* Enable debugging if requested.  */
1852 #if YYDEBUG
1853
1854 # ifndef YYFPRINTF
1855 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1856 #  define YYFPRINTF fprintf
1857 # endif
1858
1859 # define YYDPRINTF(Args)                        \
1860 do {                                            \
1861   if (yydebug)                                  \
1862     YYFPRINTF Args;                             \
1863 } while (0)
1864 /* Nonzero means print parse trace.  It is left uninitialized so that
1865    multiple parsers can coexist.  */
1866 int yydebug;
1867 #else /* !YYDEBUG */
1868 # define YYDPRINTF(Args)
1869 #endif /* !YYDEBUG */
1870
1871 /* YYINITDEPTH -- initial size of the parser's stacks.  */
1872 #ifndef YYINITDEPTH
1873 # define YYINITDEPTH 200
1874 #endif
1875
1876 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1877    if the built-in stack extension method is used).
1878
1879    Do not make this value too large; the results are undefined if
1880    SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
1881    evaluated with infinite-precision integer arithmetic.  */
1882
1883 #if YYMAXDEPTH == 0
1884 # undef YYMAXDEPTH
1885 #endif
1886
1887 #ifndef YYMAXDEPTH
1888 # define YYMAXDEPTH 10000
1889 #endif
1890 \f
1891 #ifdef YYERROR_VERBOSE
1892
1893 # ifndef yystrlen
1894 #  if defined (__GLIBC__) && defined (_STRING_H)
1895 #   define yystrlen strlen
1896 #  else
1897 /* Return the length of YYSTR.  */
1898 static YYSIZE_T
1899 #   if defined (__STDC__) || defined (__cplusplus)
1900 yystrlen (const char *yystr)
1901 #   else
1902 yystrlen (yystr)
1903      const char *yystr;
1904 #   endif
1905 {
1906   register const char *yys = yystr;
1907
1908   while (*yys++ != '\0')
1909     continue;
1910
1911   return yys - yystr - 1;
1912 }
1913 #  endif
1914 # endif
1915
1916 # ifndef yystpcpy
1917 #  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1918 #   define yystpcpy stpcpy
1919 #  else
1920 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1921    YYDEST.  */
1922 static char *
1923 #   if defined (__STDC__) || defined (__cplusplus)
1924 yystpcpy (char *yydest, const char *yysrc)
1925 #   else
1926 yystpcpy (yydest, yysrc)
1927      char *yydest;
1928      const char *yysrc;
1929 #   endif
1930 {
1931   register char *yyd = yydest;
1932   register const char *yys = yysrc;
1933
1934   while ((*yyd++ = *yys++) != '\0')
1935     continue;
1936
1937   return yyd - 1;
1938 }
1939 #  endif
1940 # endif
1941 #endif
1942 \f
1943
1944
1945 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1946    into yyparse.  The argument should have type void *.
1947    It should actually point to an object.
1948    Grammar actions can access the variable by casting it
1949    to the proper pointer type.  */
1950
1951 #ifdef YYPARSE_PARAM
1952 # if defined (__STDC__) || defined (__cplusplus)
1953 #  define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1954 #  define YYPARSE_PARAM_DECL
1955 # else
1956 #  define YYPARSE_PARAM_ARG YYPARSE_PARAM
1957 #  define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1958 # endif
1959 #else /* !YYPARSE_PARAM */
1960 # define YYPARSE_PARAM_ARG
1961 # define YYPARSE_PARAM_DECL
1962 #endif /* !YYPARSE_PARAM */
1963
1964 /* Prevent warning if -Wstrict-prototypes.  */
1965 #ifdef __GNUC__
1966 # ifdef YYPARSE_PARAM
1967 int yyparse (void *);
1968 # else
1969 int yyparse (void);
1970 # endif
1971 #endif
1972
1973 /* YY_DECL_VARIABLES -- depending whether we use a pure parser,
1974    variables are global, or local to YYPARSE.  */
1975
1976 #define YY_DECL_NON_LSP_VARIABLES                       \
1977 /* The lookahead symbol.  */                            \
1978 int yychar;                                             \
1979                                                         \
1980 /* The semantic value of the lookahead symbol. */       \
1981 YYSTYPE yylval;                                         \
1982                                                         \
1983 /* Number of parse errors so far.  */                   \
1984 int yynerrs;
1985
1986 #if YYLSP_NEEDED
1987 # define YY_DECL_VARIABLES                      \
1988 YY_DECL_NON_LSP_VARIABLES                       \
1989                                                 \
1990 /* Location data for the lookahead symbol.  */  \
1991 YYLTYPE yylloc;
1992 #else
1993 # define YY_DECL_VARIABLES                      \
1994 YY_DECL_NON_LSP_VARIABLES
1995 #endif
1996
1997
1998 /* If nonreentrant, generate the variables here. */
1999
2000 #if !YYPURE
2001 YY_DECL_VARIABLES
2002 #endif  /* !YYPURE */
2003
2004 int
2005 yyparse (YYPARSE_PARAM_ARG)
2006      YYPARSE_PARAM_DECL
2007 {
2008   /* If reentrant, generate the variables here. */
2009 #if YYPURE
2010   YY_DECL_VARIABLES
2011 #endif  /* !YYPURE */
2012
2013   register int yystate;
2014   register int yyn;
2015   int yyresult;
2016   /* Number of tokens to shift before error messages enabled.  */
2017   int yyerrstatus;
2018   /* Lookahead token as an internal (translated) token number.  */
2019   int yychar1 = 0;
2020
2021   /* Three stacks and their tools:
2022      `yyss': related to states,
2023      `yyvs': related to semantic values,
2024      `yyls': related to locations.
2025
2026      Refer to the stacks thru separate pointers, to allow yyoverflow
2027      to reallocate them elsewhere.  */
2028
2029   /* The state stack. */
2030   short yyssa[YYINITDEPTH];
2031   short *yyss = yyssa;
2032   register short *yyssp;
2033
2034   /* The semantic value stack.  */
2035   YYSTYPE yyvsa[YYINITDEPTH];
2036   YYSTYPE *yyvs = yyvsa;
2037   register YYSTYPE *yyvsp;
2038
2039 #if YYLSP_NEEDED
2040   /* The location stack.  */
2041   YYLTYPE yylsa[YYINITDEPTH];
2042   YYLTYPE *yyls = yylsa;
2043   YYLTYPE *yylsp;
2044 #endif
2045
2046 #if YYLSP_NEEDED
2047 # define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
2048 #else
2049 # define YYPOPSTACK   (yyvsp--, yyssp--)
2050 #endif
2051
2052   YYSIZE_T yystacksize = YYINITDEPTH;
2053
2054
2055   /* The variables used to return semantic value and location from the
2056      action routines.  */
2057   YYSTYPE yyval;
2058 #if YYLSP_NEEDED
2059   YYLTYPE yyloc;
2060 #endif
2061
2062   /* When reducing, the number of symbols on the RHS of the reduced
2063      rule. */
2064   int yylen;
2065
2066   YYDPRINTF ((stderr, "Starting parse\n"));
2067
2068   yystate = 0;
2069   yyerrstatus = 0;
2070   yynerrs = 0;
2071   yychar = YYEMPTY;             /* Cause a token to be read.  */
2072
2073   /* Initialize stack pointers.
2074      Waste one element of value and location stack
2075      so that they stay on the same level as the state stack.
2076      The wasted elements are never initialized.  */
2077
2078   yyssp = yyss;
2079   yyvsp = yyvs;
2080 #if YYLSP_NEEDED
2081   yylsp = yyls;
2082 #endif
2083   goto yysetstate;
2084
2085 /*------------------------------------------------------------.
2086 | yynewstate -- Push a new state, which is found in yystate.  |
2087 `------------------------------------------------------------*/
2088  yynewstate:
2089   /* In all cases, when you get here, the value and location stacks
2090      have just been pushed. so pushing a state here evens the stacks.
2091      */
2092   yyssp++;
2093
2094  yysetstate:
2095   *yyssp = yystate;
2096
2097   if (yyssp >= yyss + yystacksize - 1)
2098     {
2099       /* Get the current used size of the three stacks, in elements.  */
2100       YYSIZE_T yysize = yyssp - yyss + 1;
2101
2102 #ifdef yyoverflow
2103       {
2104         /* Give user a chance to reallocate the stack. Use copies of
2105            these so that the &'s don't force the real ones into
2106            memory.  */
2107         YYSTYPE *yyvs1 = yyvs;
2108         short *yyss1 = yyss;
2109
2110         /* Each stack pointer address is followed by the size of the
2111            data in use in that stack, in bytes.  */
2112 # if YYLSP_NEEDED
2113         YYLTYPE *yyls1 = yyls;
2114         /* This used to be a conditional around just the two extra args,
2115            but that might be undefined if yyoverflow is a macro.  */
2116         yyoverflow ("parser stack overflow",
2117                     &yyss1, yysize * sizeof (*yyssp),
2118                     &yyvs1, yysize * sizeof (*yyvsp),
2119                     &yyls1, yysize * sizeof (*yylsp),
2120                     &yystacksize);
2121         yyls = yyls1;
2122 # else
2123         yyoverflow ("parser stack overflow",
2124                     &yyss1, yysize * sizeof (*yyssp),
2125                     &yyvs1, yysize * sizeof (*yyvsp),
2126                     &yystacksize);
2127 # endif
2128         yyss = yyss1;
2129         yyvs = yyvs1;
2130       }
2131 #else /* no yyoverflow */
2132 # ifndef YYSTACK_RELOCATE
2133       goto yyoverflowlab;
2134 # else
2135       /* Extend the stack our own way.  */
2136       if (yystacksize >= YYMAXDEPTH)
2137         goto yyoverflowlab;
2138       yystacksize *= 2;
2139       if (yystacksize > YYMAXDEPTH)
2140         yystacksize = YYMAXDEPTH;
2141
2142       {
2143         short *yyss1 = yyss;
2144         union yyalloc *yyptr =
2145           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2146         if (! yyptr)
2147           goto yyoverflowlab;
2148         YYSTACK_RELOCATE (yyss);
2149         YYSTACK_RELOCATE (yyvs);
2150 # if YYLSP_NEEDED
2151         YYSTACK_RELOCATE (yyls);
2152 # endif
2153 # undef YYSTACK_RELOCATE
2154         if (yyss1 != yyssa)
2155           YYSTACK_FREE (yyss1);
2156       }
2157 # endif
2158 #endif /* no yyoverflow */
2159
2160       yyssp = yyss + yysize - 1;
2161       yyvsp = yyvs + yysize - 1;
2162 #if YYLSP_NEEDED
2163       yylsp = yyls + yysize - 1;
2164 #endif
2165
2166       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2167                   (unsigned long int) yystacksize));
2168
2169       if (yyssp >= yyss + yystacksize - 1)
2170         YYABORT;
2171     }
2172
2173   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2174
2175   goto yybackup;
2176
2177
2178 /*-----------.
2179 | yybackup.  |
2180 `-----------*/
2181 yybackup:
2182
2183 /* Do appropriate processing given the current state.  */
2184 /* Read a lookahead token if we need one and don't already have one.  */
2185 /* yyresume: */
2186
2187   /* First try to decide what to do without reference to lookahead token.  */
2188
2189   yyn = yypact[yystate];
2190   if (yyn == YYFLAG)
2191     goto yydefault;
2192
2193   /* Not known => get a lookahead token if don't already have one.  */
2194
2195   /* yychar is either YYEMPTY or YYEOF
2196      or a valid token in external form.  */
2197
2198   if (yychar == YYEMPTY)
2199     {
2200       YYDPRINTF ((stderr, "Reading a token: "));
2201       yychar = YYLEX;
2202     }
2203
2204   /* Convert token to internal form (in yychar1) for indexing tables with */
2205
2206   if (yychar <= 0)              /* This means end of input. */
2207     {
2208       yychar1 = 0;
2209       yychar = YYEOF;           /* Don't call YYLEX any more */
2210
2211       YYDPRINTF ((stderr, "Now at end of input.\n"));
2212     }
2213   else
2214     {
2215       yychar1 = YYTRANSLATE (yychar);
2216
2217 #if YYDEBUG
2218      /* We have to keep this `#if YYDEBUG', since we use variables
2219         which are defined only if `YYDEBUG' is set.  */
2220       if (yydebug)
2221         {
2222           YYFPRINTF (stderr, "Next token is %d (%s",
2223                      yychar, yytname[yychar1]);
2224           /* Give the individual parser a way to print the precise
2225              meaning of a token, for further debugging info.  */
2226 # ifdef YYPRINT
2227           YYPRINT (stderr, yychar, yylval);
2228 # endif
2229           YYFPRINTF (stderr, ")\n");
2230         }
2231 #endif
2232     }
2233
2234   yyn += yychar1;
2235   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2236     goto yydefault;
2237
2238   yyn = yytable[yyn];
2239
2240   /* yyn is what to do for this token type in this state.
2241      Negative => reduce, -yyn is rule number.
2242      Positive => shift, yyn is new state.
2243        New state is final state => don't bother to shift,
2244        just return success.
2245      0, or most negative number => error.  */
2246
2247   if (yyn < 0)
2248     {
2249       if (yyn == YYFLAG)
2250         goto yyerrlab;
2251       yyn = -yyn;
2252       goto yyreduce;
2253     }
2254   else if (yyn == 0)
2255     goto yyerrlab;
2256
2257   if (yyn == YYFINAL)
2258     YYACCEPT;
2259
2260   /* Shift the lookahead token.  */
2261   YYDPRINTF ((stderr, "Shifting token %d (%s), ",
2262               yychar, yytname[yychar1]));
2263
2264   /* Discard the token being shifted unless it is eof.  */
2265   if (yychar != YYEOF)
2266     yychar = YYEMPTY;
2267
2268   *++yyvsp = yylval;
2269 #if YYLSP_NEEDED
2270   *++yylsp = yylloc;
2271 #endif
2272
2273   /* Count tokens shifted since error; after three, turn off error
2274      status.  */
2275   if (yyerrstatus)
2276     yyerrstatus--;
2277
2278   yystate = yyn;
2279   goto yynewstate;
2280
2281
2282 /*-----------------------------------------------------------.
2283 | yydefault -- do the default action for the current state.  |
2284 `-----------------------------------------------------------*/
2285 yydefault:
2286   yyn = yydefact[yystate];
2287   if (yyn == 0)
2288     goto yyerrlab;
2289   goto yyreduce;
2290
2291
2292 /*-----------------------------.
2293 | yyreduce -- Do a reduction.  |
2294 `-----------------------------*/
2295 yyreduce:
2296   /* yyn is the number of a rule to reduce with.  */
2297   yylen = yyr2[yyn];
2298
2299   /* If YYLEN is nonzero, implement the default value of the action:
2300      `$$ = $1'.
2301
2302      Otherwise, the following line sets YYVAL to the semantic value of
2303      the lookahead token.  This behavior is undocumented and Bison
2304      users should not rely upon it.  Assigning to YYVAL
2305      unconditionally makes the parser a bit smaller, and it avoids a
2306      GCC warning that YYVAL may be used uninitialized.  */
2307   yyval = yyvsp[1-yylen];
2308
2309 #if YYLSP_NEEDED
2310   /* Similarly for the default location.  Let the user run additional
2311      commands if for instance locations are ranges.  */
2312   yyloc = yylsp[1-yylen];
2313   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
2314 #endif
2315
2316 #if YYDEBUG
2317   /* We have to keep this `#if YYDEBUG', since we use variables which
2318      are defined only if `YYDEBUG' is set.  */
2319   if (yydebug)
2320     {
2321       int yyi;
2322
2323       YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
2324                  yyn, yyrline[yyn]);
2325
2326       /* Print the symbols being reduced, and their result.  */
2327       for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
2328         YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
2329       YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2330     }
2331 #endif
2332
2333   switch (yyn) {
2334
2335 case 1:
2336 { lhExternals (yyvsp[0].interfacelist); ;
2337     break;}
2338 case 2:
2339 { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;
2340     break;}
2341 case 3:
2342 { yyval.interfacelist = interfaceNodeList_new (); ;
2343     break;}
2344 case 4:
2345 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2346     break;}
2347 case 7:
2348 { yyval.interfacelist = interfaceNodeList_new (); ;
2349     break;}
2350 case 8:
2351 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2352     break;}
2353 case 9:
2354 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
2355     break;}
2356 case 10:
2357 { yyval.interfacelist = interfaceNodeList_new (); ;
2358     break;}
2359 case 11:
2360 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
2361     break;}
2362 case 15:
2363 { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
2364      /* assume subspecs are already processed, symbol table info in external file */
2365    ;
2366     break;}
2367 case 16:
2368 { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;
2369     break;}
2370 case 17:
2371 { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;
2372     break;}
2373 case 18:
2374 { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;
2375     break;}
2376 case 19:
2377 { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;
2378     break;}
2379 case 20:
2380 { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;
2381     break;}
2382 case 21:
2383 { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;
2384     break;}
2385 case 22:
2386 { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;
2387     break;}
2388 case 23:
2389 { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;
2390     break;}
2391 case 24:
2392 { yyval.paramlist = paramNodeList_new (); ;
2393     break;}
2394 case 25:
2395 { yyval.paramlist = yyvsp[0].paramlist; ;
2396     break;}
2397 case 26:
2398 { yyval.paramlist = paramNodeList_add (paramNodeList_new (),  yyvsp[0].param); ;
2399     break;}
2400 case 27:
2401 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;
2402     break;}
2403 case 28:
2404 { yyval.param = markYieldParamNode (yyvsp[0].param); ;
2405     break;}
2406 case 29:
2407 { yyval.param = yyvsp[0].param; ;
2408     break;}
2409 case 30:
2410 { symtable_export (g_symtab, FALSE); ;
2411     break;}
2412 case 31:
2413 { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;
2414     break;}
2415 case 32:
2416 { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface =  interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;
2417     break;}
2418 case 33:
2419 { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;
2420     break;}
2421 case 34:
2422 { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;
2423     break;}
2424 case 35:
2425 { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;
2426     break;}
2427 case 36:
2428 { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;
2429     break;}
2430 case 37:
2431 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;
2432     break;}
2433 case 38:
2434 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;
2435     break;}
2436 case 39:
2437 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;
2438     break;}
2439 case 40:
2440 { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;
2441     break;}
2442 case 41:
2443 { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;
2444     break;}
2445 case 42:
2446 { yyval.typequal = qual_createPrintfLike (); ;
2447     break;}
2448 case 43:
2449 { yyval.typequal = qual_createScanfLike (); ;
2450     break;}
2451 case 44:
2452 { yyval.typequal = qual_createMessageLike (); ;
2453     break;}
2454 case 45:
2455 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2456     break;}
2457 case 46:
2458 { yyval.fcn = makeFcnNode (qual_createUnknown (),  yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls, 
2459                        yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); 
2460      /* type, declarator, glovbls, privateinits,
2461         lets, checks, requires, modifies, ensures, claims */
2462      symtable_exitScope (g_symtab);
2463    ;
2464     break;}
2465 case 47:
2466 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
2467     break;}
2468 case 48:
2469 { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, 
2470                        yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); 
2471      /* type, declarator, glovbls, privateinits,
2472         lets, checks, requires, modifies, ensures, claims */
2473      symtable_exitScope (g_symtab);
2474    ;
2475     break;}
2476 case 49:
2477 { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;
2478     break;}
2479 case 50:
2480 {      yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate); 
2481      symtable_exitScope (g_symtab); ;
2482     break;}
2483 case 51:
2484 { yyval.claim = (claimNode) 0; ;
2485     break;}
2486 case 52:
2487 {g_inTypeDef = TRUE; ;
2488     break;}
2489 case 53:
2490 {g_inTypeDef = FALSE; ;
2491     break;}
2492 case 54:
2493 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;
2494     break;}
2495 case 55:
2496 {g_inTypeDef = TRUE; ;
2497     break;}
2498 case 56:
2499 {g_inTypeDef = FALSE; ;
2500     break;}
2501 case 57:
2502 { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2503     break;}
2504 case 58:
2505 {g_inTypeDef = TRUE; ;
2506     break;}
2507 case 59:
2508 {g_inTypeDef = FALSE; ;
2509     break;}
2510 case 60:
2511 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
2512     break;}
2513 case 61:
2514 {g_inTypeDef = TRUE; ;
2515     break;}
2516 case 62:
2517 {g_inTypeDef = FALSE; ;
2518     break;}
2519 case 63:
2520 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;
2521     break;}
2522 case 64:
2523 { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;
2524     break;}
2525 case 65:
2526 { g_inTypeDef = FALSE; ;
2527     break;}
2528 case 66:
2529 { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;
2530     break;}
2531 case 67:
2532 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;
2533     break;}
2534 case 68:
2535 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;
2536     break;}
2537 case 69:
2538 { yyval.importlist = importNodeList_add (importNodeList_new (),  yyvsp[0].import); ;
2539     break;}
2540 case 70:
2541 { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;
2542     break;}
2543 case 71:
2544 { yyval.import = importNode_makePlain (yyvsp[0].ltok); ;
2545     break;}
2546 case 72:
2547 { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;
2548     break;}
2549 case 73:
2550 { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;
2551     break;}
2552 case 74:
2553 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2554     break;}
2555 case 75:
2556 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2557     break;}
2558 case 77:
2559 { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (),  yyvsp[0].traitref); ;
2560     break;}
2561 case 78:
2562 { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;
2563     break;}
2564 case 79:
2565 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;
2566     break;}
2567 case 80:
2568 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;
2569     break;}
2570 case 81:
2571 { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;
2572     break;}
2573 case 82:
2574 { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;
2575     break;}
2576 case 83:
2577 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
2578     break;}
2579 case 84:
2580 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
2581     break;}
2582 case 85:
2583 { yyval.renaming = makeRenamingNode (typeNameNodeList_new (),  yyvsp[0].replacelist); ;
2584     break;}
2585 case 86:
2586 { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;
2587     break;}
2588 case 87:
2589 { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;
2590     break;}
2591 case 88:
2592 { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (),  yyvsp[0].typname); ;
2593     break;}
2594 case 89:
2595 { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;
2596     break;}
2597 case 90:
2598 { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (),  yyvsp[0].replace); ;
2599     break;}
2600 case 91:
2601 { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;
2602     break;}
2603 case 92:
2604 { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;
2605     break;}
2606 case 93:
2607 { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;
2608     break;}
2609 case 94:
2610 { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
2611                                                          yyvsp[-1].name, yyvsp[0].signature); ;
2612     break;}
2613 case 95:
2614 { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
2615     break;}
2616 case 96:
2617 { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
2618     break;}
2619 case 99:
2620 { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (),  yyvsp[0].initdecl); ;
2621     break;}
2622 case 100:
2623 { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;
2624     break;}
2625 case 101:
2626 { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;
2627     break;}
2628 case 102:
2629 { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;
2630     break;}
2631 case 103:
2632 { yyval.globals = varDeclarationNodeList_new (); ;
2633     break;}
2634 case 104:
2635 { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;
2636     break;}
2637 case 105:
2638 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;
2639     break;}
2640 case 106:
2641 { yyval.vardeclaration = makeInternalStateNode (); ;
2642     break;}
2643 case 107:
2644 { yyval.vardeclaration = makeFileSystemNode (); ;
2645     break;}
2646 case 108:
2647 { yyval.vardeclarationlist = varDeclarationNodeList_new (); ;
2648     break;}
2649 case 109:
2650 { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;
2651     break;}
2652 case 110:
2653 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;
2654     break;}
2655 case 111:
2656 { yyval.letdecls = letDeclNodeList_new (); ;
2657     break;}
2658 case 112:
2659 { yyval.letdecls = yyvsp[-1].letdecls; ;
2660     break;}
2661 case 113:
2662 { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (),  yyvsp[0].letdecl); ;
2663     break;}
2664 case 114:
2665 { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;
2666     break;}
2667 case 115:
2668 { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;
2669     break;}
2670 case 116:
2671 { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;
2672     break;}
2673 case 118:
2674 { yyval.lclpredicate = (lclPredicateNode)0; ;
2675     break;}
2676 case 119:
2677 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2678     break;}
2679 case 120:
2680 { yyval.lclpredicate = (lclPredicateNode)0; ;
2681     break;}
2682 case 121:
2683 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2684     break;}
2685 case 122:
2686 { yyval.modify = (modifyNode)0; ;
2687     break;}
2688 case 123:
2689 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;
2690     break;}
2691 case 124:
2692 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;
2693     break;}
2694 case 125:
2695 { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;
2696     break;}
2697 case 126:
2698 { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (),  yyvsp[0].storeref); ;
2699     break;}
2700 case 127:
2701 { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;
2702     break;}
2703 case 128:
2704 { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;
2705     break;}
2706 case 129:
2707 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;
2708     break;}
2709 case 130:
2710 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;
2711     break;}
2712 case 131:
2713 { yyval.storeref = makeStoreRefNodeInternal (); ;
2714     break;}
2715 case 132:
2716 { yyval.storeref = makeStoreRefNodeSystem (); ;
2717     break;}
2718 case 133:
2719 { yyval.lclpredicate = (lclPredicateNode)0; ;
2720     break;}
2721 case 134:
2722 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2723     break;}
2724 case 135:
2725 { yyval.lclpredicate = (lclPredicateNode)0; ;
2726     break;}
2727 case 136:
2728 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
2729     break;}
2730 case 137:
2731 { yyval.paramlist = paramNodeList_new (); ;
2732     break;}
2733 case 138:
2734 { yyval.paramlist = yyvsp[0].paramlist; ;
2735     break;}
2736 case 140:
2737 { yyval.paramlist = paramNodeList_add (paramNodeList_new (),  paramNode_elipsis ()); ;
2738     break;}
2739 case 141:
2740 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;
2741     break;}
2742 case 142:
2743 { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;
2744     break;}
2745 case 143:
2746 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;
2747     break;}
2748 case 144:
2749 { yyval.program = (programNode)0; ;
2750     break;}
2751 case 145:
2752 { yyval.program = yyvsp[-1].program; ;
2753     break;}
2754 case 146:
2755 { yyval.program = yyvsp[-2].program; ;
2756     break;}
2757 case 147:
2758 { yyval.program = makeProgramNode (yyvsp[0].stmt); ;
2759     break;}
2760 case 148:
2761 { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;
2762     break;}
2763 case 149:
2764 { programNodeList x = programNodeList_new ();
2765      programNodeList_addh (x, yyvsp[-1].program);
2766      yyval.program = makeProgramNodeAction (x, ACT_ITER); 
2767    ;
2768     break;}
2769 case 150:
2770 { programNodeList x = programNodeList_new ();
2771      programNodeList_addh (x, yyvsp[-2].program);
2772      programNodeList_addh (x, yyvsp[0].program);
2773      yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE); 
2774    ;
2775     break;}
2776 case 151:
2777 { programNodeList x = programNodeList_new ();
2778      programNodeList_addh (x, yyvsp[-2].program);
2779      programNodeList_addh (x, yyvsp[0].program);
2780      yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE); 
2781    ;
2782     break;}
2783 case 152:
2784 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2785     break;}
2786 case 153:
2787 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;
2788     break;}
2789 case 154:
2790 { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;
2791     break;}
2792 case 155:
2793 { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
2794     break;}
2795 case 156:
2796 { yyval.termlist = termNodeList_push (termNodeList_new (),  yyvsp[0].term); ;
2797     break;}
2798 case 157:
2799 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
2800     break;}
2801 case 159:
2802 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
2803     break;}
2804 case 160:
2805 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
2806     break;}
2807 case 161:
2808 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
2809     break;}
2810 case 162:
2811 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
2812     break;}
2813 case 163:
2814 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
2815     break;}
2816 case 164:
2817 { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (),  yyvsp[0].ltok); ;
2818     break;}
2819 case 165:
2820 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
2821     break;}
2822 case 166:
2823 { yyval.abstbody = (abstBodyNode)0; ;
2824     break;}
2825 case 167:
2826 { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;
2827     break;}
2828 case 168:
2829 { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;
2830     break;}
2831 case 169:
2832 { yyval.abstbody = (abstBodyNode)0; ;
2833     break;}
2834 case 170:
2835 { yyval.fcns = fcnNodeList_new (); ;
2836     break;}
2837 case 171:
2838 { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;
2839     break;}
2840 case 172:
2841 { yyval.lclpredicate = (lclPredicateNode)0; ;
2842     break;}
2843 case 174:
2844 { g_inTypeDef = FALSE; ;
2845     break;}
2846 case 175:
2847 { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
2848      checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
2849      yyval.lclpredicate = yyvsp[-1].lclpredicate;
2850      symtable_exitScope (g_symtab); 
2851      g_inTypeDef = TRUE;
2852    ;
2853     break;}
2854 case 176:
2855 { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (),  yyvsp[0].declaratorinv); ;
2856     break;}
2857 case 177:
2858 { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;
2859     break;}
2860 case 178:
2861 { declareForwardType (yyvsp[0].declare); ;
2862     break;}
2863 case 179:
2864 { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;
2865     break;}
2866 case 180:
2867 { yyval.abstbody = (abstBodyNode)0; ;
2868     break;}
2869 case 181:
2870 { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
2871     break;}
2872 case 182:
2873 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;
2874     break;}
2875 case 183:
2876 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;
2877     break;}
2878 case 184:
2879 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;
2880     break;}
2881 case 185:
2882 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;
2883     break;}
2884 case 186:
2885 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;
2886     break;}
2887 case 187:
2888 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;
2889     break;}
2890 case 188:
2891 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;
2892     break;}
2893 case 189:
2894 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;
2895     break;}
2896 case 190:
2897 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;
2898     break;}
2899 case 191:
2900 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;
2901     break;}
2902 case 192:
2903 { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;
2904     break;}
2905 case 193:
2906 { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;
2907     break;}
2908 case 194:
2909 { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;
2910     break;}
2911 case 195:
2912 { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;
2913     break;}
2914 case 196:
2915 { yyval.typequal = qual_createOut (); ;
2916     break;}
2917 case 197:
2918 { yyval.typequal = qual_createUnused (); ;
2919     break;}
2920 case 198:
2921 { yyval.typequal = qual_createSef (); ;
2922     break;}
2923 case 199:
2924 { yyval.typequal = qual_createOnly (); ;
2925     break;}
2926 case 200:
2927 { yyval.typequal = qual_createOwned (); ;
2928     break;}
2929 case 201:
2930 { yyval.typequal = qual_createDependent (); ;
2931     break;}
2932 case 202:
2933 { yyval.typequal = qual_createKeep (); ;
2934     break;}
2935 case 203:
2936 { yyval.typequal = qual_createKept (); ;
2937     break;}
2938 case 204:
2939 { yyval.typequal = qual_createObserver (); ;
2940     break;}
2941 case 205:
2942 { yyval.typequal = qual_createExits (); ;
2943     break;}
2944 case 206:
2945 { yyval.typequal = qual_createMayExit (); ;
2946     break;}
2947 case 207:
2948 { yyval.typequal = qual_createTrueExit (); ;
2949     break;}
2950 case 208:
2951 { yyval.typequal = qual_createFalseExit (); ;
2952     break;}
2953 case 209:
2954 { yyval.typequal = qual_createNeverExit (); ;
2955     break;}
2956 case 210:
2957 { yyval.typequal = qual_createOnly (); ;
2958     break;}
2959 case 211:
2960 { yyval.typequal = qual_createShared (); ;
2961     break;}
2962 case 212:
2963 { yyval.typequal = qual_createUnique (); ;
2964     break;}
2965 case 213:
2966 { yyval.typequal = qual_createChecked (); ;
2967     break;}
2968 case 214:
2969 { yyval.typequal = qual_createUnchecked (); ;
2970     break;}
2971 case 215:
2972 { yyval.typequal = qual_createCheckedStrict (); ;
2973     break;}
2974 case 216:
2975 { yyval.typequal = qual_createTrueNull (); ;
2976     break;}
2977 case 217:
2978 { yyval.typequal = qual_createFalseNull (); ;
2979     break;}
2980 case 218:
2981 { yyval.typequal = qual_createRelNull (); ;
2982     break;}
2983 case 219:
2984 { yyval.typequal = qual_createRelDef (); ;
2985     break;}
2986 case 220:
2987 { yyval.typequal = qual_createRefCounted (); ;
2988     break;}
2989 case 221:
2990 { yyval.typequal = qual_createRefs (); ;
2991     break;}
2992 case 222:
2993 { yyval.typequal = qual_createNewRef (); ;
2994     break;}
2995 case 223:
2996 { yyval.typequal = qual_createKillRef (); ;
2997     break;}
2998 case 224:
2999 { yyval.typequal = qual_createNull (); ;
3000     break;}
3001 case 225:
3002 { yyval.typequal = qual_createNotNull (); ;
3003     break;}
3004 case 226:
3005 { yyval.typequal = qual_createReturned (); ;
3006     break;}
3007 case 227:
3008 { yyval.typequal = qual_createExposed (); ;
3009     break;}
3010 case 228:
3011 { yyval.typequal = qual_createPartial (); ;
3012     break;}
3013 case 229:
3014 { yyval.typequal = qual_createNullTerminated () ; ;
3015     break;}
3016 case 230:
3017 { yyval.typequal = qual_createUndef (); ;
3018     break;}
3019 case 231:
3020 { yyval.typequal = qual_createKilled (); ;
3021     break;}
3022 case 232:
3023 { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;
3024     break;}
3025 case 233:
3026 { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;
3027     break;}
3028 case 234:
3029 { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;
3030     break;}
3031 case 235:
3032 { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;
3033     break;}
3034 case 236:
3035 { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;
3036     break;}
3037 case 238:
3038 { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
3039      yyvsp[-1].lcltypespec->pointers = yyvsp[0].pointers; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
3040     break;}
3041 case 239:
3042 { yyval.pointers = pointers_createLt (yyvsp[0].ltok); ;
3043     break;}
3044 case 240:
3045 { yyval.pointers = pointers_extend (yyvsp[-1].pointers, pointers_createLt (yyvsp[0].ltok)); ;
3046     break;}
3047 case 241:
3048 { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
3049     break;}
3050 case 242:
3051 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3052     break;}
3053 case 243:
3054 { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;
3055     break;}
3056 case 244:
3057 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
3058     break;}
3059 case 245:
3060 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;
3061     break;}
3062 case 246:
3063 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;
3064     break;}
3065 case 247:
3066 { yyval.ltok = ltoken_undefined; ;
3067     break;}
3068 case 249:
3069 { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (),  yyvsp[0].structdecl); ;
3070     break;}
3071 case 250:
3072 { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;
3073     break;}
3074 case 251:
3075 { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;
3076     break;}
3077 case 252:
3078 { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (),  yyvsp[0].declare); ;
3079     break;}
3080 case 253:
3081 { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;
3082     break;}
3083 case 254:
3084 { ; ;
3085     break;}
3086 case 255:
3087 { ; ;
3088     break;}
3089 case 256:
3090 { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;
3091     break;}
3092 case 257:
3093 { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;
3094     break;}
3095 case 258:
3096 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3097     break;}
3098 case 259:
3099 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3100     break;}
3101 case 260:
3102 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3103     break;}
3104 case 261:
3105 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
3106     break;}
3107 case 262:
3108 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3109     break;}
3110 case 263:
3111 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3112     break;}
3113 case 264:
3114 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3115     break;}
3116 case 265:
3117 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3118     break;}
3119 case 266:
3120 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3121     break;}
3122 case 267:
3123 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3124     break;}
3125 case 268:
3126 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3127     break;}
3128 case 269:
3129 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3130     break;}
3131 case 270:
3132 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3133     break;}
3134 case 271:
3135 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3136     break;}
3137 case 272:
3138 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3139     break;}
3140 case 273:
3141 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3142     break;}
3143 case 274:
3144 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
3145     break;}
3146 case 275:
3147 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3148     break;}
3149 case 276:
3150 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3151     break;}
3152 case 277:
3153 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3154     break;}
3155 case 278:
3156 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3157     break;}
3158 case 279:
3159 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3160     break;}
3161 case 280:
3162 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
3163     break;}
3164 case 281:
3165 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3166     break;}
3167 case 282:
3168 { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3169     break;}
3170 case 283:
3171 { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
3172     break;}
3173 case 284:
3174 { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;
3175     break;}
3176 case 285:
3177 { yyval.abstDecl = (abstDeclaratorNode)0; ;
3178     break;}
3179 case 286:
3180 { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;
3181     break;}
3182 case 287:
3183 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
3184     break;}
3185 case 288:
3186 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
3187     break;}
3188 case 289:
3189 { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;
3190     break;}
3191 case 290:
3192 { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;
3193     break;}
3194 case 291:
3195 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
3196     break;}
3197 case 292:
3198 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
3199     break;}
3200 case 293:
3201 { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;
3202     break;}
3203 case 294:
3204 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
3205     break;}
3206 case 295:
3207 { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;
3208     break;}
3209 case 296:
3210 { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;
3211     break;}
3212 case 297:
3213 { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
3214     break;}
3215 case 298:
3216 { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3217     break;}
3218 case 299:
3219 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3220     break;}
3221 case 300:
3222 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3223     break;}
3224 case 301:
3225 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM, 
3226                           opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
3227     break;}
3228 case 302:
3229 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3230     break;}
3231 case 303:
3232 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3233     break;}
3234 case 304:
3235 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3236     break;}
3237 case 305:
3238 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3239     break;}
3240 case 306:
3241 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3242     break;}
3243 case 307:
3244 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3245     break;}
3246 case 308:
3247 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
3248     break;}
3249 case 309:
3250 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
3251     break;}
3252 case 310:
3253 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT, 
3254                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3255     break;}
3256 case 311:
3257 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP, 
3258                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3259     break;}
3260 case 312:
3261 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT, 
3262                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3263     break;}
3264 case 313:
3265 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP, 
3266                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
3267     break;}
3268 case 321:
3269 { yyval.count = 0; ;
3270     break;}
3271 case 323:
3272 { yyval.count = 1; ;
3273     break;}
3274 case 324:
3275 { yyval.count = yyvsp[-2].count + 1; ;
3276     break;}
3277 case 327:
3278 { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3279     break;}
3280 case 328:
3281 { yyval.ltokenList = ltokenList_new (); ;
3282     break;}
3283 case 330:
3284 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3285     break;}
3286 case 331:
3287 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
3288     break;}
3289 case 332:
3290 { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;
3291     break;}
3292 case 333:
3293 { yyval.term = checkSort (yyvsp[0].term); ;
3294     break;}
3295 case 334:
3296 { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;
3297     break;}
3298 case 336:
3299 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
3300     break;}
3301 case 338:
3302 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
3303      symtable_exitScope (g_symtab); 
3304    ;
3305     break;}
3306 case 339:
3307 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3308     break;}
3309 case 340:
3310 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
3311     break;}
3312 case 342:
3313 { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;
3314     break;}
3315 case 343:
3316 { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;
3317     break;}
3318 case 347:
3319 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
3320     break;}
3321 case 348:
3322 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
3323     break;}
3324 case 349:
3325 { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;
3326     break;}
3327 case 350:
3328 { yyval.termlist = pushInfixOpPartNode (termNodeList_new (),  yyvsp[-1].ltok, yyvsp[0].term); ;
3329     break;}
3330 case 351:
3331 { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;
3332     break;}
3333 case 353:
3334 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3335     break;}
3336 case 354:
3337 { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3338     break;}
3339 case 355:
3340 { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;
3341     break;}
3342 case 356:
3343 { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;
3344     break;}
3345 case 357:
3346 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
3347     break;}
3348 case 358:
3349 { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
3350     break;}
3351 case 359:
3352 { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3353     break;}
3354 case 361:
3355 { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok); 
3356      yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3357     break;}
3358 case 362:
3359 { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3360     break;}
3361 case 363:
3362 { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (),  yyvsp[-2].ltok); 
3363      yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); 
3364    ;
3365     break;}
3366 case 364:
3367 { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (),  yyvsp[0].ltok); ;
3368     break;}
3369 case 365:
3370 { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3371     break;}
3372 case 366:
3373 { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (),  yyvsp[0].ltok); ;
3374     break;}
3375 case 367:
3376 { yyval.termlist = termNodeList_push (termNodeList_new (),  yyvsp[0].term); ;
3377     break;}
3378 case 368:
3379 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3380     break;}
3381 case 369:
3382 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
3383     break;}
3384 case 370:
3385 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3386     break;}
3387 case 371:
3388 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3389     break;}
3390 case 373:
3391 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
3392     break;}
3393 case 374:
3394 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3395     break;}
3396 case 375:
3397 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
3398     break;}
3399 case 376:
3400 { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (),  yyvsp[0].ltok), 
3401                                 (termNode)0); ;
3402     break;}
3403 case 377:
3404 { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;
3405     break;}
3406 case 378:
3407 { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
3408     break;}
3409 case 379:
3410 { yyval.termlist = termNodeList_push (termNodeList_new (),  yyvsp[0].term); ;
3411     break;}
3412 case 380:
3413 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
3414     break;}
3415 case 386:
3416 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
3417     break;}
3418 case 387:
3419 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
3420     break;}
3421 case 388:
3422 { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;
3423     break;}
3424 case 389:
3425 { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;
3426     break;}
3427 case 390:
3428 { termNodeList x = termNodeList_new (); 
3429      termNodeList_addh (x, yyvsp[-1].term);
3430      yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok); 
3431    ;
3432     break;}
3433 case 391:
3434 { termNodeList x = termNodeList_new ();
3435      termNodeList_addh (x, yyvsp[-3].term);
3436      termNodeList_addh (x, yyvsp[-1].term);
3437      yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok); 
3438    ;
3439     break;}
3440 case 392:
3441 { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
3442     break;}
3443 case 393:
3444 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ;
3445     break;}
3446 case 394:
3447 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ;
3448     break;}
3449 case 395:
3450 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ;
3451     break;}
3452 case 396:
3453 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ;
3454     break;}
3455 case 397:
3456 { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (),  yyvsp[0].quantifier); ;
3457     break;}
3458 case 398:
3459 { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;
3460     break;}
3461 case 399:
3462 { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
3463                    si->kind = SPE_QUANT;
3464                    symtable_enterScope (g_symtab, si); ;
3465     break;}
3466 case 400:
3467 { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;
3468     break;}
3469 case 401:
3470 { yyval.vars = varNodeList_add (varNodeList_new (),  yyvsp[0].var); ;
3471     break;}
3472 case 402:
3473 { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;
3474     break;}
3475 case 403:
3476 { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;
3477     break;}
3478 case 404:
3479 { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;
3480     break;}
3481 }
3482
3483
3484 \f
3485   yyvsp -= yylen;
3486   yyssp -= yylen;
3487 #if YYLSP_NEEDED
3488   yylsp -= yylen;
3489 #endif
3490
3491 #if YYDEBUG
3492   if (yydebug)
3493     {
3494       short *yyssp1 = yyss - 1;
3495       YYFPRINTF (stderr, "state stack now");
3496       while (yyssp1 != yyssp)
3497         YYFPRINTF (stderr, " %d", *++yyssp1);
3498       YYFPRINTF (stderr, "\n");
3499     }
3500 #endif
3501
3502   *++yyvsp = yyval;
3503 #if YYLSP_NEEDED
3504   *++yylsp = yyloc;
3505 #endif
3506
3507   /* Now `shift' the result of the reduction.  Determine what state
3508      that goes to, based on the state we popped back to and the rule
3509      number reduced by.  */
3510
3511   yyn = yyr1[yyn];
3512
3513   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3514   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3515     yystate = yytable[yystate];
3516   else
3517     yystate = yydefgoto[yyn - YYNTBASE];
3518
3519   goto yynewstate;
3520
3521
3522 /*------------------------------------.
3523 | yyerrlab -- here on detecting error |
3524 `------------------------------------*/
3525 yyerrlab:
3526   /* If not already recovering from an error, report this error.  */
3527   if (!yyerrstatus)
3528     {
3529       ++yynerrs;
3530
3531 #ifdef YYERROR_VERBOSE
3532       yyn = yypact[yystate];
3533
3534       if (yyn > YYFLAG && yyn < YYLAST)
3535         {
3536           YYSIZE_T yysize = 0;
3537           char *yymsg;
3538           int yyx, yycount;
3539
3540           yycount = 0;
3541           /* Start YYX at -YYN if negative to avoid negative indexes in
3542              YYCHECK.  */
3543           for (yyx = yyn < 0 ? -yyn : 0;
3544                yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
3545             if (yycheck[yyx + yyn] == yyx)
3546               yysize += yystrlen (yytname[yyx]) + 15, yycount++;
3547           yysize += yystrlen ("parse error, unexpected ") + 1;
3548           yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
3549           yymsg = (char *) YYSTACK_ALLOC (yysize);
3550           if (yymsg != 0)
3551             {
3552               char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
3553               yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
3554
3555               if (yycount < 5)
3556                 {
3557                   yycount = 0;
3558                   for (yyx = yyn < 0 ? -yyn : 0;
3559                        yyx < (int) (sizeof (yytname) / sizeof (char *));
3560                        yyx++)
3561                     if (yycheck[yyx + yyn] == yyx)
3562                       {
3563                         const char *yyq = ! yycount ? ", expecting " : " or ";
3564                         yyp = yystpcpy (yyp, yyq);
3565                         yyp = yystpcpy (yyp, yytname[yyx]);
3566                         yycount++;
3567                       }
3568                 }
3569               yyerror (yymsg);
3570               YYSTACK_FREE (yymsg);
3571             }
3572           else
3573             yyerror ("parse error; also virtual memory exhausted");
3574         }
3575       else
3576 #endif /* defined (YYERROR_VERBOSE) */
3577         yyerror ("parse error");
3578     }
3579   goto yyerrlab1;
3580
3581
3582 /*--------------------------------------------------.
3583 | yyerrlab1 -- error raised explicitly by an action |
3584 `--------------------------------------------------*/
3585 yyerrlab1:
3586   if (yyerrstatus == 3)
3587     {
3588       /* If just tried and failed to reuse lookahead token after an
3589          error, discard it.  */
3590
3591       /* return failure if at end of input */
3592       if (yychar == YYEOF)
3593         YYABORT;
3594       YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
3595                   yychar, yytname[yychar1]));
3596       yychar = YYEMPTY;
3597     }
3598
3599   /* Else will try to reuse lookahead token after shifting the error
3600      token.  */
3601
3602   yyerrstatus = 3;              /* Each real token shifted decrements this */
3603
3604   goto yyerrhandle;
3605
3606
3607 /*-------------------------------------------------------------------.
3608 | yyerrdefault -- current state does not do anything special for the |
3609 | error token.                                                       |
3610 `-------------------------------------------------------------------*/
3611 yyerrdefault:
3612 #if 0
3613   /* This is wrong; only states that explicitly want error tokens
3614      should shift them.  */
3615
3616   /* If its default is to accept any token, ok.  Otherwise pop it.  */
3617   yyn = yydefact[yystate];
3618   if (yyn)
3619     goto yydefault;
3620 #endif
3621
3622
3623 /*---------------------------------------------------------------.
3624 | yyerrpop -- pop the current state because it cannot handle the |
3625 | error token                                                    |
3626 `---------------------------------------------------------------*/
3627 yyerrpop:
3628   if (yyssp == yyss)
3629     YYABORT;
3630   yyvsp--;
3631   yystate = *--yyssp;
3632 #if YYLSP_NEEDED
3633   yylsp--;
3634 #endif
3635
3636 #if YYDEBUG
3637   if (yydebug)
3638     {
3639       short *yyssp1 = yyss - 1;
3640       YYFPRINTF (stderr, "Error: state stack now");
3641       while (yyssp1 != yyssp)
3642         YYFPRINTF (stderr, " %d", *++yyssp1);
3643       YYFPRINTF (stderr, "\n");
3644     }
3645 #endif
3646
3647 /*--------------.
3648 | yyerrhandle.  |
3649 `--------------*/
3650 yyerrhandle:
3651   yyn = yypact[yystate];
3652   if (yyn == YYFLAG)
3653     goto yyerrdefault;
3654
3655   yyn += YYTERROR;
3656   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3657     goto yyerrdefault;
3658
3659   yyn = yytable[yyn];
3660   if (yyn < 0)
3661     {
3662       if (yyn == YYFLAG)
3663         goto yyerrpop;
3664       yyn = -yyn;
3665       goto yyreduce;
3666     }
3667   else if (yyn == 0)
3668     goto yyerrpop;
3669
3670   if (yyn == YYFINAL)
3671     YYACCEPT;
3672
3673   YYDPRINTF ((stderr, "Shifting error token, "));
3674
3675   *++yyvsp = yylval;
3676 #if YYLSP_NEEDED
3677   *++yylsp = yylloc;
3678 #endif
3679
3680   yystate = yyn;
3681   goto yynewstate;
3682
3683
3684 /*-------------------------------------.
3685 | yyacceptlab -- YYACCEPT comes here.  |
3686 `-------------------------------------*/
3687 yyacceptlab:
3688   yyresult = 0;
3689   goto yyreturn;
3690
3691 /*-----------------------------------.
3692 | yyabortlab -- YYABORT comes here.  |
3693 `-----------------------------------*/
3694 yyabortlab:
3695   yyresult = 1;
3696   goto yyreturn;
3697
3698 /*---------------------------------------------.
3699 | yyoverflowab -- parser overflow comes here.  |
3700 `---------------------------------------------*/
3701 yyoverflowlab:
3702   yyerror ("parser stack overflow");
3703   yyresult = 2;
3704   /* Fall through.  */
3705
3706 yyreturn:
3707 #ifndef yyoverflow
3708   if (yyss != yyssa)
3709     YYSTACK_FREE (yyss);
3710 #endif
3711   return yyresult;
3712 }
3713
3714
3715 # include "bison.reset"
3716
3717 /*
3718 ** yytext is set in lex scanner 
3719 ** extern YYSTYPE yylval;  
3720 ** yylval is defined by code generated by bison 
3721 */
3722
3723 void ylerror (char *s) 
3724 {
3725   /* 
3726   ** This resetting of the left context is very important when multiple
3727   ** files are to be parsed.  We do not want failures to propagate.
3728   ** Lex/Yacc does not reset the flags when the parsing goes bad.  
3729   ** BEGIN 0;        
3730   **/
3731
3732   /*@-mustfree@*/
3733   lclfatalerror (yllval.ltok,
3734                  message ("%s: Token code: %s, Token String: %s", 
3735                           cstring_fromChars (s), 
3736                           ltoken_unparseCodeName (yllval.ltok), 
3737                           ltoken_getRawString (yllval.ltok)));
3738   /*@=mustfree@*/
3739 }
3740
3741 static void yyprint (FILE *f, int t, YYSTYPE value) 
3742 {
3743   fprintf (f, " type: %d (%s)", t, 
3744            cstring_toCharsSafe (ltoken_getRawString (value.ltok)));
3745 }
3746
3747
3748
3749
3750
3751
3752
3753 /*
3754 ** Resets all flags in bison.head
3755 */
3756
3757
3758 /*@=allmacros@*/
3759 /*@=boolint@*/
3760 /*@=charint@*/
3761 /*@=macroparams@*/
3762 /*@=macroundef@*/
3763 /*@=unreachable@*/
3764 /*@=macrospec@*/
3765 /*@=varuse@*/
3766 /*@=ignorequals@*/
3767 /*@=macrostmt@*/
3768 /*@=noeffect@*/
3769 /*@=shadow@*/
3770 /*@=exitarg@*/
3771 /*@=macroredef@*/
3772 /*@=uniondef@*/
3773 /*@=compdef@*/
3774 /*@=matchfields@*/
3775 /*@=exportlocal@*/
3776 /*@=evalorderuncon@*/
3777 /*@=exportheader@*/
3778 /*@=typeuse@*/
3779 /*@=redecl@*/
3780 /*@=redef@*/
3781 /*@=noparams@*/
3782 /*@=ansireserved@*/
3783 /*@=fielduse@*/
3784 /*@=ifblock@*/
3785 /*@=elseifcomplete@*/
3786 /*@=whileblock@*/
3787 /*@=forblock@*/
3788 /*@=branchstate@*/
3789 /*@=readonlytrans@*/
3790 /*@=namechecks@*/
3791 /*@=usedef@*/
3792 /*@=systemunrecog@*/
3793 /*@=dependenttrans@*/
3794 /*@=unqualifiedtrans@*/
3795 /*@=declundef@*/
3796
3797
3798 /*drl added 11/27/2001*/
3799 /*@=bounds@*/
3800
3801 /*drl added 12/11/2002*/
3802 /*@=type@*/
This page took 0.338505 seconds and 3 git commands to generate.