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