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