2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
49 /*drl added 11/27/2001*/
52 /*drl added 12/11/2002*/
55 /* < end of bison.head > */
57 /* A Bison parser, made by GNU Bison 1.875a. */
59 /* Skeleton parser for Yacc-like parsing with Bison,
60 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
62 This program is free software; you can redistribute it and/or modify
63 it under the terms of the GNU General Public License as published by
64 the Free Software Foundation; either version 2, or (at your option)
67 This program is distributed in the hope that it will be useful,
68 but WITHOUT ANY WARRANTY; without even the implied warranty of
69 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
70 GNU General Public License for more details.
72 You should have received a copy of the GNU General Public License
73 along with this program; if not, write to the Free Software
74 Foundation, Inc., 59 Temple Place - Suite 330,
75 Boston, MA 02111-1307, USA. */
77 /* As a special exception, when this file is copied by Bison into a
78 Bison output file, you may use that output file without restriction.
79 This special exception was added by the Free Software Foundation
80 in version 1.24 of Bison. */
82 /* Written by Richard Stallman by simplifying the original so called
83 ``semantic'' parser. */
85 /* All symbols defined below should begin with yy or YY, to avoid
86 infringing on user name space. This should be done even for local
87 variables, as they might otherwise be expanded by user macros.
88 There are some unavoidable exceptions within include files to
89 define necessary library symbols; they are noted "INFRINGES ON
90 USER NAME SPACE" below. */
92 /* Identify Bison output. */
96 #define YYSKELETON_NAME "yacc.c"
101 /* Using locations. */
102 #define YYLSP_NEEDED 0
104 /* If NAME_PREFIX is specified substitute the variables and functions
106 #define yyparse ylparse
108 #define yyerror ylerror
109 #define yylval yllval
110 #define yychar ylchar
111 #define yydebug yldebug
112 #define yynerrs ylnerrs
118 /* Put the tokens into the symbol table, so that GDB and other debuggers
126 LLT_VERTICALBAR = 263,
131 LLT_IF_THEN_ELSE = 268,
136 LLT_WHITESPACE = 273,
138 LLT_TYPEDEF_NAME = 275,
176 LLT_CONSTRAINT = 313,
207 LLT_CHECKEDSTRICT = 344,
215 LLT_REFCOUNTED = 352,
220 LLT_NULLTERMINATED = 357,
228 LLT_TAGGEDUNION = 365,
252 LLT_PRINTFLIKE = 389,
254 LLT_MESSAGELIKE = 391
258 #define PREFIX_OP 259
259 #define POSTFIX_OP 260
260 #define LLT_MULOP 261
262 #define LLT_VERTICALBAR 263
263 #define ITERATION_OP 264
264 #define selectSym 265
265 #define LLT_LBRACKET 266
267 #define LLT_IF_THEN_ELSE 268
268 #define logicalOp 269
270 #define equationSym 271
271 #define commentSym 272
272 #define LLT_WHITESPACE 273
274 #define LLT_TYPEDEF_NAME 275
275 #define quantifierSym 276
281 #define markerSym 282
285 #define LLT_COLON 286
286 #define LLT_COMMA 287
287 #define LLT_EQUALS 288
288 #define LLT_LBRACE 289
289 #define LLT_RBRACE 290
290 #define LLT_RBRACKET 291
292 #define LLT_QUOTE 293
294 #define LLT_CCHAR 295
295 #define LLT_CFLOAT 296
296 #define LLT_CINTEGER 297
297 #define LLT_LCSTRING 298
299 #define LLT_ANYTHING 300
302 #define LLT_CLAIMS 303
303 #define LLT_CHECKS 304
304 #define LLT_CONSTANT 305
306 #define LLT_ENSURES 307
308 #define LLT_FRESH 309
310 #define LLT_IMMUTABLE 311
311 #define LLT_IMPORTS 312
312 #define LLT_CONSTRAINT 313
313 #define LLT_ISSUB 314
315 #define LLT_MODIFIES 316
316 #define LLT_MUTABLE 317
317 #define LLT_NOTHING 318
318 #define LLT_INTERNAL 319
319 #define LLT_FILESYS 320
324 #define LLT_PARTIAL 325
325 #define LLT_OWNED 326
326 #define LLT_DEPENDENT 327
330 #define LLT_SHARED 331
331 #define LLT_UNIQUE 332
332 #define LLT_UNUSED 333
333 #define LLT_EXITS 334
334 #define LLT_MAYEXIT 335
335 #define LLT_NEVEREXIT 336
336 #define LLT_TRUEEXIT 337
337 #define LLT_FALSEEXIT 338
338 #define LLT_UNDEF 339
339 #define LLT_KILLED 340
340 #define LLT_CHECKMOD 341
341 #define LLT_CHECKED 342
342 #define LLT_UNCHECKED 343
343 #define LLT_CHECKEDSTRICT 344
344 #define LLT_TRUENULL 345
345 #define LLT_FALSENULL 346
346 #define LLT_LNULL 347
347 #define LLT_LNOTNULL 348
348 #define LLT_RETURNED 349
349 #define LLT_OBSERVER 350
350 #define LLT_EXPOSED 351
351 #define LLT_REFCOUNTED 352
353 #define LLT_RELNULL 354
354 #define LLT_RELDEF 355
355 #define LLT_KILLREF 356
356 #define LLT_NULLTERMINATED 357
357 #define LLT_TEMPREF 358
358 #define LLT_NEWREF 359
359 #define LLT_PRIVATE 360
360 #define LLT_REQUIRES 361
361 #define LLT_RESULT 362
362 #define LLT_SIZEOF 363
364 #define LLT_TAGGEDUNION 365
367 #define LLT_TYPEDEF 368
368 #define LLT_UNCHANGED 369
371 #define LLT_CONST 372
372 #define LLT_DOUBLE 373
374 #define LLT_FLOAT 375
377 #define LLT_YIELD 378
379 #define LLT_SHORT 380
380 #define LLT_SIGNED 381
381 #define LLT_UNKNOWN 382
382 #define LLT_STRUCT 383
383 #define LLT_TELIPSIS 384
384 #define LLT_UNION 385
385 #define LLT_UNSIGNED 386
387 #define LLT_VOLATILE 388
388 #define LLT_PRINTFLIKE 389
389 #define LLT_SCANFLIKE 390
390 #define LLT_MESSAGELIKE 391
395 /* Copy the first part of user declarations. */
399 # include "splintMacros.nf"
401 # include "lclscan.h"
402 # include "checking.h"
403 # include "lslparse.h"
405 # include "usymtab_interface.h"
408 static /*@unused@*/ void yyprint ();
412 void ylerror (char *) /*@modifies *g_warningstream@*/ ;
415 bool g_inTypeDef = FALSE;
417 /*@constant int YYDEBUG;@*/
421 # define YYPRINT(file, type, value) yyprint (file, type, value)
424 ** This is necessary, or else when the bison-generated code #include's malloc.h,
425 ** there will be a parse error.
427 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
428 ** in bison-generated files under Win32.
439 /* Enabling traces. */
444 /* Enabling verbose error messages. */
445 #ifdef YYERROR_VERBOSE
446 # undef YYERROR_VERBOSE
447 # define YYERROR_VERBOSE 1
449 # define YYERROR_VERBOSE 0
452 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
454 typedef union YYSTYPE {
455 ltoken ltok; /* a leaf is also an ltoken */
458 /*@only@*/ ltokenList ltokenList;
459 /*@only@*/ abstDeclaratorNode abstDecl;
460 /*@only@*/ declaratorNode declare;
461 /*@only@*/ declaratorNodeList declarelist;
462 /*@only@*/ typeExpr typeexpr;
463 /*@only@*/ arrayQualNode array;
464 /*@only@*/ quantifierNode quantifier;
465 /*@only@*/ quantifierNodeList quantifiers;
466 /*@only@*/ varNode var;
467 /*@only@*/ varNodeList vars;
468 /*@only@*/ storeRefNode storeref;
469 /*@only@*/ storeRefNodeList storereflist;
470 /*@only@*/ termNode term;
471 /*@only@*/ termNodeList termlist;
472 /*@only@*/ programNode program;
473 /*@only@*/ stmtNode stmt;
474 /*@only@*/ claimNode claim;
475 /*@only@*/ typeNode type;
476 /*@only@*/ iterNode iter;
477 /*@only@*/ fcnNode fcn;
478 /*@only@*/ fcnNodeList fcns;
479 /*@only@*/ letDeclNode letdecl;
480 /*@only@*/ letDeclNodeList letdecls;
481 /*@only@*/ lclPredicateNode lclpredicate;
482 /*@only@*/ modifyNode modify;
483 /*@only@*/ paramNode param;
484 /*@only@*/ paramNodeList paramlist;
485 /*@only@*/ declaratorInvNodeList declaratorinvs;
486 /*@only@*/ declaratorInvNode declaratorinv;
487 /*@only@*/ abstBodyNode abstbody;
488 /*@only@*/ abstractNode abstract;
489 /*@only@*/ exposedNode exposed;
490 /*@only@*/ pointers pointers;
491 /* taggedUnionNode taggedunion; */
492 /*@only@*/ globalList globals;
493 /*@only@*/ constDeclarationNode constdeclaration;
494 /*@only@*/ varDeclarationNode vardeclaration;
495 /*@only@*/ varDeclarationNodeList vardeclarationlist;
496 /*@only@*/ initDeclNodeList initdecls;
497 /*@only@*/ initDeclNode initdecl;
498 /*@only@*/ stDeclNodeList structdecls;
499 /*@only@*/ stDeclNode structdecl;
500 /*@only@*/ strOrUnionNode structorunion;
501 /*@only@*/ enumSpecNode enumspec;
502 /*@only@*/ lclTypeSpecNode lcltypespec;
503 /*@only@*/ typeNameNode typname;
504 /*@only@*/ opFormNode opform;
505 /*@only@*/ sigNode signature;
506 /*@only@*/ nameNode name;
507 /*@only@*/ typeNameNodeList namelist;
508 /*@only@*/ replaceNode replace;
509 /*@only@*/ replaceNodeList replacelist;
510 /*@only@*/ renamingNode renaming;
511 /*@only@*/ traitRefNode traitref;
512 /*@only@*/ traitRefNodeList traitreflist;
513 /*@only@*/ importNode import;
514 /*@only@*/ importNodeList importlist;
515 /*@only@*/ interfaceNode iface;
516 /*@only@*/ interfaceNodeList interfacelist;
517 /*@only@*/ CTypesNode ctypes;
520 /* Line 191 of yacc.c. */
522 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
523 # define YYSTYPE_IS_DECLARED 1
524 # define YYSTYPE_IS_TRIVIAL 1
529 /* Copy the second part of user declarations. */
532 /* Line 214 of yacc.c. */
535 #if ! defined (yyoverflow) || YYERROR_VERBOSE
537 /* The parser invokes alloca or malloc; define the necessary symbols. */
539 # if YYSTACK_USE_ALLOCA
540 # define YYSTACK_ALLOC alloca
542 # ifndef YYSTACK_USE_ALLOCA
543 # if defined (alloca) || defined (_ALLOCA_H)
544 # define YYSTACK_ALLOC alloca
547 # define YYSTACK_ALLOC __builtin_alloca
553 # ifdef YYSTACK_ALLOC
554 /* Pacify GCC's `empty if-body' warning. */
555 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
557 # if defined (__STDC__) || defined (__cplusplus)
558 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
559 # define YYSIZE_T size_t
561 # define YYSTACK_ALLOC malloc
562 # define YYSTACK_FREE free
564 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
567 #if (! defined (yyoverflow) \
568 && (! defined (__cplusplus) \
569 || (YYSTYPE_IS_TRIVIAL)))
571 /* A type that is properly aligned for any stack member. */
578 /* The size of the maximum gap between one aligned stack and the next. */
579 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
581 /* The size of an array large to enough to hold all stacks, each with
583 # define YYSTACK_BYTES(N) \
584 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
585 + YYSTACK_GAP_MAXIMUM)
587 /* Copy COUNT objects from FROM to TO. The source and destination do
591 # define YYCOPY(To, From, Count) \
592 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
594 # define YYCOPY(To, From, Count) \
597 register YYSIZE_T yyi; \
598 for (yyi = 0; yyi < (Count); yyi++) \
599 (To)[yyi] = (From)[yyi]; \
605 /* Relocate STACK from its old location to the new one. The
606 local variables YYSIZE and YYSTACKSIZE give the old and new number of
607 elements in the stack, and YYPTR gives the new location of the
608 stack. Advance YYPTR to a properly aligned location for the next
610 # define YYSTACK_RELOCATE(Stack) \
613 YYSIZE_T yynewbytes; \
614 YYCOPY (&yyptr->Stack, Stack, yysize); \
615 Stack = &yyptr->Stack; \
616 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
617 yyptr += yynewbytes / sizeof (*yyptr); \
623 #if defined (__STDC__) || defined (__cplusplus)
624 typedef signed char yysigned_char;
626 typedef short yysigned_char;
629 /* YYFINAL -- State number of the termination state. */
631 /* YYLAST -- Last index in YYTABLE. */
634 /* YYNTOKENS -- Number of terminals. */
635 #define YYNTOKENS 137
636 /* YYNNTS -- Number of nonterminals. */
638 /* YYNRULES -- Number of rules. */
640 /* YYNRULES -- Number of states. */
641 #define YYNSTATES 684
643 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
645 #define YYMAXUTOK 391
647 #define YYTRANSLATE(YYX) \
648 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
650 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
651 static const unsigned char yytranslate[] =
653 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
654 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
655 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
656 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
657 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
658 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
659 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
660 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
661 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
662 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
663 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
664 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
665 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
666 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
667 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
668 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
669 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
670 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
671 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
672 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
673 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
674 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
675 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
676 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
677 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
678 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
679 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
680 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
681 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
682 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
683 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
684 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
685 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
686 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
687 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
688 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
689 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
690 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
691 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
696 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
698 static const unsigned short yyprhs[] =
700 0, 0, 3, 4, 8, 9, 12, 14, 16, 17,
701 20, 23, 24, 27, 29, 31, 33, 37, 41, 43,
702 45, 47, 49, 51, 53, 60, 61, 63, 65, 69,
703 72, 74, 75, 79, 81, 83, 85, 87, 92, 96,
704 101, 106, 108, 110, 112, 114, 116, 117, 131, 132,
705 147, 148, 162, 167, 168, 169, 176, 177, 178, 186,
706 187, 188, 196, 197, 198, 205, 206, 207, 214, 217,
707 220, 222, 226, 228, 232, 234, 236, 240, 242, 244,
708 248, 250, 255, 259, 266, 268, 272, 274, 276, 280,
709 282, 286, 288, 292, 296, 300, 305, 307, 309, 311,
710 313, 315, 319, 321, 325, 326, 329, 333, 336, 339,
711 340, 343, 348, 349, 353, 355, 359, 365, 369, 371,
712 372, 376, 377, 381, 382, 386, 390, 394, 396, 400,
713 402, 404, 407, 409, 411, 412, 416, 417, 421, 422,
714 424, 426, 428, 432, 434, 438, 439, 444, 450, 452,
715 456, 459, 463, 467, 472, 476, 482, 489, 491, 495,
716 497, 499, 502, 505, 509, 513, 517, 522, 524, 528,
717 533, 537, 538, 541, 542, 544, 545, 552, 554, 558,
718 559, 563, 564, 568, 570, 572, 574, 576, 578, 580,
719 582, 584, 586, 588, 590, 593, 595, 597, 599, 601,
720 603, 605, 607, 609, 611, 613, 615, 617, 619, 621,
721 623, 625, 627, 629, 631, 633, 635, 637, 639, 641,
722 643, 645, 647, 649, 651, 653, 655, 657, 659, 661,
723 663, 665, 667, 669, 671, 673, 675, 678, 684, 686,
724 689, 691, 694, 695, 702, 703, 710, 713, 716, 717,
725 719, 721, 724, 728, 730, 734, 735, 737, 744, 747,
726 749, 753, 755, 757, 759, 763, 766, 769, 773, 778,
727 780, 784, 787, 790, 794, 799, 801, 804, 807, 811,
728 816, 819, 822, 825, 828, 832, 834, 835, 837, 841,
729 844, 846, 848, 851, 855, 859, 864, 867, 871, 878,
730 880, 883, 886, 890, 894, 899, 904, 910, 914, 919,
731 924, 930, 933, 936, 940, 944, 946, 948, 950, 952,
732 954, 956, 958, 959, 961, 963, 967, 969, 971, 976,
733 977, 979, 981, 985, 987, 989, 996, 998, 1002, 1004,
734 1009, 1013, 1017, 1019, 1022, 1025, 1027, 1029, 1031, 1034,
735 1036, 1039, 1042, 1046, 1048, 1050, 1053, 1056, 1060, 1062,
736 1065, 1069, 1071, 1077, 1081, 1086, 1089, 1093, 1096, 1098,
737 1102, 1106, 1108, 1113, 1115, 1118, 1122, 1126, 1130, 1135,
738 1139, 1141, 1145, 1147, 1149, 1151, 1153, 1155, 1157, 1162,
739 1167, 1172, 1177, 1184, 1189, 1191, 1193, 1195, 1197, 1199,
740 1202, 1203, 1207, 1209, 1213, 1217, 1222, 1224, 1226, 1228,
741 1230, 1232, 1234, 1236, 1238
744 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
745 static const short yyrhs[] =
747 138, 0, -1, -1, 140, 139, 142, -1, -1, 140,
748 141, -1, 145, -1, 146, -1, -1, 147, 143, -1,
749 152, 143, -1, -1, 143, 144, -1, 147, -1, 152,
750 -1, 146, -1, 57, 176, 7, -1, 115, 180, 7,
751 -1, 155, -1, 156, -1, 157, -1, 159, -1, 162,
752 -1, 148, -1, 122, 286, 12, 149, 37, 7, -1,
753 -1, 150, -1, 151, -1, 150, 32, 151, -1, 123,
754 245, -1, 245, -1, -1, 109, 153, 154, -1, 155,
755 -1, 156, -1, 157, -1, 159, -1, 50, 228, 190,
756 7, -1, 228, 190, 7, -1, 117, 228, 190, 7,
757 -1, 133, 228, 190, 7, -1, 164, -1, 173, -1,
758 134, -1, 135, -1, 136, -1, -1, 228, 241, 192,
759 160, 34, 194, 196, 200, 201, 202, 205, 206, 35,
760 -1, -1, 158, 228, 241, 192, 161, 34, 194, 196,
761 200, 201, 202, 205, 206, 35, -1, -1, 48, 288,
762 12, 207, 37, 192, 163, 34, 196, 201, 210, 205,
763 35, -1, 48, 285, 288, 7, -1, -1, -1, 62,
764 165, 112, 20, 166, 215, -1, -1, -1, 62, 167,
765 97, 112, 20, 168, 215, -1, -1, -1, 97, 62,
766 169, 112, 20, 170, 215, -1, -1, -1, 56, 171,
767 112, 20, 172, 215, -1, -1, -1, 113, 228, 174,
768 220, 175, 7, -1, 231, 7, -1, 239, 7, -1,
769 177, -1, 176, 32, 177, -1, 179, -1, 3, 179,
770 3, -1, 43, -1, 179, -1, 178, 32, 179, -1,
771 284, -1, 181, -1, 180, 32, 181, -1, 290, -1,
772 290, 12, 183, 37, -1, 12, 182, 37, -1, 12,
773 182, 37, 12, 183, 37, -1, 290, -1, 182, 32,
774 290, -1, 185, -1, 184, -1, 184, 32, 185, -1,
775 246, -1, 184, 32, 246, -1, 186, -1, 185, 32,
776 186, -1, 246, 53, 224, -1, 246, 53, 187, -1,
777 246, 53, 187, 257, -1, 291, -1, 250, -1, 189,
778 -1, 261, -1, 191, -1, 190, 32, 191, -1, 241,
779 -1, 241, 33, 188, -1, -1, 192, 193, -1, 228,
780 190, 7, -1, 64, 7, -1, 65, 7, -1, -1,
781 194, 195, -1, 105, 228, 190, 7, -1, -1, 60,
782 197, 7, -1, 198, -1, 197, 32, 198, -1, 286,
783 31, 199, 46, 261, -1, 286, 46, 261, -1, 228,
784 -1, -1, 49, 260, 7, -1, -1, 106, 260, 7,
785 -1, -1, 61, 63, 7, -1, 61, 45, 7, -1,
786 61, 203, 7, -1, 204, -1, 203, 32, 204, -1,
787 261, -1, 229, -1, 66, 229, -1, 64, -1, 65,
788 -1, -1, 52, 260, 7, -1, -1, 48, 260, 7,
789 -1, -1, 208, -1, 209, -1, 129, -1, 209, 32,
790 129, -1, 245, -1, 209, 32, 245, -1, -1, 47,
791 34, 211, 35, -1, 47, 34, 211, 7, 35, -1,
792 212, -1, 12, 211, 37, -1, 211, 6, -1, 211,
793 8, 211, -1, 211, 7, 211, -1, 285, 12, 213,
794 37, -1, 285, 12, 37, -1, 286, 33, 285, 12,
795 37, -1, 286, 33, 285, 12, 213, 37, -1, 214,
796 -1, 213, 32, 214, -1, 278, -1, 286, -1, 3,
797 214, -1, 214, 3, -1, 214, 3, 214, -1, 12,
798 214, 37, -1, 285, 12, 37, -1, 285, 12, 213,
799 37, -1, 7, -1, 34, 216, 35, -1, 34, 178,
800 35, 7, -1, 34, 35, 7, -1, -1, 216, 159,
801 -1, -1, 218, -1, -1, 58, 219, 280, 12, 260,
802 37, -1, 221, -1, 220, 32, 221, -1, -1, 241,
803 222, 223, -1, -1, 34, 217, 35, -1, 132, -1,
804 116, -1, 118, -1, 120, -1, 121, -1, 124, -1,
805 125, -1, 126, -1, 131, -1, 127, -1, 224, -1,
806 225, 224, -1, 20, -1, 225, -1, 67, -1, 78,
807 -1, 68, -1, 69, -1, 71, -1, 72, -1, 73,
808 -1, 74, -1, 95, -1, 79, -1, 80, -1, 82,
809 -1, 83, -1, 81, -1, 75, -1, 76, -1, 77,
810 -1, 87, -1, 88, -1, 89, -1, 90, -1, 91,
811 -1, 99, -1, 100, -1, 97, -1, 98, -1, 104,
812 -1, 101, -1, 92, -1, 93, -1, 94, -1, 96,
813 -1, 70, -1, 102, -1, 84, -1, 85, -1, 226,
814 -1, 231, -1, 239, -1, 227, 228, -1, 8, 229,
815 31, 229, 8, -1, 228, -1, 228, 230, -1, 6,
816 -1, 230, 6, -1, -1, 128, 234, 232, 34, 235,
817 35, -1, -1, 130, 234, 233, 34, 235, 35, -1,
818 128, 287, -1, 130, 287, -1, -1, 287, -1, 236,
819 -1, 235, 236, -1, 228, 237, 7, -1, 241, -1,
820 237, 32, 241, -1, -1, 32, -1, 119, 234, 34,
821 240, 238, 35, -1, 119, 287, -1, 25, -1, 240,
822 32, 25, -1, 243, -1, 242, -1, 286, -1, 12,
823 242, 37, -1, 6, 242, -1, 242, 249, -1, 242,
824 12, 37, -1, 242, 12, 208, 37, -1, 20, -1,
825 12, 243, 37, -1, 6, 243, -1, 243, 249, -1,
826 243, 12, 37, -1, 243, 12, 208, 37, -1, 20,
827 -1, 6, 244, -1, 244, 249, -1, 244, 12, 37,
828 -1, 244, 12, 208, 37, -1, 228, 244, -1, 228,
829 242, -1, 228, 247, -1, 228, 247, -1, 66, 228,
830 247, -1, 250, -1, -1, 248, -1, 12, 248, 37,
831 -1, 6, 248, -1, 6, -1, 249, -1, 248, 249,
832 -1, 248, 12, 37, -1, 12, 208, 37, -1, 248,
833 12, 208, 37, -1, 11, 36, -1, 11, 189, 36,
834 -1, 55, 27, 111, 27, 51, 27, -1, 253, -1,
835 27, 253, -1, 253, 27, -1, 27, 253, 27, -1,
836 251, 254, 252, -1, 27, 251, 254, 252, -1, 251,
837 254, 252, 27, -1, 27, 251, 254, 252, 27, -1,
838 11, 254, 36, -1, 11, 254, 36, 27, -1, 27,
839 11, 254, 36, -1, 27, 11, 254, 36, 27, -1,
840 10, 284, -1, 26, 284, -1, 27, 10, 284, -1,
841 27, 26, 284, -1, 22, -1, 34, -1, 23, -1,
842 35, -1, 265, -1, 14, -1, 39, -1, -1, 255,
843 -1, 27, -1, 255, 256, 27, -1, 32, -1, 24,
844 -1, 31, 258, 26, 289, -1, -1, 259, -1, 289,
845 -1, 259, 32, 289, -1, 261, -1, 262, -1, 55,
846 262, 111, 262, 51, 262, -1, 263, -1, 262, 14,
847 262, -1, 264, -1, 279, 12, 260, 37, -1, 264,
848 39, 264, -1, 264, 33, 264, -1, 266, -1, 269,
849 267, -1, 269, 268, -1, 3, -1, 6, -1, 269,
850 -1, 265, 266, -1, 265, -1, 267, 265, -1, 265,
851 269, -1, 268, 265, 269, -1, 274, -1, 270, -1,
852 270, 274, -1, 274, 270, -1, 274, 270, 274, -1,
853 271, -1, 271, 274, -1, 272, 31, 289, -1, 272,
854 -1, 11, 273, 36, 31, 289, -1, 11, 273, 36,
855 -1, 11, 36, 31, 289, -1, 11, 36, -1, 251,
856 273, 252, -1, 251, 252, -1, 261, -1, 273, 256,
857 261, -1, 12, 262, 37, -1, 286, -1, 291, 12,
858 275, 37, -1, 277, -1, 274, 276, -1, 274, 10,
859 284, -1, 274, 26, 284, -1, 274, 11, 36, -1,
860 274, 11, 275, 36, -1, 274, 31, 289, -1, 262,
861 -1, 275, 32, 262, -1, 28, -1, 29, -1, 30,
862 -1, 38, -1, 278, -1, 107, -1, 54, 12, 275,
863 37, -1, 114, 12, 44, 37, -1, 114, 12, 203,
864 37, -1, 108, 12, 261, 37, -1, 59, 12, 261,
865 32, 261, 37, -1, 108, 12, 228, 37, -1, 42,
866 -1, 43, -1, 40, -1, 41, -1, 280, -1, 279,
867 280, -1, -1, 21, 281, 282, -1, 283, -1, 282,
868 32, 283, -1, 286, 31, 199, -1, 286, 31, 66,
869 199, -1, 25, -1, 20, -1, 25, -1, 25, -1,
870 284, -1, 284, -1, 284, -1, 284, -1, 284, -1
873 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
874 static const unsigned short yyrline[] =
876 0, 382, 382, 382, 387, 388, 392, 393, 397, 398,
877 399, 403, 404, 408, 409, 410, 414, 421, 426, 428,
878 430, 432, 434, 436, 441, 446, 447, 451, 453, 458,
879 459, 463, 463, 468, 470, 472, 474, 479, 484, 486,
880 488, 493, 494, 498, 499, 500, 504, 504, 512, 512,
881 526, 525, 530, 535, 535, 535, 537, 538, 537, 540,
882 541, 540, 543, 543, 543, 548, 549, 548, 551, 553,
883 570, 572, 577, 578, 580, 584, 585, 589, 594, 596,
884 601, 603, 605, 607, 612, 613, 617, 619, 621, 625,
885 627, 631, 633, 637, 638, 639, 644, 645, 648, 651,
886 655, 657, 662, 663, 668, 669, 674, 675, 676, 680,
887 681, 685, 690, 691, 695, 696, 700, 701, 704, 708,
888 709, 713, 714, 718, 719, 720, 721, 725, 726, 730,
889 731, 732, 733, 734, 738, 739, 743, 744, 748, 749,
890 753, 754, 755, 759, 760, 764, 765, 766, 770, 771,
891 774, 779, 785, 794, 796, 798, 800, 805, 806, 810,
892 811, 812, 813, 814, 815, 816, 818, 823, 824, 825,
893 826, 830, 831, 835, 836, 840, 840, 850, 851, 856,
894 856, 861, 862, 866, 867, 868, 869, 870, 871, 872,
895 873, 874, 875, 884, 885, 891, 893, 900, 901, 902,
896 903, 904, 905, 906, 907, 908, 909, 910, 911, 912,
897 913, 914, 915, 916, 917, 918, 919, 920, 921, 922,
898 923, 924, 925, 926, 927, 928, 929, 930, 931, 932,
899 933, 934, 935, 939, 941, 943, 945, 947, 957, 958,
900 964, 965, 970, 969, 974, 973, 977, 979, 984, 985,
901 989, 990, 996, 1000, 1002, 1007, 1008, 1012, 1014, 1019,
902 1020, 1031, 1032, 1036, 1037, 1038, 1039, 1040, 1041, 1045,
903 1046, 1047, 1048, 1049, 1050, 1060, 1061, 1062, 1063, 1064,
904 1071, 1072, 1073, 1084, 1085, 1086, 1092, 1093, 1097, 1098,
905 1099, 1100, 1101, 1102, 1103, 1104, 1108, 1109, 1113, 1115,
906 1117, 1119, 1121, 1124, 1126, 1128, 1130, 1132, 1134, 1142,
907 1144, 1146, 1149, 1152, 1155, 1161, 1162, 1166, 1167, 1171,
908 1172, 1173, 1177, 1178, 1182, 1183, 1187, 1188, 1192, 1196,
909 1197, 1201, 1202, 1206, 1210, 1217, 1219, 1220, 1224, 1225,
910 1230, 1232, 1237, 1238, 1239, 1243, 1244, 1248, 1249, 1253,
911 1254, 1258, 1259, 1263, 1264, 1265, 1266, 1267, 1268, 1269,
912 1273, 1274, 1278, 1281, 1283, 1287, 1292, 1293, 1297, 1298,
913 1302, 1304, 1306, 1308, 1309, 1311, 1313, 1315, 1318, 1320,
914 1325, 1326, 1330, 1331, 1332, 1333, 1337, 1338, 1339, 1340,
915 1341, 1342, 1347, 1353, 1364, 1365, 1366, 1367, 1371, 1373,
916 1378, 1378, 1386, 1387, 1391, 1392, 1396, 1397, 1401, 1402,
917 1403, 1404, 1405, 1406, 1407
921 #if YYDEBUG || YYERROR_VERBOSE
922 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
923 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
924 static const char *const yytname[] =
926 "$end", "error", "$undefined", "simpleOp", "PREFIX_OP", "POSTFIX_OP",
927 "LLT_MULOP", "LLT_SEMI", "LLT_VERTICALBAR", "ITERATION_OP", "selectSym",
928 "LLT_LBRACKET", "LLT_LPAR", "LLT_IF_THEN_ELSE", "logicalOp", "eqSepSym",
929 "equationSym", "commentSym", "LLT_WHITESPACE", "LLT_EOL",
930 "LLT_TYPEDEF_NAME", "quantifierSym", "openSym", "closeSym", "sepSym",
931 "simpleId", "mapSym", "markerSym", "preSym", "postSym", "anySym",
932 "LLT_COLON", "LLT_COMMA", "LLT_EQUALS", "LLT_LBRACE", "LLT_RBRACE",
933 "LLT_RBRACKET", "LLT_RPAR", "LLT_QUOTE", "eqOp", "LLT_CCHAR",
934 "LLT_CFLOAT", "LLT_CINTEGER", "LLT_LCSTRING", "LLT_ALL", "LLT_ANYTHING",
935 "LLT_BE", "LLT_BODY", "LLT_CLAIMS", "LLT_CHECKS", "LLT_CONSTANT",
936 "LLT_ELSE", "LLT_ENSURES", "LLT_FOR", "LLT_FRESH", "LLT_IF",
937 "LLT_IMMUTABLE", "LLT_IMPORTS", "LLT_CONSTRAINT", "LLT_ISSUB",
938 "LLT_LET", "LLT_MODIFIES", "LLT_MUTABLE", "LLT_NOTHING", "LLT_INTERNAL",
939 "LLT_FILESYS", "LLT_OBJ", "LLT_OUT", "LLT_SEF", "LLT_ONLY",
940 "LLT_PARTIAL", "LLT_OWNED", "LLT_DEPENDENT", "LLT_KEEP", "LLT_KEPT",
941 "LLT_TEMP", "LLT_SHARED", "LLT_UNIQUE", "LLT_UNUSED", "LLT_EXITS",
942 "LLT_MAYEXIT", "LLT_NEVEREXIT", "LLT_TRUEEXIT", "LLT_FALSEEXIT",
943 "LLT_UNDEF", "LLT_KILLED", "LLT_CHECKMOD", "LLT_CHECKED",
944 "LLT_UNCHECKED", "LLT_CHECKEDSTRICT", "LLT_TRUENULL", "LLT_FALSENULL",
945 "LLT_LNULL", "LLT_LNOTNULL", "LLT_RETURNED", "LLT_OBSERVER",
946 "LLT_EXPOSED", "LLT_REFCOUNTED", "LLT_REFS", "LLT_RELNULL",
947 "LLT_RELDEF", "LLT_KILLREF", "LLT_NULLTERMINATED", "LLT_TEMPREF",
948 "LLT_NEWREF", "LLT_PRIVATE", "LLT_REQUIRES", "LLT_RESULT", "LLT_SIZEOF",
949 "LLT_SPEC", "LLT_TAGGEDUNION", "LLT_THEN", "LLT_TYPE", "LLT_TYPEDEF",
950 "LLT_UNCHANGED", "LLT_USES", "LLT_CHAR", "LLT_CONST", "LLT_DOUBLE",
951 "LLT_ENUM", "LLT_FLOAT", "LLT_INT", "LLT_ITER", "LLT_YIELD", "LLT_LONG",
952 "LLT_SHORT", "LLT_SIGNED", "LLT_UNKNOWN", "LLT_STRUCT", "LLT_TELIPSIS",
953 "LLT_UNION", "LLT_UNSIGNED", "LLT_VOID", "LLT_VOLATILE",
954 "LLT_PRINTFLIKE", "LLT_SCANFLIKE", "LLT_MESSAGELIKE", "$accept",
955 "interface", "@1", "externals", "external", "optDeclarations",
956 "declarations", "declaration", "imports", "uses", "export", "iter",
957 "iterParamList", "realIterParamList", "iterParam", "private", "@2",
958 "private2", "constDeclaration", "varDeclaration", "type", "special",
959 "fcn", "@3", "@4", "claim", "@5", "abstract", "@6", "@7", "@8", "@9",
960 "@10", "@11", "@12", "@13", "exposed", "@14", "@15", "importNameList",
961 "importName", "interfaceNameList", "interfaceName", "traitRefNodeList",
962 "traitRef", "traitIdList", "renaming", "nameList", "replaceNodeList",
963 "replace", "name", "initializer", "constLclExpr", "initDecls",
964 "initDecl", "globals", "globalDecl", "privateInits", "privateInit",
965 "optLetDecl", "beDeclList", "beDecl", "sortSpec", "optChecks",
966 "optRequire", "optModify", "storeRefList", "storeRef", "optEnsure",
967 "optClaim", "optParamList", "realParamList", "paramList", "optBody",
968 "callExpr", "stmt", "valueList", "value", "abstBody", "fcns",
969 "optTypeInv", "typeInv", "@16", "declaratorInvs", "declaratorInv",
970 "@17", "optExposedBody", "CType", "CTypes", "typeSpecifier",
971 "specialQualifier", "lclTypeSpec", "lclType", "pointers",
972 "structOrUnionSpec", "@18", "@19", "optTagId", "structDecls",
973 "structDecl", "declaratorList", "optCOMMA", "enumSpec",
974 "enumeratorList", "declarator", "notype_decl", "after_type_decl",
975 "parameter_decl", "param", "typeName", "optAbstDeclarator",
976 "abstDeclarator", "arrayQual", "opForm", "open", "close", "anyOp",
977 "middle", "placeList", "separator", "signature", "domain", "sortList",
978 "lclPredicate", "term", "term0", "equalityTerm", "simpleOpTerm",
979 "simpleOp2", "prefixOpTerm", "postfixOps", "infixOpPart", "secondary",
980 "bracketed", "sqBracketed", "matched", "args", "primary", "termList",
981 "stateFcn", "lclPrimary", "cLiteral", "quantifiers", "quantifier",
982 "@20", "quantifiedList", "quantified", "simpleIdOrTypedefName", "fcnId",
983 "varId", "tagId", "claimId", "sortId", "traitId", "opId", 0
988 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
990 static const unsigned short yytoknum[] =
992 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
993 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
994 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
995 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
996 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
997 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
998 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
999 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1000 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1001 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1002 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1003 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1004 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1005 385, 386, 387, 388, 389, 390, 391
1009 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1010 static const unsigned short yyr1[] =
1012 0, 137, 139, 138, 140, 140, 141, 141, 142, 142,
1013 142, 143, 143, 144, 144, 144, 145, 146, 147, 147,
1014 147, 147, 147, 147, 148, 149, 149, 150, 150, 151,
1015 151, 153, 152, 154, 154, 154, 154, 155, 156, 156,
1016 156, 157, 157, 158, 158, 158, 160, 159, 161, 159,
1017 163, 162, 162, 165, 166, 164, 167, 168, 164, 169,
1018 170, 164, 171, 172, 164, 174, 175, 173, 173, 173,
1019 176, 176, 177, 177, 177, 178, 178, 179, 180, 180,
1020 181, 181, 181, 181, 182, 182, 183, 183, 183, 184,
1021 184, 185, 185, 186, 186, 186, 187, 187, 188, 189,
1022 190, 190, 191, 191, 192, 192, 193, 193, 193, 194,
1023 194, 195, 196, 196, 197, 197, 198, 198, 199, 200,
1024 200, 201, 201, 202, 202, 202, 202, 203, 203, 204,
1025 204, 204, 204, 204, 205, 205, 206, 206, 207, 207,
1026 208, 208, 208, 209, 209, 210, 210, 210, 211, 211,
1027 211, 211, 211, 212, 212, 212, 212, 213, 213, 214,
1028 214, 214, 214, 214, 214, 214, 214, 215, 215, 215,
1029 215, 216, 216, 217, 217, 219, 218, 220, 220, 222,
1030 221, 223, 223, 224, 224, 224, 224, 224, 224, 224,
1031 224, 224, 224, 225, 225, 226, 226, 227, 227, 227,
1032 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
1033 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
1034 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
1035 227, 227, 227, 228, 228, 228, 228, 228, 229, 229,
1036 230, 230, 232, 231, 233, 231, 231, 231, 234, 234,
1037 235, 235, 236, 237, 237, 238, 238, 239, 239, 240,
1038 240, 241, 241, 242, 242, 242, 242, 242, 242, 243,
1039 243, 243, 243, 243, 243, 244, 244, 244, 244, 244,
1040 245, 245, 245, 246, 246, 246, 247, 247, 248, 248,
1041 248, 248, 248, 248, 248, 248, 249, 249, 250, 250,
1042 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
1043 250, 250, 250, 250, 250, 251, 251, 252, 252, 253,
1044 253, 253, 254, 254, 255, 255, 256, 256, 257, 258,
1045 258, 259, 259, 260, 261, 262, 262, 262, 263, 263,
1046 263, 263, 264, 264, 264, 265, 265, 266, 266, 267,
1047 267, 268, 268, 269, 269, 269, 269, 269, 269, 269,
1048 270, 270, 271, 271, 271, 271, 272, 272, 273, 273,
1049 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
1050 275, 275, 276, 276, 276, 276, 277, 277, 277, 277,
1051 277, 277, 277, 277, 278, 278, 278, 278, 279, 279,
1052 281, 280, 282, 282, 283, 283, 284, 284, 285, 286,
1053 287, 288, 289, 290, 291
1056 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1057 static const unsigned char yyr2[] =
1059 0, 2, 0, 3, 0, 2, 1, 1, 0, 2,
1060 2, 0, 2, 1, 1, 1, 3, 3, 1, 1,
1061 1, 1, 1, 1, 6, 0, 1, 1, 3, 2,
1062 1, 0, 3, 1, 1, 1, 1, 4, 3, 4,
1063 4, 1, 1, 1, 1, 1, 0, 13, 0, 14,
1064 0, 13, 4, 0, 0, 6, 0, 0, 7, 0,
1065 0, 7, 0, 0, 6, 0, 0, 6, 2, 2,
1066 1, 3, 1, 3, 1, 1, 3, 1, 1, 3,
1067 1, 4, 3, 6, 1, 3, 1, 1, 3, 1,
1068 3, 1, 3, 3, 3, 4, 1, 1, 1, 1,
1069 1, 3, 1, 3, 0, 2, 3, 2, 2, 0,
1070 2, 4, 0, 3, 1, 3, 5, 3, 1, 0,
1071 3, 0, 3, 0, 3, 3, 3, 1, 3, 1,
1072 1, 2, 1, 1, 0, 3, 0, 3, 0, 1,
1073 1, 1, 3, 1, 3, 0, 4, 5, 1, 3,
1074 2, 3, 3, 4, 3, 5, 6, 1, 3, 1,
1075 1, 2, 2, 3, 3, 3, 4, 1, 3, 4,
1076 3, 0, 2, 0, 1, 0, 6, 1, 3, 0,
1077 3, 0, 3, 1, 1, 1, 1, 1, 1, 1,
1078 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
1079 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1080 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1081 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1082 1, 1, 1, 1, 1, 1, 2, 5, 1, 2,
1083 1, 2, 0, 6, 0, 6, 2, 2, 0, 1,
1084 1, 2, 3, 1, 3, 0, 1, 6, 2, 1,
1085 3, 1, 1, 1, 3, 2, 2, 3, 4, 1,
1086 3, 2, 2, 3, 4, 1, 2, 2, 3, 4,
1087 2, 2, 2, 2, 3, 1, 0, 1, 3, 2,
1088 1, 1, 2, 3, 3, 4, 2, 3, 6, 1,
1089 2, 2, 3, 3, 4, 4, 5, 3, 4, 4,
1090 5, 2, 2, 3, 3, 1, 1, 1, 1, 1,
1091 1, 1, 0, 1, 1, 3, 1, 1, 4, 0,
1092 1, 1, 3, 1, 1, 6, 1, 3, 1, 4,
1093 3, 3, 1, 2, 2, 1, 1, 1, 2, 1,
1094 2, 2, 3, 1, 1, 2, 2, 3, 1, 2,
1095 3, 1, 5, 3, 4, 2, 3, 2, 1, 3,
1096 3, 1, 4, 1, 2, 3, 3, 3, 4, 3,
1097 1, 3, 1, 1, 1, 1, 1, 1, 4, 4,
1098 4, 4, 6, 4, 1, 1, 1, 1, 1, 2,
1099 0, 3, 1, 3, 3, 4, 1, 1, 1, 1,
1103 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1104 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1105 means the default is an error. */
1106 static const unsigned short yydefact[] =
1108 4, 0, 2, 1, 0, 0, 8, 5, 6, 7,
1109 0, 407, 406, 74, 0, 70, 72, 77, 0, 0,
1110 78, 413, 80, 0, 195, 0, 0, 62, 53, 197,
1111 199, 200, 229, 201, 202, 203, 204, 211, 212, 213,
1112 198, 206, 207, 210, 208, 209, 231, 232, 214, 215,
1113 216, 217, 218, 225, 226, 227, 205, 228, 221, 222,
1114 219, 220, 224, 230, 223, 31, 0, 184, 0, 185,
1115 248, 186, 187, 0, 188, 189, 190, 192, 248, 248,
1116 191, 183, 0, 43, 44, 45, 3, 11, 23, 11,
1117 18, 19, 20, 0, 21, 22, 41, 42, 193, 196,
1118 233, 0, 0, 234, 235, 0, 16, 0, 0, 84,
1119 17, 0, 0, 221, 238, 0, 234, 235, 408, 411,
1120 0, 0, 0, 0, 0, 0, 59, 0, 65, 0,
1121 0, 410, 258, 409, 0, 242, 246, 244, 247, 0,
1122 9, 10, 0, 194, 236, 0, 0, 269, 0, 100,
1123 104, 262, 261, 263, 68, 69, 73, 71, 0, 82,
1124 79, 345, 346, 0, 322, 320, 315, 0, 0, 316,
1125 321, 0, 0, 0, 87, 86, 91, 286, 89, 285,
1126 322, 299, 319, 240, 239, 0, 0, 138, 0, 102,
1127 0, 0, 0, 0, 32, 33, 34, 35, 36, 0,
1128 0, 0, 25, 0, 0, 0, 12, 15, 13, 14,
1129 104, 265, 271, 0, 0, 38, 0, 0, 46, 0,
1130 0, 266, 0, 272, 85, 0, 311, 324, 0, 323,
1131 312, 0, 322, 0, 322, 300, 0, 286, 81, 0,
1132 0, 290, 0, 283, 287, 291, 0, 0, 301, 241,
1133 0, 52, 141, 0, 139, 140, 286, 143, 37, 63,
1134 54, 0, 0, 66, 177, 179, 39, 259, 255, 0,
1135 0, 26, 27, 30, 0, 0, 40, 48, 264, 270,
1136 101, 0, 0, 400, 409, 396, 397, 394, 395, 0,
1137 0, 0, 387, 0, 0, 103, 98, 0, 99, 334,
1138 336, 338, 0, 342, 347, 354, 358, 361, 353, 373,
1139 386, 0, 398, 414, 371, 0, 0, 0, 0, 105,
1140 0, 296, 0, 267, 0, 273, 0, 0, 307, 327,
1141 326, 0, 313, 0, 314, 0, 302, 0, 284, 88,
1142 90, 92, 0, 289, 0, 0, 0, 292, 94, 93,
1143 97, 96, 317, 318, 303, 237, 104, 0, 290, 0,
1144 275, 281, 280, 282, 0, 0, 57, 60, 0, 0,
1145 181, 256, 0, 29, 0, 0, 0, 0, 250, 0,
1146 0, 365, 368, 0, 0, 0, 0, 0, 0, 0,
1147 0, 367, 0, 0, 0, 0, 348, 347, 349, 343,
1148 344, 355, 359, 0, 0, 0, 0, 382, 383, 384,
1149 0, 385, 356, 374, 0, 399, 0, 107, 108, 109,
1150 0, 297, 268, 274, 83, 308, 325, 309, 304, 0,
1151 294, 288, 293, 0, 329, 95, 305, 50, 142, 144,
1152 276, 290, 0, 277, 167, 171, 64, 55, 0, 0,
1153 178, 67, 173, 180, 260, 257, 24, 28, 0, 253,
1154 243, 251, 245, 109, 0, 363, 0, 370, 401, 402,
1155 0, 380, 0, 0, 0, 195, 0, 0, 0, 132,
1156 133, 0, 0, 127, 130, 129, 366, 337, 341, 340,
1157 351, 350, 0, 412, 360, 375, 377, 0, 376, 379,
1158 357, 0, 333, 0, 112, 106, 310, 306, 0, 295,
1159 0, 330, 331, 0, 278, 0, 0, 0, 75, 0,
1160 58, 61, 175, 0, 174, 252, 0, 112, 364, 0,
1161 369, 0, 0, 0, 388, 0, 0, 393, 391, 389,
1162 131, 0, 390, 352, 378, 339, 372, 0, 0, 110,
1163 119, 298, 0, 0, 112, 279, 170, 0, 0, 168,
1164 172, 0, 0, 182, 254, 119, 362, 403, 0, 404,
1165 118, 381, 0, 0, 128, 0, 114, 0, 0, 0,
1166 121, 328, 332, 121, 76, 169, 104, 0, 121, 405,
1167 335, 392, 113, 0, 0, 0, 0, 0, 0, 123,
1168 145, 0, 123, 115, 0, 117, 111, 120, 0, 0,
1169 134, 0, 134, 0, 134, 0, 122, 0, 0, 0,
1170 0, 136, 0, 0, 176, 136, 116, 125, 124, 126,
1171 0, 0, 0, 0, 409, 0, 148, 0, 0, 51,
1172 0, 135, 0, 47, 0, 150, 0, 0, 146, 0,
1173 0, 49, 137, 0, 149, 147, 152, 151, 0, 0,
1174 154, 0, 157, 159, 0, 160, 408, 0, 161, 0,
1175 0, 153, 162, 0, 0, 164, 158, 163, 165, 0,
1179 /* YYDEFGOTO[NTERM-NUM]. */
1180 static const short yydefgoto[] =
1182 -1, 1, 6, 2, 7, 86, 140, 206, 8, 207,
1183 208, 88, 270, 271, 272, 209, 127, 194, 90, 91,
1184 92, 93, 94, 318, 380, 95, 513, 96, 124, 365,
1185 125, 448, 193, 449, 123, 364, 97, 199, 369, 14,
1186 15, 517, 16, 19, 20, 108, 173, 174, 175, 176,
1187 348, 295, 296, 148, 149, 218, 319, 504, 549, 550,
1188 575, 576, 569, 580, 599, 610, 482, 483, 621, 632,
1189 253, 344, 255, 612, 656, 636, 661, 662, 446, 519,
1190 523, 524, 562, 263, 264, 370, 453, 98, 99, 100,
1191 101, 256, 484, 184, 116, 203, 204, 130, 377, 378,
1192 458, 372, 117, 268, 189, 151, 152, 362, 257, 178,
1193 243, 244, 245, 179, 297, 354, 181, 228, 229, 466,
1194 435, 510, 511, 501, 502, 299, 300, 301, 302, 303,
1195 399, 400, 304, 305, 306, 307, 383, 308, 472, 413,
1196 309, 310, 311, 312, 385, 468, 469, 313, 664, 314,
1197 132, 121, 494, 22, 315
1200 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1202 #define YYPACT_NINF -607
1203 static const short yypact[] =
1205 -607, 50, -29, -607, 198, 89, 1350, -607, -607, -607,
1206 208, -607, -607, -607, 65, -607, -607, -607, 208, 110,
1207 -607, -607, 45, 2903, -607, 276, 2903, -607, 18, -607,
1208 -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
1209 -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
1210 -607, -607, -607, -607, -607, -607, -607, -607, 85, -607,
1211 -607, -607, -607, -607, -607, -607, 2903, -607, 2903, -607,
1212 208, -607, -607, 133, -607, -607, -607, -607, 208, 208,
1213 -607, -607, 2903, -607, -607, -607, -607, -607, -607, -607,
1214 -607, -607, -607, 2903, -607, -607, -607, -607, -607, 399,
1215 -607, 2903, 336, 155, 192, 185, -607, 198, 268, -607,
1216 -607, 89, 1152, -607, 213, 199, -607, -607, 297, -607,
1217 208, 305, 336, 240, 242, 273, -607, 1445, -607, 336,
1218 333, -607, 359, -607, 369, -607, 359, -607, 359, 336,
1219 1247, 1247, 336, -607, -607, 336, 336, -607, 139, -607,
1220 145, 416, 422, -607, -607, -607, -607, -607, 208, 388,
1221 -607, -607, -607, 208, 360, -607, -607, 208, 471, -607,
1222 -607, 376, 2903, 398, 393, 406, -607, 347, 387, -607,
1223 360, 445, -607, -607, 456, 2903, 476, 2319, 143, 457,
1224 474, 484, 397, 404, -607, -607, -607, -607, -607, 336,
1225 150, 481, 2414, 477, 488, 166, -607, -607, -607, -607,
1226 -607, 416, 422, 239, 279, -607, 336, 3150, 1836, 272,
1227 1933, -607, 2030, -607, -607, 1152, -607, -607, 482, 224,
1228 -607, 208, 360, 208, 360, 501, 418, 347, -607, 1152,
1229 1152, 347, 1741, -607, 433, -607, 453, 118, -607, -607,
1230 524, -607, -607, 496, -607, 503, 435, -607, -607, -607,
1231 -607, 517, 519, 508, -607, -607, -607, -607, 509, 2903,
1232 505, 512, -607, -607, 2903, 2903, -607, 1836, -607, -607,
1233 -607, 3059, 3150, -607, 297, -607, -607, -607, -607, 533,
1234 3150, 534, -607, 535, 536, -607, -607, 3033, -607, 537,
1235 -607, 304, 3200, -607, 329, 1155, 1155, 521, 654, -607,
1236 -607, 188, -607, -607, -607, 538, 547, 548, 522, -607,
1237 336, -607, 523, -607, 527, -607, 528, 529, 540, -607,
1238 -607, 541, -607, 525, -607, 118, -607, 543, -607, 406,
1239 387, -607, 387, 433, 539, 292, 2127, -607, 544, -607,
1240 -607, -607, -607, -607, 545, -607, -607, 2509, 435, 1644,
1241 -607, 416, 446, -607, 35, 35, -607, -607, 336, 553,
1242 549, 556, 551, -607, 580, 2414, 336, 2611, -607, 2713,
1243 554, 559, -607, 381, 44, 133, 3150, -1, 3150, 1022,
1244 762, -607, 375, 3150, 3200, 3200, -607, -607, 335, 329,
1245 329, 236, 236, 208, 208, 3109, 208, -607, -607, -607,
1246 208, -607, 1155, -607, 3150, -607, 3150, -607, -607, -607,
1247 189, -607, -607, -607, -607, -607, -607, 564, 565, 550,
1248 -607, -607, -607, 557, 208, -607, -607, 1836, -607, -607,
1249 446, 459, 2224, -607, -607, 182, -607, -607, 35, 35,
1250 -607, -607, 542, -607, -607, -607, -607, -607, 197, -607,
1251 -607, -607, -607, -607, 208, 567, 3150, -607, 563, -607,
1252 568, 537, 293, 3150, 570, 584, 566, 573, 574, -607,
1253 -607, 2903, 312, -607, -607, -607, -607, -607, -607, -607,
1254 -607, -607, 335, -607, -607, -607, -607, 394, -607, -607,
1255 236, 575, -607, 331, -15, -607, -607, -607, 578, -607,
1256 588, 583, -607, 582, -607, 586, 610, 247, -607, 1547,
1257 -607, -607, -607, 585, -607, -607, 336, -15, -607, 208,
1258 -607, 133, 2808, 3150, -607, 25, 3150, -607, -607, -607,
1259 -607, 892, -607, -607, -607, -607, -607, 133, 2903, -607,
1260 577, -607, 208, 208, 569, -607, -607, 208, 617, -607,
1261 -607, 336, 606, -607, -607, 577, -607, -607, 2903, -607,
1262 -607, 537, 3150, 594, -607, 270, -607, 77, 336, 3150,
1263 530, -607, -607, 530, -607, -607, -607, 625, 530, -607,
1264 537, -607, -607, 133, 2903, 3150, 278, 634, 3150, 581,
1265 592, 3150, 581, -607, 599, -607, -607, -607, 639, 632,
1266 595, 614, 595, 612, 595, 3150, -607, 643, 644, 288,
1267 3150, 607, 181, 621, -607, 607, -607, -607, -607, -607,
1268 651, 3150, 624, 181, 648, 126, -607, 649, 629, -607,
1269 628, -607, 660, -607, 48, -607, 299, 181, -607, 212,
1270 645, -607, -607, 181, -607, -607, 661, -607, 202, 202,
1271 -607, 351, 665, -607, 659, -607, -607, 666, -607, 43,
1272 202, -607, 246, 379, 411, -607, 665, -607, -607, 358,
1273 -607, 365, -607, -607
1276 /* YYPGOTO[NTERM-NUM]. */
1277 static const short yypgoto[] =
1279 -607, -607, -607, -607, -607, -607, 590, -607, -607, 679,
1280 683, -607, -607, -607, 315, 687, -607, -607, 591, 608,
1281 611, -607, -123, -607, -607, -607, -607, -607, -607, -607,
1282 -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
1283 587, -607, -8, -607, 626, -607, 516, -607, 504, 502,
1284 -607, -607, 526, -110, 531, -190, -607, 281, -607, -483,
1285 -607, 156, -520, 190, -159, 152, 157, 220, -353, 142,
1286 -607, -182, -607, -607, -554, -607, -185, -606, -322, -607,
1287 -607, -607, -607, -607, 401, -607, -607, -91, -607, -607,
1288 -607, -5, -20, -607, 29, -607, -607, 417, 497, -6,
1289 -607, -607, 54, -607, -95, -119, 353, 413, -178, 261,
1290 -137, -210, -22, 532, -14, -248, 609, -121, -607, 546,
1291 -607, -607, -607, -528, -203, -265, -607, 108, -101, 478,
1292 -607, -607, -280, 468, -607, -607, 489, -269, -285, -607,
1293 -607, -308, -607, -305, -607, -607, 248, 5, -25, -40,
1294 434, 668, -369, 16, 552
1297 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1298 positive, shift that token. If negative, reduce the rule which
1299 number is the opposite. If zero, do what YYDEFACT says.
1300 If YYTABLE_NINF, syntax error. */
1301 #define YYTABLE_NINF -409
1302 static const short yytable[] =
1304 120, 102, 105, 115, 198, 254, 415, 150, 143, 17,
1305 21, 182, 188, 393, 298, 17, 298, 384, 114, 200,
1306 277, 122, 397, 21, 273, 387, 211, 213, 4, 205,
1307 119, 343, 345, 134, 109, 103, 401, 402, 324, 393,
1308 326, 499, 444, 447, 565, 547, 672, 210, 589, 391,
1309 3, 597, 668, 669, 645, 653, 647, 112, 393, 247,
1310 104, 128, 153, 129, 676, 512, 677, 182, 635, 445,
1311 608, 583, 106, 613, 604, 131, 572, 139, 382, 644,
1312 675, 467, 153, 131, 131, 654, 5, 428, 142, 153,
1313 548, 373, 630, 657, 382, 528, 144, 107, 180, 153,
1314 338, 18, 153, 642, 265, 153, 153, 177, 594, 11,
1315 473, 333, 17, 335, 12, -56, 21, 110, 490, 363,
1316 497, 471, 102, 595, 182, 119, 520, 521, 487, 221,
1317 223, 503, 645, 646, 647, 102, 102, 361, 182, 182,
1318 471, 352, 111, 500, 486, 182, 215, 126, 343, 345,
1319 258, 471, -102, 353, 234, 349, 103, 266, 133, 153,
1320 566, 648, 154, 21, 433, 250, 437, 237, 226, 103,
1321 103, 216, 230, 276, 224, 216, 153, -102, 217, 439,
1322 114, 104, 216, 581, 582, 474, 477, 485, 156, 221,
1323 223, 221, 223, 633, 104, 104, 505, 273, 216, 155,
1324 414, 10, 11, 398, 525, 658, 634, 12, 535, 283,
1325 420, 180, 543, 320, 659, 658, 153, 516, 11, 183,
1326 177, 216, 347, 12, 659, 180, 180, 634, 11, 526,
1327 185, 343, 180, 12, 177, 177, 332, 634, 334, 211,
1328 213, 13, 285, 286, 287, 288, 404, 405, 329, 660,
1329 219, 220, 285, 286, 287, 288, 330, 587, 659, 623,
1330 515, 625, 406, 530, 407, 408, 409, 410, 571, 376,
1331 376, 634, 320, 265, 411, 161, 278, 592, 162, 557,
1332 153, 459, 558, 281, 282, 606, 285, 286, 287, 288,
1333 219, 222, 11, 283, 166, 629, 11, 284, 491, 492,
1334 158, 118, 593, 219, 346, 159, 169, 590, 321, -406,
1335 216, 633, 285, 286, 287, 288, 279, 187, 153, 153,
1336 541, 347, 211, 347, 634, 533, 289, 290, 153, 431,
1337 534, 291, 161, 573, 655, 162, 153, 394, 485, 221,
1338 443, 663, 145, 395, 541, 470, 281, 282, 146, 542,
1339 663, 663, 190, 241, 191, 11, 147, 166, 219, 242,
1340 284, 133, 663, 533, 663, 663, 663, 201, 546, 169,
1341 192, 461, 376, 461, 376, 285, 286, 287, 288, 292,
1342 293, 202, 658, 670, 476, 114, 294, 227, 671, 289,
1343 670, 659, 605, -249, 291, 682, 560, 670, 352, 329,
1344 225, 153, 683, 236, 634, 329, 485, 330, 493, 495,
1345 353, 498, 626, 330, 658, 493, 678, 465, 443, 285,
1346 286, 287, 288, 659, 600, 239, 533, 219, 220, 602,
1347 544, 564, 320, 219, 222, 238, 634, 518, 240, 493,
1348 246, 358, 292, 293, 219, 346, 219, 359, 680, 294,
1349 17, 285, 286, 287, 288, 360, 161, 219, 442, 162,
1350 133, 540, 249, 163, 164, 441, 586, 165, 596, 493,
1351 219, 359, 248, 11, 161, 166, 114, 162, 12, 167,
1352 168, 231, 232, 251, 133, 165, 153, 169, 679, 681,
1353 217, 470, 170, 166, 259, 135, 137, 233, 212, 214,
1354 340, 342, 488, 489, 260, 169, 267, 577, 171, 261,
1355 170, 274, 136, 138, 561, 67, 262, 69, 328, 71,
1356 72, 153, 275, 74, 75, 76, 77, 570, 336, 337,
1357 80, 81, 355, 356, 493, 357, 114, 366, 153, 367,
1358 368, 371, 374, 578, 375, 386, 388, 389, 390, 584,
1359 416, 393, 403, 577, 417, 418, 419, 493, 493, 421,
1360 451, 427, 17, 570, 422, 423, 424, 425, 426, 67,
1361 429, 69, 436, 71, 72, 434, 430, 74, 75, 76,
1362 77, 454, 638, 452, 80, 81, 455, 456, 463, 570,
1363 464, 506, 507, 638, 509, 531, -407, 637, 529, 532,
1364 522, 508, 536, 537, 114, 551, 638, 638, 637, 665,
1365 538, 539, 545, 638, 552, 553, 554, 556, 665, 665,
1366 563, 637, 637, 555, 585, 667, 579, 283, 637, 547,
1367 665, 591, 665, 665, 665, 161, 598, 601, 162, 611,
1368 23, 607, 609, 281, 282, 615, 616, 620, 622, 624,
1369 627, 628, 475, 283, 166, 631, 639, 284, 641, 643,
1370 -408, 649, 650, 651, 404, 405, 169, 652, 672, 647,
1371 666, 673, 285, 286, 287, 288, 166, 617, 674, 141,
1372 406, 9, 407, 408, 409, 410, 289, 290, 169, 87,
1373 457, 291, 411, 89, 157, 618, 479, 480, 481, 29,
1374 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1375 40, 41, 42, 43, 44, 45, 46, 47, 195, 48,
1376 49, 50, 51, 52, 53, 54, 55, 56, 57, 113,
1377 59, 60, 61, 62, 63, 196, 64, 160, 197, 292,
1378 293, 327, 341, 339, 527, 322, 294, 280, 67, 603,
1379 69, 70, 71, 72, 614, 588, 74, 75, 76, 77,
1380 78, 574, 79, 80, 81, 161, 619, 640, 162, 450,
1381 23, 440, 379, 281, 282, 331, 412, 235, 350, 567,
1382 396, 0, 475, 283, 166, 0, 392, 284, 186, 0,
1383 0, 0, 0, 0, 0, 0, 169, 0, 351, 0,
1384 0, 0, 285, 286, 287, 288, 478, 0, 0, 0,
1385 0, 0, 0, 0, 0, 0, 289, 290, 0, 0,
1386 0, 291, 0, 0, 0, 0, 479, 480, 481, 29,
1387 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1388 40, 41, 42, 43, 44, 45, 46, 47, 0, 48,
1389 49, 50, 51, 52, 53, 54, 55, 56, 57, 113,
1390 59, 60, 61, 62, 63, 0, 64, 0, 0, 292,
1391 293, 0, 0, 0, 0, 0, 294, 0, 67, 0,
1392 69, 70, 71, 72, 0, 0, 74, 75, 76, 77,
1393 78, 0, 79, 80, 81, 161, 0, 0, 162, 0,
1394 23, 0, 0, 281, 282, 0, 0, 0, 0, 0,
1395 0, 0, 475, 283, 166, 0, 0, 284, 0, 0,
1396 0, 0, 0, 0, 0, 0, 169, 0, 0, 0,
1397 0, 0, 285, 286, 287, 288, 0, 0, 0, 0,
1398 0, 0, 0, 0, 0, 0, 289, 290, 0, 0,
1399 0, 291, 0, 0, 0, 0, 479, 480, 481, 29,
1400 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1401 40, 41, 42, 43, 44, 45, 46, 47, 0, 48,
1402 49, 50, 51, 52, 53, 54, 55, 56, 57, 113,
1403 59, 60, 61, 62, 63, 0, 64, 0, 0, 292,
1404 293, 0, 0, 0, 0, 0, 294, 0, 67, 0,
1405 69, 70, 71, 72, 0, 0, 74, 75, 76, 77,
1406 78, 0, 79, 80, 81, 161, 0, 0, 162, 0,
1407 23, 0, 0, 281, 282, 0, 0, 0, 0, 0,
1408 0, 0, 475, 283, 166, 0, 0, 284, 0, 0,
1409 0, 0, 0, 0, 0, 0, 169, 0, 0, 0,
1410 0, 0, 285, 286, 287, 288, 0, 0, 0, 0,
1411 0, 0, 0, 0, 0, 0, 289, 290, 0, 0,
1412 0, 291, 0, 0, 0, 0, 0, 0, 0, 29,
1413 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1414 40, 41, 42, 43, 44, 45, 46, 47, 0, 48,
1415 49, 50, 51, 52, 53, 54, 55, 56, 57, 113,
1416 59, 60, 61, 62, 63, 0, 64, 0, 0, 292,
1417 293, 0, 0, 0, 0, 0, 294, 0, 67, 0,
1418 69, 70, 71, 72, 0, 0, 74, 75, 76, 77,
1419 78, 0, 79, 80, 81, 161, 0, 0, 162, 0,
1420 23, 0, 163, 164, 0, 0, 165, 282, 0, 0,
1421 0, 0, 24, 0, 166, 11, 0, 0, 167, 168,
1422 284, 0, 0, 0, 0, 0, 169, 0, 0, 0,
1423 0, 170, 0, 0, 0, 285, 286, 287, 288, 0,
1424 0, 0, 0, 0, 0, 0, 0, 171, 0, 289,
1425 0, 0, 0, 0, 291, 0, 0, 0, 172, 29,
1426 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1427 40, 41, 42, 43, 44, 45, 46, 47, 0, 48,
1428 49, 50, 51, 52, 53, 54, 55, 56, 57, 113,
1429 59, 60, 61, 62, 63, 23, 64, 0, 0, 0,
1430 0, 0, 292, 293, 0, 0, 0, 24, 67, 294,
1431 69, 70, 71, 72, 0, 0, 74, 75, 76, 77,
1432 78, 0, 79, 80, 81, 0, 0, 0, 0, 0,
1433 0, 0, 0, 0, 0, 25, 0, 26, 0, 0,
1434 0, 0, 0, 27, 0, 0, 0, 0, 0, 28,
1435 0, 0, 0, 0, 29, 30, 31, 32, 33, 34,
1436 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1437 45, 46, 47, 0, 48, 49, 50, 51, 52, 53,
1438 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1439 0, 64, 0, 0, 0, 0, 65, 0, 23, 0,
1440 66, 0, 5, 67, 68, 69, 70, 71, 72, 73,
1441 24, 74, 75, 76, 77, 78, 0, 79, 80, 81,
1442 82, 83, 84, 85, 0, 0, 0, 0, 0, 0,
1443 0, 0, 0, 0, 0, 0, 0, 0, 25, 0,
1444 26, 0, 0, 0, 0, 0, 27, 0, 0, 0,
1445 0, 0, 28, 0, 0, 0, 0, 29, 30, 31,
1446 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1447 42, 43, 44, 45, 46, 47, 0, 48, 49, 50,
1448 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1449 61, 62, 63, 23, 64, 0, 0, 0, 0, 65,
1450 0, 0, 0, 66, 0, 24, 67, 68, 69, 70,
1451 71, 72, 73, 0, 74, 75, 76, 77, 78, 0,
1452 79, 80, 81, 82, 83, 84, 85, 0, 0, 0,
1453 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,
1454 0, 27, 0, 0, 0, 0, 0, 28, 0, 0,
1455 0, 0, 29, 30, 31, 32, 33, 34, 35, 36,
1456 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1457 47, 0, 48, 49, 50, 51, 52, 53, 54, 55,
1458 56, 57, 58, 59, 60, 61, 62, 63, 0, 64,
1459 0, 0, 0, 0, 0, 23, 0, 0, 66, 0,
1460 0, 67, 68, 69, 70, 71, 72, 24, 0, 74,
1461 75, 76, 77, 78, 0, 79, 80, 81, 82, 83,
1462 84, 85, 559, 0, 0, 0, 0, 0, 0, 0,
1463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1465 0, 0, 0, 0, 29, 30, 31, 32, 33, 34,
1466 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1467 45, 46, 47, 0, 48, 49, 50, 51, 52, 53,
1468 54, 55, 56, 57, 113, 59, 60, 61, 62, 63,
1469 441, 64, 23, 0, 0, 219, 359, 0, 0, 0,
1470 0, 0, 0, 67, 24, 69, 70, 71, 72, 133,
1471 0, 74, 75, 76, 77, 78, 0, 79, 80, 81,
1472 0, 83, 84, 85, 0, 0, 0, 0, 0, 0,
1473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1475 0, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1476 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1477 0, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1478 57, 113, 59, 60, 61, 62, 63, 241, 64, 23,
1479 0, 0, 219, 242, 0, 0, 0, 0, 0, 0,
1480 67, 24, 69, 70, 71, 72, 0, 0, 74, 75,
1481 76, 77, 78, 252, 79, 80, 81, 0, 0, 0,
1482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 0, 0, 29, 30,
1485 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1486 41, 42, 43, 44, 45, 46, 47, 0, 48, 49,
1487 50, 51, 52, 53, 54, 55, 56, 57, 113, 59,
1488 60, 61, 62, 63, 23, 64, 0, 0, 0, 0,
1489 0, 0, 0, 0, 0, 0, 24, 67, 0, 69,
1490 70, 71, 72, 0, 0, 74, 75, 76, 77, 78,
1491 252, 79, 80, 81, 0, 0, 0, 0, 0, 0,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1494 316, 317, 0, 29, 30, 31, 32, 33, 34, 35,
1495 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1496 46, 47, 0, 48, 49, 50, 51, 52, 53, 54,
1497 55, 56, 57, 113, 59, 60, 61, 62, 63, 0,
1498 64, 23, 0, 0, 0, 0, 0, 0, 0, 0,
1499 0, 0, 67, 24, 69, 70, 71, 72, 0, 0,
1500 74, 75, 76, 77, 78, 0, 79, 80, 81, 0,
1501 323, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1504 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1505 39, 40, 41, 42, 43, 44, 45, 46, 47, 0,
1506 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1507 113, 59, 60, 61, 62, 63, 0, 64, 23, 0,
1508 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
1509 24, 69, 70, 71, 72, 0, 0, 74, 75, 76,
1510 77, 78, 252, 79, 80, 81, 0, 325, 0, 0,
1511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1513 0, 0, 0, 0, 0, 0, 0, 29, 30, 31,
1514 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1515 42, 43, 44, 45, 46, 47, 0, 48, 49, 50,
1516 51, 52, 53, 54, 55, 56, 57, 113, 59, 60,
1517 61, 62, 63, 0, 64, 23, 0, 0, 0, 0,
1518 0, 0, 0, 0, 0, 0, 67, 24, 69, 70,
1519 71, 72, 0, 0, 74, 75, 76, 77, 78, 252,
1520 79, 80, 81, 0, 432, 0, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1523 0, 0, 0, 0, 29, 30, 31, 32, 33, 34,
1524 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1525 45, 46, 47, 0, 48, 49, 50, 51, 52, 53,
1526 54, 55, 56, 57, 113, 59, 60, 61, 62, 63,
1527 0, 64, 23, 0, 0, 0, 0, 0, 0, 0,
1528 0, 0, 0, 67, 24, 69, 70, 71, 72, 0,
1529 0, 74, 75, 76, 77, 78, 252, 79, 80, 81,
1530 0, 514, 0, 0, 0, 0, 0, 0, 0, 0,
1531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1533 0, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1534 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1535 0, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1536 57, 113, 59, 60, 61, 62, 63, 23, 64, 0,
1537 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
1538 67, 0, 69, 70, 71, 72, 0, 0, 74, 75,
1539 76, 77, 78, 252, 79, 80, 81, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1542 0, 0, 0, 0, 0, 0, 29, 30, 31, 32,
1543 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1544 43, 44, 45, 46, 47, 0, 48, 49, 50, 51,
1545 52, 53, 54, 55, 56, 57, 113, 59, 60, 61,
1546 62, 63, 23, 64, 0, 0, 0, 0, 0, 0,
1547 0, 0, 0, 0, 24, 67, 0, 69, 70, 71,
1548 72, 0, 0, 74, 75, 76, 77, 78, 252, 79,
1549 80, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1552 0, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1553 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1554 0, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1555 57, 113, 59, 60, 61, 62, 63, 23, 64, 0,
1556 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
1557 67, 0, 69, 70, 71, 72, 0, 269, 74, 75,
1558 76, 77, 78, 0, 79, 80, 81, 0, 0, 0,
1559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1561 0, 0, 0, 0, 0, 0, 29, 30, 31, 32,
1562 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1563 43, 44, 45, 46, 47, 0, 48, 49, 50, 51,
1564 52, 53, 54, 55, 56, 57, 113, 59, 60, 61,
1565 62, 63, 0, 64, 0, 0, 0, 0, 0, 23,
1566 0, 0, 0, 0, 0, 67, 0, 69, 70, 71,
1567 72, 24, 0, 74, 75, 76, 77, 78, 438, 79,
1568 80, 81, 0, 0, 0, 0, 460, 0, 0, 0,
1569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1571 0, 0, 0, 0, 0, 0, 0, 0, 29, 30,
1572 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1573 41, 42, 43, 44, 45, 46, 47, 0, 48, 49,
1574 50, 51, 52, 53, 54, 55, 56, 57, 113, 59,
1575 60, 61, 62, 63, 0, 64, 0, 0, 0, 0,
1576 0, 23, 0, 0, 0, 0, 0, 67, 0, 69,
1577 70, 71, 72, 24, 0, 74, 75, 76, 77, 78,
1578 0, 79, 80, 81, 0, 0, 0, 0, 462, 0,
1579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1582 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1583 39, 40, 41, 42, 43, 44, 45, 46, 47, 0,
1584 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1585 113, 59, 60, 61, 62, 63, 23, 64, 0, 0,
1586 0, 0, 0, 0, 0, 0, 0, 0, 24, 67,
1587 0, 69, 70, 71, 72, 0, 0, 74, 75, 76,
1588 77, 78, 0, 79, 80, 81, 0, 0, 0, 0,
1589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1591 0, 0, 0, 0, 568, 29, 30, 31, 32, 33,
1592 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1593 44, 45, 46, 47, 0, 48, 49, 50, 51, 52,
1594 53, 54, 55, 56, 57, 113, 59, 60, 61, 62,
1595 63, 23, 64, 0, 0, 0, 0, 0, 0, 0,
1596 0, 0, 0, 24, 67, 0, 69, 70, 71, 72,
1597 0, 0, 74, 75, 76, 77, 78, 0, 79, 80,
1598 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1601 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1602 39, 40, 41, 42, 43, 44, 45, 46, 47, 0,
1603 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1604 113, 59, 60, 61, 62, 63, 0, 64, 0, 0,
1605 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
1606 0, 69, 70, 71, 72, 0, 0, 74, 75, 76,
1607 77, 78, 0, 79, 80, 81, 161, 0, 0, 162,
1608 0, 0, 0, 0, 281, 282, 0, 0, 0, 0,
1609 0, 0, 0, 11, 283, 166, 352, 0, 284, 0,
1610 0, 0, 161, 0, 0, 162, 0, 169, 353, 0,
1611 281, 282, 0, 285, 286, 287, 288, 0, 0, 11,
1612 283, 166, 0, 0, 284, 0, 0, 289, 290, 0,
1613 0, 0, 291, 169, 0, 381, 0, 0, 0, 285,
1614 286, 287, 288, 0, 0, 0, 0, 0, 0, 0,
1615 0, 0, 161, 289, 290, 162, 0, 0, 291, 0,
1616 281, 282, 0, 0, 0, 0, 0, 0, 0, 11,
1617 283, 166, 0, 0, 284, 0, 0, 0, 0, 0,
1618 292, 293, 0, 169, 0, 496, 0, 294, 0, 285,
1619 286, 287, 288, 161, 0, 0, 162, 0, 0, 0,
1620 0, 281, 282, 289, 290, 0, 292, 293, 291, 0,
1621 11, 283, 166, 294, 0, 284, 0, 0, 0, 0,
1622 0, 0, 0, 0, 169, 0, 0, 0, 0, 0,
1623 285, 286, 287, 288, 0, 0, 0, 0, 0, 0,
1624 0, 0, 0, 161, 289, 290, 162, 0, 0, 291,
1625 0, 281, 282, 0, 0, 0, 292, 293, 0, 0,
1626 11, 0, 166, 294, 0, 284, 0, 0, 0, 0,
1627 0, 0, 0, 0, 169, 0, 0, 0, 0, 0,
1628 285, 286, 287, 288, 0, 0, 0, 0, 0, 0,
1629 0, 0, 0, 0, 289, 0, 0, 292, 293, 291,
1630 0, 0, 0, 0, 294, 0, 0, 0, 0, 0,
1631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1634 0, 0, 0, 0, 0, 0, 0, 292, 293, 0,
1638 static const short yycheck[] =
1640 25, 6, 10, 23, 127, 187, 311, 102, 99, 4,
1641 5, 112, 122, 14, 217, 10, 219, 282, 23, 129,
1642 210, 26, 302, 18, 202, 290, 145, 146, 57, 139,
1643 25, 241, 242, 73, 18, 6, 305, 306, 220, 14,
1644 222, 410, 7, 365, 527, 60, 3, 142, 568, 297,
1645 0, 579, 658, 659, 6, 7, 8, 12, 14, 180,
1646 6, 66, 102, 68, 670, 434, 672, 168, 622, 34,
1647 598, 554, 7, 601, 594, 70, 51, 82, 281, 633,
1648 37, 37, 122, 78, 79, 37, 115, 335, 93, 129,
1649 105, 269, 620, 647, 297, 464, 101, 32, 112, 139,
1650 237, 12, 142, 631, 199, 145, 146, 112, 31, 20,
1651 111, 232, 107, 234, 25, 97, 111, 7, 398, 256,
1652 405, 386, 127, 46, 225, 120, 448, 449, 393, 151,
1653 152, 416, 6, 7, 8, 140, 141, 256, 239, 240,
1654 405, 23, 32, 412, 392, 246, 7, 62, 358, 359,
1655 7, 416, 7, 35, 168, 246, 127, 7, 25, 199,
1656 529, 35, 7, 158, 346, 185, 356, 172, 163, 140,
1657 141, 32, 167, 7, 158, 32, 216, 32, 33, 357,
1658 185, 127, 32, 552, 553, 388, 389, 390, 3, 211,
1659 212, 213, 214, 12, 140, 141, 7, 375, 32, 7,
1660 12, 3, 20, 304, 7, 3, 25, 25, 473, 21,
1661 320, 225, 492, 218, 12, 3, 256, 35, 20, 6,
1662 225, 32, 244, 25, 12, 239, 240, 25, 20, 32,
1663 31, 441, 246, 25, 239, 240, 231, 25, 233, 358,
1664 359, 43, 40, 41, 42, 43, 10, 11, 24, 37,
1665 11, 12, 40, 41, 42, 43, 32, 562, 12, 612,
1666 442, 614, 26, 466, 28, 29, 30, 31, 533, 274,
1667 275, 25, 277, 368, 38, 3, 37, 7, 6, 32,
1668 320, 376, 35, 11, 12, 7, 40, 41, 42, 43,
1669 11, 12, 20, 21, 22, 7, 20, 25, 399, 400,
1670 32, 25, 32, 11, 12, 37, 34, 572, 36, 12,
1671 32, 12, 40, 41, 42, 43, 37, 12, 358, 359,
1672 32, 343, 441, 345, 25, 32, 54, 55, 368, 37,
1673 37, 59, 3, 536, 35, 6, 376, 33, 541, 361,
1674 362, 649, 6, 39, 32, 385, 11, 12, 12, 37,
1675 658, 659, 112, 6, 112, 20, 20, 22, 11, 12,
1676 25, 25, 670, 32, 672, 673, 674, 34, 37, 34,
1677 97, 377, 377, 379, 379, 40, 41, 42, 43, 107,
1678 108, 12, 3, 32, 389, 390, 114, 27, 37, 54,
1679 32, 12, 595, 34, 59, 37, 519, 32, 23, 24,
1680 12, 441, 37, 27, 25, 24, 609, 32, 403, 404,
1681 35, 406, 615, 32, 3, 410, 37, 36, 440, 40,
1682 41, 42, 43, 12, 583, 32, 32, 11, 12, 588,
1683 36, 526, 437, 11, 12, 37, 25, 445, 32, 434,
1684 53, 6, 107, 108, 11, 12, 11, 12, 37, 114,
1685 445, 40, 41, 42, 43, 20, 3, 11, 12, 6,
1686 25, 481, 6, 10, 11, 6, 561, 14, 578, 464,
1687 11, 12, 27, 20, 3, 22, 481, 6, 25, 26,
1688 27, 10, 11, 7, 25, 14, 526, 34, 673, 674,
1689 33, 531, 39, 22, 20, 78, 79, 26, 145, 146,
1690 239, 240, 394, 395, 20, 34, 25, 547, 55, 112,
1691 39, 34, 78, 79, 519, 116, 112, 118, 36, 120,
1692 121, 561, 34, 124, 125, 126, 127, 532, 27, 111,
1693 131, 132, 8, 37, 529, 32, 541, 20, 578, 20,
1694 32, 32, 37, 548, 32, 12, 12, 12, 12, 557,
1695 12, 14, 31, 593, 7, 7, 34, 552, 553, 36,
1696 7, 36, 557, 568, 37, 37, 37, 27, 27, 116,
1697 27, 118, 27, 120, 121, 31, 37, 124, 125, 126,
1698 127, 25, 622, 34, 131, 132, 35, 7, 34, 594,
1699 31, 27, 27, 633, 37, 32, 12, 622, 31, 31,
1700 58, 51, 32, 37, 609, 27, 646, 647, 633, 649,
1701 37, 37, 37, 653, 26, 32, 34, 7, 658, 659,
1702 35, 646, 647, 37, 7, 650, 49, 21, 653, 60,
1703 670, 37, 672, 673, 674, 3, 106, 12, 6, 47,
1704 8, 7, 61, 11, 12, 46, 7, 52, 34, 37,
1705 7, 7, 20, 21, 22, 48, 35, 25, 7, 35,
1706 12, 12, 33, 35, 10, 11, 34, 7, 3, 8,
1707 25, 12, 40, 41, 42, 43, 22, 45, 12, 89,
1708 26, 2, 28, 29, 30, 31, 54, 55, 34, 6,
1709 375, 59, 38, 6, 107, 63, 64, 65, 66, 67,
1710 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1711 78, 79, 80, 81, 82, 83, 84, 85, 127, 87,
1712 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1713 98, 99, 100, 101, 102, 127, 104, 111, 127, 107,
1714 108, 225, 240, 239, 463, 219, 114, 216, 116, 593,
1715 118, 119, 120, 121, 602, 565, 124, 125, 126, 127,
1716 128, 541, 130, 131, 132, 3, 609, 625, 6, 368,
1717 8, 358, 275, 11, 12, 229, 308, 168, 246, 531,
1718 302, -1, 20, 21, 22, -1, 297, 25, 120, -1,
1719 -1, -1, -1, -1, -1, -1, 34, -1, 246, -1,
1720 -1, -1, 40, 41, 42, 43, 44, -1, -1, -1,
1721 -1, -1, -1, -1, -1, -1, 54, 55, -1, -1,
1722 -1, 59, -1, -1, -1, -1, 64, 65, 66, 67,
1723 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1724 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1725 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1726 98, 99, 100, 101, 102, -1, 104, -1, -1, 107,
1727 108, -1, -1, -1, -1, -1, 114, -1, 116, -1,
1728 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1729 128, -1, 130, 131, 132, 3, -1, -1, 6, -1,
1730 8, -1, -1, 11, 12, -1, -1, -1, -1, -1,
1731 -1, -1, 20, 21, 22, -1, -1, 25, -1, -1,
1732 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
1733 -1, -1, 40, 41, 42, 43, -1, -1, -1, -1,
1734 -1, -1, -1, -1, -1, -1, 54, 55, -1, -1,
1735 -1, 59, -1, -1, -1, -1, 64, 65, 66, 67,
1736 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1737 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1738 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1739 98, 99, 100, 101, 102, -1, 104, -1, -1, 107,
1740 108, -1, -1, -1, -1, -1, 114, -1, 116, -1,
1741 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1742 128, -1, 130, 131, 132, 3, -1, -1, 6, -1,
1743 8, -1, -1, 11, 12, -1, -1, -1, -1, -1,
1744 -1, -1, 20, 21, 22, -1, -1, 25, -1, -1,
1745 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
1746 -1, -1, 40, 41, 42, 43, -1, -1, -1, -1,
1747 -1, -1, -1, -1, -1, -1, 54, 55, -1, -1,
1748 -1, 59, -1, -1, -1, -1, -1, -1, -1, 67,
1749 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1750 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1751 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1752 98, 99, 100, 101, 102, -1, 104, -1, -1, 107,
1753 108, -1, -1, -1, -1, -1, 114, -1, 116, -1,
1754 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1755 128, -1, 130, 131, 132, 3, -1, -1, 6, -1,
1756 8, -1, 10, 11, -1, -1, 14, 12, -1, -1,
1757 -1, -1, 20, -1, 22, 20, -1, -1, 26, 27,
1758 25, -1, -1, -1, -1, -1, 34, -1, -1, -1,
1759 -1, 39, -1, -1, -1, 40, 41, 42, 43, -1,
1760 -1, -1, -1, -1, -1, -1, -1, 55, -1, 54,
1761 -1, -1, -1, -1, 59, -1, -1, -1, 66, 67,
1762 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1763 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
1764 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1765 98, 99, 100, 101, 102, 8, 104, -1, -1, -1,
1766 -1, -1, 107, 108, -1, -1, -1, 20, 116, 114,
1767 118, 119, 120, 121, -1, -1, 124, 125, 126, 127,
1768 128, -1, 130, 131, 132, -1, -1, -1, -1, -1,
1769 -1, -1, -1, -1, -1, 48, -1, 50, -1, -1,
1770 -1, -1, -1, 56, -1, -1, -1, -1, -1, 62,
1771 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1772 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1773 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1774 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1775 -1, 104, -1, -1, -1, -1, 109, -1, 8, -1,
1776 113, -1, 115, 116, 117, 118, 119, 120, 121, 122,
1777 20, 124, 125, 126, 127, 128, -1, 130, 131, 132,
1778 133, 134, 135, 136, -1, -1, -1, -1, -1, -1,
1779 -1, -1, -1, -1, -1, -1, -1, -1, 48, -1,
1780 50, -1, -1, -1, -1, -1, 56, -1, -1, -1,
1781 -1, -1, 62, -1, -1, -1, -1, 67, 68, 69,
1782 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1783 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1784 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1785 100, 101, 102, 8, 104, -1, -1, -1, -1, 109,
1786 -1, -1, -1, 113, -1, 20, 116, 117, 118, 119,
1787 120, 121, 122, -1, 124, 125, 126, 127, 128, -1,
1788 130, 131, 132, 133, 134, 135, 136, -1, -1, -1,
1789 -1, -1, -1, -1, -1, 50, -1, -1, -1, -1,
1790 -1, 56, -1, -1, -1, -1, -1, 62, -1, -1,
1791 -1, -1, 67, 68, 69, 70, 71, 72, 73, 74,
1792 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1793 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
1794 95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
1795 -1, -1, -1, -1, -1, 8, -1, -1, 113, -1,
1796 -1, 116, 117, 118, 119, 120, 121, 20, -1, 124,
1797 125, 126, 127, 128, -1, 130, 131, 132, 133, 134,
1798 135, 136, 35, -1, -1, -1, -1, -1, -1, -1,
1799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1800 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1801 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1802 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1803 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1804 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1805 6, 104, 8, -1, -1, 11, 12, -1, -1, -1,
1806 -1, -1, -1, 116, 20, 118, 119, 120, 121, 25,
1807 -1, 124, 125, 126, 127, 128, -1, 130, 131, 132,
1808 -1, 134, 135, 136, -1, -1, -1, -1, -1, -1,
1809 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1810 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1811 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1812 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1813 -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1814 96, 97, 98, 99, 100, 101, 102, 6, 104, 8,
1815 -1, -1, 11, 12, -1, -1, -1, -1, -1, -1,
1816 116, 20, 118, 119, 120, 121, -1, -1, 124, 125,
1817 126, 127, 128, 129, 130, 131, 132, -1, -1, -1,
1818 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1819 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1820 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1821 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1822 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1823 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1824 99, 100, 101, 102, 8, 104, -1, -1, -1, -1,
1825 -1, -1, -1, -1, -1, -1, 20, 116, -1, 118,
1826 119, 120, 121, -1, -1, 124, 125, 126, 127, 128,
1827 129, 130, 131, 132, -1, -1, -1, -1, -1, -1,
1828 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1829 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1830 64, 65, -1, 67, 68, 69, 70, 71, 72, 73,
1831 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1832 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
1833 94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
1834 104, 8, -1, -1, -1, -1, -1, -1, -1, -1,
1835 -1, -1, 116, 20, 118, 119, 120, 121, -1, -1,
1836 124, 125, 126, 127, 128, -1, 130, 131, 132, -1,
1837 37, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1838 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1839 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1840 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1841 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1842 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1843 97, 98, 99, 100, 101, 102, -1, 104, 8, -1,
1844 -1, -1, -1, -1, -1, -1, -1, -1, -1, 116,
1845 20, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1846 127, 128, 129, 130, 131, 132, -1, 37, -1, -1,
1847 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1848 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1849 -1, -1, -1, -1, -1, -1, -1, 67, 68, 69,
1850 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1851 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
1852 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1853 100, 101, 102, -1, 104, 8, -1, -1, -1, -1,
1854 -1, -1, -1, -1, -1, -1, 116, 20, 118, 119,
1855 120, 121, -1, -1, 124, 125, 126, 127, 128, 129,
1856 130, 131, 132, -1, 37, -1, -1, -1, -1, -1,
1857 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1858 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1859 -1, -1, -1, -1, 67, 68, 69, 70, 71, 72,
1860 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1861 83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
1862 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1863 -1, 104, 8, -1, -1, -1, -1, -1, -1, -1,
1864 -1, -1, -1, 116, 20, 118, 119, 120, 121, -1,
1865 -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1866 -1, 37, -1, -1, -1, -1, -1, -1, -1, -1,
1867 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1868 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1869 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1870 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1871 -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1872 96, 97, 98, 99, 100, 101, 102, 8, 104, -1,
1873 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1874 116, -1, 118, 119, 120, 121, -1, -1, 124, 125,
1875 126, 127, 128, 129, 130, 131, 132, -1, -1, -1,
1876 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1877 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1878 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1879 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1880 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1881 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1882 101, 102, 8, 104, -1, -1, -1, -1, -1, -1,
1883 -1, -1, -1, -1, 20, 116, -1, 118, 119, 120,
1884 121, -1, -1, 124, 125, 126, 127, 128, 129, 130,
1885 131, 132, -1, -1, -1, -1, -1, -1, -1, -1,
1886 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1887 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1888 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1889 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1890 -1, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1891 96, 97, 98, 99, 100, 101, 102, 8, 104, -1,
1892 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1893 116, -1, 118, 119, 120, 121, -1, 123, 124, 125,
1894 126, 127, 128, -1, 130, 131, 132, -1, -1, -1,
1895 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1896 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1897 -1, -1, -1, -1, -1, -1, 67, 68, 69, 70,
1898 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1899 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
1900 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1901 101, 102, -1, 104, -1, -1, -1, -1, -1, 8,
1902 -1, -1, -1, -1, -1, 116, -1, 118, 119, 120,
1903 121, 20, -1, 124, 125, 126, 127, 128, 129, 130,
1904 131, 132, -1, -1, -1, -1, 35, -1, -1, -1,
1905 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1906 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1907 -1, -1, -1, -1, -1, -1, -1, -1, 67, 68,
1908 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1909 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
1910 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1911 99, 100, 101, 102, -1, 104, -1, -1, -1, -1,
1912 -1, 8, -1, -1, -1, -1, -1, 116, -1, 118,
1913 119, 120, 121, 20, -1, 124, 125, 126, 127, 128,
1914 -1, 130, 131, 132, -1, -1, -1, -1, 35, -1,
1915 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1916 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1917 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1918 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1919 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1920 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1921 97, 98, 99, 100, 101, 102, 8, 104, -1, -1,
1922 -1, -1, -1, -1, -1, -1, -1, -1, 20, 116,
1923 -1, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1924 127, 128, -1, 130, 131, 132, -1, -1, -1, -1,
1925 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1926 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1927 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
1928 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1929 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
1930 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1931 102, 8, 104, -1, -1, -1, -1, -1, -1, -1,
1932 -1, -1, -1, 20, 116, -1, 118, 119, 120, 121,
1933 -1, -1, 124, 125, 126, 127, 128, -1, 130, 131,
1934 132, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1935 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1936 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1937 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1938 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
1939 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1940 97, 98, 99, 100, 101, 102, -1, 104, -1, -1,
1941 -1, -1, -1, -1, -1, -1, -1, -1, -1, 116,
1942 -1, 118, 119, 120, 121, -1, -1, 124, 125, 126,
1943 127, 128, -1, 130, 131, 132, 3, -1, -1, 6,
1944 -1, -1, -1, -1, 11, 12, -1, -1, -1, -1,
1945 -1, -1, -1, 20, 21, 22, 23, -1, 25, -1,
1946 -1, -1, 3, -1, -1, 6, -1, 34, 35, -1,
1947 11, 12, -1, 40, 41, 42, 43, -1, -1, 20,
1948 21, 22, -1, -1, 25, -1, -1, 54, 55, -1,
1949 -1, -1, 59, 34, -1, 36, -1, -1, -1, 40,
1950 41, 42, 43, -1, -1, -1, -1, -1, -1, -1,
1951 -1, -1, 3, 54, 55, 6, -1, -1, 59, -1,
1952 11, 12, -1, -1, -1, -1, -1, -1, -1, 20,
1953 21, 22, -1, -1, 25, -1, -1, -1, -1, -1,
1954 107, 108, -1, 34, -1, 36, -1, 114, -1, 40,
1955 41, 42, 43, 3, -1, -1, 6, -1, -1, -1,
1956 -1, 11, 12, 54, 55, -1, 107, 108, 59, -1,
1957 20, 21, 22, 114, -1, 25, -1, -1, -1, -1,
1958 -1, -1, -1, -1, 34, -1, -1, -1, -1, -1,
1959 40, 41, 42, 43, -1, -1, -1, -1, -1, -1,
1960 -1, -1, -1, 3, 54, 55, 6, -1, -1, 59,
1961 -1, 11, 12, -1, -1, -1, 107, 108, -1, -1,
1962 20, -1, 22, 114, -1, 25, -1, -1, -1, -1,
1963 -1, -1, -1, -1, 34, -1, -1, -1, -1, -1,
1964 40, 41, 42, 43, -1, -1, -1, -1, -1, -1,
1965 -1, -1, -1, -1, 54, -1, -1, 107, 108, 59,
1966 -1, -1, -1, -1, 114, -1, -1, -1, -1, -1,
1967 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1968 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1969 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1970 -1, -1, -1, -1, -1, -1, -1, 107, 108, -1,
1974 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1975 symbol of state STATE-NUM. */
1976 static const unsigned short yystos[] =
1978 0, 138, 140, 0, 57, 115, 139, 141, 145, 146,
1979 3, 20, 25, 43, 176, 177, 179, 284, 12, 180,
1980 181, 284, 290, 8, 20, 48, 50, 56, 62, 67,
1981 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1982 78, 79, 80, 81, 82, 83, 84, 85, 87, 88,
1983 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1984 99, 100, 101, 102, 104, 109, 113, 116, 117, 118,
1985 119, 120, 121, 122, 124, 125, 126, 127, 128, 130,
1986 131, 132, 133, 134, 135, 136, 142, 147, 148, 152,
1987 155, 156, 157, 158, 159, 162, 164, 173, 224, 225,
1988 226, 227, 228, 231, 239, 179, 7, 32, 182, 290,
1989 7, 32, 12, 97, 228, 229, 231, 239, 25, 284,
1990 285, 288, 228, 171, 165, 167, 62, 153, 228, 228,
1991 234, 284, 287, 25, 286, 234, 287, 234, 287, 228,
1992 143, 143, 228, 224, 228, 6, 12, 20, 190, 191,
1993 241, 242, 243, 286, 7, 7, 3, 177, 32, 37,
1994 181, 3, 6, 10, 11, 14, 22, 26, 27, 34,
1995 39, 55, 66, 183, 184, 185, 186, 228, 246, 250,
1996 251, 253, 265, 6, 230, 31, 288, 12, 190, 241,
1997 112, 112, 97, 169, 154, 155, 156, 157, 159, 174,
1998 190, 34, 12, 232, 233, 190, 144, 146, 147, 152,
1999 241, 242, 243, 242, 243, 7, 32, 33, 192, 11,
2000 12, 249, 12, 249, 290, 12, 284, 27, 254, 255,
2001 284, 10, 11, 26, 251, 253, 27, 228, 37, 32,
2002 32, 6, 12, 247, 248, 249, 53, 254, 27, 6,
2003 229, 7, 129, 207, 208, 209, 228, 245, 7, 20,
2004 20, 112, 112, 220, 221, 241, 7, 25, 240, 123,
2005 149, 150, 151, 245, 34, 34, 7, 192, 37, 37,
2006 191, 11, 12, 21, 25, 40, 41, 42, 43, 54,
2007 55, 59, 107, 108, 114, 188, 189, 251, 261, 262,
2008 263, 264, 265, 266, 269, 270, 271, 272, 274, 277,
2009 278, 279, 280, 284, 286, 291, 64, 65, 160, 193,
2010 228, 36, 189, 37, 208, 37, 208, 183, 36, 24,
2011 32, 256, 284, 254, 284, 254, 27, 111, 247, 185,
2012 246, 186, 246, 248, 208, 248, 12, 249, 187, 224,
2013 250, 291, 23, 35, 252, 8, 37, 32, 6, 12,
2014 20, 242, 244, 247, 172, 166, 20, 20, 32, 175,
2015 222, 32, 238, 245, 37, 32, 228, 235, 236, 235,
2016 161, 36, 261, 273, 262, 281, 12, 262, 12, 12,
2017 12, 252, 273, 14, 33, 39, 266, 269, 265, 267,
2018 268, 274, 274, 31, 10, 11, 26, 28, 29, 30,
2019 31, 38, 270, 276, 12, 280, 12, 7, 7, 34,
2020 190, 36, 37, 37, 37, 27, 27, 36, 252, 27,
2021 37, 37, 37, 208, 31, 257, 27, 192, 129, 245,
2022 244, 6, 12, 249, 7, 34, 215, 215, 168, 170,
2023 221, 7, 34, 223, 25, 35, 7, 151, 237, 241,
2024 35, 236, 35, 34, 31, 36, 256, 37, 282, 283,
2025 286, 262, 275, 111, 261, 20, 228, 261, 44, 64,
2026 65, 66, 203, 204, 229, 261, 252, 262, 264, 264,
2027 269, 265, 265, 284, 289, 284, 36, 275, 284, 289,
2028 274, 260, 261, 275, 194, 7, 27, 27, 51, 37,
2029 258, 259, 289, 163, 37, 208, 35, 178, 179, 216,
2030 215, 215, 58, 217, 218, 7, 32, 194, 289, 31,
2031 261, 32, 31, 32, 37, 262, 32, 37, 37, 37,
2032 229, 32, 37, 269, 36, 37, 37, 60, 105, 195,
2033 196, 27, 26, 32, 34, 37, 7, 32, 35, 35,
2034 159, 228, 219, 35, 241, 196, 289, 283, 66, 199,
2035 228, 262, 51, 261, 204, 197, 198, 286, 228, 49,
2036 200, 289, 289, 196, 179, 7, 241, 280, 200, 199,
2037 262, 37, 7, 32, 31, 46, 190, 260, 106, 201,
2038 201, 12, 201, 198, 199, 261, 7, 7, 260, 61,
2039 202, 47, 210, 260, 202, 46, 7, 45, 63, 203,
2040 52, 205, 34, 205, 37, 205, 261, 7, 7, 7,
2041 260, 48, 206, 12, 25, 211, 212, 285, 286, 35,
2042 206, 7, 260, 35, 211, 6, 7, 8, 35, 12,
2043 33, 35, 7, 7, 37, 35, 211, 211, 3, 12,
2044 37, 213, 214, 278, 285, 286, 25, 285, 214, 214,
2045 32, 37, 3, 12, 12, 37, 214, 214, 37, 213,
2049 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
2050 # define YYSIZE_T __SIZE_TYPE__
2052 #if ! defined (YYSIZE_T) && defined (size_t)
2053 # define YYSIZE_T size_t
2055 #if ! defined (YYSIZE_T)
2056 # if defined (__STDC__) || defined (__cplusplus)
2057 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
2058 # define YYSIZE_T size_t
2061 #if ! defined (YYSIZE_T)
2062 # define YYSIZE_T unsigned int
2065 #define yyerrok (yyerrstatus = 0)
2066 #define yyclearin (yychar = YYEMPTY)
2067 #define YYEMPTY (-2)
2070 #define YYACCEPT goto yyacceptlab
2071 #define YYABORT goto yyabortlab
2072 #define YYERROR goto yyerrlab1
2075 /* Like YYERROR except do call yyerror. This remains here temporarily
2076 to ease the transition to the new meaning of YYERROR, for GCC.
2077 Once GCC version 2 has supplanted version 1, this can go. */
2079 #define YYFAIL goto yyerrlab
2081 #define YYRECOVERING() (!!yyerrstatus)
2083 #define YYBACKUP(Token, Value) \
2085 if (yychar == YYEMPTY && yylen == 1) \
2089 yytoken = YYTRANSLATE (yychar); \
2095 yyerror ("syntax error: cannot back up");\
2101 #define YYERRCODE 256
2103 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
2106 #ifndef YYLLOC_DEFAULT
2107 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2108 Current.first_line = Rhs[1].first_line; \
2109 Current.first_column = Rhs[1].first_column; \
2110 Current.last_line = Rhs[N].last_line; \
2111 Current.last_column = Rhs[N].last_column;
2114 /* YYLEX -- calling `yylex' with the right arguments. */
2117 # define YYLEX yylex (YYLEX_PARAM)
2119 # define YYLEX yylex ()
2122 /* Enable debugging if requested. */
2126 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2127 # define YYFPRINTF fprintf
2130 # define YYDPRINTF(Args) \
2136 # define YYDSYMPRINT(Args) \
2142 # define YYDSYMPRINTF(Title, Token, Value, Location) \
2146 YYFPRINTF (stderr, "%s ", Title); \
2147 yysymprint (stderr, \
2149 YYFPRINTF (stderr, "\n"); \
2153 /*------------------------------------------------------------------.
2154 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2156 `------------------------------------------------------------------*/
2158 #if defined (__STDC__) || defined (__cplusplus)
2160 yy_stack_print (short *bottom, short *top)
2163 yy_stack_print (bottom, top)
2168 YYFPRINTF (stderr, "Stack now");
2169 for (/* Nothing. */; bottom <= top; ++bottom)
2170 YYFPRINTF (stderr, " %d", *bottom);
2171 YYFPRINTF (stderr, "\n");
2174 # define YY_STACK_PRINT(Bottom, Top) \
2177 yy_stack_print ((Bottom), (Top)); \
2181 /*------------------------------------------------.
2182 | Report that the YYRULE is going to be reduced. |
2183 `------------------------------------------------*/
2185 #if defined (__STDC__) || defined (__cplusplus)
2187 yy_reduce_print (int yyrule)
2190 yy_reduce_print (yyrule)
2195 unsigned int yylineno = yyrline[yyrule];
2196 YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
2197 yyrule - 1, yylineno);
2198 /* Print the symbols being reduced, and their result. */
2199 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
2200 YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
2201 YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
2204 # define YY_REDUCE_PRINT(Rule) \
2207 yy_reduce_print (Rule); \
2210 /* Nonzero means print parse trace. It is left uninitialized so that
2211 multiple parsers can coexist. */
2213 #else /* !YYDEBUG */
2214 # define YYDPRINTF(Args)
2215 # define YYDSYMPRINT(Args)
2216 # define YYDSYMPRINTF(Title, Token, Value, Location)
2217 # define YY_STACK_PRINT(Bottom, Top)
2218 # define YY_REDUCE_PRINT(Rule)
2219 #endif /* !YYDEBUG */
2222 /* YYINITDEPTH -- initial size of the parser's stacks. */
2224 # define YYINITDEPTH 200
2227 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2228 if the built-in stack extension method is used).
2230 Do not make this value too large; the results are undefined if
2231 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
2232 evaluated with infinite-precision integer arithmetic. */
2239 # define YYMAXDEPTH 10000
2247 # if defined (__GLIBC__) && defined (_STRING_H)
2248 # define yystrlen strlen
2250 /* Return the length of YYSTR. */
2252 # if defined (__STDC__) || defined (__cplusplus)
2253 yystrlen (const char *yystr)
2259 register const char *yys = yystr;
2261 while (*yys++ != '\0')
2264 return yys - yystr - 1;
2270 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
2271 # define yystpcpy stpcpy
2273 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2276 # if defined (__STDC__) || defined (__cplusplus)
2277 yystpcpy (char *yydest, const char *yysrc)
2279 yystpcpy (yydest, yysrc)
2284 register char *yyd = yydest;
2285 register const char *yys = yysrc;
2287 while ((*yyd++ = *yys++) != '\0')
2295 #endif /* !YYERROR_VERBOSE */
2300 /*--------------------------------.
2301 | Print this symbol on YYOUTPUT. |
2302 `--------------------------------*/
2304 #if defined (__STDC__) || defined (__cplusplus)
2306 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
2309 yysymprint (yyoutput, yytype, yyvaluep)
2315 /* Pacify ``unused variable'' warnings. */
2318 if (yytype < YYNTOKENS)
2320 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2322 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2326 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2333 YYFPRINTF (yyoutput, ")");
2336 #endif /* ! YYDEBUG */
2337 /*-----------------------------------------------.
2338 | Release the memory associated to this symbol. |
2339 `-----------------------------------------------*/
2341 #if defined (__STDC__) || defined (__cplusplus)
2343 yydestruct (int yytype, YYSTYPE *yyvaluep)
2346 yydestruct (yytype, yyvaluep)
2351 /* Pacify ``unused variable'' warnings. */
2363 /* Prevent warnings from -Wmissing-prototypes. */
2365 #ifdef YYPARSE_PARAM
2366 # if defined (__STDC__) || defined (__cplusplus)
2367 int yyparse (void *YYPARSE_PARAM);
2371 #else /* ! YYPARSE_PARAM */
2372 #if defined (__STDC__) || defined (__cplusplus)
2377 #endif /* ! YYPARSE_PARAM */
2381 /* The lookahead symbol. */
2384 /* The semantic value of the lookahead symbol. */
2387 /* Number of syntax errors so far. */
2396 #ifdef YYPARSE_PARAM
2397 # if defined (__STDC__) || defined (__cplusplus)
2398 int yyparse (void *YYPARSE_PARAM)
2400 int yyparse (YYPARSE_PARAM)
2401 void *YYPARSE_PARAM;
2403 #else /* ! YYPARSE_PARAM */
2404 #if defined (__STDC__) || defined (__cplusplus)
2415 register int yystate;
2418 /* Number of tokens to shift before error messages enabled. */
2420 /* Lookahead token as an internal (translated) token number. */
2423 /* Three stacks and their tools:
2424 `yyss': related to states,
2425 `yyvs': related to semantic values,
2426 `yyls': related to locations.
2428 Refer to the stacks thru separate pointers, to allow yyoverflow
2429 to reallocate them elsewhere. */
2431 /* The state stack. */
2432 short yyssa[YYINITDEPTH];
2433 short *yyss = yyssa;
2434 register short *yyssp;
2436 /* The semantic value stack. */
2437 YYSTYPE yyvsa[YYINITDEPTH];
2438 YYSTYPE *yyvs = yyvsa;
2439 register YYSTYPE *yyvsp;
2443 #define YYPOPSTACK (yyvsp--, yyssp--)
2445 YYSIZE_T yystacksize = YYINITDEPTH;
2447 /* The variables used to return semantic value and location from the
2452 /* When reducing, the number of symbols on the RHS of the reduced
2456 YYDPRINTF ((stderr, "Starting parse\n"));
2461 yychar = YYEMPTY; /* Cause a token to be read. */
2463 /* Initialize stack pointers.
2464 Waste one element of value and location stack
2465 so that they stay on the same level as the state stack.
2466 The wasted elements are never initialized. */
2473 /*------------------------------------------------------------.
2474 | yynewstate -- Push a new state, which is found in yystate. |
2475 `------------------------------------------------------------*/
2477 /* In all cases, when you get here, the value and location stacks
2478 have just been pushed. so pushing a state here evens the stacks.
2485 if (yyss + yystacksize - 1 <= yyssp)
2487 /* Get the current used size of the three stacks, in elements. */
2488 YYSIZE_T yysize = yyssp - yyss + 1;
2492 /* Give user a chance to reallocate the stack. Use copies of
2493 these so that the &'s don't force the real ones into
2495 YYSTYPE *yyvs1 = yyvs;
2496 short *yyss1 = yyss;
2499 /* Each stack pointer address is followed by the size of the
2500 data in use in that stack, in bytes. This used to be a
2501 conditional around just the two extra args, but that might
2502 be undefined if yyoverflow is a macro. */
2503 yyoverflow ("parser stack overflow",
2504 &yyss1, yysize * sizeof (*yyssp),
2505 &yyvs1, yysize * sizeof (*yyvsp),
2512 #else /* no yyoverflow */
2513 # ifndef YYSTACK_RELOCATE
2516 /* Extend the stack our own way. */
2517 if (YYMAXDEPTH <= yystacksize)
2520 if (YYMAXDEPTH < yystacksize)
2521 yystacksize = YYMAXDEPTH;
2524 short *yyss1 = yyss;
2525 union yyalloc *yyptr =
2526 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2529 YYSTACK_RELOCATE (yyss);
2530 YYSTACK_RELOCATE (yyvs);
2532 # undef YYSTACK_RELOCATE
2534 YYSTACK_FREE (yyss1);
2537 #endif /* no yyoverflow */
2539 yyssp = yyss + yysize - 1;
2540 yyvsp = yyvs + yysize - 1;
2543 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2544 (unsigned long int) yystacksize));
2546 if (yyss + yystacksize - 1 <= yyssp)
2550 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2559 /* Do appropriate processing given the current state. */
2560 /* Read a lookahead token if we need one and don't already have one. */
2563 /* First try to decide what to do without reference to lookahead token. */
2565 yyn = yypact[yystate];
2566 if (yyn == YYPACT_NINF)
2569 /* Not known => get a lookahead token if don't already have one. */
2571 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2572 if (yychar == YYEMPTY)
2574 YYDPRINTF ((stderr, "Reading a token: "));
2578 if (yychar <= YYEOF)
2580 yychar = yytoken = YYEOF;
2581 YYDPRINTF ((stderr, "Now at end of input.\n"));
2585 yytoken = YYTRANSLATE (yychar);
2586 YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
2589 /* If the proper action on seeing token YYTOKEN is to reduce or to
2590 detect an error, take that action. */
2592 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2597 if (yyn == 0 || yyn == YYTABLE_NINF)
2606 /* Shift the lookahead token. */
2607 YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
2609 /* Discard the token being shifted unless it is eof. */
2610 if (yychar != YYEOF)
2616 /* Count tokens shifted since error; after three, turn off error
2625 /*-----------------------------------------------------------.
2626 | yydefault -- do the default action for the current state. |
2627 `-----------------------------------------------------------*/
2629 yyn = yydefact[yystate];
2635 /*-----------------------------.
2636 | yyreduce -- Do a reduction. |
2637 `-----------------------------*/
2639 /* yyn is the number of a rule to reduce with. */
2642 /* If YYLEN is nonzero, implement the default value of the action:
2645 Otherwise, the following line sets YYVAL to garbage.
2646 This behavior is undocumented and Bison
2647 users should not rely upon it. Assigning to YYVAL
2648 unconditionally makes the parser a bit smaller, and it avoids a
2649 GCC warning that YYVAL may be used uninitialized. */
2650 yyval = yyvsp[1-yylen];
2653 YY_REDUCE_PRINT (yyn);
2658 { lhExternals (yyvsp[0].interfacelist); ;}
2663 { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;}
2668 { yyval.interfacelist = interfaceNodeList_new (); ;}
2673 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;}
2678 { yyval.interfacelist = interfaceNodeList_new (); ;}
2683 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;}
2688 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;}
2693 { yyval.interfacelist = interfaceNodeList_new (); ;}
2698 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;}
2703 { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
2704 /* assume subspecs are already processed, symbol table info in external file */
2710 { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;}
2715 { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;}
2720 { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;}
2725 { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;}
2730 { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;}
2735 { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;}
2740 { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;}
2745 { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;}
2750 { yyval.paramlist = paramNodeList_new (); ;}
2755 { yyval.paramlist = yyvsp[0].paramlist; ;}
2760 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ;}
2765 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;}
2770 { yyval.param = markYieldParamNode (yyvsp[0].param); ;}
2775 { yyval.param = yyvsp[0].param; ;}
2780 { symtable_export (g_symtab, FALSE); ;}
2785 { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;}
2790 { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;}
2795 { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;}
2800 { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;}
2805 { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;}
2810 { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;}
2815 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;}
2820 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;}
2825 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;}
2830 { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;}
2835 { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;}
2840 { yyval.typequal = qual_createPrintfLike (); ;}
2845 { yyval.typequal = qual_createScanfLike (); ;}
2850 { yyval.typequal = qual_createMessageLike (); ;}
2855 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;}
2860 { yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls,
2861 yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2862 /* type, declarator, glovbls, privateinits,
2863 lets, checks, requires, modifies, ensures, claims */
2864 symtable_exitScope (g_symtab);
2870 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;}
2875 { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist,
2876 yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
2877 /* type, declarator, glovbls, privateinits,
2878 lets, checks, requires, modifies, ensures, claims */
2879 symtable_exitScope (g_symtab);
2885 { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;}
2890 { yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate);
2891 symtable_exitScope (g_symtab); ;}
2896 { yyval.claim = (claimNode) 0; ;}
2901 {g_inTypeDef = TRUE; ;}
2906 {g_inTypeDef = FALSE; ;}
2911 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;}
2916 {g_inTypeDef = TRUE; ;}
2921 {g_inTypeDef = FALSE; ;}
2926 { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;}
2931 {g_inTypeDef = TRUE; ;}
2936 {g_inTypeDef = FALSE; ;}
2941 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;}
2946 {g_inTypeDef = TRUE; ;}
2951 {g_inTypeDef = FALSE; ;}
2956 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;}
2961 { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;}
2966 { g_inTypeDef = FALSE; ;}
2971 { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;}
2976 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;}
2981 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;}
2986 { yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ;}
2991 { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;}
2996 { yyval.import = importNode_makePlain (yyvsp[0].ltok); ;}
3001 { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;}
3006 { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;}
3011 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;}
3016 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;}
3021 { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ;}
3026 { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;}
3031 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;}
3036 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;}
3041 { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;}
3046 { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;}
3051 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;}
3056 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;}
3061 { yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ;}
3066 { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;}
3071 { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;}
3076 { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ;}
3081 { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;}
3086 { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ;}
3091 { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;}
3096 { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;}
3101 { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;}
3106 { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
3107 yyvsp[-1].name, yyvsp[0].signature); ;}
3112 { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;}
3117 { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;}
3122 { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ;}
3127 { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;}
3132 { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;}
3137 { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;}
3142 { yyval.globals = varDeclarationNodeList_new (); ;}
3147 { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;}
3152 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;}
3157 { yyval.vardeclaration = makeInternalStateNode (); ;}
3162 { yyval.vardeclaration = makeFileSystemNode (); ;}
3167 { yyval.vardeclarationlist = varDeclarationNodeList_new (); ;}
3172 { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;}
3177 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;}
3182 { yyval.letdecls = letDeclNodeList_new (); ;}
3187 { yyval.letdecls = yyvsp[-1].letdecls; ;}
3192 { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ;}
3197 { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;}
3202 { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;}
3207 { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;}
3212 { yyval.lclpredicate = (lclPredicateNode)0; ;}
3217 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;}
3222 { yyval.lclpredicate = (lclPredicateNode)0; ;}
3227 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;}
3232 { yyval.modify = (modifyNode)0; ;}
3237 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;}
3242 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;}
3247 { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;}
3252 { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ;}
3257 { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;}
3262 { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;}
3267 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;}
3272 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;}
3277 { yyval.storeref = makeStoreRefNodeInternal (); ;}
3282 { yyval.storeref = makeStoreRefNodeSystem (); ;}
3287 { yyval.lclpredicate = (lclPredicateNode)0; ;}
3292 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;}
3297 { yyval.lclpredicate = (lclPredicateNode)0; ;}
3302 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;}
3307 { yyval.paramlist = paramNodeList_new (); ;}
3312 { yyval.paramlist = yyvsp[0].paramlist; ;}
3317 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ;}
3322 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;}
3327 { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;}
3332 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;}
3337 { yyval.program = (programNode)0; ;}
3342 { yyval.program = yyvsp[-1].program; ;}
3347 { yyval.program = yyvsp[-2].program; ;}
3352 { yyval.program = makeProgramNode (yyvsp[0].stmt); ;}
3357 { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;}
3362 { programNodeList x = programNodeList_new ();
3363 programNodeList_addh (x, yyvsp[-1].program);
3364 yyval.program = makeProgramNodeAction (x, ACT_ITER);
3370 { programNodeList x = programNodeList_new ();
3371 programNodeList_addh (x, yyvsp[-2].program);
3372 programNodeList_addh (x, yyvsp[0].program);
3373 yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE);
3379 { programNodeList x = programNodeList_new ();
3380 programNodeList_addh (x, yyvsp[-2].program);
3381 programNodeList_addh (x, yyvsp[0].program);
3382 yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE);
3388 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;}
3393 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;}
3398 { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;}
3403 { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;}
3408 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;}
3413 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;}
3418 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;}
3423 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;}
3428 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;}
3433 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;}
3438 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;}
3443 { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;}
3448 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;}
3453 { yyval.abstbody = (abstBodyNode)0; ;}
3458 { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;}
3463 { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;}
3468 { yyval.abstbody = (abstBodyNode)0; ;}
3473 { yyval.fcns = fcnNodeList_new (); ;}
3478 { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;}
3483 { yyval.lclpredicate = (lclPredicateNode)0; ;}
3488 { g_inTypeDef = FALSE; ;}
3493 { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
3494 checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
3495 yyval.lclpredicate = yyvsp[-1].lclpredicate;
3496 symtable_exitScope (g_symtab);
3503 { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ;}
3508 { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;}
3513 { declareForwardType (yyvsp[0].declare); ;}
3518 { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;}
3523 { yyval.abstbody = (abstBodyNode)0; ;}
3528 { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;}
3533 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;}
3538 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;}
3543 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;}
3548 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;}
3553 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;}
3558 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;}
3563 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;}
3568 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;}
3573 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;}
3578 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;}
3583 { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;}
3588 { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;}
3593 { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;}
3598 { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;}
3603 { yyval.typequal = qual_createOut (); ;}
3608 { yyval.typequal = qual_createUnused (); ;}
3613 { yyval.typequal = qual_createSef (); ;}
3618 { yyval.typequal = qual_createOnly (); ;}
3623 { yyval.typequal = qual_createOwned (); ;}
3628 { yyval.typequal = qual_createDependent (); ;}
3633 { yyval.typequal = qual_createKeep (); ;}
3638 { yyval.typequal = qual_createKept (); ;}
3643 { yyval.typequal = qual_createObserver (); ;}
3648 { yyval.typequal = qual_createExits (); ;}
3653 { yyval.typequal = qual_createMayExit (); ;}
3658 { yyval.typequal = qual_createTrueExit (); ;}
3663 { yyval.typequal = qual_createFalseExit (); ;}
3668 { yyval.typequal = qual_createNeverExit (); ;}
3673 { yyval.typequal = qual_createOnly (); ;}
3678 { yyval.typequal = qual_createShared (); ;}
3683 { yyval.typequal = qual_createUnique (); ;}
3688 { yyval.typequal = qual_createChecked (); ;}
3693 { yyval.typequal = qual_createUnchecked (); ;}
3698 { yyval.typequal = qual_createCheckedStrict (); ;}
3703 { yyval.typequal = qual_createTrueNull (); ;}
3708 { yyval.typequal = qual_createFalseNull (); ;}
3713 { yyval.typequal = qual_createRelNull (); ;}
3718 { yyval.typequal = qual_createRelDef (); ;}
3723 { yyval.typequal = qual_createRefCounted (); ;}
3728 { yyval.typequal = qual_createRefs (); ;}
3733 { yyval.typequal = qual_createNewRef (); ;}
3738 { yyval.typequal = qual_createKillRef (); ;}
3743 { yyval.typequal = qual_createNull (); ;}
3748 { yyval.typequal = qual_createNotNull (); ;}
3753 { yyval.typequal = qual_createReturned (); ;}
3758 { yyval.typequal = qual_createExposed (); ;}
3763 { yyval.typequal = qual_createPartial (); ;}
3768 { yyval.typequal = qual_createNullTerminated () ; ;}
3773 { yyval.typequal = qual_createUndef (); ;}
3778 { yyval.typequal = qual_createKilled (); ;}
3783 { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;}
3788 { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;}
3793 { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;}
3798 { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;}
3803 { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;}
3808 { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
3809 yyvsp[-1].lcltypespec->pointers = yyvsp[0].pointers; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;}
3814 { yyval.pointers = pointers_createLt (yyvsp[0].ltok); ;}
3819 { yyval.pointers = pointers_extend (yyvsp[-1].pointers, pointers_createLt (yyvsp[0].ltok)); ;}
3824 { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;}
3829 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;}
3834 { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;}
3839 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;}
3844 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;}
3849 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;}
3854 { yyval.ltok = ltoken_undefined; ;}
3859 { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ;}
3864 { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;}
3869 { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;}
3874 { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ;}
3879 { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;}
3894 { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;}
3899 { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;}
3904 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;}
3909 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;}
3914 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;}
3919 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;}
3924 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;}
3929 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;}
3934 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;}
3939 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;}
3944 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;}
3949 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;}
3954 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;}
3959 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;}
3964 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;}
3969 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;}
3974 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;}
3979 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;}
3984 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;}
3989 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;}
3994 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;}
3999 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;}
4004 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;}
4009 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;}
4014 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;}
4019 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;}
4024 { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;}
4029 { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;}
4034 { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;}
4039 { yyval.abstDecl = (abstDeclaratorNode)0; ;}
4044 { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;}
4049 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;}
4054 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;}
4059 { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;}
4064 { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;}
4069 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;}
4074 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;}
4079 { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;}
4084 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;}
4089 { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;}
4094 { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;}
4099 { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;}
4104 { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
4109 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
4114 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;}
4119 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM,
4120 opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;}
4125 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;}
4130 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;}
4135 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;}
4140 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;}
4145 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;}
4150 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;}
4155 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;}
4160 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;}
4165 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT,
4166 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
4171 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP,
4172 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
4177 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT,
4178 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
4183 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP,
4184 opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;}
4189 { yyval.count = 0; ;}
4194 { yyval.count = 1; ;}
4199 { yyval.count = yyvsp[-2].count + 1; ;}
4204 { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;}
4209 { yyval.ltokenList = ltokenList_new (); ;}
4214 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;}
4219 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;}
4224 { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;}
4229 { yyval.term = checkSort (yyvsp[0].term); ;}
4234 { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;}
4239 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;}
4244 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
4245 symtable_exitScope (g_symtab);
4251 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;}
4256 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;}
4261 { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;}
4266 { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;}
4271 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;}
4276 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;}
4281 { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;}
4286 { yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ;}
4291 { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;}
4296 { yyval.term = computePossibleSorts (yyvsp[0].term); ;}
4301 { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;}
4306 { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;}
4311 { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;}
4316 { yyval.term = computePossibleSorts (yyvsp[0].term); ;}
4321 { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;}
4326 { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;}
4331 { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok);
4332 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;}
4337 { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;}
4342 { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok);
4343 yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok));
4349 { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;}
4354 { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;}
4359 { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;}
4364 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;}
4369 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;}
4374 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;}
4379 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;}
4384 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;}
4389 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;}
4394 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;}
4399 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;}
4404 { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok),
4410 { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;}
4415 { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;}
4420 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;}
4425 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;}
4430 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;}
4435 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;}
4440 { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;}
4445 { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;}
4450 { termNodeList x = termNodeList_new ();
4451 termNodeList_addh (x, yyvsp[-1].term);
4452 yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok);
4458 { termNodeList x = termNodeList_new ();
4459 termNodeList_addh (x, yyvsp[-3].term);
4460 termNodeList_addh (x, yyvsp[-1].term);
4461 yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok);
4467 { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;}
4472 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortInt); ;}
4477 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortCstring); ;}
4482 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortChar); ;}
4487 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortDouble); ;}
4492 { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ;}
4497 { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;}
4502 { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
4503 si->kind = SPE_QUANT;
4504 symtable_enterScope (g_symtab, si); ;}
4509 { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;}
4514 { yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ;}
4519 { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;}
4524 { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;}
4529 { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;}
4535 /* Line 999 of yacc.c. */
4542 YY_STACK_PRINT (yyss, yyssp);
4547 /* Now `shift' the result of the reduction. Determine what state
4548 that goes to, based on the state we popped back to and the rule
4549 number reduced by. */
4553 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
4554 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
4555 yystate = yytable[yystate];
4557 yystate = yydefgoto[yyn - YYNTOKENS];
4562 /*------------------------------------.
4563 | yyerrlab -- here on detecting error |
4564 `------------------------------------*/
4566 /* If not already recovering from an error, report this error. */
4571 yyn = yypact[yystate];
4573 if (YYPACT_NINF < yyn && yyn < YYLAST)
4575 YYSIZE_T yysize = 0;
4576 int yytype = YYTRANSLATE (yychar);
4581 /* Start YYX at -YYN if negative to avoid negative indexes in
4583 for (yyx = yyn < 0 ? -yyn : 0;
4584 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
4585 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
4586 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
4587 yysize += yystrlen ("syntax error, unexpected ") + 1;
4588 yysize += yystrlen (yytname[yytype]);
4589 yymsg = (char *) YYSTACK_ALLOC (yysize);
4592 char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
4593 yyp = yystpcpy (yyp, yytname[yytype]);
4598 for (yyx = yyn < 0 ? -yyn : 0;
4599 yyx < (int) (sizeof (yytname) / sizeof (char *));
4601 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
4603 const char *yyq = ! yycount ? ", expecting " : " or ";
4604 yyp = yystpcpy (yyp, yyq);
4605 yyp = yystpcpy (yyp, yytname[yyx]);
4610 YYSTACK_FREE (yymsg);
4613 yyerror ("syntax error; also virtual memory exhausted");
4616 #endif /* YYERROR_VERBOSE */
4617 yyerror ("syntax error");
4622 if (yyerrstatus == 3)
4624 /* If just tried and failed to reuse lookahead token after an
4625 error, discard it. */
4627 /* Return failure if at end of input. */
4628 if (yychar == YYEOF)
4630 /* Pop the error token. */
4632 /* Pop the rest of the stack. */
4633 while (yyss < yyssp)
4635 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
4636 yydestruct (yystos[*yyssp], yyvsp);
4642 YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
4643 yydestruct (yytoken, &yylval);
4648 /* Else will try to reuse lookahead token after shifting the error
4653 /*----------------------------------------------------.
4654 | yyerrlab1 -- error raised explicitly by an action. |
4655 `----------------------------------------------------*/
4657 yyerrstatus = 3; /* Each real token shifted decrements this. */
4661 yyn = yypact[yystate];
4662 if (yyn != YYPACT_NINF)
4665 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
4673 /* Pop the current state because it cannot handle the error token. */
4677 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
4678 yydestruct (yystos[yystate], yyvsp);
4682 YY_STACK_PRINT (yyss, yyssp);
4688 YYDPRINTF ((stderr, "Shifting error token, "));
4697 /*-------------------------------------.
4698 | yyacceptlab -- YYACCEPT comes here. |
4699 `-------------------------------------*/
4704 /*-----------------------------------.
4705 | yyabortlab -- YYABORT comes here. |
4706 `-----------------------------------*/
4712 /*----------------------------------------------.
4713 | yyoverflowlab -- parser overflow comes here. |
4714 `----------------------------------------------*/
4716 yyerror ("parser stack overflow");
4724 YYSTACK_FREE (yyss);
4733 # include "bison.reset"
4736 ** yytext is set in lex scanner
4737 ** extern YYSTYPE yylval;
4738 ** yylval is defined by code generated by bison
4741 void ylerror (char *s)
4744 ** This resetting of the left context is very important when multiple
4745 ** files are to be parsed. We do not want failures to propagate.
4746 ** Lex/Yacc does not reset the flags when the parsing goes bad.
4751 lclfatalerror (yllval.ltok,
4752 message ("%s: Token code: %s, Token String: %s",
4753 cstring_fromChars (s),
4754 ltoken_unparseCodeName (yllval.ltok),
4755 ltoken_getRawString (yllval.ltok)));
4759 static void yyprint (FILE *f, int t, YYSTYPE value)
4761 fprintf (f, " type: %d (%s)", t,
4762 cstring_toCharsSafe (ltoken_getRawString (value.ltok)));
4773 ** Resets all flags in bison.head
4795 /*@=evalorderuncon@*/
4804 /*@=elseifcomplete@*/
4808 /*@=readonlytrans@*/
4811 /*@=systemunrecog@*/
4812 /*@=dependenttrans@*/
4813 /*@=unqualifiedtrans@*/
4817 /*drl added 11/27/2001*/
4820 /*drl added 12/11/2002*/