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