]> andersk Git - splint.git/blob - src/llgrammar.c.der
6a5166446a0510206d24a7d32259498d33aad8f4
[splint.git] / src / llgrammar.c.der
1 /*
2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER:  Change bison.reset too.
4 */
5
6 /*@-allmacros@*/
7 /*@+boolint@*/
8 /*@+charint@*/
9 /*@-macroparams@*/
10 /*@-macroundef@*/
11 /*@-unreachable@*/
12 /*@-macrospec@*/
13 /*@-varuse@*/
14 /*@+ignorequals@*/
15 /*@-macrostmt@*/
16 /*@-noeffect@*/
17 /*@-shadow@*/
18 /*@-exitarg@*/
19 /*@-macroredef@*/
20 /*@-uniondef@*/
21 /*@-compdef@*/
22 /*@-matchfields@*/
23 /*@-exportlocal@*/
24 /*@-evalorderuncon@*/
25 /*@-exportheader@*/
26 /*@-typeuse@*/
27 /*@-redecl@*/
28 /*@-redef@*/
29 /*@-noparams@*/
30 /*@-ansireserved@*/
31 /*@-fielduse@*/
32 /*@-ifblock@*/
33 /*@-elseifcomplete@*/
34 /*@-whileblock@*/
35 /*@-forblock@*/
36 /*@-branchstate@*/
37 /*@-readonlytrans@*/
38 /*@-namechecks@*/
39 /*@-usedef@*/
40 /*@-systemunrecog@*/
41 /*@-dependenttrans@*/
42 /*@-unqualifiedtrans@*/
43 /*@-nullassign@*/
44 /*@-nullpass@*/
45 /*@-nullptrarith*/
46 /*@-usereleased@*/
47 /*@-declundef@*/
48
49 /*drl added 11/27/2001*/
50 /*@-bounds@*/
51
52 /*drl added 12/11/2002*/
53 /*@-type@*/
54
55 /* < end of bison.head > */
56
57 /* A Bison parser, made by GNU Bison 1.875a.  */
58
59 /* Skeleton parser for Yacc-like parsing with Bison,
60    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
61
62    This program is free software; you can redistribute it and/or modify
63    it under the terms of the GNU General Public License as published by
64    the Free Software Foundation; either version 2, or (at your option)
65    any later version.
66
67    This program is distributed in the hope that it will be useful,
68    but WITHOUT ANY WARRANTY; without even the implied warranty of
69    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
70    GNU General Public License for more details.
71
72    You should have received a copy of the GNU General Public License
73    along with this program; if not, write to the Free Software
74    Foundation, Inc., 59 Temple Place - Suite 330,
75    Boston, MA 02111-1307, USA.  */
76
77 /* As a special exception, when this file is copied by Bison into a
78    Bison output file, you may use that output file without restriction.
79    This special exception was added by the Free Software Foundation
80    in version 1.24 of Bison.  */
81
82 /* Written by Richard Stallman by simplifying the original so called
83    ``semantic'' parser.  */
84
85 /* All symbols defined below should begin with yy or YY, to avoid
86    infringing on user name space.  This should be done even for local
87    variables, as they might otherwise be expanded by user macros.
88    There are some unavoidable exceptions within include files to
89    define necessary library symbols; they are noted "INFRINGES ON
90    USER NAME SPACE" below.  */
91
92 /* Identify Bison output.  */
93 #define YYBISON 1
94
95 /* Skeleton name.  */
96 #define YYSKELETON_NAME "yacc.c"
97
98 /* Pure parsers.  */
99 #define YYPURE 0
100
101 /* Using locations.  */
102 #define YYLSP_NEEDED 0
103
104 /* If NAME_PREFIX is specified substitute the variables and functions
105    names.  */
106 #define yyparse ylparse
107 #define yylex   yllex
108 #define yyerror ylerror
109 #define yylval  yllval
110 #define yychar  ylchar
111 #define yydebug yldebug
112 #define yynerrs ylnerrs
113
114
115 /* Tokens.  */
116 #ifndef YYTOKENTYPE
117 # define YYTOKENTYPE
118    /* Put the tokens into the symbol table, so that GDB and other debuggers
119       know about them.  */
120    enum yytokentype {
121      simpleOp = 258,
122      PREFIX_OP = 259,
123      POSTFIX_OP = 260,
124      LLT_MULOP = 261,
125      LLT_SEMI = 262,
126      LLT_VERTICALBAR = 263,
127      ITERATION_OP = 264,
128      selectSym = 265,
129      LLT_LBRACKET = 266,
130      LLT_LPAR = 267,
131      LLT_IF_THEN_ELSE = 268,
132      logicalOp = 269,
133      eqSepSym = 270,
134      equationSym = 271,
135      commentSym = 272,
136      LLT_WHITESPACE = 273,
137      LLT_EOL = 274,
138      LLT_TYPEDEF_NAME = 275,
139      quantifierSym = 276,
140      openSym = 277,
141      closeSym = 278,
142      sepSym = 279,
143      simpleId = 280,
144      mapSym = 281,
145      markerSym = 282,
146      preSym = 283,
147      postSym = 284,
148      anySym = 285,
149      LLT_COLON = 286,
150      LLT_COMMA = 287,
151      LLT_EQUALS = 288,
152      LLT_LBRACE = 289,
153      LLT_RBRACE = 290,
154      LLT_RBRACKET = 291,
155      LLT_RPAR = 292,
156      LLT_QUOTE = 293,
157      eqOp = 294,
158      LLT_CCHAR = 295,
159      LLT_CFLOAT = 296,
160      LLT_CINTEGER = 297,
161      LLT_LCSTRING = 298,
162      LLT_ALL = 299,
163      LLT_ANYTHING = 300,
164      LLT_BE = 301,
165      LLT_BODY = 302,
166      LLT_CLAIMS = 303,
167      LLT_CHECKS = 304,
168      LLT_CONSTANT = 305,
169      LLT_ELSE = 306,
170      LLT_ENSURES = 307,
171      LLT_FOR = 308,
172      LLT_FRESH = 309,
173      LLT_IF = 310,
174      LLT_IMMUTABLE = 311,
175      LLT_IMPORTS = 312,
176      LLT_CONSTRAINT = 313,
177      LLT_ISSUB = 314,
178      LLT_LET = 315,
179      LLT_MODIFIES = 316,
180      LLT_MUTABLE = 317,
181      LLT_NOTHING = 318,
182      LLT_INTERNAL = 319,
183      LLT_FILESYS = 320,
184      LLT_OBJ = 321,
185      LLT_OUT = 322,
186      LLT_SEF = 323,
187      LLT_ONLY = 324,
188      LLT_PARTIAL = 325,
189      LLT_OWNED = 326,
190      LLT_DEPENDENT = 327,
191      LLT_KEEP = 328,
192      LLT_KEPT = 329,
193      LLT_TEMP = 330,
194      LLT_SHARED = 331,
195      LLT_UNIQUE = 332,
196      LLT_UNUSED = 333,
197      LLT_EXITS = 334,
198      LLT_MAYEXIT = 335,
199      LLT_NEVEREXIT = 336,
200      LLT_TRUEEXIT = 337,
201      LLT_FALSEEXIT = 338,
202      LLT_UNDEF = 339,
203      LLT_KILLED = 340,
204      LLT_CHECKMOD = 341,
205      LLT_CHECKED = 342,
206      LLT_UNCHECKED = 343,
207      LLT_CHECKEDSTRICT = 344,
208      LLT_TRUENULL = 345,
209      LLT_FALSENULL = 346,
210      LLT_LNULL = 347,
211      LLT_LNOTNULL = 348,
212      LLT_RETURNED = 349,
213      LLT_OBSERVER = 350,
214      LLT_EXPOSED = 351,
215      LLT_REFCOUNTED = 352,
216      LLT_REFS = 353,
217      LLT_RELNULL = 354,
218      LLT_RELDEF = 355,
219      LLT_KILLREF = 356,
220      LLT_NULLTERMINATED = 357,
221      LLT_TEMPREF = 358,
222      LLT_NEWREF = 359,
223      LLT_PRIVATE = 360,
224      LLT_REQUIRES = 361,
225      LLT_RESULT = 362,
226      LLT_SIZEOF = 363,
227      LLT_SPEC = 364,
228      LLT_TAGGEDUNION = 365,
229      LLT_THEN = 366,
230      LLT_TYPE = 367,
231      LLT_TYPEDEF = 368,
232      LLT_UNCHANGED = 369,
233      LLT_USES = 370,
234      LLT_CHAR = 371,
235      LLT_CONST = 372,
236      LLT_DOUBLE = 373,
237      LLT_ENUM = 374,
238      LLT_FLOAT = 375,
239      LLT_INT = 376,
240      LLT_ITER = 377,
241      LLT_YIELD = 378,
242      LLT_LONG = 379,
243      LLT_SHORT = 380,
244      LLT_SIGNED = 381,
245      LLT_UNKNOWN = 382,
246      LLT_STRUCT = 383,
247      LLT_TELIPSIS = 384,
248      LLT_UNION = 385,
249      LLT_UNSIGNED = 386,
250      LLT_VOID = 387,
251      LLT_VOLATILE = 388,
252      LLT_PRINTFLIKE = 389,
253      LLT_SCANFLIKE = 390,
254      LLT_MESSAGELIKE = 391
255    };
256 #endif
257 #define simpleOp 258
258 #define PREFIX_OP 259
259 #define POSTFIX_OP 260
260 #define LLT_MULOP 261
261 #define LLT_SEMI 262
262 #define LLT_VERTICALBAR 263
263 #define ITERATION_OP 264
264 #define selectSym 265
265 #define LLT_LBRACKET 266
266 #define LLT_LPAR 267
267 #define LLT_IF_THEN_ELSE 268
268 #define logicalOp 269
269 #define eqSepSym 270
270 #define equationSym 271
271 #define commentSym 272
272 #define LLT_WHITESPACE 273
273 #define LLT_EOL 274
274 #define LLT_TYPEDEF_NAME 275
275 #define quantifierSym 276
276 #define openSym 277
277 #define closeSym 278
278 #define sepSym 279
279 #define simpleId 280
280 #define mapSym 281
281 #define markerSym 282
282 #define preSym 283
283 #define postSym 284
284 #define anySym 285
285 #define LLT_COLON 286
286 #define LLT_COMMA 287
287 #define LLT_EQUALS 288
288 #define LLT_LBRACE 289
289 #define LLT_RBRACE 290
290 #define LLT_RBRACKET 291
291 #define LLT_RPAR 292
292 #define LLT_QUOTE 293
293 #define eqOp 294
294 #define LLT_CCHAR 295
295 #define LLT_CFLOAT 296
296 #define LLT_CINTEGER 297
297 #define LLT_LCSTRING 298
298 #define LLT_ALL 299
299 #define LLT_ANYTHING 300
300 #define LLT_BE 301
301 #define LLT_BODY 302
302 #define LLT_CLAIMS 303
303 #define LLT_CHECKS 304
304 #define LLT_CONSTANT 305
305 #define LLT_ELSE 306
306 #define LLT_ENSURES 307
307 #define LLT_FOR 308
308 #define LLT_FRESH 309
309 #define LLT_IF 310
310 #define LLT_IMMUTABLE 311
311 #define LLT_IMPORTS 312
312 #define LLT_CONSTRAINT 313
313 #define LLT_ISSUB 314
314 #define LLT_LET 315
315 #define LLT_MODIFIES 316
316 #define LLT_MUTABLE 317
317 #define LLT_NOTHING 318
318 #define LLT_INTERNAL 319
319 #define LLT_FILESYS 320
320 #define LLT_OBJ 321
321 #define LLT_OUT 322
322 #define LLT_SEF 323
323 #define LLT_ONLY 324
324 #define LLT_PARTIAL 325
325 #define LLT_OWNED 326
326 #define LLT_DEPENDENT 327
327 #define LLT_KEEP 328
328 #define LLT_KEPT 329
329 #define LLT_TEMP 330
330 #define LLT_SHARED 331
331 #define LLT_UNIQUE 332
332 #define LLT_UNUSED 333
333 #define LLT_EXITS 334
334 #define LLT_MAYEXIT 335
335 #define LLT_NEVEREXIT 336
336 #define LLT_TRUEEXIT 337
337 #define LLT_FALSEEXIT 338
338 #define LLT_UNDEF 339
339 #define LLT_KILLED 340
340 #define LLT_CHECKMOD 341
341 #define LLT_CHECKED 342
342 #define LLT_UNCHECKED 343
343 #define LLT_CHECKEDSTRICT 344
344 #define LLT_TRUENULL 345
345 #define LLT_FALSENULL 346
346 #define LLT_LNULL 347
347 #define LLT_LNOTNULL 348
348 #define LLT_RETURNED 349
349 #define LLT_OBSERVER 350
350 #define LLT_EXPOSED 351
351 #define LLT_REFCOUNTED 352
352 #define LLT_REFS 353
353 #define LLT_RELNULL 354
354 #define LLT_RELDEF 355
355 #define LLT_KILLREF 356
356 #define LLT_NULLTERMINATED 357
357 #define LLT_TEMPREF 358
358 #define LLT_NEWREF 359
359 #define LLT_PRIVATE 360
360 #define LLT_REQUIRES 361
361 #define LLT_RESULT 362
362 #define LLT_SIZEOF 363
363 #define LLT_SPEC 364
364 #define LLT_TAGGEDUNION 365
365 #define LLT_THEN 366
366 #define LLT_TYPE 367
367 #define LLT_TYPEDEF 368
368 #define LLT_UNCHANGED 369
369 #define LLT_USES 370
370 #define LLT_CHAR 371
371 #define LLT_CONST 372
372 #define LLT_DOUBLE 373
373 #define LLT_ENUM 374
374 #define LLT_FLOAT 375
375 #define LLT_INT 376
376 #define LLT_ITER 377
377 #define LLT_YIELD 378
378 #define LLT_LONG 379
379 #define LLT_SHORT 380
380 #define LLT_SIGNED 381
381 #define LLT_UNKNOWN 382
382 #define LLT_STRUCT 383
383 #define LLT_TELIPSIS 384
384 #define LLT_UNION 385
385 #define LLT_UNSIGNED 386
386 #define LLT_VOID 387
387 #define LLT_VOLATILE 388
388 #define LLT_PRINTFLIKE 389
389 #define LLT_SCANFLIKE 390
390 #define LLT_MESSAGELIKE 391
391
392
393
394
395 /* Copy the first part of user declarations.  */
396
397
398
399 # include "splintMacros.nf"
400 # include "basic.h"
401 # include "lclscan.h"
402 # include "checking.h"
403 # include "lslparse.h" 
404 # include "lh.h"
405 # include "usymtab_interface.h"
406
407 /*@-noparams@*/
408 static /*@unused@*/ void yyprint ();
409 /*@=noparams@*/
410
411 /*@-redecl@*/
412 void ylerror (char *) /*@modifies *g_warningstream@*/ ;
413 /*@=redecl@*/
414
415 bool g_inTypeDef = FALSE;
416
417 /*@constant int YYDEBUG;@*/
418 # define YYDEBUG 1
419
420 /*@notfunction@*/
421 # define YYPRINT(file, type, value) yyprint (file, type, value)
422
423 /*
424 ** This is necessary, or else when the bison-generated code #include's malloc.h,
425 ** there will be a parse error.
426 **
427 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
428 ** in bison-generated files under Win32.
429 */
430
431 # ifdef WIN32
432 # undef malloc
433 # undef calloc
434 # undef realloc
435 # endif
436
437
438
439 /* Enabling traces.  */
440 #ifndef YYDEBUG
441 # define YYDEBUG 1
442 #endif
443
444 /* Enabling verbose error messages.  */
445 #ifdef YYERROR_VERBOSE
446 # undef YYERROR_VERBOSE
447 # define YYERROR_VERBOSE 1
448 #else
449 # define YYERROR_VERBOSE 0
450 #endif
451
452 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
453
454 typedef union YYSTYPE {
455   ltoken ltok;  /* a leaf is also an ltoken */
456   qual typequal;
457   unsigned int count;
458   /*@only@*/ ltokenList ltokenList;
459   /*@only@*/ abstDeclaratorNode abstDecl; 
460   /*@only@*/ declaratorNode declare;
461   /*@only@*/ declaratorNodeList declarelist;
462   /*@only@*/ typeExpr typeexpr;
463   /*@only@*/ arrayQualNode array;
464   /*@only@*/ quantifierNode quantifier;
465   /*@only@*/ quantifierNodeList quantifiers;
466   /*@only@*/ varNode var;
467   /*@only@*/ varNodeList vars;
468   /*@only@*/ storeRefNode storeref;
469   /*@only@*/ storeRefNodeList storereflist;
470   /*@only@*/ termNode term;
471   /*@only@*/ termNodeList termlist;
472   /*@only@*/ programNode program; 
473   /*@only@*/ stmtNode stmt;
474   /*@only@*/ claimNode claim;
475   /*@only@*/ typeNode type;
476   /*@only@*/ iterNode iter;
477   /*@only@*/ fcnNode fcn;
478   /*@only@*/ fcnNodeList fcns;
479   /*@only@*/ letDeclNode letdecl;
480   /*@only@*/ letDeclNodeList letdecls;
481   /*@only@*/ lclPredicateNode lclpredicate;
482   /*@only@*/ modifyNode modify;
483   /*@only@*/ paramNode param;
484   /*@only@*/ paramNodeList paramlist;
485   /*@only@*/ declaratorInvNodeList declaratorinvs;      
486   /*@only@*/ declaratorInvNode declaratorinv;   
487   /*@only@*/ abstBodyNode abstbody;
488   /*@only@*/ abstractNode abstract;
489   /*@only@*/ exposedNode exposed;
490   /*@only@*/ pointers pointers;
491   /*    taggedUnionNode taggedunion; */
492   /*@only@*/ globalList globals;
493   /*@only@*/ constDeclarationNode constdeclaration;
494   /*@only@*/ varDeclarationNode vardeclaration;
495   /*@only@*/ varDeclarationNodeList vardeclarationlist;
496   /*@only@*/ initDeclNodeList initdecls;
497   /*@only@*/ initDeclNode initdecl;
498   /*@only@*/ stDeclNodeList structdecls;
499   /*@only@*/ stDeclNode structdecl;
500   /*@only@*/ strOrUnionNode structorunion;
501   /*@only@*/ enumSpecNode enumspec; 
502   /*@only@*/ lclTypeSpecNode lcltypespec;
503   /*@only@*/ typeNameNode typname;
504   /*@only@*/ opFormNode opform;
505   /*@only@*/ sigNode signature;
506   /*@only@*/ nameNode name;
507   /*@only@*/ typeNameNodeList namelist;
508   /*@only@*/ replaceNode replace;       
509   /*@only@*/ replaceNodeList replacelist;
510   /*@only@*/ renamingNode renaming;
511   /*@only@*/ traitRefNode traitref;
512   /*@only@*/ traitRefNodeList traitreflist;
513   /*@only@*/ importNode import;
514   /*@only@*/ importNodeList importlist;
515   /*@only@*/ interfaceNode iface;
516   /*@only@*/ interfaceNodeList interfacelist; 
517   /*@only@*/ CTypesNode ctypes;
518   /*@-redef@*/
519 } YYSTYPE;
520 /* Line 191 of yacc.c.  */
521
522 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
523 # define YYSTYPE_IS_DECLARED 1
524 # define YYSTYPE_IS_TRIVIAL 1
525 #endif
526
527
528
529 /* Copy the second part of user declarations.  */
530
531
532 /* Line 214 of yacc.c.  */
533
534
535 #if ! defined (yyoverflow) || YYERROR_VERBOSE
536
537 /* The parser invokes alloca or malloc; define the necessary symbols.  */
538
539 # if YYSTACK_USE_ALLOCA
540 #  define YYSTACK_ALLOC alloca
541 # else
542 #  ifndef YYSTACK_USE_ALLOCA
543 #   if defined (alloca) || defined (_ALLOCA_H)
544 #    define YYSTACK_ALLOC alloca
545 #   else
546 #    ifdef __GNUC__
547 #     define YYSTACK_ALLOC __builtin_alloca
548 #    endif
549 #   endif
550 #  endif
551 # endif
552
553 # ifdef YYSTACK_ALLOC
554    /* Pacify GCC's `empty if-body' warning. */
555 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
556 # else
557 #  if defined (__STDC__) || defined (__cplusplus)
558 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
559 #   define YYSIZE_T size_t
560 #  endif
561 #  define YYSTACK_ALLOC malloc
562 #  define YYSTACK_FREE free
563 # endif
564 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
565
566
567 #if (! defined (yyoverflow) \
568      && (! defined (__cplusplus) \
569          || (YYSTYPE_IS_TRIVIAL)))
570
571 /* A type that is properly aligned for any stack member.  */
572 union yyalloc
573 {
574   short yyss;
575   YYSTYPE yyvs;
576   };
577
578 /* The size of the maximum gap between one aligned stack and the next.  */
579 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
580
581 /* The size of an array large to enough to hold all stacks, each with
582    N elements.  */
583 # define YYSTACK_BYTES(N) \
584      ((N) * (sizeof (short) + sizeof (YYSTYPE))                         \
585       + YYSTACK_GAP_MAXIMUM)
586
587 /* Copy COUNT objects from FROM to TO.  The source and destination do
588    not overlap.  */
589 # ifndef YYCOPY
590 #  if 1 < __GNUC__
591 #   define YYCOPY(To, From, Count) \
592       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
593 #  else
594 #   define YYCOPY(To, From, Count)              \
595       do                                        \
596         {                                       \
597           register YYSIZE_T yyi;                \
598           for (yyi = 0; yyi < (Count); yyi++)   \
599             (To)[yyi] = (From)[yyi];            \
600         }                                       \
601       while (0)
602 #  endif
603 # endif
604
605 /* Relocate STACK from its old location to the new one.  The
606    local variables YYSIZE and YYSTACKSIZE give the old and new number of
607    elements in the stack, and YYPTR gives the new location of the
608    stack.  Advance YYPTR to a properly aligned location for the next
609    stack.  */
610 # define YYSTACK_RELOCATE(Stack)                                        \
611     do                                                                  \
612       {                                                                 \
613         YYSIZE_T yynewbytes;                                            \
614         YYCOPY (&yyptr->Stack, Stack, yysize);                          \
615         Stack = &yyptr->Stack;                                          \
616         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
617         yyptr += yynewbytes / sizeof (*yyptr);                          \
618       }                                                                 \
619     while (0)
620
621 #endif
622
623 #if defined (__STDC__) || defined (__cplusplus)
624    typedef signed char yysigned_char;
625 #else
626    typedef short yysigned_char;
627 #endif
628
629 /* YYFINAL -- State number of the termination state. */
630 #define YYFINAL  3
631 /* YYLAST -- Last index in YYTABLE.  */
632 #define YYLAST   3314
633
634 /* YYNTOKENS -- Number of terminals. */
635 #define YYNTOKENS  137
636 /* YYNNTS -- Number of nonterminals. */
637 #define YYNNTS  155
638 /* YYNRULES -- Number of rules. */
639 #define YYNRULES  414
640 /* YYNRULES -- Number of states. */
641 #define YYNSTATES  684
642
643 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
644 #define YYUNDEFTOK  2
645 #define YYMAXUTOK   391
646
647 #define YYTRANSLATE(YYX)                                                \
648   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
649
650 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
651 static const unsigned char yytranslate[] =
652 {
653        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
654        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
655        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
656        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
657        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
658        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
659        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
660        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
661        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
662        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
663        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
664        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
665        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
666        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
667        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
668        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
669        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
670        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
671        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
672        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
673        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
674        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
675        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
676        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
677        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
678        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
679        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
680       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
681       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
682       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
683       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
684       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
685       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
686       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
687       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
688       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
689      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
690      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
691      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
692      135,   136
693 };
694
695 #if YYDEBUG
696 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
697    YYRHS.  */
698 static const unsigned short yyprhs[] =
699 {
700        0,     0,     3,     4,     8,     9,    12,    14,    16,    17,
701       20,    23,    24,    27,    29,    31,    33,    37,    41,    43,
702       45,    47,    49,    51,    53,    60,    61,    63,    65,    69,
703       72,    74,    75,    79,    81,    83,    85,    87,    92,    96,
704      101,   106,   108,   110,   112,   114,   116,   117,   131,   132,
705      147,   148,   162,   167,   168,   169,   176,   177,   178,   186,
706      187,   188,   196,   197,   198,   205,   206,   207,   214,   217,
707      220,   222,   226,   228,   232,   234,   236,   240,   242,   244,
708      248,   250,   255,   259,   266,   268,   272,   274,   276,   280,
709      282,   286,   288,   292,   296,   300,   305,   307,   309,   311,
710      313,   315,   319,   321,   325,   326,   329,   333,   336,   339,
711      340,   343,   348,   349,   353,   355,   359,   365,   369,   371,
712      372,   376,   377,   381,   382,   386,   390,   394,   396,   400,
713      402,   404,   407,   409,   411,   412,   416,   417,   421,   422,
714      424,   426,   428,   432,   434,   438,   439,   444,   450,   452,
715      456,   459,   463,   467,   472,   476,   482,   489,   491,   495,
716      497,   499,   502,   505,   509,   513,   517,   522,   524,   528,
717      533,   537,   538,   541,   542,   544,   545,   552,   554,   558,
718      559,   563,   564,   568,   570,   572,   574,   576,   578,   580,
719      582,   584,   586,   588,   590,   593,   595,   597,   599,   601,
720      603,   605,   607,   609,   611,   613,   615,   617,   619,   621,
721      623,   625,   627,   629,   631,   633,   635,   637,   639,   641,
722      643,   645,   647,   649,   651,   653,   655,   657,   659,   661,
723      663,   665,   667,   669,   671,   673,   675,   678,   684,   686,
724      689,   691,   694,   695,   702,   703,   710,   713,   716,   717,
725      719,   721,   724,   728,   730,   734,   735,   737,   744,   747,
726      749,   753,   755,   757,   759,   763,   766,   769,   773,   778,
727      780,   784,   787,   790,   794,   799,   801,   804,   807,   811,
728      816,   819,   822,   825,   828,   832,   834,   835,   837,   841,
729      844,   846,   848,   851,   855,   859,   864,   867,   871,   878,
730      880,   883,   886,   890,   894,   899,   904,   910,   914,   919,
731      924,   930,   933,   936,   940,   944,   946,   948,   950,   952,
732      954,   956,   958,   959,   961,   963,   967,   969,   971,   976,
733      977,   979,   981,   985,   987,   989,   996,   998,  1002,  1004,
734     1009,  1013,  1017,  1019,  1022,  1025,  1027,  1029,  1031,  1034,
735     1036,  1039,  1042,  1046,  1048,  1050,  1053,  1056,  1060,  1062,
736     1065,  1069,  1071,  1077,  1081,  1086,  1089,  1093,  1096,  1098,
737     1102,  1106,  1108,  1113,  1115,  1118,  1122,  1126,  1130,  1135,
738     1139,  1141,  1145,  1147,  1149,  1151,  1153,  1155,  1157,  1162,
739     1167,  1172,  1177,  1184,  1189,  1191,  1193,  1195,  1197,  1199,
740     1202,  1203,  1207,  1209,  1213,  1217,  1222,  1224,  1226,  1228,
741     1230,  1232,  1234,  1236,  1238
742 };
743
744 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
745 static const short yyrhs[] =
746 {
747      138,     0,    -1,    -1,   140,   139,   142,    -1,    -1,   140,
748      141,    -1,   145,    -1,   146,    -1,    -1,   147,   143,    -1,
749      152,   143,    -1,    -1,   143,   144,    -1,   147,    -1,   152,
750       -1,   146,    -1,    57,   176,     7,    -1,   115,   180,     7,
751       -1,   155,    -1,   156,    -1,   157,    -1,   159,    -1,   162,
752       -1,   148,    -1,   122,   286,    12,   149,    37,     7,    -1,
753       -1,   150,    -1,   151,    -1,   150,    32,   151,    -1,   123,
754      245,    -1,   245,    -1,    -1,   109,   153,   154,    -1,   155,
755       -1,   156,    -1,   157,    -1,   159,    -1,    50,   228,   190,
756        7,    -1,   228,   190,     7,    -1,   117,   228,   190,     7,
757       -1,   133,   228,   190,     7,    -1,   164,    -1,   173,    -1,
758      134,    -1,   135,    -1,   136,    -1,    -1,   228,   241,   192,
759      160,    34,   194,   196,   200,   201,   202,   205,   206,    35,
760       -1,    -1,   158,   228,   241,   192,   161,    34,   194,   196,
761      200,   201,   202,   205,   206,    35,    -1,    -1,    48,   288,
762       12,   207,    37,   192,   163,    34,   196,   201,   210,   205,
763       35,    -1,    48,   285,   288,     7,    -1,    -1,    -1,    62,
764      165,   112,    20,   166,   215,    -1,    -1,    -1,    62,   167,
765       97,   112,    20,   168,   215,    -1,    -1,    -1,    97,    62,
766      169,   112,    20,   170,   215,    -1,    -1,    -1,    56,   171,
767      112,    20,   172,   215,    -1,    -1,    -1,   113,   228,   174,
768      220,   175,     7,    -1,   231,     7,    -1,   239,     7,    -1,
769      177,    -1,   176,    32,   177,    -1,   179,    -1,     3,   179,
770        3,    -1,    43,    -1,   179,    -1,   178,    32,   179,    -1,
771      284,    -1,   181,    -1,   180,    32,   181,    -1,   290,    -1,
772      290,    12,   183,    37,    -1,    12,   182,    37,    -1,    12,
773      182,    37,    12,   183,    37,    -1,   290,    -1,   182,    32,
774      290,    -1,   185,    -1,   184,    -1,   184,    32,   185,    -1,
775      246,    -1,   184,    32,   246,    -1,   186,    -1,   185,    32,
776      186,    -1,   246,    53,   224,    -1,   246,    53,   187,    -1,
777      246,    53,   187,   257,    -1,   291,    -1,   250,    -1,   189,
778       -1,   261,    -1,   191,    -1,   190,    32,   191,    -1,   241,
779       -1,   241,    33,   188,    -1,    -1,   192,   193,    -1,   228,
780      190,     7,    -1,    64,     7,    -1,    65,     7,    -1,    -1,
781      194,   195,    -1,   105,   228,   190,     7,    -1,    -1,    60,
782      197,     7,    -1,   198,    -1,   197,    32,   198,    -1,   286,
783       31,   199,    46,   261,    -1,   286,    46,   261,    -1,   228,
784       -1,    -1,    49,   260,     7,    -1,    -1,   106,   260,     7,
785       -1,    -1,    61,    63,     7,    -1,    61,    45,     7,    -1,
786       61,   203,     7,    -1,   204,    -1,   203,    32,   204,    -1,
787      261,    -1,   229,    -1,    66,   229,    -1,    64,    -1,    65,
788       -1,    -1,    52,   260,     7,    -1,    -1,    48,   260,     7,
789       -1,    -1,   208,    -1,   209,    -1,   129,    -1,   209,    32,
790      129,    -1,   245,    -1,   209,    32,   245,    -1,    -1,    47,
791       34,   211,    35,    -1,    47,    34,   211,     7,    35,    -1,
792      212,    -1,    12,   211,    37,    -1,   211,     6,    -1,   211,
793        8,   211,    -1,   211,     7,   211,    -1,   285,    12,   213,
794       37,    -1,   285,    12,    37,    -1,   286,    33,   285,    12,
795       37,    -1,   286,    33,   285,    12,   213,    37,    -1,   214,
796       -1,   213,    32,   214,    -1,   278,    -1,   286,    -1,     3,
797      214,    -1,   214,     3,    -1,   214,     3,   214,    -1,    12,
798      214,    37,    -1,   285,    12,    37,    -1,   285,    12,   213,
799       37,    -1,     7,    -1,    34,   216,    35,    -1,    34,   178,
800       35,     7,    -1,    34,    35,     7,    -1,    -1,   216,   159,
801       -1,    -1,   218,    -1,    -1,    58,   219,   280,    12,   260,
802       37,    -1,   221,    -1,   220,    32,   221,    -1,    -1,   241,
803      222,   223,    -1,    -1,    34,   217,    35,    -1,   132,    -1,
804      116,    -1,   118,    -1,   120,    -1,   121,    -1,   124,    -1,
805      125,    -1,   126,    -1,   131,    -1,   127,    -1,   224,    -1,
806      225,   224,    -1,    20,    -1,   225,    -1,    67,    -1,    78,
807       -1,    68,    -1,    69,    -1,    71,    -1,    72,    -1,    73,
808       -1,    74,    -1,    95,    -1,    79,    -1,    80,    -1,    82,
809       -1,    83,    -1,    81,    -1,    75,    -1,    76,    -1,    77,
810       -1,    87,    -1,    88,    -1,    89,    -1,    90,    -1,    91,
811       -1,    99,    -1,   100,    -1,    97,    -1,    98,    -1,   104,
812       -1,   101,    -1,    92,    -1,    93,    -1,    94,    -1,    96,
813       -1,    70,    -1,   102,    -1,    84,    -1,    85,    -1,   226,
814       -1,   231,    -1,   239,    -1,   227,   228,    -1,     8,   229,
815       31,   229,     8,    -1,   228,    -1,   228,   230,    -1,     6,
816       -1,   230,     6,    -1,    -1,   128,   234,   232,    34,   235,
817       35,    -1,    -1,   130,   234,   233,    34,   235,    35,    -1,
818      128,   287,    -1,   130,   287,    -1,    -1,   287,    -1,   236,
819       -1,   235,   236,    -1,   228,   237,     7,    -1,   241,    -1,
820      237,    32,   241,    -1,    -1,    32,    -1,   119,   234,    34,
821      240,   238,    35,    -1,   119,   287,    -1,    25,    -1,   240,
822       32,    25,    -1,   243,    -1,   242,    -1,   286,    -1,    12,
823      242,    37,    -1,     6,   242,    -1,   242,   249,    -1,   242,
824       12,    37,    -1,   242,    12,   208,    37,    -1,    20,    -1,
825       12,   243,    37,    -1,     6,   243,    -1,   243,   249,    -1,
826      243,    12,    37,    -1,   243,    12,   208,    37,    -1,    20,
827       -1,     6,   244,    -1,   244,   249,    -1,   244,    12,    37,
828       -1,   244,    12,   208,    37,    -1,   228,   244,    -1,   228,
829      242,    -1,   228,   247,    -1,   228,   247,    -1,    66,   228,
830      247,    -1,   250,    -1,    -1,   248,    -1,    12,   248,    37,
831       -1,     6,   248,    -1,     6,    -1,   249,    -1,   248,   249,
832       -1,   248,    12,    37,    -1,    12,   208,    37,    -1,   248,
833       12,   208,    37,    -1,    11,    36,    -1,    11,   189,    36,
834       -1,    55,    27,   111,    27,    51,    27,    -1,   253,    -1,
835       27,   253,    -1,   253,    27,    -1,    27,   253,    27,    -1,
836      251,   254,   252,    -1,    27,   251,   254,   252,    -1,   251,
837      254,   252,    27,    -1,    27,   251,   254,   252,    27,    -1,
838       11,   254,    36,    -1,    11,   254,    36,    27,    -1,    27,
839       11,   254,    36,    -1,    27,    11,   254,    36,    27,    -1,
840       10,   284,    -1,    26,   284,    -1,    27,    10,   284,    -1,
841       27,    26,   284,    -1,    22,    -1,    34,    -1,    23,    -1,
842       35,    -1,   265,    -1,    14,    -1,    39,    -1,    -1,   255,
843       -1,    27,    -1,   255,   256,    27,    -1,    32,    -1,    24,
844       -1,    31,   258,    26,   289,    -1,    -1,   259,    -1,   289,
845       -1,   259,    32,   289,    -1,   261,    -1,   262,    -1,    55,
846      262,   111,   262,    51,   262,    -1,   263,    -1,   262,    14,
847      262,    -1,   264,    -1,   279,    12,   260,    37,    -1,   264,
848       39,   264,    -1,   264,    33,   264,    -1,   266,    -1,   269,
849      267,    -1,   269,   268,    -1,     3,    -1,     6,    -1,   269,
850       -1,   265,   266,    -1,   265,    -1,   267,   265,    -1,   265,
851      269,    -1,   268,   265,   269,    -1,   274,    -1,   270,    -1,
852      270,   274,    -1,   274,   270,    -1,   274,   270,   274,    -1,
853      271,    -1,   271,   274,    -1,   272,    31,   289,    -1,   272,
854       -1,    11,   273,    36,    31,   289,    -1,    11,   273,    36,
855       -1,    11,    36,    31,   289,    -1,    11,    36,    -1,   251,
856      273,   252,    -1,   251,   252,    -1,   261,    -1,   273,   256,
857      261,    -1,    12,   262,    37,    -1,   286,    -1,   291,    12,
858      275,    37,    -1,   277,    -1,   274,   276,    -1,   274,    10,
859      284,    -1,   274,    26,   284,    -1,   274,    11,    36,    -1,
860      274,    11,   275,    36,    -1,   274,    31,   289,    -1,   262,
861       -1,   275,    32,   262,    -1,    28,    -1,    29,    -1,    30,
862       -1,    38,    -1,   278,    -1,   107,    -1,    54,    12,   275,
863       37,    -1,   114,    12,    44,    37,    -1,   114,    12,   203,
864       37,    -1,   108,    12,   261,    37,    -1,    59,    12,   261,
865       32,   261,    37,    -1,   108,    12,   228,    37,    -1,    42,
866       -1,    43,    -1,    40,    -1,    41,    -1,   280,    -1,   279,
867      280,    -1,    -1,    21,   281,   282,    -1,   283,    -1,   282,
868       32,   283,    -1,   286,    31,   199,    -1,   286,    31,    66,
869      199,    -1,    25,    -1,    20,    -1,    25,    -1,    25,    -1,
870      284,    -1,   284,    -1,   284,    -1,   284,    -1,   284,    -1
871 };
872
873 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
874 static const unsigned short yyrline[] =
875 {
876        0,   382,   382,   382,   387,   388,   392,   393,   397,   398,
877      399,   403,   404,   408,   409,   410,   414,   421,   426,   428,
878      430,   432,   434,   436,   441,   446,   447,   451,   453,   458,
879      459,   463,   463,   468,   470,   472,   474,   479,   484,   486,
880      488,   493,   494,   498,   499,   500,   504,   504,   512,   512,
881      526,   525,   530,   535,   535,   535,   537,   538,   537,   540,
882      541,   540,   543,   543,   543,   548,   549,   548,   551,   553,
883      570,   572,   577,   578,   580,   584,   585,   589,   594,   596,
884      601,   603,   605,   607,   612,   613,   617,   619,   621,   625,
885      627,   631,   633,   637,   638,   639,   644,   645,   648,   651,
886      655,   657,   662,   663,   668,   669,   674,   675,   676,   680,
887      681,   685,   690,   691,   695,   696,   700,   701,   704,   708,
888      709,   713,   714,   718,   719,   720,   721,   725,   726,   730,
889      731,   732,   733,   734,   738,   739,   743,   744,   748,   749,
890      753,   754,   755,   759,   760,   764,   765,   766,   770,   771,
891      774,   779,   785,   794,   796,   798,   800,   805,   806,   810,
892      811,   812,   813,   814,   815,   816,   818,   823,   824,   825,
893      826,   830,   831,   835,   836,   840,   840,   850,   851,   856,
894      856,   861,   862,   866,   867,   868,   869,   870,   871,   872,
895      873,   874,   875,   884,   885,   891,   893,   900,   901,   902,
896      903,   904,   905,   906,   907,   908,   909,   910,   911,   912,
897      913,   914,   915,   916,   917,   918,   919,   920,   921,   922,
898      923,   924,   925,   926,   927,   928,   929,   930,   931,   932,
899      933,   934,   935,   939,   941,   943,   945,   947,   957,   958,
900      964,   965,   970,   969,   974,   973,   977,   979,   984,   985,
901      989,   990,   996,  1000,  1002,  1007,  1008,  1012,  1014,  1019,
902     1020,  1031,  1032,  1036,  1037,  1038,  1039,  1040,  1041,  1045,
903     1046,  1047,  1048,  1049,  1050,  1060,  1061,  1062,  1063,  1064,
904     1071,  1072,  1073,  1084,  1085,  1086,  1092,  1093,  1097,  1098,
905     1099,  1100,  1101,  1102,  1103,  1104,  1108,  1109,  1113,  1115,
906     1117,  1119,  1121,  1124,  1126,  1128,  1130,  1132,  1134,  1142,
907     1144,  1146,  1149,  1152,  1155,  1161,  1162,  1166,  1167,  1171,
908     1172,  1173,  1177,  1178,  1182,  1183,  1187,  1188,  1192,  1196,
909     1197,  1201,  1202,  1206,  1210,  1217,  1219,  1220,  1224,  1225,
910     1230,  1232,  1237,  1238,  1239,  1243,  1244,  1248,  1249,  1253,
911     1254,  1258,  1259,  1263,  1264,  1265,  1266,  1267,  1268,  1269,
912     1273,  1274,  1278,  1281,  1283,  1287,  1292,  1293,  1297,  1298,
913     1302,  1304,  1306,  1308,  1309,  1311,  1313,  1315,  1318,  1320,
914     1325,  1326,  1330,  1331,  1332,  1333,  1337,  1338,  1339,  1340,
915     1341,  1342,  1347,  1353,  1364,  1365,  1366,  1367,  1371,  1373,
916     1378,  1378,  1386,  1387,  1391,  1392,  1396,  1397,  1401,  1402,
917     1403,  1404,  1405,  1406,  1407
918 };
919 #endif
920
921 #if YYDEBUG || YYERROR_VERBOSE
922 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
923    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
924 static const char *const yytname[] =
925 {
926   "$end", "error", "$undefined", "simpleOp", "PREFIX_OP", "POSTFIX_OP", 
927   "LLT_MULOP", "LLT_SEMI", "LLT_VERTICALBAR", "ITERATION_OP", "selectSym", 
928   "LLT_LBRACKET", "LLT_LPAR", "LLT_IF_THEN_ELSE", "logicalOp", "eqSepSym", 
929   "equationSym", "commentSym", "LLT_WHITESPACE", "LLT_EOL", 
930   "LLT_TYPEDEF_NAME", "quantifierSym", "openSym", "closeSym", "sepSym", 
931   "simpleId", "mapSym", "markerSym", "preSym", "postSym", "anySym", 
932   "LLT_COLON", "LLT_COMMA", "LLT_EQUALS", "LLT_LBRACE", "LLT_RBRACE", 
933   "LLT_RBRACKET", "LLT_RPAR", "LLT_QUOTE", "eqOp", "LLT_CCHAR", 
934   "LLT_CFLOAT", "LLT_CINTEGER", "LLT_LCSTRING", "LLT_ALL", "LLT_ANYTHING", 
935   "LLT_BE", "LLT_BODY", "LLT_CLAIMS", "LLT_CHECKS", "LLT_CONSTANT", 
936   "LLT_ELSE", "LLT_ENSURES", "LLT_FOR", "LLT_FRESH", "LLT_IF", 
937   "LLT_IMMUTABLE", "LLT_IMPORTS", "LLT_CONSTRAINT", "LLT_ISSUB", 
938   "LLT_LET", "LLT_MODIFIES", "LLT_MUTABLE", "LLT_NOTHING", "LLT_INTERNAL", 
939   "LLT_FILESYS", "LLT_OBJ", "LLT_OUT", "LLT_SEF", "LLT_ONLY", 
940   "LLT_PARTIAL", "LLT_OWNED", "LLT_DEPENDENT", "LLT_KEEP", "LLT_KEPT", 
941   "LLT_TEMP", "LLT_SHARED", "LLT_UNIQUE", "LLT_UNUSED", "LLT_EXITS", 
942   "LLT_MAYEXIT", "LLT_NEVEREXIT", "LLT_TRUEEXIT", "LLT_FALSEEXIT", 
943   "LLT_UNDEF", "LLT_KILLED", "LLT_CHECKMOD", "LLT_CHECKED", 
944   "LLT_UNCHECKED", "LLT_CHECKEDSTRICT", "LLT_TRUENULL", "LLT_FALSENULL", 
945   "LLT_LNULL", "LLT_LNOTNULL", "LLT_RETURNED", "LLT_OBSERVER", 
946   "LLT_EXPOSED", "LLT_REFCOUNTED", "LLT_REFS", "LLT_RELNULL", 
947   "LLT_RELDEF", "LLT_KILLREF", "LLT_NULLTERMINATED", "LLT_TEMPREF", 
948   "LLT_NEWREF", "LLT_PRIVATE", "LLT_REQUIRES", "LLT_RESULT", "LLT_SIZEOF", 
949   "LLT_SPEC", "LLT_TAGGEDUNION", "LLT_THEN", "LLT_TYPE", "LLT_TYPEDEF", 
950   "LLT_UNCHANGED", "LLT_USES", "LLT_CHAR", "LLT_CONST", "LLT_DOUBLE", 
951   "LLT_ENUM", "LLT_FLOAT", "LLT_INT", "LLT_ITER", "LLT_YIELD", "LLT_LONG", 
952   "LLT_SHORT", "LLT_SIGNED", "LLT_UNKNOWN", "LLT_STRUCT", "LLT_TELIPSIS", 
953   "LLT_UNION", "LLT_UNSIGNED", "LLT_VOID", "LLT_VOLATILE", 
954   "LLT_PRINTFLIKE", "LLT_SCANFLIKE", "LLT_MESSAGELIKE", "$accept", 
955   "interface", "@1", "externals", "external", "optDeclarations", 
956   "declarations", "declaration", "imports", "uses", "export", "iter", 
957   "iterParamList", "realIterParamList", "iterParam", "private", "@2", 
958   "private2", "constDeclaration", "varDeclaration", "type", "special", 
959   "fcn", "@3", "@4", "claim", "@5", "abstract", "@6", "@7", "@8", "@9", 
960   "@10", "@11", "@12", "@13", "exposed", "@14", "@15", "importNameList", 
961   "importName", "interfaceNameList", "interfaceName", "traitRefNodeList", 
962   "traitRef", "traitIdList", "renaming", "nameList", "replaceNodeList", 
963   "replace", "name", "initializer", "constLclExpr", "initDecls", 
964   "initDecl", "globals", "globalDecl", "privateInits", "privateInit", 
965   "optLetDecl", "beDeclList", "beDecl", "sortSpec", "optChecks", 
966   "optRequire", "optModify", "storeRefList", "storeRef", "optEnsure", 
967   "optClaim", "optParamList", "realParamList", "paramList", "optBody", 
968   "callExpr", "stmt", "valueList", "value", "abstBody", "fcns", 
969   "optTypeInv", "typeInv", "@16", "declaratorInvs", "declaratorInv", 
970   "@17", "optExposedBody", "CType", "CTypes", "typeSpecifier", 
971   "specialQualifier", "lclTypeSpec", "lclType", "pointers", 
972   "structOrUnionSpec", "@18", "@19", "optTagId", "structDecls", 
973   "structDecl", "declaratorList", "optCOMMA", "enumSpec", 
974   "enumeratorList", "declarator", "notype_decl", "after_type_decl", 
975   "parameter_decl", "param", "typeName", "optAbstDeclarator", 
976   "abstDeclarator", "arrayQual", "opForm", "open", "close", "anyOp", 
977   "middle", "placeList", "separator", "signature", "domain", "sortList", 
978   "lclPredicate", "term", "term0", "equalityTerm", "simpleOpTerm", 
979   "simpleOp2", "prefixOpTerm", "postfixOps", "infixOpPart", "secondary", 
980   "bracketed", "sqBracketed", "matched", "args", "primary", "termList", 
981   "stateFcn", "lclPrimary", "cLiteral", "quantifiers", "quantifier", 
982   "@20", "quantifiedList", "quantified", "simpleIdOrTypedefName", "fcnId", 
983   "varId", "tagId", "claimId", "sortId", "traitId", "opId", 0
984 };
985 #endif
986
987 # ifdef YYPRINT
988 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
989    token YYLEX-NUM.  */
990 static const unsigned short yytoknum[] =
991 {
992        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
993      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
994      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
995      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
996      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
997      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
998      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
999      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1000      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1001      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1002      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1003      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1004      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1005      385,   386,   387,   388,   389,   390,   391
1006 };
1007 # endif
1008
1009 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1010 static const unsigned short yyr1[] =
1011 {
1012        0,   137,   139,   138,   140,   140,   141,   141,   142,   142,
1013      142,   143,   143,   144,   144,   144,   145,   146,   147,   147,
1014      147,   147,   147,   147,   148,   149,   149,   150,   150,   151,
1015      151,   153,   152,   154,   154,   154,   154,   155,   156,   156,
1016      156,   157,   157,   158,   158,   158,   160,   159,   161,   159,
1017      163,   162,   162,   165,   166,   164,   167,   168,   164,   169,
1018      170,   164,   171,   172,   164,   174,   175,   173,   173,   173,
1019      176,   176,   177,   177,   177,   178,   178,   179,   180,   180,
1020      181,   181,   181,   181,   182,   182,   183,   183,   183,   184,
1021      184,   185,   185,   186,   186,   186,   187,   187,   188,   189,
1022      190,   190,   191,   191,   192,   192,   193,   193,   193,   194,
1023      194,   195,   196,   196,   197,   197,   198,   198,   199,   200,
1024      200,   201,   201,   202,   202,   202,   202,   203,   203,   204,
1025      204,   204,   204,   204,   205,   205,   206,   206,   207,   207,
1026      208,   208,   208,   209,   209,   210,   210,   210,   211,   211,
1027      211,   211,   211,   212,   212,   212,   212,   213,   213,   214,
1028      214,   214,   214,   214,   214,   214,   214,   215,   215,   215,
1029      215,   216,   216,   217,   217,   219,   218,   220,   220,   222,
1030      221,   223,   223,   224,   224,   224,   224,   224,   224,   224,
1031      224,   224,   224,   225,   225,   226,   226,   227,   227,   227,
1032      227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1033      227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1034      227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1035      227,   227,   227,   228,   228,   228,   228,   228,   229,   229,
1036      230,   230,   232,   231,   233,   231,   231,   231,   234,   234,
1037      235,   235,   236,   237,   237,   238,   238,   239,   239,   240,
1038      240,   241,   241,   242,   242,   242,   242,   242,   242,   243,
1039      243,   243,   243,   243,   243,   244,   244,   244,   244,   244,
1040      245,   245,   245,   246,   246,   246,   247,   247,   248,   248,
1041      248,   248,   248,   248,   248,   248,   249,   249,   250,   250,
1042      250,   250,   250,   250,   250,   250,   250,   250,   250,   250,
1043      250,   250,   250,   250,   250,   251,   251,   252,   252,   253,
1044      253,   253,   254,   254,   255,   255,   256,   256,   257,   258,
1045      258,   259,   259,   260,   261,   262,   262,   262,   263,   263,
1046      263,   263,   264,   264,   264,   265,   265,   266,   266,   267,
1047      267,   268,   268,   269,   269,   269,   269,   269,   269,   269,
1048      270,   270,   271,   271,   271,   271,   272,   272,   273,   273,
1049      274,   274,   274,   274,   274,   274,   274,   274,   274,   274,
1050      275,   275,   276,   276,   276,   276,   277,   277,   277,   277,
1051      277,   277,   277,   277,   278,   278,   278,   278,   279,   279,
1052      281,   280,   282,   282,   283,   283,   284,   284,   285,   286,
1053      287,   288,   289,   290,   291
1054 };
1055
1056 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1057 static const unsigned char yyr2[] =
1058 {
1059        0,     2,     0,     3,     0,     2,     1,     1,     0,     2,
1060        2,     0,     2,     1,     1,     1,     3,     3,     1,     1,
1061        1,     1,     1,     1,     6,     0,     1,     1,     3,     2,
1062        1,     0,     3,     1,     1,     1,     1,     4,     3,     4,
1063        4,     1,     1,     1,     1,     1,     0,    13,     0,    14,
1064        0,    13,     4,     0,     0,     6,     0,     0,     7,     0,
1065        0,     7,     0,     0,     6,     0,     0,     6,     2,     2,
1066        1,     3,     1,     3,     1,     1,     3,     1,     1,     3,
1067        1,     4,     3,     6,     1,     3,     1,     1,     3,     1,
1068        3,     1,     3,     3,     3,     4,     1,     1,     1,     1,
1069        1,     3,     1,     3,     0,     2,     3,     2,     2,     0,
1070        2,     4,     0,     3,     1,     3,     5,     3,     1,     0,
1071        3,     0,     3,     0,     3,     3,     3,     1,     3,     1,
1072        1,     2,     1,     1,     0,     3,     0,     3,     0,     1,
1073        1,     1,     3,     1,     3,     0,     4,     5,     1,     3,
1074        2,     3,     3,     4,     3,     5,     6,     1,     3,     1,
1075        1,     2,     2,     3,     3,     3,     4,     1,     3,     4,
1076        3,     0,     2,     0,     1,     0,     6,     1,     3,     0,
1077        3,     0,     3,     1,     1,     1,     1,     1,     1,     1,
1078        1,     1,     1,     1,     2,     1,     1,     1,     1,     1,
1079        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1080        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1081        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1082        1,     1,     1,     1,     1,     1,     2,     5,     1,     2,
1083        1,     2,     0,     6,     0,     6,     2,     2,     0,     1,
1084        1,     2,     3,     1,     3,     0,     1,     6,     2,     1,
1085        3,     1,     1,     1,     3,     2,     2,     3,     4,     1,
1086        3,     2,     2,     3,     4,     1,     2,     2,     3,     4,
1087        2,     2,     2,     2,     3,     1,     0,     1,     3,     2,
1088        1,     1,     2,     3,     3,     4,     2,     3,     6,     1,
1089        2,     2,     3,     3,     4,     4,     5,     3,     4,     4,
1090        5,     2,     2,     3,     3,     1,     1,     1,     1,     1,
1091        1,     1,     0,     1,     1,     3,     1,     1,     4,     0,
1092        1,     1,     3,     1,     1,     6,     1,     3,     1,     4,
1093        3,     3,     1,     2,     2,     1,     1,     1,     2,     1,
1094        2,     2,     3,     1,     1,     2,     2,     3,     1,     2,
1095        3,     1,     5,     3,     4,     2,     3,     2,     1,     3,
1096        3,     1,     4,     1,     2,     3,     3,     3,     4,     3,
1097        1,     3,     1,     1,     1,     1,     1,     1,     4,     4,
1098        4,     4,     6,     4,     1,     1,     1,     1,     1,     2,
1099        0,     3,     1,     3,     3,     4,     1,     1,     1,     1,
1100        1,     1,     1,     1,     1
1101 };
1102
1103 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1104    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1105    means the default is an error.  */
1106 static const unsigned short yydefact[] =
1107 {
1108        4,     0,     2,     1,     0,     0,     8,     5,     6,     7,
1109        0,   407,   406,    74,     0,    70,    72,    77,     0,     0,
1110       78,   413,    80,     0,   195,     0,     0,    62,    53,   197,
1111      199,   200,   229,   201,   202,   203,   204,   211,   212,   213,
1112      198,   206,   207,   210,   208,   209,   231,   232,   214,   215,
1113      216,   217,   218,   225,   226,   227,   205,   228,   221,   222,
1114      219,   220,   224,   230,   223,    31,     0,   184,     0,   185,
1115      248,   186,   187,     0,   188,   189,   190,   192,   248,   248,
1116      191,   183,     0,    43,    44,    45,     3,    11,    23,    11,
1117       18,    19,    20,     0,    21,    22,    41,    42,   193,   196,
1118      233,     0,     0,   234,   235,     0,    16,     0,     0,    84,
1119       17,     0,     0,   221,   238,     0,   234,   235,   408,   411,
1120        0,     0,     0,     0,     0,     0,    59,     0,    65,     0,
1121        0,   410,   258,   409,     0,   242,   246,   244,   247,     0,
1122        9,    10,     0,   194,   236,     0,     0,   269,     0,   100,
1123      104,   262,   261,   263,    68,    69,    73,    71,     0,    82,
1124       79,   345,   346,     0,   322,   320,   315,     0,     0,   316,
1125      321,     0,     0,     0,    87,    86,    91,   286,    89,   285,
1126      322,   299,   319,   240,   239,     0,     0,   138,     0,   102,
1127        0,     0,     0,     0,    32,    33,    34,    35,    36,     0,
1128        0,     0,    25,     0,     0,     0,    12,    15,    13,    14,
1129      104,   265,   271,     0,     0,    38,     0,     0,    46,     0,
1130        0,   266,     0,   272,    85,     0,   311,   324,     0,   323,
1131      312,     0,   322,     0,   322,   300,     0,   286,    81,     0,
1132        0,   290,     0,   283,   287,   291,     0,     0,   301,   241,
1133        0,    52,   141,     0,   139,   140,   286,   143,    37,    63,
1134       54,     0,     0,    66,   177,   179,    39,   259,   255,     0,
1135        0,    26,    27,    30,     0,     0,    40,    48,   264,   270,
1136      101,     0,     0,   400,   409,   396,   397,   394,   395,     0,
1137        0,     0,   387,     0,     0,   103,    98,     0,    99,   334,
1138      336,   338,     0,   342,   347,   354,   358,   361,   353,   373,
1139      386,     0,   398,   414,   371,     0,     0,     0,     0,   105,
1140        0,   296,     0,   267,     0,   273,     0,     0,   307,   327,
1141      326,     0,   313,     0,   314,     0,   302,     0,   284,    88,
1142       90,    92,     0,   289,     0,     0,     0,   292,    94,    93,
1143       97,    96,   317,   318,   303,   237,   104,     0,   290,     0,
1144      275,   281,   280,   282,     0,     0,    57,    60,     0,     0,
1145      181,   256,     0,    29,     0,     0,     0,     0,   250,     0,
1146        0,   365,   368,     0,     0,     0,     0,     0,     0,     0,
1147        0,   367,     0,     0,     0,     0,   348,   347,   349,   343,
1148      344,   355,   359,     0,     0,     0,     0,   382,   383,   384,
1149        0,   385,   356,   374,     0,   399,     0,   107,   108,   109,
1150        0,   297,   268,   274,    83,   308,   325,   309,   304,     0,
1151      294,   288,   293,     0,   329,    95,   305,    50,   142,   144,
1152      276,   290,     0,   277,   167,   171,    64,    55,     0,     0,
1153      178,    67,   173,   180,   260,   257,    24,    28,     0,   253,
1154      243,   251,   245,   109,     0,   363,     0,   370,   401,   402,
1155        0,   380,     0,     0,     0,   195,     0,     0,     0,   132,
1156      133,     0,     0,   127,   130,   129,   366,   337,   341,   340,
1157      351,   350,     0,   412,   360,   375,   377,     0,   376,   379,
1158      357,     0,   333,     0,   112,   106,   310,   306,     0,   295,
1159        0,   330,   331,     0,   278,     0,     0,     0,    75,     0,
1160       58,    61,   175,     0,   174,   252,     0,   112,   364,     0,
1161      369,     0,     0,     0,   388,     0,     0,   393,   391,   389,
1162      131,     0,   390,   352,   378,   339,   372,     0,     0,   110,
1163      119,   298,     0,     0,   112,   279,   170,     0,     0,   168,
1164      172,     0,     0,   182,   254,   119,   362,   403,     0,   404,
1165      118,   381,     0,     0,   128,     0,   114,     0,     0,     0,
1166      121,   328,   332,   121,    76,   169,   104,     0,   121,   405,
1167      335,   392,   113,     0,     0,     0,     0,     0,     0,   123,
1168      145,     0,   123,   115,     0,   117,   111,   120,     0,     0,
1169      134,     0,   134,     0,   134,     0,   122,     0,     0,     0,
1170        0,   136,     0,     0,   176,   136,   116,   125,   124,   126,
1171        0,     0,     0,     0,   409,     0,   148,     0,     0,    51,
1172        0,   135,     0,    47,     0,   150,     0,     0,   146,     0,
1173        0,    49,   137,     0,   149,   147,   152,   151,     0,     0,
1174      154,     0,   157,   159,     0,   160,   408,     0,   161,     0,
1175        0,   153,   162,     0,     0,   164,   158,   163,   165,     0,
1176      155,     0,   166,   156
1177 };
1178
1179 /* YYDEFGOTO[NTERM-NUM]. */
1180 static const short yydefgoto[] =
1181 {
1182       -1,     1,     6,     2,     7,    86,   140,   206,     8,   207,
1183      208,    88,   270,   271,   272,   209,   127,   194,    90,    91,
1184       92,    93,    94,   318,   380,    95,   513,    96,   124,   365,
1185      125,   448,   193,   449,   123,   364,    97,   199,   369,    14,
1186       15,   517,    16,    19,    20,   108,   173,   174,   175,   176,
1187      348,   295,   296,   148,   149,   218,   319,   504,   549,   550,
1188      575,   576,   569,   580,   599,   610,   482,   483,   621,   632,
1189      253,   344,   255,   612,   656,   636,   661,   662,   446,   519,
1190      523,   524,   562,   263,   264,   370,   453,    98,    99,   100,
1191      101,   256,   484,   184,   116,   203,   204,   130,   377,   378,
1192      458,   372,   117,   268,   189,   151,   152,   362,   257,   178,
1193      243,   244,   245,   179,   297,   354,   181,   228,   229,   466,
1194      435,   510,   511,   501,   502,   299,   300,   301,   302,   303,
1195      399,   400,   304,   305,   306,   307,   383,   308,   472,   413,
1196      309,   310,   311,   312,   385,   468,   469,   313,   664,   314,
1197      132,   121,   494,    22,   315
1198 };
1199
1200 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1201    STATE-NUM.  */
1202 #define YYPACT_NINF -607
1203 static const short yypact[] =
1204 {
1205     -607,    50,   -29,  -607,   198,    89,  1350,  -607,  -607,  -607,
1206      208,  -607,  -607,  -607,    65,  -607,  -607,  -607,   208,   110,
1207     -607,  -607,    45,  2903,  -607,   276,  2903,  -607,    18,  -607,
1208     -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,
1209     -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,
1210     -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,    85,  -607,
1211     -607,  -607,  -607,  -607,  -607,  -607,  2903,  -607,  2903,  -607,
1212      208,  -607,  -607,   133,  -607,  -607,  -607,  -607,   208,   208,
1213     -607,  -607,  2903,  -607,  -607,  -607,  -607,  -607,  -607,  -607,
1214     -607,  -607,  -607,  2903,  -607,  -607,  -607,  -607,  -607,   399,
1215     -607,  2903,   336,   155,   192,   185,  -607,   198,   268,  -607,
1216     -607,    89,  1152,  -607,   213,   199,  -607,  -607,   297,  -607,
1217      208,   305,   336,   240,   242,   273,  -607,  1445,  -607,   336,
1218      333,  -607,   359,  -607,   369,  -607,   359,  -607,   359,   336,
1219     1247,  1247,   336,  -607,  -607,   336,   336,  -607,   139,  -607,
1220      145,   416,   422,  -607,  -607,  -607,  -607,  -607,   208,   388,
1221     -607,  -607,  -607,   208,   360,  -607,  -607,   208,   471,  -607,
1222     -607,   376,  2903,   398,   393,   406,  -607,   347,   387,  -607,
1223      360,   445,  -607,  -607,   456,  2903,   476,  2319,   143,   457,
1224      474,   484,   397,   404,  -607,  -607,  -607,  -607,  -607,   336,
1225      150,   481,  2414,   477,   488,   166,  -607,  -607,  -607,  -607,
1226     -607,   416,   422,   239,   279,  -607,   336,  3150,  1836,   272,
1227     1933,  -607,  2030,  -607,  -607,  1152,  -607,  -607,   482,   224,
1228     -607,   208,   360,   208,   360,   501,   418,   347,  -607,  1152,
1229     1152,   347,  1741,  -607,   433,  -607,   453,   118,  -607,  -607,
1230      524,  -607,  -607,   496,  -607,   503,   435,  -607,  -607,  -607,
1231     -607,   517,   519,   508,  -607,  -607,  -607,  -607,   509,  2903,
1232      505,   512,  -607,  -607,  2903,  2903,  -607,  1836,  -607,  -607,
1233     -607,  3059,  3150,  -607,   297,  -607,  -607,  -607,  -607,   533,
1234     3150,   534,  -607,   535,   536,  -607,  -607,  3033,  -607,   537,
1235     -607,   304,  3200,  -607,   329,  1155,  1155,   521,   654,  -607,
1236     -607,   188,  -607,  -607,  -607,   538,   547,   548,   522,  -607,
1237      336,  -607,   523,  -607,   527,  -607,   528,   529,   540,  -607,
1238     -607,   541,  -607,   525,  -607,   118,  -607,   543,  -607,   406,
1239      387,  -607,   387,   433,   539,   292,  2127,  -607,   544,  -607,
1240     -607,  -607,  -607,  -607,   545,  -607,  -607,  2509,   435,  1644,
1241     -607,   416,   446,  -607,    35,    35,  -607,  -607,   336,   553,
1242      549,   556,   551,  -607,   580,  2414,   336,  2611,  -607,  2713,
1243      554,   559,  -607,   381,    44,   133,  3150,    -1,  3150,  1022,
1244      762,  -607,   375,  3150,  3200,  3200,  -607,  -607,   335,   329,
1245      329,   236,   236,   208,   208,  3109,   208,  -607,  -607,  -607,
1246      208,  -607,  1155,  -607,  3150,  -607,  3150,  -607,  -607,  -607,
1247      189,  -607,  -607,  -607,  -607,  -607,  -607,   564,   565,   550,
1248     -607,  -607,  -607,   557,   208,  -607,  -607,  1836,  -607,  -607,
1249      446,   459,  2224,  -607,  -607,   182,  -607,  -607,    35,    35,
1250     -607,  -607,   542,  -607,  -607,  -607,  -607,  -607,   197,  -607,
1251     -607,  -607,  -607,  -607,   208,   567,  3150,  -607,   563,  -607,
1252      568,   537,   293,  3150,   570,   584,   566,   573,   574,  -607,
1253     -607,  2903,   312,  -607,  -607,  -607,  -607,  -607,  -607,  -607,
1254     -607,  -607,   335,  -607,  -607,  -607,  -607,   394,  -607,  -607,
1255      236,   575,  -607,   331,   -15,  -607,  -607,  -607,   578,  -607,
1256      588,   583,  -607,   582,  -607,   586,   610,   247,  -607,  1547,
1257     -607,  -607,  -607,   585,  -607,  -607,   336,   -15,  -607,   208,
1258     -607,   133,  2808,  3150,  -607,    25,  3150,  -607,  -607,  -607,
1259     -607,   892,  -607,  -607,  -607,  -607,  -607,   133,  2903,  -607,
1260      577,  -607,   208,   208,   569,  -607,  -607,   208,   617,  -607,
1261     -607,   336,   606,  -607,  -607,   577,  -607,  -607,  2903,  -607,
1262     -607,   537,  3150,   594,  -607,   270,  -607,    77,   336,  3150,
1263      530,  -607,  -607,   530,  -607,  -607,  -607,   625,   530,  -607,
1264      537,  -607,  -607,   133,  2903,  3150,   278,   634,  3150,   581,
1265      592,  3150,   581,  -607,   599,  -607,  -607,  -607,   639,   632,
1266      595,   614,   595,   612,   595,  3150,  -607,   643,   644,   288,
1267     3150,   607,   181,   621,  -607,   607,  -607,  -607,  -607,  -607,
1268      651,  3150,   624,   181,   648,   126,  -607,   649,   629,  -607,
1269      628,  -607,   660,  -607,    48,  -607,   299,   181,  -607,   212,
1270      645,  -607,  -607,   181,  -607,  -607,   661,  -607,   202,   202,
1271     -607,   351,   665,  -607,   659,  -607,  -607,   666,  -607,    43,
1272      202,  -607,   246,   379,   411,  -607,   665,  -607,  -607,   358,
1273     -607,   365,  -607,  -607
1274 };
1275
1276 /* YYPGOTO[NTERM-NUM].  */
1277 static const short yypgoto[] =
1278 {
1279     -607,  -607,  -607,  -607,  -607,  -607,   590,  -607,  -607,   679,
1280      683,  -607,  -607,  -607,   315,   687,  -607,  -607,   591,   608,
1281      611,  -607,  -123,  -607,  -607,  -607,  -607,  -607,  -607,  -607,
1282     -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,  -607,
1283      587,  -607,    -8,  -607,   626,  -607,   516,  -607,   504,   502,
1284     -607,  -607,   526,  -110,   531,  -190,  -607,   281,  -607,  -483,
1285     -607,   156,  -520,   190,  -159,   152,   157,   220,  -353,   142,
1286     -607,  -182,  -607,  -607,  -554,  -607,  -185,  -606,  -322,  -607,
1287     -607,  -607,  -607,  -607,   401,  -607,  -607,   -91,  -607,  -607,
1288     -607,    -5,   -20,  -607,    29,  -607,  -607,   417,   497,    -6,
1289     -607,  -607,    54,  -607,   -95,  -119,   353,   413,  -178,   261,
1290     -137,  -210,   -22,   532,   -14,  -248,   609,  -121,  -607,   546,
1291     -607,  -607,  -607,  -528,  -203,  -265,  -607,   108,  -101,   478,
1292     -607,  -607,  -280,   468,  -607,  -607,   489,  -269,  -285,  -607,
1293     -607,  -308,  -607,  -305,  -607,  -607,   248,     5,   -25,   -40,
1294      434,   668,  -369,    16,   552
1295 };
1296
1297 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1298    positive, shift that token.  If negative, reduce the rule which
1299    number is the opposite.  If zero, do what YYDEFACT says.
1300    If YYTABLE_NINF, syntax error.  */
1301 #define YYTABLE_NINF -409
1302 static const short yytable[] =
1303 {
1304      120,   102,   105,   115,   198,   254,   415,   150,   143,    17,
1305       21,   182,   188,   393,   298,    17,   298,   384,   114,   200,
1306      277,   122,   397,    21,   273,   387,   211,   213,     4,   205,
1307      119,   343,   345,   134,   109,   103,   401,   402,   324,   393,
1308      326,   499,   444,   447,   565,   547,   672,   210,   589,   391,
1309        3,   597,   668,   669,   645,   653,   647,   112,   393,   247,
1310      104,   128,   153,   129,   676,   512,   677,   182,   635,   445,
1311      608,   583,   106,   613,   604,   131,   572,   139,   382,   644,
1312      675,   467,   153,   131,   131,   654,     5,   428,   142,   153,
1313      548,   373,   630,   657,   382,   528,   144,   107,   180,   153,
1314      338,    18,   153,   642,   265,   153,   153,   177,   594,    11,
1315      473,   333,    17,   335,    12,   -56,    21,   110,   490,   363,
1316      497,   471,   102,   595,   182,   119,   520,   521,   487,   221,
1317      223,   503,   645,   646,   647,   102,   102,   361,   182,   182,
1318      471,   352,   111,   500,   486,   182,   215,   126,   343,   345,
1319      258,   471,  -102,   353,   234,   349,   103,   266,   133,   153,
1320      566,   648,   154,    21,   433,   250,   437,   237,   226,   103,
1321      103,   216,   230,   276,   224,   216,   153,  -102,   217,   439,
1322      114,   104,   216,   581,   582,   474,   477,   485,   156,   221,
1323      223,   221,   223,   633,   104,   104,   505,   273,   216,   155,
1324      414,    10,    11,   398,   525,   658,   634,    12,   535,   283,
1325      420,   180,   543,   320,   659,   658,   153,   516,    11,   183,
1326      177,   216,   347,    12,   659,   180,   180,   634,    11,   526,
1327      185,   343,   180,    12,   177,   177,   332,   634,   334,   211,
1328      213,    13,   285,   286,   287,   288,   404,   405,   329,   660,
1329      219,   220,   285,   286,   287,   288,   330,   587,   659,   623,
1330      515,   625,   406,   530,   407,   408,   409,   410,   571,   376,
1331      376,   634,   320,   265,   411,   161,   278,   592,   162,   557,
1332      153,   459,   558,   281,   282,   606,   285,   286,   287,   288,
1333      219,   222,    11,   283,   166,   629,    11,   284,   491,   492,
1334      158,   118,   593,   219,   346,   159,   169,   590,   321,  -406,
1335      216,   633,   285,   286,   287,   288,   279,   187,   153,   153,
1336      541,   347,   211,   347,   634,   533,   289,   290,   153,   431,
1337      534,   291,   161,   573,   655,   162,   153,   394,   485,   221,
1338      443,   663,   145,   395,   541,   470,   281,   282,   146,   542,
1339      663,   663,   190,   241,   191,    11,   147,   166,   219,   242,
1340      284,   133,   663,   533,   663,   663,   663,   201,   546,   169,
1341      192,   461,   376,   461,   376,   285,   286,   287,   288,   292,
1342      293,   202,   658,   670,   476,   114,   294,   227,   671,   289,
1343      670,   659,   605,  -249,   291,   682,   560,   670,   352,   329,
1344      225,   153,   683,   236,   634,   329,   485,   330,   493,   495,
1345      353,   498,   626,   330,   658,   493,   678,   465,   443,   285,
1346      286,   287,   288,   659,   600,   239,   533,   219,   220,   602,
1347      544,   564,   320,   219,   222,   238,   634,   518,   240,   493,
1348      246,   358,   292,   293,   219,   346,   219,   359,   680,   294,
1349       17,   285,   286,   287,   288,   360,   161,   219,   442,   162,
1350      133,   540,   249,   163,   164,   441,   586,   165,   596,   493,
1351      219,   359,   248,    11,   161,   166,   114,   162,    12,   167,
1352      168,   231,   232,   251,   133,   165,   153,   169,   679,   681,
1353      217,   470,   170,   166,   259,   135,   137,   233,   212,   214,
1354      340,   342,   488,   489,   260,   169,   267,   577,   171,   261,
1355      170,   274,   136,   138,   561,    67,   262,    69,   328,    71,
1356       72,   153,   275,    74,    75,    76,    77,   570,   336,   337,
1357       80,    81,   355,   356,   493,   357,   114,   366,   153,   367,
1358      368,   371,   374,   578,   375,   386,   388,   389,   390,   584,
1359      416,   393,   403,   577,   417,   418,   419,   493,   493,   421,
1360      451,   427,    17,   570,   422,   423,   424,   425,   426,    67,
1361      429,    69,   436,    71,    72,   434,   430,    74,    75,    76,
1362       77,   454,   638,   452,    80,    81,   455,   456,   463,   570,
1363      464,   506,   507,   638,   509,   531,  -407,   637,   529,   532,
1364      522,   508,   536,   537,   114,   551,   638,   638,   637,   665,
1365      538,   539,   545,   638,   552,   553,   554,   556,   665,   665,
1366      563,   637,   637,   555,   585,   667,   579,   283,   637,   547,
1367      665,   591,   665,   665,   665,   161,   598,   601,   162,   611,
1368       23,   607,   609,   281,   282,   615,   616,   620,   622,   624,
1369      627,   628,   475,   283,   166,   631,   639,   284,   641,   643,
1370     -408,   649,   650,   651,   404,   405,   169,   652,   672,   647,
1371      666,   673,   285,   286,   287,   288,   166,   617,   674,   141,
1372      406,     9,   407,   408,   409,   410,   289,   290,   169,    87,
1373      457,   291,   411,    89,   157,   618,   479,   480,   481,    29,
1374       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1375       40,    41,    42,    43,    44,    45,    46,    47,   195,    48,
1376       49,    50,    51,    52,    53,    54,    55,    56,    57,   113,
1377       59,    60,    61,    62,    63,   196,    64,   160,   197,   292,
1378      293,   327,   341,   339,   527,   322,   294,   280,    67,   603,
1379       69,    70,    71,    72,   614,   588,    74,    75,    76,    77,
1380       78,   574,    79,    80,    81,   161,   619,   640,   162,   450,
1381       23,   440,   379,   281,   282,   331,   412,   235,   350,   567,
1382      396,     0,   475,   283,   166,     0,   392,   284,   186,     0,
1383        0,     0,     0,     0,     0,     0,   169,     0,   351,     0,
1384        0,     0,   285,   286,   287,   288,   478,     0,     0,     0,
1385        0,     0,     0,     0,     0,     0,   289,   290,     0,     0,
1386        0,   291,     0,     0,     0,     0,   479,   480,   481,    29,
1387       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1388       40,    41,    42,    43,    44,    45,    46,    47,     0,    48,
1389       49,    50,    51,    52,    53,    54,    55,    56,    57,   113,
1390       59,    60,    61,    62,    63,     0,    64,     0,     0,   292,
1391      293,     0,     0,     0,     0,     0,   294,     0,    67,     0,
1392       69,    70,    71,    72,     0,     0,    74,    75,    76,    77,
1393       78,     0,    79,    80,    81,   161,     0,     0,   162,     0,
1394       23,     0,     0,   281,   282,     0,     0,     0,     0,     0,
1395        0,     0,   475,   283,   166,     0,     0,   284,     0,     0,
1396        0,     0,     0,     0,     0,     0,   169,     0,     0,     0,
1397        0,     0,   285,   286,   287,   288,     0,     0,     0,     0,
1398        0,     0,     0,     0,     0,     0,   289,   290,     0,     0,
1399        0,   291,     0,     0,     0,     0,   479,   480,   481,    29,
1400       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1401       40,    41,    42,    43,    44,    45,    46,    47,     0,    48,
1402       49,    50,    51,    52,    53,    54,    55,    56,    57,   113,
1403       59,    60,    61,    62,    63,     0,    64,     0,     0,   292,
1404      293,     0,     0,     0,     0,     0,   294,     0,    67,     0,
1405       69,    70,    71,    72,     0,     0,    74,    75,    76,    77,
1406       78,     0,    79,    80,    81,   161,     0,     0,   162,     0,
1407       23,     0,     0,   281,   282,     0,     0,     0,     0,     0,
1408        0,     0,   475,   283,   166,     0,     0,   284,     0,     0,
1409        0,     0,     0,     0,     0,     0,   169,     0,     0,     0,
1410        0,     0,   285,   286,   287,   288,     0,     0,     0,     0,
1411        0,     0,     0,     0,     0,     0,   289,   290,     0,     0,
1412        0,   291,     0,     0,     0,     0,     0,     0,     0,    29,
1413       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1414       40,    41,    42,    43,    44,    45,    46,    47,     0,    48,
1415       49,    50,    51,    52,    53,    54,    55,    56,    57,   113,
1416       59,    60,    61,    62,    63,     0,    64,     0,     0,   292,
1417      293,     0,     0,     0,     0,     0,   294,     0,    67,     0,
1418       69,    70,    71,    72,     0,     0,    74,    75,    76,    77,
1419       78,     0,    79,    80,    81,   161,     0,     0,   162,     0,
1420       23,     0,   163,   164,     0,     0,   165,   282,     0,     0,
1421        0,     0,    24,     0,   166,    11,     0,     0,   167,   168,
1422      284,     0,     0,     0,     0,     0,   169,     0,     0,     0,
1423        0,   170,     0,     0,     0,   285,   286,   287,   288,     0,
1424        0,     0,     0,     0,     0,     0,     0,   171,     0,   289,
1425        0,     0,     0,     0,   291,     0,     0,     0,   172,    29,
1426       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1427       40,    41,    42,    43,    44,    45,    46,    47,     0,    48,
1428       49,    50,    51,    52,    53,    54,    55,    56,    57,   113,
1429       59,    60,    61,    62,    63,    23,    64,     0,     0,     0,
1430        0,     0,   292,   293,     0,     0,     0,    24,    67,   294,
1431       69,    70,    71,    72,     0,     0,    74,    75,    76,    77,
1432       78,     0,    79,    80,    81,     0,     0,     0,     0,     0,
1433        0,     0,     0,     0,     0,    25,     0,    26,     0,     0,
1434        0,     0,     0,    27,     0,     0,     0,     0,     0,    28,
1435        0,     0,     0,     0,    29,    30,    31,    32,    33,    34,
1436       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1437       45,    46,    47,     0,    48,    49,    50,    51,    52,    53,
1438       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1439        0,    64,     0,     0,     0,     0,    65,     0,    23,     0,
1440       66,     0,     5,    67,    68,    69,    70,    71,    72,    73,
1441       24,    74,    75,    76,    77,    78,     0,    79,    80,    81,
1442       82,    83,    84,    85,     0,     0,     0,     0,     0,     0,
1443        0,     0,     0,     0,     0,     0,     0,     0,    25,     0,
1444       26,     0,     0,     0,     0,     0,    27,     0,     0,     0,
1445        0,     0,    28,     0,     0,     0,     0,    29,    30,    31,
1446       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1447       42,    43,    44,    45,    46,    47,     0,    48,    49,    50,
1448       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1449       61,    62,    63,    23,    64,     0,     0,     0,     0,    65,
1450        0,     0,     0,    66,     0,    24,    67,    68,    69,    70,
1451       71,    72,    73,     0,    74,    75,    76,    77,    78,     0,
1452       79,    80,    81,    82,    83,    84,    85,     0,     0,     0,
1453        0,     0,     0,     0,     0,    26,     0,     0,     0,     0,
1454        0,    27,     0,     0,     0,     0,     0,    28,     0,     0,
1455        0,     0,    29,    30,    31,    32,    33,    34,    35,    36,
1456       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1457       47,     0,    48,    49,    50,    51,    52,    53,    54,    55,
1458       56,    57,    58,    59,    60,    61,    62,    63,     0,    64,
1459        0,     0,     0,     0,     0,    23,     0,     0,    66,     0,
1460        0,    67,    68,    69,    70,    71,    72,    24,     0,    74,
1461       75,    76,    77,    78,     0,    79,    80,    81,    82,    83,
1462       84,    85,   559,     0,     0,     0,     0,     0,     0,     0,
1463        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1464        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1465        0,     0,     0,     0,    29,    30,    31,    32,    33,    34,
1466       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1467       45,    46,    47,     0,    48,    49,    50,    51,    52,    53,
1468       54,    55,    56,    57,   113,    59,    60,    61,    62,    63,
1469      441,    64,    23,     0,     0,   219,   359,     0,     0,     0,
1470        0,     0,     0,    67,    24,    69,    70,    71,    72,   133,
1471        0,    74,    75,    76,    77,    78,     0,    79,    80,    81,
1472        0,    83,    84,    85,     0,     0,     0,     0,     0,     0,
1473        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1474        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1475        0,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1476       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1477        0,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1478       57,   113,    59,    60,    61,    62,    63,   241,    64,    23,
1479        0,     0,   219,   242,     0,     0,     0,     0,     0,     0,
1480       67,    24,    69,    70,    71,    72,     0,     0,    74,    75,
1481       76,    77,    78,   252,    79,    80,    81,     0,     0,     0,
1482        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1483        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1484        0,     0,     0,     0,     0,     0,     0,     0,    29,    30,
1485       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1486       41,    42,    43,    44,    45,    46,    47,     0,    48,    49,
1487       50,    51,    52,    53,    54,    55,    56,    57,   113,    59,
1488       60,    61,    62,    63,    23,    64,     0,     0,     0,     0,
1489        0,     0,     0,     0,     0,     0,    24,    67,     0,    69,
1490       70,    71,    72,     0,     0,    74,    75,    76,    77,    78,
1491      252,    79,    80,    81,     0,     0,     0,     0,     0,     0,
1492        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1493        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1494      316,   317,     0,    29,    30,    31,    32,    33,    34,    35,
1495       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1496       46,    47,     0,    48,    49,    50,    51,    52,    53,    54,
1497       55,    56,    57,   113,    59,    60,    61,    62,    63,     0,
1498       64,    23,     0,     0,     0,     0,     0,     0,     0,     0,
1499        0,     0,    67,    24,    69,    70,    71,    72,     0,     0,
1500       74,    75,    76,    77,    78,     0,    79,    80,    81,     0,
1501      323,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1502        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1503        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1504       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1505       39,    40,    41,    42,    43,    44,    45,    46,    47,     0,
1506       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1507      113,    59,    60,    61,    62,    63,     0,    64,    23,     0,
1508        0,     0,     0,     0,     0,     0,     0,     0,     0,    67,
1509       24,    69,    70,    71,    72,     0,     0,    74,    75,    76,
1510       77,    78,   252,    79,    80,    81,     0,   325,     0,     0,
1511        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1512        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1513        0,     0,     0,     0,     0,     0,     0,    29,    30,    31,
1514       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1515       42,    43,    44,    45,    46,    47,     0,    48,    49,    50,
1516       51,    52,    53,    54,    55,    56,    57,   113,    59,    60,
1517       61,    62,    63,     0,    64,    23,     0,     0,     0,     0,
1518        0,     0,     0,     0,     0,     0,    67,    24,    69,    70,
1519       71,    72,     0,     0,    74,    75,    76,    77,    78,   252,
1520       79,    80,    81,     0,   432,     0,     0,     0,     0,     0,
1521        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1522        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1523        0,     0,     0,     0,    29,    30,    31,    32,    33,    34,
1524       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1525       45,    46,    47,     0,    48,    49,    50,    51,    52,    53,
1526       54,    55,    56,    57,   113,    59,    60,    61,    62,    63,
1527        0,    64,    23,     0,     0,     0,     0,     0,     0,     0,
1528        0,     0,     0,    67,    24,    69,    70,    71,    72,     0,
1529        0,    74,    75,    76,    77,    78,   252,    79,    80,    81,
1530        0,   514,     0,     0,     0,     0,     0,     0,     0,     0,
1531        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1532        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1533        0,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1534       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1535        0,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1536       57,   113,    59,    60,    61,    62,    63,    23,    64,     0,
1537        0,     0,     0,     0,     0,     0,     0,     0,     0,    24,
1538       67,     0,    69,    70,    71,    72,     0,     0,    74,    75,
1539       76,    77,    78,   252,    79,    80,    81,     0,     0,     0,
1540        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1541        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1542        0,     0,     0,     0,     0,     0,    29,    30,    31,    32,
1543       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1544       43,    44,    45,    46,    47,     0,    48,    49,    50,    51,
1545       52,    53,    54,    55,    56,    57,   113,    59,    60,    61,
1546       62,    63,    23,    64,     0,     0,     0,     0,     0,     0,
1547        0,     0,     0,     0,    24,    67,     0,    69,    70,    71,
1548       72,     0,     0,    74,    75,    76,    77,    78,   252,    79,
1549       80,    81,     0,     0,     0,     0,     0,     0,     0,     0,
1550        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1551        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1552        0,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1553       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1554        0,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1555       57,   113,    59,    60,    61,    62,    63,    23,    64,     0,
1556        0,     0,     0,     0,     0,     0,     0,     0,     0,    24,
1557       67,     0,    69,    70,    71,    72,     0,   269,    74,    75,
1558       76,    77,    78,     0,    79,    80,    81,     0,     0,     0,
1559        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1560        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1561        0,     0,     0,     0,     0,     0,    29,    30,    31,    32,
1562       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1563       43,    44,    45,    46,    47,     0,    48,    49,    50,    51,
1564       52,    53,    54,    55,    56,    57,   113,    59,    60,    61,
1565       62,    63,     0,    64,     0,     0,     0,     0,     0,    23,
1566        0,     0,     0,     0,     0,    67,     0,    69,    70,    71,
1567       72,    24,     0,    74,    75,    76,    77,    78,   438,    79,
1568       80,    81,     0,     0,     0,     0,   460,     0,     0,     0,
1569        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1570        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1571        0,     0,     0,     0,     0,     0,     0,     0,    29,    30,
1572       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1573       41,    42,    43,    44,    45,    46,    47,     0,    48,    49,
1574       50,    51,    52,    53,    54,    55,    56,    57,   113,    59,
1575       60,    61,    62,    63,     0,    64,     0,     0,     0,     0,
1576        0,    23,     0,     0,     0,     0,     0,    67,     0,    69,
1577       70,    71,    72,    24,     0,    74,    75,    76,    77,    78,
1578        0,    79,    80,    81,     0,     0,     0,     0,   462,     0,
1579        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1580        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1581        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1582       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1583       39,    40,    41,    42,    43,    44,    45,    46,    47,     0,
1584       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1585      113,    59,    60,    61,    62,    63,    23,    64,     0,     0,
1586        0,     0,     0,     0,     0,     0,     0,     0,    24,    67,
1587        0,    69,    70,    71,    72,     0,     0,    74,    75,    76,
1588       77,    78,     0,    79,    80,    81,     0,     0,     0,     0,
1589        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1590        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1591        0,     0,     0,     0,   568,    29,    30,    31,    32,    33,
1592       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1593       44,    45,    46,    47,     0,    48,    49,    50,    51,    52,
1594       53,    54,    55,    56,    57,   113,    59,    60,    61,    62,
1595       63,    23,    64,     0,     0,     0,     0,     0,     0,     0,
1596        0,     0,     0,    24,    67,     0,    69,    70,    71,    72,
1597        0,     0,    74,    75,    76,    77,    78,     0,    79,    80,
1598       81,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1599        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1600        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1601       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1602       39,    40,    41,    42,    43,    44,    45,    46,    47,     0,
1603       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1604      113,    59,    60,    61,    62,    63,     0,    64,     0,     0,
1605        0,     0,     0,     0,     0,     0,     0,     0,     0,    67,
1606        0,    69,    70,    71,    72,     0,     0,    74,    75,    76,
1607       77,    78,     0,    79,    80,    81,   161,     0,     0,   162,
1608        0,     0,     0,     0,   281,   282,     0,     0,     0,     0,
1609        0,     0,     0,    11,   283,   166,   352,     0,   284,     0,
1610        0,     0,   161,     0,     0,   162,     0,   169,   353,     0,
1611      281,   282,     0,   285,   286,   287,   288,     0,     0,    11,
1612      283,   166,     0,     0,   284,     0,     0,   289,   290,     0,
1613        0,     0,   291,   169,     0,   381,     0,     0,     0,   285,
1614      286,   287,   288,     0,     0,     0,     0,     0,     0,     0,
1615        0,     0,   161,   289,   290,   162,     0,     0,   291,     0,
1616      281,   282,     0,     0,     0,     0,     0,     0,     0,    11,
1617      283,   166,     0,     0,   284,     0,     0,     0,     0,     0,
1618      292,   293,     0,   169,     0,   496,     0,   294,     0,   285,
1619      286,   287,   288,   161,     0,     0,   162,     0,     0,     0,
1620        0,   281,   282,   289,   290,     0,   292,   293,   291,     0,
1621       11,   283,   166,   294,     0,   284,     0,     0,     0,     0,
1622        0,     0,     0,     0,   169,     0,     0,     0,     0,     0,
1623      285,   286,   287,   288,     0,     0,     0,     0,     0,     0,
1624        0,     0,     0,   161,   289,   290,   162,     0,     0,   291,
1625        0,   281,   282,     0,     0,     0,   292,   293,     0,     0,
1626       11,     0,   166,   294,     0,   284,     0,     0,     0,     0,
1627        0,     0,     0,     0,   169,     0,     0,     0,     0,     0,
1628      285,   286,   287,   288,     0,     0,     0,     0,     0,     0,
1629        0,     0,     0,     0,   289,     0,     0,   292,   293,   291,
1630        0,     0,     0,     0,   294,     0,     0,     0,     0,     0,
1631        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1632        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1633        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1634        0,     0,     0,     0,     0,     0,     0,   292,   293,     0,
1635        0,     0,     0,     0,   294
1636 };
1637
1638 static const short yycheck[] =
1639 {
1640       25,     6,    10,    23,   127,   187,   311,   102,    99,     4,
1641        5,   112,   122,    14,   217,    10,   219,   282,    23,   129,
1642      210,    26,   302,    18,   202,   290,   145,   146,    57,   139,
1643       25,   241,   242,    73,    18,     6,   305,   306,   220,    14,
1644      222,   410,     7,   365,   527,    60,     3,   142,   568,   297,
1645        0,   579,   658,   659,     6,     7,     8,    12,    14,   180,
1646        6,    66,   102,    68,   670,   434,   672,   168,   622,    34,
1647      598,   554,     7,   601,   594,    70,    51,    82,   281,   633,
1648       37,    37,   122,    78,    79,    37,   115,   335,    93,   129,
1649      105,   269,   620,   647,   297,   464,   101,    32,   112,   139,
1650      237,    12,   142,   631,   199,   145,   146,   112,    31,    20,
1651      111,   232,   107,   234,    25,    97,   111,     7,   398,   256,
1652      405,   386,   127,    46,   225,   120,   448,   449,   393,   151,
1653      152,   416,     6,     7,     8,   140,   141,   256,   239,   240,
1654      405,    23,    32,   412,   392,   246,     7,    62,   358,   359,
1655        7,   416,     7,    35,   168,   246,   127,     7,    25,   199,
1656      529,    35,     7,   158,   346,   185,   356,   172,   163,   140,
1657      141,    32,   167,     7,   158,    32,   216,    32,    33,   357,
1658      185,   127,    32,   552,   553,   388,   389,   390,     3,   211,
1659      212,   213,   214,    12,   140,   141,     7,   375,    32,     7,
1660       12,     3,    20,   304,     7,     3,    25,    25,   473,    21,
1661      320,   225,   492,   218,    12,     3,   256,    35,    20,     6,
1662      225,    32,   244,    25,    12,   239,   240,    25,    20,    32,
1663       31,   441,   246,    25,   239,   240,   231,    25,   233,   358,
1664      359,    43,    40,    41,    42,    43,    10,    11,    24,    37,
1665       11,    12,    40,    41,    42,    43,    32,   562,    12,   612,
1666      442,   614,    26,   466,    28,    29,    30,    31,   533,   274,
1667      275,    25,   277,   368,    38,     3,    37,     7,     6,    32,
1668      320,   376,    35,    11,    12,     7,    40,    41,    42,    43,
1669       11,    12,    20,    21,    22,     7,    20,    25,   399,   400,
1670       32,    25,    32,    11,    12,    37,    34,   572,    36,    12,
1671       32,    12,    40,    41,    42,    43,    37,    12,   358,   359,
1672       32,   343,   441,   345,    25,    32,    54,    55,   368,    37,
1673       37,    59,     3,   536,    35,     6,   376,    33,   541,   361,
1674      362,   649,     6,    39,    32,   385,    11,    12,    12,    37,
1675      658,   659,   112,     6,   112,    20,    20,    22,    11,    12,
1676       25,    25,   670,    32,   672,   673,   674,    34,    37,    34,
1677       97,   377,   377,   379,   379,    40,    41,    42,    43,   107,
1678      108,    12,     3,    32,   389,   390,   114,    27,    37,    54,
1679       32,    12,   595,    34,    59,    37,   519,    32,    23,    24,
1680       12,   441,    37,    27,    25,    24,   609,    32,   403,   404,
1681       35,   406,   615,    32,     3,   410,    37,    36,   440,    40,
1682       41,    42,    43,    12,   583,    32,    32,    11,    12,   588,
1683       36,   526,   437,    11,    12,    37,    25,   445,    32,   434,
1684       53,     6,   107,   108,    11,    12,    11,    12,    37,   114,
1685      445,    40,    41,    42,    43,    20,     3,    11,    12,     6,
1686       25,   481,     6,    10,    11,     6,   561,    14,   578,   464,
1687       11,    12,    27,    20,     3,    22,   481,     6,    25,    26,
1688       27,    10,    11,     7,    25,    14,   526,    34,   673,   674,
1689       33,   531,    39,    22,    20,    78,    79,    26,   145,   146,
1690      239,   240,   394,   395,    20,    34,    25,   547,    55,   112,
1691       39,    34,    78,    79,   519,   116,   112,   118,    36,   120,
1692      121,   561,    34,   124,   125,   126,   127,   532,    27,   111,
1693      131,   132,     8,    37,   529,    32,   541,    20,   578,    20,
1694       32,    32,    37,   548,    32,    12,    12,    12,    12,   557,
1695       12,    14,    31,   593,     7,     7,    34,   552,   553,    36,
1696        7,    36,   557,   568,    37,    37,    37,    27,    27,   116,
1697       27,   118,    27,   120,   121,    31,    37,   124,   125,   126,
1698      127,    25,   622,    34,   131,   132,    35,     7,    34,   594,
1699       31,    27,    27,   633,    37,    32,    12,   622,    31,    31,
1700       58,    51,    32,    37,   609,    27,   646,   647,   633,   649,
1701       37,    37,    37,   653,    26,    32,    34,     7,   658,   659,
1702       35,   646,   647,    37,     7,   650,    49,    21,   653,    60,
1703      670,    37,   672,   673,   674,     3,   106,    12,     6,    47,
1704        8,     7,    61,    11,    12,    46,     7,    52,    34,    37,
1705        7,     7,    20,    21,    22,    48,    35,    25,     7,    35,
1706       12,    12,    33,    35,    10,    11,    34,     7,     3,     8,
1707       25,    12,    40,    41,    42,    43,    22,    45,    12,    89,
1708       26,     2,    28,    29,    30,    31,    54,    55,    34,     6,
1709      375,    59,    38,     6,   107,    63,    64,    65,    66,    67,
1710       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1711       78,    79,    80,    81,    82,    83,    84,    85,   127,    87,
1712       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1713       98,    99,   100,   101,   102,   127,   104,   111,   127,   107,
1714      108,   225,   240,   239,   463,   219,   114,   216,   116,   593,
1715      118,   119,   120,   121,   602,   565,   124,   125,   126,   127,
1716      128,   541,   130,   131,   132,     3,   609,   625,     6,   368,
1717        8,   358,   275,    11,    12,   229,   308,   168,   246,   531,
1718      302,    -1,    20,    21,    22,    -1,   297,    25,   120,    -1,
1719       -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,   246,    -1,
1720       -1,    -1,    40,    41,    42,    43,    44,    -1,    -1,    -1,
1721       -1,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,    -1,
1722       -1,    59,    -1,    -1,    -1,    -1,    64,    65,    66,    67,
1723       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1724       78,    79,    80,    81,    82,    83,    84,    85,    -1,    87,
1725       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1726       98,    99,   100,   101,   102,    -1,   104,    -1,    -1,   107,
1727      108,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
1728      118,   119,   120,   121,    -1,    -1,   124,   125,   126,   127,
1729      128,    -1,   130,   131,   132,     3,    -1,    -1,     6,    -1,
1730        8,    -1,    -1,    11,    12,    -1,    -1,    -1,    -1,    -1,
1731       -1,    -1,    20,    21,    22,    -1,    -1,    25,    -1,    -1,
1732       -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,
1733       -1,    -1,    40,    41,    42,    43,    -1,    -1,    -1,    -1,
1734       -1,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,    -1,
1735       -1,    59,    -1,    -1,    -1,    -1,    64,    65,    66,    67,
1736       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1737       78,    79,    80,    81,    82,    83,    84,    85,    -1,    87,
1738       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1739       98,    99,   100,   101,   102,    -1,   104,    -1,    -1,   107,
1740      108,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
1741      118,   119,   120,   121,    -1,    -1,   124,   125,   126,   127,
1742      128,    -1,   130,   131,   132,     3,    -1,    -1,     6,    -1,
1743        8,    -1,    -1,    11,    12,    -1,    -1,    -1,    -1,    -1,
1744       -1,    -1,    20,    21,    22,    -1,    -1,    25,    -1,    -1,
1745       -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,
1746       -1,    -1,    40,    41,    42,    43,    -1,    -1,    -1,    -1,
1747       -1,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,    -1,
1748       -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
1749       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1750       78,    79,    80,    81,    82,    83,    84,    85,    -1,    87,
1751       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1752       98,    99,   100,   101,   102,    -1,   104,    -1,    -1,   107,
1753      108,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
1754      118,   119,   120,   121,    -1,    -1,   124,   125,   126,   127,
1755      128,    -1,   130,   131,   132,     3,    -1,    -1,     6,    -1,
1756        8,    -1,    10,    11,    -1,    -1,    14,    12,    -1,    -1,
1757       -1,    -1,    20,    -1,    22,    20,    -1,    -1,    26,    27,
1758       25,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,
1759       -1,    39,    -1,    -1,    -1,    40,    41,    42,    43,    -1,
1760       -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    54,
1761       -1,    -1,    -1,    -1,    59,    -1,    -1,    -1,    66,    67,
1762       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1763       78,    79,    80,    81,    82,    83,    84,    85,    -1,    87,
1764       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1765       98,    99,   100,   101,   102,     8,   104,    -1,    -1,    -1,
1766       -1,    -1,   107,   108,    -1,    -1,    -1,    20,   116,   114,
1767      118,   119,   120,   121,    -1,    -1,   124,   125,   126,   127,
1768      128,    -1,   130,   131,   132,    -1,    -1,    -1,    -1,    -1,
1769       -1,    -1,    -1,    -1,    -1,    48,    -1,    50,    -1,    -1,
1770       -1,    -1,    -1,    56,    -1,    -1,    -1,    -1,    -1,    62,
1771       -1,    -1,    -1,    -1,    67,    68,    69,    70,    71,    72,
1772       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1773       83,    84,    85,    -1,    87,    88,    89,    90,    91,    92,
1774       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1775       -1,   104,    -1,    -1,    -1,    -1,   109,    -1,     8,    -1,
1776      113,    -1,   115,   116,   117,   118,   119,   120,   121,   122,
1777       20,   124,   125,   126,   127,   128,    -1,   130,   131,   132,
1778      133,   134,   135,   136,    -1,    -1,    -1,    -1,    -1,    -1,
1779       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    48,    -1,
1780       50,    -1,    -1,    -1,    -1,    -1,    56,    -1,    -1,    -1,
1781       -1,    -1,    62,    -1,    -1,    -1,    -1,    67,    68,    69,
1782       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1783       80,    81,    82,    83,    84,    85,    -1,    87,    88,    89,
1784       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1785      100,   101,   102,     8,   104,    -1,    -1,    -1,    -1,   109,
1786       -1,    -1,    -1,   113,    -1,    20,   116,   117,   118,   119,
1787      120,   121,   122,    -1,   124,   125,   126,   127,   128,    -1,
1788      130,   131,   132,   133,   134,   135,   136,    -1,    -1,    -1,
1789       -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,
1790       -1,    56,    -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,
1791       -1,    -1,    67,    68,    69,    70,    71,    72,    73,    74,
1792       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1793       85,    -1,    87,    88,    89,    90,    91,    92,    93,    94,
1794       95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
1795       -1,    -1,    -1,    -1,    -1,     8,    -1,    -1,   113,    -1,
1796       -1,   116,   117,   118,   119,   120,   121,    20,    -1,   124,
1797      125,   126,   127,   128,    -1,   130,   131,   132,   133,   134,
1798      135,   136,    35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1799       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1800       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1801       -1,    -1,    -1,    -1,    67,    68,    69,    70,    71,    72,
1802       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1803       83,    84,    85,    -1,    87,    88,    89,    90,    91,    92,
1804       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1805        6,   104,     8,    -1,    -1,    11,    12,    -1,    -1,    -1,
1806       -1,    -1,    -1,   116,    20,   118,   119,   120,   121,    25,
1807       -1,   124,   125,   126,   127,   128,    -1,   130,   131,   132,
1808       -1,   134,   135,   136,    -1,    -1,    -1,    -1,    -1,    -1,
1809       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1810       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1811       -1,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1812       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1813       -1,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1814       96,    97,    98,    99,   100,   101,   102,     6,   104,     8,
1815       -1,    -1,    11,    12,    -1,    -1,    -1,    -1,    -1,    -1,
1816      116,    20,   118,   119,   120,   121,    -1,    -1,   124,   125,
1817      126,   127,   128,   129,   130,   131,   132,    -1,    -1,    -1,
1818       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1819       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1820       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
1821       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1822       79,    80,    81,    82,    83,    84,    85,    -1,    87,    88,
1823       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1824       99,   100,   101,   102,     8,   104,    -1,    -1,    -1,    -1,
1825       -1,    -1,    -1,    -1,    -1,    -1,    20,   116,    -1,   118,
1826      119,   120,   121,    -1,    -1,   124,   125,   126,   127,   128,
1827      129,   130,   131,   132,    -1,    -1,    -1,    -1,    -1,    -1,
1828       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1829       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1830       64,    65,    -1,    67,    68,    69,    70,    71,    72,    73,
1831       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1832       84,    85,    -1,    87,    88,    89,    90,    91,    92,    93,
1833       94,    95,    96,    97,    98,    99,   100,   101,   102,    -1,
1834      104,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1835       -1,    -1,   116,    20,   118,   119,   120,   121,    -1,    -1,
1836      124,   125,   126,   127,   128,    -1,   130,   131,   132,    -1,
1837       37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1838       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1839       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1840       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1841       77,    78,    79,    80,    81,    82,    83,    84,    85,    -1,
1842       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1843       97,    98,    99,   100,   101,   102,    -1,   104,     8,    -1,
1844       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,
1845       20,   118,   119,   120,   121,    -1,    -1,   124,   125,   126,
1846      127,   128,   129,   130,   131,   132,    -1,    37,    -1,    -1,
1847       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1848       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1849       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,
1850       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1851       80,    81,    82,    83,    84,    85,    -1,    87,    88,    89,
1852       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1853      100,   101,   102,    -1,   104,     8,    -1,    -1,    -1,    -1,
1854       -1,    -1,    -1,    -1,    -1,    -1,   116,    20,   118,   119,
1855      120,   121,    -1,    -1,   124,   125,   126,   127,   128,   129,
1856      130,   131,   132,    -1,    37,    -1,    -1,    -1,    -1,    -1,
1857       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1858       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1859       -1,    -1,    -1,    -1,    67,    68,    69,    70,    71,    72,
1860       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1861       83,    84,    85,    -1,    87,    88,    89,    90,    91,    92,
1862       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1863       -1,   104,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1864       -1,    -1,    -1,   116,    20,   118,   119,   120,   121,    -1,
1865       -1,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1866       -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1867       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1868       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1869       -1,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1870       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1871       -1,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1872       96,    97,    98,    99,   100,   101,   102,     8,   104,    -1,
1873       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
1874      116,    -1,   118,   119,   120,   121,    -1,    -1,   124,   125,
1875      126,   127,   128,   129,   130,   131,   132,    -1,    -1,    -1,
1876       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1877       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1878       -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,    70,
1879       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1880       81,    82,    83,    84,    85,    -1,    87,    88,    89,    90,
1881       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1882      101,   102,     8,   104,    -1,    -1,    -1,    -1,    -1,    -1,
1883       -1,    -1,    -1,    -1,    20,   116,    -1,   118,   119,   120,
1884      121,    -1,    -1,   124,   125,   126,   127,   128,   129,   130,
1885      131,   132,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1886       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1887       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1888       -1,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1889       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1890       -1,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1891       96,    97,    98,    99,   100,   101,   102,     8,   104,    -1,
1892       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
1893      116,    -1,   118,   119,   120,   121,    -1,   123,   124,   125,
1894      126,   127,   128,    -1,   130,   131,   132,    -1,    -1,    -1,
1895       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1896       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1897       -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,    70,
1898       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1899       81,    82,    83,    84,    85,    -1,    87,    88,    89,    90,
1900       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1901      101,   102,    -1,   104,    -1,    -1,    -1,    -1,    -1,     8,
1902       -1,    -1,    -1,    -1,    -1,   116,    -1,   118,   119,   120,
1903      121,    20,    -1,   124,   125,   126,   127,   128,   129,   130,
1904      131,   132,    -1,    -1,    -1,    -1,    35,    -1,    -1,    -1,
1905       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1906       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1907       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
1908       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1909       79,    80,    81,    82,    83,    84,    85,    -1,    87,    88,
1910       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1911       99,   100,   101,   102,    -1,   104,    -1,    -1,    -1,    -1,
1912       -1,     8,    -1,    -1,    -1,    -1,    -1,   116,    -1,   118,
1913      119,   120,   121,    20,    -1,   124,   125,   126,   127,   128,
1914       -1,   130,   131,   132,    -1,    -1,    -1,    -1,    35,    -1,
1915       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1916       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1917       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1918       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1919       77,    78,    79,    80,    81,    82,    83,    84,    85,    -1,
1920       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1921       97,    98,    99,   100,   101,   102,     8,   104,    -1,    -1,
1922       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,   116,
1923       -1,   118,   119,   120,   121,    -1,    -1,   124,   125,   126,
1924      127,   128,    -1,   130,   131,   132,    -1,    -1,    -1,    -1,
1925       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1926       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1927       -1,    -1,    -1,    -1,    66,    67,    68,    69,    70,    71,
1928       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1929       82,    83,    84,    85,    -1,    87,    88,    89,    90,    91,
1930       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1931      102,     8,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1932       -1,    -1,    -1,    20,   116,    -1,   118,   119,   120,   121,
1933       -1,    -1,   124,   125,   126,   127,   128,    -1,   130,   131,
1934      132,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1935       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1936       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1937       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1938       77,    78,    79,    80,    81,    82,    83,    84,    85,    -1,
1939       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1940       97,    98,    99,   100,   101,   102,    -1,   104,    -1,    -1,
1941       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,
1942       -1,   118,   119,   120,   121,    -1,    -1,   124,   125,   126,
1943      127,   128,    -1,   130,   131,   132,     3,    -1,    -1,     6,
1944       -1,    -1,    -1,    -1,    11,    12,    -1,    -1,    -1,    -1,
1945       -1,    -1,    -1,    20,    21,    22,    23,    -1,    25,    -1,
1946       -1,    -1,     3,    -1,    -1,     6,    -1,    34,    35,    -1,
1947       11,    12,    -1,    40,    41,    42,    43,    -1,    -1,    20,
1948       21,    22,    -1,    -1,    25,    -1,    -1,    54,    55,    -1,
1949       -1,    -1,    59,    34,    -1,    36,    -1,    -1,    -1,    40,
1950       41,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1951       -1,    -1,     3,    54,    55,     6,    -1,    -1,    59,    -1,
1952       11,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
1953       21,    22,    -1,    -1,    25,    -1,    -1,    -1,    -1,    -1,
1954      107,   108,    -1,    34,    -1,    36,    -1,   114,    -1,    40,
1955       41,    42,    43,     3,    -1,    -1,     6,    -1,    -1,    -1,
1956       -1,    11,    12,    54,    55,    -1,   107,   108,    59,    -1,
1957       20,    21,    22,   114,    -1,    25,    -1,    -1,    -1,    -1,
1958       -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,    -1,    -1,
1959       40,    41,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,
1960       -1,    -1,    -1,     3,    54,    55,     6,    -1,    -1,    59,
1961       -1,    11,    12,    -1,    -1,    -1,   107,   108,    -1,    -1,
1962       20,    -1,    22,   114,    -1,    25,    -1,    -1,    -1,    -1,
1963       -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,    -1,    -1,
1964       40,    41,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,
1965       -1,    -1,    -1,    -1,    54,    -1,    -1,   107,   108,    59,
1966       -1,    -1,    -1,    -1,   114,    -1,    -1,    -1,    -1,    -1,
1967       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1968       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1969       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1970       -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,    -1,
1971       -1,    -1,    -1,    -1,   114
1972 };
1973
1974 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1975    symbol of state STATE-NUM.  */
1976 static const unsigned short yystos[] =
1977 {
1978        0,   138,   140,     0,    57,   115,   139,   141,   145,   146,
1979        3,    20,    25,    43,   176,   177,   179,   284,    12,   180,
1980      181,   284,   290,     8,    20,    48,    50,    56,    62,    67,
1981       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1982       78,    79,    80,    81,    82,    83,    84,    85,    87,    88,
1983       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1984       99,   100,   101,   102,   104,   109,   113,   116,   117,   118,
1985      119,   120,   121,   122,   124,   125,   126,   127,   128,   130,
1986      131,   132,   133,   134,   135,   136,   142,   147,   148,   152,
1987      155,   156,   157,   158,   159,   162,   164,   173,   224,   225,
1988      226,   227,   228,   231,   239,   179,     7,    32,   182,   290,
1989        7,    32,    12,    97,   228,   229,   231,   239,    25,   284,
1990      285,   288,   228,   171,   165,   167,    62,   153,   228,   228,
1991      234,   284,   287,    25,   286,   234,   287,   234,   287,   228,
1992      143,   143,   228,   224,   228,     6,    12,    20,   190,   191,
1993      241,   242,   243,   286,     7,     7,     3,   177,    32,    37,
1994      181,     3,     6,    10,    11,    14,    22,    26,    27,    34,
1995       39,    55,    66,   183,   184,   185,   186,   228,   246,   250,
1996      251,   253,   265,     6,   230,    31,   288,    12,   190,   241,
1997      112,   112,    97,   169,   154,   155,   156,   157,   159,   174,
1998      190,    34,    12,   232,   233,   190,   144,   146,   147,   152,
1999      241,   242,   243,   242,   243,     7,    32,    33,   192,    11,
2000       12,   249,    12,   249,   290,    12,   284,    27,   254,   255,
2001      284,    10,    11,    26,   251,   253,    27,   228,    37,    32,
2002       32,     6,    12,   247,   248,   249,    53,   254,    27,     6,
2003      229,     7,   129,   207,   208,   209,   228,   245,     7,    20,
2004       20,   112,   112,   220,   221,   241,     7,    25,   240,   123,
2005      149,   150,   151,   245,    34,    34,     7,   192,    37,    37,
2006      191,    11,    12,    21,    25,    40,    41,    42,    43,    54,
2007       55,    59,   107,   108,   114,   188,   189,   251,   261,   262,
2008      263,   264,   265,   266,   269,   270,   271,   272,   274,   277,
2009      278,   279,   280,   284,   286,   291,    64,    65,   160,   193,
2010      228,    36,   189,    37,   208,    37,   208,   183,    36,    24,
2011       32,   256,   284,   254,   284,   254,    27,   111,   247,   185,
2012      246,   186,   246,   248,   208,   248,    12,   249,   187,   224,
2013      250,   291,    23,    35,   252,     8,    37,    32,     6,    12,
2014       20,   242,   244,   247,   172,   166,    20,    20,    32,   175,
2015      222,    32,   238,   245,    37,    32,   228,   235,   236,   235,
2016      161,    36,   261,   273,   262,   281,    12,   262,    12,    12,
2017       12,   252,   273,    14,    33,    39,   266,   269,   265,   267,
2018      268,   274,   274,    31,    10,    11,    26,    28,    29,    30,
2019       31,    38,   270,   276,    12,   280,    12,     7,     7,    34,
2020      190,    36,    37,    37,    37,    27,    27,    36,   252,    27,
2021       37,    37,    37,   208,    31,   257,    27,   192,   129,   245,
2022      244,     6,    12,   249,     7,    34,   215,   215,   168,   170,
2023      221,     7,    34,   223,    25,    35,     7,   151,   237,   241,
2024       35,   236,    35,    34,    31,    36,   256,    37,   282,   283,
2025      286,   262,   275,   111,   261,    20,   228,   261,    44,    64,
2026       65,    66,   203,   204,   229,   261,   252,   262,   264,   264,
2027      269,   265,   265,   284,   289,   284,    36,   275,   284,   289,
2028      274,   260,   261,   275,   194,     7,    27,    27,    51,    37,
2029      258,   259,   289,   163,    37,   208,    35,   178,   179,   216,
2030      215,   215,    58,   217,   218,     7,    32,   194,   289,    31,
2031      261,    32,    31,    32,    37,   262,    32,    37,    37,    37,
2032      229,    32,    37,   269,    36,    37,    37,    60,   105,   195,
2033      196,    27,    26,    32,    34,    37,     7,    32,    35,    35,
2034      159,   228,   219,    35,   241,   196,   289,   283,    66,   199,
2035      228,   262,    51,   261,   204,   197,   198,   286,   228,    49,
2036      200,   289,   289,   196,   179,     7,   241,   280,   200,   199,
2037      262,    37,     7,    32,    31,    46,   190,   260,   106,   201,
2038      201,    12,   201,   198,   199,   261,     7,     7,   260,    61,
2039      202,    47,   210,   260,   202,    46,     7,    45,    63,   203,
2040       52,   205,    34,   205,    37,   205,   261,     7,     7,     7,
2041      260,    48,   206,    12,    25,   211,   212,   285,   286,    35,
2042      206,     7,   260,    35,   211,     6,     7,     8,    35,    12,
2043       33,    35,     7,     7,    37,    35,   211,   211,     3,    12,
2044       37,   213,   214,   278,   285,   286,    25,   285,   214,   214,
2045       32,    37,     3,    12,    12,    37,   214,   214,    37,   213,
2046       37,   213,    37,    37
2047 };
2048
2049 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
2050 # define YYSIZE_T __SIZE_TYPE__
2051 #endif
2052 #if ! defined (YYSIZE_T) && defined (size_t)
2053 # define YYSIZE_T size_t
2054 #endif
2055 #if ! defined (YYSIZE_T)
2056 # if defined (__STDC__) || defined (__cplusplus)
2057 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
2058 #  define YYSIZE_T size_t
2059 # endif
2060 #endif
2061 #if ! defined (YYSIZE_T)
2062 # define YYSIZE_T unsigned int
2063 #endif
2064
2065 #define yyerrok         (yyerrstatus = 0)
2066 #define yyclearin       (yychar = YYEMPTY)
2067 #define YYEMPTY         (-2)
2068 #define YYEOF           0
2069
2070 #define YYACCEPT        goto yyacceptlab
2071 #define YYABORT         goto yyabortlab
2072 #define YYERROR         goto yyerrlab1
2073
2074
2075 /* Like YYERROR except do call yyerror.  This remains here temporarily
2076    to ease the transition to the new meaning of YYERROR, for GCC.
2077    Once GCC version 2 has supplanted version 1, this can go.  */
2078
2079 #define YYFAIL          goto yyerrlab
2080
2081 #define YYRECOVERING()  (!!yyerrstatus)
2082
2083 #define YYBACKUP(Token, Value)                                  \
2084 do                                                              \
2085   if (yychar == YYEMPTY && yylen == 1)                          \
2086     {                                                           \
2087       yychar = (Token);                                         \
2088       yylval = (Value);                                         \
2089       yytoken = YYTRANSLATE (yychar);                           \
2090       YYPOPSTACK;                                               \
2091       goto yybackup;                                            \
2092     }                                                           \
2093   else                                                          \
2094     {                                                           \
2095       yyerror ("syntax error: cannot back up");\
2096       YYERROR;                                                  \
2097     }                                                           \
2098 while (0)
2099
2100 #define YYTERROR        1
2101 #define YYERRCODE       256
2102
2103 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
2104    are run).  */
2105
2106 #ifndef YYLLOC_DEFAULT
2107 # define YYLLOC_DEFAULT(Current, Rhs, N)         \
2108   Current.first_line   = Rhs[1].first_line;      \
2109   Current.first_column = Rhs[1].first_column;    \
2110   Current.last_line    = Rhs[N].last_line;       \
2111   Current.last_column  = Rhs[N].last_column;
2112 #endif
2113
2114 /* YYLEX -- calling `yylex' with the right arguments.  */
2115
2116 #ifdef YYLEX_PARAM
2117 # define YYLEX yylex (YYLEX_PARAM)
2118 #else
2119 # define YYLEX yylex ()
2120 #endif
2121
2122 /* Enable debugging if requested.  */
2123 #if YYDEBUG
2124
2125 # ifndef YYFPRINTF
2126 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2127 #  define YYFPRINTF fprintf
2128 # endif
2129
2130 # define YYDPRINTF(Args)                        \
2131 do {                                            \
2132   if (yydebug)                                  \
2133     YYFPRINTF Args;                             \
2134 } while (0)
2135
2136 # define YYDSYMPRINT(Args)                      \
2137 do {                                            \
2138   if (yydebug)                                  \
2139     yysymprint Args;                            \
2140 } while (0)
2141
2142 # define YYDSYMPRINTF(Title, Token, Value, Location)            \
2143 do {                                                            \
2144   if (yydebug)                                                  \
2145     {                                                           \
2146       YYFPRINTF (stderr, "%s ", Title);                         \
2147       yysymprint (stderr,                                       \
2148                   Token, Value);        \
2149       YYFPRINTF (stderr, "\n");                                 \
2150     }                                                           \
2151 } while (0)
2152
2153 /*------------------------------------------------------------------.
2154 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2155 | TOP (cinluded).                                                   |
2156 `------------------------------------------------------------------*/
2157
2158 #if defined (__STDC__) || defined (__cplusplus)
2159 static void
2160 yy_stack_print (short *bottom, short *top)
2161 #else
2162 static void
2163 yy_stack_print (bottom, top)
2164     short *bottom;
2165     short *top;
2166 #endif
2167 {
2168   YYFPRINTF (stderr, "Stack now");
2169   for (/* Nothing. */; bottom <= top; ++bottom)
2170     YYFPRINTF (stderr, " %d", *bottom);
2171   YYFPRINTF (stderr, "\n");
2172 }
2173
2174 # define YY_STACK_PRINT(Bottom, Top)                            \
2175 do {                                                            \
2176   if (yydebug)                                                  \
2177     yy_stack_print ((Bottom), (Top));                           \
2178 } while (0)
2179
2180
2181 /*------------------------------------------------.
2182 | Report that the YYRULE is going to be reduced.  |
2183 `------------------------------------------------*/
2184
2185 #if defined (__STDC__) || defined (__cplusplus)
2186 static void
2187 yy_reduce_print (int yyrule)
2188 #else
2189 static void
2190 yy_reduce_print (yyrule)
2191     int yyrule;
2192 #endif
2193 {
2194   int yyi;
2195   unsigned int yylineno = yyrline[yyrule];
2196   YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
2197              yyrule - 1, yylineno);
2198   /* Print the symbols being reduced, and their result.  */
2199   for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
2200     YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
2201   YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
2202 }
2203
2204 # define YY_REDUCE_PRINT(Rule)          \
2205 do {                                    \
2206   if (yydebug)                          \
2207     yy_reduce_print (Rule);             \
2208 } while (0)
2209
2210 /* Nonzero means print parse trace.  It is left uninitialized so that
2211    multiple parsers can coexist.  */
2212 int yydebug;
2213 #else /* !YYDEBUG */
2214 # define YYDPRINTF(Args)
2215 # define YYDSYMPRINT(Args)
2216 # define YYDSYMPRINTF(Title, Token, Value, Location)
2217 # define YY_STACK_PRINT(Bottom, Top)
2218 # define YY_REDUCE_PRINT(Rule)
2219 #endif /* !YYDEBUG */
2220
2221
2222 /* YYINITDEPTH -- initial size of the parser's stacks.  */
2223 #ifndef YYINITDEPTH
2224 # define YYINITDEPTH 200
2225 #endif
2226
2227 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2228    if the built-in stack extension method is used).
2229
2230    Do not make this value too large; the results are undefined if
2231    SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
2232    evaluated with infinite-precision integer arithmetic.  */
2233
2234 #if YYMAXDEPTH == 0
2235 # undef YYMAXDEPTH
2236 #endif
2237
2238 #ifndef YYMAXDEPTH
2239 # define YYMAXDEPTH 10000
2240 #endif
2241
2242 \f
2243
2244 #if YYERROR_VERBOSE
2245
2246 # ifndef yystrlen
2247 #  if defined (__GLIBC__) && defined (_STRING_H)
2248 #   define yystrlen strlen
2249 #  else
2250 /* Return the length of YYSTR.  */
2251 static YYSIZE_T
2252 #   if defined (__STDC__) || defined (__cplusplus)
2253 yystrlen (const char *yystr)
2254 #   else
2255 yystrlen (yystr)
2256      const char *yystr;
2257 #   endif
2258 {
2259   register const char *yys = yystr;
2260
2261   while (*yys++ != '\0')
2262     continue;
2263
2264   return yys - yystr - 1;
2265 }
2266 #  endif
2267 # endif
2268
2269 # ifndef yystpcpy
2270 #  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
2271 #   define yystpcpy stpcpy
2272 #  else
2273 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2274    YYDEST.  */
2275 static char *
2276 #   if defined (__STDC__) || defined (__cplusplus)
2277 yystpcpy (char *yydest, const char *yysrc)
2278 #   else
2279 yystpcpy (yydest, yysrc)
2280      char *yydest;
2281      const char *yysrc;
2282 #   endif
2283 {
2284   register char *yyd = yydest;
2285   register const char *yys = yysrc;
2286
2287   while ((*yyd++ = *yys++) != '\0')
2288     continue;
2289
2290   return yyd - 1;
2291 }
2292 #  endif
2293 # endif
2294
2295 #endif /* !YYERROR_VERBOSE */
2296
2297 \f
2298
2299 #if YYDEBUG
2300 /*--------------------------------.
2301 | Print this symbol on YYOUTPUT.  |
2302 `--------------------------------*/
2303
2304 #if defined (__STDC__) || defined (__cplusplus)
2305 static void
2306 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
2307 #else
2308 static void
2309 yysymprint (yyoutput, yytype, yyvaluep)
2310     FILE *yyoutput;
2311     int yytype;
2312     YYSTYPE *yyvaluep;
2313 #endif
2314 {
2315   /* Pacify ``unused variable'' warnings.  */
2316   (void) yyvaluep;
2317
2318   if (yytype < YYNTOKENS)
2319     {
2320       YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2321 # ifdef YYPRINT
2322       YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2323 # endif
2324     }
2325   else
2326     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2327
2328   switch (yytype)
2329     {
2330       default:
2331         break;
2332     }
2333   YYFPRINTF (yyoutput, ")");
2334 }
2335
2336 #endif /* ! YYDEBUG */
2337 /*-----------------------------------------------.
2338 | Release the memory associated to this symbol.  |
2339 `-----------------------------------------------*/
2340
2341 #if defined (__STDC__) || defined (__cplusplus)
2342 static void
2343 yydestruct (int yytype, YYSTYPE *yyvaluep)
2344 #else
2345 static void
2346 yydestruct (yytype, yyvaluep)
2347     int yytype;
2348     YYSTYPE *yyvaluep;
2349 #endif
2350 {
2351   /* Pacify ``unused variable'' warnings.  */
2352   (void) yyvaluep;
2353
2354   switch (yytype)
2355     {
2356
2357       default:
2358         break;
2359     }
2360 }
2361 \f
2362
2363 /* Prevent warnings from -Wmissing-prototypes.  */
2364
2365 #ifdef YYPARSE_PARAM
2366 # if defined (__STDC__) || defined (__cplusplus)
2367 int yyparse (void *YYPARSE_PARAM);
2368 # else
2369 int yyparse ();
2370 # endif
2371 #else /* ! YYPARSE_PARAM */
2372 #if defined (__STDC__) || defined (__cplusplus)
2373 int yyparse (void);
2374 #else
2375 int yyparse ();
2376 #endif
2377 #endif /* ! YYPARSE_PARAM */
2378
2379
2380
2381 /* The lookahead symbol.  */
2382 int yychar;
2383
2384 /* The semantic value of the lookahead symbol.  */
2385 YYSTYPE yylval;
2386
2387 /* Number of syntax errors so far.  */
2388 int yynerrs;
2389
2390
2391
2392 /*----------.
2393 | yyparse.  |
2394 `----------*/
2395
2396 #ifdef YYPARSE_PARAM
2397 # if defined (__STDC__) || defined (__cplusplus)
2398 int yyparse (void *YYPARSE_PARAM)
2399 # else
2400 int yyparse (YYPARSE_PARAM)
2401   void *YYPARSE_PARAM;
2402 # endif
2403 #else /* ! YYPARSE_PARAM */
2404 #if defined (__STDC__) || defined (__cplusplus)
2405 int
2406 yyparse (void)
2407 #else
2408 int
2409 yyparse ()
2410
2411 #endif
2412 #endif
2413 {
2414   
2415   register int yystate;
2416   register int yyn;
2417   int yyresult;
2418   /* Number of tokens to shift before error messages enabled.  */
2419   int yyerrstatus;
2420   /* Lookahead token as an internal (translated) token number.  */
2421   int yytoken = 0;
2422
2423   /* Three stacks and their tools:
2424      `yyss': related to states,
2425      `yyvs': related to semantic values,
2426      `yyls': related to locations.
2427
2428      Refer to the stacks thru separate pointers, to allow yyoverflow
2429      to reallocate them elsewhere.  */
2430
2431   /* The state stack.  */
2432   short yyssa[YYINITDEPTH];
2433   short *yyss = yyssa;
2434   register short *yyssp;
2435
2436   /* The semantic value stack.  */
2437   YYSTYPE yyvsa[YYINITDEPTH];
2438   YYSTYPE *yyvs = yyvsa;
2439   register YYSTYPE *yyvsp;
2440
2441
2442
2443 #define YYPOPSTACK   (yyvsp--, yyssp--)
2444
2445   YYSIZE_T yystacksize = YYINITDEPTH;
2446
2447   /* The variables used to return semantic value and location from the
2448      action routines.  */
2449   YYSTYPE yyval;
2450
2451
2452   /* When reducing, the number of symbols on the RHS of the reduced
2453      rule.  */
2454   int yylen;
2455
2456   YYDPRINTF ((stderr, "Starting parse\n"));
2457
2458   yystate = 0;
2459   yyerrstatus = 0;
2460   yynerrs = 0;
2461   yychar = YYEMPTY;             /* Cause a token to be read.  */
2462
2463   /* Initialize stack pointers.
2464      Waste one element of value and location stack
2465      so that they stay on the same level as the state stack.
2466      The wasted elements are never initialized.  */
2467
2468   yyssp = yyss;
2469   yyvsp = yyvs;
2470
2471   goto yysetstate;
2472
2473 /*------------------------------------------------------------.
2474 | yynewstate -- Push a new state, which is found in yystate.  |
2475 `------------------------------------------------------------*/
2476  yynewstate:
2477   /* In all cases, when you get here, the value and location stacks
2478      have just been pushed. so pushing a state here evens the stacks.
2479      */
2480   yyssp++;
2481
2482  yysetstate:
2483   *yyssp = yystate;
2484
2485   if (yyss + yystacksize - 1 <= yyssp)
2486     {
2487       /* Get the current used size of the three stacks, in elements.  */
2488       YYSIZE_T yysize = yyssp - yyss + 1;
2489
2490 #ifdef yyoverflow
2491       {
2492         /* Give user a chance to reallocate the stack. Use copies of
2493            these so that the &'s don't force the real ones into
2494            memory.  */
2495         YYSTYPE *yyvs1 = yyvs;
2496         short *yyss1 = yyss;
2497
2498
2499         /* Each stack pointer address is followed by the size of the
2500            data in use in that stack, in bytes.  This used to be a
2501            conditional around just the two extra args, but that might
2502            be undefined if yyoverflow is a macro.  */
2503         yyoverflow ("parser stack overflow",
2504                     &yyss1, yysize * sizeof (*yyssp),
2505                     &yyvs1, yysize * sizeof (*yyvsp),
2506
2507                     &yystacksize);
2508
2509         yyss = yyss1;
2510         yyvs = yyvs1;
2511       }
2512 #else /* no yyoverflow */
2513 # ifndef YYSTACK_RELOCATE
2514       goto yyoverflowlab;
2515 # else
2516       /* Extend the stack our own way.  */
2517       if (YYMAXDEPTH <= yystacksize)
2518         goto yyoverflowlab;
2519       yystacksize *= 2;
2520       if (YYMAXDEPTH < yystacksize)
2521         yystacksize = YYMAXDEPTH;
2522
2523       {
2524         short *yyss1 = yyss;
2525         union yyalloc *yyptr =
2526           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2527         if (! yyptr)
2528           goto yyoverflowlab;
2529         YYSTACK_RELOCATE (yyss);
2530         YYSTACK_RELOCATE (yyvs);
2531
2532 #  undef YYSTACK_RELOCATE
2533         if (yyss1 != yyssa)
2534           YYSTACK_FREE (yyss1);
2535       }
2536 # endif
2537 #endif /* no yyoverflow */
2538
2539       yyssp = yyss + yysize - 1;
2540       yyvsp = yyvs + yysize - 1;
2541
2542
2543       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2544                   (unsigned long int) yystacksize));
2545
2546       if (yyss + yystacksize - 1 <= yyssp)
2547         YYABORT;
2548     }
2549
2550   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2551
2552   goto yybackup;
2553
2554 /*-----------.
2555 | yybackup.  |
2556 `-----------*/
2557 yybackup:
2558
2559 /* Do appropriate processing given the current state.  */
2560 /* Read a lookahead token if we need one and don't already have one.  */
2561 /* yyresume: */
2562
2563   /* First try to decide what to do without reference to lookahead token.  */
2564
2565   yyn = yypact[yystate];
2566   if (yyn == YYPACT_NINF)
2567     goto yydefault;
2568
2569   /* Not known => get a lookahead token if don't already have one.  */
2570
2571   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
2572   if (yychar == YYEMPTY)
2573     {
2574       YYDPRINTF ((stderr, "Reading a token: "));
2575       yychar = YYLEX;
2576     }
2577
2578   if (yychar <= YYEOF)
2579     {
2580       yychar = yytoken = YYEOF;
2581       YYDPRINTF ((stderr, "Now at end of input.\n"));
2582     }
2583   else
2584     {
2585       yytoken = YYTRANSLATE (yychar);
2586       YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
2587     }
2588
2589   /* If the proper action on seeing token YYTOKEN is to reduce or to
2590      detect an error, take that action.  */
2591   yyn += yytoken;
2592   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2593     goto yydefault;
2594   yyn = yytable[yyn];
2595   if (yyn <= 0)
2596     {
2597       if (yyn == 0 || yyn == YYTABLE_NINF)
2598         goto yyerrlab;
2599       yyn = -yyn;
2600       goto yyreduce;
2601     }
2602
2603   if (yyn == YYFINAL)
2604     YYACCEPT;
2605
2606   /* Shift the lookahead token.  */
2607   YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
2608
2609   /* Discard the token being shifted unless it is eof.  */
2610   if (yychar != YYEOF)
2611     yychar = YYEMPTY;
2612
2613   *++yyvsp = yylval;
2614
2615
2616   /* Count tokens shifted since error; after three, turn off error
2617      status.  */
2618   if (yyerrstatus)
2619     yyerrstatus--;
2620
2621   yystate = yyn;
2622   goto yynewstate;
2623
2624
2625 /*-----------------------------------------------------------.
2626 | yydefault -- do the default action for the current state.  |
2627 `-----------------------------------------------------------*/
2628 yydefault:
2629   yyn = yydefact[yystate];
2630   if (yyn == 0)
2631     goto yyerrlab;
2632   goto yyreduce;
2633
2634
2635 /*-----------------------------.
2636 | yyreduce -- Do a reduction.  |
2637 `-----------------------------*/
2638 yyreduce:
2639   /* yyn is the number of a rule to reduce with.  */
2640   yylen = yyr2[yyn];
2641
2642   /* If YYLEN is nonzero, implement the default value of the action:
2643      `$$ = $1'.
2644
2645      Otherwise, the following line sets YYVAL to garbage.
2646      This behavior is undocumented and Bison
2647      users should not rely upon it.  Assigning to YYVAL
2648      unconditionally makes the parser a bit smaller, and it avoids a
2649      GCC warning that YYVAL may be used uninitialized.  */
2650   yyval = yyvsp[1-yylen];
2651
2652
2653   YY_REDUCE_PRINT (yyn);
2654   switch (yyn)
2655     {
2656         case 2:
2657
2658     { lhExternals (yyvsp[0].interfacelist); ;}
2659     break;
2660
2661   case 3:
2662
2663     { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;}
2664     break;
2665
2666   case 4:
2667
2668     { yyval.interfacelist = interfaceNodeList_new (); ;}
2669     break;
2670
2671   case 5:
2672
2673     { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;}
2674     break;
2675
2676   case 8:
2677
2678     { yyval.interfacelist = interfaceNodeList_new (); ;}
2679     break;
2680
2681   case 9:
2682
2683     { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;}
2684     break;
2685
2686   case 10:
2687
2688     { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;}
2689     break;
2690
2691   case 11:
2692
2693     { yyval.interfacelist = interfaceNodeList_new (); ;}
2694     break;
2695
2696   case 12:
2697
2698     { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;}
2699     break;
2700
2701   case 16:
2702
2703     { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
2704      /* assume subspecs are already processed, symbol table info in external file */
2705    ;}
2706     break;
2707
2708   case 17:
2709
2710     { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;}
2711     break;
2712
2713   case 18:
2714
2715     { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;}
2716     break;
2717
2718   case 19:
2719
2720     { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;}
2721     break;
2722
2723   case 20:
2724
2725     { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;}
2726     break;
2727
2728   case 21:
2729
2730     { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;}
2731     break;
2732
2733   case 22:
2734
2735     { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;}
2736     break;
2737
2738   case 23:
2739
2740     { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;}
2741     break;
2742
2743   case 24:
2744
2745     { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;}
2746     break;
2747
2748   case 25:
2749
2750     { yyval.paramlist = paramNodeList_new (); ;}
2751     break;
2752
2753   case 26:
2754
2755     { yyval.paramlist = yyvsp[0].paramlist; ;}
2756     break;
2757
2758   case 27:
2759
2760     { yyval.paramlist = paramNodeList_add (paramNodeList_new (),  yyvsp[0].param); ;}
2761     break;
2762
2763   case 28:
2764
2765     { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;}
2766     break;
2767
2768   case 29:
2769
2770     { yyval.param = markYieldParamNode (yyvsp[0].param); ;}
2771     break;
2772
2773   case 30:
2774
2775     { yyval.param = yyvsp[0].param; ;}
2776     break;
2777
2778   case 31:
2779
2780     { symtable_export (g_symtab, FALSE); ;}
2781     break;
2782
2783   case 32:
2784
2785     { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;}
2786     break;
2787
2788   case 33:
2789
2790     { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface =  interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;}
2791     break;
2792
2793   case 34:
2794
2795     { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;}
2796     break;
2797
2798   case 35:
2799
2800     { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;}
2801     break;
2802
2803   case 36:
2804
2805     { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;}
2806     break;
2807
2808   case 37:
2809
2810     { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;}
2811     break;
2812
2813   case 38:
2814
2815     { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;}
2816     break;
2817
2818   case 39:
2819
2820     { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;}
2821     break;
2822
2823   case 40:
2824
2825     { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;}
2826     break;
2827
2828   case 41:
2829
2830     { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;}
2831     break;
2832
2833   case 42:
2834
2835     { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;}
2836     break;
2837
2838   case 43:
2839
2840     { yyval.typequal = qual_createPrintfLike (); ;}
2841     break;
2842
2843   case 44:
2844
2845     { yyval.typequal = qual_createScanfLike (); ;}
2846     break;
2847
2848   case 45:
2849
2850     { yyval.typequal = qual_createMessageLike (); ;}
2851     break;
2852
2853   case 46:
2854
2855     { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;}
2856     break;
2857
2858   case 47:
2859
2860     { yyval.fcn = makeFcnNode (qual_createUnknown (),  yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls, 
2861                        yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); 
2862      /* type, declarator, glovbls, privateinits,
2863         lets, checks, requires, modifies, ensures, claims */
2864      symtable_exitScope (g_symtab);
2865    ;}
2866     break;
2867
2868   case 48:
2869
2870     { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;}
2871     break;
2872
2873   case 49:
2874
2875     { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, 
2876                        yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); 
2877      /* type, declarator, glovbls, privateinits,
2878         lets, checks, requires, modifies, ensures, claims */
2879      symtable_exitScope (g_symtab);
2880    ;}
2881     break;
2882
2883   case 50:
2884
2885     { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;}
2886     break;
2887
2888   case 51:
2889
2890     {      yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate); 
2891      symtable_exitScope (g_symtab); ;}
2892     break;
2893
2894   case 52:
2895
2896     { yyval.claim = (claimNode) 0; ;}
2897     break;
2898
2899   case 53:
2900
2901     {g_inTypeDef = TRUE; ;}
2902     break;
2903
2904   case 54:
2905
2906     {g_inTypeDef = FALSE; ;}
2907     break;
2908
2909   case 55:
2910
2911     { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;}
2912     break;
2913
2914   case 56:
2915
2916     {g_inTypeDef = TRUE; ;}
2917     break;
2918
2919   case 57:
2920
2921     {g_inTypeDef = FALSE; ;}
2922     break;
2923
2924   case 58:
2925
2926     { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;}
2927     break;
2928
2929   case 59:
2930
2931     {g_inTypeDef = TRUE; ;}
2932     break;
2933
2934   case 60:
2935
2936     {g_inTypeDef = FALSE; ;}
2937     break;
2938
2939   case 61:
2940
2941     { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;}
2942     break;
2943
2944   case 62:
2945
2946     {g_inTypeDef = TRUE; ;}
2947     break;
2948
2949   case 63:
2950
2951     {g_inTypeDef = FALSE; ;}
2952     break;
2953
2954   case 64:
2955
2956     { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;}
2957     break;
2958
2959   case 65:
2960
2961     { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;}
2962     break;
2963
2964   case 66:
2965
2966     { g_inTypeDef = FALSE; ;}
2967     break;
2968
2969   case 67:
2970
2971     { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;}
2972     break;
2973
2974   case 68:
2975
2976     { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;}
2977     break;
2978
2979   case 69:
2980
2981     { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;}
2982     break;
2983
2984   case 70:
2985
2986     { yyval.importlist = importNodeList_add (importNodeList_new (),  yyvsp[0].import); ;}
2987     break;
2988
2989   case 71:
2990
2991     { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;}
2992     break;
2993
2994   case 72:
2995
2996     { yyval.import = importNode_makePlain (yyvsp[0].ltok); ;}
2997     break;
2998
2999   case 73:
3000
3001     { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;}
3002     break;
3003
3004   case 74:
3005
3006     { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;}
3007     break;
3008
3009   case 75:
3010
3011     { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;}
3012     break;
3013
3014   case 76:
3015
3016     { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;}
3017     break;
3018
3019   case 78:
3020
3021     { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (),  yyvsp[0].traitref); ;}
3022     break;
3023
3024   case 79:
3025
3026     { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;}
3027     break;
3028
3029   case 80:
3030
3031     { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;}
3032     break;
3033
3034   case 81:
3035
3036     { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;}
3037     break;
3038
3039   case 82:
3040
3041     { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;}
3042     break;
3043
3044   case 83:
3045
3046     { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;}
3047     break;
3048
3049   case 84:
3050
3051     { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;}
3052     break;
3053
3054   case 85:
3055
3056     { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;}
3057     break;
3058
3059   case 86:
3060
3061     { yyval.renaming = makeRenamingNode (typeNameNodeList_new (),  yyvsp[0].replacelist); ;}
3062     break;
3063
3064   case 87:
3065
3066     { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;}
3067     break;
3068
3069   case 88:
3070
3071     { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;}
3072     break;
3073
3074   case 89:
3075
3076     { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (),  yyvsp[0].typname); ;}
3077     break;
3078
3079   case 90:
3080
3081     { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;}
3082     break;
3083
3084   case 91:
3085
3086     { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (),  yyvsp[0].replace); ;}
3087     break;
3088
3089   case 92:
3090
3091     { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;}
3092     break;
3093
3094   case 93:
3095
3096     { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;}
3097     break;
3098
3099   case 94:
3100
3101     { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;}
3102     break;
3103
3104   case 95:
3105
3106     { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
3107                                                          yyvsp[-1].name, yyvsp[0].signature); ;}
3108     break;
3109
3110   case 96:
3111
3112     { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;}
3113     break;
3114
3115   case 97:
3116
3117     { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;}
3118     break;
3119
3120   case 100:
3121
3122     { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (),  yyvsp[0].initdecl); ;}
3123     break;
3124
3125   case 101:
3126
3127     { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;}
3128     break;
3129
3130   case 102:
3131
3132     { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;}
3133     break;
3134
3135   case 103:
3136
3137     { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;}
3138     break;
3139
3140   case 104:
3141
3142     { yyval.globals = varDeclarationNodeList_new (); ;}
3143     break;
3144
3145   case 105:
3146
3147     { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;}
3148     break;
3149
3150   case 106:
3151
3152     { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;}
3153     break;
3154
3155   case 107:
3156
3157     { yyval.vardeclaration = makeInternalStateNode (); ;}
3158     break;
3159
3160   case 108:
3161
3162     { yyval.vardeclaration = makeFileSystemNode (); ;}
3163     break;
3164
3165   case 109:
3166
3167     { yyval.vardeclarationlist = varDeclarationNodeList_new (); ;}
3168     break;
3169
3170   case 110:
3171
3172     { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;}
3173     break;
3174
3175   case 111:
3176
3177     { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;}
3178     break;
3179
3180   case 112:
3181
3182     { yyval.letdecls = letDeclNodeList_new (); ;}
3183     break;
3184
3185   case 113:
3186
3187     { yyval.letdecls = yyvsp[-1].letdecls; ;}
3188     break;
3189
3190   case 114:
3191
3192     { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (),  yyvsp[0].letdecl); ;}
3193     break;
3194
3195   case 115:
3196
3197     { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;}
3198     break;
3199
3200   case 116:
3201
3202     { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;}
3203     break;
3204
3205   case 117:
3206
3207     { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;}
3208     break;
3209
3210   case 119:
3211
3212     { yyval.lclpredicate = (lclPredicateNode)0; ;}
3213     break;
3214
3215   case 120:
3216
3217     { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;}
3218     break;
3219
3220   case 121:
3221
3222     { yyval.lclpredicate = (lclPredicateNode)0; ;}
3223     break;
3224
3225   case 122:
3226
3227     { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;}
3228     break;
3229
3230   case 123:
3231
3232     { yyval.modify = (modifyNode)0; ;}
3233     break;
3234
3235   case 124:
3236
3237     { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;}
3238     break;
3239
3240   case 125:
3241
3242     { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;}
3243     break;
3244
3245   case 126:
3246
3247     { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;}
3248     break;
3249
3250   case 127:
3251
3252     { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (),  yyvsp[0].storeref); ;}
3253     break;
3254
3255   case 128:
3256
3257     { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;}
3258     break;
3259
3260   case 129:
3261
3262     { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;}
3263     break;
3264
3265   case 130:
3266
3267     { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;}
3268     break;
3269
3270   case 131:
3271
3272     { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;}
3273     break;
3274
3275   case 132:
3276
3277     { yyval.storeref = makeStoreRefNodeInternal (); ;}
3278     break;
3279
3280   case 133:
3281
3282     { yyval.storeref = makeStoreRefNodeSystem (); ;}
3283     break;
3284
3285   case 134:
3286
3287     { yyval.lclpredicate = (lclPredicateNode)0; ;}
3288     break;
3289
3290   case 135:
3291
3292     { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;}
3293     break;
3294
3295   case 136:
3296
3297     { yyval.lclpredicate = (lclPredicateNode)0; ;}
3298     break;
3299
3300   case 137:
3301
3302     { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;}
3303     break;
3304
3305   case 138:
3306
3307     { yyval.paramlist = paramNodeList_new (); ;}
3308     break;
3309
3310   case 139:
3311
3312     { yyval.paramlist = yyvsp[0].paramlist; ;}
3313     break;
3314
3315   case 141:
3316
3317     { yyval.paramlist = paramNodeList_add (paramNodeList_new (),  paramNode_elipsis ()); ;}
3318     break;
3319
3320   case 142:
3321
3322     { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;}
3323     break;
3324
3325   case 143:
3326
3327     { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;}
3328     break;
3329
3330   case 144:
3331
3332     { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;}
3333     break;
3334
3335   case 145:
3336
3337     { yyval.program = (programNode)0; ;}
3338     break;
3339
3340   case 146:
3341
3342     { yyval.program = yyvsp[-1].program; ;}
3343     break;
3344
3345   case 147:
3346
3347     { yyval.program = yyvsp[-2].program; ;}
3348     break;
3349
3350   case 148:
3351
3352     { yyval.program = makeProgramNode (yyvsp[0].stmt); ;}
3353     break;
3354
3355   case 149:
3356
3357     { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;}
3358     break;
3359
3360   case 150:
3361
3362     { programNodeList x = programNodeList_new ();
3363      programNodeList_addh (x, yyvsp[-1].program);
3364      yyval.program = makeProgramNodeAction (x, ACT_ITER); 
3365    ;}
3366     break;
3367
3368   case 151:
3369
3370     { programNodeList x = programNodeList_new ();
3371      programNodeList_addh (x, yyvsp[-2].program);
3372      programNodeList_addh (x, yyvsp[0].program);
3373      yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE); 
3374    ;}
3375     break;
3376
3377   case 152:
3378
3379     { programNodeList x = programNodeList_new ();
3380      programNodeList_addh (x, yyvsp[-2].program);
3381      programNodeList_addh (x, yyvsp[0].program);
3382      yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE); 
3383    ;}
3384     break;
3385
3386   case 153:
3387
3388     { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;}
3389     break;
3390
3391   case 154:
3392
3393     { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;}
3394     break;
3395
3396   case 155:
3397
3398     { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;}
3399     break;
3400
3401   case 156:
3402
3403     { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;}
3404     break;
3405
3406   case 157:
3407
3408     { yyval.termlist = termNodeList_push (termNodeList_new (),  yyvsp[0].term); ;}
3409     break;
3410
3411   case 158:
3412
3413     { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;}
3414     break;
3415
3416   case 160:
3417
3418     { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;}
3419     break;
3420
3421   case 161:
3422
3423     { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;}
3424     break;
3425
3426   case 162:
3427
3428     { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;}
3429     break;
3430
3431   case 163:
3432
3433     { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;}
3434     break;
3435
3436   case 164:
3437
3438     { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;}
3439     break;
3440
3441   case 165:
3442
3443     { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (),  yyvsp[0].ltok); ;}
3444     break;
3445
3446   case 166:
3447
3448     { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;}
3449     break;
3450
3451   case 167:
3452
3453     { yyval.abstbody = (abstBodyNode)0; ;}
3454     break;
3455
3456   case 168:
3457
3458     { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;}
3459     break;
3460
3461   case 169:
3462
3463     { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;}
3464     break;
3465
3466   case 170:
3467
3468     { yyval.abstbody = (abstBodyNode)0; ;}
3469     break;
3470
3471   case 171:
3472
3473     { yyval.fcns = fcnNodeList_new (); ;}
3474     break;
3475
3476   case 172:
3477
3478     { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;}
3479     break;
3480
3481   case 173:
3482
3483     { yyval.lclpredicate = (lclPredicateNode)0; ;}
3484     break;
3485
3486   case 175:
3487
3488     { g_inTypeDef = FALSE; ;}
3489     break;
3490
3491   case 176:
3492
3493     { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
3494      checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
3495      yyval.lclpredicate = yyvsp[-1].lclpredicate;
3496      symtable_exitScope (g_symtab); 
3497      g_inTypeDef = TRUE;
3498    ;}
3499     break;
3500
3501   case 177:
3502
3503     { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (),  yyvsp[0].declaratorinv); ;}
3504     break;
3505
3506   case 178:
3507
3508     { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;}
3509     break;
3510
3511   case 179:
3512
3513     { declareForwardType (yyvsp[0].declare); ;}
3514     break;
3515
3516   case 180:
3517
3518     { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;}
3519     break;
3520
3521   case 181:
3522
3523     { yyval.abstbody = (abstBodyNode)0; ;}
3524     break;
3525
3526   case 182:
3527
3528     { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;}
3529     break;
3530
3531   case 183:
3532
3533     { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;}
3534     break;
3535
3536   case 184:
3537
3538     { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;}
3539     break;
3540
3541   case 185:
3542
3543     { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;}
3544     break;
3545
3546   case 186:
3547
3548     { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;}
3549     break;
3550
3551   case 187:
3552
3553     { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;}
3554     break;
3555
3556   case 188:
3557
3558     { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;}
3559     break;
3560
3561   case 189:
3562
3563     { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;}
3564     break;
3565
3566   case 190:
3567
3568     { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;}
3569     break;
3570
3571   case 191:
3572
3573     { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;}
3574     break;
3575
3576   case 192:
3577
3578     { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;}
3579     break;
3580
3581   case 193:
3582
3583     { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;}
3584     break;
3585
3586   case 194:
3587
3588     { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;}
3589     break;
3590
3591   case 195:
3592
3593     { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;}
3594     break;
3595
3596   case 196:
3597
3598     { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;}
3599     break;
3600
3601   case 197:
3602
3603     { yyval.typequal = qual_createOut (); ;}
3604     break;
3605
3606   case 198:
3607
3608     { yyval.typequal = qual_createUnused (); ;}
3609     break;
3610
3611   case 199:
3612
3613     { yyval.typequal = qual_createSef (); ;}
3614     break;
3615
3616   case 200:
3617
3618     { yyval.typequal = qual_createOnly (); ;}
3619     break;
3620
3621   case 201:
3622
3623     { yyval.typequal = qual_createOwned (); ;}
3624     break;
3625
3626   case 202:
3627
3628     { yyval.typequal = qual_createDependent (); ;}
3629     break;
3630
3631   case 203:
3632
3633     { yyval.typequal = qual_createKeep (); ;}
3634     break;
3635
3636   case 204:
3637
3638     { yyval.typequal = qual_createKept (); ;}
3639     break;
3640
3641   case 205:
3642
3643     { yyval.typequal = qual_createObserver (); ;}
3644     break;
3645
3646   case 206:
3647
3648     { yyval.typequal = qual_createExits (); ;}
3649     break;
3650
3651   case 207:
3652
3653     { yyval.typequal = qual_createMayExit (); ;}
3654     break;
3655
3656   case 208:
3657
3658     { yyval.typequal = qual_createTrueExit (); ;}
3659     break;
3660
3661   case 209:
3662
3663     { yyval.typequal = qual_createFalseExit (); ;}
3664     break;
3665
3666   case 210:
3667
3668     { yyval.typequal = qual_createNeverExit (); ;}
3669     break;
3670
3671   case 211:
3672
3673     { yyval.typequal = qual_createOnly (); ;}
3674     break;
3675
3676   case 212:
3677
3678     { yyval.typequal = qual_createShared (); ;}
3679     break;
3680
3681   case 213:
3682
3683     { yyval.typequal = qual_createUnique (); ;}
3684     break;
3685
3686   case 214:
3687
3688     { yyval.typequal = qual_createChecked (); ;}
3689     break;
3690
3691   case 215:
3692
3693     { yyval.typequal = qual_createUnchecked (); ;}
3694     break;
3695
3696   case 216:
3697
3698     { yyval.typequal = qual_createCheckedStrict (); ;}
3699     break;
3700
3701   case 217:
3702
3703     { yyval.typequal = qual_createTrueNull (); ;}
3704     break;
3705
3706   case 218:
3707
3708     { yyval.typequal = qual_createFalseNull (); ;}
3709     break;
3710
3711   case 219:
3712
3713     { yyval.typequal = qual_createRelNull (); ;}
3714     break;
3715
3716   case 220:
3717
3718     { yyval.typequal = qual_createRelDef (); ;}
3719     break;
3720
3721   case 221:
3722
3723     { yyval.typequal = qual_createRefCounted (); ;}
3724     break;
3725
3726   case 222:
3727
3728     { yyval.typequal = qual_createRefs (); ;}
3729     break;
3730
3731   case 223:
3732
3733     { yyval.typequal = qual_createNewRef (); ;}
3734     break;
3735
3736   case 224:
3737
3738     { yyval.typequal = qual_createKillRef (); ;}
3739     break;
3740
3741   case 225:
3742
3743     { yyval.typequal = qual_createNull (); ;}
3744     break;
3745
3746   case 226:
3747
3748     { yyval.typequal = qual_createNotNull (); ;}
3749     break;
3750
3751   case 227:
3752
3753     { yyval.typequal = qual_createReturned (); ;}
3754     break;
3755
3756   case 228:
3757
3758     { yyval.typequal = qual_createExposed (); ;}
3759     break;
3760
3761   case 229:
3762
3763     { yyval.typequal = qual_createPartial (); ;}
3764     break;
3765
3766   case 230:
3767
3768     { yyval.typequal = qual_createNullTerminated () ; ;}
3769     break;
3770
3771   case 231:
3772
3773     { yyval.typequal = qual_createUndef (); ;}
3774     break;
3775
3776   case 232:
3777
3778     { yyval.typequal = qual_createKilled (); ;}
3779     break;
3780
3781   case 233:
3782
3783     { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;}
3784     break;
3785
3786   case 234:
3787
3788     { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;}
3789     break;
3790
3791   case 235:
3792
3793     { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;}
3794     break;
3795
3796   case 236:
3797
3798     { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;}
3799     break;
3800
3801   case 237:
3802
3803     { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;}
3804     break;
3805
3806   case 239:
3807
3808     { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
3809      yyvsp[-1].lcltypespec->pointers = yyvsp[0].pointers; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;}
3810     break;
3811
3812   case 240:
3813
3814     { yyval.pointers = pointers_createLt (yyvsp[0].ltok); ;}
3815     break;
3816
3817   case 241:
3818
3819     { yyval.pointers = pointers_extend (yyvsp[-1].pointers, pointers_createLt (yyvsp[0].ltok)); ;}
3820     break;
3821
3822   case 242:
3823
3824     { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;}
3825     break;
3826
3827   case 243:
3828
3829     { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;}
3830     break;
3831
3832   case 244:
3833
3834     { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;}
3835     break;
3836
3837   case 245:
3838
3839     { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;}
3840     break;
3841
3842   case 246:
3843
3844     { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;}
3845     break;
3846
3847   case 247:
3848
3849     { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;}
3850     break;
3851
3852   case 248:
3853
3854     { yyval.ltok = ltoken_undefined; ;}
3855     break;
3856
3857   case 250:
3858
3859     { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (),  yyvsp[0].structdecl); ;}
3860     break;
3861
3862   case 251:
3863
3864     { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;}
3865     break;
3866
3867   case 252:
3868
3869     { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;}
3870     break;
3871
3872   case 253:
3873
3874     { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (),  yyvsp[0].declare); ;}
3875     break;
3876
3877   case 254:
3878
3879     { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;}
3880     break;
3881
3882   case 255:
3883
3884     { ; ;}
3885     break;
3886
3887   case 256:
3888
3889     { ; ;}
3890     break;
3891
3892   case 257:
3893
3894     { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;}
3895     break;
3896
3897   case 258:
3898
3899     { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;}
3900     break;
3901
3902   case 259:
3903
3904     { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;}
3905     break;
3906
3907   case 260:
3908
3909     { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;}
3910     break;
3911
3912   case 261:
3913
3914     { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;}
3915     break;
3916
3917   case 262:
3918
3919     { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;}
3920     break;
3921
3922   case 263:
3923
3924     { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;}
3925     break;
3926
3927   case 264:
3928
3929     { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;}
3930     break;
3931
3932   case 265:
3933
3934     { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;}
3935     break;
3936
3937   case 266:
3938
3939     { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;}
3940     break;
3941
3942   case 267:
3943
3944     { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;}
3945     break;
3946
3947   case 268:
3948
3949     { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;}
3950     break;
3951
3952   case 269:
3953
3954     { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;}
3955     break;
3956
3957   case 270:
3958
3959     { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;}
3960     break;
3961
3962   case 271:
3963
3964     { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;}
3965     break;
3966
3967   case 272:
3968
3969     { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;}
3970     break;
3971
3972   case 273:
3973
3974     { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;}
3975     break;
3976
3977   case 274:
3978
3979     { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;}
3980     break;
3981
3982   case 275:
3983
3984     { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;}
3985     break;
3986
3987   case 276:
3988
3989     { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;}
3990     break;
3991
3992   case 277:
3993
3994     { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;}
3995     break;
3996
3997   case 278:
3998
3999     { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;}
4000     break;
4001
4002   case 279:
4003
4004     { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;}
4005     break;
4006
4007   case 280:
4008
4009     { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;}
4010     break;
4011
4012   case 281:
4013
4014     { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;}
4015     break;
4016
4017   case 282:
4018
4019     { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;}
4020     break;
4021
4022   case 283:
4023
4024     { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;}
4025     break;
4026
4027   case 284:
4028
4029     { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;}
4030     break;
4031
4032   case 285:
4033
4034     { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;}
4035     break;
4036
4037   case 286:
4038
4039     { yyval.abstDecl = (abstDeclaratorNode)0; ;}
4040     break;
4041
4042   case 287:
4043
4044     { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;}
4045     break;
4046
4047   case 288:
4048
4049     { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;}
4050     break;
4051
4052   case 289:
4053
4054     { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;}
4055     break;
4056
4057   case 290:
4058
4059     { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;}
4060     break;
4061
4062   case 291:
4063
4064     { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;}
4065     break;
4066
4067   case 292:
4068
4069     { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;}
4070     break;
4071
4072   case 293:
4073
4074     { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;}
4075     break;
4076
4077   case 294:
4078
4079     { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;}
4080     break;
4081
4082   case 295:
4083
4084     { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;}
4085     break;
4086
4087   case 296:
4088
4089     { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;}
4090     break;
4091
4092   case 297:
4093
4094     { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;}
4095     break;
4096
4097   case 298:
4098
4099     { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;}
4100     break;
4101
4102   case 299:
4103
4104     { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
4105     break;
4106
4107   case 300:
4108
4109     { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
4110     break;
4111
4112   case 301:
4113
4114     { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;}
4115     break;
4116
4117   case 302:
4118
4119     { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM, 
4120                           opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;}
4121     break;
4122
4123   case 303:
4124
4125     { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;}
4126     break;
4127
4128   case 304:
4129
4130     { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;}
4131     break;
4132
4133   case 305:
4134
4135     { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;}
4136     break;
4137
4138   case 306:
4139
4140     { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;}
4141     break;
4142
4143   case 307:
4144
4145     { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;}
4146     break;
4147
4148   case 308:
4149
4150     { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;}
4151     break;
4152
4153   case 309:
4154
4155     { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;}
4156     break;
4157
4158   case 310:
4159
4160     { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;}
4161     break;
4162
4163   case 311:
4164
4165     { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT, 
4166                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
4167     break;
4168
4169   case 312:
4170
4171     { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP, 
4172                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
4173     break;
4174
4175   case 313:
4176
4177     { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT, 
4178                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
4179     break;
4180
4181   case 314:
4182
4183     { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP, 
4184                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
4185     break;
4186
4187   case 322:
4188
4189     { yyval.count = 0; ;}
4190     break;
4191
4192   case 324:
4193
4194     { yyval.count = 1; ;}
4195     break;
4196
4197   case 325:
4198
4199     { yyval.count = yyvsp[-2].count + 1; ;}
4200     break;
4201
4202   case 328:
4203
4204     { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;}
4205     break;
4206
4207   case 329:
4208
4209     { yyval.ltokenList = ltokenList_new (); ;}
4210     break;
4211
4212   case 331:
4213
4214     { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;}
4215     break;
4216
4217   case 332:
4218
4219     { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;}
4220     break;
4221
4222   case 333:
4223
4224     { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;}
4225     break;
4226
4227   case 334:
4228
4229     { yyval.term = checkSort (yyvsp[0].term); ;}
4230     break;
4231
4232   case 335:
4233
4234     { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;}
4235     break;
4236
4237   case 337:
4238
4239     { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;}
4240     break;
4241
4242   case 339:
4243
4244     { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
4245      symtable_exitScope (g_symtab); 
4246    ;}
4247     break;
4248
4249   case 340:
4250
4251     { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;}
4252     break;
4253
4254   case 341:
4255
4256     { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;}
4257     break;
4258
4259   case 343:
4260
4261     { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;}
4262     break;
4263
4264   case 344:
4265
4266     { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;}
4267     break;
4268
4269   case 348:
4270
4271     { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;}
4272     break;
4273
4274   case 349:
4275
4276     { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;}
4277     break;
4278
4279   case 350:
4280
4281     { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;}
4282     break;
4283
4284   case 351:
4285
4286     { yyval.termlist = pushInfixOpPartNode (termNodeList_new (),  yyvsp[-1].ltok, yyvsp[0].term); ;}
4287     break;
4288
4289   case 352:
4290
4291     { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;}
4292     break;
4293
4294   case 354:
4295
4296     { yyval.term = computePossibleSorts (yyvsp[0].term); ;}
4297     break;
4298
4299   case 355:
4300
4301     { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;}
4302     break;
4303
4304   case 356:
4305
4306     { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;}
4307     break;
4308
4309   case 357:
4310
4311     { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;}
4312     break;
4313
4314   case 358:
4315
4316     { yyval.term = computePossibleSorts (yyvsp[0].term); ;}
4317     break;
4318
4319   case 359:
4320
4321     { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;}
4322     break;
4323
4324   case 360:
4325
4326     { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;}
4327     break;
4328
4329   case 362:
4330
4331     { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok); 
4332      yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;}
4333     break;
4334
4335   case 363:
4336
4337     { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;}
4338     break;
4339
4340   case 364:
4341
4342     { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (),  yyvsp[-2].ltok); 
4343      yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); 
4344    ;}
4345     break;
4346
4347   case 365:
4348
4349     { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (),  yyvsp[0].ltok); ;}
4350     break;
4351
4352   case 366:
4353
4354     { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;}
4355     break;
4356
4357   case 367:
4358
4359     { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (),  yyvsp[0].ltok); ;}
4360     break;
4361
4362   case 368:
4363
4364     { yyval.termlist = termNodeList_push (termNodeList_new (),  yyvsp[0].term); ;}
4365     break;
4366
4367   case 369:
4368
4369     { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;}
4370     break;
4371
4372   case 370:
4373
4374     { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;}
4375     break;
4376
4377   case 371:
4378
4379     { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;}
4380     break;
4381
4382   case 372:
4383
4384     { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;}
4385     break;
4386
4387   case 374:
4388
4389     { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;}
4390     break;
4391
4392   case 375:
4393
4394     { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;}
4395     break;
4396
4397   case 376:
4398
4399     { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;}
4400     break;
4401
4402   case 377:
4403
4404     { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (),  yyvsp[0].ltok), 
4405                                 (termNode)0); ;}
4406     break;
4407
4408   case 378:
4409
4410     { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;}
4411     break;
4412
4413   case 379:
4414
4415     { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;}
4416     break;
4417
4418   case 380:
4419
4420     { yyval.termlist = termNodeList_push (termNodeList_new (),  yyvsp[0].term); ;}
4421     break;
4422
4423   case 381:
4424
4425     { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;}
4426     break;
4427
4428   case 387:
4429
4430     { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;}
4431     break;
4432
4433   case 388:
4434
4435     { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;}
4436     break;
4437
4438   case 389:
4439
4440     { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;}
4441     break;
4442
4443   case 390:
4444
4445     { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;}
4446     break;
4447
4448   case 391:
4449
4450     { termNodeList x = termNodeList_new (); 
4451      termNodeList_addh (x, yyvsp[-1].term);
4452      yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok); 
4453    ;}
4454     break;
4455
4456   case 392:
4457
4458     { termNodeList x = termNodeList_new ();
4459      termNodeList_addh (x, yyvsp[-3].term);
4460      termNodeList_addh (x, yyvsp[-1].term);
4461      yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok); 
4462    ;}
4463     break;
4464
4465   case 393:
4466
4467     { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;}
4468     break;
4469
4470   case 394:
4471
4472     { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortInt); ;}
4473     break;
4474
4475   case 395:
4476
4477     { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortCstring); ;}
4478     break;
4479
4480   case 396:
4481
4482     { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortChar); ;}
4483     break;
4484
4485   case 397:
4486
4487     { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortDouble); ;}
4488     break;
4489
4490   case 398:
4491
4492     { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (),  yyvsp[0].quantifier); ;}
4493     break;
4494
4495   case 399:
4496
4497     { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;}
4498     break;
4499
4500   case 400:
4501
4502     { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
4503                    si->kind = SPE_QUANT;
4504                    symtable_enterScope (g_symtab, si); ;}
4505     break;
4506
4507   case 401:
4508
4509     { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;}
4510     break;
4511
4512   case 402:
4513
4514     { yyval.vars = varNodeList_add (varNodeList_new (),  yyvsp[0].var); ;}
4515     break;
4516
4517   case 403:
4518
4519     { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;}
4520     break;
4521
4522   case 404:
4523
4524     { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;}
4525     break;
4526
4527   case 405:
4528
4529     { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;}
4530     break;
4531
4532
4533     }
4534
4535 /* Line 999 of yacc.c.  */
4536
4537 \f
4538   yyvsp -= yylen;
4539   yyssp -= yylen;
4540
4541
4542   YY_STACK_PRINT (yyss, yyssp);
4543
4544   *++yyvsp = yyval;
4545
4546
4547   /* Now `shift' the result of the reduction.  Determine what state
4548      that goes to, based on the state we popped back to and the rule
4549      number reduced by.  */
4550
4551   yyn = yyr1[yyn];
4552
4553   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
4554   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
4555     yystate = yytable[yystate];
4556   else
4557     yystate = yydefgoto[yyn - YYNTOKENS];
4558
4559   goto yynewstate;
4560
4561
4562 /*------------------------------------.
4563 | yyerrlab -- here on detecting error |
4564 `------------------------------------*/
4565 yyerrlab:
4566   /* If not already recovering from an error, report this error.  */
4567   if (!yyerrstatus)
4568     {
4569       ++yynerrs;
4570 #if YYERROR_VERBOSE
4571       yyn = yypact[yystate];
4572
4573       if (YYPACT_NINF < yyn && yyn < YYLAST)
4574         {
4575           YYSIZE_T yysize = 0;
4576           int yytype = YYTRANSLATE (yychar);
4577           char *yymsg;
4578           int yyx, yycount;
4579
4580           yycount = 0;
4581           /* Start YYX at -YYN if negative to avoid negative indexes in
4582              YYCHECK.  */
4583           for (yyx = yyn < 0 ? -yyn : 0;
4584                yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
4585             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
4586               yysize += yystrlen (yytname[yyx]) + 15, yycount++;
4587           yysize += yystrlen ("syntax error, unexpected ") + 1;
4588           yysize += yystrlen (yytname[yytype]);
4589           yymsg = (char *) YYSTACK_ALLOC (yysize);
4590           if (yymsg != 0)
4591             {
4592               char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
4593               yyp = yystpcpy (yyp, yytname[yytype]);
4594
4595               if (yycount < 5)
4596                 {
4597                   yycount = 0;
4598                   for (yyx = yyn < 0 ? -yyn : 0;
4599                        yyx < (int) (sizeof (yytname) / sizeof (char *));
4600                        yyx++)
4601                     if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
4602                       {
4603                         const char *yyq = ! yycount ? ", expecting " : " or ";
4604                         yyp = yystpcpy (yyp, yyq);
4605                         yyp = yystpcpy (yyp, yytname[yyx]);
4606                         yycount++;
4607                       }
4608                 }
4609               yyerror (yymsg);
4610               YYSTACK_FREE (yymsg);
4611             }
4612           else
4613             yyerror ("syntax error; also virtual memory exhausted");
4614         }
4615       else
4616 #endif /* YYERROR_VERBOSE */
4617         yyerror ("syntax error");
4618     }
4619
4620
4621
4622   if (yyerrstatus == 3)
4623     {
4624       /* If just tried and failed to reuse lookahead token after an
4625          error, discard it.  */
4626
4627       /* Return failure if at end of input.  */
4628       if (yychar == YYEOF)
4629         {
4630           /* Pop the error token.  */
4631           YYPOPSTACK;
4632           /* Pop the rest of the stack.  */
4633           while (yyss < yyssp)
4634             {
4635               YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
4636               yydestruct (yystos[*yyssp], yyvsp);
4637               YYPOPSTACK;
4638             }
4639           YYABORT;
4640         }
4641
4642       YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
4643       yydestruct (yytoken, &yylval);
4644       yychar = YYEMPTY;
4645
4646     }
4647
4648   /* Else will try to reuse lookahead token after shifting the error
4649      token.  */
4650   goto yyerrlab1;
4651
4652
4653 /*----------------------------------------------------.
4654 | yyerrlab1 -- error raised explicitly by an action.  |
4655 `----------------------------------------------------*/
4656 yyerrlab1:
4657   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
4658
4659   for (;;)
4660     {
4661       yyn = yypact[yystate];
4662       if (yyn != YYPACT_NINF)
4663         {
4664           yyn += YYTERROR;
4665           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
4666             {
4667               yyn = yytable[yyn];
4668               if (0 < yyn)
4669                 break;
4670             }
4671         }
4672
4673       /* Pop the current state because it cannot handle the error token.  */
4674       if (yyssp == yyss)
4675         YYABORT;
4676
4677       YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
4678       yydestruct (yystos[yystate], yyvsp);
4679       yyvsp--;
4680       yystate = *--yyssp;
4681
4682       YY_STACK_PRINT (yyss, yyssp);
4683     }
4684
4685   if (yyn == YYFINAL)
4686     YYACCEPT;
4687
4688   YYDPRINTF ((stderr, "Shifting error token, "));
4689
4690   *++yyvsp = yylval;
4691
4692
4693   yystate = yyn;
4694   goto yynewstate;
4695
4696
4697 /*-------------------------------------.
4698 | yyacceptlab -- YYACCEPT comes here.  |
4699 `-------------------------------------*/
4700 yyacceptlab:
4701   yyresult = 0;
4702   goto yyreturn;
4703
4704 /*-----------------------------------.
4705 | yyabortlab -- YYABORT comes here.  |
4706 `-----------------------------------*/
4707 yyabortlab:
4708   yyresult = 1;
4709   goto yyreturn;
4710
4711 #ifndef yyoverflow
4712 /*----------------------------------------------.
4713 | yyoverflowlab -- parser overflow comes here.  |
4714 `----------------------------------------------*/
4715 yyoverflowlab:
4716   yyerror ("parser stack overflow");
4717   yyresult = 2;
4718   /* Fall through.  */
4719 #endif
4720
4721 yyreturn:
4722 #ifndef yyoverflow
4723   if (yyss != yyssa)
4724     YYSTACK_FREE (yyss);
4725 #endif
4726   return yyresult;
4727 }
4728
4729
4730
4731
4732
4733 # include "bison.reset"
4734
4735 /*
4736 ** yytext is set in lex scanner 
4737 ** extern YYSTYPE yylval;  
4738 ** yylval is defined by code generated by bison 
4739 */
4740
4741 void ylerror (char *s) 
4742 {
4743   /* 
4744   ** This resetting of the left context is very important when multiple
4745   ** files are to be parsed.  We do not want failures to propagate.
4746   ** Lex/Yacc does not reset the flags when the parsing goes bad.  
4747   ** BEGIN 0;        
4748   **/
4749
4750   /*@-mustfree@*/
4751   lclfatalerror (yllval.ltok,
4752                  message ("%s: Token code: %s, Token String: %s", 
4753                           cstring_fromChars (s), 
4754                           ltoken_unparseCodeName (yllval.ltok), 
4755                           ltoken_getRawString (yllval.ltok)));
4756   /*@=mustfree@*/
4757 }
4758
4759 static void yyprint (FILE *f, int t, YYSTYPE value) 
4760 {
4761   fprintf (f, " type: %d (%s)", t, 
4762            cstring_toCharsSafe (ltoken_getRawString (value.ltok)));
4763 }
4764
4765
4766
4767
4768
4769
4770
4771
4772 /*
4773 ** Resets all flags in bison.head
4774 */
4775
4776
4777 /*@=allmacros@*/
4778 /*@=boolint@*/
4779 /*@=charint@*/
4780 /*@=macroparams@*/
4781 /*@=macroundef@*/
4782 /*@=unreachable@*/
4783 /*@=macrospec@*/
4784 /*@=varuse@*/
4785 /*@=ignorequals@*/
4786 /*@=macrostmt@*/
4787 /*@=noeffect@*/
4788 /*@=shadow@*/
4789 /*@=exitarg@*/
4790 /*@=macroredef@*/
4791 /*@=uniondef@*/
4792 /*@=compdef@*/
4793 /*@=matchfields@*/
4794 /*@=exportlocal@*/
4795 /*@=evalorderuncon@*/
4796 /*@=exportheader@*/
4797 /*@=typeuse@*/
4798 /*@=redecl@*/
4799 /*@=redef@*/
4800 /*@=noparams@*/
4801 /*@=ansireserved@*/
4802 /*@=fielduse@*/
4803 /*@=ifblock@*/
4804 /*@=elseifcomplete@*/
4805 /*@=whileblock@*/
4806 /*@=forblock@*/
4807 /*@=branchstate@*/
4808 /*@=readonlytrans@*/
4809 /*@=namechecks@*/
4810 /*@=usedef@*/
4811 /*@=systemunrecog@*/
4812 /*@=dependenttrans@*/
4813 /*@=unqualifiedtrans@*/
4814 /*@=declundef@*/
4815
4816
4817 /*drl added 11/27/2001*/
4818 /*@=bounds@*/
4819
4820 /*drl added 12/11/2002*/
4821 /*@=type@*/
This page took 0.424631 seconds and 3 git commands to generate.