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