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