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