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