9 date 2007.08.19.11.18.56; author khansen; state Exp;
14 date 2007.08.12.18.58.12; author khansen; state Exp;
19 date 2007.08.11.01.24.36; author khansen; state Exp;
24 date 2007.07.22.13.33.26; author khansen; state Exp;
29 date 2007.07.22.12.54.17; author khansen; state Exp;
35 @auto-generated parser
41 @--case-insensitive option
44 @/* A Bison parser, made by GNU Bison 2.3. */
46 /* Skeleton implementation for Bison's Yacc-like parsers in C
48 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
49 Free Software Foundation, Inc.
51 This program is free software; you can redistribute it and/or modify
52 it under the terms of the GNU General Public License as published by
53 the Free Software Foundation; either version 2, or (at your option)
56 This program is distributed in the hope that it will be useful,
57 but WITHOUT ANY WARRANTY; without even the implied warranty of
58 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
59 GNU General Public License for more details.
61 You should have received a copy of the GNU General Public License
62 along with this program; if not, write to the Free Software
63 Foundation, Inc., 51 Franklin Street, Fifth Floor,
64 Boston, MA 02110-1301, USA. */
66 /* As a special exception, you may create a larger work that contains
67 part or all of the Bison parser skeleton and distribute that work
68 under terms of your choice, so long as that work isn't itself a
69 parser generator using the skeleton or a modified version thereof
70 as a parser skeleton. Alternatively, if you modify or redistribute
71 the parser skeleton itself, you may (at your option) remove this
72 special exception, which will cause the skeleton and the resulting
73 Bison output files to be licensed under the GNU General Public
74 License without this special exception.
76 This special exception was added by the Free Software Foundation in
77 version 2.2 of Bison. */
79 /* C LALR(1) parser skeleton written by Richard Stallman, by
80 simplifying the original so-called "semantic" parser. */
82 /* All symbols defined below should begin with yy or YY, to avoid
83 infringing on user name space. This should be done even for local
84 variables, as they might otherwise be expanded by user macros.
85 There are some unavoidable exceptions within include files to
86 define necessary library symbols; they are noted "INFRINGES ON
87 USER NAME SPACE" below. */
89 /* Identify Bison output. */
93 #define YYBISON_VERSION "2.3"
96 #define YYSKELETON_NAME "yacc.c"
101 /* Using locations. */
102 #define YYLSP_NEEDED 1
109 /* Put the tokens into the symbol table, so that GDB and other debuggers
112 INTEGER_LITERAL = 258,
113 STRING_LITERAL = 259,
117 FORWARD_BRANCH = 263,
118 BACKWARD_BRANCH = 264,
180 #define INTEGER_LITERAL 258
181 #define STRING_LITERAL 259
182 #define FILE_PATH 260
183 #define IDENTIFIER 261
185 #define FORWARD_BRANCH 263
186 #define BACKWARD_BRANCH 264
188 #define LOCAL_LABEL 266
249 /* Copy the first part of user declarations. */
253 * $Id: parser.y,v 1.12 2007/08/12 18:59:00 khansen Exp khansen $
255 * Revision 1.12 2007/08/12 18:59:00 khansen
256 * ability to generate pure 6502 binary
258 * Revision 1.11 2007/08/11 01:25:50 khansen
259 * includepaths support (-I option)
261 * Revision 1.10 2007/07/22 13:34:38 khansen
262 * convert tabs to whitespaces
264 * Revision 1.9 2005/01/05 02:28:40 kenth
265 * anonymous union parsing
267 * Revision 1.8 2004/12/29 21:45:26 kenth
271 * Revision 1.7 2004/12/19 19:59:14 kenth
274 * Revision 1.6 2004/12/16 13:22:27 kenth
277 * Revision 1.5 2004/12/14 01:50:42 kenth
280 * Revision 1.4 2004/12/11 02:12:41 kenth
283 * Revision 1.3 2004/12/09 11:17:15 kenth
284 * added: warning_statement, error_statement
286 * Revision 1.2 2004/12/06 05:06:21 kenth
289 * Revision 1.1 2004/06/30 07:57:03 kenth
301 void yyerror(const char *); /* In lexer */
302 int yylex(void); /* In lexer */
303 int yypushandrestart(const char *); /* In lexer */
304 void __yy_memcpy(char *, char *, int);
305 extern char *yytext; /* In lexer */
306 extern YYLTYPE yylloc; /* In lexer */
307 extern astnode *root_node; /* Root of the generated parse tree */
308 void handle_incsrc(astnode *); /* See below */
309 void handle_incbin(astnode *); /* See below */
312 /* Enabling traces. */
317 /* Enabling verbose error messages. */
318 #ifdef YYERROR_VERBOSE
319 # undef YYERROR_VERBOSE
320 # define YYERROR_VERBOSE 1
322 # define YYERROR_VERBOSE 1
325 /* Enabling the token table. */
326 #ifndef YYTOKEN_TABLE
327 # define YYTOKEN_TABLE 0
330 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
331 typedef union YYSTYPE
341 /* Line 187 of yacc.c. */
344 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
345 # define YYSTYPE_IS_DECLARED 1
346 # define YYSTYPE_IS_TRIVIAL 1
349 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
350 typedef struct YYLTYPE
357 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
358 # define YYLTYPE_IS_DECLARED 1
359 # define YYLTYPE_IS_TRIVIAL 1
363 /* Copy the second part of user declarations. */
366 /* Line 216 of yacc.c. */
374 typedef YYTYPE_UINT8 yytype_uint8;
376 typedef unsigned char yytype_uint8;
380 typedef YYTYPE_INT8 yytype_int8;
381 #elif (defined __STDC__ || defined __C99__FUNC__ \
382 || defined __cplusplus || defined _MSC_VER)
383 typedef signed char yytype_int8;
385 typedef short int yytype_int8;
389 typedef YYTYPE_UINT16 yytype_uint16;
391 typedef unsigned short int yytype_uint16;
395 typedef YYTYPE_INT16 yytype_int16;
397 typedef short int yytype_int16;
401 # ifdef __SIZE_TYPE__
402 # define YYSIZE_T __SIZE_TYPE__
403 # elif defined size_t
404 # define YYSIZE_T size_t
405 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
406 || defined __cplusplus || defined _MSC_VER)
407 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
408 # define YYSIZE_T size_t
410 # define YYSIZE_T unsigned int
414 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
419 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
420 # define YY_(msgid) dgettext ("bison-runtime", msgid)
424 # define YY_(msgid) msgid
428 /* Suppress unused-variable warnings by "using" E. */
429 #if ! defined lint || defined __GNUC__
430 # define YYUSE(e) ((void) (e))
432 # define YYUSE(e) /* empty */
435 /* Identity function, used to suppress warnings about constant conditions. */
439 #if (defined __STDC__ || defined __C99__FUNC__ \
440 || defined __cplusplus || defined _MSC_VER)
453 #if ! defined yyoverflow || YYERROR_VERBOSE
455 /* The parser invokes alloca or malloc; define the necessary symbols. */
457 # ifdef YYSTACK_USE_ALLOCA
458 # if YYSTACK_USE_ALLOCA
460 # define YYSTACK_ALLOC __builtin_alloca
461 # elif defined __BUILTIN_VA_ARG_INCR
462 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
464 # define YYSTACK_ALLOC __alloca
465 # elif defined _MSC_VER
466 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
467 # define alloca _alloca
469 # define YYSTACK_ALLOC alloca
470 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
471 || defined __cplusplus || defined _MSC_VER)
472 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
481 # ifdef YYSTACK_ALLOC
482 /* Pacify GCC's `empty if-body' warning. */
483 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
484 # ifndef YYSTACK_ALLOC_MAXIMUM
485 /* The OS might guarantee only one guard page at the bottom of the stack,
486 and a page size can be as small as 4096 bytes. So we cannot safely
487 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
488 to allow for a few compiler-allocated temporary stack slots. */
489 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
492 # define YYSTACK_ALLOC YYMALLOC
493 # define YYSTACK_FREE YYFREE
494 # ifndef YYSTACK_ALLOC_MAXIMUM
495 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
497 # if (defined __cplusplus && ! defined _STDLIB_H \
498 && ! ((defined YYMALLOC || defined malloc) \
499 && (defined YYFREE || defined free)))
500 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
506 # define YYMALLOC malloc
507 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
508 || defined __cplusplus || defined _MSC_VER)
509 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
514 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
515 || defined __cplusplus || defined _MSC_VER)
516 void free (void *); /* INFRINGES ON USER NAME SPACE */
520 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
523 #if (! defined yyoverflow \
524 && (! defined __cplusplus \
525 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
526 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
528 /* A type that is properly aligned for any stack member. */
536 /* The size of the maximum gap between one aligned stack and the next. */
537 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
539 /* The size of an array large to enough to hold all stacks, each with
541 # define YYSTACK_BYTES(N) \
542 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
543 + 2 * YYSTACK_GAP_MAXIMUM)
545 /* Copy COUNT objects from FROM to TO. The source and destination do
548 # if defined __GNUC__ && 1 < __GNUC__
549 # define YYCOPY(To, From, Count) \
550 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
552 # define YYCOPY(To, From, Count) \
556 for (yyi = 0; yyi < (Count); yyi++) \
557 (To)[yyi] = (From)[yyi]; \
563 /* Relocate STACK from its old location to the new one. The
564 local variables YYSIZE and YYSTACKSIZE give the old and new number of
565 elements in the stack, and YYPTR gives the new location of the
566 stack. Advance YYPTR to a properly aligned location for the next
568 # define YYSTACK_RELOCATE(Stack) \
571 YYSIZE_T yynewbytes; \
572 YYCOPY (&yyptr->Stack, Stack, yysize); \
573 Stack = &yyptr->Stack; \
574 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
575 yyptr += yynewbytes / sizeof (*yyptr); \
581 /* YYFINAL -- State number of the termination state. */
583 /* YYLAST -- Last index in YYTABLE. */
586 /* YYNTOKENS -- Number of terminals. */
588 /* YYNNTS -- Number of nonterminals. */
590 /* YYNRULES -- Number of rules. */
592 /* YYNRULES -- Number of states. */
593 #define YYNSTATES 380
595 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
597 #define YYMAXUTOK 322
599 #define YYTRANSLATE(YYX) \
600 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
602 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
603 static const yytype_uint8 yytranslate[] =
605 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
606 58, 2, 2, 2, 2, 2, 2, 2, 2, 2,
607 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
608 2, 2, 2, 93, 2, 73, 66, 92, 78, 2,
609 95, 96, 90, 87, 71, 88, 72, 91, 2, 2,
610 2, 2, 2, 2, 2, 2, 2, 2, 59, 2,
611 82, 65, 81, 2, 60, 62, 2, 2, 2, 2,
612 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
613 2, 2, 2, 2, 2, 2, 2, 2, 63, 64,
614 2, 69, 2, 70, 77, 2, 2, 2, 2, 2,
615 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
616 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
617 2, 2, 2, 67, 76, 68, 94, 2, 2, 2,
618 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
619 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
620 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
621 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
622 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
623 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
624 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
625 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
626 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
627 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
628 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
629 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
630 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
631 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
632 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
633 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
634 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
635 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
636 55, 56, 57, 61, 74, 75, 79, 80, 83, 84,
641 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
643 static const yytype_uint16 yyprhs[] =
645 0, 0, 3, 6, 9, 10, 12, 15, 18, 20,
646 22, 24, 26, 28, 30, 32, 34, 36, 38, 40,
647 42, 44, 46, 48, 50, 52, 54, 56, 58, 60,
648 62, 64, 66, 68, 70, 72, 74, 76, 78, 80,
649 82, 84, 87, 91, 96, 100, 104, 108, 114, 117,
650 118, 121, 122, 129, 136, 143, 150, 157, 164, 166,
651 169, 171, 174, 179, 181, 185, 189, 193, 196, 200,
652 203, 205, 207, 209, 211, 213, 216, 218, 221, 225,
653 228, 233, 238, 245, 252, 257, 259, 262, 264, 266,
654 268, 270, 272, 274, 276, 280, 282, 284, 286, 288,
655 291, 293, 298, 303, 305, 307, 309, 311, 313, 314,
656 318, 322, 326, 330, 332, 333, 335, 339, 341, 342,
657 344, 348, 352, 356, 360, 364, 368, 372, 376, 380,
658 384, 387, 390, 393, 396, 399, 402, 406, 410, 414,
659 418, 422, 426, 428, 430, 432, 434, 436, 438, 440,
660 442, 443, 445, 447, 456, 458, 459, 461, 464, 469,
661 473, 474, 482, 490, 493, 496, 499, 503, 507, 512,
662 517, 520, 522, 527, 529, 531, 533, 535, 538, 541,
663 543, 547, 551, 555, 557, 559, 567, 569, 570, 574,
664 576, 577, 579, 583, 588, 593, 597, 602, 606, 613,
665 616, 617, 619, 621, 623, 625, 627, 629, 632, 636,
666 640, 645, 650, 654, 656, 658
669 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
670 static const yytype_int16 yyrhs[] =
672 98, 0, -1, 100, 99, -1, 38, 127, -1, -1,
673 101, -1, 100, 101, -1, 126, 102, -1, 102, -1,
674 149, -1, 154, -1, 155, -1, 164, -1, 166, -1,
675 161, -1, 162, -1, 169, -1, 170, -1, 172, -1,
676 173, -1, 129, -1, 156, -1, 176, -1, 123, -1,
677 124, -1, 122, -1, 114, -1, 115, -1, 116, -1,
678 119, -1, 113, -1, 112, -1, 111, -1, 108, -1,
679 107, -1, 105, -1, 106, -1, 171, -1, 104, -1,
680 103, -1, 125, -1, 1, 127, -1, 57, 131, 127,
681 -1, 35, 168, 131, 127, -1, 54, 131, 127, -1,
682 55, 131, 127, -1, 53, 131, 127, -1, 13, 146,
683 109, 110, 127, -1, 65, 131, -1, -1, 59, 175,
684 -1, -1, 33, 131, 127, 100, 34, 127, -1, 32,
685 131, 127, 100, 34, 127, -1, 48, 146, 127, 100,
686 49, 127, -1, 42, 146, 127, 100, 44, 127, -1,
687 43, 147, 127, 100, 44, 127, -1, 46, 146, 127,
688 117, 47, 127, -1, 118, -1, 117, 118, -1, 170,
689 -1, 146, 127, -1, 45, 146, 120, 127, -1, 121,
690 -1, 120, 71, 121, -1, 146, 59, 131, -1, 41,
691 163, 127, -1, 21, 127, -1, 21, 56, 127, -1,
692 22, 127, -1, 127, -1, 145, -1, 128, -1, 59,
693 -1, 58, -1, 130, 127, -1, 12, -1, 12, 62,
694 -1, 12, 73, 131, -1, 12, 131, -1, 12, 131,
695 71, 63, -1, 12, 131, 71, 64, -1, 12, 69,
696 131, 71, 63, 70, -1, 12, 69, 131, 70, 71,
697 64, -1, 12, 69, 131, 70, -1, 132, -1, 50,
698 134, -1, 136, -1, 137, -1, 142, -1, 148, -1,
699 66, -1, 143, -1, 144, -1, 95, 131, 96, -1,
700 87, -1, 88, -1, 8, -1, 9, -1, 51, 136,
701 -1, 146, -1, 146, 69, 131, 70, -1, 146, 95,
702 131, 96, -1, 131, -1, 138, -1, 146, -1, 159,
703 -1, 131, -1, -1, 146, 61, 146, -1, 132, 72,
704 137, -1, 132, 72, 132, -1, 67, 139, 68, -1,
705 140, -1, -1, 141, -1, 140, 71, 141, -1, 133,
706 -1, -1, 7, -1, 131, 87, 131, -1, 131, 88,
707 131, -1, 131, 90, 131, -1, 131, 91, 131, -1,
708 131, 92, 131, -1, 131, 78, 131, -1, 131, 76,
709 131, -1, 131, 77, 131, -1, 131, 86, 131, -1,
710 131, 85, 131, -1, 94, 131, -1, 93, 131, -1,
711 77, 146, -1, 82, 131, -1, 81, 131, -1, 88,
712 131, -1, 131, 80, 131, -1, 131, 79, 131, -1,
713 131, 81, 131, -1, 131, 82, 131, -1, 131, 83,
714 131, -1, 131, 84, 131, -1, 10, -1, 11, -1,
715 87, -1, 88, -1, 8, -1, 9, -1, 6, -1,
716 146, -1, -1, 3, -1, 4, -1, 23, 131, 127,
717 100, 150, 153, 28, 127, -1, 151, -1, -1, 152,
718 -1, 151, 152, -1, 27, 131, 127, 100, -1, 26,
719 127, 100, -1, -1, 24, 146, 127, 100, 153, 28,
720 127, -1, 25, 146, 127, 100, 153, 28, 127, -1,
721 157, 127, -1, 158, 127, -1, 146, 158, -1, 56,
722 146, 158, -1, 39, 146, 158, -1, 56, 39, 146,
723 158, -1, 39, 56, 146, 158, -1, 159, 160, -1,
724 159, -1, 159, 69, 131, 70, -1, 14, -1, 15,
725 -1, 16, -1, 17, -1, 52, 146, -1, 72, 146,
726 -1, 133, -1, 160, 71, 133, -1, 29, 163, 127,
727 -1, 30, 163, 127, -1, 4, -1, 5, -1, 31,
728 146, 165, 127, 100, 34, 127, -1, 168, -1, -1,
729 146, 167, 127, -1, 160, -1, -1, 146, -1, 168,
730 71, 146, -1, 146, 36, 133, 127, -1, 146, 65,
731 133, 127, -1, 37, 146, 127, -1, 37, 146, 133,
732 127, -1, 39, 168, 127, -1, 40, 168, 59, 175,
733 174, 127, -1, 60, 146, -1, -1, 159, -1, 146,
734 -1, 48, -1, 13, -1, 177, -1, 178, -1, 146,
735 178, -1, 56, 146, 178, -1, 39, 146, 178, -1,
736 56, 39, 146, 178, -1, 39, 56, 146, 178, -1,
737 179, 135, 127, -1, 18, -1, 19, -1, 20, -1
740 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
741 static const yytype_uint16 yyrline[] =
743 0, 116, 116, 120, 121, 125, 126, 133, 134, 138,
744 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
745 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
746 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
747 169, 170, 174, 178, 182, 186, 190, 194, 198, 199,
748 203, 204, 208, 212, 216, 220, 224, 228, 232, 233,
749 237, 238, 242, 246, 247, 251, 255, 259, 260, 263,
750 267, 271, 275, 276, 280, 284, 288, 289, 290, 291,
751 292, 293, 294, 295, 296, 300, 301, 302, 303, 304,
752 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
753 318, 319, 320, 324, 325, 329, 330, 334, 335, 339,
754 343, 344, 348, 352, 353, 357, 358, 362, 363, 367,
755 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
756 381, 382, 383, 384, 385, 386, 390, 391, 392, 393,
757 394, 395, 399, 400, 401, 402, 403, 404, 408, 412,
758 413, 417, 418, 422, 426, 427, 431, 432, 436, 440,
759 441, 445, 449, 453, 454, 458, 459, 460, 461, 462,
760 466, 467, 468, 472, 473, 474, 475, 476, 477, 481,
761 482, 486, 490, 494, 495, 499, 503, 504, 508, 512,
762 513, 517, 518, 522, 526, 530, 531, 535, 539, 543,
763 544, 548, 549, 550, 551, 555, 556, 560, 561, 562,
764 563, 564, 568, 572, 573, 574
768 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
769 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
770 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
771 static const char *const yytname[] =
773 "$end", "error", "$undefined", "INTEGER_LITERAL", "STRING_LITERAL",
774 "FILE_PATH", "IDENTIFIER", "LOCAL_ID", "FORWARD_BRANCH",
775 "BACKWARD_BRANCH", "LABEL", "LOCAL_LABEL", "MNEMONIC", "_LABEL_", "BYTE",
776 "CHAR", "WORD", "DWORD", "DSB", "DSW", "DSD", "DATASEG", "CODESEG", "IF",
777 "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "INCSRC", "INCBIN", "MACRO",
778 "REPT", "WHILE", "ENDM", "ALIGN", "EQU", "DEFINE", "END", "PUBLIC",
779 "EXTRN", "CHARMAP", "STRUC", "UNION", "ENDS", "RECORD", "ENUM", "ENDE",
780 "PROC", "ENDP", "SIZEOF", "MASK", "TAG", "MESSAGE", "WARNING", "ERROR",
781 "ZEROPAGE", "ORG", "'\\n'", "':'", "'@@'", "SCOPE_OP", "'A'", "'X'",
782 "'Y'", "'='", "'$'", "'{'", "'}'", "'['", "']'", "','", "'.'", "'#'",
783 "HI_OP", "LO_OP", "'|'", "'^'", "'&'", "NE_OP", "EQ_OP", "'>'", "'<'",
784 "GE_OP", "LE_OP", "SHR_OP", "SHL_OP", "'+'", "'-'", "UMINUS", "'*'",
785 "'/'", "'%'", "'!'", "'~'", "'('", "')'", "$accept", "assembly_unit",
786 "end_opt", "statement_list", "labelable_statement", "statement",
787 "org_statement", "align_statement", "warning_statement",
788 "error_statement", "message_statement", "label_statement",
789 "label_addr_part_opt", "label_type_part_opt", "while_statement",
790 "rept_statement", "proc_statement", "struc_decl_statement",
791 "union_decl_statement", "enum_decl_statement", "enum_item_list",
792 "enum_item", "record_decl_statement", "record_field_list",
793 "record_field", "charmap_statement", "dataseg_statement",
794 "codeseg_statement", "null_statement", "label_decl", "line_tail",
795 "newline", "instruction_statement", "instruction", "expression",
796 "indexed_identifier", "extended_expression", "sizeof_arg",
797 "expression_opt", "scope_access", "struc_access", "struc_initializer",
798 "field_initializer_list_opt", "field_initializer_list",
799 "field_initializer", "local_id", "arithmetic_expression",
800 "comparison_expression", "label", "identifier", "identifier_opt",
801 "literal", "if_statement", "elif_statement_list_opt",
802 "elif_statement_list", "elif_statement", "else_part_opt",
803 "ifdef_statement", "ifndef_statement", "data_statement",
804 "named_data_statement", "unnamed_data_statement", "datatype",
805 "expression_list", "incsrc_statement", "incbin_statement",
806 "file_specifier", "macro_decl_statement", "param_list_opt",
807 "macro_statement", "arg_list_opt", "identifier_list", "equ_statement",
808 "assign_statement", "define_statement", "public_statement",
809 "extrn_statement", "from_part_opt", "symbol_type", "storage_statement",
810 "named_storage_statement", "unnamed_storage_statement", "storage", 0
815 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
817 static const yytype_uint16 yytoknum[] =
819 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
820 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
821 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
822 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
823 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
824 305, 306, 307, 308, 309, 310, 311, 312, 10, 58,
825 64, 313, 65, 88, 89, 61, 36, 123, 125, 91,
826 93, 44, 46, 35, 314, 315, 124, 94, 38, 316,
827 317, 62, 60, 318, 319, 320, 321, 43, 45, 322,
828 42, 47, 37, 33, 126, 40, 41
832 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
833 static const yytype_uint8 yyr1[] =
835 0, 97, 98, 99, 99, 100, 100, 101, 101, 102,
836 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
837 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
838 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
839 102, 102, 103, 104, 105, 106, 107, 108, 109, 109,
840 110, 110, 111, 112, 113, 114, 115, 116, 117, 117,
841 118, 118, 119, 120, 120, 121, 122, 123, 123, 124,
842 125, 126, 127, 127, 128, 129, 130, 130, 130, 130,
843 130, 130, 130, 130, 130, 131, 131, 131, 131, 131,
844 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
845 132, 132, 132, 133, 133, 134, 134, 135, 135, 136,
846 137, 137, 138, 139, 139, 140, 140, 141, 141, 142,
847 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
848 143, 143, 143, 143, 143, 143, 144, 144, 144, 144,
849 144, 144, 145, 145, 145, 145, 145, 145, 146, 147,
850 147, 148, 148, 149, 150, 150, 151, 151, 152, 153,
851 153, 154, 155, 156, 156, 157, 157, 157, 157, 157,
852 158, 158, 158, 159, 159, 159, 159, 159, 159, 160,
853 160, 161, 162, 163, 163, 164, 165, 165, 166, 167,
854 167, 168, 168, 169, 170, 171, 171, 172, 173, 174,
855 174, 175, 175, 175, 175, 176, 176, 177, 177, 177,
856 177, 177, 178, 179, 179, 179
859 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
860 static const yytype_uint8 yyr2[] =
862 0, 2, 2, 2, 0, 1, 2, 2, 1, 1,
863 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
864 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
865 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
866 1, 2, 3, 4, 3, 3, 3, 5, 2, 0,
867 2, 0, 6, 6, 6, 6, 6, 6, 1, 2,
868 1, 2, 4, 1, 3, 3, 3, 2, 3, 2,
869 1, 1, 1, 1, 1, 2, 1, 2, 3, 2,
870 4, 4, 6, 6, 4, 1, 2, 1, 1, 1,
871 1, 1, 1, 1, 3, 1, 1, 1, 1, 2,
872 1, 4, 4, 1, 1, 1, 1, 1, 0, 3,
873 3, 3, 3, 1, 0, 1, 3, 1, 0, 1,
874 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
875 2, 2, 2, 2, 2, 2, 3, 3, 3, 3,
876 3, 3, 1, 1, 1, 1, 1, 1, 1, 1,
877 0, 1, 1, 8, 1, 0, 1, 2, 4, 3,
878 0, 7, 7, 2, 2, 2, 3, 3, 4, 4,
879 2, 1, 4, 1, 1, 1, 1, 2, 2, 1,
880 3, 3, 3, 1, 1, 7, 1, 0, 3, 1,
881 0, 1, 3, 4, 4, 3, 4, 3, 6, 2,
882 0, 1, 1, 1, 1, 1, 1, 2, 3, 3,
886 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
887 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
888 means the default is an error. */
889 static const yytype_uint8 yydefact[] =
891 0, 0, 148, 146, 147, 142, 143, 76, 0, 173,
892 174, 175, 176, 213, 214, 215, 0, 0, 0, 0,
893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
894 0, 0, 150, 0, 0, 0, 0, 0, 0, 0,
895 0, 0, 74, 73, 0, 144, 145, 0, 0, 5,
896 8, 39, 38, 35, 36, 34, 33, 32, 31, 30,
897 26, 27, 28, 29, 25, 23, 24, 40, 0, 70,
898 72, 20, 0, 71, 190, 9, 10, 11, 21, 0,
899 0, 171, 14, 15, 12, 13, 16, 17, 37, 18,
900 19, 22, 205, 206, 108, 41, 151, 152, 119, 97,
901 98, 0, 0, 77, 91, 0, 0, 0, 0, 0,
902 95, 96, 0, 0, 0, 79, 85, 87, 88, 89,
903 92, 93, 100, 90, 49, 0, 67, 69, 0, 0,
904 0, 183, 184, 0, 0, 187, 0, 0, 191, 0,
905 0, 0, 191, 0, 0, 0, 0, 149, 0, 0,
906 0, 0, 177, 0, 0, 0, 0, 0, 0, 178,
907 1, 0, 2, 6, 7, 75, 0, 0, 114, 103,
908 179, 104, 165, 189, 0, 207, 163, 164, 0, 170,
909 107, 0, 86, 105, 106, 99, 0, 0, 78, 132,
910 134, 133, 135, 131, 130, 0, 0, 0, 0, 0,
911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
912 0, 0, 0, 0, 0, 0, 0, 0, 51, 68,
913 0, 0, 0, 181, 182, 0, 186, 0, 0, 0,
914 0, 195, 0, 0, 167, 209, 197, 0, 66, 0,
915 0, 0, 63, 0, 0, 0, 46, 44, 45, 0,
916 166, 208, 42, 3, 0, 0, 117, 0, 113, 115,
917 0, 188, 0, 212, 84, 0, 94, 80, 81, 126,
918 127, 125, 137, 136, 138, 139, 140, 141, 129, 128,
919 120, 121, 122, 123, 124, 111, 110, 100, 109, 0,
920 0, 48, 0, 0, 0, 0, 0, 0, 0, 0,
921 192, 43, 196, 169, 211, 204, 203, 202, 201, 200,
922 0, 0, 0, 62, 0, 0, 58, 0, 60, 0,
923 168, 210, 193, 194, 112, 118, 180, 172, 0, 0,
924 101, 102, 50, 47, 0, 160, 154, 156, 0, 0,
925 0, 0, 0, 0, 0, 0, 0, 0, 64, 65,
926 0, 59, 61, 0, 116, 83, 82, 0, 0, 157,
927 0, 0, 0, 0, 53, 52, 199, 198, 55, 56,
928 57, 54, 0, 0, 0, 161, 162, 185, 0, 153
931 /* YYDEFGOTO[NTERM-NUM]. */
932 static const yytype_int16 yydefgoto[] =
934 -1, 47, 162, 48, 49, 50, 51, 52, 53, 54,
935 55, 56, 218, 293, 57, 58, 59, 60, 61, 62,
936 315, 316, 63, 241, 242, 64, 65, 66, 67, 68,
937 69, 70, 71, 72, 169, 116, 170, 182, 181, 117,
938 118, 171, 257, 258, 259, 119, 120, 121, 73, 122,
939 148, 123, 75, 335, 336, 337, 339, 76, 77, 78,
940 79, 80, 81, 173, 82, 83, 133, 84, 225, 85,
941 174, 139, 86, 87, 88, 89, 90, 345, 309, 91,
945 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
947 #define YYPACT_NINF -287
948 static const yytype_int16 yypact[] =
950 1808, -37, -287, -287, -287, -287, -287, 410, 10, -287,
951 -287, -287, -287, -287, -287, -287, 66, -37, 805, 10,
952 10, 71, 71, 10, 805, 805, 10, 10, 7, 10,
953 71, 10, 10, 10, 10, 10, 10, 805, 805, 805,
954 3, 805, -287, -287, 10, -287, -287, 18, 895, -287,
955 -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
956 -287, -287, -287, -287, -287, -287, -287, -287, 1869, -287,
957 -287, -287, -37, -287, 547, -287, -287, -287, -287, -37,
958 -37, 651, -287, -287, -287, -287, -287, -287, -287, -287,
959 -287, -287, -287, -287, 805, -287, -287, -287, -287, -287,
960 -287, 37, 10, -287, -287, 805, 805, 10, 805, 805,
961 -287, 53, 805, 805, 805, 1903, -42, -287, -287, -287,
962 -287, -287, 13, -287, -18, -37, -287, -287, 435, -37,
963 -37, -287, -287, -37, -37, 10, 435, 435, -287, 703,
964 586, 10, 268, -13, -47, -37, -37, -287, -37, 10,
965 -37, -37, -287, 435, 435, 435, 10, 268, 435, -287,
966 -287, -37, -287, -287, -287, -287, 796, 796, 684, 494,
967 -287, -287, -287, -7, -37, -287, -287, -287, 805, -7,
968 494, -37, -287, -287, -287, -287, 6, 745, 494, -287,
969 494, 494, 42, -287, -287, 1920, 17, 805, 805, 805,
970 805, 805, 805, 805, 805, 805, 805, 805, 805, 805,
971 805, 805, 805, 10, 10, 805, 805, 805, 27, -287,
972 1808, 1808, 1808, -287, -287, -37, 1, 1808, 1808, 10,
973 435, -287, -37, 268, -287, -287, -287, 153, -287, 1808,
974 1808, 12, -287, 28, 10, 1808, -287, -287, -287, 268,
975 -287, -287, -287, -287, -37, -37, -287, 26, 55, -287,
976 796, -287, 1866, -287, 56, 50, -287, -287, -287, 244,
977 878, 961, 298, 298, 5, 5, 5, 5, 24, 24,
978 42, 42, -287, -287, -287, -42, -287, -54, -287, 1885,
979 1941, 494, 153, -37, 978, 1144, 1144, 1808, 1227, 1310,
980 -287, -287, -287, -287, -287, -287, -287, -287, -287, 60,
981 1393, 1476, 10, -287, 805, 8, -287, 20, -287, 1559,
982 -287, -287, -287, -287, -287, 796, -287, -287, 72, 67,
983 -287, -287, -287, -287, 805, 104, 112, -287, -37, 114,
984 115, 1642, -37, -37, 10, -37, -37, -37, -287, 494,
985 -37, -287, -287, -37, -287, -287, -287, 435, 116, -287,
986 1808, -37, -37, -37, -287, -287, -287, -287, -287, -287,
987 -287, -287, 1808, -37, 1725, -287, -287, -287, 1061, -287
990 /* YYPGOTO[NTERM-NUM]. */
991 static const yytype_int16 yypgoto[] =
993 -287, -287, -287, -122, -41, 77, -287, -287, -287, -287,
994 -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
995 -287, -175, -287, -287, -162, -287, -287, -287, -287, -287,
996 49, -287, -287, -287, 332, -62, -129, -287, -287, 51,
997 -61, -287, -287, -287, -171, -287, -287, -287, -287, 0,
998 -287, -287, -287, -287, -287, -181, -286, -287, -287, -287,
999 -287, -73, -99, 76, -287, -287, -5, -287, -287, -287,
1000 -287, -25, -287, -238, -287, -287, -287, -287, -134, -287,
1004 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1005 positive, shift that token. If negative, reduce the rule which
1006 number is the opposite. If zero, do what YYDEFACT says.
1007 If YYTABLE_NINF, syntax error. */
1008 #define YYTABLE_NINF -161
1009 static const yytype_int16 yytable[] =
1011 74, 172, 184, 143, 144, 175, 318, 163, 124, 2,
1012 340, 232, 237, 2, 2, 215, 2, 134, 160, 129,
1013 130, 42, 43, 135, 229, 145, 138, 140, 142, 138,
1014 213, 146, 147, 149, 150, 151, 152, 254, 255, 256,
1015 157, 216, 156, 2, 159, 42, 43, 217, 74, 358,
1016 95, 9, 10, 11, 12, 350, 96, 97, 229, 2,
1017 98, 99, 100, 141, 260, 126, 127, 214, 74, 234,
1018 42, 43, 229, 235, 214, 131, 132, 318, 42, 43,
1019 267, 268, 215, 312, 250, 167, 292, 314, 251, 36,
1020 206, 207, 208, 209, 324, 210, 211, 212, 294, 295,
1021 296, 183, 186, 101, 102, 298, 299, 189, 216, 44,
1022 226, 208, 209, 329, 210, 211, 212, 310, 311, 104,
1023 344, 165, 125, 319, 42, 43, 325, 328, 176, 177,
1024 338, 326, 210, 211, 212, 138, 355, 356, 308, 334,
1025 351, 233, 361, 362, 373, 164, 112, 113, 114, 243,
1026 348, 285, 286, 185, 354, 359, 249, 179, 332, 2,
1027 303, 0, 0, 0, 304, 0, 305, 9, 10, 11,
1028 12, 0, 0, 0, 219, 341, 320, 220, 221, 222,
1029 321, 0, 223, 224, 0, 227, 228, 0, 0, 231,
1030 0, 0, 236, 308, 238, 239, 256, 240, 0, 244,
1031 245, 306, 246, 247, 248, 36, 0, 252, 0, 0,
1032 253, 0, 0, 287, 288, 0, 0, 0, 0, 0,
1033 74, 74, 74, 261, 0, 44, 0, 74, 74, 300,
1034 263, 0, 0, 0, 0, 0, 0, 307, 374, 74,
1035 74, 0, 0, 0, 317, 74, 0, 0, 0, 0,
1036 378, 0, 0, 163, 163, 163, 0, 163, 163, 0,
1037 0, 0, 0, 0, 0, 0, 0, 0, 0, 163,
1038 163, 0, 0, 0, 297, 0, 0, 0, 163, 301,
1039 0, 302, 9, 10, 11, 12, 13, 14, 15, 0,
1040 313, 0, 307, 0, 74, 74, 74, 74, 74, 74,
1041 163, 0, 0, 322, 323, 0, 0, 0, 0, 0,
1042 74, 74, 243, 0, 0, 317, 0, 0, 0, 74,
1043 36, 198, 199, 200, 201, 202, 203, 204, 205, 206,
1044 207, 208, 209, 163, 210, 211, 212, 163, 0, 115,
1045 44, 74, 333, 0, 366, 0, 0, 0, 0, 0,
1046 128, 0, 0, 0, 0, 0, 136, 137, 0, 0,
1047 74, 0, 0, 0, 0, 0, 352, 0, 0, 153,
1048 154, 155, 74, 158, 74, 0, 0, 0, 74, 202,
1049 203, 204, 205, 206, 207, 208, 209, 360, 210, 211,
1050 212, 364, 365, 0, 367, 368, 369, 0, 0, 370,
1051 0, 0, 371, 0, 0, 0, 372, 0, 0, 0,
1052 375, 376, 377, 96, 97, 0, 2, 98, 99, 100,
1053 0, 0, 379, 0, 0, 0, 180, 0, 0, 0,
1054 0, 0, 0, 0, 0, 0, 0, 187, 188, 0,
1055 190, 191, 0, 192, 193, 194, 195, 0, 0, 0,
1056 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1057 101, 102, 0, 0, 0, 0, 0, 0, 0, 0,
1058 0, 230, 103, 0, 0, 0, 104, 0, 0, 105,
1059 0, 0, 0, 106, 0, 0, 0, 107, 0, 0,
1060 0, 108, 109, 42, 43, 0, 0, 110, 111, 0,
1061 0, 0, 0, 112, 113, 114, 0, 0, 0, 0,
1062 262, 197, 198, 199, 200, 201, 202, 203, 204, 205,
1063 206, 207, 208, 209, 0, 210, 211, 212, 0, 269,
1064 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
1065 280, 281, 282, 283, 284, 0, 0, 289, 290, 291,
1066 96, 97, 0, 2, 98, 99, 100, 0, 0, 0,
1067 0, 9, 10, 11, 12, 13, 14, 15, 0, 0,
1068 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
1069 207, 208, 209, 166, 210, 211, 212, 0, 0, 96,
1070 97, 0, 2, 98, 99, 100, 0, 101, 102, 36,
1071 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1072 0, 0, 167, 104, 168, 0, 0, 0, 0, 44,
1073 0, 0, 0, 0, 107, 0, 0, 0, 108, 109,
1074 0, 0, 0, 0, 110, 111, 101, 102, 0, 0,
1075 112, 113, 114, 0, 42, 43, 349, 0, 0, 0,
1076 0, 0, 104, 168, 96, 97, 0, 2, 98, 99,
1077 100, 0, 0, 107, 0, 0, 357, 108, 109, 0,
1078 0, 0, 0, 110, 111, 0, 0, 0, 0, 112,
1079 113, 114, 0, 0, 0, 0, 0, 96, 97, 0,
1080 2, 98, 99, 100, 0, 0, 0, 0, 0, 0,
1081 0, 101, 102, 0, 0, 0, 96, 97, 0, 2,
1082 98, 99, 100, 0, 0, 0, 0, 104, 168, 0,
1083 178, 0, 0, 0, 0, 0, 0, 0, 107, 0,
1084 0, 0, 108, 109, 101, 102, 0, 0, 110, 111,
1085 0, 0, 0, 0, 112, 113, 114, 0, 0, 0,
1086 104, 168, 0, 101, 102, -118, 0, 0, 0, 0,
1087 0, 107, 0, 0, 0, 108, 109, 0, 0, 104,
1088 0, 110, 111, 0, 229, 0, 0, 112, 113, 114,
1089 107, 0, 0, 0, 108, 109, 0, 0, 0, 0,
1090 110, 111, 0, 0, 0, 0, 112, 113, 114, 96,
1091 97, 0, 2, 98, 99, 100, 0, 0, 96, 97,
1092 0, 2, 98, 99, 100, 264, 265, 0, 0, 0,
1093 0, 197, 198, 199, 200, 201, 202, 203, 204, 205,
1094 206, 207, 208, 209, 0, 210, 211, 212, 0, 0,
1095 0, 0, 0, 0, 0, 0, 101, 102, 0, 0,
1096 0, 0, 0, 0, 0, 101, 102, 0, 0, 0,
1097 0, 0, 104, 168, 0, 0, 0, 0, 0, 0,
1098 0, 104, 0, 107, 0, 0, 0, 108, 109, 0,
1099 0, 0, 107, 110, 111, 0, 108, 109, 0, 112,
1100 113, 114, 110, 111, 0, -4, 1, 0, 112, 113,
1101 114, 2, 0, 3, 4, 5, 6, 7, 8, 9,
1102 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1103 20, 0, 0, 0, 21, 22, 23, 24, 25, 0,
1104 26, 0, 27, 161, 28, 29, 30, 31, 32, 0,
1105 33, 34, 0, 35, 0, 0, 0, 36, 37, 38,
1106 39, 40, 41, 42, 43, 0, 199, 200, 201, 202,
1107 203, 204, 205, 206, 207, 208, 209, 44, 210, 211,
1108 212, 0, 0, 0, 0, 0, 0, 0, 0, 1,
1109 0, 0, 45, 46, 2, 0, 3, 4, 5, 6,
1110 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1111 17, 18, 19, 20, -155, 334, -155, 21, 22, 23,
1112 24, 25, 0, 26, 0, 27, 0, 28, 29, 30,
1113 31, 32, 0, 33, 34, 0, 35, 0, 0, 0,
1114 36, 37, 38, 39, 40, 41, 42, 43, 0, 0,
1115 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
1116 44, 210, 211, 212, 0, 0, 0, 0, 0, 0,
1117 0, 0, 1, 0, 0, 45, 46, 2, 0, 3,
1118 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1119 14, 15, 16, 17, 18, 19, 20, -158, -158, -158,
1120 21, 22, 23, 24, 25, 0, 26, 0, 27, 0,
1121 28, 29, 30, 31, 32, 0, 33, 34, 0, 35,
1122 0, 0, 0, 36, 37, 38, 39, 40, 41, 42,
1123 43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1124 0, 0, 0, 44, 0, 0, 0, 0, 0, 0,
1125 0, 0, 0, 0, 0, 1, 0, 0, 45, 46,
1126 2, 0, 3, 4, 5, 6, 7, 8, 9, 10,
1127 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1128 338, 0, -160, 21, 22, 23, 24, 25, 0, 26,
1129 0, 27, 0, 28, 29, 30, 31, 32, 0, 33,
1130 34, 0, 35, 0, 0, 0, 36, 37, 38, 39,
1131 40, 41, 42, 43, 0, 0, 0, 0, 0, 0,
1132 0, 0, 0, 0, 0, 0, 44, 0, 0, 0,
1133 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
1134 0, 45, 46, 2, 0, 3, 4, 5, 6, 7,
1135 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1136 18, 19, 20, 0, 0, 0, 21, 22, 23, 24,
1137 25, 342, 26, 0, 27, 0, 28, 29, 30, 31,
1138 32, 0, 33, 34, 0, 35, 0, 0, 0, 36,
1139 37, 38, 39, 40, 41, 42, 43, 0, 0, 0,
1140 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,
1141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1142 0, 1, 0, 0, 45, 46, 2, 0, 3, 4,
1143 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1144 15, 16, 17, 18, 19, 20, 0, 0, 0, 21,
1145 22, 23, 24, 25, 343, 26, 0, 27, 0, 28,
1146 29, 30, 31, 32, 0, 33, 34, 0, 35, 0,
1147 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
1148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1149 0, 0, 44, 0, 0, 0, 0, 0, 0, 0,
1150 0, 0, 0, 0, 1, 0, 0, 45, 46, 2,
1151 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1152 12, 13, 14, 15, 16, 17, 18, 19, 20, 0,
1153 0, 0, 21, 22, 23, 24, 25, 0, 26, 0,
1154 27, 0, 28, 29, 30, 31, 32, 346, 33, 34,
1155 0, 35, 0, 0, 0, 36, 37, 38, 39, 40,
1156 41, 42, 43, 0, 0, 0, 0, 0, 0, 0,
1157 0, 0, 0, 0, 0, 44, 0, 0, 0, 0,
1158 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
1159 45, 46, 2, 0, 3, 4, 5, 6, 7, 8,
1160 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
1161 19, 20, 0, 0, 0, 21, 22, 23, 24, 25,
1162 0, 26, 0, 27, 0, 28, 29, 30, 31, 32,
1163 347, 33, 34, 0, 35, 0, 0, 0, 36, 37,
1164 38, 39, 40, 41, 42, 43, 0, 0, 0, 0,
1165 0, 0, 0, 0, 0, 0, 0, 0, 44, 0,
1166 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1167 1, 0, 0, 45, 46, 2, 0, 3, 4, 5,
1168 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1169 16, 17, 18, 19, 20, 0, 0, 0, 21, 22,
1170 23, 24, 25, 0, 26, 0, 27, 0, 28, 29,
1171 30, 31, 32, 0, 33, 34, 0, 35, 353, 0,
1172 0, 36, 37, 38, 39, 40, 41, 42, 43, 0,
1173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1174 0, 44, 0, 0, 0, 0, 0, 0, 0, 0,
1175 0, 0, 0, 1, 0, 0, 45, 46, 2, 0,
1176 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1177 13, 14, 15, 16, 17, 18, 19, 20, 0, 0,
1178 0, 21, 22, 23, 24, 25, 363, 26, 0, 27,
1179 0, 28, 29, 30, 31, 32, 0, 33, 34, 0,
1180 35, 0, 0, 0, 36, 37, 38, 39, 40, 41,
1181 42, 43, 0, 0, 0, 0, 0, 0, 0, 0,
1182 0, 0, 0, 0, 44, 0, 0, 0, 0, 0,
1183 0, 0, 0, 0, 0, 0, 1, 0, 0, 45,
1184 46, 2, 0, 3, 4, 5, 6, 7, 8, 9,
1185 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1186 20, 0, 0, -159, 21, 22, 23, 24, 25, 0,
1187 26, 0, 27, 0, 28, 29, 30, 31, 32, 0,
1188 33, 34, 0, 35, 0, 0, 0, 36, 37, 38,
1189 39, 40, 41, 42, 43, 0, 0, 0, 0, 0,
1190 0, 0, 0, 0, 0, 0, 0, 44, 0, 0,
1191 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
1192 0, 0, 45, 46, 2, 0, 3, 4, 5, 6,
1193 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1194 17, 18, 19, 20, 0, 0, 0, 21, 22, 23,
1195 24, 25, 0, 26, 0, 27, 0, 28, 29, 30,
1196 31, 32, 0, 33, 34, 0, 35, 0, 0, 0,
1197 36, 37, 38, 39, 40, 41, 42, 43, 0, 0,
1198 1, 0, 0, 0, 0, 2, 0, 0, 0, 0,
1199 44, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1200 16, 17, 18, 19, 20, 45, 46, 0, 21, 22,
1201 23, 24, 25, 0, 26, 0, 27, 0, 28, 29,
1202 30, 31, 32, 0, 33, 34, 0, 35, 0, 0,
1203 0, 36, 37, 38, 39, 40, 41, 42, 43, 0,
1204 0, 0, 0, 0, 0, 0, 327, 0, 0, 0,
1205 0, 44, 197, 198, 199, 200, 201, 202, 203, 204,
1206 205, 206, 207, 208, 209, 330, 210, 211, 212, 0,
1207 0, 197, 198, 199, 200, 201, 202, 203, 204, 205,
1208 206, 207, 208, 209, 196, 210, 211, 212, 0, 197,
1209 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
1210 208, 209, 0, 210, 211, 212, 197, 198, 199, 200,
1211 201, 202, 203, 204, 205, 206, 207, 208, 209, 0,
1212 210, 211, 212, 0, 0, 0, 266, 197, 198, 199,
1213 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
1214 0, 210, 211, 212, 0, 0, 0, 331
1217 static const yytype_int16 yycheck[] =
1219 0, 74, 101, 28, 29, 74, 244, 48, 8, 6,
1220 296, 140, 59, 6, 6, 69, 6, 22, 0, 19,
1221 20, 58, 59, 23, 71, 30, 26, 27, 28, 29,
1222 72, 31, 32, 33, 34, 35, 36, 166, 167, 168,
1223 40, 95, 39, 6, 44, 58, 59, 65, 48, 335,
1224 1, 14, 15, 16, 17, 47, 3, 4, 71, 6,
1225 7, 8, 9, 56, 71, 16, 17, 61, 68, 142,
1226 58, 59, 71, 142, 61, 4, 5, 315, 58, 59,
1227 63, 64, 69, 71, 157, 65, 59, 59, 157, 52,
1228 85, 86, 87, 88, 68, 90, 91, 92, 220, 221,
1229 222, 101, 102, 50, 51, 227, 228, 107, 95, 72,
1230 135, 87, 88, 63, 90, 91, 92, 239, 240, 66,
1231 60, 72, 56, 245, 58, 59, 71, 71, 79, 80,
1232 26, 260, 90, 91, 92, 135, 64, 70, 237, 27,
1233 315, 141, 28, 28, 28, 68, 93, 94, 95, 149,
1234 312, 213, 213, 102, 325, 336, 156, 81, 292, 6,
1235 233, -1, -1, -1, 233, -1, 13, 14, 15, 16,
1236 17, -1, -1, -1, 125, 297, 249, 128, 129, 130,
1237 249, -1, 133, 134, -1, 136, 137, -1, -1, 140,
1238 -1, -1, 143, 292, 145, 146, 325, 148, -1, 150,
1239 151, 48, 153, 154, 155, 52, -1, 158, -1, -1,
1240 161, -1, -1, 213, 214, -1, -1, -1, -1, -1,
1241 220, 221, 222, 174, -1, 72, -1, 227, 228, 229,
1242 181, -1, -1, -1, -1, -1, -1, 237, 360, 239,
1243 240, -1, -1, -1, 244, 245, -1, -1, -1, -1,
1244 372, -1, -1, 294, 295, 296, -1, 298, 299, -1,
1245 -1, -1, -1, -1, -1, -1, -1, -1, -1, 310,
1246 311, -1, -1, -1, 225, -1, -1, -1, 319, 230,
1247 -1, 232, 14, 15, 16, 17, 18, 19, 20, -1,
1248 241, -1, 292, -1, 294, 295, 296, 297, 298, 299,
1249 341, -1, -1, 254, 255, -1, -1, -1, -1, -1,
1250 310, 311, 312, -1, -1, 315, -1, -1, -1, 319,
1251 52, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1252 86, 87, 88, 374, 90, 91, 92, 378, -1, 7,
1253 72, 341, 293, -1, 344, -1, -1, -1, -1, -1,
1254 18, -1, -1, -1, -1, -1, 24, 25, -1, -1,
1255 360, -1, -1, -1, -1, -1, 317, -1, -1, 37,
1256 38, 39, 372, 41, 374, -1, -1, -1, 378, 81,
1257 82, 83, 84, 85, 86, 87, 88, 338, 90, 91,
1258 92, 342, 343, -1, 345, 346, 347, -1, -1, 350,
1259 -1, -1, 353, -1, -1, -1, 357, -1, -1, -1,
1260 361, 362, 363, 3, 4, -1, 6, 7, 8, 9,
1261 -1, -1, 373, -1, -1, -1, 94, -1, -1, -1,
1262 -1, -1, -1, -1, -1, -1, -1, 105, 106, -1,
1263 108, 109, -1, 111, 112, 113, 114, -1, -1, -1,
1264 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1265 50, 51, -1, -1, -1, -1, -1, -1, -1, -1,
1266 -1, 139, 62, -1, -1, -1, 66, -1, -1, 69,
1267 -1, -1, -1, 73, -1, -1, -1, 77, -1, -1,
1268 -1, 81, 82, 58, 59, -1, -1, 87, 88, -1,
1269 -1, -1, -1, 93, 94, 95, -1, -1, -1, -1,
1270 178, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1271 85, 86, 87, 88, -1, 90, 91, 92, -1, 197,
1272 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
1273 208, 209, 210, 211, 212, -1, -1, 215, 216, 217,
1274 3, 4, -1, 6, 7, 8, 9, -1, -1, -1,
1275 -1, 14, 15, 16, 17, 18, 19, 20, -1, -1,
1276 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1277 86, 87, 88, 36, 90, 91, 92, -1, -1, 3,
1278 4, -1, 6, 7, 8, 9, -1, 50, 51, 52,
1279 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1280 -1, -1, 65, 66, 67, -1, -1, -1, -1, 72,
1281 -1, -1, -1, -1, 77, -1, -1, -1, 81, 82,
1282 -1, -1, -1, -1, 87, 88, 50, 51, -1, -1,
1283 93, 94, 95, -1, 58, 59, 314, -1, -1, -1,
1284 -1, -1, 66, 67, 3, 4, -1, 6, 7, 8,
1285 9, -1, -1, 77, -1, -1, 334, 81, 82, -1,
1286 -1, -1, -1, 87, 88, -1, -1, -1, -1, 93,
1287 94, 95, -1, -1, -1, -1, -1, 3, 4, -1,
1288 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,
1289 -1, 50, 51, -1, -1, -1, 3, 4, -1, 6,
1290 7, 8, 9, -1, -1, -1, -1, 66, 67, -1,
1291 69, -1, -1, -1, -1, -1, -1, -1, 77, -1,
1292 -1, -1, 81, 82, 50, 51, -1, -1, 87, 88,
1293 -1, -1, -1, -1, 93, 94, 95, -1, -1, -1,
1294 66, 67, -1, 50, 51, 71, -1, -1, -1, -1,
1295 -1, 77, -1, -1, -1, 81, 82, -1, -1, 66,
1296 -1, 87, 88, -1, 71, -1, -1, 93, 94, 95,
1297 77, -1, -1, -1, 81, 82, -1, -1, -1, -1,
1298 87, 88, -1, -1, -1, -1, 93, 94, 95, 3,
1299 4, -1, 6, 7, 8, 9, -1, -1, 3, 4,
1300 -1, 6, 7, 8, 9, 70, 71, -1, -1, -1,
1301 -1, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1302 85, 86, 87, 88, -1, 90, 91, 92, -1, -1,
1303 -1, -1, -1, -1, -1, -1, 50, 51, -1, -1,
1304 -1, -1, -1, -1, -1, 50, 51, -1, -1, -1,
1305 -1, -1, 66, 67, -1, -1, -1, -1, -1, -1,
1306 -1, 66, -1, 77, -1, -1, -1, 81, 82, -1,
1307 -1, -1, 77, 87, 88, -1, 81, 82, -1, 93,
1308 94, 95, 87, 88, -1, 0, 1, -1, 93, 94,
1309 95, 6, -1, 8, 9, 10, 11, 12, 13, 14,
1310 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1311 25, -1, -1, -1, 29, 30, 31, 32, 33, -1,
1312 35, -1, 37, 38, 39, 40, 41, 42, 43, -1,
1313 45, 46, -1, 48, -1, -1, -1, 52, 53, 54,
1314 55, 56, 57, 58, 59, -1, 78, 79, 80, 81,
1315 82, 83, 84, 85, 86, 87, 88, 72, 90, 91,
1316 92, -1, -1, -1, -1, -1, -1, -1, -1, 1,
1317 -1, -1, 87, 88, 6, -1, 8, 9, 10, 11,
1318 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1319 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1320 32, 33, -1, 35, -1, 37, -1, 39, 40, 41,
1321 42, 43, -1, 45, 46, -1, 48, -1, -1, -1,
1322 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
1323 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1324 72, 90, 91, 92, -1, -1, -1, -1, -1, -1,
1325 -1, -1, 1, -1, -1, 87, 88, 6, -1, 8,
1326 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
1327 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1328 29, 30, 31, 32, 33, -1, 35, -1, 37, -1,
1329 39, 40, 41, 42, 43, -1, 45, 46, -1, 48,
1330 -1, -1, -1, 52, 53, 54, 55, 56, 57, 58,
1331 59, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1332 -1, -1, -1, 72, -1, -1, -1, -1, -1, -1,
1333 -1, -1, -1, -1, -1, 1, -1, -1, 87, 88,
1334 6, -1, 8, 9, 10, 11, 12, 13, 14, 15,
1335 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1336 26, -1, 28, 29, 30, 31, 32, 33, -1, 35,
1337 -1, 37, -1, 39, 40, 41, 42, 43, -1, 45,
1338 46, -1, 48, -1, -1, -1, 52, 53, 54, 55,
1339 56, 57, 58, 59, -1, -1, -1, -1, -1, -1,
1340 -1, -1, -1, -1, -1, -1, 72, -1, -1, -1,
1341 -1, -1, -1, -1, -1, -1, -1, -1, 1, -1,
1342 -1, 87, 88, 6, -1, 8, 9, 10, 11, 12,
1343 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1344 23, 24, 25, -1, -1, -1, 29, 30, 31, 32,
1345 33, 34, 35, -1, 37, -1, 39, 40, 41, 42,
1346 43, -1, 45, 46, -1, 48, -1, -1, -1, 52,
1347 53, 54, 55, 56, 57, 58, 59, -1, -1, -1,
1348 -1, -1, -1, -1, -1, -1, -1, -1, -1, 72,
1349 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1350 -1, 1, -1, -1, 87, 88, 6, -1, 8, 9,
1351 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1352 20, 21, 22, 23, 24, 25, -1, -1, -1, 29,
1353 30, 31, 32, 33, 34, 35, -1, 37, -1, 39,
1354 40, 41, 42, 43, -1, 45, 46, -1, 48, -1,
1355 -1, -1, 52, 53, 54, 55, 56, 57, 58, 59,
1356 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1357 -1, -1, 72, -1, -1, -1, -1, -1, -1, -1,
1358 -1, -1, -1, -1, 1, -1, -1, 87, 88, 6,
1359 -1, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1360 17, 18, 19, 20, 21, 22, 23, 24, 25, -1,
1361 -1, -1, 29, 30, 31, 32, 33, -1, 35, -1,
1362 37, -1, 39, 40, 41, 42, 43, 44, 45, 46,
1363 -1, 48, -1, -1, -1, 52, 53, 54, 55, 56,
1364 57, 58, 59, -1, -1, -1, -1, -1, -1, -1,
1365 -1, -1, -1, -1, -1, 72, -1, -1, -1, -1,
1366 -1, -1, -1, -1, -1, -1, -1, 1, -1, -1,
1367 87, 88, 6, -1, 8, 9, 10, 11, 12, 13,
1368 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1369 24, 25, -1, -1, -1, 29, 30, 31, 32, 33,
1370 -1, 35, -1, 37, -1, 39, 40, 41, 42, 43,
1371 44, 45, 46, -1, 48, -1, -1, -1, 52, 53,
1372 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
1373 -1, -1, -1, -1, -1, -1, -1, -1, 72, -1,
1374 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1375 1, -1, -1, 87, 88, 6, -1, 8, 9, 10,
1376 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1377 21, 22, 23, 24, 25, -1, -1, -1, 29, 30,
1378 31, 32, 33, -1, 35, -1, 37, -1, 39, 40,
1379 41, 42, 43, -1, 45, 46, -1, 48, 49, -1,
1380 -1, 52, 53, 54, 55, 56, 57, 58, 59, -1,
1381 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1382 -1, 72, -1, -1, -1, -1, -1, -1, -1, -1,
1383 -1, -1, -1, 1, -1, -1, 87, 88, 6, -1,
1384 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1385 18, 19, 20, 21, 22, 23, 24, 25, -1, -1,
1386 -1, 29, 30, 31, 32, 33, 34, 35, -1, 37,
1387 -1, 39, 40, 41, 42, 43, -1, 45, 46, -1,
1388 48, -1, -1, -1, 52, 53, 54, 55, 56, 57,
1389 58, 59, -1, -1, -1, -1, -1, -1, -1, -1,
1390 -1, -1, -1, -1, 72, -1, -1, -1, -1, -1,
1391 -1, -1, -1, -1, -1, -1, 1, -1, -1, 87,
1392 88, 6, -1, 8, 9, 10, 11, 12, 13, 14,
1393 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1394 25, -1, -1, 28, 29, 30, 31, 32, 33, -1,
1395 35, -1, 37, -1, 39, 40, 41, 42, 43, -1,
1396 45, 46, -1, 48, -1, -1, -1, 52, 53, 54,
1397 55, 56, 57, 58, 59, -1, -1, -1, -1, -1,
1398 -1, -1, -1, -1, -1, -1, -1, 72, -1, -1,
1399 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1,
1400 -1, -1, 87, 88, 6, -1, 8, 9, 10, 11,
1401 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1402 22, 23, 24, 25, -1, -1, -1, 29, 30, 31,
1403 32, 33, -1, 35, -1, 37, -1, 39, 40, 41,
1404 42, 43, -1, 45, 46, -1, 48, -1, -1, -1,
1405 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
1406 1, -1, -1, -1, -1, 6, -1, -1, -1, -1,
1407 72, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1408 21, 22, 23, 24, 25, 87, 88, -1, 29, 30,
1409 31, 32, 33, -1, 35, -1, 37, -1, 39, 40,
1410 41, 42, 43, -1, 45, 46, -1, 48, -1, -1,
1411 -1, 52, 53, 54, 55, 56, 57, 58, 59, -1,
1412 -1, -1, -1, -1, -1, -1, 70, -1, -1, -1,
1413 -1, 72, 76, 77, 78, 79, 80, 81, 82, 83,
1414 84, 85, 86, 87, 88, 70, 90, 91, 92, -1,
1415 -1, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1416 85, 86, 87, 88, 71, 90, 91, 92, -1, 76,
1417 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1418 87, 88, -1, 90, 91, 92, 76, 77, 78, 79,
1419 80, 81, 82, 83, 84, 85, 86, 87, 88, -1,
1420 90, 91, 92, -1, -1, -1, 96, 76, 77, 78,
1421 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1422 -1, 90, 91, 92, -1, -1, -1, 96
1425 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1426 symbol of state STATE-NUM. */
1427 static const yytype_uint8 yystos[] =
1429 0, 1, 6, 8, 9, 10, 11, 12, 13, 14,
1430 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1431 25, 29, 30, 31, 32, 33, 35, 37, 39, 40,
1432 41, 42, 43, 45, 46, 48, 52, 53, 54, 55,
1433 56, 57, 58, 59, 72, 87, 88, 98, 100, 101,
1434 102, 103, 104, 105, 106, 107, 108, 111, 112, 113,
1435 114, 115, 116, 119, 122, 123, 124, 125, 126, 127,
1436 128, 129, 130, 145, 146, 149, 154, 155, 156, 157,
1437 158, 159, 161, 162, 164, 166, 169, 170, 171, 172,
1438 173, 176, 177, 178, 179, 127, 3, 4, 7, 8,
1439 9, 50, 51, 62, 66, 69, 73, 77, 81, 82,
1440 87, 88, 93, 94, 95, 131, 132, 136, 137, 142,
1441 143, 144, 146, 148, 146, 56, 127, 127, 131, 146,
1442 146, 4, 5, 163, 163, 146, 131, 131, 146, 168,
1443 146, 56, 146, 168, 168, 163, 146, 146, 147, 146,
1444 146, 146, 146, 131, 131, 131, 39, 146, 131, 146,
1445 0, 38, 99, 101, 102, 127, 36, 65, 67, 131,
1446 133, 138, 158, 160, 167, 178, 127, 127, 69, 160,
1447 131, 135, 134, 146, 159, 136, 146, 131, 131, 146,
1448 131, 131, 131, 131, 131, 131, 71, 76, 77, 78,
1449 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1450 90, 91, 92, 72, 61, 69, 95, 65, 109, 127,
1451 127, 127, 127, 127, 127, 165, 168, 127, 127, 71,
1452 131, 127, 133, 146, 158, 178, 127, 59, 127, 127,
1453 127, 120, 121, 146, 127, 127, 127, 127, 127, 146,
1454 158, 178, 127, 127, 133, 133, 133, 139, 140, 141,
1455 71, 127, 131, 127, 70, 71, 96, 63, 64, 131,
1456 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
1457 131, 131, 131, 131, 131, 132, 137, 146, 146, 131,
1458 131, 131, 59, 110, 100, 100, 100, 127, 100, 100,
1459 146, 127, 127, 158, 178, 13, 48, 146, 159, 175,
1460 100, 100, 71, 127, 59, 117, 118, 146, 170, 100,
1461 158, 178, 127, 127, 68, 71, 133, 70, 71, 63,
1462 70, 96, 175, 127, 27, 150, 151, 152, 26, 153,
1463 153, 100, 34, 34, 60, 174, 44, 44, 121, 131,
1464 47, 118, 127, 49, 141, 64, 70, 131, 153, 152,
1465 127, 28, 28, 34, 127, 127, 146, 127, 127, 127,
1466 127, 127, 127, 28, 100, 127, 127, 127, 100, 127
1469 #define yyerrok (yyerrstatus = 0)
1470 #define yyclearin (yychar = YYEMPTY)
1471 #define YYEMPTY (-2)
1474 #define YYACCEPT goto yyacceptlab
1475 #define YYABORT goto yyabortlab
1476 #define YYERROR goto yyerrorlab
1479 /* Like YYERROR except do call yyerror. This remains here temporarily
1480 to ease the transition to the new meaning of YYERROR, for GCC.
1481 Once GCC version 2 has supplanted version 1, this can go. */
1483 #define YYFAIL goto yyerrlab
1485 #define YYRECOVERING() (!!yyerrstatus)
1487 #define YYBACKUP(Token, Value) \
1489 if (yychar == YYEMPTY && yylen == 1) \
1493 yytoken = YYTRANSLATE (yychar); \
1499 yyerror (YY_("syntax error: cannot back up")); \
1506 #define YYERRCODE 256
1509 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1510 If N is 0, then set CURRENT to the empty location which ends
1511 the previous symbol: RHS[0] (always defined). */
1513 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1514 #ifndef YYLLOC_DEFAULT
1515 # define YYLLOC_DEFAULT(Current, Rhs, N) \
1519 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1520 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1521 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1522 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1526 (Current).first_line = (Current).last_line = \
1527 YYRHSLOC (Rhs, 0).last_line; \
1528 (Current).first_column = (Current).last_column = \
1529 YYRHSLOC (Rhs, 0).last_column; \
1535 /* YY_LOCATION_PRINT -- Print the location on the stream.
1536 This macro was not mandated originally: define only if we know
1537 we won't break user code: when these are the locations we know. */
1539 #ifndef YY_LOCATION_PRINT
1540 # if YYLTYPE_IS_TRIVIAL
1541 # define YY_LOCATION_PRINT(File, Loc) \
1542 fprintf (File, "%d.%d-%d.%d", \
1543 (Loc).first_line, (Loc).first_column, \
1544 (Loc).last_line, (Loc).last_column)
1546 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1551 /* YYLEX -- calling `yylex' with the right arguments. */
1554 # define YYLEX yylex (YYLEX_PARAM)
1556 # define YYLEX yylex ()
1559 /* Enable debugging if requested. */
1563 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1564 # define YYFPRINTF fprintf
1567 # define YYDPRINTF(Args) \
1573 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1577 YYFPRINTF (stderr, "%s ", Title); \
1578 yy_symbol_print (stderr, \
1579 Type, Value, Location); \
1580 YYFPRINTF (stderr, "\n"); \
1585 /*--------------------------------.
1586 | Print this symbol on YYOUTPUT. |
1587 `--------------------------------*/
1590 #if (defined __STDC__ || defined __C99__FUNC__ \
1591 || defined __cplusplus || defined _MSC_VER)
1593 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
1596 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
1599 YYSTYPE const * const yyvaluep;
1600 YYLTYPE const * const yylocationp;
1605 YYUSE (yylocationp);
1607 if (yytype < YYNTOKENS)
1608 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1620 /*--------------------------------.
1621 | Print this symbol on YYOUTPUT. |
1622 `--------------------------------*/
1624 #if (defined __STDC__ || defined __C99__FUNC__ \
1625 || defined __cplusplus || defined _MSC_VER)
1627 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
1630 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
1633 YYSTYPE const * const yyvaluep;
1634 YYLTYPE const * const yylocationp;
1637 if (yytype < YYNTOKENS)
1638 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1640 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1642 YY_LOCATION_PRINT (yyoutput, *yylocationp);
1643 YYFPRINTF (yyoutput, ": ");
1644 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
1645 YYFPRINTF (yyoutput, ")");
1648 /*------------------------------------------------------------------.
1649 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1651 `------------------------------------------------------------------*/
1653 #if (defined __STDC__ || defined __C99__FUNC__ \
1654 || defined __cplusplus || defined _MSC_VER)
1656 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
1659 yy_stack_print (bottom, top)
1660 yytype_int16 *bottom;
1664 YYFPRINTF (stderr, "Stack now");
1665 for (; bottom <= top; ++bottom)
1666 YYFPRINTF (stderr, " %d", *bottom);
1667 YYFPRINTF (stderr, "\n");
1670 # define YY_STACK_PRINT(Bottom, Top) \
1673 yy_stack_print ((Bottom), (Top)); \
1677 /*------------------------------------------------.
1678 | Report that the YYRULE is going to be reduced. |
1679 `------------------------------------------------*/
1681 #if (defined __STDC__ || defined __C99__FUNC__ \
1682 || defined __cplusplus || defined _MSC_VER)
1684 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
1687 yy_reduce_print (yyvsp, yylsp, yyrule)
1693 int yynrhs = yyr2[yyrule];
1695 unsigned long int yylno = yyrline[yyrule];
1696 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1698 /* The symbols being reduced. */
1699 for (yyi = 0; yyi < yynrhs; yyi++)
1701 fprintf (stderr, " $%d = ", yyi + 1);
1702 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1703 &(yyvsp[(yyi + 1) - (yynrhs)])
1704 , &(yylsp[(yyi + 1) - (yynrhs)]) );
1705 fprintf (stderr, "\n");
1709 # define YY_REDUCE_PRINT(Rule) \
1712 yy_reduce_print (yyvsp, yylsp, Rule); \
1715 /* Nonzero means print parse trace. It is left uninitialized so that
1716 multiple parsers can coexist. */
1718 #else /* !YYDEBUG */
1719 # define YYDPRINTF(Args)
1720 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1721 # define YY_STACK_PRINT(Bottom, Top)
1722 # define YY_REDUCE_PRINT(Rule)
1723 #endif /* !YYDEBUG */
1726 /* YYINITDEPTH -- initial size of the parser's stacks. */
1728 # define YYINITDEPTH 200
1731 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1732 if the built-in stack extension method is used).
1734 Do not make this value too large; the results are undefined if
1735 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1736 evaluated with infinite-precision integer arithmetic. */
1739 # define YYMAXDEPTH 10000
1747 # if defined __GLIBC__ && defined _STRING_H
1748 # define yystrlen strlen
1750 /* Return the length of YYSTR. */
1751 #if (defined __STDC__ || defined __C99__FUNC__ \
1752 || defined __cplusplus || defined _MSC_VER)
1754 yystrlen (const char *yystr)
1762 for (yylen = 0; yystr[yylen]; yylen++)
1770 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1771 # define yystpcpy stpcpy
1773 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1775 #if (defined __STDC__ || defined __C99__FUNC__ \
1776 || defined __cplusplus || defined _MSC_VER)
1778 yystpcpy (char *yydest, const char *yysrc)
1781 yystpcpy (yydest, yysrc)
1787 const char *yys = yysrc;
1789 while ((*yyd++ = *yys++) != '\0')
1798 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1799 quotes and backslashes, so that it's suitable for yyerror. The
1800 heuristic is that double-quoting is unnecessary unless the string
1801 contains an apostrophe, a comma, or backslash (other than
1802 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1803 null, do not copy; instead, return the length of what the result
1806 yytnamerr (char *yyres, const char *yystr)
1811 char const *yyp = yystr;
1818 goto do_not_strip_quotes;
1822 goto do_not_strip_quotes;
1835 do_not_strip_quotes: ;
1839 return yystrlen (yystr);
1841 return yystpcpy (yyres, yystr) - yyres;
1845 /* Copy into YYRESULT an error message about the unexpected token
1846 YYCHAR while in state YYSTATE. Return the number of bytes copied,
1847 including the terminating null byte. If YYRESULT is null, do not
1848 copy anything; just return the number of bytes that would be
1849 copied. As a special case, return 0 if an ordinary "syntax error"
1850 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
1851 size calculation. */
1853 yysyntax_error (char *yyresult, int yystate, int yychar)
1855 int yyn = yypact[yystate];
1857 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
1861 int yytype = YYTRANSLATE (yychar);
1862 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
1863 YYSIZE_T yysize = yysize0;
1865 int yysize_overflow = 0;
1866 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1867 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1871 /* This is so xgettext sees the translatable formats that are
1872 constructed on the fly. */
1873 YY_("syntax error, unexpected %s");
1874 YY_("syntax error, unexpected %s, expecting %s");
1875 YY_("syntax error, unexpected %s, expecting %s or %s");
1876 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1877 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1881 static char const yyunexpected[] = "syntax error, unexpected %s";
1882 static char const yyexpecting[] = ", expecting %s";
1883 static char const yyor[] = " or %s";
1884 char yyformat[sizeof yyunexpected
1885 + sizeof yyexpecting - 1
1886 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
1887 * (sizeof yyor - 1))];
1888 char const *yyprefix = yyexpecting;
1890 /* Start YYX at -YYN if negative to avoid negative indexes in
1892 int yyxbegin = yyn < 0 ? -yyn : 0;
1894 /* Stay within bounds of both yycheck and yytname. */
1895 int yychecklim = YYLAST - yyn + 1;
1896 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1899 yyarg[0] = yytname[yytype];
1900 yyfmt = yystpcpy (yyformat, yyunexpected);
1902 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1903 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1905 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1909 yyformat[sizeof yyunexpected - 1] = '\0';
1912 yyarg[yycount++] = yytname[yyx];
1913 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1914 yysize_overflow |= (yysize1 < yysize);
1916 yyfmt = yystpcpy (yyfmt, yyprefix);
1920 yyf = YY_(yyformat);
1921 yysize1 = yysize + yystrlen (yyf);
1922 yysize_overflow |= (yysize1 < yysize);
1925 if (yysize_overflow)
1926 return YYSIZE_MAXIMUM;
1930 /* Avoid sprintf, as that infringes on the user's name space.
1931 Don't have undefined behavior even if the translation
1932 produced a string with the wrong number of "%s"s. */
1933 char *yyp = yyresult;
1935 while ((*yyp = *yyf) != '\0')
1937 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
1939 yyp += yytnamerr (yyp, yyarg[yyi++]);
1952 #endif /* YYERROR_VERBOSE */
1955 /*-----------------------------------------------.
1956 | Release the memory associated to this symbol. |
1957 `-----------------------------------------------*/
1960 #if (defined __STDC__ || defined __C99__FUNC__ \
1961 || defined __cplusplus || defined _MSC_VER)
1963 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
1966 yydestruct (yymsg, yytype, yyvaluep, yylocationp)
1970 YYLTYPE *yylocationp;
1974 YYUSE (yylocationp);
1978 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1989 /* Prevent warnings from -Wmissing-prototypes. */
1991 #ifdef YYPARSE_PARAM
1992 #if defined __STDC__ || defined __cplusplus
1993 int yyparse (void *YYPARSE_PARAM);
1997 #else /* ! YYPARSE_PARAM */
1998 #if defined __STDC__ || defined __cplusplus
2003 #endif /* ! YYPARSE_PARAM */
2007 /* The look-ahead symbol. */
2010 /* The semantic value of the look-ahead symbol. */
2013 /* Number of syntax errors so far. */
2015 /* Location data for the look-ahead symbol. */
2024 #ifdef YYPARSE_PARAM
2025 #if (defined __STDC__ || defined __C99__FUNC__ \
2026 || defined __cplusplus || defined _MSC_VER)
2028 yyparse (void *YYPARSE_PARAM)
2031 yyparse (YYPARSE_PARAM)
2032 void *YYPARSE_PARAM;
2034 #else /* ! YYPARSE_PARAM */
2035 #if (defined __STDC__ || defined __C99__FUNC__ \
2036 || defined __cplusplus || defined _MSC_VER)
2050 /* Number of tokens to shift before error messages enabled. */
2052 /* Look-ahead token as an internal (translated) token number. */
2055 /* Buffer for error messages, and its allocated size. */
2057 char *yymsg = yymsgbuf;
2058 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2061 /* Three stacks and their tools:
2062 `yyss': related to states,
2063 `yyvs': related to semantic values,
2064 `yyls': related to locations.
2066 Refer to the stacks thru separate pointers, to allow yyoverflow
2067 to reallocate them elsewhere. */
2069 /* The state stack. */
2070 yytype_int16 yyssa[YYINITDEPTH];
2071 yytype_int16 *yyss = yyssa;
2072 yytype_int16 *yyssp;
2074 /* The semantic value stack. */
2075 YYSTYPE yyvsa[YYINITDEPTH];
2076 YYSTYPE *yyvs = yyvsa;
2079 /* The location stack. */
2080 YYLTYPE yylsa[YYINITDEPTH];
2081 YYLTYPE *yyls = yylsa;
2083 /* The locations where the error started and ended. */
2084 YYLTYPE yyerror_range[2];
2086 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2088 YYSIZE_T yystacksize = YYINITDEPTH;
2090 /* The variables used to return semantic value and location from the
2095 /* The number of symbols on the RHS of the reduced rule.
2096 Keep to zero when no symbol should be popped. */
2099 YYDPRINTF ((stderr, "Starting parse\n"));
2104 yychar = YYEMPTY; /* Cause a token to be read. */
2106 /* Initialize stack pointers.
2107 Waste one element of value and location stack
2108 so that they stay on the same level as the state stack.
2109 The wasted elements are never initialized. */
2114 #if YYLTYPE_IS_TRIVIAL
2115 /* Initialize the default location before parsing starts. */
2116 yylloc.first_line = yylloc.last_line = 1;
2117 yylloc.first_column = yylloc.last_column = 0;
2122 /*------------------------------------------------------------.
2123 | yynewstate -- Push a new state, which is found in yystate. |
2124 `------------------------------------------------------------*/
2126 /* In all cases, when you get here, the value and location stacks
2127 have just been pushed. So pushing a state here evens the stacks. */
2133 if (yyss + yystacksize - 1 <= yyssp)
2135 /* Get the current used size of the three stacks, in elements. */
2136 YYSIZE_T yysize = yyssp - yyss + 1;
2140 /* Give user a chance to reallocate the stack. Use copies of
2141 these so that the &'s don't force the real ones into
2143 YYSTYPE *yyvs1 = yyvs;
2144 yytype_int16 *yyss1 = yyss;
2145 YYLTYPE *yyls1 = yyls;
2147 /* Each stack pointer address is followed by the size of the
2148 data in use in that stack, in bytes. This used to be a
2149 conditional around just the two extra args, but that might
2150 be undefined if yyoverflow is a macro. */
2151 yyoverflow (YY_("memory exhausted"),
2152 &yyss1, yysize * sizeof (*yyssp),
2153 &yyvs1, yysize * sizeof (*yyvsp),
2154 &yyls1, yysize * sizeof (*yylsp),
2160 #else /* no yyoverflow */
2161 # ifndef YYSTACK_RELOCATE
2162 goto yyexhaustedlab;
2164 /* Extend the stack our own way. */
2165 if (YYMAXDEPTH <= yystacksize)
2166 goto yyexhaustedlab;
2168 if (YYMAXDEPTH < yystacksize)
2169 yystacksize = YYMAXDEPTH;
2172 yytype_int16 *yyss1 = yyss;
2173 union yyalloc *yyptr =
2174 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2176 goto yyexhaustedlab;
2177 YYSTACK_RELOCATE (yyss);
2178 YYSTACK_RELOCATE (yyvs);
2179 YYSTACK_RELOCATE (yyls);
2180 # undef YYSTACK_RELOCATE
2182 YYSTACK_FREE (yyss1);
2185 #endif /* no yyoverflow */
2187 yyssp = yyss + yysize - 1;
2188 yyvsp = yyvs + yysize - 1;
2189 yylsp = yyls + yysize - 1;
2191 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2192 (unsigned long int) yystacksize));
2194 if (yyss + yystacksize - 1 <= yyssp)
2198 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2207 /* Do appropriate processing given the current state. Read a
2208 look-ahead token if we need one and don't already have one. */
2210 /* First try to decide what to do without reference to look-ahead token. */
2211 yyn = yypact[yystate];
2212 if (yyn == YYPACT_NINF)
2215 /* Not known => get a look-ahead token if don't already have one. */
2217 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
2218 if (yychar == YYEMPTY)
2220 YYDPRINTF ((stderr, "Reading a token: "));
2224 if (yychar <= YYEOF)
2226 yychar = yytoken = YYEOF;
2227 YYDPRINTF ((stderr, "Now at end of input.\n"));
2231 yytoken = YYTRANSLATE (yychar);
2232 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2235 /* If the proper action on seeing token YYTOKEN is to reduce or to
2236 detect an error, take that action. */
2238 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2243 if (yyn == 0 || yyn == YYTABLE_NINF)
2252 /* Count tokens shifted since error; after three, turn off error
2257 /* Shift the look-ahead token. */
2258 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2260 /* Discard the shifted token unless it is eof. */
2261 if (yychar != YYEOF)
2270 /*-----------------------------------------------------------.
2271 | yydefault -- do the default action for the current state. |
2272 `-----------------------------------------------------------*/
2274 yyn = yydefact[yystate];
2280 /*-----------------------------.
2281 | yyreduce -- Do a reduction. |
2282 `-----------------------------*/
2284 /* yyn is the number of a rule to reduce with. */
2287 /* If YYLEN is nonzero, implement the default value of the action:
2290 Otherwise, the following line sets YYVAL to garbage.
2291 This behavior is undocumented and Bison
2292 users should not rely upon it. Assigning to YYVAL
2293 unconditionally makes the parser a bit smaller, and it avoids a
2294 GCC warning that YYVAL may be used uninitialized. */
2295 yyval = yyvsp[1-yylen];
2297 /* Default location. */
2298 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
2299 YY_REDUCE_PRINT (yyn);
2303 #line 116 "parser.y"
2304 { root_node = astnode_create_list((yyvsp[(1) - (2)].node)); }
2308 #line 120 "parser.y"
2313 #line 125 "parser.y"
2314 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2318 #line 126 "parser.y"
2320 if ((yyvsp[(1) - (2)].node) != NULL) { (yyval.node) = (yyvsp[(1) - (2)].node); astnode_add_sibling((yyval.node), (yyvsp[(2) - (2)].node)); }
2321 else { (yyval.node) = (yyvsp[(2) - (2)].node); }
2326 #line 133 "parser.y"
2327 { (yyval.node) = (yyvsp[(1) - (2)].node); astnode_add_sibling((yyval.node), (yyvsp[(2) - (2)].node)); }
2331 #line 134 "parser.y"
2332 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2336 #line 138 "parser.y"
2337 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2341 #line 139 "parser.y"
2342 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2346 #line 140 "parser.y"
2347 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2351 #line 141 "parser.y"
2352 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2356 #line 142 "parser.y"
2357 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2361 #line 143 "parser.y"
2362 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2366 #line 144 "parser.y"
2367 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2371 #line 145 "parser.y"
2372 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2376 #line 146 "parser.y"
2377 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2381 #line 147 "parser.y"
2382 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2386 #line 148 "parser.y"
2387 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2391 #line 149 "parser.y"
2392 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2396 #line 150 "parser.y"
2397 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2401 #line 151 "parser.y"
2402 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2406 #line 152 "parser.y"
2407 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2411 #line 153 "parser.y"
2412 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2416 #line 154 "parser.y"
2417 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2421 #line 155 "parser.y"
2422 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2426 #line 156 "parser.y"
2427 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2431 #line 157 "parser.y"
2432 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2436 #line 158 "parser.y"
2437 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2441 #line 159 "parser.y"
2442 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2446 #line 160 "parser.y"
2447 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2451 #line 161 "parser.y"
2452 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2456 #line 162 "parser.y"
2457 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2461 #line 163 "parser.y"
2462 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2466 #line 164 "parser.y"
2467 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2471 #line 165 "parser.y"
2472 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2476 #line 166 "parser.y"
2477 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2481 #line 167 "parser.y"
2482 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2486 #line 168 "parser.y"
2487 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2491 #line 169 "parser.y"
2492 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2496 #line 170 "parser.y"
2497 { (yyval.node) = NULL; }
2501 #line 174 "parser.y"
2502 { (yyval.node) = astnode_create_org((yyvsp[(2) - (3)].node), (yyloc)); }
2506 #line 178 "parser.y"
2507 { (yyval.node) = astnode_create_align((yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyloc)); }
2511 #line 182 "parser.y"
2512 { (yyval.node) = astnode_create_warning((yyvsp[(2) - (3)].node), (yyloc)); }
2516 #line 186 "parser.y"
2517 { (yyval.node) = astnode_create_error((yyvsp[(2) - (3)].node), (yyloc)); }
2521 #line 190 "parser.y"
2522 { (yyval.node) = astnode_create_message((yyvsp[(2) - (3)].node), (yyloc)); }
2526 #line 194 "parser.y"
2527 { (yyval.node) = astnode_create_label((yyvsp[(2) - (5)].node)->label, (yyvsp[(3) - (5)].node), (yyvsp[(4) - (5)].node), (yyloc)); }
2531 #line 198 "parser.y"
2532 { (yyval.node) = (yyvsp[(2) - (2)].node); }
2536 #line 199 "parser.y"
2537 { (yyval.node) = NULL; }
2541 #line 203 "parser.y"
2542 { (yyval.node) = (yyvsp[(2) - (2)].node); }
2546 #line 204 "parser.y"
2547 { (yyval.node) = NULL; }
2551 #line 208 "parser.y"
2552 { (yyval.node) = astnode_create_while((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node), (yyloc)); }
2556 #line 212 "parser.y"
2557 { (yyval.node) = astnode_create_rept((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node), (yyloc)); }
2561 #line 216 "parser.y"
2562 { (yyval.node) = astnode_create_proc((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node), (yyloc)); }
2566 #line 220 "parser.y"
2567 { (yyval.node) = astnode_create_struc_decl((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node), (yyloc)); }
2571 #line 224 "parser.y"
2572 { (yyval.node) = astnode_create_union_decl((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node), (yyloc)); }
2576 #line 228 "parser.y"
2577 { (yyval.node) = astnode_create_enum_decl((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node), (yyloc)); }
2581 #line 232 "parser.y"
2582 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2586 #line 233 "parser.y"
2587 { (yyval.node) = (yyvsp[(1) - (2)].node); astnode_add_sibling((yyval.node), (yyvsp[(2) - (2)].node)); }
2591 #line 237 "parser.y"
2592 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2596 #line 238 "parser.y"
2597 { (yyval.node) = (yyvsp[(1) - (2)].node); }
2601 #line 242 "parser.y"
2602 { (yyval.node) = astnode_create_record_decl((yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyloc)); }
2606 #line 246 "parser.y"
2607 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2611 #line 247 "parser.y"
2612 { (yyval.node) = (yyvsp[(1) - (3)].node); astnode_add_sibling((yyval.node), (yyvsp[(3) - (3)].node)); }
2616 #line 251 "parser.y"
2617 { (yyval.node) = astnode_create_bitfield_decl((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2621 #line 255 "parser.y"
2622 { (yyval.node) = astnode_create_charmap((yyvsp[(2) - (3)].node), (yyloc)); }
2626 #line 259 "parser.y"
2627 { (yyval.node) = astnode_create_dataseg(0, (yyloc)); }
2631 #line 260 "parser.y"
2632 { (yyval.node) = astnode_create_dataseg(ZEROPAGE_FLAG, (yyloc)); }
2636 #line 263 "parser.y"
2637 { (yyval.node) = astnode_create_codeseg((yyloc)); }
2641 #line 267 "parser.y"
2642 { (yyval.node) = NULL; }
2646 #line 271 "parser.y"
2647 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2651 #line 275 "parser.y"
2656 #line 276 "parser.y"
2661 #line 280 "parser.y"
2666 #line 284 "parser.y"
2667 { (yyval.node) = (yyvsp[(1) - (2)].node); }
2671 #line 288 "parser.y"
2672 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (1)].mnemonic), IMPLIED_MODE, NULL, (yyloc)); }
2676 #line 289 "parser.y"
2677 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (2)].mnemonic), ACCUMULATOR_MODE, NULL, (yyloc)); }
2681 #line 290 "parser.y"
2682 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (3)].mnemonic), IMMEDIATE_MODE, (yyvsp[(3) - (3)].node), (yyloc)); }
2686 #line 291 "parser.y"
2687 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (2)].mnemonic), ABSOLUTE_MODE, (yyvsp[(2) - (2)].node), (yyloc)); }
2691 #line 292 "parser.y"
2692 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (4)].mnemonic), ABSOLUTE_X_MODE, (yyvsp[(2) - (4)].node), (yyloc)); }
2696 #line 293 "parser.y"
2697 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (4)].mnemonic), ABSOLUTE_Y_MODE, (yyvsp[(2) - (4)].node), (yyloc)); }
2701 #line 294 "parser.y"
2702 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (6)].mnemonic), PREINDEXED_INDIRECT_MODE, (yyvsp[(3) - (6)].node), (yyloc)); }
2706 #line 295 "parser.y"
2707 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (6)].mnemonic), POSTINDEXED_INDIRECT_MODE, (yyvsp[(3) - (6)].node), (yyloc)); }
2711 #line 296 "parser.y"
2712 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (4)].mnemonic), INDIRECT_MODE, (yyvsp[(3) - (4)].node), (yyloc)); }
2716 #line 300 "parser.y"
2717 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2721 #line 301 "parser.y"
2722 { (yyval.node) = astnode_create_sizeof((yyvsp[(2) - (2)].node), (yyloc)); }
2726 #line 302 "parser.y"
2727 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2731 #line 303 "parser.y"
2732 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2736 #line 304 "parser.y"
2737 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2741 #line 305 "parser.y"
2742 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2746 #line 306 "parser.y"
2747 { (yyval.node) = astnode_create_pc((yyloc)); }
2751 #line 307 "parser.y"
2752 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2756 #line 308 "parser.y"
2757 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2761 #line 309 "parser.y"
2762 { (yyval.node) = (yyvsp[(2) - (3)].node); }
2766 #line 310 "parser.y"
2767 { (yyval.node) = astnode_create_forward_branch("+", (yyloc)); }
2771 #line 311 "parser.y"
2772 { (yyval.node) = astnode_create_backward_branch("-", (yyloc)); }
2776 #line 312 "parser.y"
2777 { (yyval.node) = astnode_create_forward_branch((yyvsp[(1) - (1)].ident), (yyloc)); }
2781 #line 313 "parser.y"
2782 { (yyval.node) = astnode_create_backward_branch((yyvsp[(1) - (1)].ident), (yyloc)); }
2786 #line 314 "parser.y"
2787 { (yyval.node) = astnode_create_mask((yyvsp[(2) - (2)].node), (yyloc)); }
2791 #line 318 "parser.y"
2792 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2796 #line 319 "parser.y"
2797 { (yyval.node) = astnode_create_index((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node), (yyloc)); }
2801 #line 320 "parser.y"
2802 { (yyval.node) = astnode_create_index((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node), (yyloc)); }
2806 #line 324 "parser.y"
2807 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2811 #line 325 "parser.y"
2812 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2816 #line 329 "parser.y"
2817 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2821 #line 330 "parser.y"
2822 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2826 #line 334 "parser.y"
2827 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2831 #line 335 "parser.y"
2832 { (yyval.node) = NULL; }
2836 #line 339 "parser.y"
2837 { (yyval.node) = astnode_create_scope((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2841 #line 343 "parser.y"
2842 { (yyval.node) = astnode_create_dot((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2846 #line 344 "parser.y"
2847 { (yyval.node) = astnode_create_dot((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2851 #line 348 "parser.y"
2852 { (yyval.node) = astnode_create_struc((yyvsp[(2) - (3)].node), (yyloc)); }
2856 #line 352 "parser.y"
2857 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2861 #line 353 "parser.y"
2862 { (yyval.node) = NULL; }
2866 #line 357 "parser.y"
2867 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2871 #line 358 "parser.y"
2872 { (yyval.node) = (yyvsp[(1) - (3)].node); astnode_add_sibling((yyval.node), (yyvsp[(3) - (3)].node)); }
2876 #line 362 "parser.y"
2877 { (yyval.node) = (yyvsp[(1) - (1)].node); }
2881 #line 363 "parser.y"
2882 { (yyval.node) = astnode_create_null((yyloc)); }
2886 #line 367 "parser.y"
2887 { (yyval.node) = astnode_create_local_id((yyvsp[(1) - (1)].ident), (yyloc)); }
2891 #line 371 "parser.y"
2892 { (yyval.node) = astnode_create_arithmetic(PLUS_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2896 #line 372 "parser.y"
2897 { (yyval.node) = astnode_create_arithmetic(MINUS_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2901 #line 373 "parser.y"
2902 { (yyval.node) = astnode_create_arithmetic(MUL_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2906 #line 374 "parser.y"
2907 { (yyval.node) = astnode_create_arithmetic(DIV_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2911 #line 375 "parser.y"
2912 { (yyval.node) = astnode_create_arithmetic(MOD_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2916 #line 376 "parser.y"
2917 { (yyval.node) = astnode_create_arithmetic(AND_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2921 #line 377 "parser.y"
2922 { (yyval.node) = astnode_create_arithmetic(OR_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2926 #line 378 "parser.y"
2927 { (yyval.node) = astnode_create_arithmetic(XOR_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2931 #line 379 "parser.y"
2932 { (yyval.node) = astnode_create_arithmetic(SHL_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2936 #line 380 "parser.y"
2937 { (yyval.node) = astnode_create_arithmetic(SHR_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2941 #line 381 "parser.y"
2942 { (yyval.node) = astnode_create_arithmetic(NEG_OPERATOR, (yyvsp[(2) - (2)].node), NULL, (yyloc)); }
2946 #line 382 "parser.y"
2947 { (yyval.node) = astnode_create_arithmetic(NOT_OPERATOR, (yyvsp[(2) - (2)].node), NULL, (yyloc)); }
2951 #line 383 "parser.y"
2952 { (yyval.node) = astnode_create_arithmetic(BANK_OPERATOR, (yyvsp[(2) - (2)].node), NULL, (yyloc)); }
2956 #line 384 "parser.y"
2957 { (yyval.node) = astnode_create_arithmetic(LO_OPERATOR, (yyvsp[(2) - (2)].node), NULL, (yyloc)); }
2961 #line 385 "parser.y"
2962 { (yyval.node) = astnode_create_arithmetic(HI_OPERATOR, (yyvsp[(2) - (2)].node), NULL, (yyloc)); }
2966 #line 386 "parser.y"
2967 { (yyval.node) = astnode_create_arithmetic(UMINUS_OPERATOR, (yyvsp[(2) - (2)].node), NULL, (yyloc)); }
2971 #line 390 "parser.y"
2972 { (yyval.node) = astnode_create_arithmetic(EQ_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2976 #line 391 "parser.y"
2977 { (yyval.node) = astnode_create_arithmetic(NE_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2981 #line 392 "parser.y"
2982 { (yyval.node) = astnode_create_arithmetic(GT_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2986 #line 393 "parser.y"
2987 { (yyval.node) = astnode_create_arithmetic(LT_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2991 #line 394 "parser.y"
2992 { (yyval.node) = astnode_create_arithmetic(GE_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
2996 #line 395 "parser.y"
2997 { (yyval.node) = astnode_create_arithmetic(LE_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
3001 #line 399 "parser.y"
3002 { (yyval.node) = astnode_create_label((yyvsp[(1) - (1)].label), NULL, NULL, (yyloc)); }
3006 #line 400 "parser.y"
3007 { (yyval.node) = astnode_create_local_label((yyvsp[(1) - (1)].label), (yyloc)); }
3011 #line 401 "parser.y"
3012 { (yyval.node) = astnode_create_forward_branch_decl("+", (yyloc)); }
3016 #line 402 "parser.y"
3017 { (yyval.node) = astnode_create_backward_branch_decl("-", (yyloc)); }
3021 #line 403 "parser.y"
3022 { (yyval.node) = astnode_create_forward_branch_decl((yyvsp[(1) - (1)].ident), (yyloc)); }
3026 #line 404 "parser.y"
3027 { (yyval.node) = astnode_create_backward_branch_decl((yyvsp[(1) - (1)].ident), (yyloc)); }
3031 #line 408 "parser.y"
3032 { (yyval.node) = astnode_create_identifier((yyvsp[(1) - (1)].ident), (yyloc)); }
3036 #line 412 "parser.y"
3037 { (yyval.node) = (yyvsp[(1) - (1)].node); }
3041 #line 413 "parser.y"
3042 { (yyval.node) = astnode_create_null((yyloc)); }
3046 #line 417 "parser.y"
3047 { (yyval.node) = astnode_create_integer((yyvsp[(1) - (1)].integer), (yyloc)); }
3051 #line 418 "parser.y"
3052 { (yyval.node) = astnode_create_string((yyvsp[(1) - (1)].string), (yyloc)); }
3056 #line 422 "parser.y"
3057 { (yyval.node) = astnode_create_if((yyvsp[(2) - (8)].node), (yyvsp[(4) - (8)].node), (yyvsp[(5) - (8)].node), (yyvsp[(6) - (8)].node), (yyloc)); }
3061 #line 426 "parser.y"
3062 { (yyval.node) = (yyvsp[(1) - (1)].node); }
3066 #line 427 "parser.y"
3067 { (yyval.node) = NULL; }
3071 #line 431 "parser.y"
3072 { (yyval.node) = (yyvsp[(1) - (1)].node); }
3076 #line 432 "parser.y"
3077 { (yyval.node) = (yyvsp[(1) - (2)].node); astnode_add_sibling((yyval.node), (yyvsp[(2) - (2)].node)); }
3081 #line 436 "parser.y"
3082 { (yyval.node) = astnode_create_case((yyvsp[(2) - (4)].node), (yyvsp[(4) - (4)].node), (yyloc)); }
3086 #line 440 "parser.y"
3087 { (yyval.node) = (yyvsp[(3) - (3)].node); }
3091 #line 441 "parser.y"
3092 { (yyval.node) = NULL; }
3096 #line 445 "parser.y"
3097 { (yyval.node) = astnode_create_ifdef((yyvsp[(2) - (7)].node), (yyvsp[(4) - (7)].node), (yyvsp[(5) - (7)].node), (yyloc)); }
3101 #line 449 "parser.y"
3102 { (yyval.node) = astnode_create_ifndef((yyvsp[(2) - (7)].node), (yyvsp[(4) - (7)].node), (yyvsp[(5) - (7)].node), (yyloc)); }
3106 #line 453 "parser.y"
3107 { (yyval.node) = (yyvsp[(1) - (2)].node); }
3111 #line 454 "parser.y"
3112 { (yyval.node) = (yyvsp[(1) - (2)].node); }
3116 #line 458 "parser.y"
3117 { (yyval.node) = astnode_create_var_decl(0, (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node), (yyloc)); }
3121 #line 459 "parser.y"
3122 { (yyval.node) = astnode_create_var_decl(ZEROPAGE_FLAG, (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
3126 #line 460 "parser.y"
3127 { (yyval.node) = astnode_create_var_decl(PUBLIC_FLAG, (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
3131 #line 461 "parser.y"
3132 { (yyval.node) = astnode_create_var_decl(ZEROPAGE_FLAG | PUBLIC_FLAG, (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node), (yyloc)); }
3136 #line 462 "parser.y"
3137 { (yyval.node) = astnode_create_var_decl(PUBLIC_FLAG | ZEROPAGE_FLAG, (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node), (yyloc)); }
3141 #line 466 "parser.y"
3142 { (yyval.node) = astnode_create_data((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node), (yyloc)); }
3146 #line 467 "parser.y"
3147 { (yyval.node) = astnode_create_storage((yyvsp[(1) - (1)].node), NULL, (yyloc)); }
3151 #line 468 "parser.y"
3152 { (yyval.node) = astnode_create_storage((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node), (yyloc)); }
3156 #line 472 "parser.y"
3157 { (yyval.node) = astnode_create_datatype(BYTE_DATATYPE, NULL, (yyloc)); }
3161 #line 473 "parser.y"
3162 { (yyval.node) = astnode_create_datatype(CHAR_DATATYPE, NULL, (yyloc)); }
3166 #line 474 "parser.y"
3167 { (yyval.node) = astnode_create_datatype(WORD_DATATYPE, NULL, (yyloc)); }
3171 #line 475 "parser.y"
3172 { (yyval.node) = astnode_create_datatype(DWORD_DATATYPE, NULL, (yyloc)); }
3176 #line 476 "parser.y"
3177 { (yyval.node) = astnode_create_datatype(USER_DATATYPE, (yyvsp[(2) - (2)].node), (yyloc)); }
3181 #line 477 "parser.y"
3182 { (yyval.node) = astnode_create_datatype(USER_DATATYPE, (yyvsp[(2) - (2)].node), (yyloc)); }
3186 #line 481 "parser.y"
3187 { (yyval.node) = (yyvsp[(1) - (1)].node); }
3191 #line 482 "parser.y"
3192 { (yyval.node) = (yyvsp[(1) - (3)].node); astnode_add_sibling((yyval.node), (yyvsp[(3) - (3)].node)); }
3196 #line 486 "parser.y"
3197 { (yyval.node) = astnode_create_incsrc((yyvsp[(2) - (3)].node), (yyloc)); handle_incsrc((yyval.node)); }
3201 #line 490 "parser.y"
3202 { (yyval.node) = astnode_create_incbin((yyvsp[(2) - (3)].node), (yyloc)); handle_incbin((yyval.node)); }
3206 #line 494 "parser.y"
3207 { (yyval.node) = astnode_create_string((yyvsp[(1) - (1)].string), (yyloc)); }
3211 #line 495 "parser.y"
3212 { (yyval.node) = astnode_create_file_path((yyvsp[(1) - (1)].string), (yyloc)); }
3216 #line 499 "parser.y"
3217 { (yyval.node) = astnode_create_macro_decl((yyvsp[(2) - (7)].node), (yyvsp[(3) - (7)].node), (yyvsp[(5) - (7)].node), (yyloc)); }
3221 #line 503 "parser.y"
3222 { (yyval.node) = (yyvsp[(1) - (1)].node); }
3226 #line 504 "parser.y"
3227 { (yyval.node) = NULL; }
3231 #line 508 "parser.y"
3232 { (yyval.node) = astnode_create_macro((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyloc)); }
3236 #line 512 "parser.y"
3237 { (yyval.node) = (yyvsp[(1) - (1)].node); }
3241 #line 513 "parser.y"
3242 { (yyval.node) = NULL; }
3246 #line 517 "parser.y"
3247 { (yyval.node) = (yyvsp[(1) - (1)].node); }
3251 #line 518 "parser.y"
3252 { (yyval.node) = (yyvsp[(1) - (3)].node); astnode_add_sibling((yyval.node), (yyvsp[(3) - (3)].node)); }
3256 #line 522 "parser.y"
3257 { (yyval.node) = astnode_create_equ((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node), (yyloc)); }
3261 #line 526 "parser.y"
3262 { (yyval.node) = astnode_create_assign((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node), (yyloc)); }
3266 #line 530 "parser.y"
3267 { (yyval.node) = astnode_create_equ((yyvsp[(2) - (3)].node), astnode_create_integer(0, (yyloc)), (yyloc)); }
3271 #line 531 "parser.y"
3272 { (yyval.node) = astnode_create_equ((yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyloc)); }
3276 #line 535 "parser.y"
3277 { (yyval.node) = astnode_create_public((yyvsp[(2) - (3)].node), (yyloc)); }
3281 #line 539 "parser.y"
3282 { (yyval.node) = astnode_create_extrn((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node), (yyvsp[(5) - (6)].node), (yyloc)); }
3286 #line 543 "parser.y"
3287 { (yyval.node) = (yyvsp[(2) - (2)].node); }
3291 #line 544 "parser.y"
3292 { (yyval.node) = NULL; }
3296 #line 548 "parser.y"
3297 { (yyval.node) = (yyvsp[(1) - (1)].node); }
3301 #line 549 "parser.y"
3302 { (yyval.node) = astnode_create_datatype(USER_DATATYPE, (yyvsp[(1) - (1)].node), (yyloc)); }
3306 #line 550 "parser.y"
3307 { (yyval.node) = astnode_create_integer(PROC_SYMBOL, (yyloc)); }
3311 #line 551 "parser.y"
3312 { (yyval.node) = astnode_create_integer(LABEL_SYMBOL, (yyloc)); }
3316 #line 555 "parser.y"
3317 { (yyval.node) = (yyvsp[(1) - (1)].node); }
3321 #line 556 "parser.y"
3322 { (yyval.node) = (yyvsp[(1) - (1)].node); }
3326 #line 560 "parser.y"
3327 { (yyval.node) = astnode_create_var_decl(0, (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node), (yyloc)); }
3331 #line 561 "parser.y"
3332 { (yyval.node) = astnode_create_var_decl(ZEROPAGE_FLAG, (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
3336 #line 562 "parser.y"
3337 { (yyval.node) = astnode_create_var_decl(PUBLIC_FLAG, (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
3341 #line 563 "parser.y"
3342 { (yyval.node) = astnode_create_var_decl(ZEROPAGE_FLAG | PUBLIC_FLAG, (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node), (yyloc)); }
3346 #line 564 "parser.y"
3347 { (yyval.node) = astnode_create_var_decl(PUBLIC_FLAG | ZEROPAGE_FLAG, (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node), (yyloc)); }
3351 #line 568 "parser.y"
3352 { (yyval.node) = astnode_create_storage((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyloc)); }
3356 #line 572 "parser.y"
3357 { (yyval.node) = astnode_create_datatype(BYTE_DATATYPE, NULL, (yyloc)); }
3361 #line 573 "parser.y"
3362 { (yyval.node) = astnode_create_datatype(WORD_DATATYPE, NULL, (yyloc)); }
3366 #line 574 "parser.y"
3367 { (yyval.node) = astnode_create_datatype(DWORD_DATATYPE, NULL, (yyloc)); }
3371 /* Line 1267 of yacc.c. */
3372 #line 3330 "parser.c"
3375 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
3379 YY_STACK_PRINT (yyss, yyssp);
3384 /* Now `shift' the result of the reduction. Determine what state
3385 that goes to, based on the state we popped back to and the rule
3386 number reduced by. */
3390 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3391 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3392 yystate = yytable[yystate];
3394 yystate = yydefgoto[yyn - YYNTOKENS];
3399 /*------------------------------------.
3400 | yyerrlab -- here on detecting error |
3401 `------------------------------------*/
3403 /* If not already recovering from an error, report this error. */
3407 #if ! YYERROR_VERBOSE
3408 yyerror (YY_("syntax error"));
3411 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
3412 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
3414 YYSIZE_T yyalloc = 2 * yysize;
3415 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
3416 yyalloc = YYSTACK_ALLOC_MAXIMUM;
3417 if (yymsg != yymsgbuf)
3418 YYSTACK_FREE (yymsg);
3419 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
3421 yymsg_alloc = yyalloc;
3425 yymsg_alloc = sizeof yymsgbuf;
3429 if (0 < yysize && yysize <= yymsg_alloc)
3431 (void) yysyntax_error (yymsg, yystate, yychar);
3436 yyerror (YY_("syntax error"));
3438 goto yyexhaustedlab;
3444 yyerror_range[0] = yylloc;
3446 if (yyerrstatus == 3)
3448 /* If just tried and failed to reuse look-ahead token after an
3449 error, discard it. */
3451 if (yychar <= YYEOF)
3453 /* Return failure if at end of input. */
3454 if (yychar == YYEOF)
3459 yydestruct ("Error: discarding",
3460 yytoken, &yylval, &yylloc);
3465 /* Else will try to reuse look-ahead token after shifting the error
3470 /*---------------------------------------------------.
3471 | yyerrorlab -- error raised explicitly by YYERROR. |
3472 `---------------------------------------------------*/
3475 /* Pacify compilers like GCC when the user code never invokes
3476 YYERROR and the label yyerrorlab therefore never appears in user
3478 if (/*CONSTCOND*/ 0)
3481 yyerror_range[0] = yylsp[1-yylen];
3482 /* Do not reclaim the symbols of the rule which action triggered
3486 YY_STACK_PRINT (yyss, yyssp);
3491 /*-------------------------------------------------------------.
3492 | yyerrlab1 -- common code for both syntax error and YYERROR. |
3493 `-------------------------------------------------------------*/
3495 yyerrstatus = 3; /* Each real token shifted decrements this. */
3499 yyn = yypact[yystate];
3500 if (yyn != YYPACT_NINF)
3503 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3511 /* Pop the current state because it cannot handle the error token. */
3515 yyerror_range[0] = *yylsp;
3516 yydestruct ("Error: popping",
3517 yystos[yystate], yyvsp, yylsp);
3520 YY_STACK_PRINT (yyss, yyssp);
3528 yyerror_range[1] = yylloc;
3529 /* Using YYLLOC is tempting, but would change the location of
3530 the look-ahead. YYLOC is available though. */
3531 YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
3534 /* Shift the error token. */
3535 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3541 /*-------------------------------------.
3542 | yyacceptlab -- YYACCEPT comes here. |
3543 `-------------------------------------*/
3548 /*-----------------------------------.
3549 | yyabortlab -- YYABORT comes here. |
3550 `-----------------------------------*/
3556 /*-------------------------------------------------.
3557 | yyexhaustedlab -- memory exhaustion comes here. |
3558 `-------------------------------------------------*/
3560 yyerror (YY_("memory exhausted"));
3566 if (yychar != YYEOF && yychar != YYEMPTY)
3567 yydestruct ("Cleanup: discarding lookahead",
3568 yytoken, &yylval, &yylloc);
3569 /* Do not reclaim the symbols of the rule which action triggered
3570 this YYABORT or YYACCEPT. */
3572 YY_STACK_PRINT (yyss, yyssp);
3573 while (yyssp != yyss)
3575 yydestruct ("Cleanup: popping",
3576 yystos[*yyssp], yyvsp, yylsp);
3581 YYSTACK_FREE (yyss);
3584 if (yymsg != yymsgbuf)
3585 YYSTACK_FREE (yymsg);
3587 /* Make sure YYID is used. */
3588 return YYID (yyresult);
3592 #line 576 "parser.y"
3595 * Takes care of switching to a new scanner input stream when a "incsrc" statement
3596 * has been encountered.
3597 * The current stream is pushed on a stack, and will be popped when EOF is reached
3598 * in the new stream.
3599 * @@param n A node of type INCSRC_NODE
3601 void handle_incsrc(astnode *n)
3604 /* Get the node which describes the file to include */
3605 astnode *file = astnode_get_child(n, 0);
3607 switch (astnode_get_type(file)) {
3609 /* TODO: add path searching */
3610 case FILE_PATH_NODE:
3611 switch (yypushandrestart(file->string)) {
3616 /* Failed to open file */
3617 sprintf(errs, "could not open '%s' for reading", file->string);
3621 /* Stack overflow */
3622 yyerror("Maximum include nesting level reached");
3631 // TODO: This shouldn't be done here but rather in astproc module.
3634 * Takes care of including the binary contents of the file specified by a parsed
3635 * "incbin" statement.
3636 * Calls yyerror() if the file can't be included for some reason.
3637 * @@param n A node of type INCBIN_NODE
3639 void handle_incbin(astnode *n)
3642 unsigned char *data;
3645 /* Get the node which describes the file to include */
3646 astnode *file = astnode_get_child(n, 0);
3647 const char *filename = file->string;
3649 switch (astnode_get_type(file)) {
3651 /* TODO: add path searching */
3652 case FILE_PATH_NODE:
3653 /* Attempt to open file */
3654 fp = fopen(filename, "rb");
3655 if (!fp && (filename[0] != '/')) {
3656 /* Try search paths */
3657 /* ### copied from scanner.l -- generalize */
3659 for (i = 0; i < xasm_args.include_path_count; ++i) {
3660 const char *include_path = xasm_args.include_paths[i];
3661 char *path = (char *)malloc(
3662 strlen(include_path) + strlen("/") + strlen(filename) + 1);
3663 strcpy(path, include_path);
3665 strcat(path, filename);
3666 fp = fopen(path, "rb");
3674 fseek(fp, 0, SEEK_END);
3678 /* Allocate buffer to hold file contents */
3679 data = (unsigned char *)malloc(size);
3680 /* Read file contents into buffer */
3681 fread(data, 1, size, fp);
3682 /* Insert binary node */
3683 astnode_add_sibling(n, astnode_create_binary(data, size, n->loc) );
3689 /* Couldn't open file */
3690 sprintf(errs, "could not open '%s' for reading", file->string);
3704 @ability to generate pure 6502 binary (--pure-binary switch)
3709 * $Id: parser.y,v 1.11 2007/08/11 01:25:50 khansen Exp khansen $
3713 void yyerror(char *); /* In lexer */
3716 int yypushandrestart(char *); /* In lexer */
3727 #line 297 "parser.c"
3730 #line 322 "parser.c"
3733 0, 113, 113, 117, 118, 122, 123, 130, 131, 135,
3734 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
3735 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
3736 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
3737 166, 167, 171, 175, 179, 183, 187, 191, 195, 196,
3738 200, 201, 205, 209, 213, 217, 221, 225, 229, 230,
3739 234, 235, 239, 243, 244, 248, 252, 256, 257, 260,
3740 264, 268, 272, 273, 277, 281, 285, 286, 287, 288,
3741 289, 290, 291, 292, 293, 297, 298, 299, 300, 301,
3742 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
3743 315, 316, 317, 321, 322, 326, 327, 331, 332, 336,
3744 340, 341, 345, 349, 350, 354, 355, 359, 360, 364,
3745 368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
3746 378, 379, 380, 381, 382, 383, 387, 388, 389, 390,
3747 391, 392, 396, 397, 398, 399, 400, 401, 405, 409,
3748 410, 414, 415, 419, 423, 424, 428, 429, 433, 437,
3749 438, 442, 446, 450, 451, 455, 456, 457, 458, 459,
3750 463, 464, 465, 469, 470, 471, 472, 473, 474, 478,
3751 479, 483, 487, 491, 492, 496, 500, 501, 505, 509,
3752 510, 514, 515, 519, 523, 527, 528, 532, 536, 540,
3753 541, 545, 546, 547, 548, 552, 553, 557, 558, 559,
3754 560, 561, 565, 569, 570, 571
3757 #line 113 "parser.y"
3760 #line 117 "parser.y"
3763 #line 122 "parser.y"
3766 #line 123 "parser.y"
3769 #line 130 "parser.y"
3772 #line 131 "parser.y"
3775 #line 135 "parser.y"
3778 #line 136 "parser.y"
3781 #line 137 "parser.y"
3784 #line 138 "parser.y"
3787 #line 139 "parser.y"
3790 #line 140 "parser.y"
3793 #line 141 "parser.y"
3796 #line 142 "parser.y"
3799 #line 143 "parser.y"
3802 #line 144 "parser.y"
3805 #line 145 "parser.y"
3808 #line 146 "parser.y"
3811 #line 147 "parser.y"
3814 #line 148 "parser.y"
3817 #line 149 "parser.y"
3820 #line 150 "parser.y"
3823 #line 151 "parser.y"
3826 #line 152 "parser.y"
3829 #line 153 "parser.y"
3832 #line 154 "parser.y"
3835 #line 155 "parser.y"
3838 #line 156 "parser.y"
3841 #line 157 "parser.y"
3844 #line 158 "parser.y"
3847 #line 159 "parser.y"
3850 #line 160 "parser.y"
3853 #line 161 "parser.y"
3856 #line 162 "parser.y"
3859 #line 163 "parser.y"
3862 #line 164 "parser.y"
3865 #line 165 "parser.y"
3868 #line 166 "parser.y"
3871 #line 167 "parser.y"
3874 #line 171 "parser.y"
3877 #line 175 "parser.y"
3880 #line 179 "parser.y"
3883 #line 183 "parser.y"
3886 #line 187 "parser.y"
3889 #line 191 "parser.y"
3892 #line 195 "parser.y"
3895 #line 196 "parser.y"
3898 #line 200 "parser.y"
3901 #line 201 "parser.y"
3904 #line 205 "parser.y"
3907 #line 209 "parser.y"
3910 #line 213 "parser.y"
3913 #line 217 "parser.y"
3916 #line 221 "parser.y"
3919 #line 225 "parser.y"
3922 #line 229 "parser.y"
3925 #line 230 "parser.y"
3928 #line 234 "parser.y"
3931 #line 235 "parser.y"
3934 #line 239 "parser.y"
3937 #line 243 "parser.y"
3940 #line 244 "parser.y"
3943 #line 248 "parser.y"
3946 #line 252 "parser.y"
3949 #line 256 "parser.y"
3952 #line 257 "parser.y"
3955 #line 260 "parser.y"
3958 #line 264 "parser.y"
3961 #line 268 "parser.y"
3964 #line 272 "parser.y"
3967 #line 273 "parser.y"
3970 #line 277 "parser.y"
3973 #line 281 "parser.y"
3976 #line 285 "parser.y"
3979 #line 286 "parser.y"
3982 #line 287 "parser.y"
3985 #line 288 "parser.y"
3988 #line 289 "parser.y"
3991 #line 290 "parser.y"
3994 #line 291 "parser.y"
3997 #line 292 "parser.y"
4000 #line 293 "parser.y"
4003 #line 297 "parser.y"
4006 #line 298 "parser.y"
4009 #line 299 "parser.y"
4012 #line 300 "parser.y"
4015 #line 301 "parser.y"
4018 #line 302 "parser.y"
4021 #line 303 "parser.y"
4024 #line 304 "parser.y"
4027 #line 305 "parser.y"
4030 #line 306 "parser.y"
4033 #line 307 "parser.y"
4036 #line 308 "parser.y"
4039 #line 309 "parser.y"
4042 #line 310 "parser.y"
4045 #line 311 "parser.y"
4048 #line 315 "parser.y"
4051 #line 316 "parser.y"
4054 #line 317 "parser.y"
4057 #line 321 "parser.y"
4060 #line 322 "parser.y"
4063 #line 326 "parser.y"
4066 #line 327 "parser.y"
4069 #line 331 "parser.y"
4072 #line 332 "parser.y"
4075 #line 336 "parser.y"
4078 #line 340 "parser.y"
4081 #line 341 "parser.y"
4084 #line 345 "parser.y"
4087 #line 349 "parser.y"
4090 #line 350 "parser.y"
4093 #line 354 "parser.y"
4096 #line 355 "parser.y"
4099 #line 359 "parser.y"
4102 #line 360 "parser.y"
4105 #line 364 "parser.y"
4108 #line 368 "parser.y"
4111 #line 369 "parser.y"
4114 #line 370 "parser.y"
4117 #line 371 "parser.y"
4120 #line 372 "parser.y"
4123 #line 373 "parser.y"
4126 #line 374 "parser.y"
4129 #line 375 "parser.y"
4132 #line 376 "parser.y"
4135 #line 377 "parser.y"
4138 #line 378 "parser.y"
4141 #line 379 "parser.y"
4144 #line 380 "parser.y"
4147 #line 381 "parser.y"
4150 #line 382 "parser.y"
4153 #line 383 "parser.y"
4156 #line 387 "parser.y"
4159 #line 388 "parser.y"
4162 #line 389 "parser.y"
4165 #line 390 "parser.y"
4168 #line 391 "parser.y"
4171 #line 392 "parser.y"
4174 #line 396 "parser.y"
4177 #line 397 "parser.y"
4180 #line 398 "parser.y"
4183 #line 399 "parser.y"
4186 #line 400 "parser.y"
4189 #line 401 "parser.y"
4192 #line 405 "parser.y"
4195 #line 409 "parser.y"
4198 #line 410 "parser.y"
4201 #line 414 "parser.y"
4204 #line 415 "parser.y"
4207 #line 419 "parser.y"
4210 #line 423 "parser.y"
4213 #line 424 "parser.y"
4216 #line 428 "parser.y"
4219 #line 429 "parser.y"
4222 #line 433 "parser.y"
4225 #line 437 "parser.y"
4228 #line 438 "parser.y"
4231 #line 442 "parser.y"
4234 #line 446 "parser.y"
4237 #line 450 "parser.y"
4240 #line 451 "parser.y"
4243 #line 455 "parser.y"
4246 #line 456 "parser.y"
4249 #line 457 "parser.y"
4252 #line 458 "parser.y"
4255 #line 459 "parser.y"
4258 #line 463 "parser.y"
4261 #line 464 "parser.y"
4264 #line 465 "parser.y"
4267 #line 469 "parser.y"
4270 #line 470 "parser.y"
4273 #line 471 "parser.y"
4276 #line 472 "parser.y"
4279 #line 473 "parser.y"
4282 #line 474 "parser.y"
4285 #line 478 "parser.y"
4288 #line 479 "parser.y"
4291 #line 483 "parser.y"
4294 #line 487 "parser.y"
4297 #line 491 "parser.y"
4300 #line 492 "parser.y"
4303 #line 496 "parser.y"
4306 #line 500 "parser.y"
4309 #line 501 "parser.y"
4312 #line 505 "parser.y"
4315 #line 509 "parser.y"
4318 #line 510 "parser.y"
4321 #line 514 "parser.y"
4324 #line 515 "parser.y"
4327 #line 519 "parser.y"
4330 #line 523 "parser.y"
4333 #line 527 "parser.y"
4336 #line 528 "parser.y"
4339 #line 532 "parser.y"
4342 #line 536 "parser.y"
4345 #line 540 "parser.y"
4348 #line 541 "parser.y"
4351 #line 545 "parser.y"
4354 #line 546 "parser.y"
4357 #line 547 "parser.y"
4360 #line 548 "parser.y"
4363 #line 552 "parser.y"
4366 #line 553 "parser.y"
4369 #line 557 "parser.y"
4372 #line 558 "parser.y"
4375 #line 559 "parser.y"
4378 #line 560 "parser.y"
4381 #line 561 "parser.y"
4384 #line 565 "parser.y"
4387 #line 569 "parser.y"
4390 #line 570 "parser.y"
4393 #line 571 "parser.y"
4396 #line 3327 "parser.c"
4399 #line 573 "parser.y"
4405 @includepaths support (-I option)
4422 #define SCOPE_OP 312
4434 * $Id: parser.y,v 1.10 2007/07/22 13:34:38 khansen Exp khansen $
4441 #line 292 "parser.c"
4444 #line 317 "parser.c"
4453 #define YYNTOKENS 96
4459 #define YYNRULES 213
4462 #define YYNSTATES 376
4465 #define YYMAXUTOK 321
4468 57, 2, 2, 2, 2, 2, 2, 2, 2, 2,
4471 2, 2, 2, 92, 2, 72, 65, 91, 77, 2,
4472 94, 95, 89, 86, 70, 87, 71, 90, 2, 2,
4473 2, 2, 2, 2, 2, 2, 2, 2, 58, 2,
4474 81, 64, 80, 2, 59, 61, 2, 2, 2, 2,
4477 2, 2, 2, 2, 2, 2, 2, 2, 62, 63,
4478 2, 68, 2, 69, 76, 2, 2, 2, 2, 2,
4481 2, 2, 2, 66, 75, 67, 93, 2, 2, 2,
4484 55, 56, 60, 73, 74, 78, 79, 82, 83, 84,
4488 82, 85, 90, 94, 98, 102, 108, 111, 112, 115,
4489 116, 123, 130, 137, 144, 151, 158, 160, 163, 165,
4490 168, 173, 175, 179, 183, 187, 190, 194, 197, 199,
4491 201, 203, 205, 207, 210, 212, 215, 219, 222, 227,
4492 232, 239, 246, 251, 253, 256, 258, 260, 262, 264,
4493 266, 268, 270, 274, 276, 278, 280, 282, 285, 287,
4494 292, 297, 299, 301, 303, 305, 307, 308, 312, 316,
4495 320, 324, 326, 327, 329, 333, 335, 336, 338, 342,
4496 346, 350, 354, 358, 362, 366, 370, 374, 378, 381,
4497 384, 387, 390, 393, 396, 400, 404, 408, 412, 416,
4498 420, 422, 424, 426, 428, 430, 432, 434, 436, 437,
4499 439, 441, 450, 452, 453, 455, 458, 463, 467, 468,
4500 476, 484, 487, 490, 493, 497, 501, 506, 511, 514,
4501 516, 521, 523, 525, 527, 529, 532, 535, 537, 541,
4502 545, 549, 551, 553, 561, 563, 564, 568, 570, 571,
4503 573, 577, 582, 587, 591, 596, 600, 607, 610, 611,
4504 613, 615, 617, 619, 621, 623, 626, 630, 634, 639,
4508 97, 0, -1, 99, 98, -1, 38, 125, -1, -1,
4509 100, -1, 99, 100, -1, 124, 101, -1, 101, -1,
4510 147, -1, 152, -1, 153, -1, 162, -1, 164, -1,
4511 159, -1, 160, -1, 167, -1, 168, -1, 170, -1,
4512 171, -1, 127, -1, 154, -1, 174, -1, 121, -1,
4513 122, -1, 120, -1, 112, -1, 113, -1, 114, -1,
4514 117, -1, 111, -1, 110, -1, 109, -1, 106, -1,
4515 105, -1, 103, -1, 104, -1, 169, -1, 102, -1,
4516 123, -1, 1, 125, -1, 35, 166, 129, 125, -1,
4517 54, 129, 125, -1, 55, 129, 125, -1, 53, 129,
4518 125, -1, 13, 144, 107, 108, 125, -1, 64, 3,
4519 -1, -1, 58, 173, -1, -1, 33, 129, 125, 99,
4520 34, 125, -1, 32, 129, 125, 99, 34, 125, -1,
4521 48, 144, 125, 99, 49, 125, -1, 42, 144, 125,
4522 99, 44, 125, -1, 43, 145, 125, 99, 44, 125,
4523 -1, 46, 144, 125, 115, 47, 125, -1, 116, -1,
4524 115, 116, -1, 168, -1, 144, 125, -1, 45, 144,
4525 118, 125, -1, 119, -1, 118, 70, 119, -1, 144,
4526 58, 129, -1, 41, 161, 125, -1, 21, 125, -1,
4527 21, 56, 125, -1, 22, 125, -1, 125, -1, 143,
4528 -1, 126, -1, 58, -1, 57, -1, 128, 125, -1,
4529 12, -1, 12, 61, -1, 12, 72, 129, -1, 12,
4530 129, -1, 12, 129, 70, 62, -1, 12, 129, 70,
4531 63, -1, 12, 68, 129, 70, 62, 69, -1, 12,
4532 68, 129, 69, 70, 63, -1, 12, 68, 129, 69,
4533 -1, 130, -1, 50, 132, -1, 134, -1, 135, -1,
4534 140, -1, 146, -1, 65, -1, 141, -1, 142, -1,
4535 94, 129, 95, -1, 86, -1, 87, -1, 8, -1,
4536 9, -1, 51, 134, -1, 144, -1, 144, 68, 129,
4537 69, -1, 144, 94, 129, 95, -1, 129, -1, 136,
4538 -1, 144, -1, 157, -1, 129, -1, -1, 144, 60,
4539 144, -1, 130, 71, 135, -1, 130, 71, 130, -1,
4540 66, 137, 67, -1, 138, -1, -1, 139, -1, 138,
4541 70, 139, -1, 131, -1, -1, 7, -1, 129, 86,
4542 129, -1, 129, 87, 129, -1, 129, 89, 129, -1,
4543 129, 90, 129, -1, 129, 91, 129, -1, 129, 77,
4544 129, -1, 129, 75, 129, -1, 129, 76, 129, -1,
4545 129, 85, 129, -1, 129, 84, 129, -1, 93, 129,
4546 -1, 92, 129, -1, 76, 144, -1, 81, 129, -1,
4547 80, 129, -1, 87, 129, -1, 129, 79, 129, -1,
4548 129, 78, 129, -1, 129, 80, 129, -1, 129, 81,
4549 129, -1, 129, 82, 129, -1, 129, 83, 129, -1,
4550 10, -1, 11, -1, 86, -1, 87, -1, 8, -1,
4551 9, -1, 6, -1, 144, -1, -1, 3, -1, 4,
4552 -1, 23, 129, 125, 99, 148, 151, 28, 125, -1,
4553 149, -1, -1, 150, -1, 149, 150, -1, 27, 129,
4554 125, 99, -1, 26, 125, 99, -1, -1, 24, 144,
4555 125, 99, 151, 28, 125, -1, 25, 144, 125, 99,
4556 151, 28, 125, -1, 155, 125, -1, 156, 125, -1,
4557 144, 156, -1, 56, 144, 156, -1, 39, 144, 156,
4558 -1, 56, 39, 144, 156, -1, 39, 56, 144, 156,
4559 -1, 157, 158, -1, 157, -1, 157, 68, 129, 69,
4560 -1, 14, -1, 15, -1, 16, -1, 17, -1, 52,
4561 144, -1, 71, 144, -1, 131, -1, 158, 70, 131,
4562 -1, 29, 161, 125, -1, 30, 161, 125, -1, 4,
4563 -1, 5, -1, 31, 144, 163, 125, 99, 34, 125,
4564 -1, 166, -1, -1, 144, 165, 125, -1, 158, -1,
4565 -1, 144, -1, 166, 70, 144, -1, 144, 36, 131,
4566 125, -1, 144, 64, 131, 125, -1, 37, 144, 125,
4567 -1, 37, 144, 131, 125, -1, 39, 166, 125, -1,
4568 40, 166, 58, 173, 172, 125, -1, 59, 144, -1,
4569 -1, 157, -1, 144, -1, 48, -1, 13, -1, 175,
4570 -1, 176, -1, 144, 176, -1, 56, 144, 176, -1,
4571 39, 144, 176, -1, 56, 39, 144, 176, -1, 39,
4572 56, 144, 176, -1, 177, 133, 125, -1, 18, -1,
4576 0, 110, 110, 114, 115, 119, 120, 127, 128, 132,
4577 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
4578 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
4579 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
4580 163, 167, 171, 175, 179, 183, 187, 188, 192, 193,
4581 197, 201, 205, 209, 213, 217, 221, 222, 226, 227,
4582 231, 235, 236, 240, 244, 248, 249, 252, 256, 260,
4583 264, 265, 269, 273, 277, 278, 279, 280, 281, 282,
4584 283, 284, 285, 289, 290, 291, 292, 293, 294, 295,
4585 296, 297, 298, 299, 300, 301, 302, 303, 307, 308,
4586 309, 313, 314, 318, 319, 323, 324, 328, 332, 333,
4587 337, 341, 342, 346, 347, 351, 352, 356, 360, 361,
4588 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
4589 372, 373, 374, 375, 379, 380, 381, 382, 383, 384,
4590 388, 389, 390, 391, 392, 393, 397, 401, 402, 406,
4591 407, 411, 415, 416, 420, 421, 425, 429, 430, 434,
4592 438, 442, 443, 447, 448, 449, 450, 451, 455, 456,
4593 457, 461, 462, 463, 464, 465, 466, 470, 471, 475,
4594 479, 483, 484, 488, 492, 493, 497, 501, 502, 506,
4595 507, 511, 515, 519, 520, 524, 528, 532, 533, 537,
4596 538, 539, 540, 544, 545, 549, 550, 551, 552, 553,
4600 "ZEROPAGE", "'\\n'", "':'", "'@@'", "SCOPE_OP", "'A'", "'X'", "'Y'",
4601 "'='", "'$'", "'{'", "'}'", "'['", "']'", "','", "'.'", "'#'", "HI_OP",
4602 "LO_OP", "'|'", "'^'", "'&'", "NE_OP", "EQ_OP", "'>'", "'<'", "GE_OP",
4603 "LE_OP", "SHR_OP", "SHL_OP", "'+'", "'-'", "UMINUS", "'*'", "'/'", "'%'",
4604 "'!'", "'~'", "'('", "')'", "$accept", "assembly_unit", "end_opt",
4605 "statement_list", "labelable_statement", "statement", "align_statement",
4606 "warning_statement", "error_statement", "message_statement",
4607 "label_statement", "label_addr_part_opt", "label_type_part_opt",
4608 "while_statement", "rept_statement", "proc_statement",
4609 "struc_decl_statement", "union_decl_statement", "enum_decl_statement",
4610 "enum_item_list", "enum_item", "record_decl_statement",
4611 "record_field_list", "record_field", "charmap_statement",
4612 "dataseg_statement", "codeseg_statement", "null_statement", "label_decl",
4613 "line_tail", "newline", "instruction_statement", "instruction",
4614 "expression", "indexed_identifier", "extended_expression", "sizeof_arg",
4617 305, 306, 307, 308, 309, 310, 311, 10, 58, 64,
4618 312, 65, 88, 89, 61, 36, 123, 125, 91, 93,
4619 44, 46, 35, 313, 314, 124, 94, 38, 315, 316,
4620 62, 60, 317, 318, 319, 320, 43, 45, 321, 42,
4621 47, 37, 33, 126, 40, 41
4624 0, 96, 97, 98, 98, 99, 99, 100, 100, 101,
4625 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
4626 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
4627 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
4628 101, 102, 103, 104, 105, 106, 107, 107, 108, 108,
4629 109, 110, 111, 112, 113, 114, 115, 115, 116, 116,
4630 117, 118, 118, 119, 120, 121, 121, 122, 123, 124,
4631 125, 125, 126, 127, 128, 128, 128, 128, 128, 128,
4632 128, 128, 128, 129, 129, 129, 129, 129, 129, 129,
4633 129, 129, 129, 129, 129, 129, 129, 129, 130, 130,
4634 130, 131, 131, 132, 132, 133, 133, 134, 135, 135,
4635 136, 137, 137, 138, 138, 139, 139, 140, 141, 141,
4636 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
4637 141, 141, 141, 141, 142, 142, 142, 142, 142, 142,
4638 143, 143, 143, 143, 143, 143, 144, 145, 145, 146,
4639 146, 147, 148, 148, 149, 149, 150, 151, 151, 152,
4640 153, 154, 154, 155, 155, 155, 155, 155, 156, 156,
4641 156, 157, 157, 157, 157, 157, 157, 158, 158, 159,
4642 160, 161, 161, 162, 163, 163, 164, 165, 165, 166,
4643 166, 167, 168, 169, 169, 170, 171, 172, 172, 173,
4644 173, 173, 173, 174, 174, 175, 175, 175, 175, 175,
4648 2, 4, 3, 3, 3, 5, 2, 0, 2, 0,
4649 6, 6, 6, 6, 6, 6, 1, 2, 1, 2,
4650 4, 1, 3, 3, 3, 2, 3, 2, 1, 1,
4651 1, 1, 1, 2, 1, 2, 3, 2, 4, 4,
4652 6, 6, 4, 1, 2, 1, 1, 1, 1, 1,
4653 1, 1, 3, 1, 1, 1, 1, 2, 1, 4,
4654 4, 1, 1, 1, 1, 1, 0, 3, 3, 3,
4655 3, 1, 0, 1, 3, 1, 0, 1, 3, 3,
4656 3, 3, 3, 3, 3, 3, 3, 3, 2, 2,
4657 2, 2, 2, 2, 3, 3, 3, 3, 3, 3,
4658 1, 1, 1, 1, 1, 1, 1, 1, 0, 1,
4659 1, 8, 1, 0, 1, 2, 4, 3, 0, 7,
4660 7, 2, 2, 2, 3, 3, 4, 4, 2, 1,
4661 4, 1, 1, 1, 1, 2, 2, 1, 3, 3,
4662 3, 1, 1, 7, 1, 0, 3, 1, 0, 1,
4663 3, 4, 4, 3, 4, 3, 6, 2, 0, 1,
4664 1, 1, 1, 1, 1, 2, 3, 3, 4, 4,
4668 0, 0, 146, 144, 145, 140, 141, 74, 0, 171,
4669 172, 173, 174, 211, 212, 213, 0, 0, 0, 0,
4672 0, 0, 148, 0, 0, 0, 0, 0, 0, 0,
4673 0, 72, 71, 0, 142, 143, 0, 0, 5, 8,
4674 38, 35, 36, 34, 33, 32, 31, 30, 26, 27,
4675 28, 29, 25, 23, 24, 39, 0, 68, 70, 20,
4676 0, 69, 188, 9, 10, 11, 21, 0, 0, 169,
4677 14, 15, 12, 13, 16, 17, 37, 18, 19, 22,
4678 203, 204, 106, 40, 149, 150, 117, 95, 96, 0,
4679 0, 75, 89, 0, 0, 0, 0, 0, 93, 94,
4680 0, 0, 0, 77, 83, 85, 86, 87, 90, 91,
4681 98, 88, 47, 0, 65, 67, 0, 0, 0, 181,
4682 182, 0, 0, 185, 0, 0, 189, 0, 0, 0,
4683 189, 0, 0, 0, 0, 147, 0, 0, 0, 0,
4684 175, 0, 0, 0, 0, 0, 176, 1, 0, 2,
4685 6, 7, 73, 0, 0, 112, 101, 177, 102, 163,
4686 187, 0, 205, 161, 162, 0, 168, 105, 0, 84,
4687 103, 104, 97, 0, 0, 76, 130, 132, 131, 133,
4688 129, 128, 0, 0, 0, 0, 0, 0, 0, 0,
4691 0, 0, 0, 0, 0, 49, 66, 0, 0, 0,
4692 179, 180, 0, 184, 0, 0, 0, 0, 193, 0,
4693 0, 165, 207, 195, 0, 64, 0, 0, 0, 61,
4694 0, 0, 0, 44, 42, 43, 0, 164, 206, 3,
4695 0, 0, 115, 0, 111, 113, 0, 186, 0, 210,
4696 82, 0, 92, 78, 79, 124, 125, 123, 135, 134,
4697 136, 137, 138, 139, 127, 126, 118, 119, 120, 121,
4698 122, 109, 108, 98, 107, 0, 0, 46, 0, 0,
4699 0, 0, 0, 0, 0, 0, 190, 41, 194, 167,
4700 209, 202, 201, 200, 199, 198, 0, 0, 0, 60,
4701 0, 0, 56, 0, 58, 0, 166, 208, 191, 192,
4702 110, 116, 178, 170, 0, 0, 99, 100, 48, 45,
4703 0, 158, 152, 154, 0, 0, 0, 0, 0, 0,
4704 0, 0, 0, 0, 62, 63, 0, 57, 59, 0,
4705 114, 81, 80, 0, 0, 155, 0, 0, 0, 0,
4706 51, 50, 197, 196, 53, 54, 55, 52, 0, 0,
4707 0, 159, 160, 183, 0, 151
4710 -1, 46, 159, 47, 48, 49, 50, 51, 52, 53,
4711 54, 215, 289, 55, 56, 57, 58, 59, 60, 311,
4712 312, 61, 238, 239, 62, 63, 64, 65, 66, 67,
4713 68, 69, 70, 166, 114, 167, 179, 178, 115, 116,
4714 168, 253, 254, 255, 117, 118, 119, 71, 120, 146,
4715 121, 73, 331, 332, 333, 335, 74, 75, 76, 77,
4716 78, 79, 170, 80, 81, 131, 82, 222, 83, 171,
4717 137, 84, 85, 86, 87, 88, 341, 305, 89, 90,
4721 #define YYPACT_NINF -272
4724 1785, 20, -272, -272, -272, -272, -272, 87, 6, -272,
4725 -272, -272, -272, -272, -272, -272, 26, 20, 794, 6,
4726 6, 84, 84, 6, 794, 794, 6, 6, 3, 6,
4727 84, 6, 6, 6, 6, 6, 6, 794, 794, 794,
4728 5, -272, -272, 6, -272, -272, 37, 883, -272, -272,
4729 -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
4730 -272, -272, -272, -272, -272, -272, 1845, -272, -272, -272,
4731 20, -272, 532, -272, -272, -272, -272, 20, 20, 636,
4732 -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
4733 -272, -272, 794, -272, -272, -272, -272, -272, -272, 113,
4734 6, -272, -272, 794, 794, 6, 794, 794, -272, 107,
4735 794, 794, 794, 1860, -10, -272, -272, -272, -272, -272,
4736 -30, -272, 9, 20, -272, -272, 307, 20, 20, -272,
4737 -272, 20, 20, 6, 307, 307, -272, 702, 572, 6,
4738 213, -12, -48, 20, 20, -272, 20, 6, 20, 20,
4739 -272, 307, 307, 307, 6, 213, -272, -272, 20, -272,
4740 -272, -272, -272, 762, 762, 668, 480, -272, -272, -272,
4741 -3, 20, -272, -272, -272, 794, -3, 480, 20, -272,
4742 -272, -272, -272, 32, 365, 480, -272, 480, 480, 34,
4743 -272, -272, 1877, 35, 794, 794, 794, 794, 794, 794,
4744 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
4745 6, 6, 794, 794, 109, 74, -272, 1785, 1785, 1785,
4746 -272, -272, 20, 64, 1785, 1785, 6, 307, -272, 20,
4747 213, -272, -272, -272, 1, -272, 1785, 1785, 11, -272,
4748 77, 6, 1785, -272, -272, -272, 213, -272, -272, -272,
4749 20, 20, -272, 73, 75, -272, 762, -272, 422, -272,
4750 76, 82, -272, -272, -272, 866, 948, 782, 319, 319,
4751 17, 17, 17, 17, 31, 31, 34, 34, -272, -272,
4752 -272, -10, -272, -55, -272, 1842, 1898, -272, 1, 20,
4753 965, 1129, 1129, 1785, 1211, 1293, -272, -272, -272, -272,
4754 -272, -272, -272, -272, -272, 90, 1375, 1457, 6, -272,
4755 794, 18, -272, -16, -272, 1539, -272, -272, -272, -272,
4756 -272, 762, -272, -272, 88, 81, -272, -272, -272, -272,
4757 794, 127, 129, -272, 20, 134, 136, 1621, 20, 20,
4758 6, 20, 20, 20, -272, 480, 20, -272, -272, 20,
4759 -272, -272, -272, 307, 138, -272, 1785, 20, 20, 20,
4760 -272, -272, -272, -272, -272, -272, -272, -272, 1785, 20,
4761 1703, -272, -272, -272, 1047, -272
4764 -272, -272, -272, -162, 7, 103, -272, -272, -272, -272,
4765 -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
4766 -141, -272, -272, -137, -272, -272, -272, -272, -272, 125,
4767 -272, -272, -272, 321, -35, -113, -272, -272, 78, -28,
4768 -272, -272, -272, -138, -272, -272, -272, -272, 0, -272,
4769 -272, -272, -272, -272, -147, -271, -272, -272, -272, -272,
4770 -70, -98, 108, -272, -272, 57, -272, -272, -272, -272,
4771 -24, -272, -235, -272, -272, -272, -272, -102, -272, -272,
4775 #define YYTABLE_NINF -159
4778 72, 181, 169, 172, 141, 142, 314, 2, 122, 2,
4779 234, 2, 2, 212, 301, 9, 10, 11, 12, 127,
4780 128, 336, 226, 133, 2, 229, 136, 138, 140, 136,
4781 211, 144, 145, 147, 148, 149, 150, 157, 212, 213,
4782 155, 41, 42, 156, 154, 41, 42, 72, 164, 302,
4783 250, 251, 252, 36, 160, 290, 291, 292, 226, 139,
4784 354, 210, 294, 295, 213, 346, 72, 256, 41, 42,
4785 231, 232, 43, 214, 306, 307, 314, 41, 42, 132,
4786 315, 308, 123, 41, 42, 247, 248, 143, 129, 130,
4787 94, 95, 211, 2, 96, 97, 98, 263, 264, 180,
4788 183, 203, 204, 205, 206, 186, 207, 208, 209, 223,
4789 94, 95, 287, 2, 96, 97, 98, 205, 206, 2,
4790 207, 208, 209, 207, 208, 209, 93, 9, 10, 11,
4791 12, 337, 288, 136, 226, 310, 304, 99, 100, 230,
4792 320, 124, 125, 322, 325, 321, 324, 240, 101, 340,
4793 352, 351, 102, 334, 246, 103, 330, 99, 100, 104,
4794 299, 300, 357, 105, 358, 36, 369, 106, 107, 161,
4795 347, 344, 102, 108, 109, 281, 316, 317, 182, 110,
4796 111, 112, 282, 350, 43, 355, 328, 176, 0, 0,
4797 304, 0, 0, 0, 370, 162, 0, 0, 0, 110,
4798 111, 112, 173, 174, 0, 0, 374, 0, 252, 0,
4799 283, 284, 0, 0, 0, 0, 0, 72, 72, 72,
4800 0, 0, 0, 0, 72, 72, 296, 9, 10, 11,
4801 12, 13, 14, 15, 303, 0, 72, 72, 0, 0,
4802 0, 313, 72, 0, 0, 0, 0, 0, 216, 0,
4803 0, 217, 218, 219, 0, 0, 220, 221, 0, 224,
4804 225, 0, 0, 228, 0, 36, 233, 0, 235, 236,
4805 0, 237, 0, 241, 242, 0, 243, 244, 245, 0,
4806 0, 0, 0, 249, 43, 0, 0, 0, 303, 0,
4807 72, 72, 72, 72, 72, 72, 257, 160, 160, 160,
4808 0, 160, 160, 259, 0, 0, 72, 72, 240, 0,
4809 0, 313, 0, 160, 160, 72, 0, 0, 0, 0,
4810 0, 0, 160, 0, 0, 0, 0, 0, 113, 0,
4811 0, 0, 0, 0, 0, 0, 0, 72, 0, 126,
4812 362, 0, 0, 0, 160, 134, 135, 293, 0, 0,
4813 0, 0, 297, 0, 298, 0, 72, 0, 151, 152,
4814 153, 0, 0, 309, 41, 42, 0, 0, 72, 0,
4815 72, 0, 0, 0, 72, 318, 319, 160, 0, 0,
4816 0, 160, 194, 195, 196, 197, 198, 199, 200, 201,
4817 202, 203, 204, 205, 206, 0, 207, 208, 209, 199,
4818 200, 201, 202, 203, 204, 205, 206, 0, 207, 208,
4819 209, 0, 0, 177, 329, 0, 0, 0, 0, 0,
4820 0, 0, 0, 0, 184, 185, 0, 187, 188, 0,
4821 189, 190, 191, 192, 260, 261, 0, 0, 348, 0,
4822 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
4823 204, 205, 206, 0, 207, 208, 209, 0, 227, 356,
4824 0, 0, 0, 360, 361, 0, 363, 364, 365, 0,
4825 0, 366, 0, 0, 367, 0, 0, 0, 368, 0,
4826 0, 0, 371, 372, 373, 0, 0, 0, 0, 0,
4827 0, 323, 0, 0, 375, 0, 258, 194, 195, 196,
4830 0, 207, 208, 209, 0, 265, 266, 267, 268, 269,
4831 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
4832 280, 0, 0, 285, 286, 94, 95, 0, 2, 96,
4833 97, 98, 0, 0, 0, 0, 9, 10, 11, 12,
4834 13, 14, 15, 0, 0, 194, 195, 196, 197, 198,
4835 199, 200, 201, 202, 203, 204, 205, 206, 163, 207,
4836 208, 209, 0, 0, 0, 94, 95, 0, 2, 96,
4837 97, 98, 99, 100, 36, 0, 0, 0, 0, 0,
4838 0, 0, 0, 0, 0, 0, 164, 102, 165, 0,
4839 0, 0, 0, 43, 0, 0, 0, 0, 105, 0,
4840 0, 0, 106, 107, 0, 0, 0, 0, 108, 109,
4841 0, 0, 99, 100, 110, 111, 112, 0, 0, 41,
4842 42, 345, 0, 0, 0, 0, 0, 102, 165, 94,
4843 95, 0, 2, 96, 97, 98, 0, 0, 105, 0,
4844 0, 353, 106, 107, 0, 0, 0, 0, 108, 109,
4845 0, 0, 0, 0, 110, 111, 112, 0, 0, 0,
4846 0, 94, 95, 0, 2, 96, 97, 98, 0, 0,
4847 0, 0, 0, 0, 0, 0, 99, 100, 0, 0,
4850 0, 102, 165, 0, 175, 94, 95, 0, 2, 96,
4851 97, 98, 105, 0, 0, 0, 106, 107, 99, 100,
4852 0, 0, 108, 109, 0, 0, 0, 0, 110, 111,
4853 112, 0, 0, 102, 165, 0, 0, 0, -116, 0,
4854 0, 0, 0, 0, 105, 0, 0, 0, 106, 107,
4855 0, 0, 99, 100, 108, 109, 0, 0, 0, 0,
4856 110, 111, 112, 0, 0, 94, 95, 102, 2, 96,
4857 97, 98, 226, 0, 0, 0, 0, 0, 105, 0,
4858 0, 0, 106, 107, 0, 0, 0, 0, 108, 109,
4859 0, 0, 0, 0, 110, 111, 112, 94, 95, 0,
4860 2, 96, 97, 98, 0, 0, 0, 0, 0, 0,
4861 0, 0, 99, 100, 0, 0, 0, 0, 0, 0,
4862 0, 0, 0, 0, 0, 0, 0, 102, 165, 0,
4863 0, 0, 0, 0, 0, 0, 0, 0, 105, 0,
4864 0, 0, 106, 107, 99, 100, 0, 0, 108, 109,
4865 0, 0, 0, 0, 110, 111, 112, 0, 0, 102,
4866 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
4867 105, 207, 208, 209, 106, 107, 0, 0, 0, 0,
4868 108, 109, 0, -4, 1, 0, 110, 111, 112, 2,
4869 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
4870 12, 13, 14, 15, 16, 17, 18, 19, 20, 0,
4871 0, 0, 21, 22, 23, 24, 25, 0, 26, 0,
4872 27, 158, 28, 29, 30, 31, 32, 0, 33, 34,
4873 0, 35, 0, 0, 0, 36, 37, 38, 39, 40,
4874 41, 42, 195, 196, 197, 198, 199, 200, 201, 202,
4875 203, 204, 205, 206, 43, 207, 208, 209, 0, 0,
4876 0, 0, 0, 0, 0, 0, 1, 0, 0, 44,
4877 45, 2, 0, 3, 4, 5, 6, 7, 8, 9,
4880 20, -153, 330, -153, 21, 22, 23, 24, 25, 0,
4881 26, 0, 27, 0, 28, 29, 30, 31, 32, 0,
4884 39, 40, 41, 42, 0, 196, 197, 198, 199, 200,
4885 201, 202, 203, 204, 205, 206, 43, 207, 208, 209,
4888 0, 44, 45, 2, 0, 3, 4, 5, 6, 7,
4891 18, 19, 20, -156, -156, -156, 21, 22, 23, 24,
4892 25, 0, 26, 0, 27, 0, 28, 29, 30, 31,
4895 37, 38, 39, 40, 41, 42, 0, 0, 0, 0,
4896 0, 0, 0, 0, 0, 0, 0, 0, 43, 0,
4899 1, 0, 0, 44, 45, 2, 0, 3, 4, 5,
4900 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
4901 16, 17, 18, 19, 20, 334, 0, -158, 21, 22,
4902 23, 24, 25, 0, 26, 0, 27, 0, 28, 29,
4903 30, 31, 32, 0, 33, 34, 0, 35, 0, 0,
4904 0, 36, 37, 38, 39, 40, 41, 42, 0, 0,
4905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4906 43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4907 0, 0, 1, 0, 0, 44, 45, 2, 0, 3,
4908 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
4909 14, 15, 16, 17, 18, 19, 20, 0, 0, 0,
4910 21, 22, 23, 24, 25, 338, 26, 0, 27, 0,
4911 28, 29, 30, 31, 32, 0, 33, 34, 0, 35,
4912 0, 0, 0, 36, 37, 38, 39, 40, 41, 42,
4915 0, 0, 43, 0, 0, 0, 0, 0, 0, 0,
4916 0, 0, 0, 0, 1, 0, 0, 44, 45, 2,
4919 0, 0, 21, 22, 23, 24, 25, 339, 26, 0,
4920 27, 0, 28, 29, 30, 31, 32, 0, 33, 34,
4923 41, 42, 0, 0, 0, 0, 0, 0, 0, 0,
4924 0, 0, 0, 0, 43, 0, 0, 0, 0, 0,
4925 0, 0, 0, 0, 0, 0, 1, 0, 0, 44,
4926 45, 2, 0, 3, 4, 5, 6, 7, 8, 9,
4927 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
4928 20, 0, 0, 0, 21, 22, 23, 24, 25, 0,
4929 26, 0, 27, 0, 28, 29, 30, 31, 32, 342,
4930 33, 34, 0, 35, 0, 0, 0, 36, 37, 38,
4931 39, 40, 41, 42, 0, 0, 0, 0, 0, 0,
4932 0, 0, 0, 0, 0, 0, 43, 0, 0, 0,
4933 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
4934 0, 44, 45, 2, 0, 3, 4, 5, 6, 7,
4935 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
4936 18, 19, 20, 0, 0, 0, 21, 22, 23, 24,
4937 25, 0, 26, 0, 27, 0, 28, 29, 30, 31,
4938 32, 343, 33, 34, 0, 35, 0, 0, 0, 36,
4939 37, 38, 39, 40, 41, 42, 0, 0, 0, 0,
4940 0, 0, 0, 0, 0, 0, 0, 0, 43, 0,
4943 1, 0, 0, 44, 45, 2, 0, 3, 4, 5,
4946 30, 31, 32, 0, 33, 34, 0, 35, 349, 0,
4947 0, 36, 37, 38, 39, 40, 41, 42, 0, 0,
4948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4949 43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4950 0, 0, 1, 0, 0, 44, 45, 2, 0, 3,
4951 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
4952 14, 15, 16, 17, 18, 19, 20, 0, 0, 0,
4953 21, 22, 23, 24, 25, 359, 26, 0, 27, 0,
4954 28, 29, 30, 31, 32, 0, 33, 34, 0, 35,
4955 0, 0, 0, 36, 37, 38, 39, 40, 41, 42,
4958 0, 0, 43, 0, 0, 0, 0, 0, 0, 0,
4959 0, 0, 0, 0, 1, 0, 0, 44, 45, 2,
4960 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
4961 12, 13, 14, 15, 16, 17, 18, 19, 20, 0,
4962 0, -157, 21, 22, 23, 24, 25, 0, 26, 0,
4963 27, 0, 28, 29, 30, 31, 32, 0, 33, 34,
4964 0, 35, 0, 0, 0, 36, 37, 38, 39, 40,
4965 41, 42, 0, 0, 0, 0, 0, 0, 0, 0,
4966 0, 0, 0, 0, 43, 0, 0, 0, 0, 0,
4967 0, 0, 0, 0, 0, 0, 1, 0, 0, 44,
4968 45, 2, 0, 3, 4, 5, 6, 7, 8, 9,
4971 20, 0, 0, 0, 21, 22, 23, 24, 25, 0,
4974 39, 40, 41, 42, 0, 0, 1, 0, 0, 0,
4975 0, 2, 0, 0, 0, 0, 43, 7, 8, 9,
4976 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
4977 20, 44, 45, 0, 21, 22, 23, 24, 25, 0,
4978 26, 0, 27, 0, 28, 29, 30, 31, 32, 0,
4979 33, 34, 0, 35, 0, 0, 0, 36, 37, 38,
4980 39, 40, 41, 42, 0, 0, 0, 0, 0, 0,
4981 0, 326, 0, 0, 0, 0, 43, 194, 195, 196,
4982 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
4983 193, 207, 208, 209, 0, 194, 195, 196, 197, 198,
4984 199, 200, 201, 202, 203, 204, 205, 206, 0, 207,
4985 208, 209, 194, 195, 196, 197, 198, 199, 200, 201,
4986 202, 203, 204, 205, 206, 0, 207, 208, 209, 0,
4987 0, 0, 262, 194, 195, 196, 197, 198, 199, 200,
4988 201, 202, 203, 204, 205, 206, 0, 207, 208, 209,
4992 0, 99, 72, 72, 28, 29, 241, 6, 8, 6,
4993 58, 6, 6, 68, 13, 14, 15, 16, 17, 19,
4994 20, 292, 70, 23, 6, 138, 26, 27, 28, 29,
4995 60, 31, 32, 33, 34, 35, 36, 0, 68, 94,
4996 40, 57, 58, 43, 39, 57, 58, 47, 64, 48,
4997 163, 164, 165, 52, 47, 217, 218, 219, 70, 56,
4998 331, 71, 224, 225, 94, 47, 66, 70, 57, 58,
4999 140, 140, 71, 64, 236, 237, 311, 57, 58, 22,
5000 242, 70, 56, 57, 58, 155, 155, 30, 4, 5,
5001 3, 4, 60, 6, 7, 8, 9, 62, 63, 99,
5002 100, 84, 85, 86, 87, 105, 89, 90, 91, 133,
5003 3, 4, 3, 6, 7, 8, 9, 86, 87, 6,
5004 89, 90, 91, 89, 90, 91, 1, 14, 15, 16,
5005 17, 293, 58, 133, 70, 58, 234, 50, 51, 139,
5006 67, 16, 17, 256, 62, 70, 70, 147, 61, 59,
5007 69, 63, 65, 26, 154, 68, 27, 50, 51, 72,
5008 230, 230, 28, 76, 28, 52, 28, 80, 81, 66,
5009 311, 308, 65, 86, 87, 210, 246, 246, 100, 92,
5010 93, 94, 210, 321, 71, 332, 288, 79, -1, -1,
5011 288, -1, -1, -1, 356, 70, -1, -1, -1, 92,
5012 93, 94, 77, 78, -1, -1, 368, -1, 321, -1,
5013 210, 211, -1, -1, -1, -1, -1, 217, 218, 219,
5014 -1, -1, -1, -1, 224, 225, 226, 14, 15, 16,
5015 17, 18, 19, 20, 234, -1, 236, 237, -1, -1,
5016 -1, 241, 242, -1, -1, -1, -1, -1, 123, -1,
5017 -1, 126, 127, 128, -1, -1, 131, 132, -1, 134,
5018 135, -1, -1, 138, -1, 52, 141, -1, 143, 144,
5019 -1, 146, -1, 148, 149, -1, 151, 152, 153, -1,
5020 -1, -1, -1, 158, 71, -1, -1, -1, 288, -1,
5021 290, 291, 292, 293, 294, 295, 171, 290, 291, 292,
5022 -1, 294, 295, 178, -1, -1, 306, 307, 308, -1,
5023 -1, 311, -1, 306, 307, 315, -1, -1, -1, -1,
5024 -1, -1, 315, -1, -1, -1, -1, -1, 7, -1,
5025 -1, -1, -1, -1, -1, -1, -1, 337, -1, 18,
5026 340, -1, -1, -1, 337, 24, 25, 222, -1, -1,
5027 -1, -1, 227, -1, 229, -1, 356, -1, 37, 38,
5028 39, -1, -1, 238, 57, 58, -1, -1, 368, -1,
5029 370, -1, -1, -1, 374, 250, 251, 370, -1, -1,
5030 -1, 374, 75, 76, 77, 78, 79, 80, 81, 82,
5031 83, 84, 85, 86, 87, -1, 89, 90, 91, 80,
5032 81, 82, 83, 84, 85, 86, 87, -1, 89, 90,
5033 91, -1, -1, 92, 289, -1, -1, -1, -1, -1,
5034 -1, -1, -1, -1, 103, 104, -1, 106, 107, -1,
5035 109, 110, 111, 112, 69, 70, -1, -1, 313, -1,
5036 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
5037 85, 86, 87, -1, 89, 90, 91, -1, 137, 334,
5038 -1, -1, -1, 338, 339, -1, 341, 342, 343, -1,
5039 -1, 346, -1, -1, 349, -1, -1, -1, 353, -1,
5040 -1, -1, 357, 358, 359, -1, -1, -1, -1, -1,
5041 -1, 69, -1, -1, 369, -1, 175, 75, 76, 77,
5042 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
5043 -1, 89, 90, 91, -1, 194, 195, 196, 197, 198,
5044 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
5045 209, -1, -1, 212, 213, 3, 4, -1, 6, 7,
5046 8, 9, -1, -1, -1, -1, 14, 15, 16, 17,
5047 18, 19, 20, -1, -1, 75, 76, 77, 78, 79,
5048 80, 81, 82, 83, 84, 85, 86, 87, 36, 89,
5049 90, 91, -1, -1, -1, 3, 4, -1, 6, 7,
5050 8, 9, 50, 51, 52, -1, -1, -1, -1, -1,
5051 -1, -1, -1, -1, -1, -1, 64, 65, 66, -1,
5052 -1, -1, -1, 71, -1, -1, -1, -1, 76, -1,
5053 -1, -1, 80, 81, -1, -1, -1, -1, 86, 87,
5054 -1, -1, 50, 51, 92, 93, 94, -1, -1, 57,
5055 58, 310, -1, -1, -1, -1, -1, 65, 66, 3,
5056 4, -1, 6, 7, 8, 9, -1, -1, 76, -1,
5057 -1, 330, 80, 81, -1, -1, -1, -1, 86, 87,
5058 -1, -1, -1, -1, 92, 93, 94, -1, -1, -1,
5059 -1, 3, 4, -1, 6, 7, 8, 9, -1, -1,
5060 -1, -1, -1, -1, -1, -1, 50, 51, -1, -1,
5063 -1, 65, 66, -1, 68, 3, 4, -1, 6, 7,
5064 8, 9, 76, -1, -1, -1, 80, 81, 50, 51,
5065 -1, -1, 86, 87, -1, -1, -1, -1, 92, 93,
5066 94, -1, -1, 65, 66, -1, -1, -1, 70, -1,
5067 -1, -1, -1, -1, 76, -1, -1, -1, 80, 81,
5068 -1, -1, 50, 51, 86, 87, -1, -1, -1, -1,
5069 92, 93, 94, -1, -1, 3, 4, 65, 6, 7,
5070 8, 9, 70, -1, -1, -1, -1, -1, 76, -1,
5071 -1, -1, 80, 81, -1, -1, -1, -1, 86, 87,
5072 -1, -1, -1, -1, 92, 93, 94, 3, 4, -1,
5075 -1, -1, 50, 51, -1, -1, -1, -1, -1, -1,
5076 -1, -1, -1, -1, -1, -1, -1, 65, 66, -1,
5077 -1, -1, -1, -1, -1, -1, -1, -1, 76, -1,
5078 -1, -1, 80, 81, 50, 51, -1, -1, 86, 87,
5079 -1, -1, -1, -1, 92, 93, 94, -1, -1, 65,
5080 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
5081 76, 89, 90, 91, 80, 81, -1, -1, -1, -1,
5082 86, 87, -1, 0, 1, -1, 92, 93, 94, 6,
5083 -1, 8, 9, 10, 11, 12, 13, 14, 15, 16,
5084 17, 18, 19, 20, 21, 22, 23, 24, 25, -1,
5085 -1, -1, 29, 30, 31, 32, 33, -1, 35, -1,
5086 37, 38, 39, 40, 41, 42, 43, -1, 45, 46,
5087 -1, 48, -1, -1, -1, 52, 53, 54, 55, 56,
5088 57, 58, 76, 77, 78, 79, 80, 81, 82, 83,
5089 84, 85, 86, 87, 71, 89, 90, 91, -1, -1,
5090 -1, -1, -1, -1, -1, -1, 1, -1, -1, 86,
5091 87, 6, -1, 8, 9, 10, 11, 12, 13, 14,
5094 25, 26, 27, 28, 29, 30, 31, 32, 33, -1,
5095 35, -1, 37, -1, 39, 40, 41, 42, 43, -1,
5098 55, 56, 57, 58, -1, 77, 78, 79, 80, 81,
5099 82, 83, 84, 85, 86, 87, 71, 89, 90, 91,
5102 -1, 86, 87, 6, -1, 8, 9, 10, 11, 12,
5105 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
5106 33, -1, 35, -1, 37, -1, 39, 40, 41, 42,
5109 53, 54, 55, 56, 57, 58, -1, -1, -1, -1,
5110 -1, -1, -1, -1, -1, -1, -1, -1, 71, -1,
5113 1, -1, -1, 86, 87, 6, -1, 8, 9, 10,
5114 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
5115 21, 22, 23, 24, 25, 26, -1, 28, 29, 30,
5116 31, 32, 33, -1, 35, -1, 37, -1, 39, 40,
5117 41, 42, 43, -1, 45, 46, -1, 48, -1, -1,
5118 -1, 52, 53, 54, 55, 56, 57, 58, -1, -1,
5119 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5120 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5121 -1, -1, 1, -1, -1, 86, 87, 6, -1, 8,
5122 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
5123 19, 20, 21, 22, 23, 24, 25, -1, -1, -1,
5124 29, 30, 31, 32, 33, 34, 35, -1, 37, -1,
5125 39, 40, 41, 42, 43, -1, 45, 46, -1, 48,
5126 -1, -1, -1, 52, 53, 54, 55, 56, 57, 58,
5129 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
5130 -1, -1, -1, -1, 1, -1, -1, 86, 87, 6,
5133 -1, -1, 29, 30, 31, 32, 33, 34, 35, -1,
5134 37, -1, 39, 40, 41, 42, 43, -1, 45, 46,
5137 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
5138 -1, -1, -1, -1, 71, -1, -1, -1, -1, -1,
5139 -1, -1, -1, -1, -1, -1, 1, -1, -1, 86,
5140 87, 6, -1, 8, 9, 10, 11, 12, 13, 14,
5141 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
5142 25, -1, -1, -1, 29, 30, 31, 32, 33, -1,
5143 35, -1, 37, -1, 39, 40, 41, 42, 43, 44,
5144 45, 46, -1, 48, -1, -1, -1, 52, 53, 54,
5145 55, 56, 57, 58, -1, -1, -1, -1, -1, -1,
5146 -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
5147 -1, -1, -1, -1, -1, -1, -1, -1, 1, -1,
5148 -1, 86, 87, 6, -1, 8, 9, 10, 11, 12,
5149 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
5150 23, 24, 25, -1, -1, -1, 29, 30, 31, 32,
5151 33, -1, 35, -1, 37, -1, 39, 40, 41, 42,
5152 43, 44, 45, 46, -1, 48, -1, -1, -1, 52,
5153 53, 54, 55, 56, 57, 58, -1, -1, -1, -1,
5154 -1, -1, -1, -1, -1, -1, -1, -1, 71, -1,
5157 1, -1, -1, 86, 87, 6, -1, 8, 9, 10,
5160 -1, 52, 53, 54, 55, 56, 57, 58, -1, -1,
5163 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5164 -1, -1, 1, -1, -1, 86, 87, 6, -1, 8,
5165 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
5166 19, 20, 21, 22, 23, 24, 25, -1, -1, -1,
5167 29, 30, 31, 32, 33, 34, 35, -1, 37, -1,
5168 39, 40, 41, 42, 43, -1, 45, 46, -1, 48,
5169 -1, -1, -1, 52, 53, 54, 55, 56, 57, 58,
5170 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5171 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
5172 -1, -1, -1, -1, 1, -1, -1, 86, 87, 6,
5173 -1, 8, 9, 10, 11, 12, 13, 14, 15, 16,
5174 17, 18, 19, 20, 21, 22, 23, 24, 25, -1,
5175 -1, 28, 29, 30, 31, 32, 33, -1, 35, -1,
5176 37, -1, 39, 40, 41, 42, 43, -1, 45, 46,
5177 -1, 48, -1, -1, -1, 52, 53, 54, 55, 56,
5178 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
5179 -1, -1, -1, -1, 71, -1, -1, -1, -1, -1,
5180 -1, -1, -1, -1, -1, -1, 1, -1, -1, 86,
5181 87, 6, -1, 8, 9, 10, 11, 12, 13, 14,
5184 25, -1, -1, -1, 29, 30, 31, 32, 33, -1,
5187 55, 56, 57, 58, -1, -1, 1, -1, -1, -1,
5188 -1, 6, -1, -1, -1, -1, 71, 12, 13, 14,
5189 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
5190 25, 86, 87, -1, 29, 30, 31, 32, 33, -1,
5191 35, -1, 37, -1, 39, 40, 41, 42, 43, -1,
5192 45, 46, -1, 48, -1, -1, -1, 52, 53, 54,
5193 55, 56, 57, 58, -1, -1, -1, -1, -1, -1,
5194 -1, 69, -1, -1, -1, -1, 71, 75, 76, 77,
5195 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
5196 70, 89, 90, 91, -1, 75, 76, 77, 78, 79,
5197 80, 81, 82, 83, 84, 85, 86, 87, -1, 89,
5198 90, 91, 75, 76, 77, 78, 79, 80, 81, 82,
5199 83, 84, 85, 86, 87, -1, 89, 90, 91, -1,
5200 -1, -1, 95, 75, 76, 77, 78, 79, 80, 81,
5201 82, 83, 84, 85, 86, 87, -1, 89, 90, 91,
5205 56, 57, 58, 71, 86, 87, 97, 99, 100, 101,
5206 102, 103, 104, 105, 106, 109, 110, 111, 112, 113,
5207 114, 117, 120, 121, 122, 123, 124, 125, 126, 127,
5208 128, 143, 144, 147, 152, 153, 154, 155, 156, 157,
5209 159, 160, 162, 164, 167, 168, 169, 170, 171, 174,
5210 175, 176, 177, 125, 3, 4, 7, 8, 9, 50,
5211 51, 61, 65, 68, 72, 76, 80, 81, 86, 87,
5212 92, 93, 94, 129, 130, 134, 135, 140, 141, 142,
5213 144, 146, 144, 56, 125, 125, 129, 144, 144, 4,
5214 5, 161, 161, 144, 129, 129, 144, 166, 144, 56,
5215 144, 166, 166, 161, 144, 144, 145, 144, 144, 144,
5216 144, 129, 129, 129, 39, 144, 144, 0, 38, 98,
5217 100, 101, 125, 36, 64, 66, 129, 131, 136, 156,
5218 158, 165, 176, 125, 125, 68, 158, 129, 133, 132,
5219 144, 157, 134, 144, 129, 129, 144, 129, 129, 129,
5220 129, 129, 129, 70, 75, 76, 77, 78, 79, 80,
5221 81, 82, 83, 84, 85, 86, 87, 89, 90, 91,
5222 71, 60, 68, 94, 64, 107, 125, 125, 125, 125,
5223 125, 125, 163, 166, 125, 125, 70, 129, 125, 131,
5224 144, 156, 176, 125, 58, 125, 125, 125, 118, 119,
5225 144, 125, 125, 125, 125, 125, 144, 156, 176, 125,
5226 131, 131, 131, 137, 138, 139, 70, 125, 129, 125,
5227 69, 70, 95, 62, 63, 129, 129, 129, 129, 129,
5228 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
5229 129, 130, 135, 144, 144, 129, 129, 3, 58, 108,
5230 99, 99, 99, 125, 99, 99, 144, 125, 125, 156,
5231 176, 13, 48, 144, 157, 173, 99, 99, 70, 125,
5232 58, 115, 116, 144, 168, 99, 156, 176, 125, 125,
5233 67, 70, 131, 69, 70, 62, 69, 95, 173, 125,
5234 27, 148, 149, 150, 26, 151, 151, 99, 34, 34,
5235 59, 172, 44, 44, 119, 129, 47, 116, 125, 49,
5236 139, 63, 69, 129, 151, 150, 125, 28, 28, 34,
5237 125, 125, 144, 125, 125, 125, 125, 125, 125, 28,
5238 99, 125, 125, 125, 99, 125
5241 #line 110 "parser.y"
5244 #line 114 "parser.y"
5247 #line 119 "parser.y"
5250 #line 120 "parser.y"
5253 #line 127 "parser.y"
5256 #line 128 "parser.y"
5259 #line 132 "parser.y"
5262 #line 133 "parser.y"
5265 #line 134 "parser.y"
5268 #line 135 "parser.y"
5271 #line 136 "parser.y"
5274 #line 137 "parser.y"
5277 #line 138 "parser.y"
5280 #line 139 "parser.y"
5283 #line 140 "parser.y"
5286 #line 141 "parser.y"
5289 #line 142 "parser.y"
5292 #line 143 "parser.y"
5295 #line 144 "parser.y"
5298 #line 145 "parser.y"
5301 #line 146 "parser.y"
5304 #line 147 "parser.y"
5307 #line 148 "parser.y"
5310 #line 149 "parser.y"
5313 #line 150 "parser.y"
5316 #line 151 "parser.y"
5319 #line 152 "parser.y"
5322 #line 153 "parser.y"
5325 #line 154 "parser.y"
5328 #line 155 "parser.y"
5331 #line 156 "parser.y"
5334 #line 157 "parser.y"
5337 #line 158 "parser.y"
5340 #line 159 "parser.y"
5343 #line 160 "parser.y"
5346 #line 161 "parser.y"
5349 #line 162 "parser.y"
5352 #line 163 "parser.y"
5353 { (yyval.node) = NULL; }
5356 { (yyval.node) = astnode_create_align((yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyloc)); }
5359 { (yyval.node) = astnode_create_warning((yyvsp[(2) - (3)].node), (yyloc)); }
5362 { (yyval.node) = astnode_create_error((yyvsp[(2) - (3)].node), (yyloc)); }
5365 { (yyval.node) = astnode_create_message((yyvsp[(2) - (3)].node), (yyloc)); }
5368 { (yyval.node) = astnode_create_label((yyvsp[(2) - (5)].node)->label, (yyvsp[(3) - (5)].node), (yyvsp[(4) - (5)].node), (yyloc)); }
5371 { (yyval.node) = astnode_create_integer((yyvsp[(2) - (2)].integer), (yyloc)); }
5374 #line 188 "parser.y"
5375 { (yyval.node) = NULL; }
5378 #line 192 "parser.y"
5381 #line 193 "parser.y"
5384 #line 197 "parser.y"
5385 { (yyval.node) = astnode_create_while((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node), (yyloc)); }
5388 { (yyval.node) = astnode_create_rept((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node), (yyloc)); }
5391 { (yyval.node) = astnode_create_proc((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node), (yyloc)); }
5394 { (yyval.node) = astnode_create_struc_decl((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node), (yyloc)); }
5397 { (yyval.node) = astnode_create_union_decl((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node), (yyloc)); }
5400 { (yyval.node) = astnode_create_enum_decl((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node), (yyloc)); }
5403 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5406 #line 222 "parser.y"
5407 { (yyval.node) = (yyvsp[(1) - (2)].node); astnode_add_sibling((yyval.node), (yyvsp[(2) - (2)].node)); }
5410 #line 226 "parser.y"
5413 #line 227 "parser.y"
5414 { (yyval.node) = (yyvsp[(1) - (2)].node); }
5417 #line 231 "parser.y"
5418 { (yyval.node) = astnode_create_record_decl((yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyloc)); }
5421 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5424 #line 236 "parser.y"
5425 { (yyval.node) = (yyvsp[(1) - (3)].node); astnode_add_sibling((yyval.node), (yyvsp[(3) - (3)].node)); }
5428 #line 240 "parser.y"
5429 { (yyval.node) = astnode_create_bitfield_decl((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5432 { (yyval.node) = astnode_create_charmap((yyvsp[(2) - (3)].node), (yyloc)); }
5435 { (yyval.node) = astnode_create_dataseg(0, (yyloc)); }
5438 #line 249 "parser.y"
5439 { (yyval.node) = astnode_create_dataseg(ZEROPAGE_FLAG, (yyloc)); }
5442 #line 252 "parser.y"
5443 { (yyval.node) = astnode_create_codeseg((yyloc)); }
5446 #line 256 "parser.y"
5447 { (yyval.node) = NULL; }
5450 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5456 #line 265 "parser.y"
5460 #line 269 "parser.y"
5463 { (yyval.node) = (yyvsp[(1) - (2)].node); }
5466 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (1)].mnemonic), IMPLIED_MODE, NULL, (yyloc)); }
5469 #line 278 "parser.y"
5470 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (2)].mnemonic), ACCUMULATOR_MODE, NULL, (yyloc)); }
5473 #line 279 "parser.y"
5474 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (3)].mnemonic), IMMEDIATE_MODE, (yyvsp[(3) - (3)].node), (yyloc)); }
5477 #line 280 "parser.y"
5478 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (2)].mnemonic), ABSOLUTE_MODE, (yyvsp[(2) - (2)].node), (yyloc)); }
5481 #line 281 "parser.y"
5482 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (4)].mnemonic), ABSOLUTE_X_MODE, (yyvsp[(2) - (4)].node), (yyloc)); }
5485 #line 282 "parser.y"
5486 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (4)].mnemonic), ABSOLUTE_Y_MODE, (yyvsp[(2) - (4)].node), (yyloc)); }
5489 #line 283 "parser.y"
5490 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (6)].mnemonic), PREINDEXED_INDIRECT_MODE, (yyvsp[(3) - (6)].node), (yyloc)); }
5493 #line 284 "parser.y"
5494 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (6)].mnemonic), POSTINDEXED_INDIRECT_MODE, (yyvsp[(3) - (6)].node), (yyloc)); }
5497 #line 285 "parser.y"
5498 { (yyval.node) = astnode_create_instruction((yyvsp[(1) - (4)].mnemonic), INDIRECT_MODE, (yyvsp[(3) - (4)].node), (yyloc)); }
5501 #line 289 "parser.y"
5502 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5505 #line 290 "parser.y"
5506 { (yyval.node) = astnode_create_sizeof((yyvsp[(2) - (2)].node), (yyloc)); }
5509 #line 291 "parser.y"
5512 #line 292 "parser.y"
5513 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5516 #line 293 "parser.y"
5519 #line 294 "parser.y"
5522 #line 295 "parser.y"
5523 { (yyval.node) = astnode_create_pc((yyloc)); }
5526 #line 296 "parser.y"
5529 #line 297 "parser.y"
5530 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5533 #line 298 "parser.y"
5534 { (yyval.node) = (yyvsp[(2) - (3)].node); }
5537 #line 299 "parser.y"
5538 { (yyval.node) = astnode_create_forward_branch("+", (yyloc)); }
5541 #line 300 "parser.y"
5542 { (yyval.node) = astnode_create_backward_branch("-", (yyloc)); }
5545 #line 301 "parser.y"
5546 { (yyval.node) = astnode_create_forward_branch((yyvsp[(1) - (1)].ident), (yyloc)); }
5549 #line 302 "parser.y"
5550 { (yyval.node) = astnode_create_backward_branch((yyvsp[(1) - (1)].ident), (yyloc)); }
5553 #line 303 "parser.y"
5554 { (yyval.node) = astnode_create_mask((yyvsp[(2) - (2)].node), (yyloc)); }
5557 #line 307 "parser.y"
5558 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5561 #line 308 "parser.y"
5562 { (yyval.node) = astnode_create_index((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node), (yyloc)); }
5565 #line 309 "parser.y"
5566 { (yyval.node) = astnode_create_index((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node), (yyloc)); }
5569 #line 313 "parser.y"
5570 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5573 #line 314 "parser.y"
5574 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5577 #line 318 "parser.y"
5580 #line 319 "parser.y"
5583 #line 323 "parser.y"
5586 #line 324 "parser.y"
5587 { (yyval.node) = NULL; }
5590 #line 328 "parser.y"
5591 { (yyval.node) = astnode_create_scope((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5594 { (yyval.node) = astnode_create_dot((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5597 #line 333 "parser.y"
5598 { (yyval.node) = astnode_create_dot((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5601 #line 337 "parser.y"
5602 { (yyval.node) = astnode_create_struc((yyvsp[(2) - (3)].node), (yyloc)); }
5605 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5608 #line 342 "parser.y"
5609 { (yyval.node) = NULL; }
5612 #line 346 "parser.y"
5615 #line 347 "parser.y"
5616 { (yyval.node) = (yyvsp[(1) - (3)].node); astnode_add_sibling((yyval.node), (yyvsp[(3) - (3)].node)); }
5619 #line 351 "parser.y"
5622 #line 352 "parser.y"
5623 { (yyval.node) = astnode_create_null((yyloc)); }
5626 #line 356 "parser.y"
5627 { (yyval.node) = astnode_create_local_id((yyvsp[(1) - (1)].ident), (yyloc)); }
5630 { (yyval.node) = astnode_create_arithmetic(PLUS_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5633 #line 361 "parser.y"
5634 { (yyval.node) = astnode_create_arithmetic(MINUS_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5637 #line 362 "parser.y"
5638 { (yyval.node) = astnode_create_arithmetic(MUL_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5641 #line 363 "parser.y"
5642 { (yyval.node) = astnode_create_arithmetic(DIV_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5645 #line 364 "parser.y"
5646 { (yyval.node) = astnode_create_arithmetic(MOD_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5649 #line 365 "parser.y"
5650 { (yyval.node) = astnode_create_arithmetic(AND_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5653 #line 366 "parser.y"
5654 { (yyval.node) = astnode_create_arithmetic(OR_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5657 #line 367 "parser.y"
5658 { (yyval.node) = astnode_create_arithmetic(XOR_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5661 #line 368 "parser.y"
5662 { (yyval.node) = astnode_create_arithmetic(SHL_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5665 #line 369 "parser.y"
5666 { (yyval.node) = astnode_create_arithmetic(SHR_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5669 #line 370 "parser.y"
5670 { (yyval.node) = astnode_create_arithmetic(NEG_OPERATOR, (yyvsp[(2) - (2)].node), NULL, (yyloc)); }
5673 #line 371 "parser.y"
5674 { (yyval.node) = astnode_create_arithmetic(NOT_OPERATOR, (yyvsp[(2) - (2)].node), NULL, (yyloc)); }
5677 #line 372 "parser.y"
5678 { (yyval.node) = astnode_create_arithmetic(BANK_OPERATOR, (yyvsp[(2) - (2)].node), NULL, (yyloc)); }
5681 #line 373 "parser.y"
5682 { (yyval.node) = astnode_create_arithmetic(LO_OPERATOR, (yyvsp[(2) - (2)].node), NULL, (yyloc)); }
5685 #line 374 "parser.y"
5686 { (yyval.node) = astnode_create_arithmetic(HI_OPERATOR, (yyvsp[(2) - (2)].node), NULL, (yyloc)); }
5689 #line 375 "parser.y"
5690 { (yyval.node) = astnode_create_arithmetic(UMINUS_OPERATOR, (yyvsp[(2) - (2)].node), NULL, (yyloc)); }
5693 #line 379 "parser.y"
5694 { (yyval.node) = astnode_create_arithmetic(EQ_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5697 #line 380 "parser.y"
5698 { (yyval.node) = astnode_create_arithmetic(NE_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5701 #line 381 "parser.y"
5702 { (yyval.node) = astnode_create_arithmetic(GT_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5705 #line 382 "parser.y"
5706 { (yyval.node) = astnode_create_arithmetic(LT_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5709 #line 383 "parser.y"
5710 { (yyval.node) = astnode_create_arithmetic(GE_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5713 #line 384 "parser.y"
5714 { (yyval.node) = astnode_create_arithmetic(LE_OPERATOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5717 #line 388 "parser.y"
5718 { (yyval.node) = astnode_create_label((yyvsp[(1) - (1)].label), NULL, NULL, (yyloc)); }
5721 #line 389 "parser.y"
5722 { (yyval.node) = astnode_create_local_label((yyvsp[(1) - (1)].label), (yyloc)); }
5725 #line 390 "parser.y"
5726 { (yyval.node) = astnode_create_forward_branch_decl("+", (yyloc)); }
5729 #line 391 "parser.y"
5730 { (yyval.node) = astnode_create_backward_branch_decl("-", (yyloc)); }
5733 #line 392 "parser.y"
5734 { (yyval.node) = astnode_create_forward_branch_decl((yyvsp[(1) - (1)].ident), (yyloc)); }
5737 #line 393 "parser.y"
5738 { (yyval.node) = astnode_create_backward_branch_decl((yyvsp[(1) - (1)].ident), (yyloc)); }
5741 #line 397 "parser.y"
5742 { (yyval.node) = astnode_create_identifier((yyvsp[(1) - (1)].ident), (yyloc)); }
5745 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5748 #line 402 "parser.y"
5749 { (yyval.node) = astnode_create_null((yyloc)); }
5752 #line 406 "parser.y"
5753 { (yyval.node) = astnode_create_integer((yyvsp[(1) - (1)].integer), (yyloc)); }
5756 #line 407 "parser.y"
5757 { (yyval.node) = astnode_create_string((yyvsp[(1) - (1)].string), (yyloc)); }
5760 #line 411 "parser.y"
5761 { (yyval.node) = astnode_create_if((yyvsp[(2) - (8)].node), (yyvsp[(4) - (8)].node), (yyvsp[(5) - (8)].node), (yyvsp[(6) - (8)].node), (yyloc)); }
5764 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5767 #line 416 "parser.y"
5768 { (yyval.node) = NULL; }
5771 #line 420 "parser.y"
5774 #line 421 "parser.y"
5775 { (yyval.node) = (yyvsp[(1) - (2)].node); astnode_add_sibling((yyval.node), (yyvsp[(2) - (2)].node)); }
5778 #line 425 "parser.y"
5779 { (yyval.node) = astnode_create_case((yyvsp[(2) - (4)].node), (yyvsp[(4) - (4)].node), (yyloc)); }
5782 { (yyval.node) = (yyvsp[(3) - (3)].node); }
5785 #line 430 "parser.y"
5786 { (yyval.node) = NULL; }
5789 #line 434 "parser.y"
5790 { (yyval.node) = astnode_create_ifdef((yyvsp[(2) - (7)].node), (yyvsp[(4) - (7)].node), (yyvsp[(5) - (7)].node), (yyloc)); }
5793 { (yyval.node) = astnode_create_ifndef((yyvsp[(2) - (7)].node), (yyvsp[(4) - (7)].node), (yyvsp[(5) - (7)].node), (yyloc)); }
5796 { (yyval.node) = (yyvsp[(1) - (2)].node); }
5799 #line 443 "parser.y"
5800 { (yyval.node) = (yyvsp[(1) - (2)].node); }
5803 #line 447 "parser.y"
5804 { (yyval.node) = astnode_create_var_decl(0, (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node), (yyloc)); }
5807 #line 448 "parser.y"
5808 { (yyval.node) = astnode_create_var_decl(ZEROPAGE_FLAG, (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5811 #line 449 "parser.y"
5812 { (yyval.node) = astnode_create_var_decl(PUBLIC_FLAG, (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5815 #line 450 "parser.y"
5816 { (yyval.node) = astnode_create_var_decl(ZEROPAGE_FLAG | PUBLIC_FLAG, (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node), (yyloc)); }
5819 #line 451 "parser.y"
5820 { (yyval.node) = astnode_create_var_decl(PUBLIC_FLAG | ZEROPAGE_FLAG, (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node), (yyloc)); }
5823 #line 455 "parser.y"
5824 { (yyval.node) = astnode_create_data((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node), (yyloc)); }
5827 #line 456 "parser.y"
5828 { (yyval.node) = astnode_create_storage((yyvsp[(1) - (1)].node), NULL, (yyloc)); }
5831 #line 457 "parser.y"
5832 { (yyval.node) = astnode_create_storage((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node), (yyloc)); }
5835 #line 461 "parser.y"
5836 { (yyval.node) = astnode_create_datatype(BYTE_DATATYPE, NULL, (yyloc)); }
5839 #line 462 "parser.y"
5840 { (yyval.node) = astnode_create_datatype(CHAR_DATATYPE, NULL, (yyloc)); }
5843 #line 463 "parser.y"
5844 { (yyval.node) = astnode_create_datatype(WORD_DATATYPE, NULL, (yyloc)); }
5847 #line 464 "parser.y"
5848 { (yyval.node) = astnode_create_datatype(DWORD_DATATYPE, NULL, (yyloc)); }
5851 #line 465 "parser.y"
5852 { (yyval.node) = astnode_create_datatype(USER_DATATYPE, (yyvsp[(2) - (2)].node), (yyloc)); }
5855 #line 466 "parser.y"
5856 { (yyval.node) = astnode_create_datatype(USER_DATATYPE, (yyvsp[(2) - (2)].node), (yyloc)); }
5859 #line 470 "parser.y"
5860 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5863 #line 471 "parser.y"
5864 { (yyval.node) = (yyvsp[(1) - (3)].node); astnode_add_sibling((yyval.node), (yyvsp[(3) - (3)].node)); }
5867 #line 475 "parser.y"
5868 { (yyval.node) = astnode_create_incsrc((yyvsp[(2) - (3)].node), (yyloc)); handle_incsrc((yyval.node)); }
5871 { (yyval.node) = astnode_create_incbin((yyvsp[(2) - (3)].node), (yyloc)); handle_incbin((yyval.node)); }
5874 { (yyval.node) = astnode_create_string((yyvsp[(1) - (1)].string), (yyloc)); }
5877 #line 484 "parser.y"
5878 { (yyval.node) = astnode_create_file_path((yyvsp[(1) - (1)].string), (yyloc)); }
5881 #line 488 "parser.y"
5882 { (yyval.node) = astnode_create_macro_decl((yyvsp[(2) - (7)].node), (yyvsp[(3) - (7)].node), (yyvsp[(5) - (7)].node), (yyloc)); }
5885 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5888 #line 493 "parser.y"
5889 { (yyval.node) = NULL; }
5892 #line 497 "parser.y"
5893 { (yyval.node) = astnode_create_macro((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyloc)); }
5896 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5899 #line 502 "parser.y"
5900 { (yyval.node) = NULL; }
5903 #line 506 "parser.y"
5906 #line 507 "parser.y"
5907 { (yyval.node) = (yyvsp[(1) - (3)].node); astnode_add_sibling((yyval.node), (yyvsp[(3) - (3)].node)); }
5910 #line 511 "parser.y"
5911 { (yyval.node) = astnode_create_equ((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node), (yyloc)); }
5914 { (yyval.node) = astnode_create_assign((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node), (yyloc)); }
5917 { (yyval.node) = astnode_create_equ((yyvsp[(2) - (3)].node), astnode_create_integer(0, (yyloc)), (yyloc)); }
5920 #line 520 "parser.y"
5921 { (yyval.node) = astnode_create_equ((yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyloc)); }
5924 #line 524 "parser.y"
5925 { (yyval.node) = astnode_create_public((yyvsp[(2) - (3)].node), (yyloc)); }
5928 { (yyval.node) = astnode_create_extrn((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node), (yyvsp[(5) - (6)].node), (yyloc)); }
5931 { (yyval.node) = (yyvsp[(2) - (2)].node); }
5934 #line 533 "parser.y"
5935 { (yyval.node) = NULL; }
5938 #line 537 "parser.y"
5939 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5942 #line 538 "parser.y"
5943 { (yyval.node) = astnode_create_datatype(USER_DATATYPE, (yyvsp[(1) - (1)].node), (yyloc)); }
5946 #line 539 "parser.y"
5947 { (yyval.node) = astnode_create_integer(PROC_SYMBOL, (yyloc)); }
5950 #line 540 "parser.y"
5951 { (yyval.node) = astnode_create_integer(LABEL_SYMBOL, (yyloc)); }
5954 #line 544 "parser.y"
5955 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5958 #line 545 "parser.y"
5959 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5962 #line 549 "parser.y"
5963 { (yyval.node) = astnode_create_var_decl(0, (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node), (yyloc)); }
5966 #line 550 "parser.y"
5967 { (yyval.node) = astnode_create_var_decl(ZEROPAGE_FLAG, (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5970 #line 551 "parser.y"
5971 { (yyval.node) = astnode_create_var_decl(PUBLIC_FLAG, (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node), (yyloc)); }
5974 #line 552 "parser.y"
5975 { (yyval.node) = astnode_create_var_decl(ZEROPAGE_FLAG | PUBLIC_FLAG, (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node), (yyloc)); }
5978 #line 553 "parser.y"
5979 { (yyval.node) = astnode_create_var_decl(PUBLIC_FLAG | ZEROPAGE_FLAG, (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node), (yyloc)); }
5982 #line 557 "parser.y"
5983 { (yyval.node) = astnode_create_storage((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyloc)); }
5988 #line 562 "parser.y"
5992 #line 563 "parser.y"
5995 #line 3303 "parser.c"
5998 #line 565 "parser.y"
6004 @convert tabs to whitespaces
6009 * $Id: parser.y,v 1.9 2005/01/05 02:28:40 kenth Exp khansen $
6017 #line 288 "parser.c"
6020 #line 313 "parser.c"
6023 0, 106, 106, 110, 111, 115, 116, 123, 124, 128,
6024 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
6025 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
6026 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
6027 159, 163, 167, 171, 175, 179, 183, 184, 188, 189,
6028 193, 197, 201, 205, 209, 213, 217, 218, 222, 223,
6029 227, 231, 232, 236, 240, 244, 245, 248, 252, 256,
6030 260, 261, 265, 269, 273, 274, 275, 276, 277, 278,
6031 279, 280, 281, 285, 286, 287, 288, 289, 290, 291,
6032 292, 293, 294, 295, 296, 297, 298, 299, 303, 304,
6033 305, 309, 310, 314, 315, 319, 320, 324, 328, 329,
6034 333, 337, 338, 342, 343, 347, 348, 352, 356, 357,
6035 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
6036 368, 369, 370, 371, 375, 376, 377, 378, 379, 380,
6037 384, 385, 386, 387, 388, 389, 393, 397, 398, 402,
6038 403, 407, 411, 412, 416, 417, 421, 425, 426, 430,
6039 434, 438, 439, 443, 444, 445, 446, 447, 451, 452,
6040 453, 457, 458, 459, 460, 461, 462, 466, 467, 471,
6041 475, 479, 480, 484, 488, 489, 493, 497, 498, 502,
6042 503, 507, 511, 515, 516, 520, 524, 528, 529, 533,
6043 534, 535, 536, 540, 541, 545, 546, 547, 548, 549,
6047 #line 106 "parser.y"
6050 #line 110 "parser.y"
6053 #line 115 "parser.y"
6056 #line 116 "parser.y"
6059 #line 123 "parser.y"
6062 #line 124 "parser.y"
6065 #line 128 "parser.y"
6068 #line 129 "parser.y"
6071 #line 130 "parser.y"
6074 #line 131 "parser.y"
6077 #line 132 "parser.y"
6080 #line 133 "parser.y"
6083 #line 134 "parser.y"
6086 #line 135 "parser.y"
6089 #line 136 "parser.y"
6092 #line 137 "parser.y"
6095 #line 138 "parser.y"
6098 #line 139 "parser.y"
6101 #line 140 "parser.y"
6104 #line 141 "parser.y"
6107 #line 142 "parser.y"
6110 #line 143 "parser.y"
6113 #line 144 "parser.y"
6116 #line 145 "parser.y"
6119 #line 146 "parser.y"
6122 #line 147 "parser.y"
6125 #line 148 "parser.y"
6128 #line 149 "parser.y"
6131 #line 150 "parser.y"
6134 #line 151 "parser.y"
6137 #line 152 "parser.y"
6140 #line 153 "parser.y"
6143 #line 154 "parser.y"
6146 #line 155 "parser.y"
6149 #line 156 "parser.y"
6152 #line 157 "parser.y"
6155 #line 158 "parser.y"
6158 #line 159 "parser.y"
6161 #line 163 "parser.y"
6164 #line 167 "parser.y"
6167 #line 171 "parser.y"
6170 #line 175 "parser.y"
6173 #line 179 "parser.y"
6176 #line 183 "parser.y"
6179 #line 184 "parser.y"
6182 #line 188 "parser.y"
6185 #line 189 "parser.y"
6188 #line 193 "parser.y"
6191 #line 197 "parser.y"
6194 #line 201 "parser.y"
6197 #line 205 "parser.y"
6200 #line 209 "parser.y"
6203 #line 213 "parser.y"
6206 #line 217 "parser.y"
6209 #line 218 "parser.y"
6212 #line 222 "parser.y"
6215 #line 223 "parser.y"
6218 #line 227 "parser.y"
6221 #line 231 "parser.y"
6224 #line 232 "parser.y"
6227 #line 236 "parser.y"
6230 #line 240 "parser.y"
6233 #line 244 "parser.y"
6236 #line 245 "parser.y"
6239 #line 248 "parser.y"
6242 #line 252 "parser.y"
6245 #line 256 "parser.y"
6248 #line 260 "parser.y"
6251 #line 261 "parser.y"
6254 #line 265 "parser.y"
6257 #line 269 "parser.y"
6260 #line 273 "parser.y"
6263 #line 274 "parser.y"
6266 #line 275 "parser.y"
6269 #line 276 "parser.y"
6272 #line 277 "parser.y"
6275 #line 278 "parser.y"
6278 #line 279 "parser.y"
6281 #line 280 "parser.y"
6284 #line 281 "parser.y"
6287 #line 285 "parser.y"
6290 #line 286 "parser.y"
6293 #line 287 "parser.y"
6296 #line 288 "parser.y"
6299 #line 289 "parser.y"
6302 #line 290 "parser.y"
6305 #line 291 "parser.y"
6308 #line 292 "parser.y"
6311 #line 293 "parser.y"
6314 #line 294 "parser.y"
6317 #line 295 "parser.y"
6320 #line 296 "parser.y"
6323 #line 297 "parser.y"
6326 #line 298 "parser.y"
6329 #line 299 "parser.y"
6332 #line 303 "parser.y"
6335 #line 304 "parser.y"
6338 #line 305 "parser.y"
6341 #line 309 "parser.y"
6344 #line 310 "parser.y"
6347 #line 314 "parser.y"
6350 #line 315 "parser.y"
6353 #line 319 "parser.y"
6356 #line 320 "parser.y"
6359 #line 324 "parser.y"
6362 #line 328 "parser.y"
6365 #line 329 "parser.y"
6368 #line 333 "parser.y"
6371 #line 337 "parser.y"
6374 #line 338 "parser.y"
6377 #line 342 "parser.y"
6380 #line 343 "parser.y"
6383 #line 347 "parser.y"
6386 #line 348 "parser.y"
6389 #line 352 "parser.y"
6392 #line 356 "parser.y"
6395 #line 357 "parser.y"
6398 #line 358 "parser.y"
6401 #line 359 "parser.y"
6404 #line 360 "parser.y"
6407 #line 361 "parser.y"
6410 #line 362 "parser.y"
6413 #line 363 "parser.y"
6416 #line 364 "parser.y"
6419 #line 365 "parser.y"
6422 #line 366 "parser.y"
6425 #line 367 "parser.y"
6428 #line 368 "parser.y"
6431 #line 369 "parser.y"
6434 #line 370 "parser.y"
6437 #line 371 "parser.y"
6440 #line 375 "parser.y"
6443 #line 376 "parser.y"
6446 #line 377 "parser.y"
6449 #line 378 "parser.y"
6452 #line 379 "parser.y"
6455 #line 380 "parser.y"
6458 #line 384 "parser.y"
6461 #line 385 "parser.y"
6464 #line 386 "parser.y"
6467 #line 387 "parser.y"
6470 #line 388 "parser.y"
6473 #line 389 "parser.y"
6476 #line 393 "parser.y"
6479 #line 397 "parser.y"
6482 #line 398 "parser.y"
6485 #line 402 "parser.y"
6488 #line 403 "parser.y"
6491 #line 407 "parser.y"
6494 #line 411 "parser.y"
6497 #line 412 "parser.y"
6500 #line 416 "parser.y"
6503 #line 417 "parser.y"
6506 #line 421 "parser.y"
6509 #line 425 "parser.y"
6512 #line 426 "parser.y"
6515 #line 430 "parser.y"
6518 #line 434 "parser.y"
6521 #line 438 "parser.y"
6524 #line 439 "parser.y"
6527 #line 443 "parser.y"
6530 #line 444 "parser.y"
6533 #line 445 "parser.y"
6536 #line 446 "parser.y"
6539 #line 447 "parser.y"
6542 #line 451 "parser.y"
6545 #line 452 "parser.y"
6548 #line 453 "parser.y"
6551 #line 457 "parser.y"
6554 #line 458 "parser.y"
6557 #line 459 "parser.y"
6560 #line 460 "parser.y"
6563 #line 461 "parser.y"
6566 #line 462 "parser.y"
6569 #line 466 "parser.y"
6572 #line 467 "parser.y"
6575 #line 471 "parser.y"
6578 #line 475 "parser.y"
6581 #line 479 "parser.y"
6584 #line 480 "parser.y"
6587 #line 484 "parser.y"
6590 #line 488 "parser.y"
6593 #line 489 "parser.y"
6596 #line 493 "parser.y"
6599 #line 497 "parser.y"
6602 #line 498 "parser.y"
6605 #line 502 "parser.y"
6608 #line 503 "parser.y"
6611 #line 507 "parser.y"
6614 #line 511 "parser.y"
6617 #line 515 "parser.y"
6620 #line 516 "parser.y"
6623 #line 520 "parser.y"
6626 #line 524 "parser.y"
6629 #line 528 "parser.y"
6632 #line 529 "parser.y"
6635 #line 533 "parser.y"
6638 #line 534 "parser.y"
6641 #line 535 "parser.y"
6644 #line 536 "parser.y"
6647 #line 540 "parser.y"
6650 #line 541 "parser.y"
6653 #line 545 "parser.y"
6656 #line 546 "parser.y"
6659 #line 547 "parser.y"
6662 #line 548 "parser.y"
6665 #line 549 "parser.y"
6668 #line 553 "parser.y"
6671 #line 557 "parser.y"
6674 #line 558 "parser.y"
6677 #line 559 "parser.y"
6680 #line 3299 "parser.c"
6683 #line 561 "parser.y"
6687 fp = fopen(file->string, "rb");
6698 * $Id: parser.y,v 1.9 2005/01/05 02:28:40 kenth Exp $
6701 void yyerror(char *); /* In lexer */
6702 int yylex(void); /* In lexer */
6703 int yypushandrestart(char *); /* In lexer */
6706 extern char *yytext; /* In lexer */
6707 extern YYLTYPE yylloc; /* In lexer */
6708 extern astnode *root_node; /* Root of the generated parse tree */
6709 void handle_incsrc(astnode *); /* See below */
6710 void handle_incbin(astnode *); /* See below */
6713 if ((yyvsp[(1) - (2)].node) != NULL) { (yyval.node) = (yyvsp[(1) - (2)].node); astnode_add_sibling((yyval.node), (yyvsp[(2) - (2)].node)); }
6714 else { (yyval.node) = (yyvsp[(2) - (2)].node); }
6719 /* Get the node which describes the file to include */
6720 astnode *file = astnode_get_child(n, 0);
6722 switch (astnode_get_type(file)) {
6724 /* TODO: add path searching */
6725 case FILE_PATH_NODE:
6726 switch (yypushandrestart(file->string)) {
6731 /* Failed to open file */
6732 sprintf(errs, "could not open '%s' for reading", file->string);
6736 /* Stack overflow */
6737 yyerror("Maximum include nesting level reached");
6748 unsigned char *data;
6751 /* Get the node which describes the file to include */
6752 astnode *file = astnode_get_child(n, 0);
6754 switch (astnode_get_type(file)) {
6756 /* TODO: add path searching */
6757 case FILE_PATH_NODE:
6758 /* Attempt to open file */
6759 fp = fopen(file->string, "rb");
6762 fseek(fp, 0, SEEK_END);
6766 /* Allocate buffer to hold file contents */
6767 data = (unsigned char *)malloc(size);
6768 /* Read file contents into buffer */
6769 fread(data, 1, size, fp);
6770 /* Insert binary node */
6771 astnode_add_sibling(n, astnode_create_binary(data, size, n->loc) );
6777 /* Couldn't open file */
6778 sprintf(errs, "could not open '%s' for reading", file->string);