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