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