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