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