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