Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6324 → Rev 5223

/contrib/toolchain/binutils/ld/ldbuildid.c
File deleted
/contrib/toolchain/binutils/ld/ldbuildid.h
File deleted
/contrib/toolchain/binutils/ld/Makefile
5,9 → 5,7
CFLAGS_OPT = -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U_MSC_VER -O2
CFLAGS_OPT+= -fomit-frame-pointer -fno-ident -mno-ms-bitfields
CFLAGS_OPT+= -W -Wall -Wmissing-prototypes -Wno-format -Werror
ELF_CFLAGS = -DELF_LIST_OPTIONS=FALSE -DELF_SHLIB_LIST_OPTIONS=FALSE
ELF_CFLAGS+= -DELF_PLT_UNWIND_LIST_OPTIONS=FALSE
CFLAGS = -c -save-temps $(CFLAGS_OPT) $(ELF_CFLAGS)
CFLAGS = -c -save-temps $(CFLAGS_OPT)
 
INCLUDES= -I. -I../bfd -I../include -I$(SDK_DIR)/sources/newlib/libc/include
 
22,11 → 20,11
 
LIBPATH:= -L$(LIB_DIR) -L/home/autobuild/tools/win32/mingw32/lib
 
LDFLAGS = -static -nostdlib --stack 12582912 -T$(SDK_DIR)/sources/newlib/app.lds --image-base 0 --subsystem native
LDFLAGS = -static -nostdlib --stack 12582912 -T$(SDK_DIR)/sources/newlib/app.lds --image-base 0
 
 
SRCS = \
deffilep.c ei386pe.c ldbuildid.c\
deffilep.c ei386pe.c \
ldcref.c ldctor.c ldemul.c \
ldexp.c ldfile.c ldgram.c \
ldlang.c ldlex-wrapper.c \
/contrib/toolchain/binutils/ld/ld.sh
1,7 → 1,6
#SHS
/kolibrios/as -o deffilep.o deffilep.s
/kolibrios/as -o ei386pe.o ei386pe.s
/kolibrios/as -o ldbuildid.o ldbuildid.s
/kolibrios/as -o ldcref.o ldcref.s
/kolibrios/as -o ldctor.o ldctor.s
/kolibrios/as -o ldemul.o ldemul.s
/contrib/toolchain/binutils/ld/deffilep.c
1,13 → 1,14
/* A Bison parser, made by GNU Bison 3.0. */
/* A Bison parser, made by GNU Bison 2.3. */
 
/* Bison implementation for Yacc-like parsers in C
/* Skeleton implementation for Bison's Yacc-like parsers in C
 
Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
 
This program is free software: you can redistribute it and/or modify
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
the Free Software Foundation; either version 2, or (at your option)
any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
15,7 → 16,9
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
 
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
44,7 → 47,7
#define YYBISON 1
 
/* Bison version. */
#define YYBISON_VERSION "3.0"
#define YYBISON_VERSION "2.3"
 
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
52,20 → 55,86
/* Pure parsers. */
#define YYPURE 0
 
/* Push parsers. */
#define YYPUSH 0
/* Using locations. */
#define YYLSP_NEEDED 0
 
/* Pull parsers. */
#define YYPULL 1
 
 
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
/* Put the tokens into the symbol table, so that GDB and other debuggers
know about them. */
enum yytokentype {
NAME = 258,
LIBRARY = 259,
DESCRIPTION = 260,
STACKSIZE_K = 261,
HEAPSIZE = 262,
CODE = 263,
DATAU = 264,
DATAL = 265,
SECTIONS = 266,
EXPORTS = 267,
IMPORTS = 268,
VERSIONK = 269,
BASE = 270,
CONSTANTU = 271,
CONSTANTL = 272,
PRIVATEU = 273,
PRIVATEL = 274,
ALIGNCOMM = 275,
READ = 276,
WRITE = 277,
EXECUTE = 278,
SHARED = 279,
NONAMEU = 280,
NONAMEL = 281,
DIRECTIVE = 282,
EQUAL = 283,
ID = 284,
DIGITS = 285
};
#endif
/* Tokens. */
#define NAME 258
#define LIBRARY 259
#define DESCRIPTION 260
#define STACKSIZE_K 261
#define HEAPSIZE 262
#define CODE 263
#define DATAU 264
#define DATAL 265
#define SECTIONS 266
#define EXPORTS 267
#define IMPORTS 268
#define VERSIONK 269
#define BASE 270
#define CONSTANTU 271
#define CONSTANTL 272
#define PRIVATEU 273
#define PRIVATEL 274
#define ALIGNCOMM 275
#define READ 276
#define WRITE 277
#define EXECUTE 278
#define SHARED 279
#define NONAMEU 280
#define NONAMEL 281
#define DIRECTIVE 282
#define EQUAL 283
#define ID 284
#define DIGITS 285
 
 
 
 
/* Copy the first part of user declarations. */
#line 1 "deffilep.y" /* yacc.c:339 */
#line 1 "deffilep.y"
/* deffilep.y - parser for .def files */
 
/* Copyright (C) 1995-2015 Free Software Foundation, Inc.
/* Copyright 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006,
2007, 2009 Free Software Foundation, Inc.
 
This file is part of GNU Binutils.
 
174,15 → 243,11
static const char *lex_parse_string_end = 0;
 
 
#line 178 "deffilep.c" /* yacc.c:339 */
 
# ifndef YY_NULL
# if defined __cplusplus && 201103L <= __cplusplus
# define YY_NULL nullptr
# else
# define YY_NULL 0
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
# endif
# endif
 
/* Enabling verbose error messages. */
#ifdef YYERROR_VERBOSE
192,113 → 257,37
# define YYERROR_VERBOSE 0
#endif
 
/* In a future release of Bison, this section will be replaced
by #include "y.tab.h". */
#ifndef YY_YY_DEFFILEP_H_INCLUDED
# define YY_YY_DEFFILEP_H_INCLUDED
/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
/* Enabling the token table. */
#ifndef YYTOKEN_TABLE
# define YYTOKEN_TABLE 0
#endif
#if YYDEBUG
extern int yydebug;
#endif
 
/* Token type. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
enum yytokentype
{
NAME = 258,
LIBRARY = 259,
DESCRIPTION = 260,
STACKSIZE_K = 261,
HEAPSIZE = 262,
CODE = 263,
DATAU = 264,
DATAL = 265,
SECTIONS = 266,
EXPORTS = 267,
IMPORTS = 268,
VERSIONK = 269,
BASE = 270,
CONSTANTU = 271,
CONSTANTL = 272,
PRIVATEU = 273,
PRIVATEL = 274,
ALIGNCOMM = 275,
READ = 276,
WRITE = 277,
EXECUTE = 278,
SHARED = 279,
NONAMEU = 280,
NONAMEL = 281,
DIRECTIVE = 282,
EQUAL = 283,
ID = 284,
DIGITS = 285
};
#endif
/* Tokens. */
#define NAME 258
#define LIBRARY 259
#define DESCRIPTION 260
#define STACKSIZE_K 261
#define HEAPSIZE 262
#define CODE 263
#define DATAU 264
#define DATAL 265
#define SECTIONS 266
#define EXPORTS 267
#define IMPORTS 268
#define VERSIONK 269
#define BASE 270
#define CONSTANTU 271
#define CONSTANTL 272
#define PRIVATEU 273
#define PRIVATEL 274
#define ALIGNCOMM 275
#define READ 276
#define WRITE 277
#define EXECUTE 278
#define SHARED 279
#define NONAMEU 280
#define NONAMEL 281
#define DIRECTIVE 282
#define EQUAL 283
#define ID 284
#define DIGITS 285
 
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE YYSTYPE;
union YYSTYPE
typedef union YYSTYPE
#line 114 "deffilep.y"
{
#line 113 "deffilep.y" /* yacc.c:355 */
 
char *id;
const char *id_const;
int number;
bfd_vma vma;
char *digits;
 
#line 286 "deffilep.c" /* yacc.c:355 */
};
}
/* Line 193 of yacc.c. */
#line 277 "deffilep.c"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
#endif
 
 
extern YYSTYPE yylval;
 
int yyparse (void);
/* Copy the second part of user declarations. */
 
#endif /* !YY_YY_DEFFILEP_H_INCLUDED */
 
/* Copy the second part of user declarations. */
/* Line 216 of yacc.c. */
#line 290 "deffilep.c"
 
#line 301 "deffilep.c" /* yacc.c:358 */
 
#ifdef short
# undef short
#endif
311,8 → 300,11
 
#ifdef YYTYPE_INT8
typedef YYTYPE_INT8 yytype_int8;
#elif (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
typedef signed char yytype_int8;
#else
typedef signed char yytype_int8;
typedef short int yytype_int8;
#endif
 
#ifdef YYTYPE_UINT16
332,7 → 324,8
# define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
# define YYSIZE_T size_t
# elif ! defined YYSIZE_T
# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# else
346,49 → 339,39
# if defined YYENABLE_NLS && YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
# define YY_(msgid) dgettext ("bison-runtime", msgid)
# endif
# endif
# ifndef YY_
# define YY_(Msgid) Msgid
# define YY_(msgid) msgid
# endif
#endif
 
#ifndef __attribute__
/* This feature is available in gcc versions 2.5 and later. */
# if (! defined __GNUC__ || __GNUC__ < 2 \
|| (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
# define __attribute__(Spec) /* empty */
# endif
#endif
 
/* Suppress unused-variable warnings by "using" E. */
#if ! defined lint || defined __GNUC__
# define YYUSE(E) ((void) (E))
# define YYUSE(e) ((void) (e))
#else
# define YYUSE(E) /* empty */
# define YYUSE(e) /* empty */
#endif
 
#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
_Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
_Pragma ("GCC diagnostic pop")
/* Identity function, used to suppress warnings about constant conditions. */
#ifndef lint
# define YYID(n) (n)
#else
# define YY_INITIAL_VALUE(Value) Value
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static int
YYID (int i)
#else
static int
YYID (i)
int i;
#endif
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
{
return i;
}
#endif
#ifndef YY_INITIAL_VALUE
# define YY_INITIAL_VALUE(Value) /* Nothing. */
#endif
 
 
#if ! defined yyoverflow || YYERROR_VERBOSE
 
/* The parser invokes alloca or malloc; define the necessary symbols. */
406,11 → 389,11
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
/* Use EXIT_SUCCESS as a witness for stdlib.h. */
# ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0
# ifndef _STDLIB_H
# define _STDLIB_H 1
# endif
# endif
# endif
418,8 → 401,8
# endif
 
# ifdef YYSTACK_ALLOC
/* Pacify GCC's 'empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
/* Pacify GCC's `empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
# ifndef YYSTACK_ALLOC_MAXIMUM
/* The OS might guarantee only one guard page at the bottom of the stack,
and a page size can be as small as 4096 bytes. So we cannot safely
433,23 → 416,25
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
# if (defined __cplusplus && ! defined EXIT_SUCCESS \
# if (defined __cplusplus && ! defined _STDLIB_H \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0
# ifndef _STDLIB_H
# define _STDLIB_H 1
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
# if ! defined malloc && ! defined EXIT_SUCCESS
# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
# if ! defined free && ! defined EXIT_SUCCESS
# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
464,8 → 449,8
/* A type that is properly aligned for any stack member. */
union yyalloc
{
yytype_int16 yyss_alloc;
YYSTYPE yyvs_alloc;
yytype_int16 yyss;
YYSTYPE yyvs;
};
 
/* The size of the maximum gap between one aligned stack and the next. */
477,7 → 462,23
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
 
# define YYCOPY_NEEDED 1
/* Copy COUNT objects from FROM to TO. The source and destination do
not overlap. */
# ifndef YYCOPY
# if defined __GNUC__ && 1 < __GNUC__
# define YYCOPY(To, From, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# else
# define YYCOPY(To, From, Count) \
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
while (YYID (0))
# endif
# endif
 
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
484,39 → 485,19
elements in the stack, and YYPTR gives the new location of the
stack. Advance YYPTR to a properly aligned location for the next
stack. */
# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
# define YYSTACK_RELOCATE(Stack) \
do \
{ \
YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
Stack = &yyptr->Stack_alloc; \
YYCOPY (&yyptr->Stack, Stack, yysize); \
Stack = &yyptr->Stack; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (0)
while (YYID (0))
 
#endif
 
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
/* Copy COUNT objects from SRC to DST. The source and destination do
not overlap. */
# ifndef YYCOPY
# if defined __GNUC__ && 1 < __GNUC__
# define YYCOPY(Dst, Src, Count) \
__builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
# else
# define YYCOPY(Dst, Src, Count) \
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(Dst)[yyi] = (Src)[yyi]; \
} \
while (0)
# endif
# endif
#endif /* !YYCOPY_NEEDED */
 
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 69
/* YYLAST -- Last index in YYTABLE. */
528,11 → 509,10
#define YYNNTS 27
/* YYNRULES -- Number of rules. */
#define YYNRULES 99
/* YYNSTATES -- Number of states. */
/* YYNRULES -- Number of states. */
#define YYNSTATES 146
 
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 285
 
539,8 → 519,7
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
as returned by yylex, without out-of-bounds checking. */
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
static const yytype_uint8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
575,23 → 554,72
};
 
#if YYDEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
YYRHS. */
static const yytype_uint16 yyprhs[] =
{
0, 0, 3, 6, 8, 12, 16, 19, 23, 27,
30, 33, 36, 39, 42, 45, 50, 53, 58, 59,
61, 64, 72, 76, 77, 79, 81, 83, 85, 87,
89, 91, 93, 96, 98, 107, 116, 123, 130, 137,
142, 145, 147, 150, 153, 157, 159, 161, 162, 165,
166, 168, 170, 172, 174, 176, 178, 180, 182, 184,
186, 188, 190, 192, 194, 196, 198, 200, 202, 204,
206, 208, 210, 212, 214, 216, 218, 220, 223, 226,
230, 234, 236, 237, 240, 241, 244, 245, 248, 249,
253, 254, 256, 259, 264, 266, 267, 269, 270, 272
};
 
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
36, 0, -1, 36, 37, -1, 37, -1, 3, 52,
56, -1, 4, 52, 56, -1, 5, 29, -1, 6,
60, 48, -1, 7, 60, 48, -1, 8, 46, -1,
9, 46, -1, 11, 44, -1, 12, 38, -1, 13,
42, -1, 14, 60, -1, 14, 60, 31, 60, -1,
27, 29, -1, 20, 57, 32, 60, -1, -1, 39,
-1, 38, 39, -1, 51, 55, 54, 47, 40, 47,
53, -1, 41, 47, 40, -1, -1, 25, -1, 26,
-1, 16, -1, 17, -1, 9, -1, 10, -1, 18,
-1, 19, -1, 42, 43, -1, 43, -1, 29, 33,
29, 31, 29, 31, 29, 53, -1, 29, 33, 29,
31, 29, 31, 60, 53, -1, 29, 33, 29, 31,
29, 53, -1, 29, 33, 29, 31, 60, 53, -1,
29, 31, 29, 31, 29, 53, -1, 29, 31, 29,
53, -1, 44, 45, -1, 45, -1, 29, 46, -1,
29, 29, -1, 46, 47, 49, -1, 49, -1, 32,
-1, -1, 32, 60, -1, -1, 21, -1, 22, -1,
23, -1, 24, -1, 15, -1, 8, -1, 16, -1,
17, -1, 9, -1, 10, -1, 5, -1, 27, -1,
23, -1, 12, -1, 7, -1, 13, -1, 3, -1,
25, -1, 26, -1, 18, -1, 19, -1, 21, -1,
24, -1, 6, -1, 14, -1, 22, -1, 29, -1,
31, 50, -1, 31, 51, -1, 50, 31, 51, -1,
29, 31, 51, -1, 51, -1, -1, 28, 29, -1,
-1, 34, 60, -1, -1, 33, 51, -1, -1, 15,
33, 61, -1, -1, 29, -1, 31, 29, -1, 57,
31, 58, 59, -1, 30, -1, -1, 29, -1, -1,
30, -1, 30, -1
};
 
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
0, 138, 138, 139, 143, 144, 145, 146, 147, 148,
149, 150, 151, 152, 153, 154, 155, 156, 160, 162,
163, 170, 177, 178, 181, 182, 183, 184, 185, 186,
187, 188, 191, 192, 196, 198, 200, 202, 204, 206,
211, 212, 216, 217, 221, 222, 226, 227, 229, 230,
234, 235, 236, 237, 241, 242, 243, 244, 245, 246,
247, 248, 249, 250, 251, 252, 259, 260, 261, 262,
263, 264, 265, 266, 267, 268, 271, 272, 278, 284,
290, 298, 299, 302, 303, 307, 308, 312, 313, 316,
317, 320, 321, 327, 335, 336, 339, 340, 343, 345
0, 139, 139, 140, 144, 145, 146, 147, 148, 149,
150, 151, 152, 153, 154, 155, 156, 157, 161, 163,
164, 171, 178, 179, 182, 183, 184, 185, 186, 187,
188, 189, 192, 193, 197, 199, 201, 203, 205, 207,
212, 213, 217, 218, 222, 223, 227, 228, 230, 231,
235, 236, 237, 238, 242, 243, 244, 245, 246, 247,
248, 249, 250, 251, 252, 253, 260, 261, 262, 263,
264, 265, 266, 267, 268, 269, 272, 273, 279, 285,
291, 299, 300, 303, 304, 308, 309, 313, 314, 317,
318, 321, 322, 328, 336, 337, 340, 341, 344, 346
};
#endif
 
#if YYDEBUG || YYERROR_VERBOSE || 0
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
606,13 → 634,13
"secline", "attr_list", "opt_comma", "opt_number", "attr",
"keyword_as_name", "opt_name2", "opt_name", "opt_equalequal_name",
"opt_ordinal", "opt_equal_name", "opt_base", "anylang_id", "opt_digits",
"opt_id", "NUMBER", "VMA", YY_NULL
"opt_id", "NUMBER", "VMA", 0
};
#endif
 
# ifdef YYPRINT
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
(internal) symbol number NUM (which must be that of a token). */
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
token YYLEX-NUM. */
static const yytype_uint16 yytoknum[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
622,18 → 650,69
};
# endif
 
#define YYPACT_NINF -82
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
0, 35, 36, 36, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 38, 38,
38, 39, 40, 40, 41, 41, 41, 41, 41, 41,
41, 41, 42, 42, 43, 43, 43, 43, 43, 43,
44, 44, 45, 45, 46, 46, 47, 47, 48, 48,
49, 49, 49, 49, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 51, 51, 51, 51,
51, 52, 52, 53, 53, 54, 54, 55, 55, 56,
56, 57, 57, 57, 58, 58, 59, 59, 60, 61
};
 
#define yypact_value_is_default(Yystate) \
(!!((Yystate) == (-82)))
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
0, 2, 2, 1, 3, 3, 2, 3, 3, 2,
2, 2, 2, 2, 2, 4, 2, 4, 0, 1,
2, 7, 3, 0, 1, 1, 1, 1, 1, 1,
1, 1, 2, 1, 8, 8, 6, 6, 6, 4,
2, 1, 2, 2, 3, 1, 1, 0, 2, 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2, 2, 3,
3, 1, 0, 2, 0, 2, 0, 2, 0, 3,
0, 1, 2, 4, 1, 0, 1, 0, 1, 1
};
 
#define YYTABLE_NINF -48
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
STATE-NUM when YYTABLE doesn't specify something else to do. Zero
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
0, 82, 82, 0, 0, 0, 0, 0, 0, 18,
0, 0, 0, 0, 0, 3, 66, 60, 73, 64,
55, 58, 59, 63, 65, 74, 54, 56, 57, 69,
70, 71, 75, 62, 72, 67, 68, 61, 76, 0,
0, 81, 90, 90, 6, 98, 49, 49, 50, 51,
52, 53, 9, 45, 10, 0, 11, 41, 12, 19,
88, 0, 13, 33, 14, 91, 0, 0, 16, 1,
2, 0, 77, 78, 0, 0, 4, 5, 0, 7,
8, 46, 0, 43, 42, 40, 20, 0, 86, 0,
0, 32, 0, 92, 95, 0, 80, 79, 0, 48,
44, 87, 0, 47, 84, 0, 15, 94, 97, 17,
99, 89, 85, 23, 0, 0, 39, 0, 96, 93,
28, 29, 26, 27, 30, 31, 24, 25, 47, 47,
83, 84, 84, 84, 84, 23, 38, 0, 36, 37,
21, 22, 84, 84, 34, 35
};
 
#define yytable_value_is_error(Yytable_value) \
0
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 14, 15, 58, 59, 128, 129, 62, 63, 56,
57, 52, 82, 79, 53, 40, 41, 42, 116, 103,
88, 76, 67, 108, 119, 46, 111
};
 
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -82
static const yytype_int8 yypact[] =
{
122, 11, 11, -25, 9, 9, 53, 53, -17, 11,
653,28 → 732,6
-82, -82, 92, 92, -82, -82
};
 
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
Performed when YYTABLE does not specify something else to do. Zero
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
0, 82, 82, 0, 0, 0, 0, 0, 0, 18,
0, 0, 0, 0, 0, 3, 66, 60, 73, 64,
55, 58, 59, 63, 65, 74, 54, 56, 57, 69,
70, 71, 75, 62, 72, 67, 68, 61, 76, 0,
0, 81, 90, 90, 6, 98, 49, 49, 50, 51,
52, 53, 9, 45, 10, 0, 11, 41, 12, 19,
88, 0, 13, 33, 14, 91, 0, 0, 16, 1,
2, 0, 77, 78, 0, 0, 4, 5, 0, 7,
8, 46, 0, 43, 42, 40, 20, 0, 86, 0,
0, 32, 0, 92, 95, 0, 80, 79, 0, 48,
44, 87, 0, 47, 84, 0, 15, 94, 97, 17,
99, 89, 85, 23, 0, 0, 39, 0, 96, 93,
28, 29, 26, 27, 30, 31, 24, 25, 47, 47,
83, 84, 84, 84, 84, 23, 38, 0, 36, 37,
21, 22, 84, 84, 34, 35
};
 
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
683,17 → 740,11
-82, 101, -82, -82, -82, -5, -82
};
 
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 14, 15, 58, 59, 128, 129, 62, 63, 56,
57, 52, 82, 79, 53, 40, 41, 42, 116, 103,
88, 76, 67, 108, 119, 46, 111
};
 
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule whose
number is the opposite. If YYTABLE_NINF, syntax error. */
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -48
static const yytype_int16 yytable[] =
{
47, 60, 114, 54, 44, 115, 64, 48, 49, 50,
753,37 → 804,6
53, 40, 29, 60, 53, 53
};
 
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
0, 35, 36, 36, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 38, 38,
38, 39, 40, 40, 41, 41, 41, 41, 41, 41,
41, 41, 42, 42, 43, 43, 43, 43, 43, 43,
44, 44, 45, 45, 46, 46, 47, 47, 48, 48,
49, 49, 49, 49, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 51, 51, 51, 51,
51, 52, 52, 53, 53, 54, 54, 55, 55, 56,
56, 57, 57, 57, 58, 58, 59, 59, 60, 61
};
 
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
0, 2, 2, 1, 3, 3, 2, 3, 3, 2,
2, 2, 2, 2, 2, 4, 2, 4, 0, 1,
2, 7, 3, 0, 1, 1, 1, 1, 1, 1,
1, 1, 2, 1, 8, 8, 6, 6, 6, 4,
2, 1, 2, 2, 3, 1, 1, 0, 2, 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2, 2, 3,
3, 1, 0, 2, 0, 2, 0, 2, 0, 3,
0, 1, 2, 4, 1, 0, 1, 0, 1, 1
};
 
 
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY (-2)
794,16 → 814,22
#define YYERROR goto yyerrorlab
 
 
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.
Once GCC version 2 has supplanted version 1, this can go. */
 
#define YYFAIL goto yyerrlab
 
#define YYRECOVERING() (!!yyerrstatus)
 
#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY) \
if (yychar == YYEMPTY && yylen == 1) \
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (yylen); \
yystate = *yyssp; \
yytoken = YYTRANSLATE (yychar); \
YYPOPSTACK (1); \
goto yybackup; \
} \
else \
811,14 → 837,63
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (0)
while (YYID (0))
 
/* Error token number */
 
#define YYTERROR 1
#define YYERRCODE 256
 
 
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
If N is 0, then set CURRENT to the empty location which ends
the previous symbol: RHS[0] (always defined). */
 
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N) \
do \
if (YYID (N)) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
while (YYID (0))
#endif
 
 
/* YY_LOCATION_PRINT -- Print the location on the stream.
This macro was not mandated originally: define only if we know
we won't break user code: when these are the locations we know. */
 
#ifndef YY_LOCATION_PRINT
# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
# define YY_LOCATION_PRINT(File, Loc) \
fprintf (File, "%d.%d-%d.%d", \
(Loc).first_line, (Loc).first_column, \
(Loc).last_line, (Loc).last_column)
# else
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
# endif
#endif
 
 
/* YYLEX -- calling `yylex' with the right arguments. */
 
#ifdef YYLEX_PARAM
# define YYLEX yylex (YYLEX_PARAM)
#else
# define YYLEX yylex ()
#endif
 
/* Enable debugging if requested. */
#if YYDEBUG
 
831,14 → 906,8
do { \
if (yydebug) \
YYFPRINTF Args; \
} while (0)
} while (YYID (0))
 
/* This macro is provided for backward compatibility. */
#ifndef YY_LOCATION_PRINT
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
#endif
 
 
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
do { \
if (yydebug) \
848,26 → 917,40
Type, Value); \
YYFPRINTF (stderr, "\n"); \
} \
} while (0)
} while (YYID (0))
 
 
/*----------------------------------------.
| Print this symbol's value on YYOUTPUT. |
`----------------------------------------*/
/*--------------------------------.
| Print this symbol on YYOUTPUT. |
`--------------------------------*/
 
/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
#else
static void
yy_symbol_value_print (yyoutput, yytype, yyvaluep)
FILE *yyoutput;
int yytype;
YYSTYPE const * const yyvaluep;
#endif
{
FILE *yyo = yyoutput;
YYUSE (yyo);
if (!yyvaluep)
return;
# ifdef YYPRINT
if (yytype < YYNTOKENS)
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# else
YYUSE (yyoutput);
# endif
YYUSE (yytype);
switch (yytype)
{
default:
break;
}
}
 
 
/*--------------------------------.
874,11 → 957,22
| Print this symbol on YYOUTPUT. |
`--------------------------------*/
 
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
#else
static void
yy_symbol_print (yyoutput, yytype, yyvaluep)
FILE *yyoutput;
int yytype;
YYSTYPE const * const yyvaluep;
#endif
{
YYFPRINTF (yyoutput, "%s %s (",
yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
if (yytype < YYNTOKENS)
YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
else
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
 
yy_symbol_value_print (yyoutput, yytype, yyvaluep);
YYFPRINTF (yyoutput, ")");
889,15 → 983,20
| TOP (included). |
`------------------------------------------------------------------*/
 
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
#else
static void
yy_stack_print (bottom, top)
yytype_int16 *bottom;
yytype_int16 *top;
#endif
{
YYFPRINTF (stderr, "Stack now");
for (; yybottom <= yytop; yybottom++)
{
int yybot = *yybottom;
YYFPRINTF (stderr, " %d", yybot);
}
for (; bottom <= top; ++bottom)
YYFPRINTF (stderr, " %d", *bottom);
YYFPRINTF (stderr, "\n");
}
 
905,7 → 1004,7
do { \
if (yydebug) \
yy_stack_print ((Bottom), (Top)); \
} while (0)
} while (YYID (0))
 
 
/*------------------------------------------------.
912,23 → 1011,30
| Report that the YYRULE is going to be reduced. |
`------------------------------------------------*/
 
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
#else
static void
yy_reduce_print (yyvsp, yyrule)
YYSTYPE *yyvsp;
int yyrule;
#endif
{
unsigned long int yylno = yyrline[yyrule];
int yynrhs = yyr2[yyrule];
int yyi;
unsigned long int yylno = yyrline[yyrule];
YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
yyrule - 1, yylno);
/* The symbols being reduced. */
for (yyi = 0; yyi < yynrhs; yyi++)
{
YYFPRINTF (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr,
yystos[yyssp[yyi + 1 - yynrhs]],
fprintf (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
&(yyvsp[(yyi + 1) - (yynrhs)])
);
YYFPRINTF (stderr, "\n");
fprintf (stderr, "\n");
}
}
 
935,8 → 1041,8
# define YY_REDUCE_PRINT(Rule) \
do { \
if (yydebug) \
yy_reduce_print (yyssp, yyvsp, Rule); \
} while (0)
yy_reduce_print (yyvsp, Rule); \
} while (YYID (0))
 
/* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */
966,6 → 1072,7
#endif
 
 
 
#if YYERROR_VERBOSE
 
# ifndef yystrlen
973,8 → 1080,15
# define yystrlen strlen
# else
/* Return the length of YYSTR. */
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static YYSIZE_T
yystrlen (const char *yystr)
#else
static YYSIZE_T
yystrlen (yystr)
const char *yystr;
#endif
{
YYSIZE_T yylen;
for (yylen = 0; yystr[yylen]; yylen++)
990,8 → 1104,16
# else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
YYDEST. */
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static char *
yystpcpy (char *yydest, const char *yysrc)
#else
static char *
yystpcpy (yydest, yysrc)
char *yydest;
const char *yysrc;
#endif
{
char *yyd = yydest;
const char *yys = yysrc;
1052,226 → 1174,251
}
# endif
 
/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
about the unexpected token YYTOKEN for the state stack whose top is
YYSSP.
/* Copy into YYRESULT an error message about the unexpected token
YYCHAR while in state YYSTATE. Return the number of bytes copied,
including the terminating null byte. If YYRESULT is null, do not
copy anything; just return the number of bytes that would be
copied. As a special case, return 0 if an ordinary "syntax error"
message will do. Return YYSIZE_MAXIMUM if overflow occurs during
size calculation. */
static YYSIZE_T
yysyntax_error (char *yyresult, int yystate, int yychar)
{
int yyn = yypact[yystate];
 
Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
not large enough to hold the message. In that case, also set
*YYMSG_ALLOC to the required number of bytes. Return 2 if the
required number of bytes is too large to store. */
static int
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
yytype_int16 *yyssp, int yytoken)
if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
return 0;
else
{
YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
int yytype = YYTRANSLATE (yychar);
YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
YYSIZE_T yysize = yysize0;
YYSIZE_T yysize1;
int yysize_overflow = 0;
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
/* Internationalized format string. */
const char *yyformat = YY_NULL;
/* Arguments of yyformat. */
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
/* Number of reported tokens (one for the "unexpected", one per
"expected"). */
int yycount = 0;
int yyx;
 
/* There are many possibilities here to consider:
- If this state is a consistent state with a default action, then
the only way this function was invoked is if the default action
is an error action. In that case, don't check for expected
tokens because there are none.
- The only way there can be no lookahead present (in yychar) is if
this state is a consistent state with a default action. Thus,
detecting the absence of a lookahead is sufficient to determine
that there is no unexpected or expected token to report. In that
case, just report a simple "syntax error".
- Don't assume there isn't a lookahead just because this state is a
consistent state with a default action. There might have been a
previous inconsistent state, consistent state with a non-default
action, or user semantic action that manipulated yychar.
- Of course, the expected token list depends on states to have
correct lookahead information, and it depends on the parser not
to perform extra reductions after fetching a lookahead from the
scanner and before detecting a syntax error. Thus, state merging
(from LALR or IELR) and default reductions corrupt the expected
token list. However, the list is correct for canonical LR with
one exception: it will still contain any token that will not be
accepted due to an error action in a later state.
*/
if (yytoken != YYEMPTY)
{
int yyn = yypact[*yyssp];
yyarg[yycount++] = yytname[yytoken];
if (!yypact_value_is_default (yyn))
{
# if 0
/* This is so xgettext sees the translatable formats that are
constructed on the fly. */
YY_("syntax error, unexpected %s");
YY_("syntax error, unexpected %s, expecting %s");
YY_("syntax error, unexpected %s, expecting %s or %s");
YY_("syntax error, unexpected %s, expecting %s or %s or %s");
YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
# endif
char *yyfmt;
char const *yyf;
static char const yyunexpected[] = "syntax error, unexpected %s";
static char const yyexpecting[] = ", expecting %s";
static char const yyor[] = " or %s";
char yyformat[sizeof yyunexpected
+ sizeof yyexpecting - 1
+ ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
* (sizeof yyor - 1))];
char const *yyprefix = yyexpecting;
 
/* Start YYX at -YYN if negative to avoid negative indexes in
YYCHECK. In other words, skip the first -YYN actions for
this state because they are default actions. */
YYCHECK. */
int yyxbegin = yyn < 0 ? -yyn : 0;
 
/* Stay within bounds of both yycheck and yytname. */
int yychecklim = YYLAST - yyn + 1;
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
int yyx;
int yycount = 1;
 
yyarg[0] = yytname[yytype];
yyfmt = yystpcpy (yyformat, yyunexpected);
 
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
&& !yytable_value_is_error (yytable[yyx + yyn]))
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{
if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
{
yycount = 1;
yysize = yysize0;
yyformat[sizeof yyunexpected - 1] = '\0';
break;
}
yyarg[yycount++] = yytname[yyx];
{
YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
if (! (yysize <= yysize1
&& yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
yysize1 = yysize + yytnamerr (0, yytname[yyx]);
yysize_overflow |= (yysize1 < yysize);
yysize = yysize1;
yyfmt = yystpcpy (yyfmt, yyprefix);
yyprefix = yyor;
}
}
}
}
 
switch (yycount)
{
# define YYCASE_(N, S) \
case N: \
yyformat = S; \
break
YYCASE_(0, YY_("syntax error"));
YYCASE_(1, YY_("syntax error, unexpected %s"));
YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
# undef YYCASE_
}
 
{
YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
yyf = YY_(yyformat);
yysize1 = yysize + yystrlen (yyf);
yysize_overflow |= (yysize1 < yysize);
yysize = yysize1;
}
 
if (*yymsg_alloc < yysize)
if (yysize_overflow)
return YYSIZE_MAXIMUM;
 
if (yyresult)
{
*yymsg_alloc = 2 * yysize;
if (! (yysize <= *yymsg_alloc
&& *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
*yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
return 1;
}
 
/* Avoid sprintf, as that infringes on the user's name space.
Don't have undefined behavior even if the translation
produced a string with the wrong number of "%s"s. */
{
char *yyp = *yymsg;
char *yyp = yyresult;
int yyi = 0;
while ((*yyp = *yyformat) != '\0')
if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
while ((*yyp = *yyf) != '\0')
{
if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
{
yyp += yytnamerr (yyp, yyarg[yyi++]);
yyformat += 2;
yyf += 2;
}
else
{
yyp++;
yyformat++;
yyf++;
}
}
return 0;
}
return yysize;
}
}
#endif /* YYERROR_VERBOSE */
 
 
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
`-----------------------------------------------*/
 
/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
#else
static void
yydestruct (yymsg, yytype, yyvaluep)
const char *yymsg;
int yytype;
YYSTYPE *yyvaluep;
#endif
{
YYUSE (yyvaluep);
 
if (!yymsg)
yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
 
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
YYUSE (yytype);
YY_IGNORE_MAYBE_UNINITIALIZED_END
switch (yytype)
{
 
default:
break;
}
}
 
 
/* Prevent warnings from -Wmissing-prototypes. */
 
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else
int yyparse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int yyparse (void);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */
 
/* The lookahead symbol. */
 
 
/* The look-ahead symbol. */
int yychar;
 
/* The semantic value of the lookahead symbol. */
/* The semantic value of the look-ahead symbol. */
YYSTYPE yylval;
 
/* Number of syntax errors so far. */
int yynerrs;
 
 
 
/*----------.
| yyparse. |
`----------*/
 
#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
int
yyparse (void *YYPARSE_PARAM)
#else
int
yyparse (YYPARSE_PARAM)
void *YYPARSE_PARAM;
#endif
#else /* ! YYPARSE_PARAM */
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
int
yyparse (void)
#else
int
yyparse ()
 
#endif
#endif
{
 
int yystate;
int yyn;
int yyresult;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
/* Look-ahead token as an internal (translated) token number. */
int yytoken = 0;
#if YYERROR_VERBOSE
/* Buffer for error messages, and its allocated size. */
char yymsgbuf[128];
char *yymsg = yymsgbuf;
YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif
 
/* The stacks and their tools:
'yyss': related to states.
'yyvs': related to semantic values.
/* Three stacks and their tools:
`yyss': related to states,
`yyvs': related to semantic values,
`yyls': related to locations.
 
Refer to the stacks through separate pointers, to allow yyoverflow
Refer to the stacks thru separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
 
/* The state stack. */
yytype_int16 yyssa[YYINITDEPTH];
yytype_int16 *yyss;
yytype_int16 *yyss = yyssa;
yytype_int16 *yyssp;
 
/* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH];
YYSTYPE *yyvs;
YYSTYPE *yyvs = yyvsa;
YYSTYPE *yyvsp;
 
YYSIZE_T yystacksize;
 
int yyn;
int yyresult;
/* Lookahead token as an internal (translated) token number. */
int yytoken = 0;
 
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
 
YYSIZE_T yystacksize = YYINITDEPTH;
 
/* The variables used to return semantic value and location from the
action routines. */
YYSTYPE yyval;
 
#if YYERROR_VERBOSE
/* Buffer for error messages, and its allocated size. */
char yymsgbuf[128];
char *yymsg = yymsgbuf;
YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif
 
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
 
/* The number of symbols on the RHS of the reduced rule.
Keep to zero when no symbol should be popped. */
int yylen = 0;
 
yyssp = yyss = yyssa;
yyvsp = yyvs = yyvsa;
yystacksize = YYINITDEPTH;
 
YYDPRINTF ((stderr, "Starting parse\n"));
 
yystate = 0;
1278,6 → 1425,15
yyerrstatus = 0;
yynerrs = 0;
yychar = YYEMPTY; /* Cause a token to be read. */
 
/* Initialize stack pointers.
Waste one element of value and location stack
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
 
yyssp = yyss;
yyvsp = yyvs;
 
goto yysetstate;
 
/*------------------------------------------------------------.
1304,6 → 1460,7
YYSTYPE *yyvs1 = yyvs;
yytype_int16 *yyss1 = yyss;
 
 
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
1311,6 → 1468,7
yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
 
&yystacksize);
 
yyss = yyss1;
1333,8 → 1491,9
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyexhaustedlab;
YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
YYSTACK_RELOCATE (yyss);
YYSTACK_RELOCATE (yyvs);
 
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
1345,6 → 1504,7
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
 
 
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
 
1354,9 → 1514,6
 
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
if (yystate == YYFINAL)
YYACCEPT;
 
goto yybackup;
 
/*-----------.
1365,20 → 1522,20
yybackup:
 
/* Do appropriate processing given the current state. Read a
lookahead token if we need one and don't already have one. */
look-ahead token if we need one and don't already have one. */
 
/* First try to decide what to do without reference to lookahead token. */
/* First try to decide what to do without reference to look-ahead token. */
yyn = yypact[yystate];
if (yypact_value_is_default (yyn))
if (yyn == YYPACT_NINF)
goto yydefault;
 
/* Not known => get a lookahead token if don't already have one. */
/* Not known => get a look-ahead token if don't already have one. */
 
/* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
/* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
yychar = yylex ();
yychar = YYLEX;
}
 
if (yychar <= YYEOF)
1400,27 → 1557,29
yyn = yytable[yyn];
if (yyn <= 0)
{
if (yytable_value_is_error (yyn))
if (yyn == 0 || yyn == YYTABLE_NINF)
goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
 
if (yyn == YYFINAL)
YYACCEPT;
 
/* Count tokens shifted since error; after three, turn off error
status. */
if (yyerrstatus)
yyerrstatus--;
 
/* Shift the lookahead token. */
/* Shift the look-ahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 
/* Discard the shifted token. */
/* Discard the shifted token unless it is eof. */
if (yychar != YYEOF)
yychar = YYEMPTY;
 
yystate = yyn;
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
YY_IGNORE_MAYBE_UNINITIALIZED_END
 
goto yynewstate;
 
1443,7 → 1602,7
yylen = yyr2[yyn];
 
/* If YYLEN is nonzero, implement the default value of the action:
'$$ = $1'.
`$$ = $1'.
 
Otherwise, the following line sets YYVAL to garbage.
This behavior is undocumented and Bison
1457,548 → 1616,454
switch (yyn)
{
case 4:
#line 143 "deffilep.y" /* yacc.c:1661 */
{ def_image_name ((yyvsp[-1].id), (yyvsp[0].vma), 0); }
#line 1463 "deffilep.c" /* yacc.c:1661 */
#line 144 "deffilep.y"
{ def_image_name ((yyvsp[(2) - (3)].id), (yyvsp[(3) - (3)].vma), 0); }
break;
 
case 5:
#line 144 "deffilep.y" /* yacc.c:1661 */
{ def_image_name ((yyvsp[-1].id), (yyvsp[0].vma), 1); }
#line 1469 "deffilep.c" /* yacc.c:1661 */
#line 145 "deffilep.y"
{ def_image_name ((yyvsp[(2) - (3)].id), (yyvsp[(3) - (3)].vma), 1); }
break;
 
case 6:
#line 145 "deffilep.y" /* yacc.c:1661 */
{ def_description ((yyvsp[0].id));}
#line 1475 "deffilep.c" /* yacc.c:1661 */
#line 146 "deffilep.y"
{ def_description ((yyvsp[(2) - (2)].id));}
break;
 
case 7:
#line 146 "deffilep.y" /* yacc.c:1661 */
{ def_stacksize ((yyvsp[-1].number), (yyvsp[0].number));}
#line 1481 "deffilep.c" /* yacc.c:1661 */
#line 147 "deffilep.y"
{ def_stacksize ((yyvsp[(2) - (3)].number), (yyvsp[(3) - (3)].number));}
break;
 
case 8:
#line 147 "deffilep.y" /* yacc.c:1661 */
{ def_heapsize ((yyvsp[-1].number), (yyvsp[0].number));}
#line 1487 "deffilep.c" /* yacc.c:1661 */
#line 148 "deffilep.y"
{ def_heapsize ((yyvsp[(2) - (3)].number), (yyvsp[(3) - (3)].number));}
break;
 
case 9:
#line 148 "deffilep.y" /* yacc.c:1661 */
{ def_section ("CODE", (yyvsp[0].number));}
#line 1493 "deffilep.c" /* yacc.c:1661 */
#line 149 "deffilep.y"
{ def_section ("CODE", (yyvsp[(2) - (2)].number));}
break;
 
case 10:
#line 149 "deffilep.y" /* yacc.c:1661 */
{ def_section ("DATA", (yyvsp[0].number));}
#line 1499 "deffilep.c" /* yacc.c:1661 */
#line 150 "deffilep.y"
{ def_section ("DATA", (yyvsp[(2) - (2)].number));}
break;
 
case 14:
#line 153 "deffilep.y" /* yacc.c:1661 */
{ def_version ((yyvsp[0].number), 0);}
#line 1505 "deffilep.c" /* yacc.c:1661 */
#line 154 "deffilep.y"
{ def_version ((yyvsp[(2) - (2)].number), 0);}
break;
 
case 15:
#line 154 "deffilep.y" /* yacc.c:1661 */
{ def_version ((yyvsp[-2].number), (yyvsp[0].number));}
#line 1511 "deffilep.c" /* yacc.c:1661 */
#line 155 "deffilep.y"
{ def_version ((yyvsp[(2) - (4)].number), (yyvsp[(4) - (4)].number));}
break;
 
case 16:
#line 155 "deffilep.y" /* yacc.c:1661 */
{ def_directive ((yyvsp[0].id));}
#line 1517 "deffilep.c" /* yacc.c:1661 */
#line 156 "deffilep.y"
{ def_directive ((yyvsp[(2) - (2)].id));}
break;
 
case 17:
#line 156 "deffilep.y" /* yacc.c:1661 */
{ def_aligncomm ((yyvsp[-2].id), (yyvsp[0].number));}
#line 1523 "deffilep.c" /* yacc.c:1661 */
#line 157 "deffilep.y"
{ def_aligncomm ((yyvsp[(2) - (4)].id), (yyvsp[(4) - (4)].number));}
break;
 
case 21:
#line 171 "deffilep.y" /* yacc.c:1661 */
{ def_exports ((yyvsp[-6].id), (yyvsp[-5].id), (yyvsp[-4].number), (yyvsp[-2].number), (yyvsp[0].id)); }
#line 1529 "deffilep.c" /* yacc.c:1661 */
#line 172 "deffilep.y"
{ def_exports ((yyvsp[(1) - (7)].id), (yyvsp[(2) - (7)].id), (yyvsp[(3) - (7)].number), (yyvsp[(5) - (7)].number), (yyvsp[(7) - (7)].id)); }
break;
 
case 22:
#line 177 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = (yyvsp[-2].number) | (yyvsp[0].number); }
#line 1535 "deffilep.c" /* yacc.c:1661 */
#line 178 "deffilep.y"
{ (yyval.number) = (yyvsp[(1) - (3)].number) | (yyvsp[(3) - (3)].number); }
break;
 
case 23:
#line 178 "deffilep.y" /* yacc.c:1661 */
#line 179 "deffilep.y"
{ (yyval.number) = 0; }
#line 1541 "deffilep.c" /* yacc.c:1661 */
break;
 
case 24:
#line 181 "deffilep.y" /* yacc.c:1661 */
#line 182 "deffilep.y"
{ (yyval.number) = 1; }
#line 1547 "deffilep.c" /* yacc.c:1661 */
break;
 
case 25:
#line 182 "deffilep.y" /* yacc.c:1661 */
#line 183 "deffilep.y"
{ (yyval.number) = 1; }
#line 1553 "deffilep.c" /* yacc.c:1661 */
break;
 
case 26:
#line 183 "deffilep.y" /* yacc.c:1661 */
#line 184 "deffilep.y"
{ (yyval.number) = 2; }
#line 1559 "deffilep.c" /* yacc.c:1661 */
break;
 
case 27:
#line 184 "deffilep.y" /* yacc.c:1661 */
#line 185 "deffilep.y"
{ (yyval.number) = 2; }
#line 1565 "deffilep.c" /* yacc.c:1661 */
break;
 
case 28:
#line 185 "deffilep.y" /* yacc.c:1661 */
#line 186 "deffilep.y"
{ (yyval.number) = 4; }
#line 1571 "deffilep.c" /* yacc.c:1661 */
break;
 
case 29:
#line 186 "deffilep.y" /* yacc.c:1661 */
#line 187 "deffilep.y"
{ (yyval.number) = 4; }
#line 1577 "deffilep.c" /* yacc.c:1661 */
break;
 
case 30:
#line 187 "deffilep.y" /* yacc.c:1661 */
#line 188 "deffilep.y"
{ (yyval.number) = 8; }
#line 1583 "deffilep.c" /* yacc.c:1661 */
break;
 
case 31:
#line 188 "deffilep.y" /* yacc.c:1661 */
#line 189 "deffilep.y"
{ (yyval.number) = 8; }
#line 1589 "deffilep.c" /* yacc.c:1661 */
break;
 
case 34:
#line 197 "deffilep.y" /* yacc.c:1661 */
{ def_import ((yyvsp[-7].id), (yyvsp[-5].id), (yyvsp[-3].id), (yyvsp[-1].id), -1, (yyvsp[0].id)); }
#line 1595 "deffilep.c" /* yacc.c:1661 */
#line 198 "deffilep.y"
{ def_import ((yyvsp[(1) - (8)].id), (yyvsp[(3) - (8)].id), (yyvsp[(5) - (8)].id), (yyvsp[(7) - (8)].id), -1, (yyvsp[(8) - (8)].id)); }
break;
 
case 35:
#line 199 "deffilep.y" /* yacc.c:1661 */
{ def_import ((yyvsp[-7].id), (yyvsp[-5].id), (yyvsp[-3].id), 0, (yyvsp[-1].number), (yyvsp[0].id)); }
#line 1601 "deffilep.c" /* yacc.c:1661 */
#line 200 "deffilep.y"
{ def_import ((yyvsp[(1) - (8)].id), (yyvsp[(3) - (8)].id), (yyvsp[(5) - (8)].id), 0, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].id)); }
break;
 
case 36:
#line 201 "deffilep.y" /* yacc.c:1661 */
{ def_import ((yyvsp[-5].id), (yyvsp[-3].id), 0, (yyvsp[-1].id), -1, (yyvsp[0].id)); }
#line 1607 "deffilep.c" /* yacc.c:1661 */
#line 202 "deffilep.y"
{ def_import ((yyvsp[(1) - (6)].id), (yyvsp[(3) - (6)].id), 0, (yyvsp[(5) - (6)].id), -1, (yyvsp[(6) - (6)].id)); }
break;
 
case 37:
#line 203 "deffilep.y" /* yacc.c:1661 */
{ def_import ((yyvsp[-5].id), (yyvsp[-3].id), 0, 0, (yyvsp[-1].number), (yyvsp[0].id)); }
#line 1613 "deffilep.c" /* yacc.c:1661 */
#line 204 "deffilep.y"
{ def_import ((yyvsp[(1) - (6)].id), (yyvsp[(3) - (6)].id), 0, 0, (yyvsp[(5) - (6)].number), (yyvsp[(6) - (6)].id)); }
break;
 
case 38:
#line 205 "deffilep.y" /* yacc.c:1661 */
{ def_import( 0, (yyvsp[-5].id), (yyvsp[-3].id), (yyvsp[-1].id), -1, (yyvsp[0].id)); }
#line 1619 "deffilep.c" /* yacc.c:1661 */
#line 206 "deffilep.y"
{ def_import( 0, (yyvsp[(1) - (6)].id), (yyvsp[(3) - (6)].id), (yyvsp[(5) - (6)].id), -1, (yyvsp[(6) - (6)].id)); }
break;
 
case 39:
#line 207 "deffilep.y" /* yacc.c:1661 */
{ def_import ( 0, (yyvsp[-3].id), 0, (yyvsp[-1].id), -1, (yyvsp[0].id)); }
#line 1625 "deffilep.c" /* yacc.c:1661 */
#line 208 "deffilep.y"
{ def_import ( 0, (yyvsp[(1) - (4)].id), 0, (yyvsp[(3) - (4)].id), -1, (yyvsp[(4) - (4)].id)); }
break;
 
case 42:
#line 216 "deffilep.y" /* yacc.c:1661 */
{ def_section ((yyvsp[-1].id), (yyvsp[0].number));}
#line 1631 "deffilep.c" /* yacc.c:1661 */
#line 217 "deffilep.y"
{ def_section ((yyvsp[(1) - (2)].id), (yyvsp[(2) - (2)].number));}
break;
 
case 43:
#line 217 "deffilep.y" /* yacc.c:1661 */
{ def_section_alt ((yyvsp[-1].id), (yyvsp[0].id));}
#line 1637 "deffilep.c" /* yacc.c:1661 */
#line 218 "deffilep.y"
{ def_section_alt ((yyvsp[(1) - (2)].id), (yyvsp[(2) - (2)].id));}
break;
 
case 44:
#line 221 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = (yyvsp[-2].number) | (yyvsp[0].number); }
#line 1643 "deffilep.c" /* yacc.c:1661 */
#line 222 "deffilep.y"
{ (yyval.number) = (yyvsp[(1) - (3)].number) | (yyvsp[(3) - (3)].number); }
break;
 
case 45:
#line 222 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = (yyvsp[0].number); }
#line 1649 "deffilep.c" /* yacc.c:1661 */
#line 223 "deffilep.y"
{ (yyval.number) = (yyvsp[(1) - (1)].number); }
break;
 
case 48:
#line 229 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number)=(yyvsp[0].number);}
#line 1655 "deffilep.c" /* yacc.c:1661 */
#line 230 "deffilep.y"
{ (yyval.number)=(yyvsp[(2) - (2)].number);}
break;
 
case 49:
#line 230 "deffilep.y" /* yacc.c:1661 */
#line 231 "deffilep.y"
{ (yyval.number)=-1;}
#line 1661 "deffilep.c" /* yacc.c:1661 */
break;
 
case 50:
#line 234 "deffilep.y" /* yacc.c:1661 */
#line 235 "deffilep.y"
{ (yyval.number) = 1;}
#line 1667 "deffilep.c" /* yacc.c:1661 */
break;
 
case 51:
#line 235 "deffilep.y" /* yacc.c:1661 */
#line 236 "deffilep.y"
{ (yyval.number) = 2;}
#line 1673 "deffilep.c" /* yacc.c:1661 */
break;
 
case 52:
#line 236 "deffilep.y" /* yacc.c:1661 */
#line 237 "deffilep.y"
{ (yyval.number)=4;}
#line 1679 "deffilep.c" /* yacc.c:1661 */
break;
 
case 53:
#line 237 "deffilep.y" /* yacc.c:1661 */
#line 238 "deffilep.y"
{ (yyval.number)=8;}
#line 1685 "deffilep.c" /* yacc.c:1661 */
break;
 
case 54:
#line 241 "deffilep.y" /* yacc.c:1661 */
#line 242 "deffilep.y"
{ (yyval.id_const) = "BASE"; }
#line 1691 "deffilep.c" /* yacc.c:1661 */
break;
 
case 55:
#line 242 "deffilep.y" /* yacc.c:1661 */
#line 243 "deffilep.y"
{ (yyval.id_const) = "CODE"; }
#line 1697 "deffilep.c" /* yacc.c:1661 */
break;
 
case 56:
#line 243 "deffilep.y" /* yacc.c:1661 */
#line 244 "deffilep.y"
{ (yyval.id_const) = "CONSTANT"; }
#line 1703 "deffilep.c" /* yacc.c:1661 */
break;
 
case 57:
#line 244 "deffilep.y" /* yacc.c:1661 */
#line 245 "deffilep.y"
{ (yyval.id_const) = "constant"; }
#line 1709 "deffilep.c" /* yacc.c:1661 */
break;
 
case 58:
#line 245 "deffilep.y" /* yacc.c:1661 */
#line 246 "deffilep.y"
{ (yyval.id_const) = "DATA"; }
#line 1715 "deffilep.c" /* yacc.c:1661 */
break;
 
case 59:
#line 246 "deffilep.y" /* yacc.c:1661 */
#line 247 "deffilep.y"
{ (yyval.id_const) = "data"; }
#line 1721 "deffilep.c" /* yacc.c:1661 */
break;
 
case 60:
#line 247 "deffilep.y" /* yacc.c:1661 */
#line 248 "deffilep.y"
{ (yyval.id_const) = "DESCRIPTION"; }
#line 1727 "deffilep.c" /* yacc.c:1661 */
break;
 
case 61:
#line 248 "deffilep.y" /* yacc.c:1661 */
#line 249 "deffilep.y"
{ (yyval.id_const) = "DIRECTIVE"; }
#line 1733 "deffilep.c" /* yacc.c:1661 */
break;
 
case 62:
#line 249 "deffilep.y" /* yacc.c:1661 */
#line 250 "deffilep.y"
{ (yyval.id_const) = "EXECUTE"; }
#line 1739 "deffilep.c" /* yacc.c:1661 */
break;
 
case 63:
#line 250 "deffilep.y" /* yacc.c:1661 */
#line 251 "deffilep.y"
{ (yyval.id_const) = "EXPORTS"; }
#line 1745 "deffilep.c" /* yacc.c:1661 */
break;
 
case 64:
#line 251 "deffilep.y" /* yacc.c:1661 */
#line 252 "deffilep.y"
{ (yyval.id_const) = "HEAPSIZE"; }
#line 1751 "deffilep.c" /* yacc.c:1661 */
break;
 
case 65:
#line 252 "deffilep.y" /* yacc.c:1661 */
#line 253 "deffilep.y"
{ (yyval.id_const) = "IMPORTS"; }
#line 1757 "deffilep.c" /* yacc.c:1661 */
break;
 
case 66:
#line 259 "deffilep.y" /* yacc.c:1661 */
#line 260 "deffilep.y"
{ (yyval.id_const) = "NAME"; }
#line 1763 "deffilep.c" /* yacc.c:1661 */
break;
 
case 67:
#line 260 "deffilep.y" /* yacc.c:1661 */
#line 261 "deffilep.y"
{ (yyval.id_const) = "NONAME"; }
#line 1769 "deffilep.c" /* yacc.c:1661 */
break;
 
case 68:
#line 261 "deffilep.y" /* yacc.c:1661 */
#line 262 "deffilep.y"
{ (yyval.id_const) = "noname"; }
#line 1775 "deffilep.c" /* yacc.c:1661 */
break;
 
case 69:
#line 262 "deffilep.y" /* yacc.c:1661 */
#line 263 "deffilep.y"
{ (yyval.id_const) = "PRIVATE"; }
#line 1781 "deffilep.c" /* yacc.c:1661 */
break;
 
case 70:
#line 263 "deffilep.y" /* yacc.c:1661 */
#line 264 "deffilep.y"
{ (yyval.id_const) = "private"; }
#line 1787 "deffilep.c" /* yacc.c:1661 */
break;
 
case 71:
#line 264 "deffilep.y" /* yacc.c:1661 */
#line 265 "deffilep.y"
{ (yyval.id_const) = "READ"; }
#line 1793 "deffilep.c" /* yacc.c:1661 */
break;
 
case 72:
#line 265 "deffilep.y" /* yacc.c:1661 */
#line 266 "deffilep.y"
{ (yyval.id_const) = "SHARED"; }
#line 1799 "deffilep.c" /* yacc.c:1661 */
break;
 
case 73:
#line 266 "deffilep.y" /* yacc.c:1661 */
#line 267 "deffilep.y"
{ (yyval.id_const) = "STACKSIZE"; }
#line 1805 "deffilep.c" /* yacc.c:1661 */
break;
 
case 74:
#line 267 "deffilep.y" /* yacc.c:1661 */
#line 268 "deffilep.y"
{ (yyval.id_const) = "VERSION"; }
#line 1811 "deffilep.c" /* yacc.c:1661 */
break;
 
case 75:
#line 268 "deffilep.y" /* yacc.c:1661 */
#line 269 "deffilep.y"
{ (yyval.id_const) = "WRITE"; }
#line 1817 "deffilep.c" /* yacc.c:1661 */
break;
 
case 76:
#line 271 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id) = (yyvsp[0].id); }
#line 1823 "deffilep.c" /* yacc.c:1661 */
#line 272 "deffilep.y"
{ (yyval.id) = (yyvsp[(1) - (1)].id); }
break;
 
case 77:
#line 273 "deffilep.y" /* yacc.c:1661 */
#line 274 "deffilep.y"
{
char *name = xmalloc (strlen ((yyvsp[0].id_const)) + 2);
sprintf (name, ".%s", (yyvsp[0].id_const));
char *name = xmalloc (strlen ((yyvsp[(2) - (2)].id_const)) + 2);
sprintf (name, ".%s", (yyvsp[(2) - (2)].id_const));
(yyval.id) = name;
}
#line 1833 "deffilep.c" /* yacc.c:1661 */
break;
 
case 78:
#line 279 "deffilep.y" /* yacc.c:1661 */
#line 280 "deffilep.y"
{
char *name = def_pool_alloc (strlen ((yyvsp[0].id)) + 2);
sprintf (name, ".%s", (yyvsp[0].id));
char *name = def_pool_alloc (strlen ((yyvsp[(2) - (2)].id)) + 2);
sprintf (name, ".%s", (yyvsp[(2) - (2)].id));
(yyval.id) = name;
}
#line 1843 "deffilep.c" /* yacc.c:1661 */
break;
 
case 79:
#line 285 "deffilep.y" /* yacc.c:1661 */
#line 286 "deffilep.y"
{
char *name = def_pool_alloc (strlen ((yyvsp[-2].id_const)) + 1 + strlen ((yyvsp[0].id)) + 1);
sprintf (name, "%s.%s", (yyvsp[-2].id_const), (yyvsp[0].id));
char *name = def_pool_alloc (strlen ((yyvsp[(1) - (3)].id_const)) + 1 + strlen ((yyvsp[(3) - (3)].id)) + 1);
sprintf (name, "%s.%s", (yyvsp[(1) - (3)].id_const), (yyvsp[(3) - (3)].id));
(yyval.id) = name;
}
#line 1853 "deffilep.c" /* yacc.c:1661 */
break;
 
case 80:
#line 291 "deffilep.y" /* yacc.c:1661 */
#line 292 "deffilep.y"
{
char *name = def_pool_alloc (strlen ((yyvsp[-2].id)) + 1 + strlen ((yyvsp[0].id)) + 1);
sprintf (name, "%s.%s", (yyvsp[-2].id), (yyvsp[0].id));
char *name = def_pool_alloc (strlen ((yyvsp[(1) - (3)].id)) + 1 + strlen ((yyvsp[(3) - (3)].id)) + 1);
sprintf (name, "%s.%s", (yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].id));
(yyval.id) = name;
}
#line 1863 "deffilep.c" /* yacc.c:1661 */
break;
 
case 81:
#line 298 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id) = (yyvsp[0].id); }
#line 1869 "deffilep.c" /* yacc.c:1661 */
#line 299 "deffilep.y"
{ (yyval.id) = (yyvsp[(1) - (1)].id); }
break;
 
case 82:
#line 299 "deffilep.y" /* yacc.c:1661 */
#line 300 "deffilep.y"
{ (yyval.id) = ""; }
#line 1875 "deffilep.c" /* yacc.c:1661 */
break;
 
case 83:
#line 302 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id) = (yyvsp[0].id); }
#line 1881 "deffilep.c" /* yacc.c:1661 */
#line 303 "deffilep.y"
{ (yyval.id) = (yyvsp[(2) - (2)].id); }
break;
 
case 84:
#line 303 "deffilep.y" /* yacc.c:1661 */
#line 304 "deffilep.y"
{ (yyval.id) = 0; }
#line 1887 "deffilep.c" /* yacc.c:1661 */
break;
 
case 85:
#line 307 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = (yyvsp[0].number);}
#line 1893 "deffilep.c" /* yacc.c:1661 */
#line 308 "deffilep.y"
{ (yyval.number) = (yyvsp[(2) - (2)].number);}
break;
 
case 86:
#line 308 "deffilep.y" /* yacc.c:1661 */
#line 309 "deffilep.y"
{ (yyval.number) = -1;}
#line 1899 "deffilep.c" /* yacc.c:1661 */
break;
 
case 87:
#line 312 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id) = (yyvsp[0].id); }
#line 1905 "deffilep.c" /* yacc.c:1661 */
#line 313 "deffilep.y"
{ (yyval.id) = (yyvsp[(2) - (2)].id); }
break;
 
case 88:
#line 313 "deffilep.y" /* yacc.c:1661 */
#line 314 "deffilep.y"
{ (yyval.id) = 0; }
#line 1911 "deffilep.c" /* yacc.c:1661 */
break;
 
case 89:
#line 316 "deffilep.y" /* yacc.c:1661 */
{ (yyval.vma) = (yyvsp[0].vma);}
#line 1917 "deffilep.c" /* yacc.c:1661 */
#line 317 "deffilep.y"
{ (yyval.vma) = (yyvsp[(3) - (3)].vma);}
break;
 
case 90:
#line 317 "deffilep.y" /* yacc.c:1661 */
#line 318 "deffilep.y"
{ (yyval.vma) = (bfd_vma) -1;}
#line 1923 "deffilep.c" /* yacc.c:1661 */
break;
 
case 91:
#line 320 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id) = (yyvsp[0].id); }
#line 1929 "deffilep.c" /* yacc.c:1661 */
#line 321 "deffilep.y"
{ (yyval.id) = (yyvsp[(1) - (1)].id); }
break;
 
case 92:
#line 322 "deffilep.y" /* yacc.c:1661 */
#line 323 "deffilep.y"
{
char *id = def_pool_alloc (strlen ((yyvsp[0].id)) + 2);
sprintf (id, ".%s", (yyvsp[0].id));
char *id = def_pool_alloc (strlen ((yyvsp[(2) - (2)].id)) + 2);
sprintf (id, ".%s", (yyvsp[(2) - (2)].id));
(yyval.id) = id;
}
#line 1939 "deffilep.c" /* yacc.c:1661 */
break;
 
case 93:
#line 328 "deffilep.y" /* yacc.c:1661 */
#line 329 "deffilep.y"
{
char *id = def_pool_alloc (strlen ((yyvsp[-3].id)) + 1 + strlen ((yyvsp[-1].digits)) + strlen ((yyvsp[0].id)) + 1);
sprintf (id, "%s.%s%s", (yyvsp[-3].id), (yyvsp[-1].digits), (yyvsp[0].id));
char *id = def_pool_alloc (strlen ((yyvsp[(1) - (4)].id)) + 1 + strlen ((yyvsp[(3) - (4)].digits)) + strlen ((yyvsp[(4) - (4)].id)) + 1);
sprintf (id, "%s.%s%s", (yyvsp[(1) - (4)].id), (yyvsp[(3) - (4)].digits), (yyvsp[(4) - (4)].id));
(yyval.id) = id;
}
#line 1949 "deffilep.c" /* yacc.c:1661 */
break;
 
case 94:
#line 335 "deffilep.y" /* yacc.c:1661 */
{ (yyval.digits) = (yyvsp[0].digits); }
#line 1955 "deffilep.c" /* yacc.c:1661 */
#line 336 "deffilep.y"
{ (yyval.digits) = (yyvsp[(1) - (1)].digits); }
break;
 
case 95:
#line 336 "deffilep.y" /* yacc.c:1661 */
#line 337 "deffilep.y"
{ (yyval.digits) = ""; }
#line 1961 "deffilep.c" /* yacc.c:1661 */
break;
 
case 96:
#line 339 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id) = (yyvsp[0].id); }
#line 1967 "deffilep.c" /* yacc.c:1661 */
#line 340 "deffilep.y"
{ (yyval.id) = (yyvsp[(1) - (1)].id); }
break;
 
case 97:
#line 340 "deffilep.y" /* yacc.c:1661 */
#line 341 "deffilep.y"
{ (yyval.id) = ""; }
#line 1973 "deffilep.c" /* yacc.c:1661 */
break;
 
case 98:
#line 343 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = strtoul ((yyvsp[0].digits), 0, 0); }
#line 1979 "deffilep.c" /* yacc.c:1661 */
#line 344 "deffilep.y"
{ (yyval.number) = strtoul ((yyvsp[(1) - (1)].digits), 0, 0); }
break;
 
case 99:
#line 345 "deffilep.y" /* yacc.c:1661 */
{ (yyval.vma) = (bfd_vma) strtoull ((yyvsp[0].digits), 0, 0); }
#line 1985 "deffilep.c" /* yacc.c:1661 */
#line 346 "deffilep.y"
{ (yyval.vma) = (bfd_vma) strtoull ((yyvsp[(1) - (1)].digits), 0, 0); }
break;
 
 
#line 1989 "deffilep.c" /* yacc.c:1661 */
/* Line 1267 of yacc.c. */
#line 2065 "deffilep.c"
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
that yytoken be updated with the new translation. We take the
approach of translating immediately before every use of yytoken.
One alternative is translating here after every semantic action,
but that translation would be missed if the semantic action invokes
YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
incorrect destructor might then be invoked immediately. In the
case of YYERROR or YYBACKUP, subsequent parser actions might lead
to an incorrect destructor call or verbose syntax error message
before the lookahead is translated. */
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
 
YYPOPSTACK (yylen);
2007,7 → 2072,8
 
*++yyvsp = yyval;
 
/* Now 'shift' the result of the reduction. Determine what state
 
/* Now `shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule
number reduced by. */
 
2022,14 → 2088,10
goto yynewstate;
 
 
/*--------------------------------------.
| yyerrlab -- here on detecting error. |
`--------------------------------------*/
/*------------------------------------.
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
/* Make sure we have latest lookahead translation. See comments at
user semantic actions for why this is necessary. */
yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
 
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{
2037,36 → 2099,37
#if ! YYERROR_VERBOSE
yyerror (YY_("syntax error"));
#else
# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
yyssp, yytoken)
{
char const *yymsgp = YY_("syntax error");
int yysyntax_error_status;
yysyntax_error_status = YYSYNTAX_ERROR;
if (yysyntax_error_status == 0)
yymsgp = yymsg;
else if (yysyntax_error_status == 1)
YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
{
YYSIZE_T yyalloc = 2 * yysize;
if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
yyalloc = YYSTACK_ALLOC_MAXIMUM;
if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg);
yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
if (!yymsg)
yymsg = (char *) YYSTACK_ALLOC (yyalloc);
if (yymsg)
yymsg_alloc = yyalloc;
else
{
yymsg = yymsgbuf;
yymsg_alloc = sizeof yymsgbuf;
yysyntax_error_status = 2;
}
}
 
if (0 < yysize && yysize <= yymsg_alloc)
{
(void) yysyntax_error (yymsg, yystate, yychar);
yyerror (yymsg);
}
else
{
yysyntax_error_status = YYSYNTAX_ERROR;
yymsgp = yymsg;
yyerror (YY_("syntax error"));
if (yysize != 0)
goto yyexhaustedlab;
}
}
yyerror (yymsgp);
if (yysyntax_error_status == 2)
goto yyexhaustedlab;
}
# undef YYSYNTAX_ERROR
#endif
}
 
2074,7 → 2137,7
 
if (yyerrstatus == 3)
{
/* If just tried and failed to reuse lookahead token after an
/* If just tried and failed to reuse look-ahead token after an
error, discard it. */
 
if (yychar <= YYEOF)
2091,7 → 2154,7
}
}
 
/* Else will try to reuse lookahead token after shifting the error
/* Else will try to reuse look-ahead token after shifting the error
token. */
goto yyerrlab1;
 
2107,7 → 2170,7
if (/*CONSTCOND*/ 0)
goto yyerrorlab;
 
/* Do not reclaim the symbols of the rule whose action triggered
/* Do not reclaim the symbols of the rule which action triggered
this YYERROR. */
YYPOPSTACK (yylen);
yylen = 0;
2125,7 → 2188,7
for (;;)
{
yyn = yypact[yystate];
if (!yypact_value_is_default (yyn))
if (yyn != YYPACT_NINF)
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2148,9 → 2211,10
YY_STACK_PRINT (yyss, yyssp);
}
 
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
if (yyn == YYFINAL)
YYACCEPT;
 
*++yyvsp = yylval;
YY_IGNORE_MAYBE_UNINITIALIZED_END
 
 
/* Shift the error token. */
2174,7 → 2238,7
yyresult = 1;
goto yyreturn;
 
#if !defined yyoverflow || YYERROR_VERBOSE
#ifndef yyoverflow
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
2185,15 → 2249,10
#endif
 
yyreturn:
if (yychar != YYEMPTY)
{
/* Make sure we have latest lookahead translation. See comments at
user semantic actions for why this is necessary. */
yytoken = YYTRANSLATE (yychar);
if (yychar != YYEOF && yychar != YYEMPTY)
yydestruct ("Cleanup: discarding lookahead",
yytoken, &yylval);
}
/* Do not reclaim the symbols of the rule whose action triggered
/* Do not reclaim the symbols of the rule which action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
YY_STACK_PRINT (yyss, yyssp);
2211,11 → 2270,14
if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg);
#endif
return yyresult;
/* Make sure YYID is used. */
return YYID (yyresult);
}
#line 347 "deffilep.y" /* yacc.c:1906 */
 
 
#line 348 "deffilep.y"
 
 
/*****************************************************************************
API
*****************************************************************************/
3360,3 → 3422,4
free (p);
}
}
 
/contrib/toolchain/binutils/ld/ldlex.c
360,8 → 360,8
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
 
#define YY_NUM_RULES 198
#define YY_END_OF_BUFFER 199
#define YY_NUM_RULES 197
#define YY_END_OF_BUFFER 198
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
369,202 → 369,200
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
static yyconst flex_int16_t yy_accept[1766] =
static yyconst flex_int16_t yy_accept[1751] =
{ 0,
0, 0, 178, 178, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
199, 198, 196, 181, 180, 32, 196, 178, 38, 29,
44, 43, 34, 35, 28, 36, 178, 37, 8, 8,
45, 46, 39, 40, 27, 33, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 10, 9, 178, 119,
117, 178, 42, 30, 41, 31, 195, 193, 198, 173,
44, 43, 28, 198, 173, 198, 173, 197, 181, 32,
197, 176, 38, 29, 44, 43, 34, 35, 28, 36,
0, 0, 177, 177, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 198, 197,
195, 180, 179, 32, 195, 177, 38, 29, 44, 43,
34, 35, 28, 36, 177, 37, 8, 8, 45, 46,
39, 40, 27, 33, 177, 177, 177, 177, 177, 177,
177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
177, 177, 177, 177, 10, 9, 177, 119, 117, 177,
42, 30, 41, 31, 196, 180, 32, 196, 175, 38,
29, 44, 43, 34, 35, 28, 36, 175, 37, 8,
8, 45, 46, 39, 40, 27, 33, 175, 175, 175,
 
176, 37, 8, 8, 45, 46, 39, 40, 27, 33,
176, 176, 176, 176, 176, 176, 176, 176, 176, 176,
176, 176, 176, 176, 176, 176, 10, 9, 176, 176,
42, 30, 41, 31, 173, 36, 173, 37, 8, 8,
175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
175, 175, 175, 10, 9, 175, 175, 42, 30, 41,
31, 173, 36, 173, 37, 8, 8, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
173, 119, 117, 173, 31, 4, 3, 2, 4, 5,
134, 32, 133, 172, 34, 35, 28, 36, 172, 37,
8, 8, 45, 46, 40, 33, 172, 172, 172, 172,
172, 172, 172, 172, 172, 172, 172, 172, 10, 9,
173, 173, 173, 173, 173, 173, 173, 173, 119, 117,
173, 31, 4, 3, 2, 4, 5, 134, 32, 133,
172, 34, 35, 28, 36, 172, 37, 8, 8, 45,
46, 40, 33, 172, 172, 172, 172, 172, 172, 172,
172, 172, 172, 172, 172, 10, 9, 172, 172, 172,
172, 172, 172, 172, 172, 172, 172, 172, 31, 194,
 
172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
172, 31, 195, 194, 196, 188, 187, 182, 189, 190,
186, 186, 186, 186, 191, 192, 181, 178, 15, 0,
179, 8, 26, 24, 22, 20, 21, 1, 23, 8,
8, 178, 18, 17, 14, 16, 19, 178, 178, 178,
178, 178, 124, 178, 178, 178, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
192, 193, 195, 187, 186, 181, 188, 189, 185, 185,
185, 185, 190, 191, 180, 177, 15, 0, 178, 8,
26, 24, 22, 20, 21, 1, 23, 8, 8, 177,
18, 17, 14, 16, 19, 177, 177, 177, 177, 177,
124, 177, 177, 177, 177, 177, 177, 177, 177, 177,
177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
25, 13, 15, 175, 6, 22, 20, 21, 0, 1,
 
178, 178, 25, 13, 195, 173, 0, 1, 174, 173,
15, 176, 6, 22, 20, 21, 0, 23, 8, 0,
7, 7, 8, 7, 14, 176, 7, 7, 7, 176,
176, 124, 7, 176, 176, 7, 176, 176, 176, 7,
176, 176, 176, 176, 176, 176, 176, 176, 176, 176,
176, 176, 176, 176, 176, 176, 176, 176, 7, 176,
8, 23, 8, 0, 173, 173, 173, 173, 173, 124,
23, 8, 0, 7, 7, 8, 7, 14, 175, 7,
7, 7, 175, 175, 124, 7, 175, 175, 7, 175,
175, 175, 7, 175, 175, 175, 175, 175, 175, 175,
175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
175, 7, 175, 173, 8, 0, 23, 8, 0, 173,
173, 173, 173, 173, 124, 173, 173, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
 
173, 173, 173, 173, 173, 4, 4, 133, 133, 172,
6, 135, 22, 136, 172, 7, 7, 7, 172, 172,
172, 7, 172, 7, 7, 172, 172, 172, 172, 172,
172, 172, 172, 7, 172, 172, 172, 7, 172, 7,
7, 172, 172, 172, 172, 172, 172, 172, 172, 194,
193, 186, 185, 0, 185, 185, 185, 11, 12, 177,
177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
177, 177, 177, 93, 177, 177, 177, 177, 177, 177,
177, 177, 177, 177, 72, 177, 177, 177, 177, 177,
 
177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
177, 177, 120, 118, 177, 8, 176, 8, 175, 7,
175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
62, 63, 175, 175, 175, 175, 175, 175, 175, 175,
175, 175, 175, 175, 175, 8, 174, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
4, 4, 133, 133, 172, 6, 135, 22, 136, 172,
7, 7, 7, 172, 172, 172, 7, 172, 7, 7,
172, 172, 172, 172, 172, 172, 172, 172, 7, 172,
172, 172, 7, 172, 7, 7, 172, 172, 172, 172,
172, 172, 172, 172, 194, 187, 186, 0, 186, 186,
186, 11, 12, 178, 178, 178, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 93, 178, 178,
173, 93, 173, 173, 173, 173, 173, 173, 173, 173,
 
178, 178, 178, 178, 178, 178, 178, 178, 72, 178,
178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 120, 118, 178, 175,
174, 173, 8, 177, 8, 176, 7, 176, 176, 176,
176, 176, 176, 176, 176, 176, 176, 176, 176, 176,
176, 176, 176, 176, 176, 176, 176, 62, 63, 176,
176, 176, 176, 176, 176, 176, 176, 176, 176, 176,
176, 176, 8, 173, 173, 173, 173, 173, 173, 173,
173, 173, 173, 72, 62, 173, 63, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
 
173, 173, 173, 173, 173, 173, 93, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 72, 62,
173, 63, 173, 173, 173, 173, 173, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 120, 118,
173, 4, 8, 172, 172, 172, 172, 172, 137, 172,
173, 173, 173, 120, 118, 173, 4, 8, 172, 172,
172, 172, 172, 137, 172, 172, 172, 172, 172, 172,
172, 172, 172, 172, 172, 172, 172, 172, 172, 154,
172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
172, 172, 172, 172, 154, 172, 172, 172, 172, 172,
172, 172, 172, 172, 172, 186, 186, 186, 178, 59,
178, 178, 178, 178, 178, 53, 178, 100, 178, 111,
185, 185, 185, 177, 59, 177, 177, 177, 177, 177,
53, 177, 100, 177, 111, 177, 177, 177, 177, 177,
177, 177, 89, 177, 177, 177, 177, 177, 112, 177,
 
178, 178, 178, 178, 178, 178, 178, 89, 178, 178,
178, 178, 178, 112, 178, 178, 178, 130, 178, 178,
178, 98, 178, 68, 178, 178, 178, 178, 178, 178,
178, 178, 178, 96, 178, 178, 178, 178, 178, 178,
106, 178, 178, 178, 178, 178, 178, 178, 178, 178,
173, 176, 59, 176, 176, 176, 53, 176, 176, 111,
176, 176, 176, 176, 176, 176, 176, 112, 176, 130,
176, 176, 176, 68, 176, 176, 176, 176, 176, 176,
176, 176, 176, 176, 176, 176, 173, 59, 173, 173,
173, 173, 53, 173, 100, 173, 111, 173, 173, 173,
177, 177, 130, 177, 177, 177, 98, 177, 68, 177,
177, 177, 177, 177, 177, 177, 177, 177, 96, 177,
177, 177, 177, 177, 177, 106, 177, 177, 177, 177,
177, 177, 177, 177, 177, 175, 59, 175, 175, 175,
53, 175, 175, 111, 175, 175, 175, 175, 175, 175,
175, 112, 175, 130, 175, 175, 175, 68, 175, 175,
175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
173, 59, 173, 173, 173, 173, 173, 53, 173, 100,
173, 111, 173, 173, 173, 173, 173, 173, 173, 89,
173, 173, 173, 173, 173, 112, 173, 173, 173, 130,
 
173, 173, 173, 173, 89, 173, 173, 173, 173, 173,
112, 173, 173, 173, 130, 173, 173, 173, 173, 98,
173, 68, 173, 173, 173, 173, 173, 173, 173, 173,
173, 96, 173, 173, 173, 173, 173, 173, 106, 173,
173, 173, 173, 173, 173, 173, 173, 173, 172, 172,
172, 141, 149, 140, 172, 172, 151, 144, 147, 172,
172, 152, 172, 172, 172, 172, 172, 158, 166, 157,
172, 172, 169, 161, 164, 172, 172, 170, 172, 172,
186, 186, 186, 178, 87, 55, 178, 178, 178, 52,
178, 178, 178, 178, 110, 66, 178, 178, 95, 178,
173, 173, 173, 173, 98, 173, 68, 173, 173, 173,
173, 173, 173, 173, 173, 173, 96, 173, 173, 173,
173, 173, 173, 106, 173, 173, 173, 173, 173, 173,
173, 173, 173, 172, 172, 172, 141, 149, 140, 172,
172, 151, 144, 147, 172, 172, 152, 172, 172, 172,
172, 172, 158, 166, 157, 172, 172, 169, 161, 164,
172, 172, 170, 172, 172, 185, 185, 185, 177, 87,
55, 177, 177, 177, 52, 177, 177, 177, 177, 110,
66, 177, 177, 95, 177, 78, 177, 177, 177, 77,
177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
 
78, 178, 178, 178, 77, 178, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 123, 178, 178,
178, 178, 178, 99, 178, 178, 178, 97, 178, 178,
178, 178, 178, 178, 178, 173, 176, 55, 176, 176,
52, 176, 176, 176, 110, 176, 78, 176, 176, 176,
176, 176, 176, 176, 176, 176, 176, 176, 176, 176,
176, 176, 176, 176, 176, 173, 87, 55, 173, 173,
52, 173, 173, 173, 173, 110, 66, 173, 173, 95,
173, 78, 173, 173, 173, 77, 173, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 123,
177, 177, 123, 177, 177, 177, 177, 177, 99, 177,
177, 177, 97, 177, 177, 177, 177, 177, 177, 177,
175, 55, 175, 175, 52, 175, 175, 175, 110, 175,
78, 175, 175, 175, 175, 175, 175, 175, 175, 175,
175, 175, 175, 175, 175, 175, 175, 175, 175, 173,
87, 55, 173, 173, 173, 52, 173, 173, 173, 173,
110, 66, 173, 173, 95, 173, 78, 173, 173, 173,
77, 173, 173, 173, 173, 173, 173, 173, 173, 173,
173, 173, 173, 173, 123, 173, 173, 173, 173, 173,
99, 173, 173, 173, 97, 173, 173, 173, 173, 173,
 
173, 173, 173, 173, 173, 99, 173, 173, 173, 97,
173, 173, 173, 173, 173, 173, 173, 172, 142, 139,
172, 172, 151, 151, 146, 172, 150, 172, 172, 159,
156, 172, 172, 169, 169, 163, 172, 168, 172, 186,
186, 184, 178, 178, 178, 65, 178, 88, 178, 178,
178, 178, 178, 178, 67, 178, 127, 178, 178, 178,
86, 178, 54, 178, 47, 178, 178, 109, 178, 50,
76, 178, 178, 178, 178, 178, 178, 73, 178, 178,
178, 178, 178, 94, 74, 178, 178, 178, 173, 176,
176, 176, 65, 176, 176, 176, 176, 176, 127, 176,
173, 173, 172, 142, 139, 172, 172, 151, 151, 146,
172, 150, 172, 172, 159, 156, 172, 172, 169, 169,
163, 172, 168, 172, 185, 185, 183, 177, 177, 177,
65, 177, 88, 177, 177, 177, 177, 177, 177, 67,
177, 127, 177, 177, 177, 86, 177, 54, 177, 47,
177, 177, 109, 177, 50, 76, 177, 177, 177, 177,
177, 177, 73, 177, 177, 177, 177, 177, 94, 74,
177, 177, 177, 175, 175, 175, 65, 175, 175, 175,
175, 175, 127, 175, 175, 54, 175, 175, 175, 109,
175, 50, 175, 175, 175, 73, 175, 175, 175, 175,
 
176, 54, 176, 176, 176, 109, 176, 50, 176, 176,
176, 73, 176, 176, 176, 176, 173, 173, 173, 65,
88, 173, 173, 173, 173, 173, 173, 67, 173, 127,
173, 173, 173, 86, 173, 54, 173, 173, 47, 173,
173, 109, 173, 50, 76, 173, 173, 173, 173, 173,
173, 73, 173, 173, 173, 173, 173, 94, 74, 173,
173, 173, 172, 172, 67, 148, 145, 172, 172, 172,
167, 165, 162, 172, 185, 183, 178, 61, 178, 178,
178, 178, 178, 178, 80, 178, 178, 122, 178, 178,
178, 178, 178, 101, 178, 178, 103, 128, 178, 178,
173, 173, 173, 65, 173, 88, 173, 173, 173, 173,
173, 173, 67, 173, 127, 173, 173, 173, 86, 173,
54, 173, 173, 47, 173, 173, 109, 173, 50, 76,
173, 173, 173, 173, 173, 173, 73, 173, 173, 173,
173, 173, 94, 74, 173, 173, 173, 172, 172, 67,
148, 145, 172, 172, 172, 167, 165, 162, 172, 184,
182, 177, 61, 177, 177, 177, 177, 177, 177, 80,
177, 177, 122, 177, 177, 177, 177, 177, 101, 177,
177, 103, 128, 177, 177, 177, 177, 177, 177, 177,
116, 90, 177, 51, 177, 177, 175, 61, 175, 175,
 
178, 178, 178, 178, 178, 116, 90, 178, 51, 178,
178, 173, 176, 61, 176, 176, 176, 176, 80, 176,
122, 176, 176, 176, 176, 176, 113, 128, 176, 176,
116, 176, 176, 176, 173, 61, 173, 173, 173, 173,
173, 80, 173, 173, 122, 173, 173, 173, 173, 173,
173, 101, 173, 173, 103, 128, 173, 173, 173, 173,
173, 173, 173, 116, 90, 173, 51, 173, 173, 172,
172, 172, 172, 172, 172, 153, 178, 178, 132, 178,
178, 178, 178, 178, 178, 178, 178, 60, 178, 178,
178, 178, 178, 178, 178, 85, 178, 178, 178, 178,
175, 175, 80, 175, 122, 175, 175, 175, 175, 175,
113, 128, 175, 175, 116, 175, 175, 175, 173, 61,
173, 173, 173, 173, 173, 173, 80, 173, 173, 122,
173, 173, 173, 173, 173, 173, 101, 173, 173, 103,
128, 173, 173, 173, 173, 173, 173, 173, 116, 90,
173, 51, 173, 173, 172, 172, 172, 172, 172, 172,
153, 177, 177, 132, 177, 177, 177, 177, 177, 177,
177, 177, 60, 177, 177, 177, 177, 177, 177, 177,
85, 177, 177, 177, 177, 126, 171, 177, 153, 175,
175, 132, 175, 175, 175, 60, 64, 175, 175, 175,
 
126, 171, 178, 173, 153, 176, 176, 132, 176, 176,
176, 60, 64, 176, 176, 176, 176, 176, 126, 171,
176, 153, 173, 132, 173, 173, 173, 173, 173, 173,
173, 173, 60, 64, 173, 173, 173, 173, 173, 173,
173, 85, 173, 173, 173, 173, 126, 171, 173, 153,
138, 143, 171, 155, 160, 178, 79, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 108, 178, 79,
176, 79, 176, 176, 176, 176, 176, 176, 176, 176,
176, 173, 173, 173, 173, 173, 173, 173, 173, 173,
 
175, 175, 126, 171, 175, 153, 173, 173, 132, 173,
173, 173, 173, 173, 173, 173, 173, 60, 64, 173,
173, 173, 173, 173, 173, 173, 85, 173, 173, 173,
173, 126, 171, 173, 153, 138, 143, 171, 155, 160,
177, 79, 177, 177, 177, 177, 177, 177, 177, 177,
177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
177, 177, 108, 177, 175, 79, 175, 175, 175, 175,
175, 175, 175, 175, 175, 173, 79, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
173, 173, 108, 173, 178, 178, 178, 178, 178, 178,
178, 178, 49, 178, 114, 115, 178, 178, 178, 178,
75, 178, 178, 178, 178, 178, 178, 176, 176, 176,
176, 176, 114, 115, 176, 176, 176, 176, 173, 173,
173, 173, 173, 173, 173, 173, 49, 173, 114, 115,
173, 173, 173, 173, 75, 173, 173, 173, 173, 173,
173, 178, 178, 178, 178, 178, 178, 178, 178, 102,
92, 178, 178, 178, 178, 178, 178, 178, 178, 178,
176, 176, 176, 176, 102, 176, 176, 176, 176, 173,
173, 173, 173, 173, 173, 173, 173, 108, 173, 177,
 
173, 173, 173, 173, 173, 173, 173, 102, 92, 173,
173, 173, 173, 173, 173, 173, 173, 173, 178, 82,
178, 178, 131, 178, 178, 178, 178, 178, 48, 178,
178, 178, 178, 104, 178, 176, 176, 131, 176, 176,
176, 176, 176, 173, 82, 173, 173, 131, 173, 173,
173, 173, 173, 48, 173, 173, 173, 173, 104, 173,
178, 178, 178, 178, 178, 178, 91, 178, 71, 178,
178, 178, 178, 176, 176, 176, 176, 71, 176, 176,
173, 173, 173, 173, 173, 173, 91, 173, 71, 173,
173, 173, 173, 178, 178, 178, 178, 178, 178, 178,
177, 177, 177, 177, 177, 177, 177, 49, 177, 114,
115, 177, 177, 177, 177, 75, 177, 177, 177, 177,
177, 177, 175, 175, 175, 175, 175, 114, 115, 175,
175, 175, 175, 173, 173, 173, 173, 173, 173, 173,
173, 49, 173, 114, 115, 173, 173, 173, 173, 75,
173, 173, 173, 173, 173, 173, 177, 177, 177, 177,
177, 177, 177, 177, 102, 92, 177, 177, 177, 177,
177, 177, 177, 177, 177, 175, 175, 175, 175, 102,
175, 175, 175, 175, 173, 173, 173, 173, 173, 173,
173, 173, 102, 92, 173, 173, 173, 173, 173, 173,
 
178, 129, 70, 178, 178, 69, 176, 176, 176, 176,
176, 129, 70, 69, 173, 173, 173, 173, 173, 173,
173, 173, 129, 70, 173, 173, 69, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 176, 176, 176,
176, 176, 173, 173, 173, 173, 173, 173, 173, 173,
173, 173, 125, 178, 178, 58, 178, 178, 178, 178,
178, 178, 125, 176, 58, 176, 176, 125, 173, 173,
58, 173, 173, 173, 173, 173, 173, 178, 178, 178,
178, 178, 178, 105, 178, 176, 176, 176, 173, 173,
173, 173, 173, 173, 105, 173, 178, 56, 178, 178,
173, 173, 173, 177, 82, 177, 177, 131, 177, 177,
177, 177, 177, 48, 177, 177, 177, 177, 104, 177,
175, 175, 131, 175, 175, 175, 175, 175, 173, 82,
173, 173, 131, 173, 173, 173, 173, 173, 48, 173,
173, 173, 173, 104, 173, 177, 177, 177, 177, 177,
177, 91, 177, 71, 177, 177, 177, 177, 175, 175,
175, 175, 71, 175, 175, 173, 173, 173, 173, 173,
173, 91, 173, 71, 173, 173, 173, 173, 177, 177,
177, 177, 177, 177, 177, 177, 129, 70, 177, 177,
69, 175, 175, 175, 175, 175, 129, 70, 69, 173,
 
178, 178, 178, 56, 176, 176, 173, 56, 173, 173,
173, 173, 173, 178, 178, 178, 178, 121, 178, 176,
121, 173, 173, 173, 173, 121, 173, 178, 178, 178,
178, 178, 176, 173, 173, 173, 173, 173, 81, 178,
178, 178, 107, 176, 81, 173, 173, 173, 107, 57,
178, 178, 57, 57, 173, 173, 83, 178, 83, 173,
178, 173, 84, 84, 0
173, 173, 173, 173, 173, 173, 173, 129, 70, 173,
173, 69, 177, 177, 177, 177, 177, 177, 177, 177,
177, 177, 175, 175, 175, 175, 175, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 125, 177, 177,
58, 177, 177, 177, 177, 177, 177, 125, 175, 58,
175, 175, 125, 173, 173, 58, 173, 173, 173, 173,
173, 173, 177, 177, 177, 177, 177, 177, 105, 177,
175, 175, 175, 173, 173, 173, 173, 173, 173, 105,
173, 177, 56, 177, 177, 177, 177, 177, 56, 175,
175, 173, 56, 173, 173, 173, 173, 173, 177, 177,
 
177, 177, 121, 177, 175, 121, 173, 173, 173, 173,
121, 173, 177, 177, 177, 177, 177, 175, 173, 173,
173, 173, 173, 81, 177, 177, 177, 107, 175, 81,
173, 173, 173, 107, 57, 177, 177, 57, 57, 173,
173, 83, 177, 83, 173, 177, 173, 84, 84, 0
} ;
 
static yyconst flex_int32_t yy_ec[256] =
603,746 → 601,724
{ 0,
1, 1, 2, 3, 1, 1, 4, 1, 1, 1,
1, 3, 5, 6, 7, 8, 9, 10, 10, 10,
7, 1, 1, 6, 1, 3, 11, 11, 11, 11,
11, 11, 8, 8, 8, 8, 8, 8, 8, 8,
7, 1, 1, 6, 1, 3, 10, 10, 10, 10,
10, 10, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 7, 4, 7, 3, 8, 11, 11, 11,
11, 11, 11, 8, 8, 8, 8, 8, 8, 8,
8, 8, 7, 4, 7, 3, 8, 10, 10, 10,
10, 10, 10, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 1, 1,
1, 9
} ;
 
static yyconst flex_int16_t yy_base[1798] =
static yyconst flex_int16_t yy_base[1775] =
{ 0,
0, 0, 0, 0, 82, 163, 244, 0, 326, 0,
408, 489, 570, 0, 112, 114, 652, 734, 816, 898,
2847, 2848, 2848, 2844, 2848, 2821, 2839, 963, 2848, 89,
2848, 2848, 2819, 2818, 0, 2817, 0, 98, 743, 417,
0, 2848, 88, 2816, 99, 0, 98, 119, 98, 114,
106, 114, 2795, 113, 2798, 2806, 164, 94, 161, 156,
163, 2789, 2804, 179, 2807, 2802, 0, 0, 2773, 2769,
2757, 2763, 2848, 129, 2848, 0, 2826, 2848, 2822, 0,
2848, 2848, 2848, 2758, 2813, 0, 2779, 2848, 2821, 2798,
2816, 1009, 2848, 110, 2848, 2848, 2796, 2795, 2848, 65,
0, 0, 0, 0, 82, 0, 164, 0, 246, 327,
408, 0, 275, 277, 490, 572, 654, 736, 2703, 2704,
2704, 2700, 2704, 2677, 2695, 801, 2704, 264, 2704, 2704,
2675, 2674, 0, 2673, 0, 250, 581, 499, 0, 2704,
252, 2672, 260, 0, 259, 255, 254, 269, 263, 274,
2651, 272, 2654, 2662, 327, 289, 277, 315, 277, 2645,
2660, 330, 2663, 2658, 0, 0, 2629, 2625, 2613, 2619,
2704, 239, 2704, 0, 2704, 2682, 2659, 2677, 847, 2704,
351, 2704, 2704, 2657, 2656, 2704, 298, 0, 355, 893,
267, 2704, 2704, 300, 2655, 345, 2704, 953, 356, 359,
 
0, 187, 1055, 129, 2848, 2848, 200, 2794, 203, 2848,
1115, 412, 421, 489, 493, 502, 2773, 2781, 2775, 2783,
167, 105, 198, 192, 2769, 413, 2848, 2848, 651, 2746,
2848, 400, 2848, 0, 1175, 401, 0, 429, 825, 906,
521, 649, 171, 491, 191, 430, 2767, 199, 2770, 2778,
442, 443, 444, 510, 512, 2761, 2776, 678, 2779, 2774,
2745, 2741, 2729, 2735, 0, 1221, 2848, 2848, 0, 2848,
2848, 2776, 2796, 1267, 2774, 2773, 2848, 2772, 0, 2771,
0, 402, 2848, 0, 2770, 2848, 1313, 655, 664, 524,
676, 689, 404, 2766, 2748, 2744, 495, 2746, 2848, 2848,
494, 503, 576, 2634, 2642, 2636, 2644, 347, 358, 489,
355, 2630, 516, 2704, 2704, 652, 2607, 2704, 482, 2704,
0, 1013, 499, 0, 530, 745, 757, 655, 572, 485,
534, 487, 567, 2628, 517, 2631, 2639, 599, 529, 578,
594, 599, 2622, 2637, 661, 2640, 2635, 2606, 2602, 2590,
2596, 0, 1059, 2704, 2704, 0, 2704, 2704, 2637, 2657,
1105, 2635, 2634, 2704, 2633, 0, 2632, 0, 538, 2704,
0, 2631, 2704, 1151, 608, 686, 609, 677, 653, 355,
2627, 2609, 2605, 504, 2607, 2704, 2704, 724, 611, 661,
702, 740, 545, 2592, 2576, 2572, 570, 2574, 0, 2644,
 
736, 657, 738, 804, 737, 167, 2731, 2715, 2711, 85,
2713, 0, 2783, 0, 2772, 2848, 0, 2848, 2848, 2848,
2762, 456, 460, 484, 2848, 2848, 2780, 0, 0, 2776,
2848, 730, 2848, 2848, 0, 0, 0, 0, 0, 917,
0, 0, 2756, 2848, 0, 2848, 2755, 2733, 2747, 2730,
2740, 480, 0, 2742, 2733, 2731, 2725, 521, 2739, 2723,
2736, 2736, 2720, 657, 2727, 2723, 2719, 2721, 2731, 2722,
739, 2728, 2701, 2717, 661, 2714, 2716, 2704, 754, 2715,
2717, 2705, 2719, 2719, 2707, 2720, 2713, 773, 2704, 2692,
2699, 2711, 2694, 2713, 2711, 2693, 2693, 2692, 2661, 2664,
2704, 0, 2633, 2704, 0, 2704, 2704, 2704, 2623, 536,
663, 700, 2704, 2704, 2641, 0, 0, 2637, 2704, 730,
2704, 2704, 0, 0, 0, 0, 0, 768, 0, 0,
2617, 2704, 0, 2704, 2616, 2594, 2608, 2591, 2601, 567,
0, 2603, 2594, 2592, 2586, 646, 2600, 2584, 2597, 2597,
2581, 615, 2588, 2584, 2580, 2582, 2592, 2583, 807, 2589,
2562, 2578, 683, 2575, 2577, 2565, 813, 2576, 2578, 2566,
2580, 2580, 2568, 2581, 2574, 811, 2565, 2553, 2560, 2572,
2555, 2574, 2572, 2554, 2554, 2553, 2522, 2525, 2530, 2515,
2704, 2704, 2704, 0, 1211, 2704, 2704, 2704, 0, 2704,
 
2669, 2654, 2848, 2848, 2729, 0, 0, 2848, 0, 2673,
2848, 0, 1373, 2848, 2848, 2848, 0, 2848, 673, 920,
0, 2848, 2848, 0, 2848, 820, 823, 903, 0, 2694,
654, 0, 923, 2688, 2686, 730, 968, 971, 2695, 2696,
2683, 2693, 769, 2691, 2681, 449, 2670, 2679, 2668, 630,
2679, 2681, 2684, 2673, 2680, 2660, 2680, 2682, 974, 2631,
740, 0, 1012, 0, 2663, 2677, 2660, 2670, 802, 0,
2672, 2663, 2661, 2655, 812, 2669, 2653, 2666, 2666, 2650,
817, 2657, 2653, 2649, 2651, 2661, 2652, 1013, 2658, 2631,
2647, 843, 396, 2647, 2645, 2634, 850, 2645, 2647, 2635,
2704, 693, 864, 0, 2704, 2704, 0, 2704, 763, 842,
929, 0, 2557, 728, 0, 962, 2551, 2549, 783, 989,
1018, 2558, 2559, 2546, 2556, 814, 2554, 2544, 365, 2533,
2542, 2531, 751, 2542, 2544, 2547, 2536, 2543, 2523, 2543,
2545, 1009, 2494, 0, 1263, 0, 0, 878, 0, 2526,
2540, 2523, 2533, 745, 0, 2535, 2526, 2524, 2518, 808,
2532, 2516, 2529, 2529, 2513, 781, 2520, 2516, 2512, 2514,
2524, 2515, 857, 2521, 2494, 2510, 902, 724, 2510, 2508,
2497, 908, 2508, 2510, 2498, 2512, 2512, 2500, 2513, 2506,
936, 2497, 2485, 2492, 2504, 2487, 2506, 2504, 2486, 2486,
 
2649, 2649, 2637, 2650, 2643, 844, 2634, 2622, 2629, 2641,
2624, 2643, 2641, 2623, 2623, 2622, 2591, 2594, 2599, 2584,
0, 1425, 2658, 2848, 0, 1477, 0, 0, 0, 1529,
2615, 0, 0, 2624, 2613, 2612, 2621, 2625, 2608, 2609,
2607, 2624, 2611, 2619, 2620, 2618, 2619, 2598, 2570, 2577,
2568, 2567, 2574, 2578, 2563, 2564, 2562, 2577, 2565, 2572,
2573, 2571, 2572, 2553, 0, 0, 2607, 2606, 485, 707,
807, 2848, 2848, 2585, 2581, 2593, 2590, 2591, 2581, 2579,
2589, 2589, 2586, 2571, 2564, 2587, 2586, 2577, 2582, 2566,
2571, 2577, 2569, 2579, 2576, 2557, 2573, 0, 2564, 2560,
2485, 2454, 2457, 2462, 2447, 0, 1315, 2521, 2704, 0,
1367, 0, 0, 0, 775, 948, 819, 0, 2488, 950,
951, 2487, 2491, 2474, 2475, 2473, 2490, 2477, 2485, 2486,
2484, 2485, 2464, 830, 2444, 862, 1021, 2443, 2447, 2432,
2433, 2431, 2446, 2434, 2441, 2442, 2440, 2441, 2422, 2495,
0, 0, 2475, 2474, 864, 848, 649, 2704, 2704, 2453,
2449, 2461, 2458, 2459, 2449, 2447, 2457, 2457, 2454, 2439,
2432, 2455, 2454, 2445, 2450, 2434, 2439, 2445, 2437, 2447,
2444, 2425, 2441, 0, 2432, 2428, 2433, 2420, 2435, 2423,
2432, 2430, 2432, 2428, 0, 2419, 2413, 2414, 2419, 2415,
 
2565, 2552, 2567, 2555, 2564, 2562, 2564, 2560, 0, 2551,
2545, 2546, 2551, 2547, 2536, 2553, 2543, 2540, 2539, 2534,
2551, 2545, 2535, 2532, 2538, 2532, 2544, 2528, 2544, 2545,
2527, 2543, 2531, 2535, 2522, 2495, 0, 0, 2503, 0,
0, 2524, 0, 0, 818, 2522, 1016, 2529, 2530, 2520,
2529, 2529, 2512, 2505, 2528, 1063, 2525, 2515, 2505, 2521,
2512, 2508, 2501, 2505, 2513, 2515, 2524, 0, 0, 2497,
2498, 2500, 2489, 2506, 2494, 2489, 2497, 2504, 2505, 2506,
2461, 2469, 0, 2489, 2485, 2497, 2494, 2495, 2484, 2494,
2494, 2491, 2476, 2469, 2492, 2491, 2482, 2487, 2471, 2476,
2404, 2421, 2411, 2408, 2407, 2402, 2419, 2413, 2403, 2400,
2406, 2400, 2412, 2396, 2412, 2413, 2395, 2411, 2399, 2403,
2390, 2363, 0, 0, 2371, 0, 0, 984, 2391, 1054,
2398, 2399, 2389, 2398, 2398, 2381, 2374, 2397, 1066, 2394,
2384, 2374, 2390, 2381, 2377, 2370, 2374, 2382, 2384, 2393,
0, 0, 2366, 2367, 2369, 2358, 2375, 2363, 2358, 2366,
2373, 2374, 2375, 2330, 2338, 0, 0, 2358, 2354, 2366,
2363, 2364, 2354, 2352, 2362, 2362, 2359, 2344, 2337, 2360,
2359, 2350, 2355, 2339, 2344, 2350, 2342, 2352, 2349, 2330,
2346, 0, 2337, 2333, 2338, 2325, 2340, 2328, 2337, 2335,
 
2482, 2474, 2484, 2481, 2462, 2478, 0, 2469, 2465, 2470,
2457, 2472, 2460, 2469, 2467, 2469, 2478, 2464, 0, 0,
2455, 0, 2449, 2450, 2455, 2451, 2440, 2457, 2447, 2444,
2443, 2438, 2455, 2449, 2439, 2436, 2442, 2436, 2448, 2432,
2448, 2449, 2431, 2447, 2435, 2439, 2426, 2399, 0, 0,
2407, 0, 0, 2427, 758, 2436, 2435, 2423, 0, 2433,
2424, 2416, 2431, 2429, 2428, 2420, 2411, 2412, 2415, 2383,
870, 2391, 2390, 2379, 0, 2388, 2380, 2373, 2386, 2384,
2383, 2376, 2368, 2369, 2371, 503, 851, 773, 2402, 0,
2395, 2398, 2393, 2405, 2391, 0, 2397, 0, 2387, 0,
2337, 2346, 2332, 0, 0, 2323, 0, 2317, 2318, 2323,
2319, 2308, 2325, 2315, 2312, 2311, 2306, 2323, 2317, 2307,
2304, 2310, 2304, 2316, 2300, 2316, 2317, 2299, 2315, 2303,
2307, 2294, 2267, 0, 0, 2275, 0, 0, 2295, 501,
2304, 2303, 2291, 0, 2301, 2292, 2284, 2299, 2297, 2296,
2288, 2279, 2280, 2283, 2251, 880, 2259, 2258, 2247, 0,
2256, 2248, 2241, 2254, 2252, 2251, 2244, 2236, 2237, 2239,
832, 833, 813, 2270, 0, 2263, 2266, 2261, 2273, 2259,
0, 2265, 0, 2255, 0, 2254, 2242, 2258, 2251, 2245,
2248, 2250, 0, 2247, 2261, 2249, 2259, 2242, 0, 2260,
 
2386, 2374, 2390, 2383, 2377, 2380, 2382, 0, 2379, 2393,
2381, 2391, 2374, 0, 2392, 2373, 2374, 0, 2386, 2370,
2388, 0, 2370, 0, 2372, 2371, 2384, 2353, 2374, 2361,
2369, 2361, 2370, 0, 2363, 2374, 2367, 2370, 2354, 2358,
2341, 2362, 2366, 2349, 2356, 2358, 2361, 2356, 2322, 2318,
2357, 2349, 0, 2346, 2341, 2353, 0, 2346, 2336, 0,
2324, 2340, 2333, 2331, 2335, 2336, 2309, 0, 2299, 0,
2288, 2303, 2298, 0, 2285, 2294, 2253, 2264, 2250, 2244,
2227, 2214, 2219, 2211, 2170, 2156, 2178, 0, 2165, 2151,
2146, 2145, 0, 2145, 0, 2132, 0, 2129, 2117, 2133,
2241, 2242, 0, 2254, 2238, 2256, 0, 2238, 0, 2240,
2239, 2252, 2221, 2242, 2229, 2237, 2229, 2238, 0, 2231,
2242, 2235, 2238, 2222, 2226, 2209, 2230, 2234, 2217, 2224,
2226, 2229, 2224, 2190, 2186, 2218, 0, 2215, 2210, 2222,
0, 2215, 2205, 0, 2193, 2209, 2202, 2200, 2204, 2214,
2197, 0, 2197, 0, 2196, 2214, 2211, 0, 2198, 2211,
2180, 2201, 2197, 2199, 2202, 2191, 2196, 2192, 2161, 2157,
2189, 0, 2182, 2185, 2180, 2192, 2178, 0, 2184, 0,
2166, 0, 2156, 2135, 2142, 2123, 2114, 2115, 2117, 0,
2111, 2116, 2095, 2096, 2074, 0, 2077, 2058, 2059, 0,
 
81, 107, 154, 173, 0, 189, 412, 487, 533, 643,
0, 666, 672, 678, 0, 710, 759, 796, 820, 0,
812, 0, 819, 845, 862, 833, 856, 846, 867, 868,
879, 0, 886, 900, 895, 901, 896, 903, 889, 912,
920, 906, 917, 923, 932, 929, 897, 896, 933, 927,
934, 0, 0, 0, 932, 958, 1606, 0, 0, 944,
965, 0, 959, 978, 940, 936, 941, 0, 0, 0,
942, 960, 1687, 0, 0, 960, 968, 0, 960, 983,
1029, 1032, 1031, 1009, 0, 1023, 1011, 1028, 1032, 0,
1051, 1034, 1021, 1045, 0, 0, 1047, 1048, 0, 1040,
251, 297, 347, 468, 0, 515, 0, 576, 625, 679,
668, 693, 682, 694, 703, 716, 0, 740, 777, 820,
842, 835, 852, 838, 881, 888, 880, 890, 913, 918,
915, 893, 895, 930, 932, 957, 0, 0, 0, 957,
975, 1436, 0, 0, 960, 970, 0, 960, 980, 942,
946, 952, 0, 0, 0, 952, 968, 1517, 0, 0,
955, 963, 0, 961, 978, 1036, 1039, 1037, 1005, 0,
1024, 1015, 1031, 1035, 0, 1041, 1036, 1024, 1039, 0,
0, 1050, 1053, 0, 1045, 0, 1063, 1076, 1072, 1051,
1064, 1086, 1080, 1085, 1065, 1081, 1100, 1098, 1094, 1090,
 
0, 1060, 1073, 1069, 1049, 1061, 1083, 1077, 1082, 1068,
1076, 1096, 1095, 1092, 1088, 1083, 1103, 0, 1101, 1096,
1103, 1097, 1099, 0, 1108, 1122, 1114, 0, 1101, 1116,
1124, 1108, 1114, 1081, 1095, 1128, 1116, 1125, 1118, 1136,
0, 1141, 1124, 1139, 0, 1141, 0, 1132, 1149, 1124,
1149, 1154, 1154, 1142, 1158, 1154, 1150, 1164, 1166, 1157,
1166, 1172, 1165, 1125, 1145, 1162, 0, 1169, 1165, 1181,
0, 1186, 1183, 1170, 1185, 0, 0, 1187, 1178, 0,
1162, 0, 1180, 1191, 1187, 1166, 1178, 1198, 1193, 1198,
1198, 1180, 1187, 1215, 1213, 1209, 1205, 1200, 1220, 0,
1085, 1111, 0, 1109, 1100, 1107, 1101, 1103, 0, 1112,
1117, 1119, 0, 1100, 1113, 1121, 1104, 1110, 1076, 1090,
1107, 1115, 1109, 1127, 0, 1132, 1115, 1130, 0, 1132,
0, 1133, 1144, 1118, 1142, 1147, 1153, 1141, 1157, 1153,
1150, 1164, 1163, 1154, 1163, 1169, 1162, 1122, 1136, 1153,
0, 1161, 1157, 1173, 1174, 0, 1179, 1176, 1163, 1184,
0, 0, 1187, 1179, 0, 1163, 0, 1181, 1194, 1190,
1169, 1181, 1205, 1199, 1204, 1204, 1185, 1192, 1217, 1215,
1211, 1207, 1203, 1224, 0, 1222, 1213, 1220, 1214, 1216,
0, 1225, 1235, 1231, 0, 1212, 1225, 1233, 1216, 1223,
 
1224, 1215, 1222, 1216, 1218, 0, 1227, 1232, 1234, 0,
1215, 1228, 1236, 1219, 1225, 1191, 1205, 1222, 0, 1231,
1231, 1227, 0, 1768, 0, 1245, 0, 1248, 1200, 0,
1208, 1208, 1213, 0, 1849, 0, 1229, 0, 1232, 1279,
1270, 1271, 1247, 1269, 1253, 0, 1273, 0, 1264, 1258,
1249, 1276, 1278, 1278, 0, 1281, 0, 1280, 1266, 1268,
0, 1268, 0, 1285, 0, 1271, 1271, 0, 1286, 0,
1262, 1269, 1290, 1265, 1266, 1284, 1288, 1278, 1285, 1296,
1301, 1304, 1315, 0, 0, 1310, 1277, 1296, 1325, 1310,
1325, 1309, 0, 1329, 1320, 1330, 1332, 1333, 0, 1334,
1189, 1203, 1220, 0, 1229, 1236, 1231, 0, 1598, 0,
1250, 0, 1257, 1209, 0, 1217, 1217, 1213, 0, 1679,
0, 1229, 0, 1238, 1278, 1282, 1276, 1252, 1269, 1255,
0, 1275, 0, 1266, 1260, 1251, 1278, 1280, 1280, 0,
1283, 0, 1282, 1268, 1270, 0, 1270, 0, 1287, 0,
1273, 1273, 0, 1288, 0, 1270, 1277, 1298, 1274, 1279,
1297, 1292, 1282, 1289, 1300, 1311, 1309, 1320, 0, 0,
1315, 1281, 1300, 1312, 1327, 1311, 0, 1331, 1322, 1332,
1334, 1334, 0, 1335, 1322, 0, 1338, 1334, 1325, 0,
1339, 0, 1321, 1348, 1334, 1324, 1345, 1355, 1314, 1333,
 
1321, 0, 1337, 1333, 1324, 0, 1338, 0, 1326, 1348,
1334, 1324, 1344, 1350, 1310, 1329, 1341, 1356, 1340, 0,
0, 1354, 1348, 1339, 1366, 1368, 1368, 0, 1377, 0,
1376, 1362, 1364, 0, 1365, 0, 1383, 1379, 0, 1370,
1370, 0, 1385, 0, 1361, 1368, 1389, 1364, 1365, 1383,
1378, 1368, 1375, 1386, 1390, 1387, 1397, 0, 0, 1397,
1363, 1382, 1395, 1405, 0, 0, 0, 1401, 1373, 1378,
0, 0, 0, 1375, 1430, 1437, 1428, 0, 1425, 1430,
1417, 1436, 1425, 1434, 0, 1411, 1428, 0, 1413, 1440,
1425, 1429, 1430, 0, 1418, 1449, 0, 1420, 1451, 1449,
1345, 1360, 1344, 0, 1370, 0, 1361, 1355, 1346, 1374,
1377, 1377, 0, 1380, 0, 1379, 1365, 1367, 0, 1367,
0, 1384, 1380, 0, 1371, 1371, 0, 1386, 0, 1362,
1369, 1390, 1365, 1366, 1384, 1385, 1375, 1382, 1394, 1401,
1401, 1416, 0, 0, 1411, 1377, 1396, 1408, 1414, 0,
0, 0, 1410, 1382, 1392, 0, 0, 0, 1389, 1444,
1445, 1436, 0, 1433, 1438, 1424, 1442, 1431, 1440, 0,
1417, 1434, 0, 1419, 1446, 1431, 1435, 1436, 0, 1424,
1455, 0, 1426, 1457, 1455, 1441, 1431, 1455, 1433, 1451,
0, 0, 1453, 0, 1432, 1430, 1465, 0, 1462, 1467,
 
1435, 1425, 1455, 1433, 1451, 0, 0, 1453, 0, 1436,
1434, 1469, 1470, 0, 1467, 1472, 1464, 1478, 0, 1455,
0, 1482, 1471, 1479, 1474, 1462, 0, 1463, 1464, 1488,
0, 1483, 1462, 1460, 1495, 0, 1492, 1482, 1500, 1489,
1498, 0, 1475, 1492, 0, 1477, 1510, 1495, 1499, 1507,
1506, 0, 1494, 1535, 0, 1495, 1526, 1524, 1510, 1507,
1531, 1509, 1528, 0, 0, 1529, 0, 1509, 1507, 1542,
1544, 1544, 1514, 1516, 1516, 0, 1534, 1551, 0, 1536,
1555, 1545, 1553, 1547, 1564, 1566, 1552, 0, 1566, 1554,
1555, 1560, 1568, 1565, 1569, 0, 1560, 1578, 1586, 1588,
1453, 1467, 0, 1444, 0, 1471, 1459, 1466, 1461, 1449,
0, 1450, 1451, 1475, 0, 1470, 1449, 1447, 1482, 0,
1479, 1489, 1478, 1501, 1491, 1500, 0, 1477, 1494, 0,
1479, 1506, 1491, 1500, 1507, 1502, 0, 1490, 1521, 0,
1492, 1523, 1521, 1507, 1497, 1521, 1499, 1517, 0, 0,
1518, 0, 1497, 1495, 1530, 1532, 1532, 1502, 1504, 1504,
0, 1521, 1538, 0, 1523, 1542, 1532, 1540, 1535, 1546,
1547, 1533, 0, 1547, 1535, 1536, 1540, 1548, 1545, 1549,
0, 1540, 1555, 1578, 1556, 0, 0, 1526, 0, 1543,
1560, 0, 1552, 1560, 1564, 0, 0, 1563, 1551, 1567,
 
0, 0, 1560, 1593, 0, 1578, 1595, 0, 1588, 1601,
1605, 0, 0, 1604, 1592, 1603, 1593, 1608, 0, 0,
1578, 0, 1595, 0, 1596, 1615, 1605, 1613, 1607, 1618,
1619, 1605, 0, 0, 1619, 1607, 1608, 1612, 1620, 1617,
1621, 0, 1612, 1627, 1632, 1629, 0, 0, 1599, 0,
0, 0, 0, 0, 0, 1629, 0, 1623, 1629, 1635,
1633, 1630, 1629, 1625, 1642, 1642, 1634, 1647, 1633, 1643,
1644, 1636, 1635, 1655, 1646, 1650, 1667, 0, 1642, 0,
1668, 0, 1672, 1669, 1659, 1674, 1666, 1673, 1668, 1689,
1659, 1684, 1678, 1684, 1690, 1687, 1684, 1683, 1679, 1695,
1566, 1583, 0, 0, 1553, 0, 1570, 1587, 0, 1573,
1597, 1587, 1595, 1589, 1600, 1601, 1587, 0, 0, 1601,
1589, 1590, 1594, 1602, 1599, 1603, 0, 1594, 1609, 1615,
1610, 0, 0, 1581, 0, 0, 0, 0, 0, 0,
1610, 0, 1604, 1610, 1616, 1613, 1610, 1610, 1606, 1622,
1624, 1616, 1629, 1615, 1625, 1626, 1618, 1617, 1637, 1628,
1627, 1641, 0, 1611, 1636, 0, 1640, 1637, 1627, 1642,
1645, 1640, 1630, 1655, 1634, 1661, 0, 1655, 1661, 1667,
1664, 1661, 1665, 1661, 1677, 1677, 1669, 1682, 1668, 1678,
1679, 1671, 1670, 1690, 1681, 1680, 1694, 0, 1664, 1666,
 
1695, 1687, 1700, 1686, 1696, 1697, 1689, 1688, 1708, 1699,
1698, 1712, 0, 1682, 1684, 1698, 1713, 1705, 1708, 1706,
1709, 1714, 0, 1705, 0, 0, 1717, 1713, 1723, 1727,
0, 1728, 1726, 1722, 1723, 1720, 1699, 1704, 1722, 1725,
1729, 1720, 0, 0, 1741, 1748, 1751, 1722, 1727, 1741,
1755, 1747, 1750, 1748, 1756, 1761, 0, 1752, 0, 0,
1764, 1760, 1770, 1774, 0, 1775, 1773, 1769, 1770, 1767,
1746, 1773, 1764, 1781, 1765, 1781, 1773, 1775, 1774, 0,
0, 1789, 1787, 1773, 1775, 1789, 1788, 1776, 1792, 1763,
1791, 1781, 1797, 1788, 0, 1800, 1787, 1801, 1771, 1799,
1680, 1694, 1686, 1689, 1687, 1690, 1695, 0, 1686, 0,
0, 1698, 1694, 1704, 1709, 0, 1710, 1708, 1704, 1705,
1702, 1681, 1686, 1704, 1707, 1711, 1702, 0, 0, 1718,
1722, 1720, 1690, 1695, 1709, 1723, 1715, 1718, 1716, 1722,
1727, 0, 1718, 0, 0, 1730, 1726, 1736, 1740, 0,
1741, 1739, 1735, 1736, 1733, 1712, 1739, 1730, 1747, 1731,
1747, 1739, 1741, 1740, 0, 0, 1755, 1753, 1739, 1741,
1755, 1754, 1742, 1758, 1728, 1756, 1746, 1762, 1753, 0,
1765, 1752, 1766, 1736, 1764, 1755, 1772, 1756, 1772, 1764,
1766, 1765, 0, 0, 1780, 1778, 1764, 1766, 1780, 1779,
 
1790, 1807, 1791, 1807, 1799, 1801, 1800, 0, 0, 1815,
1813, 1799, 1801, 1815, 1819, 1810, 1831, 1802, 1825, 0,
1820, 1810, 0, 1811, 1828, 1830, 1830, 1846, 0, 1832,
1835, 1840, 1824, 0, 1809, 1843, 1827, 0, 1845, 1855,
1841, 1844, 1816, 1850, 0, 1845, 1835, 0, 1836, 1853,
1855, 1850, 1866, 0, 1852, 1855, 1860, 1844, 0, 1829,
1861, 1847, 1879, 1880, 1868, 1852, 0, 1871, 0, 1867,
1874, 1872, 1841, 1874, 1890, 1861, 1879, 0, 1875, 1848,
1882, 1868, 1900, 1899, 1892, 1876, 0, 1895, 0, 1891,
1898, 1896, 1865, 1893, 1896, 1904, 1903, 1914, 1908, 1890,
1767, 1783, 1753, 1776, 0, 1771, 1761, 0, 1762, 1779,
1781, 1776, 1792, 0, 1778, 1781, 1786, 1770, 0, 1755,
1789, 1773, 0, 1791, 1801, 1787, 1790, 1762, 1796, 0,
1791, 1781, 0, 1782, 1799, 1801, 1796, 1812, 0, 1798,
1801, 1806, 1790, 0, 1775, 1807, 1793, 1824, 1825, 1813,
1797, 0, 1816, 0, 1812, 1819, 1817, 1786, 1819, 1835,
1806, 1824, 0, 1820, 1793, 1827, 1813, 1844, 1845, 1833,
1817, 0, 1836, 0, 1832, 1839, 1838, 1807, 1835, 1838,
1846, 1845, 1855, 1849, 1832, 1858, 0, 0, 1860, 1848,
0, 1846, 1856, 1855, 1865, 1865, 0, 0, 0, 1851,
 
1916, 0, 0, 1918, 1906, 0, 1904, 1914, 1913, 1923,
1923, 0, 0, 0, 1909, 1912, 1920, 1919, 1929, 1923,
1905, 1931, 0, 0, 1933, 1921, 0, 1920, 1916, 1933,
1939, 1932, 1933, 1945, 1935, 1934, 1940, 1930, 1942, 1948,
1941, 1942, 1935, 1931, 1948, 1954, 1947, 1948, 1960, 1950,
1949, 1955, 0, 1952, 1959, 0, 1949, 1953, 1957, 1969,
1951, 1957, 0, 1966, 0, 1956, 1974, 0, 1963, 1970,
0, 1960, 1964, 1968, 1980, 1962, 1968, 1982, 1971, 1971,
1984, 1976, 1982, 0, 1972, 1977, 1977, 1986, 1992, 1981,
1981, 1994, 1986, 1992, 0, 1982, 1986, 0, 1971, 2002,
1854, 1862, 1861, 1871, 1865, 1847, 1873, 0, 0, 1875,
1863, 0, 1862, 1858, 1875, 1881, 1874, 1875, 1887, 1877,
1876, 1882, 1872, 1884, 1890, 1883, 1884, 1877, 1873, 1890,
1896, 1889, 1890, 1902, 1892, 1891, 1897, 0, 1894, 1901,
0, 1891, 1895, 1899, 1911, 1893, 1899, 0, 1908, 0,
1898, 1916, 0, 1905, 1912, 0, 1902, 1906, 1910, 1922,
1904, 1910, 1924, 1913, 1913, 1926, 1918, 1924, 0, 1914,
1919, 1919, 1928, 1934, 1923, 1923, 1936, 1928, 1934, 0,
1924, 1928, 0, 1913, 1944, 1931, 1928, 1939, 0, 1918,
1931, 1936, 0, 1921, 1952, 1939, 1936, 1947, 1945, 1953,
 
1989, 1986, 1997, 0, 1976, 1989, 1994, 0, 1979, 2010,
1997, 1994, 2005, 2003, 2011, 1997, 2015, 0, 1999, 2015,
0, 2009, 2017, 2003, 2021, 0, 2005, 2007, 2013, 2019,
2028, 2005, 2017, 2013, 2019, 2025, 2034, 2011, 0, 2033,
2023, 2019, 0, 2036, 0, 2037, 2027, 2023, 0, 0,
2030, 2036, 0, 0, 2032, 2038, 0, 2033, 0, 2034,
2036, 2037, 0, 0, 2848, 2077, 2088, 2099, 2110, 2121,
2132, 2141, 2152, 2160, 2168, 2176, 2184, 2195, 2203, 2214,
2225, 2236, 2240, 2249, 2257, 2265, 2273, 2275, 2286, 2297,
2308, 2312, 2321, 2332, 2343, 2354, 2365
 
1939, 1957, 0, 1941, 1957, 0, 1951, 1959, 1945, 1963,
0, 1947, 1949, 1955, 1961, 1970, 1947, 1959, 1955, 1961,
1967, 1976, 1953, 0, 1975, 1965, 1961, 0, 1978, 0,
1979, 1969, 1965, 0, 0, 1972, 1978, 0, 0, 1974,
1980, 0, 1975, 0, 1976, 1978, 1979, 0, 0, 2704,
2019, 2029, 2039, 2049, 2059, 2067, 2077, 2084, 2091, 2098,
2108, 2115, 2125, 2135, 2145, 2148, 2156, 2163, 2080, 2170,
2180, 2190, 2200, 2210
} ;
 
static yyconst flex_int16_t yy_def[1798] =
static yyconst flex_int16_t yy_def[1775] =
{ 0,
1766, 1766, 1765, 3, 1767, 1767, 1765, 7, 1765, 9,
1768, 1768, 1765, 13, 1769, 1769, 1770, 1770, 1771, 1771,
1765, 1765, 1765, 1765, 1765, 1772, 1773, 1772, 1765, 1765,
1765, 1765, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1765, 1765, 1772, 1765, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1765, 1765, 1765, 1772, 1765, 1765, 1773, 1774,
1765, 1765, 1765, 1765, 1774, 1775, 1774, 1765, 1765, 1765,
1773, 1776, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
1751, 1751, 1750, 3, 1750, 5, 1750, 7, 1752, 1752,
1750, 11, 1753, 1753, 1754, 1754, 1755, 1755, 1750, 1750,
1750, 1750, 1750, 1756, 1757, 1756, 1750, 1750, 1750, 1750,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1750,
1750, 1756, 1750, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1750, 1750, 1750, 1756, 1750, 1750, 1750, 1757, 1758, 1750,
1750, 1750, 1750, 1750, 1750, 1750, 1750, 1758, 1758, 1750,
90, 1750, 1750, 1750, 1750, 1750, 1750, 1758, 98, 98,
 
1776, 1776, 1765, 103, 1765, 1765, 1765, 1765, 1765, 1765,
1776, 111, 111, 111, 111, 111, 1776, 1776, 1776, 1776,
1776, 1776, 1776, 1776, 1776, 1776, 1765, 1765, 111, 1776,
1765, 1765, 1765, 1776, 1774, 1765, 1774, 1774, 1765, 1765,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1777, 1765, 1765, 1777, 1765,
1765, 1765, 1778, 1779, 1780, 1765, 1765, 1765, 1779, 1779,
103, 103, 1765, 1781, 1765, 1765, 1779, 187, 187, 187,
187, 187, 1779, 1779, 1779, 1779, 1779, 1779, 1765, 1765,
98, 98, 98, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
1758, 1758, 1758, 1750, 1750, 98, 1758, 1750, 1750, 1750,
1758, 1759, 1750, 1759, 1759, 1750, 1750, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1760, 1750, 1750, 1760, 1750, 1750, 1750, 1761,
1762, 1763, 1750, 1750, 1750, 1762, 1762, 90, 90, 1750,
1764, 1750, 1750, 1762, 174, 174, 174, 174, 174, 1762,
1762, 1762, 1762, 1762, 1762, 1750, 1750, 174, 174, 174,
174, 174, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1750,
 
187, 187, 187, 187, 187, 1779, 1779, 1779, 1779, 1779,
1779, 1779, 1765, 1782, 1765, 1765, 1783, 1765, 1765, 1765,
1784, 1784, 1784, 1784, 1765, 1765, 1765, 1772, 1772, 1773,
1765, 28, 1765, 1765, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 28, 1765, 1765, 1772, 1765, 1765, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1750, 1765, 1750, 1750, 1766, 1750, 1750, 1750, 1767, 1767,
1767, 1767, 1750, 1750, 1750, 1756, 1756, 1757, 1750, 26,
1750, 1750, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 26,
1750, 1750, 1756, 1750, 1750, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1750, 1750, 1750, 1758, 1758, 1750, 1750, 1750, 1768, 1750,
 
1772, 1772, 1765, 1765, 1765, 1774, 1785, 1765, 1786, 1774,
1765, 1776, 1776, 1765, 1765, 1765, 1787, 1765, 103, 103,
320, 1765, 1765, 1788, 1765, 111, 111, 111, 1776, 1776,
1776, 1776, 111, 1776, 1776, 1776, 111, 111, 1776, 1776,
1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 111, 1776,
135, 1774, 1765, 1788, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1750, 90, 90, 303, 1750, 1750, 1769, 1750, 98, 98,
98, 1758, 1758, 1758, 1758, 98, 1758, 1758, 1758, 98,
98, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
1758, 98, 1758, 1759, 1759, 1770, 1759, 1750, 1769, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
 
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1777, 1777, 1778, 1765, 1779, 1779, 1789, 1789, 1790, 1779,
430, 430, 1779, 1779, 430, 430, 1779, 1779, 1779, 1779,
1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 430, 1779,
430, 430, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779,
1779, 1779, 1779, 1779, 1791, 1792, 1793, 1765, 1793, 1793,
1793, 1765, 1765, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1759, 1759, 1759, 1759, 1759, 1760, 1760, 1761, 1750, 1762,
1762, 1763, 1763, 1764, 174, 174, 174, 1762, 1762, 174,
174, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762,
1762, 1762, 1762, 174, 1762, 174, 174, 1762, 1762, 1762,
1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1750,
1765, 1766, 1767, 1750, 1767, 1767, 1767, 1750, 1750, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
 
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1785,
1786, 1774, 1776, 1787, 1788, 1776, 111, 1776, 1776, 1776,
1776, 1776, 1776, 1776, 1776, 111, 1776, 1776, 1776, 1776,
1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
1776, 1776, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1758, 1768, 1769, 1758, 98,
1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 98, 1758,
1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
1758, 1758, 1758, 1758, 1758, 1759, 1770, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
 
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1777, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779,
1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779,
1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779,
1779, 1779, 1779, 1779, 1779, 1793, 1793, 1793, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1760, 1762, 1762, 1762,
1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762,
1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762,
1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762,
1767, 1767, 1767, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
 
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1774, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
1776, 1776, 1776, 1776, 1776, 1776, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1758, 1758, 1758, 1758, 1758,
1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
 
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1779, 1779,
1779, 1779, 1779, 1779, 1779, 1779, 1794, 1779, 1779, 1779,
1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779,
1779, 1779, 1795, 1779, 1779, 1779, 1779, 1779, 1779, 1779,
1793, 1793, 1793, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1762, 1762, 1762, 1762, 1762, 1762, 1762,
1762, 1771, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762,
1762, 1762, 1762, 1762, 1762, 1762, 1762, 1772, 1762, 1762,
1762, 1762, 1762, 1762, 1762, 1767, 1767, 1767, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
 
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1774, 1776, 1776, 1776, 1776,
1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
1776, 1776, 1776, 1776, 1776, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
 
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1779, 1779, 1779,
1779, 1779, 1796, 1794, 1779, 1779, 1779, 1779, 1779, 1779,
1779, 1779, 1779, 1797, 1795, 1779, 1779, 1779, 1779, 1793,
1793, 1793, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1774, 1776,
1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
1759, 1759, 1762, 1762, 1762, 1762, 1762, 1773, 1771, 1762,
1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1774, 1772,
1762, 1762, 1762, 1762, 1767, 1767, 1767, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
 
1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
1776, 1776, 1776, 1776, 1776, 1776, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779,
1779, 1779, 1779, 1779, 1793, 1793, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1762, 1762, 1762,
1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1767,
1767, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1758, 1758, 1758, 1758,
 
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1774, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
1776, 1776, 1776, 1776, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1779,
1779, 1779, 1779, 1779, 1779, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1762, 1762, 1762, 1762, 1762, 1762,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1758, 1758,
1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
 
1772, 1772, 1772, 1774, 1776, 1776, 1776, 1776, 1776, 1776,
1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
1776, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1779,
1779, 1779, 1779, 1779, 1779, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1774,
1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
1776, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1758, 1758, 1758, 1758, 1758, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1762, 1762, 1762, 1762, 1762, 1762,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1758, 1758, 1758, 1758, 1758, 1758,
1758, 1758, 1758, 1758, 1758, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1756,
 
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1776, 1776, 1776,
1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1774,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758,
1758, 1758, 1758, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1758, 1758, 1758, 1758, 1758,
1758, 1758, 1758, 1758, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
 
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1776, 1776, 1776, 1776, 1776,
1776, 1776, 1776, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1772, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1759, 1759, 1759, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1758, 1758,
1758, 1758, 1758, 1758, 1758, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1759,
 
1772, 1772, 1772, 1772, 1772, 1772, 1776, 1776, 1776, 1776,
1776, 1776, 1776, 1776, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1772, 1772, 1776, 1776, 1776,
1776, 1776, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1774, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1776, 1776, 1776, 1776, 1776, 1774, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1774, 1772, 1772, 1772,
1772, 1772, 1772, 1772, 1772, 1776, 1776, 1776, 1774, 1774,
1774, 1774, 1774, 1774, 1774, 1774, 1772, 1772, 1772, 1772,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1756, 1756, 1758, 1758, 1758, 1758, 1758, 1759, 1759, 1759,
1759, 1759, 1759, 1759, 1759, 1759, 1759, 1756, 1756, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1758, 1758, 1758,
1758, 1758, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1759, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
1758, 1758, 1758, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
1759, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1758, 1758,
1758, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1756, 1756,
 
1772, 1772, 1772, 1776, 1776, 1776, 1774, 1774, 1774, 1774,
1774, 1774, 1774, 1772, 1772, 1772, 1772, 1772, 1772, 1776,
1776, 1774, 1774, 1774, 1774, 1774, 1774, 1772, 1772, 1772,
1772, 1772, 1776, 1774, 1774, 1774, 1774, 1774, 1772, 1772,
1772, 1772, 1772, 1776, 1774, 1774, 1774, 1774, 1774, 1772,
1772, 1772, 1776, 1774, 1774, 1774, 1772, 1772, 1774, 1774,
1772, 1774, 1772, 1774, 0, 1765, 1765, 1765, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1765, 1765
 
1756, 1756, 1756, 1756, 1758, 1758, 1759, 1759, 1759, 1759,
1759, 1759, 1756, 1756, 1756, 1756, 1756, 1758, 1759, 1759,
1759, 1759, 1759, 1756, 1756, 1756, 1756, 1756, 1758, 1759,
1759, 1759, 1759, 1759, 1756, 1756, 1756, 1758, 1759, 1759,
1759, 1756, 1756, 1759, 1759, 1756, 1759, 1756, 1759, 0,
1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750
} ;
 
static yyconst flex_int16_t yy_nxt[2931] =
static yyconst flex_int16_t yy_nxt[2787] =
{ 0,
23, 24, 25, 26, 27, 23, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 37, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 37, 66, 37, 37,
37, 37, 67, 37, 68, 37, 37, 69, 37, 37,
37, 37, 37, 37, 37, 37, 37, 70, 37, 37,
71, 37, 37, 72, 37, 37, 37, 37, 73, 74,
75, 76, 22, 77, 78, 22, 79, 22, 316, 22,
22, 81, 82, 22, 22, 83, 84, 233, 85, 22,
21, 22, 23, 24, 25, 21, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 35, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 35, 64, 35, 35,
35, 35, 65, 35, 66, 35, 35, 67, 35, 35,
35, 35, 35, 35, 35, 35, 35, 68, 35, 35,
69, 35, 35, 70, 35, 35, 35, 35, 71, 72,
73, 74, 75, 76, 23, 77, 78, 75, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
 
22, 22, 22, 22, 22, 86, 22, 22, 87, 238,
243, 244, 234, 213, 78, 213, 78, 214, 233, 214,
276, 239, 246, 247, 277, 248, 976, 249, 215, 250,
215, 347, 317, 234, 22, 251, 22, 22, 258, 348,
260, 259, 252, 253, 261, 263, 462, 269, 265, 254,
270, 266, 303, 255, 267, 264, 256, 977, 262, 463,
22, 22, 22, 22, 77, 78, 22, 79, 22, 257,
22, 22, 81, 82, 22, 22, 83, 84, 322, 85,
22, 22, 22, 22, 22, 22, 86, 22, 22, 87,
216, 278, 216, 273, 274, 280, 284, 345, 308, 281,
91, 91, 92, 93, 94, 95, 96, 97, 98, 99,
100, 101, 102, 103, 104, 105, 106, 88, 107, 108,
109, 110, 111, 112, 88, 88, 113, 88, 88, 88,
88, 88, 88, 88, 114, 88, 115, 75, 88, 116,
103, 103, 103, 103, 103, 88, 88, 88, 88, 88,
88, 88, 88, 88, 88, 117, 88, 88, 88, 88,
118, 119, 120, 121, 75, 76, 23, 77, 78, 75,
122, 80, 81, 82, 83, 84, 85, 86, 123, 124,
125, 126, 127, 127, 92, 93, 94, 95, 96, 97,
128, 129, 130, 131, 132, 133, 134, 135, 136, 124,
 
978, 279, 282, 283, 275, 322, 285, 346, 304, 288,
318, 375, 289, 290, 376, 22, 979, 22, 22, 291,
292, 293, 243, 244, 294, 295, 246, 247, 349, 296,
380, 351, 457, 386, 980, 352, 387, 458, 350, 353,
381, 22, 22, 22, 88, 89, 25, 90, 91, 88,
92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
102, 103, 104, 104, 105, 106, 107, 108, 109, 110,
111, 112, 113, 114, 115, 116, 117, 118, 119, 101,
120, 121, 122, 123, 124, 125, 101, 101, 126, 101,
101, 101, 101, 101, 101, 101, 127, 101, 128, 88,
137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
124, 147, 124, 124, 124, 124, 114, 124, 115, 75,
124, 148, 124, 124, 124, 124, 124, 124, 124, 124,
124, 149, 124, 124, 150, 124, 124, 151, 124, 124,
124, 124, 118, 119, 120, 152, 75, 75, 20, 75,
75, 75, 153, 75, 75, 75, 75, 75, 154, 75,
155, 226, 291, 126, 127, 127, 75, 75, 75, 157,
75, 75, 221, 227, 231, 232, 200, 201, 200, 201,
202, 973, 202, 234, 235, 242, 236, 222, 237, 243,
238, 203, 244, 203, 246, 248, 239, 247, 75, 249,
 
101, 129, 116, 116, 116, 116, 116, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 130, 101, 101,
101, 101, 131, 132, 133, 134, 88, 89, 25, 90,
91, 88, 135, 93, 94, 95, 96, 97, 98, 99,
136, 137, 138, 139, 140, 140, 105, 106, 107, 108,
109, 110, 141, 142, 143, 144, 145, 146, 147, 148,
149, 137, 150, 151, 152, 153, 154, 155, 156, 157,
158, 159, 137, 160, 137, 137, 137, 137, 127, 137,
128, 88, 137, 161, 137, 137, 137, 137, 137, 137,
137, 137, 137, 162, 137, 137, 163, 137, 137, 164,
75, 75, 251, 240, 241, 245, 257, 266, 253, 258,
272, 254, 252, 250, 255, 264, 305, 267, 292, 265,
273, 298, 231, 232, 75, 75, 75, 75, 75, 20,
75, 75, 75, 153, 75, 75, 75, 75, 75, 154,
75, 155, 974, 305, 126, 127, 127, 75, 75, 75,
157, 75, 75, 204, 268, 204, 261, 262, 269, 221,
276, 270, 271, 277, 278, 299, 300, 263, 234, 235,
279, 280, 281, 975, 222, 282, 283, 328, 301, 75,
284, 75, 75, 316, 330, 316, 316, 329, 316, 426,
317, 549, 331, 318, 334, 427, 294, 550, 335, 319,
 
137, 137, 137, 137, 131, 132, 133, 165, 88, 88,
22, 88, 88, 88, 166, 88, 88, 88, 88, 88,
167, 88, 168, 303, 316, 139, 140, 140, 88, 88,
88, 170, 88, 88, 240, 240, 240, 619, 441, 333,
308, 333, 981, 355, 442, 620, 334, 356, 333, 335,
333, 322, 362, 241, 357, 241, 312, 312, 312, 358,
88, 336, 88, 88, 382, 312, 312, 383, 307, 393,
384, 390, 391, 394, 396, 566, 468, 395, 322, 304,
468, 567, 392, 241, 397, 241, 88, 88, 88, 88,
88, 22, 88, 88, 88, 166, 88, 88, 88, 88,
294, 294, 336, 294, 294, 75, 75, 75, 21, 22,
158, 159, 21, 160, 161, 27, 28, 29, 30, 162,
163, 164, 165, 166, 167, 168, 169, 169, 170, 171,
41, 172, 43, 173, 174, 175, 176, 177, 178, 179,
166, 166, 166, 166, 166, 180, 166, 181, 182, 183,
166, 166, 184, 185, 166, 166, 166, 166, 166, 166,
186, 166, 187, 21, 166, 188, 189, 190, 177, 191,
192, 166, 166, 166, 166, 193, 166, 194, 195, 196,
166, 197, 198, 166, 166, 166, 71, 72, 73, 199,
21, 200, 201, 21, 21, 202, 976, 21, 21, 21,
 
88, 167, 88, 168, 468, 468, 139, 140, 140, 88,
88, 88, 170, 88, 88, 337, 333, 377, 333, 338,
333, 378, 333, 468, 478, 446, 312, 470, 982, 333,
312, 333, 469, 339, 312, 379, 479, 312, 312, 312,
447, 88, 340, 88, 88, 402, 312, 312, 365, 398,
366, 432, 367, 399, 471, 403, 400, 401, 368, 686,
484, 425, 485, 983, 881, 369, 370, 88, 88, 88,
23, 24, 171, 172, 23, 173, 174, 29, 30, 31,
32, 175, 176, 177, 178, 179, 180, 181, 182, 182,
183, 184, 43, 185, 45, 186, 187, 188, 189, 190,
21, 21, 21, 206, 21, 291, 203, 21, 21, 21,
206, 206, 21, 21, 21, 21, 228, 228, 228, 332,
320, 316, 298, 316, 321, 360, 365, 835, 361, 333,
316, 294, 316, 836, 431, 229, 366, 229, 322, 294,
294, 300, 21, 21, 21, 21, 338, 294, 294, 432,
339, 371, 323, 347, 372, 378, 454, 340, 977, 379,
362, 292, 341, 380, 363, 229, 346, 229, 207, 21,
208, 21, 21, 200, 201, 21, 21, 202, 364, 21,
21, 21, 21, 21, 21, 206, 21, 305, 203, 21,
21, 21, 206, 206, 21, 21, 21, 21, 228, 228,
 
191, 192, 179, 179, 179, 179, 179, 193, 179, 194,
195, 196, 179, 179, 197, 198, 179, 179, 179, 179,
179, 179, 199, 179, 200, 23, 179, 201, 202, 203,
190, 204, 205, 179, 179, 179, 179, 206, 179, 207,
208, 209, 179, 210, 211, 179, 179, 179, 73, 74,
75, 212, 23, 213, 78, 23, 23, 214, 571, 23,
23, 23, 23, 23, 23, 218, 23, 572, 215, 23,
23, 23, 218, 218, 23, 23, 23, 23, 333, 371,
333, 435, 432, 372, 432, 491, 373, 507, 312, 984,
436, 432, 425, 985, 425, 312, 312, 437, 549, 374,
228, 367, 356, 316, 368, 316, 357, 369, 381, 358,
442, 464, 455, 294, 305, 443, 978, 229, 382, 229,
294, 294, 359, 465, 21, 21, 21, 21, 375, 376,
230, 447, 387, 383, 420, 417, 417, 384, 417, 377,
385, 386, 388, 477, 448, 410, 410, 229, 410, 229,
207, 21, 208, 21, 21, 200, 201, 230, 25, 202,
478, 21, 21, 21, 21, 979, 21, 206, 436, 454,
203, 21, 21, 21, 206, 206, 21, 21, 21, 316,
417, 316, 350, 454, 351, 470, 352, 471, 417, 294,
410, 391, 353, 425, 392, 393, 294, 294, 410, 354,
 
508, 425, 492, 432, 23, 23, 23, 23, 406, 359,
550, 407, 408, 425, 451, 438, 432, 986, 409, 410,
411, 987, 322, 412, 413, 439, 425, 468, 414, 440,
219, 23, 220, 23, 23, 213, 78, 23, 23, 214,
988, 23, 23, 23, 23, 23, 23, 218, 23, 322,
215, 23, 23, 23, 218, 218, 23, 23, 23, 23,
240, 240, 240, 432, 432, 432, 241, 499, 241, 553,
500, 554, 501, 425, 425, 425, 583, 687, 583, 241,
502, 241, 512, 503, 850, 513, 23, 23, 23, 23,
851, 514, 242, 468, 449, 452, 241, 561, 241, 523,
355, 394, 395, 396, 417, 980, 397, 398, 673, 493,
342, 399, 421, 417, 410, 210, 423, 211, 437, 422,
454, 212, 494, 410, 981, 438, 424, 982, 983, 417,
456, 984, 213, 21, 214, 21, 21, 200, 201, 410,
25, 202, 305, 21, 21, 21, 21, 985, 21, 206,
986, 417, 203, 21, 21, 21, 206, 206, 21, 21,
21, 410, 348, 348, 348, 604, 229, 417, 229, 305,
457, 439, 532, 605, 348, 348, 348, 410, 440, 554,
987, 306, 434, 306, 533, 228, 228, 228, 555, 572,
316, 435, 316, 306, 349, 306, 229, 210, 229, 211,
 
562, 524, 453, 450, 989, 525, 583, 456, 583, 241,
563, 241, 219, 23, 220, 23, 23, 213, 78, 242,
27, 214, 990, 23, 23, 23, 23, 468, 23, 218,
883, 432, 215, 23, 23, 23, 218, 218, 23, 23,
23, 425, 363, 363, 363, 600, 588, 333, 991, 333,
333, 593, 333, 594, 323, 992, 323, 312, 542, 993,
312, 323, 601, 323, 312, 312, 688, 546, 312, 616,
635, 468, 636, 454, 364, 617, 637, 222, 624, 223,
455, 625, 618, 224, 323, 994, 323, 626, 995, 996,
997, 323, 998, 323, 225, 23, 226, 23, 23, 213,
294, 573, 417, 212, 229, 988, 229, 294, 294, 585,
441, 306, 410, 306, 213, 21, 214, 21, 220, 220,
220, 349, 536, 306, 537, 306, 586, 220, 220, 220,
220, 220, 220, 454, 229, 485, 229, 509, 486, 510,
487, 498, 544, 511, 499, 545, 417, 578, 488, 579,
500, 489, 454, 454, 989, 546, 410, 417, 220, 220,
220, 220, 220, 220, 295, 295, 295, 410, 454, 316,
868, 316, 990, 295, 295, 295, 295, 295, 295, 294,
991, 303, 303, 303, 454, 593, 529, 294, 594, 417,
595, 867, 992, 866, 993, 348, 348, 348, 596, 410,
 
78, 364, 27, 214, 999, 23, 23, 23, 23, 882,
23, 218, 1000, 1001, 215, 23, 23, 23, 218, 218,
23, 23, 23, 363, 363, 363, 1002, 866, 1003, 1004,
333, 1005, 547, 867, 240, 240, 240, 320, 320, 320,
312, 1006, 323, 1007, 323, 1008, 1009, 312, 312, 1010,
333, 1011, 333, 241, 1012, 241, 1765, 1013, 1765, 222,
312, 223, 1014, 1015, 1016, 224, 1017, 312, 312, 322,
1018, 1019, 323, 1020, 323, 1021, 225, 23, 226, 23,
232, 232, 232, 241, 1022, 241, 1765, 1025, 1765, 232,
232, 232, 232, 232, 232, 333, 322, 333, 333, 1026,
1750, 597, 1750, 655, 295, 295, 295, 295, 295, 295,
302, 302, 302, 305, 306, 994, 306, 995, 672, 303,
304, 303, 304, 303, 303, 996, 305, 997, 601, 306,
1750, 306, 1750, 305, 602, 657, 609, 851, 671, 610,
305, 603, 307, 852, 306, 611, 306, 998, 999, 1000,
303, 304, 303, 304, 303, 303, 316, 305, 530, 306,
1001, 306, 620, 305, 621, 1002, 294, 1003, 622, 307,
309, 309, 309, 294, 294, 417, 1004, 417, 417, 309,
310, 309, 311, 309, 309, 410, 312, 410, 410, 316,
313, 316, 639, 312, 641, 642, 1005, 314, 315, 294,
 
333, 333, 556, 333, 1027, 312, 1028, 1029, 312, 1030,
1031, 312, 312, 555, 1032, 312, 312, 1033, 312, 312,
232, 232, 232, 232, 232, 232, 313, 313, 313, 363,
363, 363, 1036, 1037, 1038, 313, 313, 313, 313, 313,
313, 608, 1039, 333, 609, 333, 610, 581, 323, 468,
323, 468, 468, 312, 611, 1043, 1046, 612, 1047, 753,
312, 312, 1048, 1044, 1051, 1052, 313, 313, 313, 313,
313, 313, 319, 319, 319, 1053, 1054, 1049, 323, 1045,
323, 320, 321, 320, 321, 320, 320, 1055, 322, 1041,
333, 323, 333, 323, 1050, 322, 1056, 762, 1042, 1057,
1006, 1007, 312, 1010, 1011, 1012, 294, 294, 1013, 1014,
309, 316, 309, 316, 309, 309, 316, 312, 316, 1015,
306, 1016, 306, 312, 1017, 1018, 294, 1021, 1022, 312,
345, 345, 345, 294, 538, 1023, 316, 1024, 316, 345,
345, 345, 345, 345, 345, 316, 294, 316, 417, 539,
306, 1028, 306, 294, 294, 294, 454, 454, 410, 454,
1031, 1032, 294, 294, 1029, 1033, 1036, 1034, 1037, 1038,
345, 345, 345, 345, 345, 345, 407, 407, 407, 1039,
1030, 316, 564, 316, 1035, 407, 407, 407, 407, 407,
407, 294, 1040, 316, 658, 316, 1026, 737, 294, 294,
 
312, 1040, 1058, 1059, 324, 1060, 1061, 312, 312, 1062,
1063, 1064, 320, 321, 320, 321, 320, 320, 1065, 322,
1066, 323, 1067, 323, 1068, 322, 1069, 1070, 1071, 1072,
1073, 324, 326, 326, 326, 1074, 1075, 1076, 1077, 1078,
1081, 326, 327, 326, 328, 326, 326, 1082, 329, 1079,
1083, 1084, 330, 1085, 1086, 329, 1087, 1088, 1089, 331,
332, 1080, 1090, 1093, 329, 1091, 1094, 1095, 1096, 1097,
1098, 1099, 326, 333, 326, 333, 326, 326, 1100, 329,
1101, 1092, 1102, 1103, 1104, 329, 1105, 1106, 1107, 1108,
1109, 329, 361, 361, 361, 1110, 1111, 1112, 1113, 1114,
746, 1041, 1042, 294, 1027, 1043, 1044, 1045, 1025, 1046,
294, 294, 1047, 1048, 1049, 1050, 407, 407, 407, 407,
407, 407, 411, 411, 411, 1051, 1052, 1053, 1054, 1055,
1056, 411, 411, 411, 411, 411, 411, 1057, 1058, 1059,
1060, 1061, 1062, 1063, 1064, 1066, 1067, 1068, 1069, 1070,
1071, 1072, 1073, 1074, 1077, 1075, 1065, 1078, 1079, 1080,
1081, 1082, 411, 411, 411, 411, 411, 411, 415, 415,
415, 1076, 1083, 1084, 1085, 1086, 1087, 415, 416, 415,
417, 415, 415, 1088, 418, 1089, 1090, 1091, 419, 1092,
1093, 418, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101,
 
1115, 361, 361, 361, 361, 361, 361, 1116, 1117, 1118,
1120, 1121, 1122, 1124, 1125, 1126, 1127, 1128, 1129, 1130,
1131, 1132, 1133, 1134, 1135, 1119, 1136, 1137, 1138, 1123,
1139, 1140, 361, 361, 361, 361, 361, 361, 422, 422,
422, 1141, 1142, 1143, 1144, 1145, 1146, 422, 422, 422,
422, 422, 422, 1147, 1148, 1149, 1150, 1151, 1152, 1153,
1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164,
1165, 1154, 1166, 1167, 1168, 1169, 1170, 1171, 422, 422,
422, 422, 422, 422, 426, 426, 426, 1172, 1173, 1174,
468, 468, 1177, 426, 426, 426, 426, 426, 426, 468,
418, 1102, 1104, 1105, 1106, 1107, 1109, 1110, 415, 417,
415, 417, 415, 415, 1111, 418, 1112, 1103, 1113, 1114,
1115, 418, 1108, 1116, 1117, 1118, 1119, 418, 295, 295,
295, 1120, 1121, 1122, 1123, 1124, 1125, 295, 295, 295,
295, 295, 295, 1126, 1127, 1128, 1129, 526, 1130, 526,
1131, 1132, 1133, 1134, 1135, 1136, 1137, 1140, 1141, 1142,
1143, 1144, 1138, 1145, 1146, 1147, 1148, 1149, 295, 295,
295, 295, 295, 295, 1139, 1150, 1151, 526, 1152, 526,
345, 345, 345, 1153, 1154, 1155, 1156, 1157, 1158, 345,
345, 345, 345, 345, 345, 1159, 454, 1162, 454, 566,
 
1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187,
1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197,
1198, 1199, 1200, 1201, 426, 426, 426, 426, 426, 426,
430, 430, 430, 1202, 1203, 1204, 1205, 1176, 1206, 430,
431, 430, 432, 430, 430, 1207, 433, 1208, 1175, 1209,
434, 1210, 1211, 433, 1212, 1213, 1214, 1215, 1216, 1217,
1218, 1219, 433, 1220, 1221, 1222, 1223, 1224, 1225, 1226,
430, 432, 430, 432, 430, 430, 1227, 433, 1228, 1229,
1230, 1231, 1232, 433, 1233, 1234, 1235, 1236, 1237, 433,
313, 313, 313, 1238, 1239, 1240, 1241, 1242, 1243, 313,
1163, 566, 454, 1164, 1165, 1166, 1167, 1168, 1169, 1170,
1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180,
345, 345, 345, 345, 345, 345, 1181, 1182, 1183, 566,
1184, 566, 407, 407, 407, 1185, 1186, 1187, 1188, 1189,
1190, 407, 407, 407, 407, 407, 407, 1160, 1191, 1161,
1192, 637, 1193, 637, 1194, 1195, 1196, 1197, 1198, 1199,
1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
1210, 1211, 407, 407, 407, 407, 407, 407, 1212, 1213,
1214, 637, 1215, 637, 411, 411, 411, 1216, 1217, 1218,
1219, 1220, 1221, 411, 411, 411, 411, 411, 411, 1222,
 
313, 313, 313, 313, 313, 1244, 1245, 1246, 1247, 543,
1248, 543, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256,
1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266,
313, 313, 313, 313, 313, 313, 1267, 1268, 1269, 543,
1270, 543, 422, 422, 422, 1271, 1272, 1273, 1274, 1275,
468, 422, 422, 422, 422, 422, 422, 468, 1276, 1277,
1278, 652, 1279, 652, 1280, 1281, 1282, 1283, 1284, 1285,
1286, 1287, 1288, 1289, 1290, 1291, 1293, 1294, 1295, 1296,
1292, 1297, 422, 422, 422, 422, 422, 422, 1298, 1299,
1300, 652, 1301, 652, 426, 426, 426, 1302, 1303, 1304,
1223, 1224, 1225, 638, 1226, 638, 1227, 1228, 1229, 1230,
1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240,
1241, 1242, 1243, 1244, 411, 411, 411, 411, 411, 411,
1245, 1246, 1247, 638, 1248, 638, 1008, 1008, 1249, 1008,
1008, 1008, 1250, 1008, 1008, 1008, 1008, 1008, 1251, 1008,
1252, 1253, 1254, 1255, 1256, 1257, 1258, 1008, 1008, 1008,
1008, 1008, 1259, 1260, 454, 454, 1261, 1262, 1263, 1264,
1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274,
1275, 1276, 1278, 1279, 1280, 1281, 1277, 1282, 1283, 1284,
1285, 1008, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293,
 
1305, 1306, 1307, 426, 426, 426, 426, 426, 426, 1308,
1309, 1310, 1311, 653, 1312, 653, 1313, 1314, 1315, 1316,
1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326,
1327, 1328, 1329, 1330, 426, 426, 426, 426, 426, 426,
1331, 1332, 1333, 653, 1334, 653, 430, 430, 430, 1335,
1336, 1339, 1340, 1341, 1342, 430, 432, 430, 432, 430,
430, 1337, 433, 1343, 1344, 1345, 1338, 1346, 1347, 433,
1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 433, 1356,
1357, 1358, 1359, 1360, 1361, 1362, 430, 432, 430, 432,
430, 430, 1363, 433, 1364, 1365, 1366, 1367, 1368, 433,
1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303,
1304, 1305, 1306, 1307, 1008, 1008, 1008, 1019, 1019, 1308,
1019, 1019, 1019, 1309, 1019, 1019, 1019, 1019, 1019, 1310,
1019, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1019, 1019,
1019, 1019, 1019, 1318, 1319, 1320, 1321, 1322, 1324, 1325,
1326, 1327, 1323, 1328, 1329, 1330, 1331, 1332, 1333, 1334,
1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344,
1345, 1346, 1019, 1347, 1348, 1349, 1350, 1351, 1352, 1353,
1354, 1355, 1356, 1357, 1358, 1359, 1363, 1364, 1365, 1366,
1367, 1368, 1369, 1370, 1371, 1019, 1019, 1019, 1008, 1008,
 
1369, 1370, 1371, 1372, 1373, 433, 1023, 1023, 1374, 1023,
1023, 1023, 1375, 1023, 1023, 1023, 1023, 1023, 1378, 1023,
1376, 1379, 1380, 1381, 1382, 1377, 1383, 1023, 1023, 1023,
1023, 1023, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391,
1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401,
1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1413,
1414, 1023, 1415, 1416, 1417, 1418, 1411, 1419, 1420, 1421,
1422, 1412, 1423, 1424, 1425, 1427, 1428, 1429, 1430, 1431,
1432, 1433, 1426, 1434, 1023, 1023, 1023, 1034, 1034, 1435,
1034, 1034, 1034, 1436, 1034, 1034, 1034, 1034, 1034, 1437,
1372, 1008, 1008, 1008, 1360, 1008, 1008, 1008, 1008, 1008,
1373, 1008, 1361, 1374, 1375, 1376, 1377, 1362, 1378, 1008,
1008, 1008, 1008, 1008, 1379, 1380, 1381, 1382, 1383, 1384,
1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394,
1398, 1395, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1396,
1406, 1407, 1408, 1008, 1397, 1409, 1410, 1412, 1413, 1414,
1415, 1416, 1417, 1418, 1411, 1419, 1420, 1421, 1422, 1423,
1424, 1425, 1426, 1427, 1430, 1431, 1008, 1008, 1008, 1019,
1019, 1432, 1019, 1019, 1019, 1428, 1019, 1019, 1019, 1019,
1019, 1433, 1019, 1429, 1434, 1435, 1436, 1437, 1438, 1439,
 
1034, 1438, 1439, 1440, 1441, 1442, 1443, 1445, 1034, 1034,
1034, 1034, 1034, 1446, 1444, 1447, 1448, 1449, 1450, 1451,
1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1461, 1462,
1463, 1464, 1465, 1466, 1467, 1460, 1468, 1469, 1470, 1471,
1472, 1473, 1034, 1474, 1475, 1476, 1477, 1478, 1479, 1480,
1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490,
1491, 1492, 1493, 1494, 1495, 1034, 1034, 1034, 1023, 1023,
1496, 1023, 1023, 1023, 1497, 1023, 1023, 1023, 1023, 1023,
1498, 1023, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1023,
1023, 1023, 1023, 1023, 1506, 1507, 1508, 1509, 1510, 1511,
1019, 1019, 1019, 1019, 1019, 1440, 1441, 1442, 1443, 1444,
1446, 1447, 1448, 1449, 1450, 1451, 1452, 1445, 1453, 1454,
1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464,
1465, 1466, 1467, 1468, 1019, 1469, 1470, 1471, 1472, 1473,
1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483,
1484, 1485, 1486, 1487, 1488, 1489, 1490, 1019, 1019, 1019,
1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500,
1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510,
1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520,
1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530,
 
1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521,
1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531,
1532, 1533, 1534, 1023, 1535, 1536, 1537, 1538, 1539, 1540,
1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540,
1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550,
1551, 1552, 1553, 1554, 1555, 1556, 1023, 1023, 1023, 1034,
1034, 1557, 1034, 1034, 1034, 1558, 1034, 1034, 1034, 1034,
1034, 1559, 1034, 1560, 1561, 1562, 1563, 1564, 1565, 1566,
1034, 1034, 1034, 1034, 1034, 1567, 1568, 1569, 1570, 1571,
1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581,
1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591,
1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560,
1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570,
1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580,
1581, 1584, 1585, 1586, 1582, 1587, 1588, 1589, 1590, 1591,
1592, 1593, 1596, 1597, 1598, 1594, 1599, 1583, 1600, 1601,
1602, 1605, 1606, 1607, 1603, 1608, 1609, 1610, 1595, 1611,
1612, 1613, 1614, 1615, 1616, 1617, 1618, 1604, 1619, 1620,
1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630,
 
1592, 1593, 1594, 1595, 1034, 1596, 1599, 1600, 1601, 1597,
1602, 1603, 1604, 1605, 1606, 1607, 1608, 1611, 1612, 1613,
1609, 1614, 1598, 1615, 1616, 1620, 1617, 1034, 1034, 1034,
1618, 1621, 1622, 1610, 1623, 1624, 1625, 1626, 1627, 1628,
1629, 1630, 1631, 1619, 1632, 1633, 1634, 1635, 1636, 1637,
1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647,
1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657,
1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667,
1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677,
1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687,
1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640,
1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650,
1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660,
1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670,
1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680,
1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690,
1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700,
1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710,
1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720,
1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730,
 
1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697,
1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707,
1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717,
1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727,
1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737,
1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747,
1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757,
1758, 1759, 1760, 1761, 1762, 1763, 1764, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 169,
1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740,
1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 156,
156, 156, 156, 156, 156, 156, 156, 156, 156, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 205,
205, 205, 205, 205, 205, 205, 205, 205, 205, 209,
209, 209, 209, 209, 209, 209, 209, 209, 209, 216,
216, 216, 216, 216, 216, 216, 216, 218, 218, 218,
218, 218, 218, 218, 218, 218, 218, 294, 294, 528,
294, 294, 294, 294, 344, 344, 344, 344, 344, 344,
 
169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
23, 217, 217, 217, 217, 217, 217, 217, 217, 217,
217, 217, 221, 221, 221, 221, 221, 221, 221, 221,
221, 221, 221, 228, 228, 228, 228, 228, 228, 228,
228, 228, 230, 230, 230, 230, 230, 230, 230, 230,
230, 230, 230, 306, 306, 306, 306, 306, 306, 306,
306, 309, 975, 974, 973, 309, 309, 972, 309, 312,
312, 971, 312, 312, 312, 312, 312, 421, 970, 969,
968, 421, 421, 421, 421, 423, 423, 423, 423, 423,
344, 406, 972, 971, 970, 406, 406, 406, 408, 408,
408, 408, 408, 408, 408, 408, 408, 408, 410, 410,
969, 410, 410, 410, 410, 412, 968, 412, 412, 412,
412, 412, 412, 412, 412, 414, 967, 414, 414, 414,
414, 414, 414, 414, 414, 451, 966, 451, 451, 451,
451, 451, 451, 451, 451, 452, 965, 452, 453, 453,
964, 963, 453, 453, 962, 453, 527, 527, 961, 527,
527, 527, 527, 567, 567, 567, 567, 567, 567, 567,
1009, 960, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
1020, 959, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
 
423, 423, 423, 423, 423, 423, 425, 425, 967, 425,
425, 425, 425, 425, 427, 966, 427, 427, 427, 427,
427, 427, 427, 427, 427, 429, 965, 429, 429, 429,
429, 429, 429, 429, 429, 429, 465, 964, 465, 465,
465, 465, 465, 465, 465, 465, 465, 466, 963, 466,
466, 467, 467, 962, 961, 467, 467, 960, 467, 467,
540, 540, 540, 540, 540, 540, 540, 540, 541, 541,
541, 541, 541, 541, 541, 541, 544, 544, 959, 544,
544, 544, 544, 544, 545, 545, 427, 958, 427, 427,
427, 427, 427, 427, 427, 427, 427, 429, 957, 429,
1008, 958, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
1019, 957, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
956, 955, 954, 953, 952, 951, 950, 949, 948, 947,
946, 945, 944, 943, 942, 941, 940, 939, 938, 937,
936, 935, 934, 933, 932, 931, 930, 929, 928, 927,
926, 925, 924, 923, 922, 921, 920, 919, 918, 917,
916, 915, 914, 913, 912, 911, 910, 909, 908, 907,
906, 905, 904, 903, 902, 901, 900, 899, 898, 897,
896, 895, 894, 893, 892, 891, 890, 889, 888, 887,
886, 885, 884, 883, 882, 881, 880, 879, 878, 877,
 
429, 429, 429, 429, 429, 429, 429, 429, 465, 956,
465, 465, 465, 465, 465, 465, 465, 465, 465, 466,
955, 466, 466, 467, 467, 954, 953, 467, 467, 952,
467, 467, 1024, 951, 1024, 1024, 1024, 1024, 1024, 1024,
1024, 1024, 1024, 1035, 950, 1035, 1035, 1035, 1035, 1035,
1035, 1035, 1035, 1035, 1023, 949, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1034, 948, 1034, 1034, 1034,
1034, 1034, 1034, 1034, 1034, 1034, 947, 946, 945, 944,
943, 942, 941, 940, 939, 938, 937, 936, 935, 934,
933, 932, 931, 930, 929, 928, 927, 926, 925, 924,
876, 875, 874, 873, 872, 871, 870, 869, 865, 864,
863, 862, 861, 860, 859, 858, 857, 856, 855, 854,
853, 850, 849, 848, 847, 846, 845, 844, 843, 842,
841, 840, 839, 838, 837, 834, 833, 832, 831, 830,
829, 828, 827, 826, 825, 824, 823, 822, 821, 820,
819, 818, 817, 816, 815, 814, 813, 812, 811, 810,
809, 808, 807, 806, 805, 804, 803, 802, 801, 800,
799, 798, 797, 796, 795, 794, 793, 792, 791, 790,
789, 788, 787, 786, 785, 784, 783, 782, 781, 780,
779, 778, 777, 776, 775, 774, 773, 772, 771, 770,
 
923, 922, 921, 920, 919, 918, 917, 916, 915, 914,
913, 912, 911, 910, 909, 908, 907, 906, 905, 904,
903, 902, 901, 900, 899, 898, 897, 896, 895, 894,
893, 892, 891, 890, 889, 888, 887, 886, 885, 884,
880, 879, 878, 877, 876, 875, 874, 873, 872, 871,
870, 869, 868, 865, 864, 863, 862, 861, 860, 859,
858, 857, 856, 855, 854, 853, 852, 849, 848, 847,
846, 845, 844, 843, 842, 841, 840, 839, 838, 837,
836, 835, 834, 833, 832, 831, 830, 829, 828, 827,
826, 825, 824, 823, 822, 821, 820, 819, 818, 817,
769, 768, 767, 766, 765, 764, 763, 762, 761, 760,
759, 758, 757, 756, 755, 754, 753, 752, 751, 750,
749, 748, 747, 745, 744, 743, 742, 741, 740, 739,
738, 736, 735, 734, 733, 732, 731, 730, 729, 728,
727, 726, 725, 724, 723, 722, 721, 720, 719, 718,
717, 716, 715, 714, 713, 712, 711, 710, 709, 708,
707, 706, 705, 704, 703, 702, 701, 700, 699, 698,
697, 696, 695, 694, 693, 692, 691, 690, 689, 688,
687, 686, 685, 684, 683, 682, 681, 680, 679, 678,
677, 676, 675, 674, 453, 454, 450, 670, 669, 668,
 
816, 815, 814, 813, 812, 811, 810, 809, 808, 807,
806, 805, 804, 803, 802, 801, 800, 799, 798, 797,
796, 795, 794, 793, 792, 791, 790, 789, 788, 787,
786, 785, 784, 783, 782, 781, 780, 779, 778, 777,
776, 775, 774, 773, 772, 771, 770, 769, 768, 767,
766, 765, 764, 763, 761, 760, 759, 758, 757, 756,
755, 754, 752, 751, 750, 749, 748, 747, 746, 745,
744, 743, 742, 741, 740, 739, 738, 737, 736, 735,
734, 733, 732, 731, 730, 729, 728, 727, 726, 725,
724, 723, 722, 721, 720, 719, 718, 717, 716, 715,
667, 666, 665, 664, 663, 662, 661, 660, 659, 656,
654, 653, 652, 651, 650, 649, 648, 647, 646, 645,
644, 643, 640, 409, 636, 635, 634, 633, 632, 631,
630, 629, 628, 627, 626, 625, 624, 623, 619, 618,
617, 616, 615, 614, 613, 612, 608, 607, 606, 600,
599, 598, 592, 591, 590, 589, 588, 587, 584, 583,
582, 581, 580, 577, 576, 575, 574, 571, 570, 569,
568, 565, 563, 562, 561, 560, 559, 558, 557, 556,
553, 552, 551, 548, 547, 543, 542, 541, 540, 535,
534, 531, 525, 524, 523, 522, 521, 520, 519, 518,
 
714, 713, 712, 711, 710, 709, 708, 707, 706, 705,
704, 703, 702, 701, 700, 699, 698, 697, 696, 695,
694, 693, 692, 691, 690, 689, 467, 468, 685, 684,
683, 682, 681, 680, 679, 678, 677, 676, 675, 674,
673, 672, 671, 670, 669, 668, 667, 666, 665, 664,
663, 662, 661, 660, 659, 658, 657, 656, 655, 654,
424, 651, 650, 649, 648, 647, 646, 645, 644, 643,
642, 641, 640, 639, 638, 634, 633, 632, 631, 630,
629, 628, 627, 623, 622, 621, 615, 614, 613, 607,
606, 605, 604, 603, 602, 599, 598, 597, 596, 595,
517, 516, 515, 514, 513, 512, 508, 507, 506, 505,
504, 503, 502, 501, 497, 496, 495, 492, 491, 490,
484, 483, 482, 481, 480, 479, 476, 475, 474, 473,
472, 469, 468, 467, 466, 463, 462, 461, 460, 459,
458, 219, 215, 454, 300, 450, 449, 446, 445, 444,
433, 430, 429, 428, 308, 301, 298, 297, 413, 409,
293, 405, 404, 403, 402, 401, 400, 390, 389, 374,
373, 370, 343, 337, 327, 326, 325, 324, 308, 297,
296, 219, 293, 215, 290, 289, 288, 287, 286, 285,
275, 274, 260, 259, 256, 233, 225, 224, 223, 219,
 
592, 591, 590, 589, 587, 586, 585, 584, 582, 580,
579, 578, 577, 576, 575, 574, 573, 570, 569, 568,
565, 564, 560, 559, 558, 557, 552, 551, 548, 542,
305, 539, 538, 537, 536, 535, 534, 533, 532, 531,
530, 529, 528, 527, 526, 522, 521, 520, 519, 518,
517, 516, 515, 511, 510, 509, 506, 505, 504, 498,
497, 496, 495, 494, 493, 490, 489, 488, 487, 486,
483, 482, 481, 480, 477, 476, 475, 474, 473, 472,
231, 227, 468, 308, 305, 464, 461, 460, 459, 448,
445, 444, 443, 325, 318, 316, 315, 428, 424, 311,
 
420, 419, 418, 417, 416, 415, 405, 404, 389, 388,
385, 360, 354, 344, 343, 342, 341, 325, 315, 314,
231, 311, 227, 310, 308, 307, 231, 305, 302, 301,
300, 299, 298, 297, 287, 286, 272, 271, 268, 245,
237, 236, 235, 231, 229, 227, 1765, 21, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
 
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765
217, 215, 1750, 19, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750
} ;
 
static yyconst flex_int16_t yy_chk[2931] =
static yyconst flex_int16_t yy_chk[2787] =
{ 0,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1352,320 → 1328,304
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 5, 5, 5, 5, 5, 5, 100, 5,
5, 5, 5, 5, 5, 5, 5, 30, 5, 5,
3, 3, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
 
5, 5, 5, 5, 5, 5, 5, 5, 5, 38,
43, 43, 30, 15, 15, 16, 16, 15, 94, 16,
58, 38, 45, 45, 58, 47, 801, 47, 15, 47,
16, 122, 100, 94, 5, 47, 5, 5, 49, 122,
50, 49, 47, 47, 50, 51, 210, 54, 52, 48,
54, 52, 74, 48, 52, 51, 48, 802, 50, 210,
5, 5, 5, 6, 6, 6, 6, 6, 6, 48,
6, 6, 6, 6, 6, 6, 6, 6, 104, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
15, 59, 16, 57, 57, 60, 61, 121, 102, 60,
 
803, 59, 60, 60, 57, 104, 61, 121, 74, 64,
102, 143, 64, 64, 143, 6, 804, 6, 6, 64,
64, 64, 107, 107, 64, 64, 109, 109, 123, 64,
145, 124, 206, 148, 806, 124, 148, 206, 123, 124,
145, 6, 6, 6, 7, 7, 7, 7, 7, 7,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
 
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
 
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 36, 72, 9, 9, 9, 9, 9, 9, 9,
9, 9, 28, 36, 41, 41, 13, 13, 14, 14,
13, 801, 14, 43, 43, 46, 45, 28, 45, 46,
45, 13, 46, 14, 47, 48, 45, 47, 9, 48,
 
9, 9, 9, 9, 9, 9, 9, 9, 11, 11,
9, 9, 49, 45, 45, 46, 52, 57, 50, 52,
59, 50, 49, 48, 50, 56, 91, 57, 72, 56,
59, 87, 94, 94, 9, 9, 9, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 802, 91, 10, 10, 10, 10, 10, 10,
10, 10, 10, 13, 58, 14, 55, 55, 58, 81,
62, 58, 58, 62, 62, 87, 89, 55, 96, 96,
62, 62, 62, 803, 81, 62, 62, 108, 89, 10,
62, 10, 10, 99, 109, 99, 100, 108, 100, 180,
99, 329, 109, 99, 111, 180, 100, 329, 111, 100,
 
99, 99, 111, 100, 100, 10, 10, 10, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 132, 136, 11, 11, 11, 11, 11,
11, 11, 11, 11, 40, 40, 40, 393, 193, 112,
138, 112, 807, 126, 193, 393, 112, 126, 113, 112,
113, 182, 138, 40, 126, 40, 112, 112, 113, 126,
11, 113, 11, 11, 146, 113, 113, 146, 136, 152,
146, 151, 151, 152, 153, 346, 222, 152, 182, 132,
223, 346, 151, 40, 153, 40, 11, 11, 11, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
15, 15, 15, 15, 15, 15, 804, 15, 15, 15,
 
12, 12, 12, 12, 224, 469, 12, 12, 12, 12,
12, 12, 12, 12, 12, 114, 114, 144, 114, 114,
115, 144, 115, 686, 252, 197, 114, 223, 808, 116,
115, 116, 222, 114, 114, 144, 252, 115, 115, 116,
197, 12, 115, 12, 12, 155, 116, 116, 141, 154,
141, 190, 141, 154, 224, 155, 154, 154, 141, 469,
258, 190, 258, 809, 686, 141, 141, 12, 12, 12,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
15, 15, 15, 15, 15, 119, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 38, 38, 38, 110,
101, 101, 123, 101, 101, 130, 132, 640, 130, 110,
102, 101, 102, 640, 184, 38, 132, 38, 101, 101,
102, 125, 15, 15, 15, 15, 113, 102, 102, 184,
113, 135, 102, 125, 135, 139, 210, 113, 806, 139,
131, 119, 113, 139, 131, 38, 123, 38, 15, 15,
15, 15, 16, 16, 16, 16, 16, 16, 131, 16,
16, 16, 16, 16, 16, 16, 16, 169, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 37, 37,
 
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 17, 17, 17, 17, 17, 17, 350, 17,
17, 17, 17, 17, 17, 17, 17, 350, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 129, 142,
129, 188, 188, 142, 202, 264, 142, 275, 129, 810,
189, 189, 188, 812, 202, 129, 129, 189, 331, 142,
37, 133, 129, 103, 133, 103, 129, 133, 140, 129,
193, 240, 210, 103, 169, 193, 808, 37, 140, 37,
103, 103, 129, 240, 16, 16, 16, 16, 138, 138,
37, 197, 142, 141, 175, 175, 177, 141, 189, 138,
141, 141, 142, 252, 197, 175, 177, 37, 189, 37,
16, 16, 16, 16, 17, 17, 17, 37, 17, 17,
252, 17, 17, 17, 17, 809, 17, 17, 189, 457,
17, 17, 17, 17, 17, 17, 17, 17, 17, 116,
179, 116, 128, 211, 128, 246, 128, 246, 190, 116,
179, 145, 128, 179, 145, 145, 116, 116, 190, 128,
 
275, 189, 264, 191, 17, 17, 17, 17, 158, 129,
331, 158, 158, 191, 202, 191, 192, 813, 158, 158,
158, 814, 319, 158, 158, 191, 192, 470, 158, 192,
17, 17, 17, 17, 18, 18, 18, 18, 18, 18,
816, 18, 18, 18, 18, 18, 18, 18, 18, 319,
18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
39, 39, 39, 201, 205, 203, 232, 271, 232, 336,
271, 336, 271, 201, 205, 203, 361, 470, 361, 39,
271, 39, 279, 271, 655, 279, 18, 18, 18, 18,
655, 279, 39, 688, 201, 203, 232, 343, 232, 288,
128, 145, 145, 145, 178, 810, 145, 145, 457, 263,
116, 145, 176, 176, 178, 17, 178, 17, 190, 176,
212, 17, 263, 176, 811, 190, 178, 812, 813, 191,
211, 814, 17, 17, 17, 17, 18, 18, 18, 191,
18, 18, 302, 18, 18, 18, 18, 815, 18, 18,
816, 188, 18, 18, 18, 18, 18, 18, 18, 18,
18, 188, 126, 126, 126, 378, 220, 192, 220, 302,
212, 191, 314, 378, 127, 127, 127, 192, 191, 333,
818, 126, 188, 126, 314, 228, 228, 228, 333, 354,
309, 188, 309, 127, 126, 127, 220, 18, 220, 18,
 
343, 288, 203, 201, 817, 288, 361, 205, 361, 39,
343, 39, 18, 18, 18, 18, 19, 19, 19, 39,
19, 19, 818, 19, 19, 19, 19, 471, 19, 19,
688, 204, 19, 19, 19, 19, 19, 19, 19, 19,
19, 204, 139, 139, 139, 381, 369, 326, 819, 326,
327, 375, 327, 375, 545, 821, 545, 326, 369, 823,
327, 139, 381, 139, 326, 326, 471, 327, 327, 392,
406, 687, 406, 204, 139, 392, 406, 19, 397, 19,
204, 397, 392, 19, 545, 824, 545, 397, 825, 826,
827, 139, 828, 139, 19, 19, 19, 19, 20, 20,
309, 354, 415, 18, 228, 819, 228, 309, 309, 366,
192, 126, 415, 126, 18, 18, 18, 18, 26, 26,
26, 126, 319, 127, 319, 127, 366, 26, 26, 26,
26, 26, 26, 673, 228, 259, 228, 276, 259, 276,
259, 267, 326, 276, 267, 326, 417, 360, 259, 360,
267, 259, 671, 672, 820, 326, 417, 434, 26, 26,
26, 26, 26, 26, 79, 79, 79, 434, 456, 310,
673, 310, 821, 79, 79, 79, 79, 79, 79, 310,
822, 303, 303, 303, 455, 373, 310, 310, 373, 436,
373, 672, 823, 671, 824, 348, 348, 348, 373, 436,
 
20, 139, 20, 20, 829, 20, 20, 20, 20, 687,
20, 20, 830, 831, 20, 20, 20, 20, 20, 20,
20, 20, 20, 140, 140, 140, 833, 671, 834, 835,
328, 836, 328, 671, 240, 240, 240, 320, 320, 320,
328, 837, 140, 838, 140, 839, 840, 328, 328, 841,
333, 842, 333, 240, 843, 240, 320, 844, 320, 20,
333, 20, 845, 846, 847, 20, 848, 333, 333, 320,
849, 850, 140, 851, 140, 855, 20, 20, 20, 20,
28, 28, 28, 240, 856, 240, 320, 860, 320, 28,
28, 28, 28, 28, 28, 337, 320, 337, 338, 861,
303, 373, 303, 434, 79, 79, 79, 79, 79, 79,
90, 90, 90, 303, 348, 825, 348, 826, 456, 90,
90, 90, 90, 90, 90, 827, 90, 828, 377, 90,
303, 90, 303, 90, 377, 436, 382, 656, 455, 382,
303, 377, 90, 656, 348, 382, 348, 829, 830, 831,
90, 90, 90, 90, 90, 90, 311, 90, 311, 90,
832, 90, 391, 90, 391, 833, 311, 834, 391, 90,
98, 98, 98, 311, 311, 416, 835, 420, 421, 98,
98, 98, 98, 98, 98, 416, 98, 420, 421, 316,
98, 316, 416, 98, 420, 421, 836, 98, 98, 316,
 
338, 359, 338, 359, 863, 337, 864, 865, 338, 866,
867, 359, 337, 337, 871, 338, 338, 872, 359, 359,
28, 28, 28, 28, 28, 28, 92, 92, 92, 363,
363, 363, 876, 877, 879, 92, 92, 92, 92, 92,
92, 388, 880, 547, 388, 547, 388, 359, 363, 881,
363, 883, 882, 547, 388, 884, 887, 388, 888, 547,
547, 547, 889, 886, 892, 893, 92, 92, 92, 92,
92, 92, 103, 103, 103, 894, 897, 891, 363, 886,
363, 103, 103, 103, 103, 103, 103, 898, 103, 882,
556, 103, 556, 103, 891, 103, 900, 556, 883, 902,
840, 841, 98, 845, 846, 848, 316, 316, 849, 850,
98, 98, 98, 98, 98, 98, 320, 98, 320, 851,
528, 852, 528, 98, 856, 857, 320, 861, 862, 98,
122, 122, 122, 320, 320, 864, 342, 865, 342, 122,
122, 122, 122, 122, 122, 321, 342, 321, 437, 321,
528, 869, 528, 342, 342, 321, 866, 868, 437, 867,
872, 873, 321, 321, 871, 874, 877, 876, 878, 879,
122, 122, 122, 122, 122, 122, 153, 153, 153, 882,
871, 530, 342, 530, 876, 153, 153, 153, 153, 153,
153, 530, 883, 539, 437, 539, 867, 530, 530, 530,
 
556, 881, 903, 904, 103, 905, 906, 556, 556, 907,
908, 909, 103, 103, 103, 103, 103, 103, 910, 103,
911, 103, 912, 103, 913, 103, 914, 915, 916, 917,
919, 103, 111, 111, 111, 920, 921, 922, 923, 925,
927, 111, 111, 111, 111, 111, 111, 929, 111, 926,
930, 931, 111, 932, 933, 111, 934, 935, 936, 111,
111, 926, 937, 939, 111, 938, 940, 942, 943, 944,
946, 948, 111, 111, 111, 111, 111, 111, 949, 111,
950, 938, 951, 952, 953, 111, 954, 955, 956, 957,
958, 111, 135, 135, 135, 959, 960, 961, 962, 963,
539, 885, 887, 539, 868, 888, 889, 890, 866, 891,
539, 539, 892, 893, 894, 895, 153, 153, 153, 153,
153, 153, 161, 161, 161, 896, 897, 898, 899, 900,
901, 161, 161, 161, 161, 161, 161, 902, 904, 905,
906, 907, 908, 910, 911, 912, 914, 915, 916, 917,
918, 919, 920, 921, 923, 922, 911, 924, 926, 927,
928, 930, 161, 161, 161, 161, 161, 161, 174, 174,
174, 922, 932, 933, 934, 935, 936, 174, 174, 174,
174, 174, 174, 937, 174, 938, 939, 940, 174, 941,
942, 174, 943, 944, 945, 946, 947, 948, 949, 950,
 
964, 135, 135, 135, 135, 135, 135, 965, 966, 968,
969, 970, 972, 973, 974, 975, 978, 979, 981, 983,
984, 985, 986, 987, 988, 968, 989, 990, 991, 972,
992, 993, 135, 135, 135, 135, 135, 135, 166, 166,
166, 994, 995, 996, 997, 998, 999, 166, 166, 166,
166, 166, 166, 1001, 1002, 1003, 1004, 1005, 1007, 1008,
1009, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1020,
1021, 1008, 1022, 1026, 1028, 1029, 1031, 1032, 166, 166,
166, 166, 166, 166, 174, 174, 174, 1033, 1037, 1039,
1041, 1042, 1043, 174, 174, 174, 174, 174, 174, 1040,
174, 952, 953, 954, 955, 957, 958, 959, 174, 174,
174, 174, 174, 174, 960, 174, 963, 952, 964, 966,
968, 174, 957, 969, 970, 971, 972, 174, 295, 295,
295, 973, 974, 975, 976, 977, 978, 295, 295, 295,
295, 295, 295, 979, 980, 981, 982, 295, 983, 295,
984, 986, 987, 988, 989, 990, 992, 994, 996, 997,
998, 999, 993, 1000, 1001, 1002, 1003, 1005, 295, 295,
295, 295, 295, 295, 993, 1006, 1007, 295, 1011, 295,
345, 345, 345, 1013, 1014, 1016, 1017, 1018, 1022, 345,
345, 345, 345, 345, 345, 1024, 1027, 1028, 1025, 345,
 
1044, 1045, 1047, 1049, 1050, 1051, 1052, 1053, 1054, 1056,
1058, 1059, 1060, 1062, 1064, 1066, 1067, 1069, 1071, 1072,
1073, 1074, 1075, 1076, 174, 174, 174, 174, 174, 174,
187, 187, 187, 1077, 1078, 1079, 1080, 1041, 1081, 187,
187, 187, 187, 187, 187, 1082, 187, 1083, 1040, 1086,
187, 1087, 1088, 187, 1089, 1090, 1091, 1092, 1094, 1095,
1096, 1097, 187, 1098, 1100, 1101, 1103, 1104, 1105, 1107,
187, 187, 187, 187, 187, 187, 1109, 187, 1110, 1111,
1112, 1113, 1114, 187, 1115, 1116, 1117, 1118, 1119, 187,
313, 313, 313, 1122, 1123, 1124, 1125, 1126, 1127, 313,
1029, 345, 1026, 1030, 1032, 1034, 1035, 1036, 1037, 1038,
1039, 1041, 1043, 1044, 1045, 1047, 1049, 1051, 1052, 1054,
345, 345, 345, 345, 345, 345, 1056, 1057, 1058, 345,
1059, 345, 407, 407, 407, 1060, 1061, 1062, 1063, 1064,
1065, 407, 407, 407, 407, 407, 407, 1025, 1066, 1026,
1067, 407, 1068, 407, 1071, 1072, 1073, 1074, 1075, 1076,
1078, 1079, 1080, 1081, 1082, 1084, 1085, 1087, 1088, 1089,
1091, 1093, 407, 407, 407, 407, 407, 407, 1094, 1095,
1096, 407, 1097, 407, 411, 411, 411, 1098, 1099, 1100,
1101, 1102, 1103, 411, 411, 411, 411, 411, 411, 1105,
 
313, 313, 313, 313, 313, 1129, 1131, 1132, 1133, 313,
1135, 313, 1137, 1138, 1140, 1141, 1143, 1145, 1146, 1147,
1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157,
313, 313, 313, 313, 313, 313, 1160, 1161, 1162, 313,
1163, 313, 422, 422, 422, 1164, 1168, 1169, 1170, 1174,
1175, 422, 422, 422, 422, 422, 422, 1176, 1177, 1179,
1180, 422, 1181, 422, 1182, 1183, 1184, 1186, 1187, 1189,
1190, 1191, 1192, 1193, 1195, 1196, 1198, 1199, 1200, 1201,
1196, 1202, 422, 422, 422, 422, 422, 422, 1203, 1204,
1205, 422, 1208, 422, 426, 426, 426, 1210, 1211, 1212,
1107, 1108, 1109, 411, 1110, 411, 1111, 1112, 1114, 1116,
1117, 1118, 1120, 1122, 1123, 1125, 1126, 1128, 1130, 1131,
1132, 1133, 1134, 1135, 411, 411, 411, 411, 411, 411,
1136, 1137, 1138, 411, 1139, 411, 842, 842, 1140, 842,
842, 842, 1141, 842, 842, 842, 842, 842, 1142, 842,
1145, 1146, 1147, 1148, 1149, 1153, 1154, 842, 842, 842,
842, 842, 1155, 1159, 1160, 1161, 1162, 1164, 1165, 1166,
1167, 1168, 1169, 1171, 1172, 1174, 1175, 1176, 1177, 1178,
1180, 1181, 1183, 1184, 1185, 1186, 1181, 1187, 1188, 1189,
1190, 842, 1193, 1195, 1196, 1197, 1199, 1200, 1201, 1202,
 
1213, 1215, 1216, 426, 426, 426, 426, 426, 426, 1217,
1218, 1220, 1222, 426, 1223, 426, 1224, 1225, 1226, 1228,
1229, 1230, 1232, 1233, 1234, 1235, 1237, 1238, 1239, 1240,
1241, 1243, 1244, 1246, 426, 426, 426, 426, 426, 426,
1247, 1248, 1249, 426, 1250, 426, 430, 430, 430, 1251,
1253, 1256, 1257, 1258, 1259, 430, 430, 430, 430, 430,
430, 1254, 430, 1260, 1261, 1262, 1254, 1263, 1266, 430,
1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 430, 1277,
1278, 1280, 1281, 1282, 1283, 1284, 430, 430, 430, 430,
430, 430, 1285, 430, 1286, 1287, 1289, 1290, 1291, 430,
1204, 1206, 1207, 1208, 1209, 1210, 1212, 1213, 1214, 1216,
1217, 1218, 1219, 1221, 842, 842, 842, 858, 858, 1222,
858, 858, 858, 1223, 858, 858, 858, 858, 858, 1224,
858, 1225, 1226, 1228, 1229, 1231, 1232, 1233, 858, 858,
858, 858, 858, 1234, 1235, 1236, 1238, 1239, 1241, 1242,
1243, 1244, 1239, 1245, 1246, 1247, 1248, 1251, 1253, 1254,
1255, 1256, 1257, 1258, 1259, 1260, 1262, 1263, 1265, 1266,
1267, 1268, 858, 1269, 1270, 1271, 1272, 1274, 1275, 1276,
1277, 1278, 1279, 1280, 1282, 1283, 1285, 1288, 1290, 1291,
1293, 1294, 1295, 1298, 1299, 858, 858, 858, 1009, 1009,
 
1292, 1293, 1294, 1295, 1297, 430, 857, 857, 1298, 857,
857, 857, 1299, 857, 857, 857, 857, 857, 1300, 857,
1299, 1303, 1304, 1306, 1307, 1299, 1309, 857, 857, 857,
857, 857, 1310, 1311, 1314, 1315, 1316, 1317, 1318, 1321,
1323, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1335,
1336, 1337, 1338, 1339, 1340, 1341, 1343, 1344, 1345, 1346,
1349, 857, 1356, 1358, 1359, 1360, 1345, 1361, 1362, 1363,
1364, 1345, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372,
1373, 1374, 1367, 1375, 857, 857, 857, 873, 873, 1376,
873, 873, 873, 1377, 873, 873, 873, 873, 873, 1379,
1300, 1009, 1009, 1009, 1284, 1009, 1009, 1009, 1009, 1009,
1301, 1009, 1284, 1302, 1305, 1307, 1308, 1284, 1310, 1009,
1009, 1009, 1009, 1009, 1311, 1312, 1313, 1314, 1315, 1316,
1317, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1328, 1329,
1331, 1330, 1334, 1341, 1343, 1344, 1345, 1346, 1347, 1330,
1348, 1349, 1350, 1009, 1330, 1351, 1352, 1353, 1354, 1355,
1356, 1357, 1358, 1359, 1352, 1360, 1361, 1362, 1364, 1365,
1367, 1368, 1369, 1370, 1372, 1373, 1009, 1009, 1009, 1020,
1020, 1374, 1020, 1020, 1020, 1371, 1020, 1020, 1020, 1020,
1020, 1375, 1020, 1371, 1376, 1378, 1379, 1380, 1381, 1382,
 
873, 1381, 1383, 1384, 1385, 1386, 1387, 1388, 873, 873,
873, 873, 873, 1389, 1387, 1390, 1391, 1392, 1393, 1394,
1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404,
1405, 1406, 1407, 1408, 1409, 1402, 1410, 1411, 1412, 1414,
1415, 1416, 873, 1417, 1418, 1419, 1420, 1421, 1422, 1424,
1427, 1428, 1429, 1430, 1432, 1433, 1434, 1435, 1436, 1437,
1438, 1439, 1440, 1441, 1442, 873, 873, 873, 1024, 1024,
1445, 1024, 1024, 1024, 1446, 1024, 1024, 1024, 1024, 1024,
1447, 1024, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1024,
1024, 1024, 1024, 1024, 1455, 1456, 1458, 1461, 1462, 1463,
1020, 1020, 1020, 1020, 1020, 1383, 1384, 1385, 1386, 1387,
1388, 1389, 1390, 1391, 1392, 1393, 1394, 1387, 1395, 1396,
1397, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407,
1409, 1412, 1413, 1414, 1020, 1415, 1417, 1418, 1419, 1420,
1421, 1422, 1423, 1424, 1425, 1426, 1427, 1430, 1431, 1432,
1433, 1434, 1435, 1436, 1437, 1438, 1439, 1020, 1020, 1020,
1440, 1441, 1443, 1446, 1447, 1448, 1449, 1451, 1452, 1453,
1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463,
1464, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475,
1476, 1477, 1478, 1479, 1481, 1482, 1483, 1484, 1485, 1486,
 
1464, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474,
1475, 1476, 1477, 1478, 1479, 1482, 1483, 1484, 1485, 1486,
1487, 1488, 1489, 1024, 1490, 1491, 1492, 1493, 1494, 1496,
1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506,
1507, 1510, 1511, 1512, 1513, 1514, 1024, 1024, 1024, 1035,
1035, 1515, 1035, 1035, 1035, 1516, 1035, 1035, 1035, 1035,
1035, 1517, 1035, 1518, 1519, 1521, 1522, 1524, 1525, 1526,
1035, 1035, 1035, 1035, 1035, 1527, 1528, 1530, 1531, 1532,
1533, 1535, 1536, 1537, 1539, 1540, 1541, 1542, 1543, 1544,
1546, 1547, 1549, 1550, 1551, 1552, 1553, 1555, 1556, 1557,
1487, 1488, 1489, 1490, 1491, 1492, 1495, 1496, 1497, 1498,
1499, 1500, 1501, 1502, 1503, 1504, 1506, 1507, 1509, 1510,
1511, 1512, 1513, 1515, 1516, 1517, 1518, 1520, 1521, 1522,
1524, 1525, 1526, 1527, 1528, 1529, 1531, 1532, 1534, 1535,
1536, 1537, 1538, 1540, 1541, 1542, 1543, 1545, 1546, 1547,
1548, 1549, 1550, 1551, 1548, 1553, 1555, 1556, 1557, 1558,
1559, 1560, 1561, 1562, 1564, 1560, 1565, 1548, 1566, 1567,
1568, 1569, 1570, 1571, 1568, 1573, 1575, 1576, 1560, 1577,
1578, 1579, 1580, 1581, 1582, 1583, 1584, 1568, 1585, 1586,
1589, 1590, 1592, 1593, 1594, 1595, 1596, 1600, 1601, 1602,
 
1558, 1560, 1561, 1562, 1035, 1563, 1564, 1565, 1566, 1563,
1568, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1579,
1575, 1580, 1563, 1581, 1582, 1584, 1583, 1035, 1035, 1035,
1583, 1585, 1586, 1575, 1588, 1590, 1591, 1592, 1593, 1594,
1595, 1596, 1597, 1583, 1598, 1599, 1600, 1601, 1604, 1605,
1607, 1608, 1609, 1610, 1611, 1615, 1616, 1617, 1618, 1619,
1620, 1621, 1622, 1625, 1626, 1628, 1629, 1630, 1631, 1632,
1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642,
1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652,
1654, 1655, 1657, 1658, 1659, 1660, 1661, 1662, 1664, 1666,
1603, 1604, 1605, 1606, 1607, 1610, 1611, 1613, 1614, 1615,
1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625,
1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635,
1636, 1637, 1639, 1640, 1642, 1643, 1644, 1645, 1646, 1647,
1649, 1651, 1652, 1654, 1655, 1657, 1658, 1659, 1660, 1661,
1662, 1663, 1664, 1665, 1666, 1667, 1668, 1670, 1671, 1672,
1673, 1674, 1675, 1676, 1677, 1678, 1679, 1681, 1682, 1684,
1685, 1686, 1687, 1688, 1690, 1691, 1692, 1694, 1695, 1696,
1697, 1698, 1699, 1700, 1701, 1702, 1704, 1705, 1707, 1708,
1709, 1710, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719,
 
1667, 1669, 1670, 1672, 1673, 1674, 1675, 1676, 1677, 1678,
1679, 1680, 1681, 1682, 1683, 1685, 1686, 1687, 1688, 1689,
1690, 1691, 1692, 1693, 1694, 1696, 1697, 1699, 1700, 1701,
1702, 1703, 1705, 1706, 1707, 1709, 1710, 1711, 1712, 1713,
1714, 1715, 1716, 1717, 1719, 1720, 1722, 1723, 1724, 1725,
1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736,
1737, 1738, 1740, 1741, 1742, 1744, 1746, 1747, 1748, 1751,
1752, 1755, 1756, 1758, 1760, 1761, 1762, 1766, 1766, 1766,
1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1767, 1767,
1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1768,
1720, 1721, 1722, 1723, 1725, 1726, 1727, 1729, 1731, 1732,
1733, 1736, 1737, 1740, 1741, 1743, 1745, 1746, 1747, 1751,
1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1752,
1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1753,
1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1754,
1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1755,
1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1756,
1756, 1756, 1756, 1756, 1756, 1756, 1756, 1757, 1757, 1757,
1757, 1757, 1757, 1757, 1757, 1757, 1757, 1758, 1758, 1769,
1758, 1758, 1758, 1758, 1759, 1759, 1759, 1759, 1759, 1759,
 
1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768,
1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769,
1769, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
1770, 1770, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
1771, 1771, 1771, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1772, 1772, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773,
1773, 1773, 1773, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
1774, 1775, 800, 799, 798, 1775, 1775, 796, 1775, 1776,
1776, 794, 1776, 1776, 1776, 1776, 1776, 1777, 792, 791,
790, 1777, 1777, 1777, 1777, 1778, 1778, 1778, 1778, 1778,
1759, 1760, 799, 798, 797, 1760, 1760, 1760, 1761, 1761,
1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1762, 1762,
795, 1762, 1762, 1762, 1762, 1763, 794, 1763, 1763, 1763,
1763, 1763, 1763, 1763, 1763, 1764, 793, 1764, 1764, 1764,
1764, 1764, 1764, 1764, 1764, 1765, 792, 1765, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1766, 791, 1766, 1767, 1767,
789, 788, 1767, 1767, 787, 1767, 1768, 1768, 786, 1768,
1768, 1768, 1768, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
1771, 785, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
1772, 784, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
 
1778, 1778, 1778, 1778, 1778, 1778, 1779, 1779, 789, 1779,
1779, 1779, 1779, 1779, 1780, 787, 1780, 1780, 1780, 1780,
1780, 1780, 1780, 1780, 1780, 1781, 786, 1781, 1781, 1781,
1781, 1781, 1781, 1781, 1781, 1781, 1782, 785, 1782, 1782,
1782, 1782, 1782, 1782, 1782, 1782, 1782, 1783, 784, 1783,
1783, 1784, 1784, 783, 782, 1784, 1784, 781, 1784, 1784,
1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1786, 1786,
1786, 1786, 1786, 1786, 1786, 1786, 1787, 1787, 780, 1787,
1787, 1787, 1787, 1787, 1788, 1788, 1789, 779, 1789, 1789,
1789, 1789, 1789, 1789, 1789, 1789, 1789, 1790, 778, 1790,
1773, 783, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773,
1774, 781, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
779, 777, 776, 775, 774, 773, 771, 770, 769, 768,
767, 766, 765, 764, 763, 762, 761, 760, 759, 757,
756, 755, 753, 751, 750, 749, 748, 747, 746, 745,
743, 742, 740, 739, 738, 736, 735, 734, 733, 732,
731, 730, 729, 728, 727, 726, 725, 724, 723, 722,
721, 720, 718, 717, 716, 715, 714, 713, 712, 711,
710, 708, 706, 705, 704, 702, 701, 700, 698, 697,
696, 695, 694, 692, 691, 690, 689, 688, 687, 686,
 
1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1791, 777,
1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1792,
776, 1792, 1792, 1793, 1793, 775, 773, 1793, 1793, 772,
1793, 1793, 1794, 771, 1794, 1794, 1794, 1794, 1794, 1794,
1794, 1794, 1794, 1795, 769, 1795, 1795, 1795, 1795, 1795,
1795, 1795, 1795, 1795, 1796, 767, 1796, 1796, 1796, 1796,
1796, 1796, 1796, 1796, 1796, 1797, 766, 1797, 1797, 1797,
1797, 1797, 1797, 1797, 1797, 1797, 765, 764, 763, 762,
761, 759, 758, 756, 755, 754, 752, 751, 750, 749,
748, 747, 746, 745, 744, 743, 742, 741, 740, 739,
684, 682, 680, 679, 678, 677, 676, 674, 670, 669,
668, 667, 666, 665, 664, 663, 662, 661, 659, 658,
657, 655, 654, 653, 652, 651, 650, 649, 648, 647,
646, 645, 643, 642, 641, 639, 636, 633, 632, 631,
630, 629, 628, 627, 626, 625, 624, 623, 622, 621,
620, 619, 618, 617, 616, 615, 614, 613, 612, 611,
610, 609, 608, 606, 603, 602, 601, 600, 599, 598,
597, 596, 595, 594, 593, 591, 590, 589, 588, 587,
586, 585, 584, 583, 582, 581, 580, 579, 578, 577,
576, 575, 574, 573, 572, 571, 570, 569, 568, 565,
 
738, 737, 736, 735, 733, 732, 731, 730, 729, 728,
727, 726, 725, 723, 721, 720, 719, 717, 716, 715,
713, 712, 711, 710, 709, 707, 706, 705, 704, 703,
702, 701, 699, 697, 695, 694, 693, 692, 691, 689,
685, 684, 683, 682, 681, 680, 679, 678, 677, 676,
674, 673, 672, 670, 669, 668, 667, 666, 665, 664,
663, 662, 661, 660, 658, 657, 656, 654, 651, 648,
647, 646, 645, 644, 643, 642, 641, 640, 639, 638,
637, 636, 635, 634, 633, 632, 631, 630, 629, 628,
627, 626, 625, 624, 623, 621, 618, 617, 616, 615,
564, 563, 562, 561, 560, 559, 558, 557, 556, 555,
554, 553, 550, 549, 548, 547, 546, 545, 544, 543,
542, 541, 540, 538, 537, 536, 535, 534, 533, 532,
531, 529, 525, 522, 521, 520, 519, 518, 517, 516,
515, 514, 513, 512, 511, 510, 509, 508, 507, 506,
505, 504, 503, 502, 501, 500, 499, 498, 497, 496,
494, 493, 492, 491, 490, 489, 488, 487, 486, 485,
483, 482, 481, 480, 479, 478, 477, 476, 475, 474,
473, 472, 471, 470, 469, 468, 467, 466, 465, 464,
463, 462, 461, 460, 454, 453, 450, 449, 448, 447,
 
614, 613, 612, 611, 610, 609, 608, 606, 605, 604,
603, 602, 601, 600, 599, 598, 597, 596, 595, 594,
593, 592, 591, 590, 589, 588, 587, 586, 585, 584,
582, 581, 580, 579, 578, 577, 576, 575, 574, 573,
572, 571, 570, 567, 566, 565, 564, 563, 562, 561,
560, 559, 558, 557, 555, 554, 553, 552, 551, 550,
549, 548, 546, 542, 539, 536, 535, 534, 533, 532,
531, 530, 529, 528, 527, 526, 525, 524, 523, 522,
521, 520, 519, 518, 517, 516, 515, 514, 513, 512,
511, 510, 508, 507, 506, 505, 504, 503, 502, 501,
446, 445, 444, 443, 442, 441, 440, 439, 438, 435,
433, 432, 431, 430, 429, 428, 427, 426, 425, 424,
423, 422, 419, 408, 405, 404, 403, 402, 401, 400,
399, 398, 397, 396, 395, 394, 393, 392, 390, 389,
388, 387, 386, 385, 384, 383, 381, 380, 379, 376,
375, 374, 372, 371, 370, 369, 368, 367, 365, 364,
363, 362, 361, 359, 358, 357, 356, 353, 352, 351,
350, 343, 341, 340, 339, 338, 337, 336, 335, 334,
332, 331, 330, 328, 327, 325, 324, 323, 322, 318,
317, 313, 290, 289, 288, 287, 286, 285, 284, 283,
 
500, 499, 497, 496, 495, 494, 493, 492, 491, 490,
489, 488, 487, 486, 485, 484, 483, 482, 481, 480,
479, 478, 477, 476, 475, 474, 468, 467, 464, 463,
462, 461, 460, 459, 458, 457, 456, 455, 454, 453,
452, 451, 450, 449, 448, 447, 446, 445, 444, 443,
442, 441, 440, 439, 438, 437, 436, 435, 434, 431,
423, 420, 419, 418, 417, 416, 415, 414, 413, 412,
411, 410, 409, 408, 407, 405, 404, 403, 402, 401,
400, 399, 398, 396, 395, 394, 391, 390, 389, 387,
386, 385, 384, 383, 382, 380, 379, 378, 377, 376,
282, 281, 280, 279, 278, 277, 275, 274, 273, 272,
271, 270, 269, 268, 266, 265, 264, 262, 261, 260,
258, 257, 256, 255, 254, 253, 251, 250, 249, 248,
247, 245, 244, 243, 242, 239, 238, 237, 236, 235,
231, 218, 215, 209, 203, 200, 198, 196, 195, 194,
185, 183, 182, 181, 172, 167, 165, 163, 162, 160,
159, 151, 150, 149, 148, 147, 146, 144, 143, 137,
136, 134, 117, 112, 107, 106, 105, 104, 95, 85,
84, 78, 77, 76, 70, 69, 68, 67, 64, 63,
61, 60, 54, 53, 51, 42, 34, 32, 31, 25,
 
374, 373, 372, 371, 368, 367, 366, 365, 360, 358,
357, 356, 355, 354, 353, 352, 351, 349, 348, 347,
345, 344, 342, 341, 340, 339, 335, 334, 330, 310,
305, 302, 301, 300, 299, 298, 297, 296, 295, 294,
293, 292, 291, 290, 289, 287, 286, 285, 284, 283,
282, 281, 280, 278, 277, 276, 274, 273, 272, 270,
269, 268, 267, 266, 265, 263, 262, 261, 260, 259,
257, 256, 255, 254, 251, 250, 249, 248, 247, 243,
230, 227, 221, 215, 213, 211, 209, 208, 207, 198,
196, 195, 194, 185, 180, 178, 176, 175, 173, 172,
 
164, 163, 162, 161, 160, 159, 157, 156, 150, 149,
147, 130, 125, 120, 119, 118, 117, 108, 98, 97,
91, 90, 89, 87, 85, 84, 79, 77, 72, 71,
70, 69, 66, 65, 63, 62, 56, 55, 53, 44,
36, 34, 33, 27, 26, 24, 21, 1765, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
 
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765
24, 22, 19, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
1750, 1750, 1750, 1750, 1750, 1750
} ;
 
static yy_state_type yy_last_accepting_state;
1685,7 → 1645,7
#line 1 "ldlex.l"
#line 4 "ldlex.l"
 
/* Copyright (C) 1991-2015 Free Software Foundation, Inc.
/* Copyright 1991-2013 Free Software Foundation, Inc.
Written by Steve Chamberlain of Cygnus Support.
 
This file is part of the GNU Binutils.
1760,7 → 1720,6
/* STATES
EXPRESSION definitely in an expression
SCRIPT definitely in a script
INPUTLIST definitely in a script, a filename-list
BOTH either EXPRESSION or SCRIPT
DEFSYMEXP in an argument to -defsym
MRI in an MRI script
1782,19 → 1741,17
 
 
 
#line 1745 "ldlex.c"
 
#line 1787 "ldlex.c"
 
#define INITIAL 0
#define SCRIPT 1
#define INPUTLIST 2
#define EXPRESSION 3
#define BOTH 4
#define DEFSYMEXP 5
#define MRI 6
#define VERS_START 7
#define VERS_SCRIPT 8
#define VERS_NODE 9
#define EXPRESSION 2
#define BOTH 3
#define DEFSYMEXP 4
#define MRI 5
#define VERS_START 6
#define VERS_SCRIPT 7
#define VERS_NODE 8
 
#ifndef YY_NO_UNISTD_H
/* Special case for "unistd.h", since it is non-ANSI. We include it way
1972,7 → 1929,7
register char *yy_cp, *yy_bp;
register int yy_act;
 
#line 121 "ldlex.l"
#line 119 "ldlex.l"
 
 
if (parser_input != input_selected)
1991,7 → 1948,7
}
}
 
#line 1995 "ldlex.c"
#line 1952 "ldlex.c"
 
if ( !(yy_init) )
{
2044,13 → 2001,13
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 1766 )
if ( yy_current_state >= 1751 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
while ( yy_base[yy_current_state] != 2848 );
while ( yy_base[yy_current_state] != 2704 );
 
yy_find_action:
yy_act = yy_accept[yy_current_state];
2076,32 → 2033,32
 
case 1:
YY_RULE_SETUP
#line 139 "ldlex.l"
#line 137 "ldlex.l"
{ comment (); }
YY_BREAK
case 2:
YY_RULE_SETUP
#line 142 "ldlex.l"
#line 140 "ldlex.l"
{ RTOKEN('-');}
YY_BREAK
case 3:
YY_RULE_SETUP
#line 143 "ldlex.l"
#line 141 "ldlex.l"
{ RTOKEN('+');}
YY_BREAK
case 4:
YY_RULE_SETUP
#line 144 "ldlex.l"
#line 142 "ldlex.l"
{ yylval.name = xstrdup (yytext); return NAME; }
YY_BREAK
case 5:
YY_RULE_SETUP
#line 145 "ldlex.l"
#line 143 "ldlex.l"
{ RTOKEN('='); }
YY_BREAK
case 6:
YY_RULE_SETUP
#line 147 "ldlex.l"
#line 145 "ldlex.l"
{
yylval.integer = bfd_scan_vma (yytext + 1, 0, 16);
yylval.bigint.str = NULL;
2110,7 → 2067,7
YY_BREAK
case 7:
YY_RULE_SETUP
#line 153 "ldlex.l"
#line 151 "ldlex.l"
{
int ibase ;
switch (yytext[yyleng - 1]) {
2139,7 → 2096,7
YY_BREAK
case 8:
YY_RULE_SETUP
#line 178 "ldlex.l"
#line 176 "ldlex.l"
{
char *s = yytext;
int ibase = 0;
2172,824 → 2129,824
YY_BREAK
case 9:
YY_RULE_SETUP
#line 207 "ldlex.l"
#line 205 "ldlex.l"
{ RTOKEN(']');}
YY_BREAK
case 10:
YY_RULE_SETUP
#line 208 "ldlex.l"
#line 206 "ldlex.l"
{ RTOKEN('[');}
YY_BREAK
case 11:
YY_RULE_SETUP
#line 209 "ldlex.l"
#line 207 "ldlex.l"
{ RTOKEN(LSHIFTEQ);}
YY_BREAK
case 12:
YY_RULE_SETUP
#line 210 "ldlex.l"
#line 208 "ldlex.l"
{ RTOKEN(RSHIFTEQ);}
YY_BREAK
case 13:
YY_RULE_SETUP
#line 211 "ldlex.l"
#line 209 "ldlex.l"
{ RTOKEN(OROR);}
YY_BREAK
case 14:
YY_RULE_SETUP
#line 212 "ldlex.l"
#line 210 "ldlex.l"
{ RTOKEN(EQ);}
YY_BREAK
case 15:
YY_RULE_SETUP
#line 213 "ldlex.l"
#line 211 "ldlex.l"
{ RTOKEN(NE);}
YY_BREAK
case 16:
YY_RULE_SETUP
#line 214 "ldlex.l"
#line 212 "ldlex.l"
{ RTOKEN(GE);}
YY_BREAK
case 17:
YY_RULE_SETUP
#line 215 "ldlex.l"
#line 213 "ldlex.l"
{ RTOKEN(LE);}
YY_BREAK
case 18:
YY_RULE_SETUP
#line 216 "ldlex.l"
#line 214 "ldlex.l"
{ RTOKEN(LSHIFT);}
YY_BREAK
case 19:
YY_RULE_SETUP
#line 217 "ldlex.l"
#line 215 "ldlex.l"
{ RTOKEN(RSHIFT);}
YY_BREAK
case 20:
YY_RULE_SETUP
#line 218 "ldlex.l"
#line 216 "ldlex.l"
{ RTOKEN(PLUSEQ);}
YY_BREAK
case 21:
YY_RULE_SETUP
#line 219 "ldlex.l"
#line 217 "ldlex.l"
{ RTOKEN(MINUSEQ);}
YY_BREAK
case 22:
YY_RULE_SETUP
#line 220 "ldlex.l"
#line 218 "ldlex.l"
{ RTOKEN(MULTEQ);}
YY_BREAK
case 23:
YY_RULE_SETUP
#line 221 "ldlex.l"
#line 219 "ldlex.l"
{ RTOKEN(DIVEQ);}
YY_BREAK
case 24:
YY_RULE_SETUP
#line 222 "ldlex.l"
#line 220 "ldlex.l"
{ RTOKEN(ANDEQ);}
YY_BREAK
case 25:
YY_RULE_SETUP
#line 223 "ldlex.l"
#line 221 "ldlex.l"
{ RTOKEN(OREQ);}
YY_BREAK
case 26:
YY_RULE_SETUP
#line 224 "ldlex.l"
#line 222 "ldlex.l"
{ RTOKEN(ANDAND);}
YY_BREAK
case 27:
YY_RULE_SETUP
#line 225 "ldlex.l"
#line 223 "ldlex.l"
{ RTOKEN('>');}
YY_BREAK
case 28:
YY_RULE_SETUP
#line 226 "ldlex.l"
#line 224 "ldlex.l"
{ RTOKEN(',');}
YY_BREAK
case 29:
YY_RULE_SETUP
#line 227 "ldlex.l"
#line 225 "ldlex.l"
{ RTOKEN('&');}
YY_BREAK
case 30:
YY_RULE_SETUP
#line 228 "ldlex.l"
#line 226 "ldlex.l"
{ RTOKEN('|');}
YY_BREAK
case 31:
YY_RULE_SETUP
#line 229 "ldlex.l"
#line 227 "ldlex.l"
{ RTOKEN('~');}
YY_BREAK
case 32:
YY_RULE_SETUP
#line 230 "ldlex.l"
#line 228 "ldlex.l"
{ RTOKEN('!');}
YY_BREAK
case 33:
YY_RULE_SETUP
#line 231 "ldlex.l"
#line 229 "ldlex.l"
{ RTOKEN('?');}
YY_BREAK
case 34:
YY_RULE_SETUP
#line 232 "ldlex.l"
#line 230 "ldlex.l"
{ RTOKEN('*');}
YY_BREAK
case 35:
YY_RULE_SETUP
#line 233 "ldlex.l"
#line 231 "ldlex.l"
{ RTOKEN('+');}
YY_BREAK
case 36:
YY_RULE_SETUP
#line 234 "ldlex.l"
#line 232 "ldlex.l"
{ RTOKEN('-');}
YY_BREAK
case 37:
YY_RULE_SETUP
#line 235 "ldlex.l"
#line 233 "ldlex.l"
{ RTOKEN('/');}
YY_BREAK
case 38:
YY_RULE_SETUP
#line 236 "ldlex.l"
#line 234 "ldlex.l"
{ RTOKEN('%');}
YY_BREAK
case 39:
YY_RULE_SETUP
#line 237 "ldlex.l"
#line 235 "ldlex.l"
{ RTOKEN('<');}
YY_BREAK
case 40:
YY_RULE_SETUP
#line 238 "ldlex.l"
#line 236 "ldlex.l"
{ RTOKEN('=');}
YY_BREAK
case 41:
YY_RULE_SETUP
#line 239 "ldlex.l"
#line 237 "ldlex.l"
{ RTOKEN('}') ; }
YY_BREAK
case 42:
YY_RULE_SETUP
#line 240 "ldlex.l"
#line 238 "ldlex.l"
{ RTOKEN('{'); }
YY_BREAK
case 43:
YY_RULE_SETUP
#line 241 "ldlex.l"
#line 239 "ldlex.l"
{ RTOKEN(')');}
YY_BREAK
case 44:
YY_RULE_SETUP
#line 242 "ldlex.l"
#line 240 "ldlex.l"
{ RTOKEN('(');}
YY_BREAK
case 45:
YY_RULE_SETUP
#line 243 "ldlex.l"
#line 241 "ldlex.l"
{ RTOKEN(':'); }
YY_BREAK
case 46:
YY_RULE_SETUP
#line 244 "ldlex.l"
#line 242 "ldlex.l"
{ RTOKEN(';');}
YY_BREAK
case 47:
YY_RULE_SETUP
#line 245 "ldlex.l"
#line 243 "ldlex.l"
{ RTOKEN(MEMORY);}
YY_BREAK
case 48:
YY_RULE_SETUP
#line 246 "ldlex.l"
#line 244 "ldlex.l"
{ RTOKEN(REGION_ALIAS);}
YY_BREAK
case 49:
YY_RULE_SETUP
#line 247 "ldlex.l"
#line 245 "ldlex.l"
{ RTOKEN(LD_FEATURE);}
YY_BREAK
case 50:
YY_RULE_SETUP
#line 248 "ldlex.l"
#line 246 "ldlex.l"
{ RTOKEN(ORIGIN);}
YY_BREAK
case 51:
YY_RULE_SETUP
#line 249 "ldlex.l"
#line 247 "ldlex.l"
{ RTOKEN(VERSIONK);}
YY_BREAK
case 52:
YY_RULE_SETUP
#line 250 "ldlex.l"
#line 248 "ldlex.l"
{ RTOKEN(BLOCK);}
YY_BREAK
case 53:
YY_RULE_SETUP
#line 251 "ldlex.l"
#line 249 "ldlex.l"
{ RTOKEN(BIND);}
YY_BREAK
case 54:
YY_RULE_SETUP
#line 252 "ldlex.l"
#line 250 "ldlex.l"
{ RTOKEN(LENGTH);}
YY_BREAK
case 55:
YY_RULE_SETUP
#line 253 "ldlex.l"
#line 251 "ldlex.l"
{ RTOKEN(ALIGN_K);}
YY_BREAK
case 56:
YY_RULE_SETUP
#line 254 "ldlex.l"
#line 252 "ldlex.l"
{ RTOKEN(DATA_SEGMENT_ALIGN);}
YY_BREAK
case 57:
YY_RULE_SETUP
#line 255 "ldlex.l"
#line 253 "ldlex.l"
{ RTOKEN(DATA_SEGMENT_RELRO_END);}
YY_BREAK
case 58:
YY_RULE_SETUP
#line 256 "ldlex.l"
#line 254 "ldlex.l"
{ RTOKEN(DATA_SEGMENT_END);}
YY_BREAK
case 59:
YY_RULE_SETUP
#line 257 "ldlex.l"
#line 255 "ldlex.l"
{ RTOKEN(ADDR);}
YY_BREAK
case 60:
YY_RULE_SETUP
#line 258 "ldlex.l"
#line 256 "ldlex.l"
{ RTOKEN(LOADADDR);}
YY_BREAK
case 61:
YY_RULE_SETUP
#line 259 "ldlex.l"
#line 257 "ldlex.l"
{ RTOKEN(ALIGNOF); }
YY_BREAK
case 62:
YY_RULE_SETUP
#line 260 "ldlex.l"
#line 258 "ldlex.l"
{ RTOKEN(MAX_K); }
YY_BREAK
case 63:
YY_RULE_SETUP
#line 261 "ldlex.l"
#line 259 "ldlex.l"
{ RTOKEN(MIN_K); }
YY_BREAK
case 64:
YY_RULE_SETUP
#line 262 "ldlex.l"
#line 260 "ldlex.l"
{ RTOKEN(LOG2CEIL); }
YY_BREAK
case 65:
YY_RULE_SETUP
#line 263 "ldlex.l"
#line 261 "ldlex.l"
{ RTOKEN(ASSERT_K); }
YY_BREAK
case 66:
YY_RULE_SETUP
#line 264 "ldlex.l"
#line 262 "ldlex.l"
{ RTOKEN(ENTRY);}
YY_BREAK
case 67:
YY_RULE_SETUP
#line 265 "ldlex.l"
#line 263 "ldlex.l"
{ RTOKEN(EXTERN);}
YY_BREAK
case 68:
YY_RULE_SETUP
#line 266 "ldlex.l"
#line 264 "ldlex.l"
{ RTOKEN(NEXT);}
YY_BREAK
case 69:
YY_RULE_SETUP
#line 267 "ldlex.l"
#line 265 "ldlex.l"
{ RTOKEN(SIZEOF_HEADERS);}
YY_BREAK
case 70:
YY_RULE_SETUP
#line 268 "ldlex.l"
#line 266 "ldlex.l"
{ RTOKEN(SIZEOF_HEADERS);}
YY_BREAK
case 71:
YY_RULE_SETUP
#line 269 "ldlex.l"
#line 267 "ldlex.l"
{ RTOKEN(SEGMENT_START);}
YY_BREAK
case 72:
YY_RULE_SETUP
#line 270 "ldlex.l"
#line 268 "ldlex.l"
{ RTOKEN(MAP);}
YY_BREAK
case 73:
YY_RULE_SETUP
#line 271 "ldlex.l"
#line 269 "ldlex.l"
{ RTOKEN(SIZEOF);}
YY_BREAK
case 74:
YY_RULE_SETUP
#line 272 "ldlex.l"
#line 270 "ldlex.l"
{ RTOKEN(TARGET_K);}
YY_BREAK
case 75:
YY_RULE_SETUP
#line 273 "ldlex.l"
#line 271 "ldlex.l"
{ RTOKEN(SEARCH_DIR);}
YY_BREAK
case 76:
YY_RULE_SETUP
#line 274 "ldlex.l"
#line 272 "ldlex.l"
{ RTOKEN(OUTPUT);}
YY_BREAK
case 77:
YY_RULE_SETUP
#line 275 "ldlex.l"
#line 273 "ldlex.l"
{ RTOKEN(INPUT);}
YY_BREAK
case 78:
YY_RULE_SETUP
#line 276 "ldlex.l"
#line 274 "ldlex.l"
{ RTOKEN(GROUP);}
YY_BREAK
case 79:
YY_RULE_SETUP
#line 277 "ldlex.l"
#line 275 "ldlex.l"
{ RTOKEN(AS_NEEDED);}
YY_BREAK
case 80:
YY_RULE_SETUP
#line 278 "ldlex.l"
#line 276 "ldlex.l"
{ RTOKEN(DEFINED);}
YY_BREAK
case 81:
YY_RULE_SETUP
#line 279 "ldlex.l"
#line 277 "ldlex.l"
{ RTOKEN(CREATE_OBJECT_SYMBOLS);}
YY_BREAK
case 82:
YY_RULE_SETUP
#line 280 "ldlex.l"
#line 278 "ldlex.l"
{ RTOKEN( CONSTRUCTORS);}
YY_BREAK
case 83:
YY_RULE_SETUP
#line 281 "ldlex.l"
#line 279 "ldlex.l"
{ RTOKEN(FORCE_COMMON_ALLOCATION);}
YY_BREAK
case 84:
YY_RULE_SETUP
#line 282 "ldlex.l"
#line 280 "ldlex.l"
{ RTOKEN(INHIBIT_COMMON_ALLOCATION);}
YY_BREAK
case 85:
YY_RULE_SETUP
#line 283 "ldlex.l"
#line 281 "ldlex.l"
{ RTOKEN(SECTIONS);}
YY_BREAK
case 86:
YY_RULE_SETUP
#line 284 "ldlex.l"
#line 282 "ldlex.l"
{ RTOKEN(INSERT_K);}
YY_BREAK
case 87:
YY_RULE_SETUP
#line 285 "ldlex.l"
#line 283 "ldlex.l"
{ RTOKEN(AFTER);}
YY_BREAK
case 88:
YY_RULE_SETUP
#line 286 "ldlex.l"
#line 284 "ldlex.l"
{ RTOKEN(BEFORE);}
YY_BREAK
case 89:
YY_RULE_SETUP
#line 287 "ldlex.l"
#line 285 "ldlex.l"
{ RTOKEN(FILL);}
YY_BREAK
case 90:
YY_RULE_SETUP
#line 288 "ldlex.l"
#line 286 "ldlex.l"
{ RTOKEN(STARTUP);}
YY_BREAK
case 91:
YY_RULE_SETUP
#line 289 "ldlex.l"
#line 287 "ldlex.l"
{ RTOKEN(OUTPUT_FORMAT);}
YY_BREAK
case 92:
YY_RULE_SETUP
#line 290 "ldlex.l"
#line 288 "ldlex.l"
{ RTOKEN( OUTPUT_ARCH);}
YY_BREAK
case 93:
YY_RULE_SETUP
#line 291 "ldlex.l"
#line 289 "ldlex.l"
{ RTOKEN(HLL);}
YY_BREAK
case 94:
YY_RULE_SETUP
#line 292 "ldlex.l"
#line 290 "ldlex.l"
{ RTOKEN(SYSLIB);}
YY_BREAK
case 95:
YY_RULE_SETUP
#line 293 "ldlex.l"
#line 291 "ldlex.l"
{ RTOKEN(FLOAT);}
YY_BREAK
case 96:
YY_RULE_SETUP
#line 294 "ldlex.l"
#line 292 "ldlex.l"
{ RTOKEN( QUAD);}
YY_BREAK
case 97:
YY_RULE_SETUP
#line 295 "ldlex.l"
#line 293 "ldlex.l"
{ RTOKEN( SQUAD);}
YY_BREAK
case 98:
YY_RULE_SETUP
#line 296 "ldlex.l"
#line 294 "ldlex.l"
{ RTOKEN( LONG);}
YY_BREAK
case 99:
YY_RULE_SETUP
#line 297 "ldlex.l"
#line 295 "ldlex.l"
{ RTOKEN( SHORT);}
YY_BREAK
case 100:
YY_RULE_SETUP
#line 298 "ldlex.l"
#line 296 "ldlex.l"
{ RTOKEN( BYTE);}
YY_BREAK
case 101:
YY_RULE_SETUP
#line 299 "ldlex.l"
#line 297 "ldlex.l"
{ RTOKEN(NOFLOAT);}
YY_BREAK
case 102:
YY_RULE_SETUP
#line 300 "ldlex.l"
#line 298 "ldlex.l"
{ RTOKEN(NOCROSSREFS);}
YY_BREAK
case 103:
YY_RULE_SETUP
#line 301 "ldlex.l"
#line 299 "ldlex.l"
{ RTOKEN(OVERLAY); }
YY_BREAK
case 104:
YY_RULE_SETUP
#line 302 "ldlex.l"
#line 300 "ldlex.l"
{ RTOKEN(SORT_BY_NAME); }
YY_BREAK
case 105:
YY_RULE_SETUP
#line 303 "ldlex.l"
#line 301 "ldlex.l"
{ RTOKEN(SORT_BY_ALIGNMENT); }
YY_BREAK
case 106:
YY_RULE_SETUP
#line 304 "ldlex.l"
#line 302 "ldlex.l"
{ RTOKEN(SORT_BY_NAME); }
YY_BREAK
case 107:
YY_RULE_SETUP
#line 305 "ldlex.l"
#line 303 "ldlex.l"
{ RTOKEN(SORT_BY_INIT_PRIORITY); }
YY_BREAK
case 108:
YY_RULE_SETUP
#line 306 "ldlex.l"
#line 304 "ldlex.l"
{ RTOKEN(SORT_NONE); }
YY_BREAK
case 109:
YY_RULE_SETUP
#line 307 "ldlex.l"
#line 305 "ldlex.l"
{ RTOKEN(NOLOAD);}
YY_BREAK
case 110:
YY_RULE_SETUP
#line 308 "ldlex.l"
#line 306 "ldlex.l"
{ RTOKEN(DSECT);}
YY_BREAK
case 111:
YY_RULE_SETUP
#line 309 "ldlex.l"
#line 307 "ldlex.l"
{ RTOKEN(COPY);}
YY_BREAK
case 112:
YY_RULE_SETUP
#line 310 "ldlex.l"
#line 308 "ldlex.l"
{ RTOKEN(INFO);}
YY_BREAK
case 113:
YY_RULE_SETUP
#line 311 "ldlex.l"
#line 309 "ldlex.l"
{ RTOKEN(OVERLAY);}
YY_BREAK
case 114:
YY_RULE_SETUP
#line 312 "ldlex.l"
#line 310 "ldlex.l"
{ RTOKEN(ONLY_IF_RO); }
YY_BREAK
case 115:
YY_RULE_SETUP
#line 313 "ldlex.l"
#line 311 "ldlex.l"
{ RTOKEN(ONLY_IF_RW); }
YY_BREAK
case 116:
YY_RULE_SETUP
#line 314 "ldlex.l"
#line 312 "ldlex.l"
{ RTOKEN(SPECIAL); }
YY_BREAK
case 117:
YY_RULE_SETUP
#line 315 "ldlex.l"
#line 313 "ldlex.l"
{ RTOKEN(ORIGIN);}
YY_BREAK
case 118:
YY_RULE_SETUP
#line 316 "ldlex.l"
#line 314 "ldlex.l"
{ RTOKEN(ORIGIN);}
YY_BREAK
case 119:
YY_RULE_SETUP
#line 317 "ldlex.l"
#line 315 "ldlex.l"
{ RTOKEN( LENGTH);}
YY_BREAK
case 120:
YY_RULE_SETUP
#line 318 "ldlex.l"
#line 316 "ldlex.l"
{ RTOKEN( LENGTH);}
YY_BREAK
case 121:
YY_RULE_SETUP
#line 319 "ldlex.l"
#line 317 "ldlex.l"
{ RTOKEN(INPUT_SECTION_FLAGS); }
YY_BREAK
case 122:
YY_RULE_SETUP
#line 320 "ldlex.l"
#line 318 "ldlex.l"
{ RTOKEN(INCLUDE);}
YY_BREAK
case 123:
YY_RULE_SETUP
#line 321 "ldlex.l"
#line 319 "ldlex.l"
{ RTOKEN (PHDRS); }
YY_BREAK
case 124:
YY_RULE_SETUP
#line 322 "ldlex.l"
#line 320 "ldlex.l"
{ RTOKEN(AT);}
YY_BREAK
case 125:
YY_RULE_SETUP
#line 323 "ldlex.l"
#line 321 "ldlex.l"
{ RTOKEN(ALIGN_WITH_INPUT);}
YY_BREAK
case 126:
YY_RULE_SETUP
#line 324 "ldlex.l"
#line 322 "ldlex.l"
{ RTOKEN(SUBALIGN);}
YY_BREAK
case 127:
YY_RULE_SETUP
#line 325 "ldlex.l"
#line 323 "ldlex.l"
{ RTOKEN(HIDDEN); }
YY_BREAK
case 128:
YY_RULE_SETUP
#line 326 "ldlex.l"
#line 324 "ldlex.l"
{ RTOKEN(PROVIDE); }
YY_BREAK
case 129:
YY_RULE_SETUP
#line 327 "ldlex.l"
#line 325 "ldlex.l"
{ RTOKEN(PROVIDE_HIDDEN); }
YY_BREAK
case 130:
YY_RULE_SETUP
#line 328 "ldlex.l"
#line 326 "ldlex.l"
{ RTOKEN(KEEP); }
YY_BREAK
case 131:
YY_RULE_SETUP
#line 329 "ldlex.l"
#line 327 "ldlex.l"
{ RTOKEN(EXCLUDE_FILE); }
YY_BREAK
case 132:
YY_RULE_SETUP
#line 330 "ldlex.l"
#line 328 "ldlex.l"
{ RTOKEN(CONSTANT);}
YY_BREAK
case 133:
/* rule 133 can match eol */
YY_RULE_SETUP
#line 331 "ldlex.l"
#line 329 "ldlex.l"
{ ++ lineno; }
YY_BREAK
case 134:
/* rule 134 can match eol */
YY_RULE_SETUP
#line 332 "ldlex.l"
#line 330 "ldlex.l"
{ ++ lineno; RTOKEN(NEWLINE); }
YY_BREAK
case 135:
YY_RULE_SETUP
#line 333 "ldlex.l"
#line 331 "ldlex.l"
{ /* Mri comment line */ }
YY_BREAK
case 136:
YY_RULE_SETUP
#line 334 "ldlex.l"
#line 332 "ldlex.l"
{ /* Mri comment line */ }
YY_BREAK
case 137:
YY_RULE_SETUP
#line 335 "ldlex.l"
#line 333 "ldlex.l"
{ RTOKEN(ENDWORD); }
YY_BREAK
case 138:
YY_RULE_SETUP
#line 336 "ldlex.l"
#line 334 "ldlex.l"
{ RTOKEN(ALIGNMOD);}
YY_BREAK
case 139:
YY_RULE_SETUP
#line 337 "ldlex.l"
#line 335 "ldlex.l"
{ RTOKEN(ALIGN_K);}
YY_BREAK
case 140:
YY_RULE_SETUP
#line 338 "ldlex.l"
#line 336 "ldlex.l"
{ RTOKEN(CHIP); }
YY_BREAK
case 141:
YY_RULE_SETUP
#line 339 "ldlex.l"
#line 337 "ldlex.l"
{ RTOKEN(BASE); }
YY_BREAK
case 142:
YY_RULE_SETUP
#line 340 "ldlex.l"
#line 338 "ldlex.l"
{ RTOKEN(ALIAS); }
YY_BREAK
case 143:
YY_RULE_SETUP
#line 341 "ldlex.l"
#line 339 "ldlex.l"
{ RTOKEN(TRUNCATE); }
YY_BREAK
case 144:
YY_RULE_SETUP
#line 342 "ldlex.l"
#line 340 "ldlex.l"
{ RTOKEN(LOAD); }
YY_BREAK
case 145:
YY_RULE_SETUP
#line 343 "ldlex.l"
#line 341 "ldlex.l"
{ RTOKEN(PUBLIC); }
YY_BREAK
case 146:
YY_RULE_SETUP
#line 344 "ldlex.l"
#line 342 "ldlex.l"
{ RTOKEN(ORDER); }
YY_BREAK
case 147:
YY_RULE_SETUP
#line 345 "ldlex.l"
#line 343 "ldlex.l"
{ RTOKEN(NAMEWORD); }
YY_BREAK
case 148:
YY_RULE_SETUP
#line 346 "ldlex.l"
#line 344 "ldlex.l"
{ RTOKEN(FORMAT); }
YY_BREAK
case 149:
YY_RULE_SETUP
#line 347 "ldlex.l"
#line 345 "ldlex.l"
{ RTOKEN(CASE); }
YY_BREAK
case 150:
YY_RULE_SETUP
#line 348 "ldlex.l"
#line 346 "ldlex.l"
{ RTOKEN(START); }
YY_BREAK
case 151:
YY_RULE_SETUP
#line 349 "ldlex.l"
#line 347 "ldlex.l"
{ RTOKEN(LIST); /* LIST and ignore to end of line */ }
YY_BREAK
case 152:
YY_RULE_SETUP
#line 350 "ldlex.l"
#line 348 "ldlex.l"
{ RTOKEN(SECT); }
YY_BREAK
case 153:
YY_RULE_SETUP
#line 351 "ldlex.l"
#line 349 "ldlex.l"
{ RTOKEN(ABSOLUTE); }
YY_BREAK
case 154:
YY_RULE_SETUP
#line 352 "ldlex.l"
#line 350 "ldlex.l"
{ RTOKEN(ENDWORD); }
YY_BREAK
case 155:
YY_RULE_SETUP
#line 353 "ldlex.l"
#line 351 "ldlex.l"
{ RTOKEN(ALIGNMOD);}
YY_BREAK
case 156:
YY_RULE_SETUP
#line 354 "ldlex.l"
#line 352 "ldlex.l"
{ RTOKEN(ALIGN_K);}
YY_BREAK
case 157:
YY_RULE_SETUP
#line 355 "ldlex.l"
#line 353 "ldlex.l"
{ RTOKEN(CHIP); }
YY_BREAK
case 158:
YY_RULE_SETUP
#line 356 "ldlex.l"
#line 354 "ldlex.l"
{ RTOKEN(BASE); }
YY_BREAK
case 159:
YY_RULE_SETUP
#line 357 "ldlex.l"
#line 355 "ldlex.l"
{ RTOKEN(ALIAS); }
YY_BREAK
case 160:
YY_RULE_SETUP
#line 358 "ldlex.l"
#line 356 "ldlex.l"
{ RTOKEN(TRUNCATE); }
YY_BREAK
case 161:
YY_RULE_SETUP
#line 359 "ldlex.l"
#line 357 "ldlex.l"
{ RTOKEN(LOAD); }
YY_BREAK
case 162:
YY_RULE_SETUP
#line 360 "ldlex.l"
#line 358 "ldlex.l"
{ RTOKEN(PUBLIC); }
YY_BREAK
case 163:
YY_RULE_SETUP
#line 361 "ldlex.l"
#line 359 "ldlex.l"
{ RTOKEN(ORDER); }
YY_BREAK
case 164:
YY_RULE_SETUP
#line 362 "ldlex.l"
#line 360 "ldlex.l"
{ RTOKEN(NAMEWORD); }
YY_BREAK
case 165:
YY_RULE_SETUP
#line 363 "ldlex.l"
#line 361 "ldlex.l"
{ RTOKEN(FORMAT); }
YY_BREAK
case 166:
YY_RULE_SETUP
#line 364 "ldlex.l"
#line 362 "ldlex.l"
{ RTOKEN(CASE); }
YY_BREAK
case 167:
YY_RULE_SETUP
#line 365 "ldlex.l"
#line 363 "ldlex.l"
{ RTOKEN(EXTERN); }
YY_BREAK
case 168:
YY_RULE_SETUP
#line 366 "ldlex.l"
#line 364 "ldlex.l"
{ RTOKEN(START); }
YY_BREAK
case 169:
YY_RULE_SETUP
#line 367 "ldlex.l"
#line 365 "ldlex.l"
{ RTOKEN(LIST); /* LIST and ignore to end of line */ }
YY_BREAK
case 170:
YY_RULE_SETUP
#line 368 "ldlex.l"
#line 366 "ldlex.l"
{ RTOKEN(SECT); }
YY_BREAK
case 171:
YY_RULE_SETUP
#line 369 "ldlex.l"
#line 367 "ldlex.l"
{ RTOKEN(ABSOLUTE); }
YY_BREAK
case 172:
YY_RULE_SETUP
#line 371 "ldlex.l"
#line 369 "ldlex.l"
{
/* Filename without commas, needed to parse mri stuff */
yylval.name = xstrdup (yytext);
2998,7 → 2955,7
YY_BREAK
case 173:
YY_RULE_SETUP
#line 378 "ldlex.l"
#line 376 "ldlex.l"
{
yylval.name = xstrdup (yytext);
return NAME;
3006,40 → 2963,31
YY_BREAK
case 174:
YY_RULE_SETUP
#line 382 "ldlex.l"
#line 380 "ldlex.l"
{
/* Filename to be prefixed by --sysroot or when non-sysrooted, nothing. */
yylval.name = xstrdup (yytext);
return NAME;
}
YY_BREAK
case 175:
YY_RULE_SETUP
#line 387 "ldlex.l"
{
yylval.name = xstrdup (yytext + 2);
return LNAME;
}
YY_BREAK
case 176:
case 175:
YY_RULE_SETUP
#line 391 "ldlex.l"
#line 384 "ldlex.l"
{
yylval.name = xstrdup (yytext);
return NAME;
}
YY_BREAK
case 177:
case 176:
YY_RULE_SETUP
#line 395 "ldlex.l"
#line 388 "ldlex.l"
{
yylval.name = xstrdup (yytext + 2);
return LNAME;
}
YY_BREAK
case 178:
case 177:
YY_RULE_SETUP
#line 399 "ldlex.l"
#line 392 "ldlex.l"
{
/* Annoyingly, this pattern can match comments, and we have
longest match issues to consider. So if the first two
3057,10 → 3005,10
}
}
YY_BREAK
case 179:
/* rule 179 can match eol */
case 178:
/* rule 178 can match eol */
YY_RULE_SETUP
#line 416 "ldlex.l"
#line 409 "ldlex.l"
{
/* No matter the state, quotes
give what's inside */
3069,99 → 3017,98
return NAME;
}
YY_BREAK
case 180:
/* rule 180 can match eol */
case 179:
/* rule 179 can match eol */
YY_RULE_SETUP
#line 423 "ldlex.l"
#line 416 "ldlex.l"
{ lineno++;}
YY_BREAK
case 181:
case 180:
YY_RULE_SETUP
#line 424 "ldlex.l"
#line 417 "ldlex.l"
{ }
YY_BREAK
case 182:
case 181:
YY_RULE_SETUP
#line 426 "ldlex.l"
#line 419 "ldlex.l"
{ return *yytext; }
YY_BREAK
case 183:
case 182:
YY_RULE_SETUP
#line 428 "ldlex.l"
#line 421 "ldlex.l"
{ RTOKEN(GLOBAL); }
YY_BREAK
case 184:
case 183:
YY_RULE_SETUP
#line 430 "ldlex.l"
#line 423 "ldlex.l"
{ RTOKEN(LOCAL); }
YY_BREAK
case 185:
case 184:
YY_RULE_SETUP
#line 432 "ldlex.l"
#line 425 "ldlex.l"
{ RTOKEN(EXTERN); }
YY_BREAK
case 186:
case 185:
YY_RULE_SETUP
#line 434 "ldlex.l"
#line 427 "ldlex.l"
{ yylval.name = xstrdup (yytext);
return VERS_IDENTIFIER; }
YY_BREAK
case 187:
case 186:
YY_RULE_SETUP
#line 437 "ldlex.l"
#line 430 "ldlex.l"
{ yylval.name = xstrdup (yytext);
return VERS_TAG; }
YY_BREAK
case 188:
case 187:
YY_RULE_SETUP
#line 440 "ldlex.l"
#line 433 "ldlex.l"
{ BEGIN(VERS_SCRIPT); return *yytext; }
YY_BREAK
case 189:
case 188:
YY_RULE_SETUP
#line 442 "ldlex.l"
#line 435 "ldlex.l"
{ BEGIN(VERS_NODE);
vers_node_nesting = 0;
return *yytext;
}
YY_BREAK
case 190:
case 189:
YY_RULE_SETUP
#line 446 "ldlex.l"
#line 439 "ldlex.l"
{ return *yytext; }
YY_BREAK
case 191:
case 190:
YY_RULE_SETUP
#line 447 "ldlex.l"
#line 440 "ldlex.l"
{ vers_node_nesting++; return *yytext; }
YY_BREAK
case 192:
case 191:
YY_RULE_SETUP
#line 448 "ldlex.l"
#line 441 "ldlex.l"
{ if (--vers_node_nesting < 0)
BEGIN(VERS_SCRIPT);
return *yytext;
}
YY_BREAK
case 193:
/* rule 193 can match eol */
case 192:
/* rule 192 can match eol */
YY_RULE_SETUP
#line 453 "ldlex.l"
#line 446 "ldlex.l"
{ lineno++; }
YY_BREAK
case 194:
case 193:
YY_RULE_SETUP
#line 455 "ldlex.l"
#line 448 "ldlex.l"
{ /* Eat up comments */ }
YY_BREAK
case 195:
case 194:
YY_RULE_SETUP
#line 457 "ldlex.l"
#line 450 "ldlex.l"
{ /* Eat up whitespace */ }
YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(SCRIPT):
case YY_STATE_EOF(INPUTLIST):
case YY_STATE_EOF(EXPRESSION):
case YY_STATE_EOF(BOTH):
case YY_STATE_EOF(DEFSYMEXP):
3169,7 → 3116,7
case YY_STATE_EOF(VERS_START):
case YY_STATE_EOF(VERS_SCRIPT):
case YY_STATE_EOF(VERS_NODE):
#line 459 "ldlex.l"
#line 452 "ldlex.l"
{
include_stack_ptr--;
if (include_stack_ptr == 0)
3183,22 → 3130,22
return END;
}
YY_BREAK
case 196:
case 195:
YY_RULE_SETUP
#line 472 "ldlex.l"
#line 465 "ldlex.l"
lex_warn_invalid (" in script", yytext);
YY_BREAK
case 197:
case 196:
YY_RULE_SETUP
#line 473 "ldlex.l"
#line 466 "ldlex.l"
lex_warn_invalid (" in expression", yytext);
YY_BREAK
case 198:
case 197:
YY_RULE_SETUP
#line 475 "ldlex.l"
#line 468 "ldlex.l"
ECHO;
YY_BREAK
#line 3202 "ldlex.c"
#line 3149 "ldlex.c"
 
case YY_END_OF_BUFFER:
{
3488,7 → 3435,7
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 1766 )
if ( yy_current_state >= 1751 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3516,11 → 3463,11
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 1766 )
if ( yy_current_state >= 1751 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
yy_is_jam = (yy_current_state == 1765);
yy_is_jam = (yy_current_state == 1750);
 
return yy_is_jam ? 0 : yy_current_state;
}
4156,7 → 4103,7
 
#define YYTABLES_NAME "yytables"
 
#line 475 "ldlex.l"
#line 468 "ldlex.l"
 
 
4259,13 → 4206,6
}
 
void
ldlex_inputlist (void)
{
*(state_stack_p)++ = yy_start;
BEGIN (INPUTLIST);
}
 
void
ldlex_mri_script (void)
{
*(state_stack_p)++ = yy_start;
/contrib/toolchain/binutils/ld/ld.lnk
1,4 → 1,4
-static -nostdlib --stack 12582912 -T/kolibrios/contrib/sdk/sources/newlib/app.lds
--image-base 0 -L/kolibrios/contrib/sdk/lib -o ld-new deffilep.o ei386pe.o ldbuildid.o ldcref.o ldctor.o ldemul.o ldexp.o ldfile.o ldgram.o
--image-base 0 -L/kolibrios/contrib/sdk/lib -o ld-new deffilep.o ei386pe.o ldcref.o ldctor.o ldemul.o ldexp.o ldfile.o ldgram.o
ldlang.o ldlex-wrapper.o ldmain.o ldmisc.o ldver.o ldwrite.o lexsup.o mri.o pe-dll.o
-lbfd -liberty -lz -lgcc -lc.dll -lapp
/contrib/toolchain/binutils/ld/ldfile.c
1,5 → 1,7
/* Linker file opening and searching.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, 2002,
2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
142,14 → 144,6
/* Linker needs to decompress sections. */
entry->the_bfd->flags |= BFD_DECOMPRESS;
 
/* This is a linker input BFD. */
entry->the_bfd->is_linker_input = 1;
 
#ifdef ENABLE_PLUGINS
if (entry->flags.lto_output)
entry->the_bfd->lto_output = 1;
#endif
 
/* If we are searching for this file, see if the architecture is
compatible with the output file. If it isn't, keep searching.
If we can't open the file as an object file, stop the search
309,10 → 303,22
bfd_object that it sets the bfd's arch and mach, which
will be needed when and if we want to bfd_create a new
one using this one as a template. */
if (link_info.lto_plugin_active
&& !no_more_claiming
&& bfd_check_format (entry->the_bfd, bfd_object))
plugin_maybe_claim (entry);
if (bfd_check_format (entry->the_bfd, bfd_object)
&& plugin_active_plugins_p ()
&& !no_more_claiming)
{
int fd = open (attempt, O_RDONLY | O_BINARY);
if (fd >= 0)
{
struct ld_plugin_input_file file;
 
file.name = attempt;
file.offset = 0;
file.filesize = lseek (fd, 0, SEEK_END);
file.fd = fd;
plugin_maybe_claim (&file, entry);
}
}
#endif /* ENABLE_PLUGINS */
 
/* It opened OK, the format checked out, and the plugins have had
357,13 → 363,13
{
char *string;
 
if (entry->flags.dynamic && !bfd_link_relocatable (&link_info))
if (entry->flags.dynamic && ! link_info.relocatable)
{
if (ldemul_open_dynamic_archive (arch, search, entry))
return TRUE;
}
 
if (entry->flags.maybe_archive && !entry->flags.full_name_provided)
if (entry->flags.maybe_archive)
string = concat (search->name, slash, lib, entry->filename,
arch, suffix, (const char *) NULL);
else
/contrib/toolchain/binutils/ld/ldmain.c
1,5 → 1,5
/* Main program of GNU linker.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991-2013 Free Software Foundation, Inc.
Written by Steve Chamberlain steve@cygnus.com
 
This file is part of the GNU Binutils.
41,6 → 41,7
#ifdef ENABLE_PLUGINS
#include "plugin.h"
#include "plugin-api.h"
#include "libbfd.h"
#endif /* ENABLE_PLUGINS */
 
/* Somewhere above, sys/stat.h got included. */
136,7 → 137,7
(struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma);
static bfd_boolean notice
(struct bfd_link_info *, struct bfd_link_hash_entry *,
struct bfd_link_hash_entry *, bfd *, asection *, bfd_vma, flagword);
bfd *, asection *, bfd_vma, flagword, const char *);
 
static struct bfd_link_callbacks link_callbacks =
{
222,7 → 223,15
/* Set up the sysroot directory. */
ld_sysroot = get_sysroot (argc, argv);
if (*ld_sysroot)
{
if (*TARGET_SYSTEM_ROOT == 0)
{
einfo ("%P%F: this linker was not configured to use sysroots\n");
ld_sysroot = "";
}
else
ld_canon_sysroot = lrealpath (ld_sysroot);
}
if (ld_canon_sysroot)
ld_canon_sysroot_len = strlen (ld_canon_sysroot);
else
277,13 → 286,9
link_info.init_function = "_init";
link_info.fini_function = "_fini";
link_info.relax_pass = 1;
link_info.extern_protected_data = -1;
link_info.pei386_auto_import = -1;
link_info.spare_dynamic_tags = 5;
link_info.path_separator = ':';
#ifdef DEFAULT_FLAG_COMPRESS_DEBUG
link_info.compress_debug = COMPRESS_DEBUG_GABI_ZLIB;
#endif
 
ldfile_add_arch ("");
emulation = get_emulation (argc, argv);
292,7 → 297,6
config.maxpagesize = bfd_emul_get_maxpagesize (default_target);
config.commonpagesize = bfd_emul_get_commonpagesize (default_target);
lang_init ();
ldexp_init ();
ldemul_before_parse ();
lang_has_input_file = FALSE;
parse_args (argc, argv);
374,13 → 378,6
 
lang_final ();
 
/* If the only command line argument has been -v or --version or --verbose
then ignore any input files provided by linker scripts and exit now.
We do not want to create an output file when the linker is just invoked
to provide version information. */
if (argc == 2 && version_printed)
xexit (0);
 
if (!lang_has_input_file)
{
if (version_printed || command_line.print_output_format)
415,18 → 412,11
 
/* Print error messages for any missing symbols, for any warning
symbols, and possibly multiple definitions. */
if (bfd_link_relocatable (&link_info))
if (link_info.relocatable)
link_info.output_bfd->flags &= ~EXEC_P;
else
link_info.output_bfd->flags |= EXEC_P;
 
if ((link_info.compress_debug & COMPRESS_DEBUG))
{
link_info.output_bfd->flags |= BFD_COMPRESS;
if (link_info.compress_debug == COMPRESS_DEBUG_GABI_ZLIB)
link_info.output_bfd->flags |= BFD_COMPRESS_GABI;
}
 
ldwrite ();
 
if (config.map_file != NULL)
435,17 → 425,7
output_cref (config.map_file != NULL ? config.map_file : stdout);
if (nocrossref_list != NULL)
check_nocrossrefs ();
if (command_line.print_memory_usage)
lang_print_memory_usage ();
#if 0
{
struct bfd_link_hash_entry * h;
 
h = bfd_link_hash_lookup (link_info.hash, "__image_base__", 0,0,1);
fprintf (stderr, "lookup = %p val %lx\n", h, h ? h->u.def.value : 1);
}
#endif
ldexp_finish ();
lang_finish ();
 
/* Even if we're producing relocatable output, some non-fatal errors should
468,8 → 448,7
/* If the --force-exe-suffix is enabled, and we're making an
executable file and it doesn't end in .exe, copy it to one
which does. */
if (!bfd_link_relocatable (&link_info)
&& command_line.force_exe_suffix)
if (! link_info.relocatable && command_line.force_exe_suffix)
{
int len = strlen (output_filename);
 
490,10 → 469,10
dst = fopen (dst_name, FOPEN_WB);
 
if (!src)
einfo (_("%P%F: unable to open for source of copy `%s'\n"),
einfo (_("%X%P: unable to open for source of copy `%s'\n"),
output_filename);
if (!dst)
einfo (_("%P%F: unable to open for destination of copy `%s'\n"),
einfo (_("%X%P: unable to open for destination of copy `%s'\n"),
dst_name);
while ((l = fread (buf, 1, bsize, src)) > 0)
{
618,10 → 597,8
|| strcmp (argv[i], "-mips5") == 0
|| strcmp (argv[i], "-mips32") == 0
|| strcmp (argv[i], "-mips32r2") == 0
|| strcmp (argv[i], "-mips32r6") == 0
|| strcmp (argv[i], "-mips64") == 0
|| strcmp (argv[i], "-mips64r2") == 0
|| strcmp (argv[i], "-mips64r6") == 0)
|| strcmp (argv[i], "-mips64r2") == 0)
{
/* FIXME: The arguments -mips1, -mips2, -mips3, etc. are
passed to the linker by some MIPS compilers. They
767,7 → 744,6
 
free (buf);
link_info.strip = strip_some;
fclose (file);
}
/* Callbacks from the BFD linker routines. */
795,10 → 771,25
BFD, but we still want to output the original BFD filename. */
orig_input = *input;
#ifdef ENABLE_PLUGINS
if (link_info.lto_plugin_active && !no_more_claiming)
if (plugin_active_plugins_p () && !no_more_claiming)
{
/* We must offer this archive member to the plugins to claim. */
plugin_maybe_claim (input);
const char *filename = (bfd_my_archive (abfd) != NULL
? bfd_my_archive (abfd)->filename : abfd->filename);
int fd = open (filename, O_RDONLY | O_BINARY);
if (fd >= 0)
{
struct ld_plugin_input_file file;
 
/* Offset and filesize must refer to the individual archive
member, not the whole file, and must exclude the header.
Fortunately for us, that is how the data is stored in the
origin field of the bfd and in the arelt_data. */
file.name = filename;
file.offset = abfd->origin;
file.filesize = arelt_size (abfd);
file.fd = fd;
plugin_maybe_claim (&file, input);
if (input->flags.claimed)
{
input->flags.claim_archive = TRUE;
805,6 → 796,7
*subsbfd = input->the_bfd;
}
}
}
#endif /* ENABLE_PLUGINS */
 
ldlang_add_file (input);
848,8 → 840,7
{
char buf[100];
 
sprintf (buf, _("Archive member included "
"to satisfy reference by file (symbol)\n\n"));
sprintf (buf, _("Archive member included because of file (symbol)\n\n"));
minfo ("%s", buf);
header_printed = TRUE;
}
1118,7 → 1109,7
/* Ensure that BFD_RELOC_CTOR exists now, so that we can give a
useful error message. */
if (bfd_reloc_type_lookup (info->output_bfd, BFD_RELOC_CTOR) == NULL
&& (bfd_link_relocatable (info)
&& (info->relocatable
|| bfd_reloc_type_lookup (abfd, BFD_RELOC_CTOR) == NULL))
einfo (_("%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"));
 
1157,25 → 1148,6
asymbol **asymbols;
};
 
/* Look through the relocs to see if we can find a plausible address
for SYMBOL in ABFD. Return TRUE if found. Otherwise return FALSE. */
 
static bfd_boolean
symbol_warning (const char *warning, const char *symbol, bfd *abfd)
{
struct warning_callback_info cinfo;
 
if (!bfd_generic_link_read_symbols (abfd))
einfo (_("%B%F: could not read symbols: %E\n"), abfd);
 
cinfo.found = FALSE;
cinfo.warning = warning;
cinfo.symbol = symbol;
cinfo.asymbols = bfd_get_outsymbols (abfd);
bfd_map_over_sections (abfd, warning_find_reloc, &cinfo);
return cinfo.found;
}
 
/* This is called when there is a reference to a warning symbol. */
 
static bfd_boolean
1198,13 → 1170,23
einfo ("%P: %s%s\n", _("warning: "), warning);
else if (symbol == NULL)
einfo ("%B: %s%s\n", abfd, _("warning: "), warning);
else if (! symbol_warning (warning, symbol, abfd))
else
{
bfd *b;
/* Search all input files for a reference to SYMBOL. */
for (b = info->input_bfds; b; b = b->link.next)
if (b != abfd && symbol_warning (warning, symbol, b))
return TRUE;
struct warning_callback_info cinfo;
 
/* Look through the relocs to see if we can find a plausible
address. */
 
if (!bfd_generic_link_read_symbols (abfd))
einfo (_("%B%F: could not read symbols: %E\n"), abfd);
 
cinfo.found = FALSE;
cinfo.warning = warning;
cinfo.symbol = symbol;
cinfo.asymbols = bfd_get_outsymbols (abfd);
bfd_map_over_sections (abfd, warning_find_reloc, &cinfo);
 
if (! cinfo.found)
einfo ("%B: %s%s\n", abfd, _("warning: "), warning);
}
 
1454,11 → 1436,11
static bfd_boolean
notice (struct bfd_link_info *info,
struct bfd_link_hash_entry *h,
struct bfd_link_hash_entry *inh ATTRIBUTE_UNUSED,
bfd *abfd,
asection *section,
bfd_vma value,
flagword flags ATTRIBUTE_UNUSED)
flagword flags ATTRIBUTE_UNUSED,
const char *string ATTRIBUTE_UNUSED)
{
const char *name;
 
/contrib/toolchain/binutils/ld/config.h
1,5 → 1,5
/* config.h. Generated from config.in by configure. */
/* config.in. Generated from configure.ac by autoheader. */
/* config.in. Generated from configure.in by autoheader. */
 
/* Check that config.h is #included before system headers
(this works only for glibc, but that should be enough). */
8,9 → 8,6
#endif
#define __CONFIG_H__ 1
 
/* Define if you want compressed debug sections by default. */
/* #undef DEFAULT_FLAG_COMPRESS_DEBUG */
 
/* Define to 1 if translation of program messages to the user's native
language is requested. */
/* #undef ENABLE_NLS */
51,9 → 48,18
*/
#define HAVE_DIRENT_H 1
 
/* Define to 1 if you have the `dlclose' function. */
/* #undef HAVE_DLCLOSE */
 
/* Define to 1 if you have the <dlfcn.h> header file. */
/* #undef HAVE_DLFCN_H */
 
/* Define to 1 if you have the `dlopen' function. */
/* #undef HAVE_DLOPEN */
 
/* Define to 1 if you have the `dlsym' function. */
/* #undef HAVE_DLSYM */
 
/* Define to 1 if you have the <elf-hints.h> header file. */
/* #undef HAVE_ELF_HINTS_H */
 
160,19 → 166,19
#define PACKAGE_BUGREPORT ""
 
/* Define to the full name of this package. */
#define PACKAGE_NAME "ld"
#define PACKAGE_NAME ""
 
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "ld 2.26"
#define PACKAGE_STRING ""
 
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "ld"
#define PACKAGE_TARNAME ""
 
/* Define to the home page for this package. */
#define PACKAGE_URL ""
 
/* Define to the version of this package. */
#define PACKAGE_VERSION "2.26"
#define PACKAGE_VERSION ""
 
/* The size of `void *', as computed by sizeof. */
#define SIZEOF_VOID_P 4
209,7 → 215,7
 
 
/* Version number of package */
#define VERSION "2.26"
#define VERSION "2.24"
 
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
`char[]'. */
/contrib/toolchain/binutils/ld/deffile.h
1,5 → 1,6
/* deffile.h - header for .DEF file parser
Copyright (C) 1998-2015 Free Software Foundation, Inc.
Copyright 1998, 1999, 2000, 2002, 2003, 2005, 2006, 2007, 2009
Free Software Foundation, Inc.
Written by DJ Delorie dj@cygnus.com
 
This file is part of the GNU Binutils.
/contrib/toolchain/binutils/ld/ei386pe.c
3,7 → 3,7
 
 
 
/* Copyright (C) 1995-2015 Free Software Foundation, Inc.
/* Copyright 1995-2013 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
56,7 → 56,6
#include "ldlex.h"
#include "ldmisc.h"
#include "ldctor.h"
#include "ldbuildid.h"
#include "coff/internal.h"
 
/* FIXME: See bfd/peXXigen.c for why we include an architecture specific
64,10 → 63,9
#include "coff/i386.h"
#include "coff/pe.h"
 
/* FIXME: These are BFD internal header files, and we should not be
/* FIXME: This is a BFD internal header file, and we should not be
using it here. */
#include "../bfd/libcoff.h"
#include "../bfd/libpei.h"
 
#include "deffile.h"
#include "pe-dll.h"
118,8 → 116,7
static char * thumb_entry_symbol = NULL;
static lang_assignment_statement_type *image_base_statement = 0;
static unsigned short pe_dll_characteristics = 0;
static bfd_boolean insert_timestamp = TRUE;
static const char *emit_build_id;
static bfd_boolean insert_timestamp = FALSE;
 
#ifdef DLL_SUPPORT
static int pe_enable_stdcall_fixup = -1; /* 0=disable 1=enable. */
126,7 → 123,6
static char *pe_out_def_filename = NULL;
static char *pe_implib_filename = NULL;
static int pe_enable_auto_image_base = 0;
static unsigned long pe_auto_image_base = 0x61500000;
static char *pe_dll_search_prefix = NULL;
#endif
 
226,8 → 222,6
#define OPTION_TERMINAL_SERVER_AWARE (OPTION_WDM_DRIVER + 1)
/* Determinism. */
#define OPTION_INSERT_TIMESTAMP (OPTION_TERMINAL_SERVER_AWARE + 1)
#define OPTION_NO_INSERT_TIMESTAMP (OPTION_INSERT_TIMESTAMP + 1)
#define OPTION_BUILD_ID (OPTION_NO_INSERT_TIMESTAMP + 1)
 
static void
gldi386pe_add_options
262,7 → 256,6
{"no-leading-underscore", no_argument, NULL, OPTION_NO_LEADING_UNDERSCORE},
{"leading-underscore", no_argument, NULL, OPTION_LEADING_UNDERSCORE},
{"insert-timestamp", no_argument, NULL, OPTION_INSERT_TIMESTAMP},
{"no-insert-timestamp", no_argument, NULL, OPTION_NO_INSERT_TIMESTAMP},
#ifdef DLL_SUPPORT
/* getopt allows abbreviations, so we do this to stop it
from treating -o as an abbreviation for this option. */
283,7 → 276,7
treating -c as an abbreviation for these --compat-implib. */
{"compat-implib", no_argument, NULL, OPTION_IMP_COMPAT},
{"compat-implib", no_argument, NULL, OPTION_IMP_COMPAT},
{"enable-auto-image-base", optional_argument, NULL, OPTION_ENABLE_AUTO_IMAGE_BASE},
{"enable-auto-image-base", no_argument, NULL, OPTION_ENABLE_AUTO_IMAGE_BASE},
{"disable-auto-image-base", no_argument, NULL, OPTION_DISABLE_AUTO_IMAGE_BASE},
{"dll-search-prefix", required_argument, NULL, OPTION_DLL_SEARCH_PREFIX},
{"no-default-excludes", no_argument, NULL, OPTION_NO_DEFAULT_EXCLUDES},
307,7 → 300,6
{"no-bind", no_argument, NULL, OPTION_NO_BIND},
{"wdmdriver", no_argument, NULL, OPTION_WDM_DRIVER},
{"tsaware", no_argument, NULL, OPTION_TERMINAL_SERVER_AWARE},
{"build-id", optional_argument, NULL, OPTION_BUILD_ID},
{NULL, no_argument, NULL, 0}
};
 
397,7 → 389,7
fprintf (file, _(" --support-old-code Support interworking with old code\n"));
fprintf (file, _(" --[no-]leading-underscore Set explicit symbol underscore prefix mode\n"));
fprintf (file, _(" --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"));
fprintf (file, _(" --[no-]insert-timestamp Use a real timestamp rather than zero (default).\n"));
fprintf (file, _(" --insert-timestamp Use a real timestamp rather than zero.\n"));
fprintf (file, _(" This makes binaries non-deterministic\n"));
#ifdef DLL_SUPPORT
fprintf (file, _(" --add-stdcall-alias Export symbols with and without @nn\n"));
413,9 → 405,9
fprintf (file, _(" --kill-at Remove @nn from exported symbols\n"));
fprintf (file, _(" --out-implib <file> Generate import library\n"));
fprintf (file, _(" --output-def <file> Generate a .DEF file for the built DLL\n"));
fprintf (file, _(" --warn-duplicate-exports Warn about duplicate exports\n"));
fprintf (file, _(" --warn-duplicate-exports Warn about duplicate exports.\n"));
fprintf (file, _(" --compat-implib Create backward compatible import libs;\n create __imp_<SYMBOL> as well.\n"));
fprintf (file, _(" --enable-auto-image-base[=<address>] Automatically choose image base for DLLs\n (optionally starting with address) unless\n specifically set with --image-base\n"));
fprintf (file, _(" --enable-auto-image-base Automatically choose image base for DLLs\n unless user specifies one\n"));
fprintf (file, _(" --disable-auto-image-base Do not auto-choose image base. (default)\n"));
fprintf (file, _(" --dll-search-prefix=<string> When linking dynamically to a dll without\n an importlib, use <string><basename>.dll\n in preference to lib<basename>.dll \n"));
fprintf (file, _(" --enable-auto-import Do sophisticated linking of _sym to\n __imp_sym for DATA references\n"));
436,7 → 428,6
fprintf (file, _(" --no-bind Do not bind this image\n"));
fprintf (file, _(" --wdmdriver Driver uses the WDM model\n"));
fprintf (file, _(" --tsaware Image is Terminal Server aware\n"));
fprintf (file, _(" --build-id[=STYLE] Generate build ID\n"));
}
 
 
487,7 → 478,7
/* Entry point name for arbitrary subsystem numbers. */
static const char default_entry[] = "mainCRTStartup";
 
if (bfd_link_pic (&link_info) || dll)
if (link_info.shared || dll)
{
#if defined (TARGET_IS_i386pe)
entry = "DllMainCRTStartup@12";
631,7 → 622,6
einfo (_("%P%F: strange hex info for PE parameter '%s'\n"), optarg);
}
 
#define DEFAULT_BUILD_ID_STYLE "md5"
 
static bfd_boolean
gldi386pe_handle_option (int optc)
705,9 → 695,6
case OPTION_INSERT_TIMESTAMP:
insert_timestamp = TRUE;
break;
case OPTION_NO_INSERT_TIMESTAMP:
insert_timestamp = FALSE;
break;
#ifdef DLL_SUPPORT
case OPTION_OUT_DEF:
pe_out_def_filename = xstrdup (optarg);
750,12 → 737,6
break;
case OPTION_ENABLE_AUTO_IMAGE_BASE:
pe_enable_auto_image_base = 1;
if (optarg && *optarg)
{
char *end;
pe_auto_image_base = strtoul (optarg, &end, 0);
/* XXX should check that we actually parsed something */
}
break;
case OPTION_DISABLE_AUTO_IMAGE_BASE:
pe_enable_auto_image_base = 0;
826,18 → 807,7
case OPTION_TERMINAL_SERVER_AWARE:
pe_dll_characteristics |= IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE;
break;
case OPTION_BUILD_ID:
if (emit_build_id != NULL)
{
free ((char *) emit_build_id);
emit_build_id = NULL;
}
if (optarg == NULL)
optarg = DEFAULT_BUILD_ID_STYLE;
if (strcmp (optarg, "none"))
emit_build_id = xstrdup (optarg);
break;
}
 
/* Set DLLCharacteristics bits */
set_pe_name ("__dll_characteristics__", pe_dll_characteristics);
876,7 → 846,7
compute_dll_image_base (const char *ofile)
{
unsigned long hash = strhash (ofile);
return pe_auto_image_base + ((hash << 16) & 0x0FFC0000);
return 0x61300000 + ((hash << 16) & 0x0FFC0000);
}
#endif
 
894,9 → 864,9
 
if (!init[IMAGEBASEOFF].inited)
{
if (bfd_link_relocatable (&link_info))
if (link_info.relocatable)
init[IMAGEBASEOFF].value = 0;
else if (init[DLLOFF].value || bfd_link_dll (&link_info))
else if (init[DLLOFF].value || (link_info.shared && !link_info.pie))
{
#ifdef DLL_SUPPORT
init[IMAGEBASEOFF].value = (pe_enable_auto_image_base
912,7 → 882,7
}
 
/* Don't do any symbol assignments if this is a relocatable link. */
if (bfd_link_relocatable (&link_info))
if (link_info.relocatable)
return;
 
/* Glue the assignments into the abs section. */
1105,20 → 1075,11
if (undef->type == bfd_link_hash_undefined)
{
/* C++ symbols are *long*. */
#define BUF_SIZE 4096
char buf[BUF_SIZE];
char buf[4096];
 
if (pe_dll_extra_pe_debug)
printf ("%s:%s\n", __FUNCTION__, undef->root.string);
 
if (strlen (undef->root.string) > (BUF_SIZE - 6))
{
/* PR linker/18466. */
einfo (_("%P: internal error: symbol too long: %s\n"),
undef->root.string);
return;
}
 
sprintf (buf, "__imp_%s", undef->root.string);
 
sym = bfd_link_hash_lookup (link_info.hash, buf, 0, 0, 1);
1200,169 → 1161,6
*found = 1;
}
 
static bfd_boolean
pecoff_checksum_contents (bfd *abfd,
void (*process) (const void *, size_t, void *),
void *arg)
{
file_ptr filepos = (file_ptr) 0;
 
while (1)
{
unsigned char b;
int status;
 
if (bfd_seek (abfd, filepos, SEEK_SET) != 0)
return 0;
 
status = bfd_bread (&b, (bfd_size_type) 1, abfd);
if (status < 1)
{
break;
}
 
(*process) (&b, 1, arg);
filepos += 1;
}
 
return TRUE;
}
 
static bfd_boolean
write_build_id (bfd *abfd)
{
struct pe_tdata *t = pe_data (abfd);
asection *asec;
struct bfd_link_order *link_order = NULL;
unsigned char *contents;
bfd_size_type size;
bfd_size_type build_id_size;
unsigned char *build_id;
 
/* Find the section the .buildid output section has been merged info. */
for (asec = abfd->sections; asec != NULL; asec = asec->next)
{
struct bfd_link_order *l = NULL;
for (l = asec->map_head.link_order; l != NULL; l = l->next)
{
if (l->type == bfd_indirect_link_order)
{
if (l->u.indirect.section == t->build_id.sec)
{
link_order = l;
break;
}
}
}
 
if (link_order)
break;
}
 
if (!link_order)
{
einfo (_("%P: warning: .buildid section discarded,"
" --build-id ignored.\n"));
return TRUE;
}
 
if (t->build_id.sec->contents == NULL)
t->build_id.sec->contents = (unsigned char *) xmalloc (t->build_id.sec->size);
contents = t->build_id.sec->contents;
size = t->build_id.sec->size;
 
build_id_size = compute_build_id_size (t->build_id.style);
build_id = xmalloc (build_id_size);
generate_build_id (abfd, t->build_id.style, pecoff_checksum_contents, build_id, build_id_size);
 
bfd_vma ib = pe_data (link_info.output_bfd)->pe_opthdr.ImageBase;
 
/* Construct a debug directory entry which points to an immediately following CodeView record. */
struct internal_IMAGE_DEBUG_DIRECTORY idd;
idd.Characteristics = 0;
idd.TimeDateStamp = 0;
idd.MajorVersion = 0;
idd.MinorVersion = 0;
idd.Type = PE_IMAGE_DEBUG_TYPE_CODEVIEW;
idd.SizeOfData = sizeof (CV_INFO_PDB70) + 1;
idd.AddressOfRawData = asec->vma - ib + link_order->offset
+ sizeof (struct external_IMAGE_DEBUG_DIRECTORY);
idd.PointerToRawData = asec->filepos + link_order->offset
+ sizeof (struct external_IMAGE_DEBUG_DIRECTORY);
 
struct external_IMAGE_DEBUG_DIRECTORY *ext = (struct external_IMAGE_DEBUG_DIRECTORY *)contents;
_bfd_XXi_swap_debugdir_out (abfd, &idd, ext);
 
/* Write the debug directory entry. */
if (bfd_seek (abfd, asec->filepos + link_order->offset, SEEK_SET) != 0)
return 0;
 
if (bfd_bwrite (contents, size, abfd) != size)
return 0;
 
/* Construct the CodeView record. */
CODEVIEW_INFO cvinfo;
cvinfo.CVSignature = CVINFO_PDB70_CVSIGNATURE;
cvinfo.Age = 1;
 
/* Zero pad or truncate the generated build_id to fit in the CodeView record. */
memset (&(cvinfo.Signature), 0, CV_INFO_SIGNATURE_LENGTH);
memcpy (&(cvinfo.Signature), build_id, (build_id_size > CV_INFO_SIGNATURE_LENGTH)
? CV_INFO_SIGNATURE_LENGTH : build_id_size);
 
free (build_id);
 
/* Write the codeview record. */
if (_bfd_XXi_write_codeview_record (abfd, idd.PointerToRawData, &cvinfo) == 0)
return 0;
 
/* Record the location of the debug directory in the data directory. */
pe_data (link_info.output_bfd)->pe_opthdr.DataDirectory[PE_DEBUG_DATA].VirtualAddress
= asec->vma - ib + link_order->offset;
pe_data (link_info.output_bfd)->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size
= sizeof (struct external_IMAGE_DEBUG_DIRECTORY);
 
return TRUE;
}
 
/* Make .buildid section, and set up coff_tdata->build_id. */
static bfd_boolean
setup_build_id (bfd *ibfd)
{
asection *s;
flagword flags;
 
if (!validate_build_id_style (emit_build_id))
{
einfo ("%P: warning: unrecognized --build-id style ignored.\n");
return FALSE;
}
 
flags = (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_IN_MEMORY
| SEC_LINKER_CREATED | SEC_READONLY | SEC_DATA);
s = bfd_make_section_anyway_with_flags (ibfd, ".buildid", flags);
if (s != NULL)
{
struct pe_tdata *t = pe_data (link_info.output_bfd);
t->build_id.after_write_object_contents = &write_build_id;
t->build_id.style = emit_build_id;
t->build_id.sec = s;
 
/* Section is a fixed size:
One IMAGE_DEBUG_DIRECTORY entry, of type IMAGE_DEBUG_TYPE_CODEVIEW,
pointing at a CV_INFO_PDB70 record containing the build-id, with a
null byte for PdbFileName. */
s->size = sizeof (struct external_IMAGE_DEBUG_DIRECTORY)
+ sizeof (CV_INFO_PDB70) + 1;
 
return TRUE;
}
 
einfo ("%P: warning: Cannot create .buildid section,"
" --build-id ignored.\n");
return FALSE;
}
 
static void
gld_i386pe_after_open (void)
{
1380,31 → 1178,11
printf ("-%s\n", sym->root.string);
bfd_hash_traverse (&link_info.hash->table, pr_sym, NULL);
 
for (a = link_info.input_bfds; a; a = a->link.next)
for (a = link_info.input_bfds; a; a = a->link_next)
printf ("*%s\n",a->filename);
}
#endif
 
if (emit_build_id != NULL)
{
bfd *abfd;
 
/* Find a COFF input. */
for (abfd = link_info.input_bfds;
abfd != (bfd *) NULL; abfd = abfd->link.next)
if (bfd_get_flavour (abfd) == bfd_target_coff_flavour)
break;
 
/* If there are no COFF input files do not try to
add a build-id section. */
if (abfd == NULL
|| !setup_build_id (abfd))
{
free ((char *) emit_build_id);
emit_build_id = NULL;
}
}
 
/* Pass the wacky PE command line options into the output bfd.
FIXME: This should be done via a function, rather than by
including an internal BFD header. */
1427,16 → 1205,11
find it, so enable it in that case. */
if (pe_use_coff_long_section_names < 0 && link_info.strip == strip_none)
{
if (bfd_link_relocatable (&link_info))
pe_use_coff_long_section_names = 1;
else
{
/* Iterate over all sections of all input BFDs, checking
for any that begin 'debug_' and are long names. */
LANG_FOR_EACH_INPUT_STATEMENT (is)
{
int found_debug = 0;
 
bfd_map_over_sections (is->the_bfd, debug_section_p, &found_debug);
if (found_debug)
{
1445,7 → 1218,6
}
}
}
}
 
pe_output_file_set_long_section_names (link_info.output_bfd);
 
1463,10 → 1235,10
pe_fixup_stdcalls ();
 
#if defined (TARGET_IS_i386pe) || defined (TARGET_IS_armpe) || defined (TARGET_IS_arm_epoc_pe) || defined (TARGET_IS_arm_wince_pe)
if (!bfd_link_relocatable (&link_info))
if (!link_info.relocatable)
pe_dll_build_sections (link_info.output_bfd, &link_info);
#else
if (bfd_link_pic (&link_info))
if (link_info.shared)
pe_dll_build_sections (link_info.output_bfd, &link_info);
else
pe_exe_build_sections (link_info.output_bfd, &link_info);
1886,7 → 1658,7
 
/* def_file_print (stdout, pe_def_file); */
if (pe_def_file->is_dll == 1)
link_info.type = type_dll;
link_info.shared = 1;
 
if (pe_def_file->base_address != (bfd_vma)(-1))
{
1995,10 → 1767,9
finish_default ();
 
#ifdef DLL_SUPPORT
if (bfd_link_pic (&link_info)
if (link_info.shared
#if !defined(TARGET_IS_shpe)
|| (!bfd_link_relocatable (&link_info)
&& pe_def_file->num_exports != 0)
|| (!link_info.relocatable && pe_def_file->num_exports != 0)
#endif
)
{
2057,7 → 1828,7
lang_statement_union_type **pl;
 
/* Look through the script to see where to place this section. */
if (!bfd_link_relocatable (&link_info)
if (!link_info.relocatable
&& (dollar = strchr (secname, '$')) != NULL)
{
size_t len = dollar - secname;
2139,8 → 1910,6
struct orphan_save *place;
lang_output_section_statement_type *after;
etree_type *address;
flagword flags;
asection *nexts;
 
if (!orphan_init_done)
{
2158,26 → 1927,14
/* Try to put the new output section in a reasonable place based
on the section name and section flags. */
 
flags = s->flags;
nexts = s;
while ((nexts = bfd_get_next_section_by_name (nexts->owner, nexts)))
if (nexts->output_section == NULL
&& (nexts->flags & SEC_EXCLUDE) == 0
&& ((nexts->flags ^ flags) & (SEC_LOAD | SEC_ALLOC)) == 0
&& (nexts->owner->flags & DYNAMIC) == 0
&& nexts->owner->usrdata != NULL
&& !(((lang_input_statement_type *) nexts->owner->usrdata)
->flags.just_syms))
flags = (((flags ^ SEC_READONLY) | (nexts->flags ^ SEC_READONLY))
^ SEC_READONLY);
place = NULL;
if ((flags & SEC_ALLOC) == 0)
if ((s->flags & SEC_ALLOC) == 0)
;
else if ((flags & (SEC_LOAD | SEC_HAS_CONTENTS)) == 0)
else if ((s->flags & (SEC_LOAD | SEC_HAS_CONTENTS)) == 0)
place = &hold[orphan_bss];
else if ((flags & SEC_READONLY) == 0)
else if ((s->flags & SEC_READONLY) == 0)
place = &hold[orphan_data];
else if ((flags & SEC_CODE) == 0)
else if ((s->flags & SEC_CODE) == 0)
{
place = (!strncmp (secname, ".idata$", 7) ? &hold[orphan_idata]
: &hold[orphan_rodata]);
2192,8 → 1949,7
place->os = lang_output_section_find (place->name);
after = place->os;
if (after == NULL)
after = lang_output_section_find_by_flags (s, flags, &place->os,
NULL);
after = lang_output_section_find_by_flags (s, &place->os, NULL);
if (after == NULL)
/* *ABS* is always the first output section statement. */
after = (&lang_output_section_statement.head
2206,7 → 1962,7
address = exp_unop (ALIGN_K, exp_nameop (NAME, "__section_alignment__"));
os = lang_insert_orphan (s, secname, constraint, after, place, address,
&add_child);
if (bfd_link_relocatable (&link_info))
if (link_info.relocatable)
{
os->section_alignment = s->alignment_power;
os->bfd_section->alignment_power = s->alignment_power;
2283,7 → 2039,7
unsigned int i;
 
 
if (! entry->flags.maybe_archive || entry->flags.full_name_provided)
if (! entry->flags.maybe_archive)
return FALSE;
 
filename = entry->filename;
2356,15 → 2112,11
{
*isfile = 0;
 
if (bfd_link_relocatable (&link_info) && config.build_constructors)
if (link_info.relocatable && config.build_constructors)
return
"/* Script for ld -Ur: link w/out relocation, do create constructors */\n\
/* Copyright (C) 2014-2015 Free Software Foundation, Inc.\n\
Copying and distribution of this script, with or without modification,\n\
are permitted in any medium without royalty provided the copyright\n\
notice and this notice are preserved. */\n\
OUTPUT_FORMAT(pe-i386)\n\
SEARCH_DIR(\"=/home/autobuild/tools/win32/mingw32/lib\"); SEARCH_DIR(\"=/home/autobuild/tools/win32/lib\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\n\
SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\n\
SECTIONS\n\
{\n\
.text :\n\
2382,12 → 2134,12
on fork. This used to be named \".data\". The linker used\n\
to include this between __data_start__ and __data_end__, but that\n\
breaks building the cygwin32 dll. Instead, we name the section\n\
\".data_cygwin_nocopy\" and explicitly include it after __data_end__. */\n"
" .data :\n\
\".data_cygwin_nocopy\" and explicitly include it after __data_end__. */\n\
.data :\n\
{\n\
*(.data)\n\
*(.data2)\n\
KEEP(*(.jcr))\n\
*(.data2)\n"
" *(.jcr)\n\
}\n\
.rdata :\n\
{\n\
2396,11 → 2148,11
}\n\
.eh_frame :\n\
{\n\
KEEP(*(.eh_frame*))\n\
*(.eh_frame*)\n\
}\n\
.pdata :\n\
{\n\
KEEP(*(.pdata))\n\
*(.pdata)\n\
}\n\
.bss :\n\
{\n\
2407,12 → 2159,12
*(.bss)\n\
*(COMMON)\n\
}\n\
.edata :\n"
" {\n\
.edata :\n\
{\n\
*(.edata)\n\
}\n\
/DISCARD/ :\n\
{\n\
/DISCARD/ :\n"
" {\n\
*(.debug$S)\n\
*(.debug$T)\n\
*(.debug$F)\n\
2432,14 → 2184,14
be at the beginning of the section to enable SECREL32 relocations with TLS\n\
data. */\n\
.tls :\n\
{\n"
" }\n\
.endjunk :\n\
{\n\
/* end is deprecated, don't use it */\n\
}\n\
.rsrc : SUBALIGN(4)\n\
.endjunk :\n\
{\n\
/* end is deprecated, don't use it */\n"
" }\n\
.rsrc :\n\
{\n\
*(.rsrc)\n\
}\n\
.reloc :\n\
2457,12 → 2209,12
/* DWARF debug sections.\n\
Symbols in the DWARF debugging sections are relative to the beginning\n\
of the section. Unlike other targets that fake this by putting the\n\
section VMA at 0, the PE format will not allow it. */\n"
" /* DWARF 1.1 and DWARF 2. */\n\
section VMA at 0, the PE format will not allow it. */\n\
/* DWARF 1.1 and DWARF 2. */\n\
.debug_aranges :\n\
{\n\
*(.debug_aranges)\n\
}\n\
*(.debug_aranges)\n"
" }\n\
.zdebug_aranges :\n\
{\n\
*(.zdebug_aranges)\n\
2600,14 → 2352,10
*(.zdebug_types)\n\
}\n\
}\n\n"
; else if (bfd_link_relocatable (&link_info)) return
; else if (link_info.relocatable) return
"/* Script for ld -r: link without relocation */\n\
/* Copyright (C) 2014-2015 Free Software Foundation, Inc.\n\
Copying and distribution of this script, with or without modification,\n\
are permitted in any medium without royalty provided the copyright\n\
notice and this notice are preserved. */\n\
OUTPUT_FORMAT(pe-i386)\n\
SEARCH_DIR(\"=/home/autobuild/tools/win32/mingw32/lib\"); SEARCH_DIR(\"=/home/autobuild/tools/win32/lib\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\n\
SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\n\
SECTIONS\n\
{\n\
.text :\n\
2625,21 → 2373,21
.data :\n\
{\n\
*(.data)\n\
*(.data2)\n"
" KEEP(*(.jcr))\n\
*(.data2)\n\
*(.jcr)\n\
}\n\
.rdata :\n\
{\n\
*(.rdata)\n\
{\n"
" *(.rdata)\n\
*(.rdata_runtime_pseudo_reloc)\n\
}\n\
.eh_frame :\n\
{\n\
KEEP(*(.eh_frame*))\n\
*(.eh_frame*)\n\
}\n\
.pdata :\n\
{\n\
KEEP(*(.pdata))\n\
*(.pdata)\n\
}\n\
.bss :\n\
{\n\
2650,12 → 2398,12
{\n\
*(.edata)\n\
}\n\
/DISCARD/ :\n"
" {\n\
/DISCARD/ :\n\
{\n\
*(.debug$S)\n\
*(.debug$T)\n\
*(.debug$F)\n\
*(.drectve)\n\
*(.debug$F)\n"
" *(.drectve)\n\
}\n\
.idata :\n\
{\n\
2675,12 → 2423,12
}\n\
.endjunk :\n\
{\n\
/* end is deprecated, don't use it */\n"
/* end is deprecated, don't use it */\n\
}\n\
.rsrc :\n\
{\n\
*(.rsrc)\n"
" }\n\
.rsrc : SUBALIGN(4)\n\
{\n\
*(.rsrc)\n\
}\n\
.reloc :\n\
{\n\
*(.reloc)\n\
2700,12 → 2448,12
/* DWARF 1.1 and DWARF 2. */\n\
.debug_aranges :\n\
{\n\
*(.debug_aranges)\n"
" }\n\
*(.debug_aranges)\n\
}\n\
.zdebug_aranges :\n\
{\n\
*(.zdebug_aranges)\n\
}\n\
*(.zdebug_aranges)\n"
" }\n\
.debug_pubnames :\n\
{\n\
*(.debug_pubnames)\n\
2841,12 → 2589,8
}\n\n"
; else if (!config.text_read_only) return
"/* Script for -N: mix text and data on same page; don't align data */\n\
/* Copyright (C) 2014-2015 Free Software Foundation, Inc.\n\
Copying and distribution of this script, with or without modification,\n\
are permitted in any medium without royalty provided the copyright\n\
notice and this notice are preserved. */\n\
OUTPUT_FORMAT(pei-i386)\n\
SEARCH_DIR(\"=/home/autobuild/tools/win32/mingw32/lib\"); SEARCH_DIR(\"=/home/autobuild/tools/win32/lib\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\n\
SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\n\
SECTIONS\n\
{\n\
/* Make the virtual address and file offset synced if the alignment is\n\
2855,7 → 2599,7
. = ALIGN(__section_alignment__);\n\
.text __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) :\n\
{\n\
KEEP(*(.init))\n\
*(.init)\n\
*(.text)\n\
*(SORT(.text$*))\n\
*(.text.*)\n\
2864,12 → 2608,12
*(.glue_7)\n\
___CTOR_LIST__ = .; __CTOR_LIST__ = . ;\n\
LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*)); LONG (0);\n\
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;\n"
" LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*)); LONG (0);\n\
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;\n\
LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*)); LONG (0);\n\
*(.fini)\n\
/* ??? Why is .gcc_exc here? */\n\
*(.gcc_exc)\n\
PROVIDE (etext = .);\n\
*(.gcc_exc)\n"
" PROVIDE (etext = .);\n\
PROVIDE (_etext = .);\n\
*(.gcc_except_table)\n\
}\n\
2884,17 → 2628,17
*(.data)\n\
*(.data2)\n\
*(SORT(.data$*))\n\
KEEP(*(.jcr))\n\
*(.jcr)\n\
__data_end__ = . ;\n\
*(.data_cygwin_nocopy)\n\
}\n\
.rdata BLOCK(__section_alignment__) :\n\
{\n"
" *(.rdata)\n\
{\n\
*(.rdata)\n\
*(SORT(.rdata$*))\n\
__rt_psrelocs_start = .;\n\
*(.rdata_runtime_pseudo_reloc)\n\
__rt_psrelocs_end = .;\n\
*(.rdata_runtime_pseudo_reloc)\n"
" __rt_psrelocs_end = .;\n\
}\n\
__rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start;\n\
___RUNTIME_PSEUDO_RELOC_LIST_END__ = .;\n\
2903,11 → 2647,11
__RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;\n\
.eh_frame BLOCK(__section_alignment__) :\n\
{\n\
KEEP(*(.eh_frame*))\n\
*(.eh_frame*)\n\
}\n\
.pdata BLOCK(__section_alignment__) :\n\
{\n\
KEEP(*(.pdata))\n\
*(.pdata)\n\
}\n\
.bss BLOCK(__section_alignment__) :\n\
{\n\
2914,12 → 2658,12
__bss_start__ = . ;\n\
*(.bss)\n\
*(COMMON)\n\
__bss_end__ = . ;\n"
" }\n\
__bss_end__ = . ;\n\
}\n\
.edata BLOCK(__section_alignment__) :\n\
{\n\
*(.edata)\n\
}\n\
*(.edata)\n"
" }\n\
/DISCARD/ :\n\
{\n\
*(.debug$S)\n\
2933,33 → 2677,33
{\n\
/* This cannot currently be handled with grouped sections.\n\
See pe.em:sort_sections. */\n\
KEEP (SORT(*)(.idata$2))\n\
KEEP (SORT(*)(.idata$3))\n\
SORT(*)(.idata$2)\n\
SORT(*)(.idata$3)\n\
/* These zeroes mark the end of the import list. */\n\
LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);\n\
KEEP (SORT(*)(.idata$4))\n\
SORT(*)(.idata$4)\n\
__IAT_start__ = .;\n\
KEEP (SORT(*)(.idata$5))\n"
" __IAT_end__ = .;\n\
KEEP (SORT(*)(.idata$6))\n\
KEEP (SORT(*)(.idata$7))\n\
}\n\
.CRT BLOCK(__section_alignment__) :\n\
SORT(*)(.idata$5)\n\
__IAT_end__ = .;\n\
SORT(*)(.idata$6)\n\
SORT(*)(.idata$7)\n\
}\n"
" .CRT BLOCK(__section_alignment__) :\n\
{\n\
___crt_xc_start__ = . ;\n\
KEEP (*(SORT(.CRT$XC*))) /* C initialization */\n\
*(SORT(.CRT$XC*)) /* C initialization */\n\
___crt_xc_end__ = . ;\n\
___crt_xi_start__ = . ;\n\
KEEP (*(SORT(.CRT$XI*))) /* C++ initialization */\n\
*(SORT(.CRT$XI*)) /* C++ initialization */\n\
___crt_xi_end__ = . ;\n\
___crt_xl_start__ = . ;\n\
KEEP (*(SORT(.CRT$XL*))) /* TLS callbacks */\n\
*(SORT(.CRT$XL*)) /* TLS callbacks */\n\
/* ___crt_xl_end__ is defined in the TLS Directory support code */\n\
___crt_xp_start__ = . ;\n\
KEEP (*(SORT(.CRT$XP*))) /* Pre-termination */\n\
*(SORT(.CRT$XP*)) /* Pre-termination */\n\
___crt_xp_end__ = . ;\n\
___crt_xt_start__ = . ;\n\
KEEP (*(SORT(.CRT$XT*))) /* Termination */\n\
*(SORT(.CRT$XT*)) /* Termination */\n\
___crt_xt_end__ = . ;\n\
}\n\
/* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be\n\
2969,11 → 2713,11
.tls BLOCK(__section_alignment__) :\n\
{\n\
___tls_start__ = . ;\n\
KEEP (*(.tls$AAA))\n\
KEEP (*(.tls))\n\
KEEP (*(.tls$))\n\
KEEP (*(SORT(.tls$*)))\n\
KEEP (*(.tls$ZZZ))\n\
*(.tls$AAA)\n\
*(.tls)\n\
*(.tls$)\n\
*(SORT(.tls$*))\n\
*(.tls$ZZZ)\n\
___tls_end__ = . ;\n\
}\n\
.endjunk BLOCK(__section_alignment__) :\n\
2983,10 → 2727,10
PROVIDE ( _end = .);\n\
__end__ = .;\n\
}\n\
.rsrc BLOCK(__section_alignment__) : SUBALIGN(4)\n\
.rsrc BLOCK(__section_alignment__) :\n\
{\n\
KEEP (*(.rsrc))\n\
KEEP (*(.rsrc$*))\n\
*(.rsrc)\n\
*(SORT(.rsrc$*))\n\
}\n\
.reloc BLOCK(__section_alignment__) :\n\
{\n\
3148,12 → 2892,8
}\n\n"
; else if (!config.magic_demand_paged) return
"/* Script for -n: mix text and data on same page */\n\
/* Copyright (C) 2014-2015 Free Software Foundation, Inc.\n\
Copying and distribution of this script, with or without modification,\n\
are permitted in any medium without royalty provided the copyright\n\
notice and this notice are preserved. */\n\
OUTPUT_FORMAT(pei-i386)\n\
SEARCH_DIR(\"=/home/autobuild/tools/win32/mingw32/lib\"); SEARCH_DIR(\"=/home/autobuild/tools/win32/lib\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\n\
SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\n\
SECTIONS\n\
{\n\
/* Make the virtual address and file offset synced if the alignment is\n\
3162,7 → 2902,7
. = ALIGN(__section_alignment__);\n\
.text __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) :\n\
{\n\
KEEP(*(.init))\n\
*(.init)\n\
*(.text)\n\
*(SORT(.text$*))\n\
*(.text.*)\n\
3171,12 → 2911,12
*(.glue_7)\n\
___CTOR_LIST__ = .; __CTOR_LIST__ = . ;\n\
LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*)); LONG (0);\n\
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;\n"
" LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*)); LONG (0);\n\
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;\n\
LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*)); LONG (0);\n\
*(.fini)\n\
/* ??? Why is .gcc_exc here? */\n\
*(.gcc_exc)\n\
PROVIDE (etext = .);\n\
*(.gcc_exc)\n"
" PROVIDE (etext = .);\n\
PROVIDE (_etext = .);\n\
*(.gcc_except_table)\n\
}\n\
3191,17 → 2931,17
*(.data)\n\
*(.data2)\n\
*(SORT(.data$*))\n\
KEEP(*(.jcr))\n\
*(.jcr)\n\
__data_end__ = . ;\n\
*(.data_cygwin_nocopy)\n\
}\n\
.rdata BLOCK(__section_alignment__) :\n\
{\n"
" *(.rdata)\n\
{\n\
*(.rdata)\n\
*(SORT(.rdata$*))\n\
__rt_psrelocs_start = .;\n\
*(.rdata_runtime_pseudo_reloc)\n\
__rt_psrelocs_end = .;\n\
*(.rdata_runtime_pseudo_reloc)\n"
" __rt_psrelocs_end = .;\n\
}\n\
__rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start;\n\
___RUNTIME_PSEUDO_RELOC_LIST_END__ = .;\n\
3210,11 → 2950,11
__RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;\n\
.eh_frame BLOCK(__section_alignment__) :\n\
{\n\
KEEP(*(.eh_frame*))\n\
*(.eh_frame*)\n\
}\n\
.pdata BLOCK(__section_alignment__) :\n\
{\n\
KEEP(*(.pdata))\n\
*(.pdata)\n\
}\n\
.bss BLOCK(__section_alignment__) :\n\
{\n\
3221,12 → 2961,12
__bss_start__ = . ;\n\
*(.bss)\n\
*(COMMON)\n\
__bss_end__ = . ;\n"
" }\n\
__bss_end__ = . ;\n\
}\n\
.edata BLOCK(__section_alignment__) :\n\
{\n\
*(.edata)\n\
}\n\
*(.edata)\n"
" }\n\
/DISCARD/ :\n\
{\n\
*(.debug$S)\n\
3240,33 → 2980,33
{\n\
/* This cannot currently be handled with grouped sections.\n\
See pe.em:sort_sections. */\n\
KEEP (SORT(*)(.idata$2))\n\
KEEP (SORT(*)(.idata$3))\n\
SORT(*)(.idata$2)\n\
SORT(*)(.idata$3)\n\
/* These zeroes mark the end of the import list. */\n\
LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);\n\
KEEP (SORT(*)(.idata$4))\n\
SORT(*)(.idata$4)\n\
__IAT_start__ = .;\n\
KEEP (SORT(*)(.idata$5))\n"
" __IAT_end__ = .;\n\
KEEP (SORT(*)(.idata$6))\n\
KEEP (SORT(*)(.idata$7))\n\
}\n\
.CRT BLOCK(__section_alignment__) :\n\
SORT(*)(.idata$5)\n\
__IAT_end__ = .;\n\
SORT(*)(.idata$6)\n\
SORT(*)(.idata$7)\n\
}\n"
" .CRT BLOCK(__section_alignment__) :\n\
{\n\
___crt_xc_start__ = . ;\n\
KEEP (*(SORT(.CRT$XC*))) /* C initialization */\n\
*(SORT(.CRT$XC*)) /* C initialization */\n\
___crt_xc_end__ = . ;\n\
___crt_xi_start__ = . ;\n\
KEEP (*(SORT(.CRT$XI*))) /* C++ initialization */\n\
*(SORT(.CRT$XI*)) /* C++ initialization */\n\
___crt_xi_end__ = . ;\n\
___crt_xl_start__ = . ;\n\
KEEP (*(SORT(.CRT$XL*))) /* TLS callbacks */\n\
*(SORT(.CRT$XL*)) /* TLS callbacks */\n\
/* ___crt_xl_end__ is defined in the TLS Directory support code */\n\
___crt_xp_start__ = . ;\n\
KEEP (*(SORT(.CRT$XP*))) /* Pre-termination */\n\
*(SORT(.CRT$XP*)) /* Pre-termination */\n\
___crt_xp_end__ = . ;\n\
___crt_xt_start__ = . ;\n\
KEEP (*(SORT(.CRT$XT*))) /* Termination */\n\
*(SORT(.CRT$XT*)) /* Termination */\n\
___crt_xt_end__ = . ;\n\
}\n\
/* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be\n\
3276,11 → 3016,11
.tls BLOCK(__section_alignment__) :\n\
{\n\
___tls_start__ = . ;\n\
KEEP (*(.tls$AAA))\n\
KEEP (*(.tls))\n\
KEEP (*(.tls$))\n\
KEEP (*(SORT(.tls$*)))\n\
KEEP (*(.tls$ZZZ))\n\
*(.tls$AAA)\n\
*(.tls)\n\
*(.tls$)\n\
*(SORT(.tls$*))\n\
*(.tls$ZZZ)\n\
___tls_end__ = . ;\n\
}\n\
.endjunk BLOCK(__section_alignment__) :\n\
3290,10 → 3030,10
PROVIDE ( _end = .);\n\
__end__ = .;\n\
}\n\
.rsrc BLOCK(__section_alignment__) : SUBALIGN(4)\n\
.rsrc BLOCK(__section_alignment__) :\n\
{\n\
KEEP (*(.rsrc))\n\
KEEP (*(.rsrc$*))\n\
*(.rsrc)\n\
*(SORT(.rsrc$*))\n\
}\n\
.reloc BLOCK(__section_alignment__) :\n\
{\n\
3455,12 → 3195,8
}\n\n"
; else if (link_info.pei386_auto_import == 1 && (MERGE_RDATA_V2 || link_info.pei386_runtime_pseudo_reloc != 2)) return
"/* Script for ld --enable-auto-import: Like the default script except read only data is placed into .data */\n\
/* Copyright (C) 2014-2015 Free Software Foundation, Inc.\n\
Copying and distribution of this script, with or without modification,\n\
are permitted in any medium without royalty provided the copyright\n\
notice and this notice are preserved. */\n\
OUTPUT_FORMAT(pei-i386)\n\
SEARCH_DIR(\"=/home/autobuild/tools/win32/mingw32/lib\"); SEARCH_DIR(\"=/home/autobuild/tools/win32/lib\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\n\
SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\n\
SECTIONS\n\
{\n\
/* Make the virtual address and file offset synced if the alignment is\n\
3469,7 → 3205,7
. = ALIGN(__section_alignment__);\n\
.text __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) :\n\
{\n\
KEEP(*(.init))\n\
*(.init)\n\
*(.text)\n\
*(SORT(.text$*))\n\
*(.text.*)\n\
3478,12 → 3214,12
*(.glue_7)\n\
___CTOR_LIST__ = .; __CTOR_LIST__ = . ;\n\
LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*)); LONG (0);\n\
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;\n"
" LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*)); LONG (0);\n\
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;\n\
LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*)); LONG (0);\n\
*(.fini)\n\
/* ??? Why is .gcc_exc here? */\n\
*(.gcc_exc)\n\
PROVIDE (etext = .);\n\
*(.gcc_exc)\n"
" PROVIDE (etext = .);\n\
PROVIDE (_etext = .);\n\
*(.gcc_except_table)\n\
}\n\
3500,15 → 3236,15
*(SORT(.data$*))\n\
*(.rdata)\n\
*(SORT(.rdata$*))\n\
KEEP(*(.jcr))\n\
*(.jcr)\n\
__data_end__ = . ;\n\
*(.data_cygwin_nocopy)\n\
}\n"
" .rdata BLOCK(__section_alignment__) :\n\
}\n\
.rdata BLOCK(__section_alignment__) :\n\
{\n\
__rt_psrelocs_start = .;\n\
*(.rdata_runtime_pseudo_reloc)\n\
__rt_psrelocs_end = .;\n\
*(.rdata_runtime_pseudo_reloc)\n"
" __rt_psrelocs_end = .;\n\
}\n\
__rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start;\n\
___RUNTIME_PSEUDO_RELOC_LIST_END__ = .;\n\
3517,11 → 3253,11
__RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;\n\
.eh_frame BLOCK(__section_alignment__) :\n\
{\n\
KEEP(*(.eh_frame*))\n\
*(.eh_frame*)\n\
}\n\
.pdata BLOCK(__section_alignment__) :\n\
{\n\
KEEP(*(.pdata))\n\
*(.pdata)\n\
}\n\
.bss BLOCK(__section_alignment__) :\n\
{\n\
3528,12 → 3264,12
__bss_start__ = . ;\n\
*(.bss)\n\
*(COMMON)\n\
__bss_end__ = . ;\n"
" }\n\
__bss_end__ = . ;\n\
}\n\
.edata BLOCK(__section_alignment__) :\n\
{\n\
*(.edata)\n\
}\n\
*(.edata)\n"
" }\n\
/DISCARD/ :\n\
{\n\
*(.debug$S)\n\
3547,33 → 3283,33
{\n\
/* This cannot currently be handled with grouped sections.\n\
See pe.em:sort_sections. */\n\
KEEP (SORT(*)(.idata$2))\n\
KEEP (SORT(*)(.idata$3))\n\
SORT(*)(.idata$2)\n\
SORT(*)(.idata$3)\n\
/* These zeroes mark the end of the import list. */\n\
LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);\n\
KEEP (SORT(*)(.idata$4))\n\
SORT(*)(.idata$4)\n\
__IAT_start__ = .;\n\
KEEP (SORT(*)(.idata$5))\n"
" __IAT_end__ = .;\n\
KEEP (SORT(*)(.idata$6))\n\
KEEP (SORT(*)(.idata$7))\n\
}\n\
.CRT BLOCK(__section_alignment__) :\n\
SORT(*)(.idata$5)\n\
__IAT_end__ = .;\n\
SORT(*)(.idata$6)\n\
SORT(*)(.idata$7)\n\
}\n"
" .CRT BLOCK(__section_alignment__) :\n\
{\n\
___crt_xc_start__ = . ;\n\
KEEP (*(SORT(.CRT$XC*))) /* C initialization */\n\
*(SORT(.CRT$XC*)) /* C initialization */\n\
___crt_xc_end__ = . ;\n\
___crt_xi_start__ = . ;\n\
KEEP (*(SORT(.CRT$XI*))) /* C++ initialization */\n\
*(SORT(.CRT$XI*)) /* C++ initialization */\n\
___crt_xi_end__ = . ;\n\
___crt_xl_start__ = . ;\n\
KEEP (*(SORT(.CRT$XL*))) /* TLS callbacks */\n\
*(SORT(.CRT$XL*)) /* TLS callbacks */\n\
/* ___crt_xl_end__ is defined in the TLS Directory support code */\n\
___crt_xp_start__ = . ;\n\
KEEP (*(SORT(.CRT$XP*))) /* Pre-termination */\n\
*(SORT(.CRT$XP*)) /* Pre-termination */\n\
___crt_xp_end__ = . ;\n\
___crt_xt_start__ = . ;\n\
KEEP (*(SORT(.CRT$XT*))) /* Termination */\n\
*(SORT(.CRT$XT*)) /* Termination */\n\
___crt_xt_end__ = . ;\n\
}\n\
/* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be\n\
3583,11 → 3319,11
.tls BLOCK(__section_alignment__) :\n\
{\n\
___tls_start__ = . ;\n\
KEEP (*(.tls$AAA))\n\
KEEP (*(.tls))\n\
KEEP (*(.tls$))\n\
KEEP (*(SORT(.tls$*)))\n\
KEEP (*(.tls$ZZZ))\n\
*(.tls$AAA)\n\
*(.tls)\n\
*(.tls$)\n\
*(SORT(.tls$*))\n\
*(.tls$ZZZ)\n\
___tls_end__ = . ;\n\
}\n\
.endjunk BLOCK(__section_alignment__) :\n\
3597,10 → 3333,10
PROVIDE ( _end = .);\n\
__end__ = .;\n\
}\n\
.rsrc BLOCK(__section_alignment__) : SUBALIGN(4)\n\
.rsrc BLOCK(__section_alignment__) :\n\
{\n\
KEEP (*(.rsrc))\n\
KEEP (*(.rsrc$*))\n\
*(.rsrc)\n\
*(SORT(.rsrc$*))\n\
}\n\
.reloc BLOCK(__section_alignment__) :\n\
{\n\
3762,12 → 3498,8
}\n\n"
; else return
"/* Default linker script, for normal executables */\n\
/* Copyright (C) 2014-2015 Free Software Foundation, Inc.\n\
Copying and distribution of this script, with or without modification,\n\
are permitted in any medium without royalty provided the copyright\n\
notice and this notice are preserved. */\n\
OUTPUT_FORMAT(pei-i386)\n\
SEARCH_DIR(\"=/home/autobuild/tools/win32/mingw32/lib\"); SEARCH_DIR(\"=/home/autobuild/tools/win32/lib\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\n\
SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\n\
SECTIONS\n\
{\n\
/* Make the virtual address and file offset synced if the alignment is\n\
3776,7 → 3508,7
. = ALIGN(__section_alignment__);\n\
.text __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) :\n\
{\n\
KEEP(*(.init))\n\
*(.init)\n\
*(.text)\n\
*(SORT(.text$*))\n\
*(.text.*)\n\
3785,12 → 3517,12
*(.glue_7)\n\
___CTOR_LIST__ = .; __CTOR_LIST__ = . ;\n\
LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*)); LONG (0);\n\
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;\n"
" LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*)); LONG (0);\n\
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;\n\
LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*)); LONG (0);\n\
*(.fini)\n\
/* ??? Why is .gcc_exc here? */\n\
*(.gcc_exc)\n\
PROVIDE (etext = .);\n\
*(.gcc_exc)\n"
" PROVIDE (etext = .);\n\
PROVIDE (_etext = .);\n\
*(.gcc_except_table)\n\
}\n\
3805,17 → 3537,17
*(.data)\n\
*(.data2)\n\
*(SORT(.data$*))\n\
KEEP(*(.jcr))\n\
*(.jcr)\n\
__data_end__ = . ;\n\
*(.data_cygwin_nocopy)\n\
}\n\
.rdata BLOCK(__section_alignment__) :\n\
{\n"
" *(.rdata)\n\
{\n\
*(.rdata)\n\
*(SORT(.rdata$*))\n\
__rt_psrelocs_start = .;\n\
*(.rdata_runtime_pseudo_reloc)\n\
__rt_psrelocs_end = .;\n\
*(.rdata_runtime_pseudo_reloc)\n"
" __rt_psrelocs_end = .;\n\
}\n\
__rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start;\n\
___RUNTIME_PSEUDO_RELOC_LIST_END__ = .;\n\
3824,11 → 3556,11
__RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;\n\
.eh_frame BLOCK(__section_alignment__) :\n\
{\n\
KEEP(*(.eh_frame*))\n\
*(.eh_frame*)\n\
}\n\
.pdata BLOCK(__section_alignment__) :\n\
{\n\
KEEP(*(.pdata))\n\
*(.pdata)\n\
}\n\
.bss BLOCK(__section_alignment__) :\n\
{\n\
3835,12 → 3567,12
__bss_start__ = . ;\n\
*(.bss)\n\
*(COMMON)\n\
__bss_end__ = . ;\n"
" }\n\
__bss_end__ = . ;\n\
}\n\
.edata BLOCK(__section_alignment__) :\n\
{\n\
*(.edata)\n\
}\n\
*(.edata)\n"
" }\n\
/DISCARD/ :\n\
{\n\
*(.debug$S)\n\
3854,33 → 3586,33
{\n\
/* This cannot currently be handled with grouped sections.\n\
See pe.em:sort_sections. */\n\
KEEP (SORT(*)(.idata$2))\n\
KEEP (SORT(*)(.idata$3))\n\
SORT(*)(.idata$2)\n\
SORT(*)(.idata$3)\n\
/* These zeroes mark the end of the import list. */\n\
LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);\n\
KEEP (SORT(*)(.idata$4))\n\
SORT(*)(.idata$4)\n\
__IAT_start__ = .;\n\
KEEP (SORT(*)(.idata$5))\n"
" __IAT_end__ = .;\n\
KEEP (SORT(*)(.idata$6))\n\
KEEP (SORT(*)(.idata$7))\n\
}\n\
.CRT BLOCK(__section_alignment__) :\n\
SORT(*)(.idata$5)\n\
__IAT_end__ = .;\n\
SORT(*)(.idata$6)\n\
SORT(*)(.idata$7)\n\
}\n"
" .CRT BLOCK(__section_alignment__) :\n\
{\n\
___crt_xc_start__ = . ;\n\
KEEP (*(SORT(.CRT$XC*))) /* C initialization */\n\
*(SORT(.CRT$XC*)) /* C initialization */\n\
___crt_xc_end__ = . ;\n\
___crt_xi_start__ = . ;\n\
KEEP (*(SORT(.CRT$XI*))) /* C++ initialization */\n\
*(SORT(.CRT$XI*)) /* C++ initialization */\n\
___crt_xi_end__ = . ;\n\
___crt_xl_start__ = . ;\n\
KEEP (*(SORT(.CRT$XL*))) /* TLS callbacks */\n\
*(SORT(.CRT$XL*)) /* TLS callbacks */\n\
/* ___crt_xl_end__ is defined in the TLS Directory support code */\n\
___crt_xp_start__ = . ;\n\
KEEP (*(SORT(.CRT$XP*))) /* Pre-termination */\n\
*(SORT(.CRT$XP*)) /* Pre-termination */\n\
___crt_xp_end__ = . ;\n\
___crt_xt_start__ = . ;\n\
KEEP (*(SORT(.CRT$XT*))) /* Termination */\n\
*(SORT(.CRT$XT*)) /* Termination */\n\
___crt_xt_end__ = . ;\n\
}\n\
/* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be\n\
3890,11 → 3622,11
.tls BLOCK(__section_alignment__) :\n\
{\n\
___tls_start__ = . ;\n\
KEEP (*(.tls$AAA))\n\
KEEP (*(.tls))\n\
KEEP (*(.tls$))\n\
KEEP (*(SORT(.tls$*)))\n\
KEEP (*(.tls$ZZZ))\n\
*(.tls$AAA)\n\
*(.tls)\n\
*(.tls$)\n\
*(SORT(.tls$*))\n\
*(.tls$ZZZ)\n\
___tls_end__ = . ;\n\
}\n\
.endjunk BLOCK(__section_alignment__) :\n\
3904,10 → 3636,10
PROVIDE ( _end = .);\n\
__end__ = .;\n\
}\n\
.rsrc BLOCK(__section_alignment__) : SUBALIGN(4)\n\
.rsrc BLOCK(__section_alignment__) :\n\
{\n\
KEEP (*(.rsrc))\n\
KEEP (*(.rsrc$*))\n\
*(.rsrc)\n\
*(SORT(.rsrc$*))\n\
}\n\
.reloc BLOCK(__section_alignment__) :\n\
{\n\
4096,6 → 3828,5
gld_i386pe_list_options,
gld_i386pe_recognized_file,
gld_i386pe_find_potential_libraries,
NULL, /* new_vers_pattern. */
NULL /* extra_map_file_text. */
NULL /* new_vers_pattern. */
};
/contrib/toolchain/binutils/ld/ld.h
1,5 → 1,7
/* ld.h -- general linker header file
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
102,6 → 104,23
struct wildcard_spec spec;
};
 
struct map_symbol_def {
struct bfd_link_hash_entry *entry;
struct map_symbol_def *next;
};
 
/* The initial part of fat_user_section_struct has to be idential with
lean_user_section_struct. */
typedef struct fat_user_section_struct {
/* For input sections, when writing a map file: head / tail of a linked
list of hash table entries for symbols defined in this section. */
struct map_symbol_def *map_symbol_def_head;
struct map_symbol_def **map_symbol_def_tail;
unsigned long map_symbol_def_count;
} fat_section_userdata_type;
 
#define get_userdata(x) ((x)->userdata)
 
#define BYTE_SIZE (1)
#define SHORT_SIZE (2)
#define LONG_SIZE (4)
161,9 → 180,6
/* If TRUE we'll just print the default output on stdout. */
bfd_boolean print_output_format;
 
/* If set, display the target memory usage (per memory region). */
bfd_boolean print_memory_usage;
 
/* Big or little endian as set on command line. */
enum endian_enum endian;
 
207,25 → 223,6
 
typedef int token_code_type;
 
/* Different ways we can handle orphan sections. */
 
enum orphan_handling_enum {
/* The classic strategy, find a suitable section to place the orphan
into. */
orphan_handling_place = 0,
 
/* Discard any orphan sections as though they were assign to the section
/DISCARD/. */
orphan_handling_discard,
 
/* Find somewhere to place the orphan section, as with
ORPHAN_HANDLING_PLACE, but also issue a warning. */
orphan_handling_warn,
 
/* Issue a fatal error if any orphan sections are found. */
orphan_handling_error,
};
 
typedef struct {
bfd_boolean magic_demand_paged;
bfd_boolean make_executable;
248,9 → 245,6
/* If TRUE, only warn once about a particular undefined symbol. */
bfd_boolean warn_once;
 
/* How should we deal with orphan sections. */
enum orphan_handling_enum orphan_handling;
 
/* If TRUE, warn if multiple global-pointers are needed (Alpha
only). */
bfd_boolean warn_multiple_gp;
/contrib/toolchain/binutils/ld/ldcref.c
1,5 → 1,5
/* ldcref.c -- output a cross reference table
Copyright (C) 1996-2015 Free Software Foundation, Inc.
Copyright 1996-2013 Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@cygnus.com>
 
This file is part of the GNU Binutils.
40,8 → 40,7
/* We keep an instance of this structure for each reference to a
symbol from a given object. */
 
struct cref_ref
{
struct cref_ref {
/* The next reference. */
struct cref_ref *next;
/* The object. */
56,8 → 55,7
 
/* We keep a hash table of symbols. Each entry looks like this. */
 
struct cref_hash_entry
{
struct cref_hash_entry {
struct bfd_hash_entry root;
/* The demangled name. */
const char *demangled;
67,8 → 65,7
 
/* This is what the hash table looks like. */
 
struct cref_hash_table
{
struct cref_hash_table {
struct bfd_hash_table root;
};
 
351,10 → 348,7
const struct cref_hash_entry * const *p2 =
(const struct cref_hash_entry * const *) a2;
 
if (demangling)
return strcmp ((*p1)->demangled, (*p2)->demangled);
else
return strcmp ((*p1)->root.string, (*p2)->root.string);
}
 
/* Write out the cref table. */
432,16 → 426,8
}
}
 
if (demangling)
{
fprintf (fp, "%s ", h->demangled);
len = strlen (h->demangled) + 1;
}
else
{
fprintf (fp, "%s ", h->root.string);
len = strlen (h->root.string) + 1;
}
 
for (r = h->refs; r != NULL; r = r->next)
{
/contrib/toolchain/binutils/ld/ldctor.c
1,5 → 1,7
/* ldctor.c -- constructor support routines
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2011
Free Software Foundation, Inc.
By Steve Chamberlain <sac@cygnus.com>
 
This file is part of the GNU Binutils.
274,7 → 276,7
howto = bfd_reloc_type_lookup (link_info.output_bfd, p->reloc);
if (howto == NULL)
{
if (bfd_link_relocatable (&link_info))
if (link_info.relocatable)
{
einfo (_("%P%X: %s does not support reloc %s for set %s\n"),
bfd_get_target (link_info.output_bfd),
362,7 → 364,7
if (! bfd_is_abs_section (e->section))
e->section->flags |= SEC_KEEP;
 
if (bfd_link_relocatable (&link_info))
if (link_info.relocatable)
lang_add_reloc (p->reloc, howto, e->section, e->name,
exp_intop (e->value));
else
/contrib/toolchain/binutils/ld/ldctor.h
1,5 → 1,6
/* ldctor.h - linker constructor support
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991, 1992, 1993, 1994, 1995, 1998, 2000, 2002, 2003, 2005,
2007, 2008 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
/contrib/toolchain/binutils/ld/ldemul.c
1,5 → 1,7
/* ldemul.c -- clearing house for ld emulation states
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2005, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
205,7 → 207,7
after_parse_default (void)
{
if (entry_symbol.name != NULL
&& (bfd_link_executable (&link_info) || entry_from_cmdline))
&& (link_info.executable || entry_from_cmdline))
{
bfd_boolean is_vma = FALSE;
 
235,7 → 237,7
void
before_allocation_default (void)
{
if (!bfd_link_relocatable (&link_info))
if (!link_info.relocatable)
strip_excluded_output_sections ();
}
 
242,7 → 244,7
void
finish_default (void)
{
if (!bfd_link_relocatable (&link_info))
if (!link_info.relocatable)
_bfd_fix_excluded_sec_syms (link_info.output_bfd, &link_info);
}
 
348,10 → 350,3
entry = (*ld_emulation->new_vers_pattern) (entry);
return entry;
}
 
void
ldemul_extra_map_file_text (bfd *abfd, struct bfd_link_info *info, FILE *mapf)
{
if (ld_emulation->extra_map_file_text)
ld_emulation->extra_map_file_text (abfd, info, mapf);
}
/contrib/toolchain/binutils/ld/ldemul.h
1,5 → 1,7
/* ld-emul.h - Linker emulation header file
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001,
2002, 2003, 2004, 2005, 2007, 2008
Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
94,8 → 96,6
(char *, struct lang_input_statement_struct *);
extern struct bfd_elf_version_expr *ldemul_new_vers_pattern
(struct bfd_elf_version_expr *);
extern void ldemul_extra_map_file_text
(bfd *, struct bfd_link_info *, FILE *);
 
typedef struct ld_emulation_xfer_struct {
/* Run before parsing the command line and script file.
196,11 → 196,6
struct bfd_elf_version_expr * (*new_vers_pattern)
(struct bfd_elf_version_expr *);
 
/* Called when printing the map file, in case there are
emulation-specific sections for it. */
void (*extra_map_file_text)
(bfd *, struct bfd_link_info *, FILE *);
 
} ld_emulation_xfer_type;
 
typedef enum {
/contrib/toolchain/binutils/ld/ldexp.c
1,5 → 1,5
/* This module handles expression trees.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991-2013 Free Software Foundation, Inc.
Written by Steve Chamberlain of Cygnus Support <sac@cygnus.com>.
 
This file is part of the GNU Binutils.
48,31 → 48,6
 
struct ldexp_control expld;
 
/* This structure records symbols for which we need to keep track of
definedness for use in the DEFINED () test. It is also used in
making absolute symbols section relative late in the link. */
 
struct definedness_hash_entry
{
struct bfd_hash_entry root;
 
/* If this symbol was assigned from "dot" outside of an output
section statement, the section we'd like it relative to. */
asection *final_sec;
 
/* Symbol was defined by an object file. */
unsigned int by_object : 1;
 
/* Symbols was defined by a script. */
unsigned int by_script : 1;
 
/* Low bit of iteration count. Symbols with matching iteration have
been defined in this pass over the script. */
unsigned int iteration : 1;
};
 
static struct bfd_hash_table definedness_table;
 
/* Print the string representation of the given token. Surround it
with spaces if INFIX_P is TRUE. */
 
186,7 → 161,6
if (expld.result.section != NULL)
expld.result.value += expld.result.section->vma;
expld.result.section = bfd_abs_section_ptr;
expld.rel_from_abs = FALSE;
}
 
static void
262,7 → 236,8
{
asection *s = expld.section;
 
expld.rel_from_abs = TRUE;
if (s == bfd_abs_section_ptr && expld.phase == lang_final_phase_enum)
s = section_for_dot ();
expld.result.valid_p = TRUE;
expld.result.value = value - s->vma;
expld.result.str = NULL;
269,79 → 244,6
expld.result.section = s;
}
 
/* New-function for the definedness hash table. */
 
static struct bfd_hash_entry *
definedness_newfunc (struct bfd_hash_entry *entry,
struct bfd_hash_table *table ATTRIBUTE_UNUSED,
const char *name ATTRIBUTE_UNUSED)
{
struct definedness_hash_entry *ret = (struct definedness_hash_entry *) entry;
 
if (ret == NULL)
ret = (struct definedness_hash_entry *)
bfd_hash_allocate (table, sizeof (struct definedness_hash_entry));
 
if (ret == NULL)
einfo (_("%P%F: bfd_hash_allocate failed creating symbol %s\n"), name);
 
ret->by_object = 0;
ret->by_script = 0;
ret->iteration = 0;
return &ret->root;
}
 
/* Called during processing of linker script script expressions.
For symbols assigned in a linker script, return a struct describing
where the symbol is defined relative to the current expression,
otherwise return NULL. */
 
static struct definedness_hash_entry *
symbol_defined (const char *name)
{
return ((struct definedness_hash_entry *)
bfd_hash_lookup (&definedness_table, name, FALSE, FALSE));
}
 
/* Update the definedness state of NAME. Return FALSE if script symbol
is multiply defining a strong symbol in an object. */
 
static bfd_boolean
update_definedness (const char *name, struct bfd_link_hash_entry *h)
{
bfd_boolean ret;
struct definedness_hash_entry *defentry
= (struct definedness_hash_entry *)
bfd_hash_lookup (&definedness_table, name, TRUE, FALSE);
 
if (defentry == NULL)
einfo (_("%P%F: bfd_hash_lookup failed creating symbol %s\n"), name);
 
/* If the symbol was already defined, and not by a script, then it
must be defined by an object file or by the linker target code. */
ret = TRUE;
if (!defentry->by_script
&& (h->type == bfd_link_hash_defined
|| h->type == bfd_link_hash_defweak
|| h->type == bfd_link_hash_common))
{
defentry->by_object = 1;
if (h->type == bfd_link_hash_defined
&& h->u.def.section->output_section != NULL
&& !h->linker_def)
ret = FALSE;
}
 
defentry->by_script = 1;
defentry->iteration = lang_statement_iteration;
defentry->final_sec = bfd_abs_section_ptr;
if (expld.phase == lang_final_phase_enum
&& expld.rel_from_abs
&& expld.result.section == bfd_abs_section_ptr)
defentry->final_sec = section_for_dot ();
return ret;
}
 
static void
fold_unary (etree_type *tree)
{
592,6 → 494,7
else if (expld.dataseg.phase == exp_dataseg_none)
{
expld.dataseg.phase = exp_dataseg_align_seen;
expld.dataseg.min_base = expld.dot;
expld.dataseg.base = expld.result.value;
expld.dataseg.pagesize = commonpage;
expld.dataseg.maxpagesize = maxpage;
604,10 → 507,7
break;
 
case DATA_SEGMENT_RELRO_END:
/* Operands swapped! DATA_SEGMENT_RELRO_END(offset,exp)
has offset in expld.result and exp in lhs. */
expld.dataseg.relro = exp_dataseg_relro_end;
expld.dataseg.relro_offset = expld.result.value;
if (expld.phase == lang_first_phase_enum
|| expld.section != bfd_abs_section_ptr)
expld.result.valid_p = FALSE;
675,10 → 575,13
break;
 
case DEFINED:
if (expld.phase != lang_first_phase_enum)
if (expld.phase == lang_first_phase_enum)
lang_track_definedness (tree->name.name);
else
{
struct bfd_link_hash_entry *h;
struct definedness_hash_entry *def;
int def_iteration
= lang_symbol_definition_iteration (tree->name.name);
 
h = bfd_wrapped_link_hash_lookup (link_info.output_bfd,
&link_info,
688,9 → 591,8
&& (h->type == bfd_link_hash_defined
|| h->type == bfd_link_hash_defweak
|| h->type == bfd_link_hash_common)
&& ((def = symbol_defined (tree->name.name)) == NULL
|| def->by_object
|| def->iteration == (lang_statement_iteration & 1)));
&& (def_iteration == lang_statement_iteration
|| def_iteration == -1));
}
break;
 
697,24 → 599,7
case NAME:
if (expld.assign_name != NULL
&& strcmp (expld.assign_name, tree->name.name) == 0)
{
/* Self-assignment is only allowed for absolute symbols
defined in a linker script. */
struct bfd_link_hash_entry *h;
struct definedness_hash_entry *def;
 
h = bfd_wrapped_link_hash_lookup (link_info.output_bfd,
&link_info,
tree->name.name,
FALSE, FALSE, TRUE);
if (!(h != NULL
&& (h->type == bfd_link_hash_defined
|| h->type == bfd_link_hash_defweak)
&& h->u.def.section == bfd_abs_section_ptr
&& (def = symbol_defined (tree->name.name)) != NULL
&& def->iteration == (lang_statement_iteration & 1)))
expld.assign_name = NULL;
}
if (expld.phase == lang_first_phase_enum)
;
else if (tree->name.name[0] == '.' && tree->name.name[1] == 0)
847,8 → 732,6
 
case LENGTH:
{
if (expld.phase != lang_first_phase_enum)
{
lang_memory_region_type *mem;
 
mem = lang_memory_region_lookup (tree->name.name, FALSE);
859,7 → 742,6
" referenced in expression\n"),
tree, tree->name.name);
}
}
break;
 
case ORIGIN:
893,107 → 775,7
}
}
 
/* Return true if TREE is '.'. */
 
static bfd_boolean
is_dot (const etree_type *tree)
{
return (tree->type.node_class == etree_name
&& tree->type.node_code == NAME
&& tree->name.name[0] == '.'
&& tree->name.name[1] == 0);
}
 
/* Return true if TREE is a constant equal to VAL. */
 
static bfd_boolean
is_value (const etree_type *tree, bfd_vma val)
{
return (tree->type.node_class == etree_value
&& tree->value.value == val);
}
 
/* Return true if TREE is an absolute symbol equal to VAL defined in
a linker script. */
 
static bfd_boolean
is_sym_value (const etree_type *tree, bfd_vma val)
{
struct bfd_link_hash_entry *h;
struct definedness_hash_entry *def;
 
return (tree->type.node_class == etree_name
&& tree->type.node_code == NAME
&& (def = symbol_defined (tree->name.name)) != NULL
&& def->by_script
&& def->iteration == (lang_statement_iteration & 1)
&& (h = bfd_wrapped_link_hash_lookup (link_info.output_bfd,
&link_info,
tree->name.name,
FALSE, FALSE, TRUE)) != NULL
&& h->type == bfd_link_hash_defined
&& h->u.def.section == bfd_abs_section_ptr
&& h->u.def.value == val);
}
 
/* Return true if TREE is ". != 0". */
 
static bfd_boolean
is_dot_ne_0 (const etree_type *tree)
{
return (tree->type.node_class == etree_binary
&& tree->type.node_code == NE
&& is_dot (tree->binary.lhs)
&& is_value (tree->binary.rhs, 0));
}
 
/* Return true if TREE is ". = . + 0" or ". = . + sym" where sym is an
absolute constant with value 0 defined in a linker script. */
 
static bfd_boolean
is_dot_plus_0 (const etree_type *tree)
{
return (tree->type.node_class == etree_binary
&& tree->type.node_code == '+'
&& is_dot (tree->binary.lhs)
&& (is_value (tree->binary.rhs, 0)
|| is_sym_value (tree->binary.rhs, 0)));
}
 
/* Return true if TREE is "ALIGN (. != 0 ? some_expression : 1)". */
 
static bfd_boolean
is_align_conditional (const etree_type *tree)
{
if (tree->type.node_class == etree_unary
&& tree->type.node_code == ALIGN_K)
{
tree = tree->unary.child;
return (tree->type.node_class == etree_trinary
&& is_dot_ne_0 (tree->trinary.cond)
&& is_value (tree->trinary.rhs, 1));
}
return FALSE;
}
 
/* Subroutine of exp_fold_tree_1 for copying a symbol type. */
 
static void
try_copy_symbol_type (struct bfd_link_hash_entry * h, etree_type *src)
{
if (src->type.node_class == etree_name)
{
struct bfd_link_hash_entry *hsrc;
 
hsrc = bfd_link_hash_lookup (link_info.hash, src->name.name,
FALSE, FALSE, TRUE);
if (hsrc)
bfd_copy_link_hash_symbol_type (link_info.output_bfd, h,
hsrc);
}
}
 
static void
exp_fold_tree_1 (etree_type *tree)
{
if (tree == NULL)
1057,25 → 839,6
exp_fold_tree_1 (tree->assign.src);
expld.assigning_to_dot = FALSE;
 
/* If we are assigning to dot inside an output section
arrange to keep the section, except for certain
expressions that evaluate to zero. We ignore . = 0,
. = . + 0, and . = ALIGN (. != 0 ? expr : 1).
We can't ignore all expressions that evaluate to zero
because an otherwise empty section might have padding
added by an alignment expression that changes with
relaxation. Such a section might have zero size
before relaxation and so be stripped incorrectly. */
if (expld.phase == lang_mark_phase_enum
&& expld.section != bfd_abs_section_ptr
&& !(expld.result.valid_p
&& expld.result.value == 0
&& (is_value (tree->assign.src, 0)
|| is_sym_value (tree->assign.src, 0)
|| is_dot_plus_0 (tree->assign.src)
|| is_align_conditional (tree->assign.src))))
expld.section->flags |= SEC_KEEP;
 
if (!expld.result.valid_p)
{
if (expld.phase != lang_mark_phase_enum)
1124,16 → 887,12
h = bfd_link_hash_lookup (link_info.hash, tree->assign.dst,
FALSE, FALSE, TRUE);
if (h == NULL
|| !(h->type == bfd_link_hash_new
|| h->type == bfd_link_hash_undefined
|| h->type == bfd_link_hash_undefweak
|| h->linker_def))
|| (h->type != bfd_link_hash_new
&& h->type != bfd_link_hash_undefined
&& h->type != bfd_link_hash_common))
{
/* Do nothing. The symbol was never referenced, or
was defined in some object file. Note that
undefweak symbols are defined by PROVIDE. This
is to support glibc use of __rela_iplt_start and
similar weak references. */
/* Do nothing. The symbol was never referenced, or was
defined by some object. */
break;
}
}
1165,48 → 924,32
tree->assign.dst);
}
 
/* FIXME: Should we worry if the symbol is already
defined? */
lang_update_definedness (tree->assign.dst, h);
h->type = bfd_link_hash_defined;
h->u.def.value = expld.result.value;
if (expld.result.section == NULL)
expld.result.section = expld.section;
if (!update_definedness (tree->assign.dst, h) && 0)
{
/* Symbol was already defined. For now this error
is disabled because it causes failures in the ld
testsuite: ld-elf/var1, ld-scripts/defined5, and
ld-scripts/pr14962. Some of these no doubt
reflect scripts used in the wild. */
(*link_info.callbacks->multiple_definition)
(&link_info, h, link_info.output_bfd,
expld.result.section, expld.result.value);
}
h->type = bfd_link_hash_defined;
h->u.def.value = expld.result.value;
h->u.def.section = expld.result.section;
h->linker_def = 0;
if (tree->type.node_class == etree_provide)
tree->type.node_class = etree_provided;
 
/* Copy the symbol type if this is a simple assignment of
one symbol to another. Also, handle the case of a foldable
ternary conditional with names on either side. */
one symbol to another. This could be more general
(e.g. a ?: operator with NAMEs in each branch). */
if (tree->assign.src->type.node_class == etree_name)
try_copy_symbol_type (h, tree->assign.src);
else if (tree->assign.src->type.node_class == etree_trinary)
{
exp_fold_tree_1 (tree->assign.src->trinary.cond);
if (expld.result.valid_p)
{
if (expld.result.value
&& tree->assign.src->trinary.lhs->type.node_class
== etree_name)
try_copy_symbol_type (h, tree->assign.src->trinary.lhs);
struct bfd_link_hash_entry *hsrc;
 
if (!expld.result.value
&& tree->assign.src->trinary.rhs->type.node_class
== etree_name)
try_copy_symbol_type (h, tree->assign.src->trinary.rhs);
hsrc = bfd_link_hash_lookup (link_info.hash,
tree->assign.src->name.name,
FALSE, FALSE, TRUE);
if (hsrc)
bfd_copy_link_hash_symbol_type (link_info.output_bfd, h,
hsrc);
}
}
}
else if (expld.phase == lang_final_phase_enum)
{
h = bfd_link_hash_lookup (link_info.hash, tree->assign.dst,
1233,7 → 976,6
void
exp_fold_tree (etree_type *tree, asection *current_section, bfd_vma *dotp)
{
expld.rel_from_abs = FALSE;
expld.dot = *dotp;
expld.dotp = dotp;
expld.section = current_section;
1243,7 → 985,6
void
exp_fold_tree_no_dot (etree_type *tree)
{
expld.rel_from_abs = FALSE;
expld.dot = 0;
expld.dotp = NULL;
expld.section = bfd_abs_section_ptr;
1614,51 → 1355,3
value = (value + align - 1) / align;
return value * align;
}
 
void
ldexp_init (void)
{
/* The value "13" is ad-hoc, somewhat related to the expected number of
assignments in a linker script. */
if (!bfd_hash_table_init_n (&definedness_table,
definedness_newfunc,
sizeof (struct definedness_hash_entry),
13))
einfo (_("%P%F: can not create hash table: %E\n"));
}
 
/* Convert absolute symbols defined by a script from "dot" (also
SEGMENT_START or ORIGIN) outside of an output section statement,
to section relative. */
 
static bfd_boolean
set_sym_sections (struct bfd_hash_entry *bh, void *inf ATTRIBUTE_UNUSED)
{
struct definedness_hash_entry *def = (struct definedness_hash_entry *) bh;
if (def->final_sec != bfd_abs_section_ptr)
{
struct bfd_link_hash_entry *h;
h = bfd_link_hash_lookup (link_info.hash, bh->string,
FALSE, FALSE, TRUE);
if (h != NULL
&& h->type == bfd_link_hash_defined
&& h->u.def.section == bfd_abs_section_ptr)
{
h->u.def.value -= def->final_sec->vma;
h->u.def.section = def->final_sec;
}
}
return TRUE;
}
 
void
ldexp_finalize_syms (void)
{
bfd_hash_traverse (&definedness_table, set_sym_sections, NULL);
}
 
void
ldexp_finish (void)
{
bfd_hash_table_free (&definedness_table);
}
/contrib/toolchain/binutils/ld/ldexp.h
1,5 → 1,6
/* ldexp.h -
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, 2002,
2003, 2004, 2005, 2007, 2011, 2012 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
138,14 → 139,6
 
/* Principally used for diagnostics. */
bfd_boolean assigning_to_dot;
 
/* Set if the current expression used "dot", SEGMENT_START or
ORIGIN, but not ABSOLUTE or combined symbols in a way that forces
an absolute result. Used in tracking symbols assigned from dot
outside of output section statements, in order to later convert
them from absolute. */
bfd_boolean rel_from_abs;
 
/* If evaluating an assignment, the destination. Cleared if an
etree_name NAME matches this, to signal a self-assignment.
Note that an etree_name DEFINED does not clear this field, nor
164,7 → 157,7
struct {
enum phase_enum phase;
 
bfd_vma base, relro_offset, relro_end, end, pagesize, maxpagesize;
bfd_vma base, min_base, relro_end, end, pagesize, maxpagesize;
 
enum relro_enum relro;
 
229,8 → 222,5
(etree_type *, fill_type *, char *);
bfd_vma exp_get_abs_int
(etree_type *, int, char *);
void ldexp_init (void);
void ldexp_finalize_syms (void);
void ldexp_finish (void);
 
#endif
/contrib/toolchain/binutils/ld/ldfile.h
1,5 → 1,6
/* ldfile.h -
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991, 1992, 1993, 1994, 1995, 2000, 2002, 2003, 2004, 2005,
2007, 2012 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
/contrib/toolchain/binutils/ld/ldgram.c
1,13 → 1,14
/* A Bison parser, made by GNU Bison 3.0. */
/* A Bison parser, made by GNU Bison 2.3. */
 
/* Bison implementation for Yacc-like parsers in C
/* Skeleton implementation for Bison's Yacc-like parsers in C
 
Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
 
This program is free software: you can redistribute it and/or modify
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
the Free Software Foundation; either version 2, or (at your option)
any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
15,7 → 16,9
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
 
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
44,7 → 47,7
#define YYBISON 1
 
/* Bison version. */
#define YYBISON_VERSION "3.0"
#define YYBISON_VERSION "2.3"
 
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
52,109 → 55,36
/* Pure parsers. */
#define YYPURE 0
 
/* Push parsers. */
#define YYPUSH 0
/* Using locations. */
#define YYLSP_NEEDED 0
 
/* Pull parsers. */
#define YYPULL 1
 
 
 
 
/* Copy the first part of user declarations. */
#line 22 "ldgram.y" /* yacc.c:339 */
 
/*
 
*/
 
#define DONTDECLARE_MALLOC
 
#include "sysdep.h"
#include "bfd.h"
#include "bfdlink.h"
#include "ld.h"
#include "ldexp.h"
#include "ldver.h"
#include "ldlang.h"
#include "ldfile.h"
#include "ldemul.h"
#include "ldmisc.h"
#include "ldmain.h"
#include "mri.h"
#include "ldctor.h"
#include "ldlex.h"
 
#ifndef YYDEBUG
#define YYDEBUG 1
#endif
 
static enum section_type sectype;
static lang_memory_region_type *region;
 
bfd_boolean ldgram_had_keep = FALSE;
char *ldgram_vers_current_lang = NULL;
 
#define ERROR_NAME_MAX 20
static char *error_names[ERROR_NAME_MAX];
static int error_index;
#define PUSH_ERROR(x) if (error_index < ERROR_NAME_MAX) error_names[error_index] = x; error_index++;
#define POP_ERROR() error_index--;
 
#line 105 "ldgram.c" /* yacc.c:339 */
 
# ifndef YY_NULL
# if defined __cplusplus && 201103L <= __cplusplus
# define YY_NULL nullptr
# else
# define YY_NULL 0
# endif
# endif
 
/* Enabling verbose error messages. */
#ifdef YYERROR_VERBOSE
# undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1
#else
# define YYERROR_VERBOSE 0
#endif
 
/* In a future release of Bison, this section will be replaced
by #include "y.tab.h". */
#ifndef YY_YY_LDGRAM_H_INCLUDED
# define YY_YY_LDGRAM_H_INCLUDED
/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#if YYDEBUG
extern int yydebug;
#endif
 
/* Token type. */
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
enum yytokentype
{
/* Put the tokens into the symbol table, so that GDB and other debuggers
know about them. */
enum yytokentype {
INT = 258,
NAME = 259,
LNAME = 260,
PLUSEQ = 261,
MINUSEQ = 262,
MULTEQ = 263,
DIVEQ = 264,
LSHIFTEQ = 265,
RSHIFTEQ = 266,
ANDEQ = 267,
OREQ = 268,
OREQ = 261,
ANDEQ = 262,
RSHIFTEQ = 263,
LSHIFTEQ = 264,
DIVEQ = 265,
MULTEQ = 266,
MINUSEQ = 267,
PLUSEQ = 268,
OROR = 269,
ANDAND = 270,
EQ = 271,
NE = 272,
LE = 273,
GE = 274,
LSHIFT = 275,
RSHIFT = 276,
NE = 271,
EQ = 272,
GE = 273,
LE = 274,
RSHIFT = 275,
LSHIFT = 276,
UNARY = 277,
END = 278,
ALIGN_K = 279,
270,22 → 200,22
#define INT 258
#define NAME 259
#define LNAME 260
#define PLUSEQ 261
#define MINUSEQ 262
#define MULTEQ 263
#define DIVEQ 264
#define LSHIFTEQ 265
#define RSHIFTEQ 266
#define ANDEQ 267
#define OREQ 268
#define OREQ 261
#define ANDEQ 262
#define RSHIFTEQ 263
#define LSHIFTEQ 264
#define DIVEQ 265
#define MULTEQ 266
#define MINUSEQ 267
#define PLUSEQ 268
#define OROR 269
#define ANDAND 270
#define EQ 271
#define NE 272
#define LE 273
#define GE 274
#define LSHIFT 275
#define RSHIFT 276
#define NE 271
#define EQ 272
#define GE 273
#define LE 274
#define RSHIFT 275
#define LSHIFT 276
#define UNARY 277
#define END 278
#define ALIGN_K 279
396,13 → 326,72
#define CONSTANT 384
#define INPUT_DYNAMIC_LIST 385
 
/* Value type. */
 
 
 
/* Copy the first part of user declarations. */
#line 22 "ldgram.y"
 
/*
 
*/
 
#define DONTDECLARE_MALLOC
 
#include "sysdep.h"
#include "bfd.h"
#include "bfdlink.h"
#include "ld.h"
#include "ldexp.h"
#include "ldver.h"
#include "ldlang.h"
#include "ldfile.h"
#include "ldemul.h"
#include "ldmisc.h"
#include "ldmain.h"
#include "mri.h"
#include "ldctor.h"
#include "ldlex.h"
 
#ifndef YYDEBUG
#define YYDEBUG 1
#endif
 
static enum section_type sectype;
static lang_memory_region_type *region;
 
bfd_boolean ldgram_had_keep = FALSE;
char *ldgram_vers_current_lang = NULL;
 
#define ERROR_NAME_MAX 20
static char *error_names[ERROR_NAME_MAX];
static int error_index;
#define PUSH_ERROR(x) if (error_index < ERROR_NAME_MAX) error_names[error_index] = x; error_index++;
#define POP_ERROR() error_index--;
 
 
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
 
/* Enabling verbose error messages. */
#ifdef YYERROR_VERBOSE
# undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1
#else
# define YYERROR_VERBOSE 0
#endif
 
/* Enabling the token table. */
#ifndef YYTOKEN_TABLE
# define YYTOKEN_TABLE 0
#endif
 
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE YYSTYPE;
union YYSTYPE
typedef union YYSTYPE
#line 60 "ldgram.y"
{
#line 60 "ldgram.y" /* yacc.c:355 */
 
bfd_vma integer;
struct big_int
{
431,24 → 420,23
struct bfd_elf_version_deps *deflist;
struct bfd_elf_version_expr *versyms;
struct bfd_elf_version_tree *versnode;
 
#line 436 "ldgram.c" /* yacc.c:355 */
};
}
/* Line 193 of yacc.c. */
#line 426 "ldgram.c"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
#endif
 
 
extern YYSTYPE yylval;
 
int yyparse (void);
/* Copy the second part of user declarations. */
 
#endif /* !YY_YY_LDGRAM_H_INCLUDED */
 
/* Copy the second part of user declarations. */
/* Line 216 of yacc.c. */
#line 439 "ldgram.c"
 
#line 451 "ldgram.c" /* yacc.c:358 */
 
#ifdef short
# undef short
#endif
461,8 → 449,11
 
#ifdef YYTYPE_INT8
typedef YYTYPE_INT8 yytype_int8;
#elif (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
typedef signed char yytype_int8;
#else
typedef signed char yytype_int8;
typedef short int yytype_int8;
#endif
 
#ifdef YYTYPE_UINT16
482,7 → 473,8
# define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
# define YYSIZE_T size_t
# elif ! defined YYSIZE_T
# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# else
496,49 → 488,39
# if defined YYENABLE_NLS && YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
# define YY_(msgid) dgettext ("bison-runtime", msgid)
# endif
# endif
# ifndef YY_
# define YY_(Msgid) Msgid
# define YY_(msgid) msgid
# endif
#endif
 
#ifndef __attribute__
/* This feature is available in gcc versions 2.5 and later. */
# if (! defined __GNUC__ || __GNUC__ < 2 \
|| (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
# define __attribute__(Spec) /* empty */
# endif
#endif
 
/* Suppress unused-variable warnings by "using" E. */
#if ! defined lint || defined __GNUC__
# define YYUSE(E) ((void) (E))
# define YYUSE(e) ((void) (e))
#else
# define YYUSE(E) /* empty */
# define YYUSE(e) /* empty */
#endif
 
#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
_Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
_Pragma ("GCC diagnostic pop")
/* Identity function, used to suppress warnings about constant conditions. */
#ifndef lint
# define YYID(n) (n)
#else
# define YY_INITIAL_VALUE(Value) Value
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static int
YYID (int i)
#else
static int
YYID (i)
int i;
#endif
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
{
return i;
}
#endif
#ifndef YY_INITIAL_VALUE
# define YY_INITIAL_VALUE(Value) /* Nothing. */
#endif
 
 
#if ! defined yyoverflow || YYERROR_VERBOSE
 
/* The parser invokes alloca or malloc; define the necessary symbols. */
556,11 → 538,11
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
/* Use EXIT_SUCCESS as a witness for stdlib.h. */
# ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0
# ifndef _STDLIB_H
# define _STDLIB_H 1
# endif
# endif
# endif
568,8 → 550,8
# endif
 
# ifdef YYSTACK_ALLOC
/* Pacify GCC's 'empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
/* Pacify GCC's `empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
# ifndef YYSTACK_ALLOC_MAXIMUM
/* The OS might guarantee only one guard page at the bottom of the stack,
and a page size can be as small as 4096 bytes. So we cannot safely
583,23 → 565,25
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
# if (defined __cplusplus && ! defined EXIT_SUCCESS \
# if (defined __cplusplus && ! defined _STDLIB_H \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0
# ifndef _STDLIB_H
# define _STDLIB_H 1
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
# if ! defined malloc && ! defined EXIT_SUCCESS
# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
# if ! defined free && ! defined EXIT_SUCCESS
# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
614,8 → 598,8
/* A type that is properly aligned for any stack member. */
union yyalloc
{
yytype_int16 yyss_alloc;
YYSTYPE yyvs_alloc;
yytype_int16 yyss;
YYSTYPE yyvs;
};
 
/* The size of the maximum gap between one aligned stack and the next. */
627,7 → 611,23
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
 
# define YYCOPY_NEEDED 1
/* Copy COUNT objects from FROM to TO. The source and destination do
not overlap. */
# ifndef YYCOPY
# if defined __GNUC__ && 1 < __GNUC__
# define YYCOPY(To, From, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# else
# define YYCOPY(To, From, Count) \
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
while (YYID (0))
# endif
# endif
 
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
634,55 → 634,34
elements in the stack, and YYPTR gives the new location of the
stack. Advance YYPTR to a properly aligned location for the next
stack. */
# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
# define YYSTACK_RELOCATE(Stack) \
do \
{ \
YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
Stack = &yyptr->Stack_alloc; \
YYCOPY (&yyptr->Stack, Stack, yysize); \
Stack = &yyptr->Stack; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (0)
while (YYID (0))
 
#endif
 
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
/* Copy COUNT objects from SRC to DST. The source and destination do
not overlap. */
# ifndef YYCOPY
# if defined __GNUC__ && 1 < __GNUC__
# define YYCOPY(Dst, Src, Count) \
__builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
# else
# define YYCOPY(Dst, Src, Count) \
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(Dst)[yyi] = (Src)[yyi]; \
} \
while (0)
# endif
# endif
#endif /* !YYCOPY_NEEDED */
 
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 17
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 1915
#define YYLAST 1999
 
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 154
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 131
#define YYNNTS 129
/* YYNRULES -- Number of rules. */
#define YYNRULES 371
/* YYNSTATES -- Number of states. */
#define YYNSTATES 805
#define YYNRULES 369
/* YYNRULES -- Number of states. */
#define YYNSTATES 803
 
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 385
 
689,8 → 668,7
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
as returned by yylex, without out-of-bounds checking. */
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
static const yytype_uint8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
699,7 → 677,7
2, 2, 2, 152, 2, 2, 2, 34, 21, 2,
37, 149, 32, 30, 147, 31, 2, 33, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 16, 148,
24, 10, 25, 15, 2, 2, 2, 2, 2, 2,
24, 6, 25, 15, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 150, 2, 151, 20, 2, 2, 2, 2, 2,
719,7 → 697,7
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
5, 6, 7, 8, 9, 11, 12, 13, 14, 17,
5, 7, 8, 9, 10, 11, 12, 13, 14, 17,
18, 22, 23, 26, 27, 28, 29, 35, 36, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 60,
735,7 → 713,184
};
 
#if YYDEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
YYRHS. */
static const yytype_uint16 yyprhs[] =
{
0, 0, 3, 6, 9, 12, 15, 18, 20, 21,
26, 27, 30, 34, 35, 38, 43, 45, 47, 50,
52, 57, 62, 66, 69, 74, 78, 83, 88, 93,
98, 103, 106, 109, 112, 117, 122, 125, 128, 131,
134, 135, 141, 144, 145, 149, 152, 153, 155, 159,
161, 165, 166, 168, 172, 173, 176, 178, 181, 185,
186, 189, 192, 193, 195, 197, 199, 201, 203, 205,
207, 209, 211, 213, 218, 223, 228, 233, 242, 247,
249, 251, 256, 257, 263, 268, 269, 275, 280, 285,
289, 293, 300, 305, 307, 311, 314, 316, 320, 323,
324, 330, 331, 339, 340, 347, 352, 355, 358, 359,
364, 367, 368, 376, 378, 380, 382, 384, 390, 395,
400, 405, 413, 421, 429, 437, 446, 451, 453, 457,
462, 465, 467, 471, 473, 475, 478, 482, 487, 492,
498, 500, 501, 507, 510, 512, 514, 516, 521, 523,
528, 533, 534, 543, 544, 550, 553, 555, 556, 558,
560, 562, 564, 566, 568, 570, 573, 574, 576, 578,
580, 582, 584, 586, 588, 590, 592, 594, 598, 602,
609, 616, 623, 625, 626, 631, 633, 634, 638, 640,
641, 649, 650, 656, 660, 664, 665, 669, 671, 674,
676, 679, 684, 689, 693, 697, 699, 704, 708, 709,
711, 713, 714, 717, 721, 722, 725, 728, 732, 737,
740, 743, 746, 750, 754, 758, 762, 766, 770, 774,
778, 782, 786, 790, 794, 798, 802, 806, 810, 816,
820, 824, 829, 831, 833, 838, 843, 848, 853, 858,
863, 868, 875, 882, 889, 894, 901, 906, 908, 915,
922, 929, 934, 939, 944, 948, 949, 954, 955, 960,
961, 963, 964, 969, 970, 972, 974, 976, 977, 978,
979, 980, 981, 982, 1003, 1004, 1005, 1006, 1007, 1008,
1027, 1028, 1029, 1037, 1038, 1044, 1046, 1048, 1050, 1052,
1054, 1058, 1059, 1062, 1066, 1069, 1076, 1087, 1090, 1092,
1093, 1095, 1098, 1099, 1100, 1104, 1105, 1106, 1107, 1108,
1120, 1125, 1126, 1129, 1130, 1131, 1138, 1140, 1141, 1145,
1151, 1152, 1156, 1157, 1160, 1162, 1165, 1170, 1173, 1174,
1177, 1178, 1184, 1186, 1189, 1194, 1200, 1207, 1209, 1212,
1213, 1216, 1221, 1226, 1235, 1237, 1239, 1243, 1247, 1248,
1258, 1259, 1267, 1269, 1273, 1275, 1279, 1281, 1285, 1286
};
 
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
155, 0, -1, 126, 171, -1, 127, 159, -1, 137,
271, -1, 146, 266, -1, 128, 157, -1, 4, -1,
-1, 158, 4, 6, 226, -1, -1, 160, 161, -1,
161, 162, 113, -1, -1, 108, 226, -1, 108, 226,
147, 226, -1, 4, -1, 109, -1, 115, 164, -1,
114, -1, 120, 4, 6, 226, -1, 120, 4, 147,
226, -1, 120, 4, 226, -1, 119, 4, -1, 110,
4, 147, 226, -1, 110, 4, 226, -1, 110, 4,
6, 226, -1, 38, 4, 6, 226, -1, 38, 4,
147, 226, -1, 101, 4, 6, 226, -1, 101, 4,
147, 226, -1, 111, 166, -1, 112, 165, -1, 116,
4, -1, 123, 4, 147, 4, -1, 123, 4, 147,
3, -1, 122, 226, -1, 124, 3, -1, 129, 167,
-1, 130, 168, -1, -1, 66, 156, 163, 161, 36,
-1, 131, 4, -1, -1, 164, 147, 4, -1, 164,
4, -1, -1, 4, -1, 165, 147, 4, -1, 4,
-1, 166, 147, 4, -1, -1, 4, -1, 167, 147,
4, -1, -1, 169, 170, -1, 4, -1, 170, 4,
-1, 170, 147, 4, -1, -1, 172, 173, -1, 173,
174, -1, -1, 206, -1, 181, -1, 258, -1, 217,
-1, 218, -1, 220, -1, 222, -1, 183, -1, 273,
-1, 148, -1, 76, 37, 4, 149, -1, 77, 37,
156, 149, -1, 99, 37, 156, 149, -1, 61, 37,
4, 149, -1, 61, 37, 4, 147, 4, 147, 4,
149, -1, 63, 37, 4, 149, -1, 62, -1, 64,
-1, 97, 37, 177, 149, -1, -1, 98, 175, 37,
177, 149, -1, 78, 37, 156, 149, -1, -1, 66,
156, 176, 173, 36, -1, 92, 37, 223, 149, -1,
130, 37, 168, 149, -1, 48, 49, 4, -1, 48,
50, 4, -1, 68, 37, 4, 147, 4, 149, -1,
69, 37, 4, 149, -1, 4, -1, 177, 147, 4,
-1, 177, 4, -1, 5, -1, 177, 147, 5, -1,
177, 5, -1, -1, 107, 37, 178, 177, 149, -1,
-1, 177, 147, 107, 37, 179, 177, 149, -1, -1,
177, 107, 37, 180, 177, 149, -1, 46, 58, 182,
59, -1, 182, 233, -1, 182, 183, -1, -1, 79,
37, 4, 149, -1, 204, 203, -1, -1, 117, 184,
37, 226, 147, 4, 149, -1, 4, -1, 32, -1,
15, -1, 185, -1, 144, 37, 189, 149, 185, -1,
54, 37, 185, 149, -1, 55, 37, 185, 149, -1,
56, 37, 185, 149, -1, 54, 37, 55, 37, 185,
149, 149, -1, 54, 37, 54, 37, 185, 149, 149,
-1, 55, 37, 54, 37, 185, 149, 149, -1, 55,
37, 55, 37, 185, 149, 149, -1, 54, 37, 144,
37, 189, 149, 185, 149, -1, 57, 37, 185, 149,
-1, 4, -1, 187, 21, 4, -1, 142, 37, 187,
149, -1, 189, 185, -1, 185, -1, 190, 205, 186,
-1, 186, -1, 4, -1, 188, 4, -1, 150, 190,
151, -1, 188, 150, 190, 151, -1, 186, 37, 190,
149, -1, 188, 186, 37, 190, 149, -1, 191, -1,
-1, 138, 37, 193, 191, 149, -1, 204, 203, -1,
96, -1, 148, -1, 100, -1, 54, 37, 100, 149,
-1, 192, -1, 199, 37, 224, 149, -1, 94, 37,
200, 149, -1, -1, 117, 195, 37, 226, 147, 4,
149, 203, -1, -1, 66, 156, 196, 198, 36, -1,
197, 194, -1, 194, -1, -1, 197, -1, 41, -1,
42, -1, 43, -1, 44, -1, 45, -1, 224, -1,
6, 200, -1, -1, 14, -1, 13, -1, 12, -1,
11, -1, 10, -1, 9, -1, 8, -1, 7, -1,
148, -1, 147, -1, 4, 6, 224, -1, 4, 202,
224, -1, 104, 37, 4, 6, 224, 149, -1, 105,
37, 4, 6, 224, 149, -1, 106, 37, 4, 6,
224, 149, -1, 147, -1, -1, 67, 58, 207, 59,
-1, 208, -1, -1, 208, 205, 209, -1, 209, -1,
-1, 4, 210, 214, 16, 212, 205, 213, -1, -1,
66, 156, 211, 207, 36, -1, 93, 6, 224, -1,
95, 6, 224, -1, -1, 37, 215, 149, -1, 216,
-1, 215, 216, -1, 4, -1, 152, 4, -1, 87,
37, 156, 149, -1, 88, 37, 219, 149, -1, 88,
37, 149, -1, 219, 205, 156, -1, 156, -1, 89,
37, 221, 149, -1, 221, 205, 156, -1, -1, 90,
-1, 91, -1, -1, 4, 223, -1, 4, 147, 223,
-1, -1, 225, 226, -1, 31, 226, -1, 37, 226,
149, -1, 80, 37, 226, 149, -1, 152, 226, -1,
30, 226, -1, 153, 226, -1, 226, 32, 226, -1,
226, 33, 226, -1, 226, 34, 226, -1, 226, 30,
226, -1, 226, 31, 226, -1, 226, 29, 226, -1,
226, 28, 226, -1, 226, 23, 226, -1, 226, 22,
226, -1, 226, 27, 226, -1, 226, 26, 226, -1,
226, 24, 226, -1, 226, 25, 226, -1, 226, 21,
226, -1, 226, 20, 226, -1, 226, 19, 226, -1,
226, 15, 226, 16, 226, -1, 226, 18, 226, -1,
226, 17, 226, -1, 75, 37, 4, 149, -1, 3,
-1, 60, -1, 82, 37, 4, 149, -1, 81, 37,
4, 149, -1, 83, 37, 4, 149, -1, 84, 37,
4, 149, -1, 145, 37, 4, 149, -1, 111, 37,
226, 149, -1, 38, 37, 226, 149, -1, 38, 37,
226, 147, 226, 149, -1, 51, 37, 226, 147, 226,
149, -1, 52, 37, 226, 147, 226, 149, -1, 53,
37, 226, 149, -1, 65, 37, 4, 147, 226, 149,
-1, 39, 37, 226, 149, -1, 4, -1, 85, 37,
226, 147, 226, 149, -1, 86, 37, 226, 147, 226,
149, -1, 117, 37, 226, 147, 4, 149, -1, 93,
37, 4, 149, -1, 95, 37, 4, 149, -1, 118,
37, 226, 149, -1, 102, 25, 4, -1, -1, 102,
37, 226, 149, -1, -1, 38, 37, 226, 149, -1,
-1, 143, -1, -1, 103, 37, 226, 149, -1, -1,
139, -1, 140, -1, 141, -1, -1, -1, -1, -1,
-1, -1, 4, 234, 249, 228, 229, 230, 231, 235,
232, 58, 236, 198, 59, 237, 252, 227, 253, 201,
238, 205, -1, -1, -1, -1, -1, -1, 74, 239,
250, 251, 228, 231, 240, 58, 241, 254, 59, 242,
252, 227, 253, 201, 243, 205, -1, -1, -1, 98,
244, 249, 245, 58, 182, 59, -1, -1, 66, 156,
246, 182, 36, -1, 70, -1, 71, -1, 72, -1,
73, -1, 74, -1, 37, 247, 149, -1, -1, 37,
149, -1, 226, 248, 16, -1, 248, 16, -1, 40,
37, 226, 149, 248, 16, -1, 40, 37, 226, 149,
39, 37, 226, 149, 248, 16, -1, 226, 16, -1,
16, -1, -1, 92, -1, 25, 4, -1, -1, -1,
253, 16, 4, -1, -1, -1, -1, -1, 254, 4,
255, 58, 198, 59, 256, 253, 201, 257, 205, -1,
47, 58, 259, 59, -1, -1, 259, 260, -1, -1,
-1, 4, 261, 263, 264, 262, 148, -1, 226, -1,
-1, 4, 265, 264, -1, 102, 37, 226, 149, 264,
-1, -1, 37, 226, 149, -1, -1, 267, 268, -1,
269, -1, 268, 269, -1, 58, 270, 59, 148, -1,
279, 148, -1, -1, 272, 275, -1, -1, 274, 136,
58, 275, 59, -1, 276, -1, 275, 276, -1, 58,
278, 59, 148, -1, 132, 58, 278, 59, 148, -1,
132, 58, 278, 59, 277, 148, -1, 132, -1, 277,
132, -1, -1, 279, 148, -1, 134, 16, 279, 148,
-1, 135, 16, 279, 148, -1, 134, 16, 279, 148,
135, 16, 279, 148, -1, 133, -1, 4, -1, 279,
148, 133, -1, 279, 148, 4, -1, -1, 279, 148,
130, 4, 58, 280, 279, 282, 59, -1, -1, 130,
4, 58, 281, 279, 282, 59, -1, 134, -1, 279,
148, 134, -1, 135, -1, 279, 148, 135, -1, 130,
-1, 279, 148, 130, -1, -1, 148, -1
};
 
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
0, 166, 166, 167, 168, 169, 170, 174, 178, 178,
747,50 → 902,49
302, 308, 309, 314, 315, 316, 317, 318, 319, 320,
321, 322, 323, 324, 326, 328, 330, 333, 335, 337,
339, 341, 343, 342, 346, 349, 348, 352, 356, 357,
359, 361, 363, 368, 368, 373, 376, 379, 382, 385,
388, 392, 391, 397, 396, 402, 401, 409, 413, 414,
415, 419, 421, 422, 422, 430, 434, 438, 445, 452,
459, 466, 473, 480, 487, 494, 501, 508, 515, 524,
542, 563, 576, 585, 596, 605, 616, 625, 634, 638,
647, 651, 659, 661, 660, 667, 668, 672, 673, 678,
683, 684, 689, 693, 693, 697, 696, 703, 704, 707,
709, 713, 715, 717, 719, 721, 726, 733, 735, 739,
741, 743, 745, 747, 749, 751, 753, 758, 758, 763,
767, 775, 779, 783, 791, 791, 795, 798, 798, 801,
802, 807, 806, 812, 811, 818, 826, 834, 835, 839,
840, 844, 846, 851, 856, 857, 862, 864, 870, 872,
874, 878, 880, 886, 889, 898, 909, 909, 915, 917,
919, 921, 923, 925, 928, 930, 932, 934, 936, 938,
940, 942, 944, 946, 948, 950, 952, 954, 956, 958,
960, 962, 964, 966, 968, 970, 973, 975, 977, 979,
981, 983, 985, 987, 989, 991, 993, 995, 1004, 1006,
1008, 1010, 1012, 1014, 1016, 1018, 1024, 1025, 1029, 1030,
1034, 1035, 1039, 1040, 1044, 1045, 1049, 1050, 1051, 1052,
1055, 1060, 1063, 1069, 1071, 1055, 1078, 1080, 1082, 1087,
1089, 1077, 1099, 1101, 1099, 1107, 1106, 1113, 1114, 1115,
1116, 1117, 1121, 1122, 1123, 1127, 1128, 1133, 1134, 1139,
1140, 1145, 1146, 1151, 1153, 1158, 1161, 1174, 1178, 1183,
1185, 1176, 1193, 1196, 1198, 1202, 1203, 1202, 1212, 1257,
1260, 1273, 1282, 1285, 1292, 1292, 1304, 1305, 1309, 1313,
1322, 1322, 1336, 1336, 1346, 1347, 1351, 1355, 1359, 1366,
1370, 1378, 1381, 1385, 1389, 1393, 1400, 1404, 1408, 1412,
1417, 1416, 1430, 1429, 1439, 1443, 1447, 1451, 1455, 1459,
1465, 1467
359, 361, 363, 368, 371, 374, 377, 380, 383, 387,
386, 392, 391, 397, 396, 404, 408, 409, 410, 414,
416, 417, 417, 425, 429, 433, 440, 447, 454, 461,
468, 475, 482, 489, 496, 503, 510, 519, 537, 558,
571, 580, 591, 600, 611, 620, 629, 633, 642, 646,
654, 656, 655, 662, 663, 667, 668, 673, 678, 679,
684, 688, 688, 692, 691, 698, 699, 702, 704, 708,
710, 712, 714, 716, 721, 728, 730, 734, 736, 738,
740, 742, 744, 746, 748, 753, 753, 758, 762, 770,
774, 778, 786, 786, 790, 793, 793, 796, 797, 802,
801, 807, 806, 813, 821, 829, 830, 834, 835, 839,
841, 846, 851, 852, 857, 859, 865, 867, 869, 873,
875, 881, 884, 893, 904, 904, 910, 912, 914, 916,
918, 920, 923, 925, 927, 929, 931, 933, 935, 937,
939, 941, 943, 945, 947, 949, 951, 953, 955, 957,
959, 961, 963, 965, 968, 970, 972, 974, 976, 978,
980, 982, 984, 986, 988, 990, 999, 1001, 1003, 1005,
1007, 1009, 1011, 1013, 1019, 1020, 1024, 1025, 1029, 1030,
1034, 1035, 1039, 1040, 1044, 1045, 1046, 1047, 1050, 1055,
1058, 1064, 1066, 1050, 1073, 1075, 1077, 1082, 1084, 1072,
1094, 1096, 1094, 1102, 1101, 1108, 1109, 1110, 1111, 1112,
1116, 1117, 1118, 1122, 1123, 1128, 1129, 1134, 1135, 1140,
1141, 1146, 1148, 1153, 1156, 1169, 1173, 1178, 1180, 1171,
1188, 1191, 1193, 1197, 1198, 1197, 1207, 1252, 1255, 1268,
1277, 1280, 1287, 1287, 1299, 1300, 1304, 1308, 1317, 1317,
1331, 1331, 1341, 1342, 1346, 1350, 1354, 1361, 1365, 1373,
1376, 1380, 1384, 1388, 1395, 1399, 1403, 1407, 1412, 1411,
1425, 1424, 1434, 1438, 1442, 1446, 1450, 1454, 1460, 1462
};
#endif
 
#if YYDEBUG || YYERROR_VERBOSE || 0
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
"$end", "error", "$undefined", "INT", "NAME", "LNAME", "PLUSEQ",
"MINUSEQ", "MULTEQ", "DIVEQ", "'='", "LSHIFTEQ", "RSHIFTEQ", "ANDEQ",
"OREQ", "'?'", "':'", "OROR", "ANDAND", "'|'", "'^'", "'&'", "EQ", "NE",
"'<'", "'>'", "LE", "GE", "LSHIFT", "RSHIFT", "'+'", "'-'", "'*'", "'/'",
"'%'", "UNARY", "END", "'('", "ALIGN_K", "BLOCK", "BIND", "QUAD",
"SQUAD", "LONG", "SHORT", "BYTE", "SECTIONS", "PHDRS", "INSERT_K",
"AFTER", "BEFORE", "DATA_SEGMENT_ALIGN", "DATA_SEGMENT_RELRO_END",
"$end", "error", "$undefined", "INT", "NAME", "LNAME", "'='", "OREQ",
"ANDEQ", "RSHIFTEQ", "LSHIFTEQ", "DIVEQ", "MULTEQ", "MINUSEQ", "PLUSEQ",
"'?'", "':'", "OROR", "ANDAND", "'|'", "'^'", "'&'", "NE", "EQ", "'<'",
"'>'", "GE", "LE", "RSHIFT", "LSHIFT", "'+'", "'-'", "'*'", "'/'", "'%'",
"UNARY", "END", "'('", "ALIGN_K", "BLOCK", "BIND", "QUAD", "SQUAD",
"LONG", "SHORT", "BYTE", "SECTIONS", "PHDRS", "INSERT_K", "AFTER",
"BEFORE", "DATA_SEGMENT_ALIGN", "DATA_SEGMENT_RELRO_END",
"DATA_SEGMENT_END", "SORT_BY_NAME", "SORT_BY_ALIGNMENT", "SORT_NONE",
"SORT_BY_INIT_PRIORITY", "'{'", "'}'", "SIZEOF_HEADERS", "OUTPUT_FORMAT",
"FORCE_COMMON_ALLOCATION", "OUTPUT_ARCH", "INHIBIT_COMMON_ALLOCATION",
809,44 → 963,43
"INPUT_VERSION_SCRIPT", "KEEP", "ONLY_IF_RO", "ONLY_IF_RW", "SPECIAL",
"INPUT_SECTION_FLAGS", "ALIGN_WITH_INPUT", "EXCLUDE_FILE", "CONSTANT",
"INPUT_DYNAMIC_LIST", "','", "';'", "')'", "'['", "']'", "'!'", "'~'",
"$accept", "file", "filename", "defsym_expr", "$@1", "mri_script_file",
"$@2", "mri_script_lines", "mri_script_command", "$@3", "ordernamelist",
"$accept", "file", "filename", "defsym_expr", "@1", "mri_script_file",
"@2", "mri_script_lines", "mri_script_command", "@3", "ordernamelist",
"mri_load_name_list", "mri_abs_name_list", "casesymlist",
"extern_name_list", "$@4", "extern_name_list_body", "script_file", "$@5",
"ifile_list", "ifile_p1", "$@6", "$@7", "input_list", "$@8",
"input_list1", "@9", "@10", "@11", "sections", "sec_or_group_p1",
"statement_anywhere", "$@12", "wildcard_name", "wildcard_spec",
"sect_flag_list", "sect_flags", "exclude_name_list", "file_NAME_list",
"input_section_spec_no_keep", "input_section_spec", "$@13", "statement",
"$@14", "$@15", "statement_list", "statement_list_opt", "length",
"fill_exp", "fill_opt", "assign_op", "end", "assignment", "opt_comma",
"memory", "memory_spec_list_opt", "memory_spec_list", "memory_spec",
"$@16", "$@17", "origin_spec", "length_spec", "attributes_opt",
"attributes_list", "attributes_string", "startup", "high_level_library",
"high_level_library_NAME_list", "low_level_library",
"low_level_library_NAME_list", "floating_point_support",
"nocrossref_list", "mustbe_exp", "$@18", "exp", "memspec_at_opt",
"opt_at", "opt_align", "opt_align_with_input", "opt_subalign",
"sect_constraint", "section", "$@19", "$@20", "$@21", "$@22", "$@23",
"$@24", "$@25", "$@26", "$@27", "$@28", "$@29", "$@30", "$@31", "type",
"extern_name_list", "@4", "extern_name_list_body", "script_file", "@5",
"ifile_list", "ifile_p1", "@6", "@7", "input_list", "@8", "@9", "@10",
"sections", "sec_or_group_p1", "statement_anywhere", "@11",
"wildcard_name", "wildcard_spec", "sect_flag_list", "sect_flags",
"exclude_name_list", "file_NAME_list", "input_section_spec_no_keep",
"input_section_spec", "@12", "statement", "@13", "@14", "statement_list",
"statement_list_opt", "length", "fill_exp", "fill_opt", "assign_op",
"end", "assignment", "opt_comma", "memory", "memory_spec_list_opt",
"memory_spec_list", "memory_spec", "@15", "@16", "origin_spec",
"length_spec", "attributes_opt", "attributes_list", "attributes_string",
"startup", "high_level_library", "high_level_library_NAME_list",
"low_level_library", "low_level_library_NAME_list",
"floating_point_support", "nocrossref_list", "mustbe_exp", "@17", "exp",
"memspec_at_opt", "opt_at", "opt_align", "opt_align_with_input",
"opt_subalign", "sect_constraint", "section", "@18", "@19", "@20", "@21",
"@22", "@23", "@24", "@25", "@26", "@27", "@28", "@29", "@30", "type",
"atype", "opt_exp_with_type", "opt_exp_without_type", "opt_nocrossrefs",
"memspec_opt", "phdr_opt", "overlay_section", "$@32", "$@33", "$@34",
"phdrs", "phdr_list", "phdr", "$@35", "$@36", "phdr_type",
"phdr_qualifiers", "phdr_val", "dynamic_list_file", "$@37",
"memspec_opt", "phdr_opt", "overlay_section", "@31", "@32", "@33",
"phdrs", "phdr_list", "phdr", "@34", "@35", "phdr_type",
"phdr_qualifiers", "phdr_val", "dynamic_list_file", "@36",
"dynamic_list_nodes", "dynamic_list_node", "dynamic_list_tag",
"version_script_file", "$@38", "version", "$@39", "vers_nodes",
"vers_node", "verdep", "vers_tag", "vers_defns", "@40", "@41",
"opt_semicolon", YY_NULL
"version_script_file", "@37", "version", "@38", "vers_nodes",
"vers_node", "verdep", "vers_tag", "vers_defns", "@39", "@40",
"opt_semicolon", 0
};
#endif
 
# ifdef YYPRINT
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
(internal) symbol number NUM (which must be that of a token). */
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
token YYLEX-NUM. */
static const yytype_uint16 yytoknum[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
61, 265, 266, 267, 268, 63, 58, 269, 270, 124,
0, 256, 257, 258, 259, 260, 61, 261, 262, 263,
264, 265, 266, 267, 268, 63, 58, 269, 270, 124,
94, 38, 271, 272, 60, 62, 273, 274, 275, 276,
43, 45, 42, 47, 37, 277, 278, 40, 279, 280,
281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
864,622 → 1017,713
};
# endif
 
#define YYPACT_NINF -648
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint16 yyr1[] =
{
0, 154, 155, 155, 155, 155, 155, 156, 158, 157,
160, 159, 161, 161, 162, 162, 162, 162, 162, 162,
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
163, 162, 162, 162, 164, 164, 164, 165, 165, 166,
166, 167, 167, 167, 169, 168, 170, 170, 170, 172,
171, 173, 173, 174, 174, 174, 174, 174, 174, 174,
174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
174, 174, 175, 174, 174, 176, 174, 174, 174, 174,
174, 174, 174, 177, 177, 177, 177, 177, 177, 178,
177, 179, 177, 180, 177, 181, 182, 182, 182, 183,
183, 184, 183, 185, 185, 185, 186, 186, 186, 186,
186, 186, 186, 186, 186, 186, 186, 187, 187, 188,
189, 189, 190, 190, 191, 191, 191, 191, 191, 191,
192, 193, 192, 194, 194, 194, 194, 194, 194, 194,
194, 195, 194, 196, 194, 197, 197, 198, 198, 199,
199, 199, 199, 199, 200, 201, 201, 202, 202, 202,
202, 202, 202, 202, 202, 203, 203, 204, 204, 204,
204, 204, 205, 205, 206, 207, 207, 208, 208, 210,
209, 211, 209, 212, 213, 214, 214, 215, 215, 216,
216, 217, 218, 218, 219, 219, 220, 221, 221, 222,
222, 223, 223, 223, 225, 224, 226, 226, 226, 226,
226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
226, 226, 226, 226, 227, 227, 228, 228, 229, 229,
230, 230, 231, 231, 232, 232, 232, 232, 234, 235,
236, 237, 238, 233, 239, 240, 241, 242, 243, 233,
244, 245, 233, 246, 233, 247, 247, 247, 247, 247,
248, 248, 248, 249, 249, 249, 249, 250, 250, 251,
251, 252, 252, 253, 253, 254, 255, 256, 257, 254,
258, 259, 259, 261, 262, 260, 263, 264, 264, 264,
265, 265, 267, 266, 268, 268, 269, 270, 272, 271,
274, 273, 275, 275, 276, 276, 276, 277, 277, 278,
278, 278, 278, 278, 279, 279, 279, 279, 280, 279,
281, 279, 279, 279, 279, 279, 279, 279, 282, 282
};
 
#define yypact_value_is_default(Yystate) \
(!!((Yystate) == (-648)))
 
#define YYTABLE_NINF -343
 
#define yytable_value_is_error(Yytable_value) \
0
 
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
static const yytype_int16 yypact[] =
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
310, -648, -648, -648, -648, -648, 59, -648, -648, -648,
-648, -648, 62, -648, -11, -648, 23, -648, 856, 1654,
66, 219, 43, -11, -648, 234, 23, -648, 556, 60,
85, 76, 101, -648, 116, -648, 168, 134, 147, 188,
194, 211, 225, 229, 243, 253, 255, -648, -648, 272,
275, -648, 283, 285, 287, 288, -648, 290, -648, -648,
-648, -648, -1, -648, -648, -648, -648, -648, -648, -648,
193, -648, 327, 168, 328, 680, -648, 331, 333, 334,
-648, -648, 335, 336, 338, 680, 339, 344, 341, -648,
351, 249, 680, -648, 352, -648, 332, 347, 306, 222,
219, -648, -648, -648, 307, 244, -648, -648, -648, -648,
-648, -648, -648, -648, -648, -648, -648, -648, -648, 373,
379, 389, 397, -648, -648, 41, 398, 399, 400, 168,
168, 405, 168, 17, -648, 406, -648, 381, 168, 415,
420, 421, 390, -648, -648, -648, -648, 372, 9, -648,
29, -648, -648, 680, 680, 680, 394, 395, 396, 411,
422, -648, 424, 426, 428, 429, 432, 434, 435, 436,
438, 439, 440, 441, 442, 444, 445, 680, 680, 1463,
5, -648, 299, -648, 311, 28, -648, -648, 369, 1835,
337, -648, -648, 345, -648, 453, -648, -648, 1835, 425,
234, 234, 340, 241, 430, 346, 241, -648, 680, -648,
431, 45, -648, -648, -39, 350, -648, -648, 168, 437,
-6, -648, 348, 353, 354, 358, 359, 362, 366, -648,
-648, 93, 97, 30, 368, 370, 33, -648, 371, 475,
483, 490, 680, 377, -11, 680, 680, -648, 680, 680,
-648, -648, 864, 680, 680, 680, 680, 680, 497, 523,
680, 524, 526, 527, 528, 680, 680, 529, 530, 680,
680, 680, 534, -648, -648, 680, 680, 680, 680, 680,
680, 680, 680, 680, 680, 680, 680, 680, 680, 680,
680, 680, 680, 680, 680, 680, 680, 1835, 536, 537,
-648, 538, 680, 680, 1835, 185, 539, -648, 36, -648,
401, 402, -648, -648, 540, -648, -648, -648, -65, -648,
1835, 556, -648, 168, -648, -648, -648, -648, -648, -648,
-648, 541, -648, -648, 932, 510, -648, -648, -648, 41,
549, -648, -648, -648, -648, -648, -648, -648, 168, -648,
168, 406, -648, -648, -648, -648, -648, 517, 22, 407,
-648, -648, -648, -648, 1483, -648, -4, 1835, 1835, 1678,
1835, 1835, -648, 820, 1064, 1503, 1523, 1084, 410, 427,
1104, 433, 443, 446, 448, 1543, 1563, 459, 460, 1124,
1594, 1144, 461, 1795, 1852, 1044, 1867, 1881, 1177, 755,
755, 664, 664, 664, 664, 409, 409, 235, 235, -648,
-648, -648, 1835, 1835, 1835, -648, -648, -648, 1835, 1835,
-648, -648, -648, -648, 571, 234, 261, 241, 520, -648,
-648, -55, 521, -648, 596, 521, 680, 447, -648, 3,
561, 41, -648, 462, -648, -648, -648, -648, -648, -648,
542, 47, -648, 464, 466, 469, 576, -648, -648, 680,
-648, -648, 680, 680, -648, 680, -648, -648, -648, -648,
-648, -648, 680, 680, -648, -648, -648, 585, -648, -648,
680, -648, 471, 574, -648, -648, -648, 233, 554, 1706,
604, 535, -648, -648, 1815, 548, -648, 1835, 37, 617,
-648, 618, 12, -648, 557, 592, -648, 33, -648, -648,
-648, 593, -648, -648, -648, 480, 1164, 1197, 1217, 1237,
1257, 1277, 482, 1835, 241, 583, 234, 234, -648, -648,
-648, -648, -648, -648, 502, 680, 342, 637, -648, 620,
616, 519, -648, -648, 535, 597, 621, 622, -648, 511,
-648, -648, -648, 652, 516, -648, 92, 33, -648, -648,
-648, -648, -648, -648, -648, -648, -648, -648, 522, 471,
-648, 1297, -648, 680, 627, 525, -648, 562, -648, 680,
37, 680, 553, -648, -648, 572, -648, 126, 33, 241,
610, 218, 1330, 680, -648, 562, 635, -648, 1595, 1350,
-648, 1370, -648, -648, 665, -648, -648, 140, -648, 648,
672, -648, 1390, -648, 680, 632, -648, -648, 37, -648,
-648, 680, -648, -648, 156, 1410, -648, -648, -648, 1430,
-648, -648, -648, 645, -648, -648, 669, -648, 58, 692,
763, -648, -648, -648, 714, -648, -648, -648, -648, -648,
-648, -648, 675, 678, 693, 697, 168, 698, -648, -648,
-648, 699, 700, 701, -648, 245, -648, 702, 80, -648,
-648, -648, 763, 650, 705, -1, 685, 719, 326, 413,
67, 67, -648, -648, 710, -648, 746, 67, -648, 715,
-648, -27, 245, 716, 245, 717, -648, -648, -648, -648,
763, 752, 655, 721, 722, 619, 732, 623, 733, 734,
625, 628, 641, 763, 643, -648, 680, 18, -648, 2,
-648, 14, 279, -648, 245, 112, 75, 245, 719, 644,
735, -648, 751, -648, 67, 67, -648, 67, -648, 67,
67, -648, -648, -648, 760, -648, 1614, 651, 653, 795,
-648, 67, -648, -648, -648, -648, 129, 655, -648, -648,
797, 99, 654, 660, 16, 661, 662, -648, 808, -648,
-648, -648, -648, -648, -648, -648, -648, 809, -648, 666,
667, 67, 673, 674, 677, 99, 99, -648, -648, 516,
-648, -648, 679, -648, -648, -1, -648, -648, -648, -648,
-648, 516, 516, -648, -648
0, 2, 2, 2, 2, 2, 2, 1, 0, 4,
0, 2, 3, 0, 2, 4, 1, 1, 2, 1,
4, 4, 3, 2, 4, 3, 4, 4, 4, 4,
4, 2, 2, 2, 4, 4, 2, 2, 2, 2,
0, 5, 2, 0, 3, 2, 0, 1, 3, 1,
3, 0, 1, 3, 0, 2, 1, 2, 3, 0,
2, 2, 0, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 4, 4, 4, 4, 8, 4, 1,
1, 4, 0, 5, 4, 0, 5, 4, 4, 3,
3, 6, 4, 1, 3, 2, 1, 3, 2, 0,
5, 0, 7, 0, 6, 4, 2, 2, 0, 4,
2, 0, 7, 1, 1, 1, 1, 5, 4, 4,
4, 7, 7, 7, 7, 8, 4, 1, 3, 4,
2, 1, 3, 1, 1, 2, 3, 4, 4, 5,
1, 0, 5, 2, 1, 1, 1, 4, 1, 4,
4, 0, 8, 0, 5, 2, 1, 0, 1, 1,
1, 1, 1, 1, 1, 2, 0, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 3, 3, 6,
6, 6, 1, 0, 4, 1, 0, 3, 1, 0,
7, 0, 5, 3, 3, 0, 3, 1, 2, 1,
2, 4, 4, 3, 3, 1, 4, 3, 0, 1,
1, 0, 2, 3, 0, 2, 2, 3, 4, 2,
2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 5, 3,
3, 4, 1, 1, 4, 4, 4, 4, 4, 4,
4, 6, 6, 6, 4, 6, 4, 1, 6, 6,
6, 4, 4, 4, 3, 0, 4, 0, 4, 0,
1, 0, 4, 0, 1, 1, 1, 0, 0, 0,
0, 0, 0, 20, 0, 0, 0, 0, 0, 18,
0, 0, 7, 0, 5, 1, 1, 1, 1, 1,
3, 0, 2, 3, 2, 6, 10, 2, 1, 0,
1, 2, 0, 0, 3, 0, 0, 0, 0, 11,
4, 0, 2, 0, 0, 6, 1, 0, 3, 5,
0, 3, 0, 2, 1, 2, 4, 2, 0, 2,
0, 5, 1, 2, 4, 5, 6, 1, 2, 0,
2, 4, 4, 8, 1, 1, 3, 3, 0, 9,
0, 7, 1, 3, 1, 3, 1, 3, 0, 1
};
 
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
Performed when YYTABLE does not specify something else to do. Zero
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
STATE-NUM when YYTABLE doesn't specify something else to do. Zero
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
0, 59, 10, 8, 340, 334, 0, 2, 62, 3,
0, 59, 10, 8, 338, 332, 0, 2, 62, 3,
13, 6, 0, 4, 0, 5, 0, 1, 60, 11,
0, 351, 0, 341, 344, 0, 335, 336, 0, 0,
0, 349, 0, 339, 342, 0, 333, 334, 0, 0,
0, 0, 0, 79, 0, 80, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 211, 212, 0,
0, 82, 0, 0, 0, 0, 113, 0, 72, 61,
0, 0, 0, 0, 0, 0, 0, 209, 210, 0,
0, 82, 0, 0, 0, 0, 111, 0, 72, 61,
64, 70, 0, 63, 66, 67, 68, 69, 65, 71,
0, 16, 0, 0, 0, 0, 17, 0, 0, 0,
19, 46, 0, 0, 0, 0, 0, 0, 51, 54,
0, 0, 0, 357, 368, 356, 364, 366, 0, 0,
351, 345, 364, 366, 0, 0, 337, 169, 170, 171,
172, 216, 173, 174, 175, 176, 216, 110, 323, 0,
0, 0, 0, 7, 85, 188, 0, 0, 0, 0,
0, 0, 0, 0, 210, 213, 93, 0, 0, 0,
0, 0, 0, 54, 178, 177, 112, 0, 0, 40,
0, 244, 259, 0, 0, 0, 0, 0, 0, 0,
0, 245, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 355, 366, 354, 362, 364, 0, 0,
349, 343, 362, 364, 0, 0, 335, 214, 174, 173,
172, 171, 170, 169, 168, 167, 214, 108, 321, 0,
0, 0, 0, 7, 85, 186, 0, 0, 0, 0,
0, 0, 0, 0, 208, 211, 0, 0, 0, 0,
0, 0, 0, 54, 176, 175, 110, 0, 0, 40,
0, 242, 257, 0, 0, 0, 0, 0, 0, 0,
0, 243, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
0, 49, 31, 47, 32, 18, 33, 23, 0, 36,
0, 37, 52, 38, 39, 0, 42, 12, 9, 0,
0, 0, 0, 352, 0, 0, 339, 179, 0, 180,
0, 0, 89, 90, 0, 0, 62, 191, 0, 0,
185, 190, 0, 0, 0, 0, 0, 0, 0, 205,
207, 185, 185, 213, 0, 0, 0, 93, 0, 0,
0, 0, 0, 0, 0, 0, 0, 13, 0, 0,
222, 218, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 350, 0, 0, 337, 177, 0, 178,
0, 0, 89, 90, 0, 0, 62, 189, 0, 0,
183, 188, 0, 0, 0, 0, 0, 0, 0, 203,
205, 183, 183, 211, 0, 93, 96, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
0, 0, 220, 216, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 221, 223, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 219, 221, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 25, 0, 0,
45, 0, 0, 0, 22, 0, 0, 56, 55, 362,
0, 0, 346, 359, 369, 358, 365, 367, 0, 338,
217, 280, 107, 0, 286, 292, 109, 108, 325, 322,
324, 0, 76, 78, 342, 197, 193, 186, 184, 0,
0, 92, 73, 74, 84, 111, 203, 204, 0, 208,
0, 213, 214, 87, 81, 95, 98, 0, 94, 0,
75, 216, 216, 216, 0, 88, 0, 27, 28, 43,
29, 30, 219, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 25,
0, 0, 45, 0, 0, 0, 22, 0, 0, 56,
55, 360, 0, 0, 344, 357, 367, 356, 363, 365,
0, 336, 215, 278, 105, 0, 284, 290, 107, 106,
323, 320, 322, 0, 76, 78, 340, 195, 191, 184,
182, 0, 0, 92, 73, 74, 84, 109, 201, 202,
0, 206, 0, 211, 212, 87, 99, 95, 98, 0,
0, 81, 0, 75, 214, 214, 214, 0, 88, 0,
27, 28, 43, 29, 30, 217, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 242, 241, 239, 238, 237, 231,
232, 235, 236, 233, 234, 229, 230, 227, 228, 224,
225, 226, 15, 26, 24, 50, 48, 44, 20, 21,
35, 34, 53, 57, 0, 0, 353, 354, 0, 349,
347, 0, 303, 295, 0, 303, 0, 0, 86, 0,
0, 188, 189, 0, 206, 209, 215, 101, 97, 100,
0, 0, 83, 0, 0, 0, 0, 343, 41, 0,
252, 258, 0, 0, 256, 0, 243, 220, 247, 246,
248, 249, 0, 0, 263, 264, 251, 0, 265, 250,
0, 58, 370, 367, 360, 350, 348, 0, 0, 303,
0, 269, 110, 310, 0, 311, 293, 328, 329, 0,
201, 0, 0, 199, 0, 0, 91, 0, 105, 96,
99, 0, 181, 182, 183, 0, 0, 0, 0, 0,
0, 0, 0, 240, 371, 0, 0, 0, 297, 298,
299, 300, 301, 304, 0, 0, 0, 0, 306, 0,
271, 0, 309, 312, 269, 0, 332, 0, 326, 0,
202, 198, 200, 0, 185, 194, 0, 0, 103, 114,
253, 254, 255, 257, 260, 261, 262, 363, 0, 370,
302, 0, 305, 0, 0, 273, 296, 275, 110, 0,
329, 0, 0, 77, 216, 0, 102, 0, 0, 355,
0, 303, 0, 0, 272, 275, 0, 287, 0, 0,
330, 0, 327, 195, 0, 192, 106, 0, 361, 0,
0, 268, 0, 281, 0, 0, 294, 333, 329, 216,
104, 0, 307, 270, 279, 0, 288, 331, 196, 0,
276, 277, 278, 0, 274, 317, 303, 282, 0, 0,
159, 318, 289, 308, 136, 117, 116, 161, 162, 163,
164, 165, 0, 0, 0, 0, 0, 0, 146, 148,
153, 0, 0, 0, 147, 0, 118, 0, 0, 142,
150, 158, 160, 0, 0, 0, 0, 314, 0, 0,
0, 0, 155, 216, 0, 143, 0, 0, 115, 0,
135, 185, 0, 137, 0, 0, 157, 283, 216, 145,
159, 0, 267, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 159, 0, 166, 0, 0, 129, 0,
133, 0, 0, 138, 0, 185, 185, 0, 314, 0,
0, 313, 0, 315, 0, 0, 149, 0, 120, 0,
0, 121, 122, 128, 0, 152, 0, 115, 0, 0,
131, 0, 132, 134, 140, 139, 185, 267, 151, 319,
0, 168, 0, 0, 0, 0, 0, 156, 0, 144,
130, 119, 141, 315, 315, 266, 216, 0, 290, 0,
0, 0, 0, 0, 0, 168, 168, 167, 316, 185,
124, 123, 0, 125, 126, 0, 284, 320, 291, 127,
154, 185, 185, 285, 321
0, 0, 0, 0, 0, 0, 0, 240, 239, 237,
236, 235, 230, 229, 233, 234, 232, 231, 228, 227,
225, 226, 222, 223, 224, 15, 26, 24, 50, 48,
44, 20, 21, 35, 34, 53, 57, 0, 0, 351,
352, 0, 347, 345, 0, 301, 293, 0, 301, 0,
0, 86, 0, 0, 186, 187, 0, 204, 207, 213,
0, 103, 94, 97, 0, 83, 0, 0, 0, 0,
341, 41, 0, 250, 256, 0, 0, 254, 0, 241,
218, 245, 244, 246, 247, 0, 0, 261, 262, 249,
0, 263, 248, 0, 58, 368, 365, 358, 348, 346,
0, 0, 301, 0, 267, 108, 308, 0, 309, 291,
326, 327, 0, 199, 0, 0, 197, 0, 0, 91,
0, 0, 101, 179, 180, 181, 0, 0, 0, 0,
0, 0, 0, 0, 238, 369, 0, 0, 0, 295,
296, 297, 298, 299, 302, 0, 0, 0, 0, 304,
0, 269, 0, 307, 310, 267, 0, 330, 0, 324,
0, 200, 196, 198, 0, 183, 192, 100, 0, 0,
112, 251, 252, 253, 255, 258, 259, 260, 361, 0,
368, 300, 0, 303, 0, 0, 271, 294, 273, 108,
0, 327, 0, 0, 77, 214, 0, 104, 0, 353,
0, 301, 0, 0, 270, 273, 0, 285, 0, 0,
328, 0, 325, 193, 0, 190, 102, 359, 0, 0,
266, 0, 279, 0, 0, 292, 331, 327, 214, 0,
305, 268, 277, 0, 286, 329, 194, 0, 274, 275,
276, 0, 272, 315, 301, 280, 0, 0, 157, 316,
287, 306, 134, 115, 114, 159, 160, 161, 162, 163,
0, 0, 0, 0, 0, 0, 144, 146, 151, 0,
0, 0, 145, 0, 116, 0, 0, 140, 148, 156,
158, 0, 0, 0, 0, 312, 0, 0, 0, 0,
153, 214, 0, 141, 0, 0, 113, 0, 133, 183,
0, 135, 0, 0, 155, 281, 214, 143, 157, 0,
265, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 157, 0, 164, 0, 0, 127, 0, 131, 0,
0, 136, 0, 183, 183, 0, 312, 0, 0, 311,
0, 313, 0, 0, 147, 0, 118, 0, 0, 119,
120, 126, 0, 150, 0, 113, 0, 0, 129, 0,
130, 132, 138, 137, 183, 265, 149, 317, 0, 166,
0, 0, 0, 0, 0, 154, 0, 142, 128, 117,
139, 313, 313, 264, 214, 0, 288, 0, 0, 0,
0, 0, 0, 166, 166, 165, 314, 183, 122, 121,
0, 123, 124, 0, 282, 318, 289, 125, 152, 183,
183, 283, 319
};
 
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-648, -648, -69, -648, -648, -648, -648, 567, -648, -648,
-648, -648, -648, -648, 681, -648, -648, -648, -648, 605,
-648, -648, -648, 590, -648, -314, -648, -648, -648, -648,
-467, -13, -648, -35, -436, -648, -648, 94, -600, 113,
-648, -648, 162, -648, -648, -648, -581, -648, 79, -588,
-648, -647, -390, -218, -648, 417, -648, 531, -648, -648,
-648, -648, -648, -648, 360, -648, -648, -648, -648, -648,
-648, -209, -110, -648, -75, 104, 292, -648, -648, 269,
-648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
-648, -648, -648, -648, -648, -648, -477, 465, -648, -648,
128, -539, -648, -648, -648, -648, -648, -648, -648, -648,
-648, -648, -512, -648, -648, -648, -648, 839, -648, -648,
-648, -648, -648, 629, -20, -648, 766, -14, -648, -648,
302
-1, 6, 124, 11, 12, 9, 10, 19, 91, 249,
185, 184, 182, 193, 194, 195, 310, 7, 8, 18,
59, 137, 216, 238, 450, 559, 511, 60, 210, 328,
142, 664, 665, 717, 666, 719, 689, 667, 668, 715,
669, 682, 711, 670, 671, 672, 712, 776, 116, 146,
62, 722, 63, 219, 220, 221, 337, 444, 555, 605,
443, 505, 506, 64, 65, 231, 66, 232, 67, 234,
713, 208, 254, 731, 541, 576, 595, 597, 631, 329,
435, 622, 638, 726, 799, 437, 614, 633, 675, 787,
438, 546, 495, 535, 493, 494, 498, 545, 700, 759,
636, 674, 772, 800, 68, 211, 332, 439, 583, 501,
549, 581, 15, 16, 26, 27, 104, 13, 14, 69,
70, 23, 24, 434, 98, 99, 528, 428, 526
};
 
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -647
static const yytype_int16 yypact[] =
{
-1, 6, 124, 11, 12, 9, 10, 19, 91, 247,
185, 184, 182, 193, 194, 195, 308, 7, 8, 18,
59, 137, 216, 235, 236, 358, 507, 588, 557, 60,
210, 326, 142, 666, 667, 719, 668, 721, 691, 669,
670, 717, 671, 684, 713, 672, 673, 674, 714, 778,
116, 146, 62, 724, 63, 219, 220, 221, 335, 441,
554, 605, 440, 502, 503, 64, 65, 231, 66, 232,
67, 234, 715, 208, 252, 733, 540, 575, 595, 597,
633, 327, 432, 624, 640, 728, 801, 434, 615, 635,
677, 789, 435, 545, 492, 534, 490, 491, 495, 544,
702, 761, 638, 676, 774, 802, 68, 211, 330, 436,
582, 498, 548, 580, 15, 16, 26, 27, 104, 13,
14, 69, 70, 23, 24, 431, 98, 99, 527, 425,
525
-46, -647, -647, -647, -647, -647, 74, -647, -647, -647,
-647, -647, 64, -647, -3, -647, 65, -647, 957, 1755,
124, 5, 166, -3, -647, 114, 65, -647, 682, 169,
179, 192, 105, -647, 213, -647, 259, 221, 246, 248,
256, 258, 262, 263, 265, 266, 267, -647, -647, 268,
276, -647, 291, 293, 295, 296, -647, 298, -647, -647,
-647, -647, 110, -647, -647, -647, -647, -647, -647, -647,
178, -647, 332, 259, 334, 781, -647, 336, 337, 338,
-647, -647, 341, 342, 344, 781, 346, 348, 351, -647,
352, 245, 781, -647, 355, -647, 345, 353, 313, 226,
5, -647, -647, -647, 318, 230, -647, -647, -647, -647,
-647, -647, -647, -647, -647, -647, -647, -647, -647, 375,
376, 388, 390, -647, -647, 49, 395, 398, 405, 259,
259, 409, 259, 4, -647, 410, 34, 378, 259, 413,
417, 418, 386, -647, -647, -647, -647, 366, 31, -647,
38, -647, -647, 781, 781, 781, 393, 394, 404, 407,
408, -647, 419, 420, 422, 426, 427, 428, 430, 431,
432, 433, 440, 444, 445, 446, 449, 781, 781, 1564,
367, -647, 282, -647, 299, 20, -647, -647, 525, 1936,
307, -647, -647, 340, -647, 439, -647, -647, 1936, 421,
114, 114, 343, 121, 434, 354, 121, -647, 781, -647,
278, 55, -647, -647, -53, 357, -647, -647, 259, 435,
85, -647, 363, 362, 368, 372, 373, 374, 377, -647,
-647, -4, 96, 24, 381, -647, -647, 452, 17, 34,
383, 486, 494, 495, 781, 387, -3, 781, 781, -647,
781, 781, -647, -647, 965, 781, 781, 781, 781, 781,
500, 520, 781, 521, 533, 535, 536, 781, 781, 537,
538, 781, 781, 781, 539, -647, -647, 781, 781, 781,
781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
781, 781, 781, 781, 781, 781, 781, 781, 781, 1936,
541, 543, -647, 544, 781, 781, 1936, 273, 545, -647,
27, -647, 402, 403, -647, -647, 548, -647, -647, -647,
-47, -647, 1936, 682, -647, 259, -647, -647, -647, -647,
-647, -647, -647, 549, -647, -647, 1033, 517, -647, -647,
-647, 49, 553, -647, -647, -647, -647, -647, -647, -647,
259, -647, 259, 410, -647, -647, -647, -647, -647, 522,
88, -647, 21, -647, -647, -647, -647, 1584, -647, -16,
1936, 1936, 1779, 1936, 1936, -647, 921, 1165, 1604, 1624,
1185, 411, 412, 1205, 416, 423, 424, 425, 1644, 1664,
437, 438, 1225, 1695, 1245, 443, 1896, 1776, 1145, 1951,
1965, 1278, 856, 856, 406, 406, 406, 406, 442, 442,
167, 167, -647, -647, -647, 1936, 1936, 1936, -647, -647,
-647, 1936, 1936, -647, -647, -647, -647, 556, 114, 277,
121, 508, -647, -647, -37, 622, -647, 697, 622, 781,
441, -647, 3, 551, 49, -647, 447, -647, -647, -647,
34, -647, -647, -647, 531, -647, 448, 450, 453, 565,
-647, -647, 781, -647, -647, 781, 781, -647, 781, -647,
-647, -647, -647, -647, -647, 781, 781, -647, -647, -647,
566, -647, -647, 781, -647, 455, 559, -647, -647, -647,
236, 542, 1807, 564, 479, -647, -647, 1916, 497, -647,
1936, 29, 589, -647, 590, 2, -647, 502, 562, -647,
30, 34, -647, -647, -647, -647, 463, 1265, 1298, 1318,
1338, 1358, 1378, 464, 1936, 121, 555, 114, 114, -647,
-647, -647, -647, -647, -647, 466, 781, -22, 585, -647,
567, 578, 392, -647, -647, 479, 561, 580, 584, -647,
473, -647, -647, -647, 617, 477, -647, -647, 79, 34,
-647, -647, -647, -647, -647, -647, -647, -647, -647, 489,
455, -647, 1398, -647, 781, 601, 498, -647, 546, -647,
781, 29, 781, 492, -647, -647, 550, -647, 84, 121,
587, 225, 1431, 781, -647, 546, 607, -647, 429, 1451,
-647, 1471, -647, -647, 641, -647, -647, -647, 611, 634,
-647, 1491, -647, 781, 593, -647, -647, 29, -647, 781,
-647, -647, 95, 1511, -647, -647, -647, 1531, -647, -647,
-647, 596, -647, -647, 618, -647, 63, 640, 864, -647,
-647, -647, 621, -647, -647, -647, -647, -647, -647, -647,
620, 626, 627, 628, 259, 629, -647, -647, -647, 630,
631, 632, -647, 311, -647, 639, 15, -647, -647, -647,
864, 612, 642, 110, 623, 655, 94, 371, 72, 72,
-647, -647, 646, -647, 680, 72, -647, 648, -647, -39,
311, 649, 311, 661, -647, -647, -647, -647, 864, 695,
608, 672, 674, 563, 677, 569, 679, 683, 570, 572,
573, 864, 574, -647, 781, 8, -647, 11, -647, 14,
102, -647, 311, 122, -15, 311, 655, 575, 666, -647,
701, -647, 72, 72, -647, 72, -647, 72, 72, -647,
-647, -647, 693, -647, 1715, 581, 582, 728, -647, 72,
-647, -647, -647, -647, 123, 608, -647, -647, 733, 91,
592, 594, 41, 602, 603, -647, 734, -647, -647, -647,
-647, -647, -647, -647, -647, 738, -647, 605, 606, 72,
609, 610, 614, 91, 91, -647, -647, 477, -647, -647,
615, -647, -647, 110, -647, -647, -647, -647, -647, 477,
477, -647, -647
};
 
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule whose
number is the opposite. If YYTABLE_NINF, syntax error. */
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
-647, -647, -72, -647, -647, -647, -647, 507, -647, -647,
-647, -647, -647, -647, 625, -647, -647, -647, -647, 554,
-647, -647, -647, -225, -647, -647, -647, -647, -459, -13,
-647, 68, -398, -647, -647, 25, -615, 46, -647, -647,
99, -647, -647, -647, -612, -647, -9, -493, -647, -646,
-386, -216, -647, 322, -647, 454, -647, -647, -647, -647,
-647, -647, 271, -647, -647, -647, -647, -647, -647, -192,
-105, -647, -75, 16, 228, -647, -647, 191, -647, -647,
-647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
-647, -647, -647, -647, -472, 356, -647, -647, 67, -474,
-647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
-527, -647, -647, -647, -647, 763, -647, -647, -647, -647,
-647, 552, -20, -647, 691, -12, -647, -647, 227
};
 
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -341
static const yytype_int16 yytable[] =
{
179, 207, 339, 101, 149, 61, 209, 500, 151, 152,
189, 105, 537, 348, 350, 295, 500, 198, 688, 245,
688, 123, 747, 749, 352, 541, 448, 449, 699, 645,
-187, 645, 300, 645, 233, 153, 154, 355, 356, 248,
423, 546, 155, 156, 157, 217, 646, 21, 646, 328,
646, 509, 510, -187, 21, 457, 158, 159, 160, 17,
225, 226, 641, 228, 230, 161, 20, 429, 600, 238,
162, 688, 689, 653, 654, 655, 92, 485, 250, 251,
163, 25, 645, 430, 693, 164, 165, 166, 167, 168,
169, 170, 725, 486, 726, 645, 448, 449, 171, 646,
172, 100, 273, 274, 329, 297, 627, 218, 331, 776,
332, 598, 646, 304, 610, 777, 173, 642, 117, 730,
338, 22, 174, 175, 723, 119, 120, 756, 22, 450,
448, 449, 744, 320, 689, 653, 654, 655, 121, 547,
357, 338, 446, 118, 448, 449, 144, 145, 800, 336,
176, 750, 296, 122, 511, 501, 246, 177, 178, 639,
662, 551, 663, 751, 501, 781, 229, 364, 665, 451,
367, 368, 123, 370, 371, 301, 249, 351, 373, 374,
375, 376, 377, 424, 126, 380, 310, 311, 420, 421,
385, 386, 125, 556, 389, 390, 391, 796, 797, 450,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 414, 338, 93, 663, 127, 755, 418, 419, 690,
694, 128, 695, 450, 785, 786, 151, 152, 93, 451,
338, 586, 347, 587, 338, 313, 349, 450, 129, 688,
675, 453, 454, 455, 433, 536, 690, 609, 690, 338,
645, 754, 130, 153, 154, 313, 131, 291, 292, 293,
155, 156, 157, 451, 607, 606, 338, 646, 772, 444,
132, 445, 675, 688, 158, 159, 160, 451, 753, 620,
133, 690, 134, 161, 645, 630, 631, 632, 162, 689,
653, 654, 655, 528, 529, 530, 531, 532, 163, 135,
675, 646, 136, 164, 165, 166, 167, 168, 169, 170,
138, 61, 139, 675, 140, 141, 171, 143, 172, 147,
688, 148, 150, 703, 704, 180, 585, 181, 183, 186,
187, 645, 188, 190, 173, 192, 101, 191, 200, 94,
174, 175, 95, 96, 97, 196, 199, 489, 646, 494,
489, 497, 197, 201, 94, 202, 205, 95, 102, 103,
203, 314, 151, 152, 315, 316, 317, 212, 176, 302,
703, 704, 533, 213, 516, 177, 178, 517, 518, 663,
519, 314, 206, 214, 315, 316, 483, 520, 521, 153,
154, 215, 222, 223, 224, 523, 155, 156, 157, 227,
233, 482, 528, 529, 530, 531, 532, 688, 237, 239,
158, 159, 160, 706, 240, 241, 705, 242, 645, 161,
244, 253, 254, 255, 162, 321, 1, 2, 3, 289,
290, 291, 292, 293, 163, 646, 298, 4, 256, 164,
165, 166, 167, 168, 169, 170, 5, 307, 299, 257,
571, 258, 171, 259, 172, 260, 261, 708, 709, 262,
706, 263, 264, 265, 603, 266, 267, 268, 269, 270,
173, 271, 272, 309, 305, 361, 174, 175, 312, 318,
322, 533, 306, 362, 319, 340, 337, 323, 592, 333,
363, 378, 341, 342, 599, 324, 601, 343, 344, 628,
43, 345, 568, 569, 176, 346, 303, 353, 612, 354,
360, 177, 178, 321, 151, 152, 365, 379, 381, 325,
382, 383, 384, 387, 388, 53, 54, 55, 392, 625,
415, 416, 417, 422, 428, 437, 629, 439, 56, 426,
427, 153, 154, 443, 447, 576, 452, 465, 487, 156,
157, 488, 107, 108, 109, 110, 111, 112, 113, 114,
115, 798, 158, 159, 160, 481, 466, 504, 484, 508,
515, 161, 468, 803, 804, 323, 162, 682, 729, 522,
526, 535, 469, 324, 499, 470, 163, 471, 43, 151,
152, 164, 165, 166, 167, 168, 169, 170, 474, 475,
479, 506, 493, 512, 171, 513, 172, 325, 514, 524,
538, 549, 550, 53, 54, 55, 153, 154, 555, 559,
558, 566, 173, 155, 156, 157, 56, 539, 174, 175,
543, 746, 567, 707, 710, 711, 712, 158, 159, 160,
553, 570, 720, 572, 574, 578, 161, 573, 579, 581,
583, 162, 584, 338, 593, 596, 176, 604, 594, 608,
589, 163, 614, 177, 178, 619, 164, 165, 166, 167,
168, 169, 170, 151, 152, 621, 752, 707, 622, 171,
626, 172, 287, 288, 289, 290, 291, 292, 293, 762,
763, 602, 720, 637, 765, 766, 536, 173, 643, 697,
153, 154, 678, 174, 175, 679, 771, 155, 156, 157,
107, 108, 109, 110, 111, 112, 113, 114, 115, 752,
680, 158, 159, 160, 681, 683, 685, 686, 687, 692,
161, 176, 698, 700, 701, 162, 792, 716, 177, 178,
718, -115, 722, -115, 727, 163, 731, 732, 734, 735,
164, 165, 166, 167, 168, 169, 170, 644, 736, 737,
739, 740, 738, 171, 741, 172, 760, 742, 645, 283,
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
743, 173, 745, 758, 759, 646, 767, 174, 175, 770,
-136, 775, 769, 779, 647, 648, 649, 650, 651, 780,
782, 783, 784, 788, 369, 790, 791, 652, 653, 654,
655, 334, 793, 794, 243, 176, 795, 359, 799, 656,
748, 764, 177, 178, 696, 275, 577, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 787, 757, 657, 505, 658,
28, 773, 552, 659, 613, 106, 204, 53, 54, 55,
442, 590, 0, 366, 0, 0, 0, 0, 0, 275,
660, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 0,
496, 661, 29, 30, 31, 662, 0, 663, 0, 0,
0, 664, 0, 665, 0, 0, 0, 32, 33, 34,
35, 0, 36, 37, 38, 39, 0, 0, 0, 0,
0, 0, 40, 41, 42, 43, 28, 0, 0, 0,
0, 0, 0, 44, 45, 46, 47, 48, 49, 0,
0, 0, 0, 50, 51, 52, 0, 0, 0, 0,
53, 54, 55, 0, 0, 0, 0, 459, 438, 460,
0, 0, 0, 56, 0, 0, 0, 0, 29, 30,
31, 0, 0, 0, 0, 0, 57, 0, 0, 0,
0, 0, -342, 32, 33, 34, 35, 0, 36, 37,
38, 39, 0, 0, 58, 0, 0, 0, 40, 41,
42, 43, 0, 372, 0, 0, 0, 0, 0, 44,
45, 46, 47, 48, 49, 0, 0, 0, 0, 50,
51, 52, 0, 0, 0, 0, 53, 54, 55, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 56,
179, 149, 207, 101, 341, 61, 503, 503, 123, 93,
189, 209, 745, 105, 362, 350, 352, 198, 686, 691,
538, 357, 358, 643, 302, 357, 358, 697, 233, 643,
643, 426, 747, 547, 357, 358, 542, 247, 235, 236,
644, 354, 21, 460, 250, 686, 644, 644, 529, 530,
531, 532, 533, 217, 600, 21, 643, 225, 226, 330,
228, 230, 687, 651, 652, 653, 240, 639, 20, 687,
651, 652, 653, 644, 17, 723, 686, 724, 252, 253,
1, 2, 3, 357, 358, 432, 728, 643, 357, 358,
625, 4, 452, 453, 333, 488, 334, 774, 686, 742,
5, 433, 275, 276, 644, 299, 686, 775, 340, 643,
754, 489, 721, 306, 331, 218, 22, 643, 93, 609,
598, -185, 640, 25, 359, 315, 644, 534, 359, 22,
92, 548, 340, 322, 644, 94, 753, 359, 95, 96,
97, 237, 121, 340, -185, 349, 338, 798, 701, 702,
660, 552, 661, 229, 504, 504, 701, 702, 663, 661,
748, 449, 637, 749, 360, 692, 361, 303, 360, 367,
455, 353, 370, 371, 427, 373, 374, 360, 248, 557,
376, 377, 378, 379, 380, 251, 359, 383, 312, 313,
779, 359, 388, 389, 703, 454, 392, 393, 394, 293,
294, 295, 396, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
414, 415, 416, 417, 100, 510, 360, 117, 587, 421,
422, 360, 340, 606, 628, 629, 630, 118, 704, 151,
152, 119, 120, 340, 94, 351, 704, 95, 102, 103,
122, 316, 673, 436, 317, 318, 319, 144, 145, 456,
457, 458, 537, 123, 608, 688, 153, 154, 693, 340,
340, 752, 770, 155, 156, 157, 423, 424, 447, 125,
448, 315, 323, 126, 673, 127, 558, 158, 159, 160,
794, 795, 688, 128, 688, 129, 161, 783, 784, 130,
131, 162, 132, 133, 134, 135, 529, 530, 531, 532,
533, 163, 673, 136, 147, 686, 164, 165, 166, 167,
168, 169, 170, 61, 751, 673, 643, 688, 138, 171,
139, 172, 140, 141, 588, 143, 148, 324, 150, 586,
180, 181, 183, 644, 325, 186, 187, 173, 188, 101,
190, 191, 326, 174, 175, 192, 196, 43, 197, 199,
492, 200, 497, 492, 500, 687, 651, 652, 653, 201,
151, 152, 202, 297, 203, 686, 327, 205, 206, 212,
213, 176, 53, 54, 55, 534, 643, 517, 177, 178,
518, 519, 214, 520, 215, 56, 323, 153, 154, 222,
521, 522, 223, 644, 155, 156, 157, 316, 524, 224,
317, 318, 486, 227, 233, 239, 485, 241, 158, 159,
160, 242, 243, 244, 246, 706, 707, 161, 577, 300,
255, 256, 162, 323, 289, 290, 291, 292, 293, 294,
295, 257, 163, 309, 258, 259, 301, 164, 165, 166,
167, 168, 169, 170, 307, 661, 260, 261, 325, 262,
171, 572, 172, 263, 264, 265, 326, 266, 267, 268,
269, 43, 291, 292, 293, 294, 295, 270, 173, 311,
603, 271, 272, 273, 174, 175, 274, 308, 615, 356,
327, 314, 364, 320, 339, 325, 53, 54, 55, 592,
365, 366, 321, 326, 381, 599, 335, 601, 43, 56,
342, 343, 176, 626, 298, 569, 570, 344, 611, 177,
178, 345, 346, 347, 382, 384, 348, 327, 151, 152,
355, 304, 363, 53, 54, 55, 368, 385, 623, 386,
387, 390, 391, 395, 627, 418, 56, 419, 420, 425,
429, 430, 431, 440, 442, 153, 154, 446, 468, 451,
484, 469, 155, 156, 157, 471, 487, 507, 512, 516,
523, 796, 472, 473, 474, 527, 158, 159, 160, 536,
539, 540, 680, 801, 802, 161, 477, 478, 502, 544,
162, 727, 482, 550, 551, 554, 509, 513, 556, 514,
163, 573, 515, 525, 574, 164, 165, 166, 167, 168,
169, 170, 560, 567, 568, 571, 575, 580, 171, 579,
172, 582, 584, 585, 340, 151, 152, 107, 108, 109,
110, 111, 112, 113, 114, 115, 173, 589, 593, 744,
602, 594, 174, 175, 613, 604, 607, 618, 619, 596,
620, 624, 153, 154, 635, 537, 641, 676, -113, 490,
156, 157, 491, 677, 678, 679, 681, 683, 684, 685,
176, 695, 305, 158, 159, 160, 690, 177, 178, 696,
699, 698, 161, 714, 716, 720, -113, 162, 107, 108,
109, 110, 111, 112, 113, 114, 115, 163, 725, 729,
151, 152, 164, 165, 166, 167, 168, 169, 170, 732,
730, 733, 734, 496, 735, 171, 737, 172, 736, 739,
738, 740, 741, 743, 756, 757, 758, 153, 154, 765,
-134, 767, 768, 173, 155, 156, 157, 773, 782, 174,
175, 777, 786, 778, 705, 708, 709, 710, 158, 159,
160, 780, 781, 718, 788, 789, 372, 161, 791, 792,
762, 746, 162, 793, 797, 785, 508, 176, 245, 694,
336, 771, 163, 578, 177, 178, 553, 164, 165, 166,
167, 168, 169, 170, 151, 152, 612, 750, 705, 106,
171, 204, 172, 755, 499, 445, 0, 590, 369, 0,
760, 761, 0, 718, 0, 763, 764, 0, 173, 0,
0, 153, 154, 0, 174, 175, 0, 769, 155, 156,
157, 0, 0, 0, 0, 0, 0, 0, 0, 0,
750, 0, 158, 159, 160, 0, 0, 0, 0, 0,
0, 161, 176, 0, 0, 0, 162, 790, 0, 177,
178, 0, 0, 0, 0, 0, 163, 0, 0, 0,
0, 164, 165, 166, 167, 168, 169, 170, 642, 0,
0, 0, 0, 0, 171, 0, 172, 0, 0, 643,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 0, 173, 0, 0, 0, 644, 0, 174, 175,
0, 0, 0, 0, 0, 645, 646, 647, 648, 649,
0, 0, 0, 0, 0, 0, 0, 0, 650, 651,
652, 653, 0, 0, 0, 0, 176, 0, 0, 0,
654, 0, 0, 177, 178, 0, 277, 0, 278, 279,
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
290, 291, 292, 293, 294, 295, 0, 0, 655, 0,
656, 28, 0, 0, 657, 0, 0, 0, 53, 54,
55, 0, 0, 0, 0, 0, 0, 0, 0, 0,
277, 658, 278, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
0, 0, 659, 29, 30, 31, 660, 0, 661, 0,
0, 0, 662, 0, 663, 0, 0, 0, 32, 33,
34, 35, 0, 36, 37, 38, 39, 0, 0, 0,
0, 0, 0, 40, 41, 42, 43, 28, 0, 0,
0, 0, 0, 0, 44, 45, 46, 47, 48, 49,
0, 0, 0, 0, 50, 51, 52, 0, 0, 0,
0, 53, 54, 55, 0, 0, 0, 0, 462, 441,
463, 0, 0, 0, 56, 0, 0, 0, 0, 29,
30, 31, 0, 0, 0, 0, 0, 57, 0, 0,
0, 0, 0, -340, 32, 33, 34, 35, 0, 36,
37, 38, 39, 0, 0, 58, 0, 0, 0, 40,
41, 42, 43, 0, 375, 0, 0, 0, 0, 0,
44, 45, 46, 47, 48, 49, 0, 0, 0, 0,
50, 51, 52, 0, 0, 0, 0, 53, 54, 55,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 57, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 275,
58, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 275,
0, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 275,
0, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 275,
0, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 275,
0, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 275,
0, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 281,
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 275, 461, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 275, 464, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 275, 467, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 275, 476, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 275, 478, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 275, 560, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 275, 561, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 275, 562, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 275, 563, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 275, 564, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 275, 565, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 275, 591, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 275, 611,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 275, 617,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 275, 618,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 275, 623,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 275, 634,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 275, 636,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 0, 321,
0, 0, 0, 0, 0, 0, 0, 0, 0, 275,
294, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 275,
456, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 0,
462, 0, 0, 0, 616, 0, 0, 0, 71, 0,
0, 323, 0, 0, 0, 0, 0, 0, 0, 324,
463, 0, 0, 0, 43, 0, 0, 0, 0, 0,
0, 0, 71, 0, 0, 0, 0, 0, 0, 0,
472, 0, 72, 325, 0, 0, 0, 0, 0, 53,
54, 55, 0, 0, 0, 0, 0, 0, 0, 0,
473, 0, 56, 0, 458, 0, 72, 0, 0, 0,
73, 275, 0, 276, 277, 278, 279, 280, 281, 282,
56, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 57, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
277, 58, 278, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
277, 0, 278, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
277, 0, 278, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
277, 0, 278, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
277, 0, 278, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
277, 0, 278, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 477, 0, 536, 73, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 74, 0, 0, 0, 0,
0, 768, 75, 76, 77, 78, 79, -43, 80, 81,
82, 0, 0, 83, 84, 0, 85, 86, 87, 74,
0, 0, 0, 88, 89, 90, 75, 76, 77, 78,
79, 0, 80, 81, 82, 0, 0, 83, 84, 0,
85, 86, 87, 0, 0, 0, 0, 88, 89, 90,
275, 480, 276, 277, 278, 279, 280, 281, 282, 283,
293, 294, 295, 277, 464, 278, 279, 280, 281, 282,
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 277, 467, 278, 279, 280, 281, 282,
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 277, 470, 278, 279, 280, 281, 282,
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 277, 479, 278, 279, 280, 281, 282,
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 277, 481, 278, 279, 280, 281, 282,
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 277, 561, 278, 279, 280, 281, 282,
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 277, 562, 278, 279,
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
290, 291, 292, 293, 294, 295, 277, 563, 278, 279,
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
290, 291, 292, 293, 294, 295, 277, 564, 278, 279,
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
290, 291, 292, 293, 294, 295, 277, 565, 278, 279,
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
290, 291, 292, 293, 294, 295, 277, 566, 278, 279,
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
290, 291, 292, 293, 294, 295, 277, 591, 278, 279,
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
290, 291, 292, 293, 294, 295, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 277,
610, 278, 279, 280, 281, 282, 283, 284, 285, 286,
287, 288, 289, 290, 291, 292, 293, 294, 295, 277,
616, 278, 279, 280, 281, 282, 283, 284, 285, 286,
287, 288, 289, 290, 291, 292, 293, 294, 295, 277,
617, 278, 279, 280, 281, 282, 283, 284, 285, 286,
287, 288, 289, 290, 291, 292, 293, 294, 295, 277,
621, 278, 279, 280, 281, 282, 283, 284, 285, 286,
287, 288, 289, 290, 291, 292, 293, 294, 295, 277,
632, 278, 279, 280, 281, 282, 283, 284, 285, 286,
287, 288, 289, 290, 291, 292, 293, 294, 295, 277,
634, 278, 279, 280, 281, 282, 283, 284, 285, 286,
287, 288, 289, 290, 291, 292, 293, 294, 295, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
277, 296, 278, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
277, 459, 278, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
0, 465, 0, 0, 0, 0, 0, 0, 0, 71,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 466, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 71, 0, 0, 0, 0, 0, 0,
0, 475, 0, 72, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 476, 0, 0, 0, 461, 0, 72, 0, 0,
0, 73, 277, 0, 278, 279, 280, 281, 282, 283,
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
275, 542, 276, 277, 278, 279, 280, 281, 282, 283,
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
275, 0, 276, 277, 278, 279, 280, 281, 282, 283,
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
287, 288, 289, 290, 291, 292, 293, 279, 280, 281,
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 280, 281, 282, 283, 284, 285, 286, 287,
288, 289, 290, 291, 292, 293
294, 295, 480, 0, 537, 73, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 74, 0, 0, 0,
0, 0, 766, 75, 76, 77, 78, 79, -43, 80,
81, 82, 0, 0, 83, 84, 0, 85, 86, 87,
74, 0, 0, 0, 88, 89, 90, 75, 76, 77,
78, 79, 0, 80, 81, 82, 0, 0, 83, 84,
0, 85, 86, 87, 0, 0, 0, 0, 88, 89,
90, 277, 483, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 277, 543, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 277, 0, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 281, 282, 283, 284, 285, 286, 287, 288, 289,
290, 291, 292, 293, 294, 295, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 294, 295
};
 
static const yytype_int16 yycheck[] =
{
75, 111, 220, 23, 73, 18, 116, 4, 3, 4,
85, 25, 489, 231, 232, 10, 4, 92, 4, 10,
4, 4, 4, 21, 233, 492, 4, 5, 675, 15,
36, 15, 4, 15, 4, 30, 31, 4, 5, 10,
4, 4, 37, 38, 39, 4, 32, 58, 32, 4,
32, 4, 5, 59, 58, 59, 51, 52, 53, 0,
129, 130, 4, 132, 133, 60, 4, 132, 580, 138,
65, 4, 54, 55, 56, 57, 10, 132, 153, 154,
75, 58, 15, 148, 4, 80, 81, 82, 83, 84,
85, 86, 692, 148, 694, 15, 4, 5, 93, 32,
95, 58, 177, 178, 59, 180, 618, 66, 147, 10,
149, 578, 32, 188, 591, 16, 111, 59, 58, 700,
147, 132, 117, 118, 151, 49, 50, 727, 132, 107,
4, 5, 713, 208, 54, 55, 56, 57, 37, 102,
107, 147, 351, 58, 4, 5, 147, 148, 795, 218,
145, 149, 147, 37, 107, 152, 147, 152, 153, 636,
142, 149, 144, 149, 152, 149, 149, 242, 150, 147,
245, 246, 4, 248, 249, 147, 147, 147, 253, 254,
255, 256, 257, 147, 37, 260, 200, 201, 3, 4,
265, 266, 58, 507, 269, 270, 271, 785, 786, 107,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
75, 73, 107, 23, 220, 18, 4, 4, 4, 4,
85, 116, 4, 25, 239, 231, 232, 92, 4, 4,
492, 4, 5, 15, 4, 4, 5, 673, 4, 15,
15, 4, 21, 4, 4, 5, 495, 6, 4, 5,
32, 233, 58, 59, 6, 4, 32, 32, 70, 71,
72, 73, 74, 4, 581, 58, 15, 129, 130, 4,
132, 133, 54, 55, 56, 57, 138, 4, 4, 54,
55, 56, 57, 32, 0, 690, 4, 692, 153, 154,
126, 127, 128, 4, 5, 132, 698, 15, 4, 5,
617, 137, 4, 5, 147, 132, 149, 6, 4, 711,
146, 148, 177, 178, 32, 180, 4, 16, 147, 15,
725, 148, 151, 188, 59, 66, 132, 15, 4, 591,
579, 36, 59, 58, 107, 4, 32, 149, 107, 132,
6, 102, 147, 208, 32, 130, 151, 107, 133, 134,
135, 107, 37, 147, 59, 149, 218, 793, 54, 55,
142, 149, 144, 149, 152, 152, 54, 55, 150, 144,
149, 353, 634, 149, 147, 150, 149, 147, 147, 244,
149, 147, 247, 248, 147, 250, 251, 147, 147, 149,
255, 256, 257, 258, 259, 147, 107, 262, 200, 201,
149, 107, 267, 268, 100, 107, 271, 272, 273, 32,
33, 34, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 147, 4, 144, 37, 151, 302, 303, 665,
150, 37, 668, 107, 773, 774, 3, 4, 4, 147,
147, 149, 149, 557, 147, 4, 149, 107, 37, 4,
640, 361, 362, 363, 323, 37, 692, 39, 694, 147,
15, 149, 37, 30, 31, 4, 37, 32, 33, 34,
37, 38, 39, 147, 588, 149, 147, 32, 149, 348,
37, 350, 672, 4, 51, 52, 53, 147, 724, 149,
37, 727, 37, 60, 15, 139, 140, 141, 65, 54,
55, 56, 57, 70, 71, 72, 73, 74, 75, 37,
700, 32, 37, 80, 81, 82, 83, 84, 85, 86,
37, 334, 37, 713, 37, 37, 93, 37, 95, 136,
4, 4, 4, 54, 55, 4, 554, 4, 4, 4,
4, 15, 4, 4, 111, 4, 366, 3, 16, 130,
117, 118, 133, 134, 135, 4, 4, 432, 32, 434,
435, 436, 113, 16, 130, 59, 59, 133, 134, 135,
148, 130, 3, 4, 133, 134, 135, 4, 145, 10,
54, 55, 149, 4, 459, 152, 153, 462, 463, 144,
465, 130, 148, 4, 133, 134, 135, 472, 473, 30,
31, 4, 4, 4, 4, 480, 37, 38, 39, 4,
4, 425, 70, 71, 72, 73, 74, 4, 37, 4,
51, 52, 53, 144, 4, 4, 100, 37, 15, 60,
58, 37, 37, 37, 65, 4, 126, 127, 128, 30,
31, 32, 33, 34, 75, 32, 147, 137, 37, 80,
81, 82, 83, 84, 85, 86, 146, 4, 147, 37,
535, 37, 93, 37, 95, 37, 37, 54, 55, 37,
144, 37, 37, 37, 584, 37, 37, 37, 37, 37,
111, 37, 37, 58, 147, 10, 117, 118, 148, 59,
59, 149, 147, 10, 148, 147, 59, 66, 573, 149,
10, 4, 149, 149, 579, 74, 581, 149, 149, 619,
79, 149, 526, 527, 145, 149, 147, 149, 593, 149,
149, 152, 153, 4, 3, 4, 149, 4, 4, 98,
4, 4, 4, 4, 4, 104, 105, 106, 4, 614,
4, 4, 4, 4, 4, 4, 621, 37, 117, 148,
148, 30, 31, 4, 37, 36, 149, 147, 37, 38,
39, 40, 6, 7, 8, 9, 10, 11, 12, 13,
14, 789, 51, 52, 53, 4, 149, 16, 58, 37,
4, 60, 149, 801, 802, 66, 65, 656, 698, 4,
16, 37, 149, 74, 147, 149, 75, 149, 79, 3,
4, 80, 81, 82, 83, 84, 85, 86, 149, 149,
149, 149, 16, 149, 93, 149, 95, 98, 149, 148,
16, 4, 4, 104, 105, 106, 30, 31, 36, 149,
37, 149, 111, 37, 38, 39, 117, 102, 117, 118,
92, 716, 59, 678, 679, 680, 681, 51, 52, 53,
93, 149, 687, 16, 38, 58, 60, 37, 37, 37,
149, 65, 10, 147, 37, 103, 145, 95, 143, 59,
148, 75, 37, 152, 153, 10, 80, 81, 82, 83,
84, 85, 86, 3, 4, 37, 721, 722, 16, 93,
58, 95, 28, 29, 30, 31, 32, 33, 34, 734,
735, 148, 737, 58, 739, 740, 37, 111, 16, 59,
30, 31, 37, 117, 118, 37, 751, 37, 38, 39,
6, 7, 8, 9, 10, 11, 12, 13, 14, 764,
37, 51, 52, 53, 37, 37, 37, 37, 37, 37,
60, 145, 37, 58, 25, 65, 781, 37, 152, 153,
4, 37, 37, 37, 37, 75, 4, 102, 37, 37,
80, 81, 82, 83, 84, 85, 86, 4, 149, 37,
37, 37, 149, 93, 149, 95, 25, 149, 15, 24,
295, 296, 297, 298, 58, 450, 147, 58, 149, 304,
305, 147, 147, 149, 139, 140, 141, 58, 144, 3,
4, 49, 50, 147, 130, 149, 144, 133, 134, 135,
37, 130, 638, 325, 133, 134, 135, 147, 148, 364,
365, 366, 37, 4, 39, 663, 30, 31, 666, 147,
147, 149, 149, 37, 38, 39, 3, 4, 350, 58,
352, 4, 4, 37, 670, 37, 511, 51, 52, 53,
783, 784, 690, 37, 692, 37, 60, 771, 772, 37,
37, 65, 37, 37, 37, 37, 70, 71, 72, 73,
74, 75, 698, 37, 136, 4, 80, 81, 82, 83,
84, 85, 86, 336, 722, 711, 15, 725, 37, 93,
37, 95, 37, 37, 559, 37, 4, 59, 4, 555,
4, 4, 4, 32, 66, 4, 4, 111, 4, 369,
4, 3, 74, 117, 118, 4, 4, 79, 113, 4,
435, 16, 437, 438, 439, 54, 55, 56, 57, 16,
3, 4, 59, 6, 148, 4, 98, 59, 148, 4,
4, 145, 104, 105, 106, 149, 15, 462, 152, 153,
465, 466, 4, 468, 4, 117, 4, 30, 31, 4,
475, 476, 4, 32, 37, 38, 39, 130, 483, 4,
133, 134, 135, 4, 4, 37, 428, 4, 51, 52,
53, 4, 4, 37, 58, 54, 55, 60, 36, 147,
37, 37, 65, 4, 28, 29, 30, 31, 32, 33,
34, 37, 75, 4, 37, 37, 147, 80, 81, 82,
83, 84, 85, 86, 147, 144, 37, 37, 66, 37,
93, 536, 95, 37, 37, 37, 74, 37, 37, 37,
37, 79, 30, 31, 32, 33, 34, 37, 111, 58,
585, 37, 37, 37, 117, 118, 37, 147, 59, 37,
98, 148, 6, 59, 59, 66, 104, 105, 106, 574,
6, 6, 148, 74, 4, 580, 149, 582, 79, 117,
147, 149, 145, 618, 147, 527, 528, 149, 593, 152,
153, 149, 149, 149, 4, 4, 149, 98, 3, 4,
149, 6, 149, 104, 105, 106, 149, 4, 613, 4,
4, 4, 4, 4, 619, 4, 117, 4, 4, 4,
148, 148, 4, 4, 37, 30, 31, 4, 147, 37,
4, 149, 37, 38, 39, 149, 58, 16, 37, 4,
4, 787, 149, 149, 149, 16, 51, 52, 53, 37,
16, 102, 654, 799, 800, 60, 149, 149, 147, 92,
65, 696, 149, 4, 4, 93, 149, 149, 36, 149,
75, 16, 149, 148, 37, 80, 81, 82, 83, 84,
85, 86, 149, 149, 59, 149, 38, 37, 93, 58,
95, 37, 149, 6, 147, 3, 4, 6, 7, 8,
9, 10, 11, 12, 13, 14, 111, 148, 37, 714,
148, 143, 117, 118, 37, 95, 59, 6, 37, 103,
16, 58, 30, 31, 58, 37, 16, 37, 37, 37,
38, 39, 40, 37, 37, 37, 37, 37, 37, 37,
145, 59, 147, 51, 52, 53, 37, 152, 153, 37,
25, 58, 60, 37, 4, 37, 37, 65, 6, 7,
8, 9, 10, 11, 12, 13, 14, 75, 37, 4,
3, 4, 80, 81, 82, 83, 84, 85, 86, 37,
102, 37, 149, 16, 37, 93, 37, 95, 149, 149,
37, 149, 149, 149, 149, 59, 25, 30, 31, 36,
149, 149, 4, 111, 37, 38, 39, 4, 4, 117,
118, 149, 4, 149, 676, 677, 678, 679, 51, 52,
53, 149, 149, 685, 149, 149, 249, 60, 149, 149,
735, 715, 65, 149, 149, 774, 444, 145, 143, 670,
216, 755, 75, 545, 152, 153, 505, 80, 81, 82,
83, 84, 85, 86, 3, 4, 595, 719, 720, 26,
93, 100, 95, 726, 438, 341, -1, 570, 246, -1,
732, 733, -1, 735, -1, 737, 738, -1, 111, -1,
-1, 30, 31, -1, 117, 118, -1, 749, 37, 38,
39, -1, -1, -1, -1, -1, -1, -1, -1, -1,
762, -1, 51, 52, 53, -1, -1, -1, -1, -1,
-1, 60, 145, -1, -1, -1, 65, 779, -1, 152,
153, -1, -1, -1, -1, -1, 75, -1, -1, -1,
-1, 80, 81, 82, 83, 84, 85, 86, 4, -1,
-1, -1, -1, -1, 93, -1, 95, -1, -1, 15,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, -1, 111, -1, -1, -1, 32, -1, 117, 118,
-1, -1, -1, -1, -1, 41, 42, 43, 44, 45,
-1, -1, -1, -1, -1, -1, -1, -1, 54, 55,
56, 57, -1, -1, -1, -1, 145, -1, -1, -1,
66, -1, -1, 152, 153, -1, 15, -1, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, -1, -1, 94, -1,
96, 4, -1, -1, 100, -1, -1, -1, 104, 105,
106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15, 117, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
149, 111, 149, 149, 59, 32, 36, 117, 118, 4,
149, 4, 149, 149, 41, 42, 43, 44, 45, 149,
149, 149, 4, 4, 247, 149, 149, 54, 55, 56,
57, 216, 149, 149, 143, 145, 149, 237, 149, 66,
717, 737, 152, 153, 672, 15, 544, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 776, 728, 94, 441, 96,
4, 757, 502, 100, 595, 26, 100, 104, 105, 106,
339, 569, -1, 244, -1, -1, -1, -1, -1, 15,
117, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, -1,
435, 138, 46, 47, 48, 142, -1, 144, -1, -1,
-1, 148, -1, 150, -1, -1, -1, 61, 62, 63,
64, -1, 66, 67, 68, 69, -1, -1, -1, -1,
-1, -1, 76, 77, 78, 79, 4, -1, -1, -1,
-1, -1, -1, 87, 88, 89, 90, 91, 92, -1,
-1, -1, -1, 97, 98, 99, -1, -1, -1, -1,
104, 105, 106, -1, -1, -1, -1, 147, 36, 149,
-1, -1, -1, 117, -1, -1, -1, -1, 46, 47,
48, -1, -1, -1, -1, -1, 130, -1, -1, -1,
-1, -1, 136, 61, 62, 63, 64, -1, 66, 67,
68, 69, -1, -1, 148, -1, -1, -1, 76, 77,
78, 79, -1, 149, -1, -1, -1, -1, -1, 87,
88, 89, 90, 91, 92, -1, -1, -1, -1, 97,
98, 99, -1, -1, -1, -1, 104, 105, 106, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 117,
-1, -1, 138, 46, 47, 48, 142, -1, 144, -1,
-1, -1, 148, -1, 150, -1, -1, -1, 61, 62,
63, 64, -1, 66, 67, 68, 69, -1, -1, -1,
-1, -1, -1, 76, 77, 78, 79, 4, -1, -1,
-1, -1, -1, -1, 87, 88, 89, 90, 91, 92,
-1, -1, -1, -1, 97, 98, 99, -1, -1, -1,
-1, 104, 105, 106, -1, -1, -1, -1, 147, 36,
149, -1, -1, -1, 117, -1, -1, -1, -1, 46,
47, 48, -1, -1, -1, -1, -1, 130, -1, -1,
-1, -1, -1, 136, 61, 62, 63, 64, -1, 66,
67, 68, 69, -1, -1, 148, -1, -1, -1, 76,
77, 78, 79, -1, 149, -1, -1, -1, -1, -1,
87, 88, 89, 90, 91, 92, -1, -1, -1, -1,
97, 98, 99, -1, -1, -1, -1, 104, 105, 106,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 130, 19, 20, 21, 22, 23, 24, 25,
117, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 130, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
15, 148, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 15, 149, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 15, 149, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 15, 149, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 15, 149, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 15, 149, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 15, 149, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 15, 149, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 15, 149, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 15, 149, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 15, 149, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 15, 149, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 15, 149, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 15,
149, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
148, 17, 18, 19, 20, 21, 22, 23, 24, 25,
149, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
-1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
149, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
-1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
149, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
-1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
149, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
-1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
-1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 15, 149, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 15, 149, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 15, 149, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 15, 149, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 15, 149, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 15, 149, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 15, 149, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 15, 149, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 15, 149, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 15, 149, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 15, 149, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 15, 149, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 15, 149,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 15, 149,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 15, 149,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 15, 149,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 15, 149,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 15, 149,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, -1, 4,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 15,
147, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
147, 17, 18, 19, 20, 21, 22, 23, 24, 25,
149, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, -1,
147, -1, -1, -1, 59, -1, -1, -1, 4, -1,
-1, 66, -1, -1, -1, -1, -1, -1, -1, 74,
147, -1, -1, -1, 79, -1, -1, -1, -1, -1,
-1, -1, 4, -1, -1, -1, -1, -1, -1, -1,
147, -1, 38, 98, -1, -1, -1, -1, -1, 104,
105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
147, -1, 117, -1, 36, -1, 38, -1, -1, -1,
66, 15, -1, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 147, -1, 37, 66, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 101, -1, -1, -1, -1,
-1, 147, 108, 109, 110, 111, 112, 113, 114, 115,
116, -1, -1, 119, 120, -1, 122, 123, 124, 101,
-1, -1, -1, 129, 130, 131, 108, 109, 110, 111,
112, -1, 114, 115, 116, -1, -1, 119, 120, -1,
122, 123, 124, -1, -1, -1, -1, 129, 130, 131,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15, 147, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
15, 147, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 20, 21, 22,
-1, 147, -1, -1, -1, -1, -1, -1, -1, 4,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 147, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 4, -1, -1, -1, -1, -1, -1,
-1, 147, -1, 38, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 147, -1, -1, -1, 36, -1, 38, -1, -1,
-1, 66, 15, -1, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34
33, 34, 147, -1, 37, 66, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 101, -1, -1, -1,
-1, -1, 147, 108, 109, 110, 111, 112, 113, 114,
115, 116, -1, -1, 119, 120, -1, 122, 123, 124,
101, -1, -1, -1, 129, 130, 131, 108, 109, 110,
111, 112, -1, 114, 115, 116, -1, -1, 119, 120,
-1, 122, 123, 124, -1, -1, -1, -1, 129, 130,
131, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 15, -1, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34
};
 
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1487,175 → 1731,88
static const yytype_uint16 yystos[] =
{
0, 126, 127, 128, 137, 146, 155, 171, 172, 159,
160, 157, 158, 273, 274, 268, 269, 0, 173, 161,
4, 58, 132, 277, 278, 58, 270, 271, 4, 46,
160, 157, 158, 271, 272, 266, 267, 0, 173, 161,
4, 58, 132, 275, 276, 58, 268, 269, 4, 46,
47, 48, 61, 62, 63, 64, 66, 67, 68, 69,
76, 77, 78, 79, 87, 88, 89, 90, 91, 92,
97, 98, 99, 104, 105, 106, 117, 130, 148, 174,
183, 185, 206, 208, 219, 220, 222, 224, 260, 275,
276, 4, 38, 66, 101, 108, 109, 110, 111, 112,
181, 183, 204, 206, 217, 218, 220, 222, 258, 273,
274, 4, 38, 66, 101, 108, 109, 110, 111, 112,
114, 115, 116, 119, 120, 122, 123, 124, 129, 130,
131, 162, 10, 4, 130, 133, 134, 135, 280, 281,
58, 278, 134, 135, 272, 281, 271, 6, 7, 8,
9, 10, 11, 12, 13, 14, 204, 58, 58, 49,
131, 162, 6, 4, 130, 133, 134, 135, 278, 279,
58, 276, 134, 135, 270, 279, 269, 6, 7, 8,
9, 10, 11, 12, 13, 14, 202, 58, 58, 49,
50, 37, 37, 4, 156, 58, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 175, 37, 37,
37, 37, 186, 37, 147, 148, 205, 136, 4, 156,
37, 37, 184, 37, 147, 148, 203, 136, 4, 156,
4, 3, 4, 30, 31, 37, 38, 39, 51, 52,
53, 60, 65, 75, 80, 81, 82, 83, 84, 85,
86, 93, 95, 111, 117, 118, 145, 152, 153, 228,
4, 4, 166, 4, 165, 164, 4, 4, 4, 228,
4, 3, 4, 167, 168, 169, 4, 113, 228, 4,
16, 16, 59, 148, 280, 59, 148, 226, 227, 226,
184, 261, 4, 4, 4, 4, 176, 4, 66, 209,
210, 211, 4, 4, 4, 156, 156, 4, 156, 149,
156, 221, 223, 4, 225, 177, 178, 37, 156, 4,
4, 4, 37, 168, 58, 10, 147, 163, 10, 147,
228, 228, 228, 37, 37, 37, 37, 37, 37, 37,
86, 93, 95, 111, 117, 118, 145, 152, 153, 226,
4, 4, 166, 4, 165, 164, 4, 4, 4, 226,
4, 3, 4, 167, 168, 169, 4, 113, 226, 4,
16, 16, 59, 148, 278, 59, 148, 224, 225, 224,
182, 259, 4, 4, 4, 4, 176, 4, 66, 207,
208, 209, 4, 4, 4, 156, 156, 4, 156, 149,
156, 219, 221, 4, 223, 4, 5, 107, 177, 37,
156, 4, 4, 4, 37, 168, 58, 6, 147, 163,
6, 147, 226, 226, 226, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 228, 228, 15, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 147, 10, 147, 228, 147, 147,
4, 147, 10, 147, 228, 147, 147, 4, 170, 58,
281, 281, 148, 4, 130, 133, 134, 135, 59, 148,
228, 4, 59, 66, 74, 98, 185, 235, 4, 59,
262, 147, 149, 149, 173, 212, 156, 59, 147, 207,
147, 149, 149, 149, 149, 149, 149, 149, 207, 149,
207, 147, 225, 149, 149, 4, 5, 107, 179, 177,
149, 10, 10, 10, 228, 149, 277, 228, 228, 161,
228, 228, 149, 228, 228, 228, 228, 228, 4, 4,
228, 4, 4, 4, 4, 228, 228, 4, 4, 228,
228, 228, 4, 228, 228, 228, 228, 228, 228, 228,
228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
228, 228, 228, 228, 228, 4, 4, 4, 228, 228,
3, 4, 4, 4, 147, 283, 148, 148, 4, 132,
148, 279, 236, 156, 241, 246, 263, 4, 36, 37,
216, 213, 211, 4, 156, 156, 225, 37, 4, 5,
107, 147, 149, 226, 226, 226, 147, 59, 36, 147,
149, 149, 147, 147, 149, 147, 149, 149, 149, 149,
149, 149, 147, 147, 149, 149, 149, 147, 149, 149,
16, 4, 281, 135, 58, 132, 148, 37, 40, 228,
250, 251, 248, 16, 228, 252, 251, 228, 265, 147,
4, 152, 217, 218, 16, 209, 149, 180, 37, 4,
5, 107, 149, 149, 149, 4, 228, 228, 228, 228,
228, 228, 4, 228, 148, 284, 16, 282, 70, 71,
72, 73, 74, 149, 249, 37, 37, 250, 16, 102,
230, 184, 16, 92, 253, 247, 4, 102, 266, 4,
4, 149, 218, 93, 214, 36, 179, 182, 37, 149,
149, 149, 149, 149, 149, 149, 149, 59, 281, 281,
149, 228, 16, 37, 38, 231, 36, 230, 58, 37,
267, 37, 264, 149, 10, 207, 149, 179, 181, 148,
284, 149, 228, 37, 143, 232, 103, 233, 184, 228,
266, 228, 148, 226, 95, 215, 149, 179, 59, 39,
250, 149, 228, 233, 37, 242, 59, 149, 149, 10,
149, 37, 16, 149, 237, 228, 58, 266, 226, 228,
139, 140, 141, 234, 149, 243, 149, 58, 256, 250,
238, 4, 59, 16, 4, 15, 32, 41, 42, 43,
44, 45, 54, 55, 56, 57, 66, 94, 96, 100,
117, 138, 142, 144, 148, 150, 187, 188, 190, 193,
194, 196, 199, 200, 201, 206, 257, 244, 37, 37,
37, 37, 156, 37, 197, 37, 37, 37, 4, 54,
188, 192, 37, 4, 150, 188, 196, 59, 37, 205,
58, 25, 254, 54, 55, 100, 144, 187, 54, 55,
187, 187, 187, 198, 202, 226, 37, 195, 4, 189,
187, 191, 37, 151, 207, 192, 192, 37, 239, 226,
200, 4, 102, 229, 37, 37, 149, 37, 149, 37,
37, 149, 149, 149, 200, 149, 228, 4, 193, 21,
149, 149, 187, 188, 149, 151, 192, 254, 149, 59,
25, 255, 187, 187, 191, 187, 187, 36, 147, 149,
4, 187, 149, 229, 258, 4, 10, 16, 203, 149,
149, 149, 149, 149, 4, 255, 255, 202, 4, 245,
149, 149, 187, 149, 149, 149, 203, 203, 207, 149,
205, 240, 259, 207, 207
37, 37, 37, 37, 37, 226, 226, 15, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 147, 6, 147, 226,
147, 147, 4, 147, 6, 147, 226, 147, 147, 4,
170, 58, 279, 279, 148, 4, 130, 133, 134, 135,
59, 148, 226, 4, 59, 66, 74, 98, 183, 233,
4, 59, 260, 147, 149, 149, 173, 210, 156, 59,
147, 205, 147, 149, 149, 149, 149, 149, 149, 149,
205, 149, 205, 147, 223, 149, 37, 4, 5, 107,
147, 149, 177, 149, 6, 6, 6, 226, 149, 275,
226, 226, 161, 226, 226, 149, 226, 226, 226, 226,
226, 4, 4, 226, 4, 4, 4, 4, 226, 226,
4, 4, 226, 226, 226, 4, 226, 226, 226, 226,
226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
226, 226, 226, 226, 226, 226, 226, 226, 4, 4,
4, 226, 226, 3, 4, 4, 4, 147, 281, 148,
148, 4, 132, 148, 277, 234, 156, 239, 244, 261,
4, 36, 37, 214, 211, 209, 4, 156, 156, 223,
178, 37, 4, 5, 107, 149, 224, 224, 224, 147,
59, 36, 147, 149, 149, 147, 147, 149, 147, 149,
149, 149, 149, 149, 149, 147, 147, 149, 149, 149,
147, 149, 149, 16, 4, 279, 135, 58, 132, 148,
37, 40, 226, 248, 249, 246, 16, 226, 250, 249,
226, 263, 147, 4, 152, 215, 216, 16, 207, 149,
177, 180, 37, 149, 149, 149, 4, 226, 226, 226,
226, 226, 226, 4, 226, 148, 282, 16, 280, 70,
71, 72, 73, 74, 149, 247, 37, 37, 248, 16,
102, 228, 182, 16, 92, 251, 245, 4, 102, 264,
4, 4, 149, 216, 93, 212, 36, 149, 177, 179,
149, 149, 149, 149, 149, 149, 149, 149, 59, 279,
279, 149, 226, 16, 37, 38, 229, 36, 228, 58,
37, 265, 37, 262, 149, 6, 205, 149, 177, 148,
282, 149, 226, 37, 143, 230, 103, 231, 182, 226,
264, 226, 148, 224, 95, 213, 149, 59, 39, 248,
149, 226, 231, 37, 240, 59, 149, 149, 6, 37,
16, 149, 235, 226, 58, 264, 224, 226, 139, 140,
141, 232, 149, 241, 149, 58, 254, 248, 236, 4,
59, 16, 4, 15, 32, 41, 42, 43, 44, 45,
54, 55, 56, 57, 66, 94, 96, 100, 117, 138,
142, 144, 148, 150, 185, 186, 188, 191, 192, 194,
197, 198, 199, 204, 255, 242, 37, 37, 37, 37,
156, 37, 195, 37, 37, 37, 4, 54, 186, 190,
37, 4, 150, 186, 194, 59, 37, 203, 58, 25,
252, 54, 55, 100, 144, 185, 54, 55, 185, 185,
185, 196, 200, 224, 37, 193, 4, 187, 185, 189,
37, 151, 205, 190, 190, 37, 237, 224, 198, 4,
102, 227, 37, 37, 149, 37, 149, 37, 37, 149,
149, 149, 198, 149, 226, 4, 191, 21, 149, 149,
185, 186, 149, 151, 190, 252, 149, 59, 25, 253,
185, 185, 189, 185, 185, 36, 147, 149, 4, 185,
149, 227, 256, 4, 6, 16, 201, 149, 149, 149,
149, 149, 4, 253, 253, 200, 4, 243, 149, 149,
185, 149, 149, 149, 201, 201, 205, 149, 203, 238,
257, 205, 205
};
 
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint16 yyr1[] =
{
0, 154, 155, 155, 155, 155, 155, 156, 158, 157,
160, 159, 161, 161, 162, 162, 162, 162, 162, 162,
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
163, 162, 162, 162, 164, 164, 164, 165, 165, 166,
166, 167, 167, 167, 169, 168, 170, 170, 170, 172,
171, 173, 173, 174, 174, 174, 174, 174, 174, 174,
174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
174, 174, 175, 174, 174, 176, 174, 174, 174, 174,
174, 174, 174, 178, 177, 179, 179, 179, 179, 179,
179, 180, 179, 181, 179, 182, 179, 183, 184, 184,
184, 185, 185, 186, 185, 187, 187, 187, 188, 188,
188, 188, 188, 188, 188, 188, 188, 188, 188, 189,
189, 190, 191, 191, 192, 192, 193, 193, 193, 193,
193, 193, 194, 195, 194, 196, 196, 196, 196, 196,
196, 196, 196, 197, 196, 198, 196, 199, 199, 200,
200, 201, 201, 201, 201, 201, 202, 203, 203, 204,
204, 204, 204, 204, 204, 204, 204, 205, 205, 206,
206, 206, 206, 206, 207, 207, 208, 209, 209, 210,
210, 212, 211, 213, 211, 214, 215, 216, 216, 217,
217, 218, 218, 219, 220, 220, 221, 221, 222, 223,
223, 224, 224, 225, 225, 225, 227, 226, 228, 228,
228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
228, 228, 228, 228, 228, 228, 229, 229, 230, 230,
231, 231, 232, 232, 233, 233, 234, 234, 234, 234,
236, 237, 238, 239, 240, 235, 241, 242, 243, 244,
245, 235, 246, 247, 235, 248, 235, 249, 249, 249,
249, 249, 250, 250, 250, 251, 251, 251, 251, 252,
252, 253, 253, 254, 254, 255, 255, 256, 257, 258,
259, 256, 260, 261, 261, 263, 264, 262, 265, 266,
266, 266, 267, 267, 269, 268, 270, 270, 271, 272,
274, 273, 276, 275, 277, 277, 278, 278, 278, 279,
279, 280, 280, 280, 280, 280, 281, 281, 281, 281,
282, 281, 283, 281, 281, 281, 281, 281, 281, 281,
284, 284
};
 
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
0, 2, 2, 2, 2, 2, 2, 1, 0, 4,
0, 2, 3, 0, 2, 4, 1, 1, 2, 1,
4, 4, 3, 2, 4, 3, 4, 4, 4, 4,
4, 2, 2, 2, 4, 4, 2, 2, 2, 2,
0, 5, 2, 0, 3, 2, 0, 1, 3, 1,
3, 0, 1, 3, 0, 2, 1, 2, 3, 0,
2, 2, 0, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 4, 4, 4, 4, 8, 4, 1,
1, 4, 0, 5, 4, 0, 5, 4, 4, 3,
3, 6, 4, 0, 2, 1, 3, 2, 1, 3,
2, 0, 5, 0, 7, 0, 6, 4, 2, 2,
0, 4, 2, 0, 7, 1, 1, 1, 1, 5,
4, 4, 4, 7, 7, 7, 7, 8, 4, 1,
3, 4, 2, 1, 3, 1, 1, 2, 3, 4,
4, 5, 1, 0, 5, 2, 1, 1, 1, 4,
1, 4, 4, 0, 8, 0, 5, 2, 1, 0,
1, 1, 1, 1, 1, 1, 1, 2, 0, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
3, 6, 6, 6, 1, 0, 4, 1, 0, 3,
1, 0, 7, 0, 5, 3, 3, 0, 3, 1,
2, 1, 2, 4, 4, 3, 3, 1, 4, 3,
0, 1, 1, 0, 2, 3, 0, 2, 2, 3,
4, 2, 2, 2, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
5, 3, 3, 4, 1, 1, 4, 4, 4, 4,
4, 4, 4, 6, 6, 6, 4, 6, 4, 1,
6, 6, 6, 4, 4, 4, 3, 0, 4, 0,
4, 0, 1, 0, 4, 0, 1, 1, 1, 0,
0, 0, 0, 0, 0, 20, 0, 0, 0, 0,
0, 18, 0, 0, 7, 0, 5, 1, 1, 1,
1, 1, 3, 0, 2, 3, 2, 6, 10, 2,
1, 0, 1, 2, 0, 0, 3, 0, 0, 0,
0, 11, 4, 0, 2, 0, 0, 6, 1, 0,
3, 5, 0, 3, 0, 2, 1, 2, 4, 2,
0, 2, 0, 5, 1, 2, 4, 5, 6, 1,
2, 0, 2, 4, 4, 8, 1, 1, 3, 3,
0, 9, 0, 7, 1, 3, 1, 3, 1, 3,
0, 1
};
 
 
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY (-2)
1666,16 → 1823,22
#define YYERROR goto yyerrorlab
 
 
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.
Once GCC version 2 has supplanted version 1, this can go. */
 
#define YYFAIL goto yyerrlab
 
#define YYRECOVERING() (!!yyerrstatus)
 
#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY) \
if (yychar == YYEMPTY && yylen == 1) \
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (yylen); \
yystate = *yyssp; \
yytoken = YYTRANSLATE (yychar); \
YYPOPSTACK (1); \
goto yybackup; \
} \
else \
1683,14 → 1846,63
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (0)
while (YYID (0))
 
/* Error token number */
 
#define YYTERROR 1
#define YYERRCODE 256
 
 
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
If N is 0, then set CURRENT to the empty location which ends
the previous symbol: RHS[0] (always defined). */
 
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N) \
do \
if (YYID (N)) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
while (YYID (0))
#endif
 
 
/* YY_LOCATION_PRINT -- Print the location on the stream.
This macro was not mandated originally: define only if we know
we won't break user code: when these are the locations we know. */
 
#ifndef YY_LOCATION_PRINT
# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
# define YY_LOCATION_PRINT(File, Loc) \
fprintf (File, "%d.%d-%d.%d", \
(Loc).first_line, (Loc).first_column, \
(Loc).last_line, (Loc).last_column)
# else
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
# endif
#endif
 
 
/* YYLEX -- calling `yylex' with the right arguments. */
 
#ifdef YYLEX_PARAM
# define YYLEX yylex (YYLEX_PARAM)
#else
# define YYLEX yylex ()
#endif
 
/* Enable debugging if requested. */
#if YYDEBUG
 
1703,14 → 1915,8
do { \
if (yydebug) \
YYFPRINTF Args; \
} while (0)
} while (YYID (0))
 
/* This macro is provided for backward compatibility. */
#ifndef YY_LOCATION_PRINT
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
#endif
 
 
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
do { \
if (yydebug) \
1720,26 → 1926,40
Type, Value); \
YYFPRINTF (stderr, "\n"); \
} \
} while (0)
} while (YYID (0))
 
 
/*----------------------------------------.
| Print this symbol's value on YYOUTPUT. |
`----------------------------------------*/
/*--------------------------------.
| Print this symbol on YYOUTPUT. |
`--------------------------------*/
 
/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
#else
static void
yy_symbol_value_print (yyoutput, yytype, yyvaluep)
FILE *yyoutput;
int yytype;
YYSTYPE const * const yyvaluep;
#endif
{
FILE *yyo = yyoutput;
YYUSE (yyo);
if (!yyvaluep)
return;
# ifdef YYPRINT
if (yytype < YYNTOKENS)
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# else
YYUSE (yyoutput);
# endif
YYUSE (yytype);
switch (yytype)
{
default:
break;
}
}
 
 
/*--------------------------------.
1746,11 → 1966,22
| Print this symbol on YYOUTPUT. |
`--------------------------------*/
 
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
#else
static void
yy_symbol_print (yyoutput, yytype, yyvaluep)
FILE *yyoutput;
int yytype;
YYSTYPE const * const yyvaluep;
#endif
{
YYFPRINTF (yyoutput, "%s %s (",
yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
if (yytype < YYNTOKENS)
YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
else
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
 
yy_symbol_value_print (yyoutput, yytype, yyvaluep);
YYFPRINTF (yyoutput, ")");
1761,15 → 1992,20
| TOP (included). |
`------------------------------------------------------------------*/
 
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
#else
static void
yy_stack_print (bottom, top)
yytype_int16 *bottom;
yytype_int16 *top;
#endif
{
YYFPRINTF (stderr, "Stack now");
for (; yybottom <= yytop; yybottom++)
{
int yybot = *yybottom;
YYFPRINTF (stderr, " %d", yybot);
}
for (; bottom <= top; ++bottom)
YYFPRINTF (stderr, " %d", *bottom);
YYFPRINTF (stderr, "\n");
}
 
1777,7 → 2013,7
do { \
if (yydebug) \
yy_stack_print ((Bottom), (Top)); \
} while (0)
} while (YYID (0))
 
 
/*------------------------------------------------.
1784,23 → 2020,30
| Report that the YYRULE is going to be reduced. |
`------------------------------------------------*/
 
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
#else
static void
yy_reduce_print (yyvsp, yyrule)
YYSTYPE *yyvsp;
int yyrule;
#endif
{
unsigned long int yylno = yyrline[yyrule];
int yynrhs = yyr2[yyrule];
int yyi;
unsigned long int yylno = yyrline[yyrule];
YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
yyrule - 1, yylno);
/* The symbols being reduced. */
for (yyi = 0; yyi < yynrhs; yyi++)
{
YYFPRINTF (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr,
yystos[yyssp[yyi + 1 - yynrhs]],
fprintf (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
&(yyvsp[(yyi + 1) - (yynrhs)])
);
YYFPRINTF (stderr, "\n");
fprintf (stderr, "\n");
}
}
 
1807,8 → 2050,8
# define YY_REDUCE_PRINT(Rule) \
do { \
if (yydebug) \
yy_reduce_print (yyssp, yyvsp, Rule); \
} while (0)
yy_reduce_print (yyvsp, Rule); \
} while (YYID (0))
 
/* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */
1838,6 → 2081,7
#endif
 
 
 
#if YYERROR_VERBOSE
 
# ifndef yystrlen
1845,8 → 2089,15
# define yystrlen strlen
# else
/* Return the length of YYSTR. */
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static YYSIZE_T
yystrlen (const char *yystr)
#else
static YYSIZE_T
yystrlen (yystr)
const char *yystr;
#endif
{
YYSIZE_T yylen;
for (yylen = 0; yystr[yylen]; yylen++)
1862,8 → 2113,16
# else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
YYDEST. */
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static char *
yystpcpy (char *yydest, const char *yysrc)
#else
static char *
yystpcpy (yydest, yysrc)
char *yydest;
const char *yysrc;
#endif
{
char *yyd = yydest;
const char *yys = yysrc;
1924,226 → 2183,251
}
# endif
 
/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
about the unexpected token YYTOKEN for the state stack whose top is
YYSSP.
/* Copy into YYRESULT an error message about the unexpected token
YYCHAR while in state YYSTATE. Return the number of bytes copied,
including the terminating null byte. If YYRESULT is null, do not
copy anything; just return the number of bytes that would be
copied. As a special case, return 0 if an ordinary "syntax error"
message will do. Return YYSIZE_MAXIMUM if overflow occurs during
size calculation. */
static YYSIZE_T
yysyntax_error (char *yyresult, int yystate, int yychar)
{
int yyn = yypact[yystate];
 
Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
not large enough to hold the message. In that case, also set
*YYMSG_ALLOC to the required number of bytes. Return 2 if the
required number of bytes is too large to store. */
static int
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
yytype_int16 *yyssp, int yytoken)
if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
return 0;
else
{
YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
int yytype = YYTRANSLATE (yychar);
YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
YYSIZE_T yysize = yysize0;
YYSIZE_T yysize1;
int yysize_overflow = 0;
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
/* Internationalized format string. */
const char *yyformat = YY_NULL;
/* Arguments of yyformat. */
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
/* Number of reported tokens (one for the "unexpected", one per
"expected"). */
int yycount = 0;
int yyx;
 
/* There are many possibilities here to consider:
- If this state is a consistent state with a default action, then
the only way this function was invoked is if the default action
is an error action. In that case, don't check for expected
tokens because there are none.
- The only way there can be no lookahead present (in yychar) is if
this state is a consistent state with a default action. Thus,
detecting the absence of a lookahead is sufficient to determine
that there is no unexpected or expected token to report. In that
case, just report a simple "syntax error".
- Don't assume there isn't a lookahead just because this state is a
consistent state with a default action. There might have been a
previous inconsistent state, consistent state with a non-default
action, or user semantic action that manipulated yychar.
- Of course, the expected token list depends on states to have
correct lookahead information, and it depends on the parser not
to perform extra reductions after fetching a lookahead from the
scanner and before detecting a syntax error. Thus, state merging
(from LALR or IELR) and default reductions corrupt the expected
token list. However, the list is correct for canonical LR with
one exception: it will still contain any token that will not be
accepted due to an error action in a later state.
*/
if (yytoken != YYEMPTY)
{
int yyn = yypact[*yyssp];
yyarg[yycount++] = yytname[yytoken];
if (!yypact_value_is_default (yyn))
{
# if 0
/* This is so xgettext sees the translatable formats that are
constructed on the fly. */
YY_("syntax error, unexpected %s");
YY_("syntax error, unexpected %s, expecting %s");
YY_("syntax error, unexpected %s, expecting %s or %s");
YY_("syntax error, unexpected %s, expecting %s or %s or %s");
YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
# endif
char *yyfmt;
char const *yyf;
static char const yyunexpected[] = "syntax error, unexpected %s";
static char const yyexpecting[] = ", expecting %s";
static char const yyor[] = " or %s";
char yyformat[sizeof yyunexpected
+ sizeof yyexpecting - 1
+ ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
* (sizeof yyor - 1))];
char const *yyprefix = yyexpecting;
 
/* Start YYX at -YYN if negative to avoid negative indexes in
YYCHECK. In other words, skip the first -YYN actions for
this state because they are default actions. */
YYCHECK. */
int yyxbegin = yyn < 0 ? -yyn : 0;
 
/* Stay within bounds of both yycheck and yytname. */
int yychecklim = YYLAST - yyn + 1;
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
int yyx;
int yycount = 1;
 
yyarg[0] = yytname[yytype];
yyfmt = yystpcpy (yyformat, yyunexpected);
 
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
&& !yytable_value_is_error (yytable[yyx + yyn]))
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{
if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
{
yycount = 1;
yysize = yysize0;
yyformat[sizeof yyunexpected - 1] = '\0';
break;
}
yyarg[yycount++] = yytname[yyx];
{
YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
if (! (yysize <= yysize1
&& yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
yysize1 = yysize + yytnamerr (0, yytname[yyx]);
yysize_overflow |= (yysize1 < yysize);
yysize = yysize1;
yyfmt = yystpcpy (yyfmt, yyprefix);
yyprefix = yyor;
}
}
}
}
 
switch (yycount)
{
# define YYCASE_(N, S) \
case N: \
yyformat = S; \
break
YYCASE_(0, YY_("syntax error"));
YYCASE_(1, YY_("syntax error, unexpected %s"));
YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
# undef YYCASE_
}
 
{
YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
yyf = YY_(yyformat);
yysize1 = yysize + yystrlen (yyf);
yysize_overflow |= (yysize1 < yysize);
yysize = yysize1;
}
 
if (*yymsg_alloc < yysize)
if (yysize_overflow)
return YYSIZE_MAXIMUM;
 
if (yyresult)
{
*yymsg_alloc = 2 * yysize;
if (! (yysize <= *yymsg_alloc
&& *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
*yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
return 1;
}
 
/* Avoid sprintf, as that infringes on the user's name space.
Don't have undefined behavior even if the translation
produced a string with the wrong number of "%s"s. */
{
char *yyp = *yymsg;
char *yyp = yyresult;
int yyi = 0;
while ((*yyp = *yyformat) != '\0')
if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
while ((*yyp = *yyf) != '\0')
{
if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
{
yyp += yytnamerr (yyp, yyarg[yyi++]);
yyformat += 2;
yyf += 2;
}
else
{
yyp++;
yyformat++;
yyf++;
}
}
return 0;
}
return yysize;
}
}
#endif /* YYERROR_VERBOSE */
 
 
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
`-----------------------------------------------*/
 
/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
#else
static void
yydestruct (yymsg, yytype, yyvaluep)
const char *yymsg;
int yytype;
YYSTYPE *yyvaluep;
#endif
{
YYUSE (yyvaluep);
 
if (!yymsg)
yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
 
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
YYUSE (yytype);
YY_IGNORE_MAYBE_UNINITIALIZED_END
switch (yytype)
{
 
default:
break;
}
}
 
 
/* Prevent warnings from -Wmissing-prototypes. */
 
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else
int yyparse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int yyparse (void);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */
 
/* The lookahead symbol. */
 
 
/* The look-ahead symbol. */
int yychar;
 
/* The semantic value of the lookahead symbol. */
/* The semantic value of the look-ahead symbol. */
YYSTYPE yylval;
 
/* Number of syntax errors so far. */
int yynerrs;
 
 
 
/*----------.
| yyparse. |
`----------*/
 
#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
int
yyparse (void *YYPARSE_PARAM)
#else
int
yyparse (YYPARSE_PARAM)
void *YYPARSE_PARAM;
#endif
#else /* ! YYPARSE_PARAM */
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
int
yyparse (void)
#else
int
yyparse ()
 
#endif
#endif
{
int yystate;
int yyn;
int yyresult;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
/* Look-ahead token as an internal (translated) token number. */
int yytoken = 0;
#if YYERROR_VERBOSE
/* Buffer for error messages, and its allocated size. */
char yymsgbuf[128];
char *yymsg = yymsgbuf;
YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif
 
/* The stacks and their tools:
'yyss': related to states.
'yyvs': related to semantic values.
/* Three stacks and their tools:
`yyss': related to states,
`yyvs': related to semantic values,
`yyls': related to locations.
 
Refer to the stacks through separate pointers, to allow yyoverflow
Refer to the stacks thru separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
 
/* The state stack. */
yytype_int16 yyssa[YYINITDEPTH];
yytype_int16 *yyss;
yytype_int16 *yyss = yyssa;
yytype_int16 *yyssp;
 
/* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH];
YYSTYPE *yyvs;
YYSTYPE *yyvs = yyvsa;
YYSTYPE *yyvsp;
 
YYSIZE_T yystacksize;
 
int yyn;
int yyresult;
/* Lookahead token as an internal (translated) token number. */
int yytoken = 0;
 
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
 
YYSIZE_T yystacksize = YYINITDEPTH;
 
/* The variables used to return semantic value and location from the
action routines. */
YYSTYPE yyval;
 
#if YYERROR_VERBOSE
/* Buffer for error messages, and its allocated size. */
char yymsgbuf[128];
char *yymsg = yymsgbuf;
YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif
 
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
 
/* The number of symbols on the RHS of the reduced rule.
Keep to zero when no symbol should be popped. */
int yylen = 0;
 
yyssp = yyss = yyssa;
yyvsp = yyvs = yyvsa;
yystacksize = YYINITDEPTH;
 
YYDPRINTF ((stderr, "Starting parse\n"));
 
yystate = 0;
2150,6 → 2434,15
yyerrstatus = 0;
yynerrs = 0;
yychar = YYEMPTY; /* Cause a token to be read. */
 
/* Initialize stack pointers.
Waste one element of value and location stack
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
 
yyssp = yyss;
yyvsp = yyvs;
 
goto yysetstate;
 
/*------------------------------------------------------------.
2176,6 → 2469,7
YYSTYPE *yyvs1 = yyvs;
yytype_int16 *yyss1 = yyss;
 
 
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
2183,6 → 2477,7
yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
 
&yystacksize);
 
yyss = yyss1;
2205,8 → 2500,9
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyexhaustedlab;
YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
YYSTACK_RELOCATE (yyss);
YYSTACK_RELOCATE (yyvs);
 
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
2217,6 → 2513,7
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
 
 
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
 
2226,9 → 2523,6
 
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
if (yystate == YYFINAL)
YYACCEPT;
 
goto yybackup;
 
/*-----------.
2237,20 → 2531,20
yybackup:
 
/* Do appropriate processing given the current state. Read a
lookahead token if we need one and don't already have one. */
look-ahead token if we need one and don't already have one. */
 
/* First try to decide what to do without reference to lookahead token. */
/* First try to decide what to do without reference to look-ahead token. */
yyn = yypact[yystate];
if (yypact_value_is_default (yyn))
if (yyn == YYPACT_NINF)
goto yydefault;
 
/* Not known => get a lookahead token if don't already have one. */
/* Not known => get a look-ahead token if don't already have one. */
 
/* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
/* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
yychar = yylex ();
yychar = YYLEX;
}
 
if (yychar <= YYEOF)
2272,27 → 2566,29
yyn = yytable[yyn];
if (yyn <= 0)
{
if (yytable_value_is_error (yyn))
if (yyn == 0 || yyn == YYTABLE_NINF)
goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
 
if (yyn == YYFINAL)
YYACCEPT;
 
/* Count tokens shifted since error; after three, turn off error
status. */
if (yyerrstatus)
yyerrstatus--;
 
/* Shift the lookahead token. */
/* Shift the look-ahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 
/* Discard the shifted token. */
/* Discard the shifted token unless it is eof. */
if (yychar != YYEOF)
yychar = YYEMPTY;
 
yystate = yyn;
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
YY_IGNORE_MAYBE_UNINITIALIZED_END
 
goto yynewstate;
 
2315,7 → 2611,7
yylen = yyr2[yyn];
 
/* If YYLEN is nonzero, implement the default value of the action:
'$$ = $1'.
`$$ = $1'.
 
Otherwise, the following line sets YYVAL to garbage.
This behavior is undocumented and Bison
2329,1395 → 2625,1192
switch (yyn)
{
case 8:
#line 178 "ldgram.y" /* yacc.c:1661 */
#line 178 "ldgram.y"
{ ldlex_defsym(); }
#line 2335 "ldgram.c" /* yacc.c:1661 */
break;
 
case 9:
#line 180 "ldgram.y" /* yacc.c:1661 */
#line 180 "ldgram.y"
{
ldlex_popstate();
lang_add_assignment (exp_defsym ((yyvsp[-2].name), (yyvsp[0].etree)));
lang_add_assignment (exp_defsym ((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree)));
}
#line 2344 "ldgram.c" /* yacc.c:1661 */
break;
 
case 10:
#line 188 "ldgram.y" /* yacc.c:1661 */
#line 188 "ldgram.y"
{
ldlex_mri_script ();
PUSH_ERROR (_("MRI style script"));
}
#line 2353 "ldgram.c" /* yacc.c:1661 */
break;
 
case 11:
#line 193 "ldgram.y" /* yacc.c:1661 */
#line 193 "ldgram.y"
{
ldlex_popstate ();
mri_draw_tree ();
POP_ERROR ();
}
#line 2363 "ldgram.c" /* yacc.c:1661 */
break;
 
case 16:
#line 208 "ldgram.y" /* yacc.c:1661 */
#line 208 "ldgram.y"
{
einfo(_("%P%F: unrecognised keyword in MRI style script '%s'\n"),(yyvsp[0].name));
einfo(_("%P%F: unrecognised keyword in MRI style script '%s'\n"),(yyvsp[(1) - (1)].name));
}
#line 2371 "ldgram.c" /* yacc.c:1661 */
break;
 
case 17:
#line 211 "ldgram.y" /* yacc.c:1661 */
#line 211 "ldgram.y"
{
config.map_filename = "-";
}
#line 2379 "ldgram.c" /* yacc.c:1661 */
break;
 
case 20:
#line 217 "ldgram.y" /* yacc.c:1661 */
{ mri_public((yyvsp[-2].name), (yyvsp[0].etree)); }
#line 2385 "ldgram.c" /* yacc.c:1661 */
#line 217 "ldgram.y"
{ mri_public((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree)); }
break;
 
case 21:
#line 219 "ldgram.y" /* yacc.c:1661 */
{ mri_public((yyvsp[-2].name), (yyvsp[0].etree)); }
#line 2391 "ldgram.c" /* yacc.c:1661 */
#line 219 "ldgram.y"
{ mri_public((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree)); }
break;
 
case 22:
#line 221 "ldgram.y" /* yacc.c:1661 */
{ mri_public((yyvsp[-1].name), (yyvsp[0].etree)); }
#line 2397 "ldgram.c" /* yacc.c:1661 */
#line 221 "ldgram.y"
{ mri_public((yyvsp[(2) - (3)].name), (yyvsp[(3) - (3)].etree)); }
break;
 
case 23:
#line 223 "ldgram.y" /* yacc.c:1661 */
{ mri_format((yyvsp[0].name)); }
#line 2403 "ldgram.c" /* yacc.c:1661 */
#line 223 "ldgram.y"
{ mri_format((yyvsp[(2) - (2)].name)); }
break;
 
case 24:
#line 225 "ldgram.y" /* yacc.c:1661 */
{ mri_output_section((yyvsp[-2].name), (yyvsp[0].etree));}
#line 2409 "ldgram.c" /* yacc.c:1661 */
#line 225 "ldgram.y"
{ mri_output_section((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree));}
break;
 
case 25:
#line 227 "ldgram.y" /* yacc.c:1661 */
{ mri_output_section((yyvsp[-1].name), (yyvsp[0].etree));}
#line 2415 "ldgram.c" /* yacc.c:1661 */
#line 227 "ldgram.y"
{ mri_output_section((yyvsp[(2) - (3)].name), (yyvsp[(3) - (3)].etree));}
break;
 
case 26:
#line 229 "ldgram.y" /* yacc.c:1661 */
{ mri_output_section((yyvsp[-2].name), (yyvsp[0].etree));}
#line 2421 "ldgram.c" /* yacc.c:1661 */
#line 229 "ldgram.y"
{ mri_output_section((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree));}
break;
 
case 27:
#line 231 "ldgram.y" /* yacc.c:1661 */
{ mri_align((yyvsp[-2].name),(yyvsp[0].etree)); }
#line 2427 "ldgram.c" /* yacc.c:1661 */
#line 231 "ldgram.y"
{ mri_align((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)); }
break;
 
case 28:
#line 233 "ldgram.y" /* yacc.c:1661 */
{ mri_align((yyvsp[-2].name),(yyvsp[0].etree)); }
#line 2433 "ldgram.c" /* yacc.c:1661 */
#line 233 "ldgram.y"
{ mri_align((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)); }
break;
 
case 29:
#line 235 "ldgram.y" /* yacc.c:1661 */
{ mri_alignmod((yyvsp[-2].name),(yyvsp[0].etree)); }
#line 2439 "ldgram.c" /* yacc.c:1661 */
#line 235 "ldgram.y"
{ mri_alignmod((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)); }
break;
 
case 30:
#line 237 "ldgram.y" /* yacc.c:1661 */
{ mri_alignmod((yyvsp[-2].name),(yyvsp[0].etree)); }
#line 2445 "ldgram.c" /* yacc.c:1661 */
#line 237 "ldgram.y"
{ mri_alignmod((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)); }
break;
 
case 33:
#line 241 "ldgram.y" /* yacc.c:1661 */
{ mri_name((yyvsp[0].name)); }
#line 2451 "ldgram.c" /* yacc.c:1661 */
#line 241 "ldgram.y"
{ mri_name((yyvsp[(2) - (2)].name)); }
break;
 
case 34:
#line 243 "ldgram.y" /* yacc.c:1661 */
{ mri_alias((yyvsp[-2].name),(yyvsp[0].name),0);}
#line 2457 "ldgram.c" /* yacc.c:1661 */
#line 243 "ldgram.y"
{ mri_alias((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].name),0);}
break;
 
case 35:
#line 245 "ldgram.y" /* yacc.c:1661 */
{ mri_alias ((yyvsp[-2].name), 0, (int) (yyvsp[0].bigint).integer); }
#line 2463 "ldgram.c" /* yacc.c:1661 */
#line 245 "ldgram.y"
{ mri_alias ((yyvsp[(2) - (4)].name), 0, (int) (yyvsp[(4) - (4)].bigint).integer); }
break;
 
case 36:
#line 247 "ldgram.y" /* yacc.c:1661 */
{ mri_base((yyvsp[0].etree)); }
#line 2469 "ldgram.c" /* yacc.c:1661 */
#line 247 "ldgram.y"
{ mri_base((yyvsp[(2) - (2)].etree)); }
break;
 
case 37:
#line 249 "ldgram.y" /* yacc.c:1661 */
{ mri_truncate ((unsigned int) (yyvsp[0].bigint).integer); }
#line 2475 "ldgram.c" /* yacc.c:1661 */
#line 249 "ldgram.y"
{ mri_truncate ((unsigned int) (yyvsp[(2) - (2)].bigint).integer); }
break;
 
case 40:
#line 253 "ldgram.y" /* yacc.c:1661 */
{ ldlex_script (); ldfile_open_command_file((yyvsp[0].name)); }
#line 2481 "ldgram.c" /* yacc.c:1661 */
#line 253 "ldgram.y"
{ ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
break;
 
case 41:
#line 255 "ldgram.y" /* yacc.c:1661 */
#line 255 "ldgram.y"
{ ldlex_popstate (); }
#line 2487 "ldgram.c" /* yacc.c:1661 */
break;
 
case 42:
#line 257 "ldgram.y" /* yacc.c:1661 */
{ lang_add_entry ((yyvsp[0].name), FALSE); }
#line 2493 "ldgram.c" /* yacc.c:1661 */
#line 257 "ldgram.y"
{ lang_add_entry ((yyvsp[(2) - (2)].name), FALSE); }
break;
 
case 44:
#line 262 "ldgram.y" /* yacc.c:1661 */
{ mri_order((yyvsp[0].name)); }
#line 2499 "ldgram.c" /* yacc.c:1661 */
#line 262 "ldgram.y"
{ mri_order((yyvsp[(3) - (3)].name)); }
break;
 
case 45:
#line 263 "ldgram.y" /* yacc.c:1661 */
{ mri_order((yyvsp[0].name)); }
#line 2505 "ldgram.c" /* yacc.c:1661 */
#line 263 "ldgram.y"
{ mri_order((yyvsp[(2) - (2)].name)); }
break;
 
case 47:
#line 269 "ldgram.y" /* yacc.c:1661 */
{ mri_load((yyvsp[0].name)); }
#line 2511 "ldgram.c" /* yacc.c:1661 */
#line 269 "ldgram.y"
{ mri_load((yyvsp[(1) - (1)].name)); }
break;
 
case 48:
#line 270 "ldgram.y" /* yacc.c:1661 */
{ mri_load((yyvsp[0].name)); }
#line 2517 "ldgram.c" /* yacc.c:1661 */
#line 270 "ldgram.y"
{ mri_load((yyvsp[(3) - (3)].name)); }
break;
 
case 49:
#line 275 "ldgram.y" /* yacc.c:1661 */
{ mri_only_load((yyvsp[0].name)); }
#line 2523 "ldgram.c" /* yacc.c:1661 */
#line 275 "ldgram.y"
{ mri_only_load((yyvsp[(1) - (1)].name)); }
break;
 
case 50:
#line 277 "ldgram.y" /* yacc.c:1661 */
{ mri_only_load((yyvsp[0].name)); }
#line 2529 "ldgram.c" /* yacc.c:1661 */
#line 277 "ldgram.y"
{ mri_only_load((yyvsp[(3) - (3)].name)); }
break;
 
case 51:
#line 281 "ldgram.y" /* yacc.c:1661 */
#line 281 "ldgram.y"
{ (yyval.name) = NULL; }
#line 2535 "ldgram.c" /* yacc.c:1661 */
break;
 
case 54:
#line 288 "ldgram.y" /* yacc.c:1661 */
#line 288 "ldgram.y"
{ ldlex_expression (); }
#line 2541 "ldgram.c" /* yacc.c:1661 */
break;
 
case 55:
#line 290 "ldgram.y" /* yacc.c:1661 */
#line 290 "ldgram.y"
{ ldlex_popstate (); }
#line 2547 "ldgram.c" /* yacc.c:1661 */
break;
 
case 56:
#line 294 "ldgram.y" /* yacc.c:1661 */
{ ldlang_add_undef ((yyvsp[0].name), FALSE); }
#line 2553 "ldgram.c" /* yacc.c:1661 */
#line 294 "ldgram.y"
{ ldlang_add_undef ((yyvsp[(1) - (1)].name), FALSE); }
break;
 
case 57:
#line 296 "ldgram.y" /* yacc.c:1661 */
{ ldlang_add_undef ((yyvsp[0].name), FALSE); }
#line 2559 "ldgram.c" /* yacc.c:1661 */
#line 296 "ldgram.y"
{ ldlang_add_undef ((yyvsp[(2) - (2)].name), FALSE); }
break;
 
case 58:
#line 298 "ldgram.y" /* yacc.c:1661 */
{ ldlang_add_undef ((yyvsp[0].name), FALSE); }
#line 2565 "ldgram.c" /* yacc.c:1661 */
#line 298 "ldgram.y"
{ ldlang_add_undef ((yyvsp[(3) - (3)].name), FALSE); }
break;
 
case 59:
#line 302 "ldgram.y" /* yacc.c:1661 */
#line 302 "ldgram.y"
{ ldlex_both(); }
#line 2571 "ldgram.c" /* yacc.c:1661 */
break;
 
case 60:
#line 304 "ldgram.y" /* yacc.c:1661 */
#line 304 "ldgram.y"
{ ldlex_popstate(); }
#line 2577 "ldgram.c" /* yacc.c:1661 */
break;
 
case 73:
#line 325 "ldgram.y" /* yacc.c:1661 */
{ lang_add_target((yyvsp[-1].name)); }
#line 2583 "ldgram.c" /* yacc.c:1661 */
#line 325 "ldgram.y"
{ lang_add_target((yyvsp[(3) - (4)].name)); }
break;
 
case 74:
#line 327 "ldgram.y" /* yacc.c:1661 */
{ ldfile_add_library_path ((yyvsp[-1].name), FALSE); }
#line 2589 "ldgram.c" /* yacc.c:1661 */
#line 327 "ldgram.y"
{ ldfile_add_library_path ((yyvsp[(3) - (4)].name), FALSE); }
break;
 
case 75:
#line 329 "ldgram.y" /* yacc.c:1661 */
{ lang_add_output((yyvsp[-1].name), 1); }
#line 2595 "ldgram.c" /* yacc.c:1661 */
#line 329 "ldgram.y"
{ lang_add_output((yyvsp[(3) - (4)].name), 1); }
break;
 
case 76:
#line 331 "ldgram.y" /* yacc.c:1661 */
{ lang_add_output_format ((yyvsp[-1].name), (char *) NULL,
#line 331 "ldgram.y"
{ lang_add_output_format ((yyvsp[(3) - (4)].name), (char *) NULL,
(char *) NULL, 1); }
#line 2602 "ldgram.c" /* yacc.c:1661 */
break;
 
case 77:
#line 334 "ldgram.y" /* yacc.c:1661 */
{ lang_add_output_format ((yyvsp[-5].name), (yyvsp[-3].name), (yyvsp[-1].name), 1); }
#line 2608 "ldgram.c" /* yacc.c:1661 */
#line 334 "ldgram.y"
{ lang_add_output_format ((yyvsp[(3) - (8)].name), (yyvsp[(5) - (8)].name), (yyvsp[(7) - (8)].name), 1); }
break;
 
case 78:
#line 336 "ldgram.y" /* yacc.c:1661 */
{ ldfile_set_output_arch ((yyvsp[-1].name), bfd_arch_unknown); }
#line 2614 "ldgram.c" /* yacc.c:1661 */
#line 336 "ldgram.y"
{ ldfile_set_output_arch ((yyvsp[(3) - (4)].name), bfd_arch_unknown); }
break;
 
case 79:
#line 338 "ldgram.y" /* yacc.c:1661 */
#line 338 "ldgram.y"
{ command_line.force_common_definition = TRUE ; }
#line 2620 "ldgram.c" /* yacc.c:1661 */
break;
 
case 80:
#line 340 "ldgram.y" /* yacc.c:1661 */
#line 340 "ldgram.y"
{ command_line.inhibit_common_definition = TRUE ; }
#line 2626 "ldgram.c" /* yacc.c:1661 */
break;
 
case 82:
#line 343 "ldgram.y" /* yacc.c:1661 */
#line 343 "ldgram.y"
{ lang_enter_group (); }
#line 2632 "ldgram.c" /* yacc.c:1661 */
break;
 
case 83:
#line 345 "ldgram.y" /* yacc.c:1661 */
#line 345 "ldgram.y"
{ lang_leave_group (); }
#line 2638 "ldgram.c" /* yacc.c:1661 */
break;
 
case 84:
#line 347 "ldgram.y" /* yacc.c:1661 */
{ lang_add_map((yyvsp[-1].name)); }
#line 2644 "ldgram.c" /* yacc.c:1661 */
#line 347 "ldgram.y"
{ lang_add_map((yyvsp[(3) - (4)].name)); }
break;
 
case 85:
#line 349 "ldgram.y" /* yacc.c:1661 */
{ ldlex_script (); ldfile_open_command_file((yyvsp[0].name)); }
#line 2650 "ldgram.c" /* yacc.c:1661 */
#line 349 "ldgram.y"
{ ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
break;
 
case 86:
#line 351 "ldgram.y" /* yacc.c:1661 */
#line 351 "ldgram.y"
{ ldlex_popstate (); }
#line 2656 "ldgram.c" /* yacc.c:1661 */
break;
 
case 87:
#line 353 "ldgram.y" /* yacc.c:1661 */
#line 353 "ldgram.y"
{
lang_add_nocrossref ((yyvsp[-1].nocrossref));
lang_add_nocrossref ((yyvsp[(3) - (4)].nocrossref));
}
#line 2664 "ldgram.c" /* yacc.c:1661 */
break;
 
case 89:
#line 358 "ldgram.y" /* yacc.c:1661 */
{ lang_add_insert ((yyvsp[0].name), 0); }
#line 2670 "ldgram.c" /* yacc.c:1661 */
#line 358 "ldgram.y"
{ lang_add_insert ((yyvsp[(3) - (3)].name), 0); }
break;
 
case 90:
#line 360 "ldgram.y" /* yacc.c:1661 */
{ lang_add_insert ((yyvsp[0].name), 1); }
#line 2676 "ldgram.c" /* yacc.c:1661 */
#line 360 "ldgram.y"
{ lang_add_insert ((yyvsp[(3) - (3)].name), 1); }
break;
 
case 91:
#line 362 "ldgram.y" /* yacc.c:1661 */
{ lang_memory_region_alias ((yyvsp[-3].name), (yyvsp[-1].name)); }
#line 2682 "ldgram.c" /* yacc.c:1661 */
#line 362 "ldgram.y"
{ lang_memory_region_alias ((yyvsp[(3) - (6)].name), (yyvsp[(5) - (6)].name)); }
break;
 
case 92:
#line 364 "ldgram.y" /* yacc.c:1661 */
{ lang_ld_feature ((yyvsp[-1].name)); }
#line 2688 "ldgram.c" /* yacc.c:1661 */
#line 364 "ldgram.y"
{ lang_ld_feature ((yyvsp[(3) - (4)].name)); }
break;
 
case 93:
#line 368 "ldgram.y" /* yacc.c:1661 */
{ ldlex_inputlist(); }
#line 2694 "ldgram.c" /* yacc.c:1661 */
#line 369 "ldgram.y"
{ lang_add_input_file((yyvsp[(1) - (1)].name),lang_input_file_is_search_file_enum,
(char *)NULL); }
break;
 
case 94:
#line 370 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate(); }
#line 2700 "ldgram.c" /* yacc.c:1661 */
#line 372 "ldgram.y"
{ lang_add_input_file((yyvsp[(3) - (3)].name),lang_input_file_is_search_file_enum,
(char *)NULL); }
break;
 
case 95:
#line 374 "ldgram.y" /* yacc.c:1661 */
{ lang_add_input_file((yyvsp[0].name),lang_input_file_is_search_file_enum,
#line 375 "ldgram.y"
{ lang_add_input_file((yyvsp[(2) - (2)].name),lang_input_file_is_search_file_enum,
(char *)NULL); }
#line 2707 "ldgram.c" /* yacc.c:1661 */
break;
 
case 96:
#line 377 "ldgram.y" /* yacc.c:1661 */
{ lang_add_input_file((yyvsp[0].name),lang_input_file_is_search_file_enum,
#line 378 "ldgram.y"
{ lang_add_input_file((yyvsp[(1) - (1)].name),lang_input_file_is_l_enum,
(char *)NULL); }
#line 2714 "ldgram.c" /* yacc.c:1661 */
break;
 
case 97:
#line 380 "ldgram.y" /* yacc.c:1661 */
{ lang_add_input_file((yyvsp[0].name),lang_input_file_is_search_file_enum,
#line 381 "ldgram.y"
{ lang_add_input_file((yyvsp[(3) - (3)].name),lang_input_file_is_l_enum,
(char *)NULL); }
#line 2721 "ldgram.c" /* yacc.c:1661 */
break;
 
case 98:
#line 383 "ldgram.y" /* yacc.c:1661 */
{ lang_add_input_file((yyvsp[0].name),lang_input_file_is_l_enum,
#line 384 "ldgram.y"
{ lang_add_input_file((yyvsp[(2) - (2)].name),lang_input_file_is_l_enum,
(char *)NULL); }
#line 2728 "ldgram.c" /* yacc.c:1661 */
break;
 
case 99:
#line 386 "ldgram.y" /* yacc.c:1661 */
{ lang_add_input_file((yyvsp[0].name),lang_input_file_is_l_enum,
(char *)NULL); }
#line 2735 "ldgram.c" /* yacc.c:1661 */
#line 387 "ldgram.y"
{ (yyval.integer) = input_flags.add_DT_NEEDED_for_regular;
input_flags.add_DT_NEEDED_for_regular = TRUE; }
break;
 
case 100:
#line 389 "ldgram.y" /* yacc.c:1661 */
{ lang_add_input_file((yyvsp[0].name),lang_input_file_is_l_enum,
(char *)NULL); }
#line 2742 "ldgram.c" /* yacc.c:1661 */
#line 390 "ldgram.y"
{ input_flags.add_DT_NEEDED_for_regular = (yyvsp[(3) - (5)].integer); }
break;
 
case 101:
#line 392 "ldgram.y" /* yacc.c:1661 */
#line 392 "ldgram.y"
{ (yyval.integer) = input_flags.add_DT_NEEDED_for_regular;
input_flags.add_DT_NEEDED_for_regular = TRUE; }
#line 2749 "ldgram.c" /* yacc.c:1661 */
break;
 
case 102:
#line 395 "ldgram.y" /* yacc.c:1661 */
{ input_flags.add_DT_NEEDED_for_regular = (yyvsp[-2].integer); }
#line 2755 "ldgram.c" /* yacc.c:1661 */
#line 395 "ldgram.y"
{ input_flags.add_DT_NEEDED_for_regular = (yyvsp[(5) - (7)].integer); }
break;
 
case 103:
#line 397 "ldgram.y" /* yacc.c:1661 */
#line 397 "ldgram.y"
{ (yyval.integer) = input_flags.add_DT_NEEDED_for_regular;
input_flags.add_DT_NEEDED_for_regular = TRUE; }
#line 2762 "ldgram.c" /* yacc.c:1661 */
break;
 
case 104:
#line 400 "ldgram.y" /* yacc.c:1661 */
{ input_flags.add_DT_NEEDED_for_regular = (yyvsp[-2].integer); }
#line 2768 "ldgram.c" /* yacc.c:1661 */
#line 400 "ldgram.y"
{ input_flags.add_DT_NEEDED_for_regular = (yyvsp[(4) - (6)].integer); }
break;
 
case 105:
#line 402 "ldgram.y" /* yacc.c:1661 */
{ (yyval.integer) = input_flags.add_DT_NEEDED_for_regular;
input_flags.add_DT_NEEDED_for_regular = TRUE; }
#line 2775 "ldgram.c" /* yacc.c:1661 */
case 109:
#line 415 "ldgram.y"
{ lang_add_entry ((yyvsp[(3) - (4)].name), FALSE); }
break;
 
case 106:
#line 405 "ldgram.y" /* yacc.c:1661 */
{ input_flags.add_DT_NEEDED_for_regular = (yyvsp[-2].integer); }
#line 2781 "ldgram.c" /* yacc.c:1661 */
break;
 
case 111:
#line 420 "ldgram.y" /* yacc.c:1661 */
{ lang_add_entry ((yyvsp[-1].name), FALSE); }
#line 2787 "ldgram.c" /* yacc.c:1661 */
break;
 
case 113:
#line 422 "ldgram.y" /* yacc.c:1661 */
#line 417 "ldgram.y"
{ldlex_expression ();}
#line 2793 "ldgram.c" /* yacc.c:1661 */
break;
 
case 114:
#line 423 "ldgram.y" /* yacc.c:1661 */
case 112:
#line 418 "ldgram.y"
{ ldlex_popstate ();
lang_add_assignment (exp_assert ((yyvsp[-3].etree), (yyvsp[-1].name))); }
#line 2800 "ldgram.c" /* yacc.c:1661 */
lang_add_assignment (exp_assert ((yyvsp[(4) - (7)].etree), (yyvsp[(6) - (7)].name))); }
break;
 
case 115:
#line 431 "ldgram.y" /* yacc.c:1661 */
case 113:
#line 426 "ldgram.y"
{
(yyval.cname) = (yyvsp[0].name);
(yyval.cname) = (yyvsp[(1) - (1)].name);
}
#line 2808 "ldgram.c" /* yacc.c:1661 */
break;
 
case 116:
#line 435 "ldgram.y" /* yacc.c:1661 */
case 114:
#line 430 "ldgram.y"
{
(yyval.cname) = "*";
}
#line 2816 "ldgram.c" /* yacc.c:1661 */
break;
 
case 117:
#line 439 "ldgram.y" /* yacc.c:1661 */
case 115:
#line 434 "ldgram.y"
{
(yyval.cname) = "?";
}
#line 2824 "ldgram.c" /* yacc.c:1661 */
break;
 
case 118:
#line 446 "ldgram.y" /* yacc.c:1661 */
case 116:
#line 441 "ldgram.y"
{
(yyval.wildcard).name = (yyvsp[0].cname);
(yyval.wildcard).name = (yyvsp[(1) - (1)].cname);
(yyval.wildcard).sorted = none;
(yyval.wildcard).exclude_name_list = NULL;
(yyval.wildcard).section_flag_list = NULL;
}
#line 2835 "ldgram.c" /* yacc.c:1661 */
break;
 
case 119:
#line 453 "ldgram.y" /* yacc.c:1661 */
case 117:
#line 448 "ldgram.y"
{
(yyval.wildcard).name = (yyvsp[0].cname);
(yyval.wildcard).name = (yyvsp[(5) - (5)].cname);
(yyval.wildcard).sorted = none;
(yyval.wildcard).exclude_name_list = (yyvsp[-2].name_list);
(yyval.wildcard).exclude_name_list = (yyvsp[(3) - (5)].name_list);
(yyval.wildcard).section_flag_list = NULL;
}
#line 2846 "ldgram.c" /* yacc.c:1661 */
break;
 
case 120:
#line 460 "ldgram.y" /* yacc.c:1661 */
case 118:
#line 455 "ldgram.y"
{
(yyval.wildcard).name = (yyvsp[-1].cname);
(yyval.wildcard).name = (yyvsp[(3) - (4)].cname);
(yyval.wildcard).sorted = by_name;
(yyval.wildcard).exclude_name_list = NULL;
(yyval.wildcard).section_flag_list = NULL;
}
#line 2857 "ldgram.c" /* yacc.c:1661 */
break;
 
case 121:
#line 467 "ldgram.y" /* yacc.c:1661 */
case 119:
#line 462 "ldgram.y"
{
(yyval.wildcard).name = (yyvsp[-1].cname);
(yyval.wildcard).name = (yyvsp[(3) - (4)].cname);
(yyval.wildcard).sorted = by_alignment;
(yyval.wildcard).exclude_name_list = NULL;
(yyval.wildcard).section_flag_list = NULL;
}
#line 2868 "ldgram.c" /* yacc.c:1661 */
break;
 
case 122:
#line 474 "ldgram.y" /* yacc.c:1661 */
case 120:
#line 469 "ldgram.y"
{
(yyval.wildcard).name = (yyvsp[-1].cname);
(yyval.wildcard).name = (yyvsp[(3) - (4)].cname);
(yyval.wildcard).sorted = by_none;
(yyval.wildcard).exclude_name_list = NULL;
(yyval.wildcard).section_flag_list = NULL;
}
#line 2879 "ldgram.c" /* yacc.c:1661 */
break;
 
case 123:
#line 481 "ldgram.y" /* yacc.c:1661 */
case 121:
#line 476 "ldgram.y"
{
(yyval.wildcard).name = (yyvsp[-2].cname);
(yyval.wildcard).name = (yyvsp[(5) - (7)].cname);
(yyval.wildcard).sorted = by_name_alignment;
(yyval.wildcard).exclude_name_list = NULL;
(yyval.wildcard).section_flag_list = NULL;
}
#line 2890 "ldgram.c" /* yacc.c:1661 */
break;
 
case 124:
#line 488 "ldgram.y" /* yacc.c:1661 */
case 122:
#line 483 "ldgram.y"
{
(yyval.wildcard).name = (yyvsp[-2].cname);
(yyval.wildcard).name = (yyvsp[(5) - (7)].cname);
(yyval.wildcard).sorted = by_name;
(yyval.wildcard).exclude_name_list = NULL;
(yyval.wildcard).section_flag_list = NULL;
}
#line 2901 "ldgram.c" /* yacc.c:1661 */
break;
 
case 125:
#line 495 "ldgram.y" /* yacc.c:1661 */
case 123:
#line 490 "ldgram.y"
{
(yyval.wildcard).name = (yyvsp[-2].cname);
(yyval.wildcard).name = (yyvsp[(5) - (7)].cname);
(yyval.wildcard).sorted = by_alignment_name;
(yyval.wildcard).exclude_name_list = NULL;
(yyval.wildcard).section_flag_list = NULL;
}
#line 2912 "ldgram.c" /* yacc.c:1661 */
break;
 
case 126:
#line 502 "ldgram.y" /* yacc.c:1661 */
case 124:
#line 497 "ldgram.y"
{
(yyval.wildcard).name = (yyvsp[-2].cname);
(yyval.wildcard).name = (yyvsp[(5) - (7)].cname);
(yyval.wildcard).sorted = by_alignment;
(yyval.wildcard).exclude_name_list = NULL;
(yyval.wildcard).section_flag_list = NULL;
}
#line 2923 "ldgram.c" /* yacc.c:1661 */
break;
 
case 127:
#line 509 "ldgram.y" /* yacc.c:1661 */
case 125:
#line 504 "ldgram.y"
{
(yyval.wildcard).name = (yyvsp[-1].cname);
(yyval.wildcard).name = (yyvsp[(7) - (8)].cname);
(yyval.wildcard).sorted = by_name;
(yyval.wildcard).exclude_name_list = (yyvsp[-3].name_list);
(yyval.wildcard).exclude_name_list = (yyvsp[(5) - (8)].name_list);
(yyval.wildcard).section_flag_list = NULL;
}
#line 2934 "ldgram.c" /* yacc.c:1661 */
break;
 
case 128:
#line 516 "ldgram.y" /* yacc.c:1661 */
case 126:
#line 511 "ldgram.y"
{
(yyval.wildcard).name = (yyvsp[-1].cname);
(yyval.wildcard).name = (yyvsp[(3) - (4)].cname);
(yyval.wildcard).sorted = by_init_priority;
(yyval.wildcard).exclude_name_list = NULL;
(yyval.wildcard).section_flag_list = NULL;
}
#line 2945 "ldgram.c" /* yacc.c:1661 */
break;
 
case 129:
#line 525 "ldgram.y" /* yacc.c:1661 */
case 127:
#line 520 "ldgram.y"
{
struct flag_info_list *n;
n = ((struct flag_info_list *) xmalloc (sizeof *n));
if ((yyvsp[0].name)[0] == '!')
if ((yyvsp[(1) - (1)].name)[0] == '!')
{
n->with = without_flags;
n->name = &(yyvsp[0].name)[1];
n->name = &(yyvsp[(1) - (1)].name)[1];
}
else
{
n->with = with_flags;
n->name = (yyvsp[0].name);
n->name = (yyvsp[(1) - (1)].name);
}
n->valid = FALSE;
n->next = NULL;
(yyval.flag_info_list) = n;
}
#line 2967 "ldgram.c" /* yacc.c:1661 */
break;
 
case 130:
#line 543 "ldgram.y" /* yacc.c:1661 */
case 128:
#line 538 "ldgram.y"
{
struct flag_info_list *n;
n = ((struct flag_info_list *) xmalloc (sizeof *n));
if ((yyvsp[0].name)[0] == '!')
if ((yyvsp[(3) - (3)].name)[0] == '!')
{
n->with = without_flags;
n->name = &(yyvsp[0].name)[1];
n->name = &(yyvsp[(3) - (3)].name)[1];
}
else
{
n->with = with_flags;
n->name = (yyvsp[0].name);
n->name = (yyvsp[(3) - (3)].name);
}
n->valid = FALSE;
n->next = (yyvsp[-2].flag_info_list);
n->next = (yyvsp[(1) - (3)].flag_info_list);
(yyval.flag_info_list) = n;
}
#line 2989 "ldgram.c" /* yacc.c:1661 */
break;
 
case 131:
#line 564 "ldgram.y" /* yacc.c:1661 */
case 129:
#line 559 "ldgram.y"
{
struct flag_info *n;
n = ((struct flag_info *) xmalloc (sizeof *n));
n->flag_list = (yyvsp[-1].flag_info_list);
n->flag_list = (yyvsp[(3) - (4)].flag_info_list);
n->flags_initialized = FALSE;
n->not_with_flags = 0;
n->only_with_flags = 0;
(yyval.flag_info) = n;
}
#line 3003 "ldgram.c" /* yacc.c:1661 */
break;
 
case 132:
#line 577 "ldgram.y" /* yacc.c:1661 */
case 130:
#line 572 "ldgram.y"
{
struct name_list *tmp;
tmp = (struct name_list *) xmalloc (sizeof *tmp);
tmp->name = (yyvsp[0].cname);
tmp->next = (yyvsp[-1].name_list);
tmp->name = (yyvsp[(2) - (2)].cname);
tmp->next = (yyvsp[(1) - (2)].name_list);
(yyval.name_list) = tmp;
}
#line 3015 "ldgram.c" /* yacc.c:1661 */
break;
 
case 133:
#line 586 "ldgram.y" /* yacc.c:1661 */
case 131:
#line 581 "ldgram.y"
{
struct name_list *tmp;
tmp = (struct name_list *) xmalloc (sizeof *tmp);
tmp->name = (yyvsp[0].cname);
tmp->name = (yyvsp[(1) - (1)].cname);
tmp->next = NULL;
(yyval.name_list) = tmp;
}
#line 3027 "ldgram.c" /* yacc.c:1661 */
break;
 
case 134:
#line 597 "ldgram.y" /* yacc.c:1661 */
case 132:
#line 592 "ldgram.y"
{
struct wildcard_list *tmp;
tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
tmp->next = (yyvsp[-2].wildcard_list);
tmp->spec = (yyvsp[0].wildcard);
tmp->next = (yyvsp[(1) - (3)].wildcard_list);
tmp->spec = (yyvsp[(3) - (3)].wildcard);
(yyval.wildcard_list) = tmp;
}
#line 3039 "ldgram.c" /* yacc.c:1661 */
break;
 
case 135:
#line 606 "ldgram.y" /* yacc.c:1661 */
case 133:
#line 601 "ldgram.y"
{
struct wildcard_list *tmp;
tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
tmp->next = NULL;
tmp->spec = (yyvsp[0].wildcard);
tmp->spec = (yyvsp[(1) - (1)].wildcard);
(yyval.wildcard_list) = tmp;
}
#line 3051 "ldgram.c" /* yacc.c:1661 */
break;
 
case 136:
#line 617 "ldgram.y" /* yacc.c:1661 */
case 134:
#line 612 "ldgram.y"
{
struct wildcard_spec tmp;
tmp.name = (yyvsp[0].name);
tmp.name = (yyvsp[(1) - (1)].name);
tmp.exclude_name_list = NULL;
tmp.sorted = none;
tmp.section_flag_list = NULL;
lang_add_wild (&tmp, NULL, ldgram_had_keep);
}
#line 3064 "ldgram.c" /* yacc.c:1661 */
break;
 
case 137:
#line 626 "ldgram.y" /* yacc.c:1661 */
case 135:
#line 621 "ldgram.y"
{
struct wildcard_spec tmp;
tmp.name = (yyvsp[0].name);
tmp.name = (yyvsp[(2) - (2)].name);
tmp.exclude_name_list = NULL;
tmp.sorted = none;
tmp.section_flag_list = (yyvsp[-1].flag_info);
tmp.section_flag_list = (yyvsp[(1) - (2)].flag_info);
lang_add_wild (&tmp, NULL, ldgram_had_keep);
}
#line 3077 "ldgram.c" /* yacc.c:1661 */
break;
 
case 138:
#line 635 "ldgram.y" /* yacc.c:1661 */
case 136:
#line 630 "ldgram.y"
{
lang_add_wild (NULL, (yyvsp[-1].wildcard_list), ldgram_had_keep);
lang_add_wild (NULL, (yyvsp[(2) - (3)].wildcard_list), ldgram_had_keep);
}
#line 3085 "ldgram.c" /* yacc.c:1661 */
break;
 
case 139:
#line 639 "ldgram.y" /* yacc.c:1661 */
case 137:
#line 634 "ldgram.y"
{
struct wildcard_spec tmp;
tmp.name = NULL;
tmp.exclude_name_list = NULL;
tmp.sorted = none;
tmp.section_flag_list = (yyvsp[-3].flag_info);
lang_add_wild (&tmp, (yyvsp[-1].wildcard_list), ldgram_had_keep);
tmp.section_flag_list = (yyvsp[(1) - (4)].flag_info);
lang_add_wild (&tmp, (yyvsp[(3) - (4)].wildcard_list), ldgram_had_keep);
}
#line 3098 "ldgram.c" /* yacc.c:1661 */
break;
 
case 140:
#line 648 "ldgram.y" /* yacc.c:1661 */
case 138:
#line 643 "ldgram.y"
{
lang_add_wild (&(yyvsp[-3].wildcard), (yyvsp[-1].wildcard_list), ldgram_had_keep);
lang_add_wild (&(yyvsp[(1) - (4)].wildcard), (yyvsp[(3) - (4)].wildcard_list), ldgram_had_keep);
}
#line 3106 "ldgram.c" /* yacc.c:1661 */
break;
 
case 141:
#line 652 "ldgram.y" /* yacc.c:1661 */
case 139:
#line 647 "ldgram.y"
{
(yyvsp[-3].wildcard).section_flag_list = (yyvsp[-4].flag_info);
lang_add_wild (&(yyvsp[-3].wildcard), (yyvsp[-1].wildcard_list), ldgram_had_keep);
(yyvsp[(2) - (5)].wildcard).section_flag_list = (yyvsp[(1) - (5)].flag_info);
lang_add_wild (&(yyvsp[(2) - (5)].wildcard), (yyvsp[(4) - (5)].wildcard_list), ldgram_had_keep);
}
#line 3115 "ldgram.c" /* yacc.c:1661 */
break;
 
case 143:
#line 661 "ldgram.y" /* yacc.c:1661 */
case 141:
#line 656 "ldgram.y"
{ ldgram_had_keep = TRUE; }
#line 3121 "ldgram.c" /* yacc.c:1661 */
break;
 
case 144:
#line 663 "ldgram.y" /* yacc.c:1661 */
case 142:
#line 658 "ldgram.y"
{ ldgram_had_keep = FALSE; }
#line 3127 "ldgram.c" /* yacc.c:1661 */
break;
 
case 146:
#line 669 "ldgram.y" /* yacc.c:1661 */
case 144:
#line 664 "ldgram.y"
{
lang_add_attribute(lang_object_symbols_statement_enum);
}
#line 3135 "ldgram.c" /* yacc.c:1661 */
break;
 
case 148:
#line 674 "ldgram.y" /* yacc.c:1661 */
case 146:
#line 669 "ldgram.y"
{
 
lang_add_attribute(lang_constructors_statement_enum);
}
#line 3144 "ldgram.c" /* yacc.c:1661 */
break;
 
case 149:
#line 679 "ldgram.y" /* yacc.c:1661 */
case 147:
#line 674 "ldgram.y"
{
constructors_sorted = TRUE;
lang_add_attribute (lang_constructors_statement_enum);
}
#line 3153 "ldgram.c" /* yacc.c:1661 */
break;
 
case 151:
#line 685 "ldgram.y" /* yacc.c:1661 */
case 149:
#line 680 "ldgram.y"
{
lang_add_data ((int) (yyvsp[-3].integer), (yyvsp[-1].etree));
lang_add_data ((int) (yyvsp[(1) - (4)].integer), (yyvsp[(3) - (4)].etree));
}
#line 3161 "ldgram.c" /* yacc.c:1661 */
break;
 
case 152:
#line 690 "ldgram.y" /* yacc.c:1661 */
case 150:
#line 685 "ldgram.y"
{
lang_add_fill ((yyvsp[-1].fill));
lang_add_fill ((yyvsp[(3) - (4)].fill));
}
#line 3169 "ldgram.c" /* yacc.c:1661 */
break;
 
case 153:
#line 693 "ldgram.y" /* yacc.c:1661 */
case 151:
#line 688 "ldgram.y"
{ldlex_expression ();}
#line 3175 "ldgram.c" /* yacc.c:1661 */
break;
 
case 154:
#line 694 "ldgram.y" /* yacc.c:1661 */
case 152:
#line 689 "ldgram.y"
{ ldlex_popstate ();
lang_add_assignment (exp_assert ((yyvsp[-4].etree), (yyvsp[-2].name))); }
#line 3182 "ldgram.c" /* yacc.c:1661 */
lang_add_assignment (exp_assert ((yyvsp[(4) - (8)].etree), (yyvsp[(6) - (8)].name))); }
break;
 
case 155:
#line 697 "ldgram.y" /* yacc.c:1661 */
{ ldlex_script (); ldfile_open_command_file((yyvsp[0].name)); }
#line 3188 "ldgram.c" /* yacc.c:1661 */
case 153:
#line 692 "ldgram.y"
{ ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
break;
 
case 156:
#line 699 "ldgram.y" /* yacc.c:1661 */
case 154:
#line 694 "ldgram.y"
{ ldlex_popstate (); }
#line 3194 "ldgram.c" /* yacc.c:1661 */
break;
 
case 159:
#line 709 "ldgram.y"
{ (yyval.integer) = (yyvsp[(1) - (1)].token); }
break;
 
case 160:
#line 711 "ldgram.y"
{ (yyval.integer) = (yyvsp[(1) - (1)].token); }
break;
 
case 161:
#line 714 "ldgram.y" /* yacc.c:1661 */
{ (yyval.integer) = (yyvsp[0].token); }
#line 3200 "ldgram.c" /* yacc.c:1661 */
#line 713 "ldgram.y"
{ (yyval.integer) = (yyvsp[(1) - (1)].token); }
break;
 
case 162:
#line 716 "ldgram.y" /* yacc.c:1661 */
{ (yyval.integer) = (yyvsp[0].token); }
#line 3206 "ldgram.c" /* yacc.c:1661 */
#line 715 "ldgram.y"
{ (yyval.integer) = (yyvsp[(1) - (1)].token); }
break;
 
case 163:
#line 718 "ldgram.y" /* yacc.c:1661 */
{ (yyval.integer) = (yyvsp[0].token); }
#line 3212 "ldgram.c" /* yacc.c:1661 */
#line 717 "ldgram.y"
{ (yyval.integer) = (yyvsp[(1) - (1)].token); }
break;
 
case 164:
#line 720 "ldgram.y" /* yacc.c:1661 */
{ (yyval.integer) = (yyvsp[0].token); }
#line 3218 "ldgram.c" /* yacc.c:1661 */
#line 722 "ldgram.y"
{
(yyval.fill) = exp_get_fill ((yyvsp[(1) - (1)].etree), 0, "fill value");
}
break;
 
case 165:
#line 722 "ldgram.y" /* yacc.c:1661 */
{ (yyval.integer) = (yyvsp[0].token); }
#line 3224 "ldgram.c" /* yacc.c:1661 */
#line 729 "ldgram.y"
{ (yyval.fill) = (yyvsp[(2) - (2)].fill); }
break;
 
case 166:
#line 727 "ldgram.y" /* yacc.c:1661 */
{
(yyval.fill) = exp_get_fill ((yyvsp[0].etree), 0, "fill value");
}
#line 3232 "ldgram.c" /* yacc.c:1661 */
#line 730 "ldgram.y"
{ (yyval.fill) = (fill_type *) 0; }
break;
 
case 167:
#line 734 "ldgram.y" /* yacc.c:1661 */
{ (yyval.fill) = (yyvsp[0].fill); }
#line 3238 "ldgram.c" /* yacc.c:1661 */
#line 735 "ldgram.y"
{ (yyval.token) = '+'; }
break;
 
case 168:
#line 735 "ldgram.y" /* yacc.c:1661 */
{ (yyval.fill) = (fill_type *) 0; }
#line 3244 "ldgram.c" /* yacc.c:1661 */
#line 737 "ldgram.y"
{ (yyval.token) = '-'; }
break;
 
case 169:
#line 740 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = '+'; }
#line 3250 "ldgram.c" /* yacc.c:1661 */
#line 739 "ldgram.y"
{ (yyval.token) = '*'; }
break;
 
case 170:
#line 742 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = '-'; }
#line 3256 "ldgram.c" /* yacc.c:1661 */
#line 741 "ldgram.y"
{ (yyval.token) = '/'; }
break;
 
case 171:
#line 744 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = '*'; }
#line 3262 "ldgram.c" /* yacc.c:1661 */
#line 743 "ldgram.y"
{ (yyval.token) = LSHIFT; }
break;
 
case 172:
#line 746 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = '/'; }
#line 3268 "ldgram.c" /* yacc.c:1661 */
#line 745 "ldgram.y"
{ (yyval.token) = RSHIFT; }
break;
 
case 173:
#line 748 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = LSHIFT; }
#line 3274 "ldgram.c" /* yacc.c:1661 */
#line 747 "ldgram.y"
{ (yyval.token) = '&'; }
break;
 
case 174:
#line 750 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = RSHIFT; }
#line 3280 "ldgram.c" /* yacc.c:1661 */
break;
 
case 175:
#line 752 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = '&'; }
#line 3286 "ldgram.c" /* yacc.c:1661 */
break;
 
case 176:
#line 754 "ldgram.y" /* yacc.c:1661 */
#line 749 "ldgram.y"
{ (yyval.token) = '|'; }
#line 3292 "ldgram.c" /* yacc.c:1661 */
break;
 
case 179:
#line 764 "ldgram.y" /* yacc.c:1661 */
case 177:
#line 759 "ldgram.y"
{
lang_add_assignment (exp_assign ((yyvsp[-2].name), (yyvsp[0].etree), FALSE));
lang_add_assignment (exp_assign ((yyvsp[(1) - (3)].name), (yyvsp[(3) - (3)].etree), FALSE));
}
#line 3300 "ldgram.c" /* yacc.c:1661 */
break;
 
case 180:
#line 768 "ldgram.y" /* yacc.c:1661 */
case 178:
#line 763 "ldgram.y"
{
lang_add_assignment (exp_assign ((yyvsp[-2].name),
exp_binop ((yyvsp[-1].token),
lang_add_assignment (exp_assign ((yyvsp[(1) - (3)].name),
exp_binop ((yyvsp[(2) - (3)].token),
exp_nameop (NAME,
(yyvsp[-2].name)),
(yyvsp[0].etree)), FALSE));
(yyvsp[(1) - (3)].name)),
(yyvsp[(3) - (3)].etree)), FALSE));
}
#line 3312 "ldgram.c" /* yacc.c:1661 */
break;
 
case 181:
#line 776 "ldgram.y" /* yacc.c:1661 */
case 179:
#line 771 "ldgram.y"
{
lang_add_assignment (exp_assign ((yyvsp[-3].name), (yyvsp[-1].etree), TRUE));
lang_add_assignment (exp_assign ((yyvsp[(3) - (6)].name), (yyvsp[(5) - (6)].etree), TRUE));
}
#line 3320 "ldgram.c" /* yacc.c:1661 */
break;
 
case 182:
#line 780 "ldgram.y" /* yacc.c:1661 */
case 180:
#line 775 "ldgram.y"
{
lang_add_assignment (exp_provide ((yyvsp[-3].name), (yyvsp[-1].etree), FALSE));
lang_add_assignment (exp_provide ((yyvsp[(3) - (6)].name), (yyvsp[(5) - (6)].etree), FALSE));
}
#line 3328 "ldgram.c" /* yacc.c:1661 */
break;
 
case 183:
#line 784 "ldgram.y" /* yacc.c:1661 */
case 181:
#line 779 "ldgram.y"
{
lang_add_assignment (exp_provide ((yyvsp[-3].name), (yyvsp[-1].etree), TRUE));
lang_add_assignment (exp_provide ((yyvsp[(3) - (6)].name), (yyvsp[(5) - (6)].etree), TRUE));
}
#line 3336 "ldgram.c" /* yacc.c:1661 */
break;
 
case 191:
#line 807 "ldgram.y" /* yacc.c:1661 */
{ region = lang_memory_region_lookup ((yyvsp[0].name), TRUE); }
#line 3342 "ldgram.c" /* yacc.c:1661 */
case 189:
#line 802 "ldgram.y"
{ region = lang_memory_region_lookup ((yyvsp[(1) - (1)].name), TRUE); }
break;
 
case 192:
#line 810 "ldgram.y" /* yacc.c:1661 */
case 190:
#line 805 "ldgram.y"
{}
#line 3348 "ldgram.c" /* yacc.c:1661 */
break;
 
case 193:
#line 812 "ldgram.y" /* yacc.c:1661 */
{ ldlex_script (); ldfile_open_command_file((yyvsp[0].name)); }
#line 3354 "ldgram.c" /* yacc.c:1661 */
case 191:
#line 807 "ldgram.y"
{ ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
break;
 
case 194:
#line 814 "ldgram.y" /* yacc.c:1661 */
case 192:
#line 809 "ldgram.y"
{ ldlex_popstate (); }
#line 3360 "ldgram.c" /* yacc.c:1661 */
break;
 
case 195:
#line 819 "ldgram.y" /* yacc.c:1661 */
case 193:
#line 814 "ldgram.y"
{
region->origin_exp = (yyvsp[0].etree);
region->origin = exp_get_vma ((yyvsp[(3) - (3)].etree), 0, "origin");
region->current = region->origin;
}
#line 3369 "ldgram.c" /* yacc.c:1661 */
break;
 
case 196:
#line 827 "ldgram.y" /* yacc.c:1661 */
case 194:
#line 822 "ldgram.y"
{
region->length_exp = (yyvsp[0].etree);
region->length = exp_get_vma ((yyvsp[(3) - (3)].etree), -1, "length");
}
#line 3377 "ldgram.c" /* yacc.c:1661 */
break;
 
case 197:
#line 834 "ldgram.y" /* yacc.c:1661 */
case 195:
#line 829 "ldgram.y"
{ /* dummy action to avoid bison 1.25 error message */ }
#line 3383 "ldgram.c" /* yacc.c:1661 */
break;
 
case 201:
#line 845 "ldgram.y" /* yacc.c:1661 */
{ lang_set_flags (region, (yyvsp[0].name), 0); }
#line 3389 "ldgram.c" /* yacc.c:1661 */
case 199:
#line 840 "ldgram.y"
{ lang_set_flags (region, (yyvsp[(1) - (1)].name), 0); }
break;
 
case 202:
#line 847 "ldgram.y" /* yacc.c:1661 */
{ lang_set_flags (region, (yyvsp[0].name), 1); }
#line 3395 "ldgram.c" /* yacc.c:1661 */
case 200:
#line 842 "ldgram.y"
{ lang_set_flags (region, (yyvsp[(2) - (2)].name), 1); }
break;
 
case 203:
#line 852 "ldgram.y" /* yacc.c:1661 */
{ lang_startup((yyvsp[-1].name)); }
#line 3401 "ldgram.c" /* yacc.c:1661 */
case 201:
#line 847 "ldgram.y"
{ lang_startup((yyvsp[(3) - (4)].name)); }
break;
 
case 205:
#line 858 "ldgram.y" /* yacc.c:1661 */
case 203:
#line 853 "ldgram.y"
{ ldemul_hll((char *)NULL); }
#line 3407 "ldgram.c" /* yacc.c:1661 */
break;
 
case 206:
#line 863 "ldgram.y" /* yacc.c:1661 */
{ ldemul_hll((yyvsp[0].name)); }
#line 3413 "ldgram.c" /* yacc.c:1661 */
case 204:
#line 858 "ldgram.y"
{ ldemul_hll((yyvsp[(3) - (3)].name)); }
break;
 
case 205:
#line 860 "ldgram.y"
{ ldemul_hll((yyvsp[(1) - (1)].name)); }
break;
 
case 207:
#line 865 "ldgram.y" /* yacc.c:1661 */
{ ldemul_hll((yyvsp[0].name)); }
#line 3419 "ldgram.c" /* yacc.c:1661 */
#line 868 "ldgram.y"
{ ldemul_syslib((yyvsp[(3) - (3)].name)); }
break;
 
case 209:
#line 873 "ldgram.y" /* yacc.c:1661 */
{ ldemul_syslib((yyvsp[0].name)); }
#line 3425 "ldgram.c" /* yacc.c:1661 */
break;
 
case 211:
#line 879 "ldgram.y" /* yacc.c:1661 */
#line 874 "ldgram.y"
{ lang_float(TRUE); }
#line 3431 "ldgram.c" /* yacc.c:1661 */
break;
 
case 212:
#line 881 "ldgram.y" /* yacc.c:1661 */
case 210:
#line 876 "ldgram.y"
{ lang_float(FALSE); }
#line 3437 "ldgram.c" /* yacc.c:1661 */
break;
 
case 213:
#line 886 "ldgram.y" /* yacc.c:1661 */
case 211:
#line 881 "ldgram.y"
{
(yyval.nocrossref) = NULL;
}
#line 3445 "ldgram.c" /* yacc.c:1661 */
break;
 
case 214:
#line 890 "ldgram.y" /* yacc.c:1661 */
case 212:
#line 885 "ldgram.y"
{
struct lang_nocrossref *n;
 
n = (struct lang_nocrossref *) xmalloc (sizeof *n);
n->name = (yyvsp[-1].name);
n->next = (yyvsp[0].nocrossref);
n->name = (yyvsp[(1) - (2)].name);
n->next = (yyvsp[(2) - (2)].nocrossref);
(yyval.nocrossref) = n;
}
#line 3458 "ldgram.c" /* yacc.c:1661 */
break;
 
case 215:
#line 899 "ldgram.y" /* yacc.c:1661 */
case 213:
#line 894 "ldgram.y"
{
struct lang_nocrossref *n;
 
n = (struct lang_nocrossref *) xmalloc (sizeof *n);
n->name = (yyvsp[-2].name);
n->next = (yyvsp[0].nocrossref);
n->name = (yyvsp[(1) - (3)].name);
n->next = (yyvsp[(3) - (3)].nocrossref);
(yyval.nocrossref) = n;
}
#line 3471 "ldgram.c" /* yacc.c:1661 */
break;
 
case 216:
#line 909 "ldgram.y" /* yacc.c:1661 */
case 214:
#line 904 "ldgram.y"
{ ldlex_expression (); }
#line 3477 "ldgram.c" /* yacc.c:1661 */
break;
 
case 215:
#line 906 "ldgram.y"
{ ldlex_popstate (); (yyval.etree)=(yyvsp[(2) - (2)].etree);}
break;
 
case 216:
#line 911 "ldgram.y"
{ (yyval.etree) = exp_unop ('-', (yyvsp[(2) - (2)].etree)); }
break;
 
case 217:
#line 911 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate (); (yyval.etree)=(yyvsp[0].etree);}
#line 3483 "ldgram.c" /* yacc.c:1661 */
#line 913 "ldgram.y"
{ (yyval.etree) = (yyvsp[(2) - (3)].etree); }
break;
 
case 218:
#line 916 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_unop ('-', (yyvsp[0].etree)); }
#line 3489 "ldgram.c" /* yacc.c:1661 */
#line 915 "ldgram.y"
{ (yyval.etree) = exp_unop ((int) (yyvsp[(1) - (4)].integer),(yyvsp[(3) - (4)].etree)); }
break;
 
case 219:
#line 918 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[-1].etree); }
#line 3495 "ldgram.c" /* yacc.c:1661 */
#line 917 "ldgram.y"
{ (yyval.etree) = exp_unop ('!', (yyvsp[(2) - (2)].etree)); }
break;
 
case 220:
#line 920 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_unop ((int) (yyvsp[-3].integer),(yyvsp[-1].etree)); }
#line 3501 "ldgram.c" /* yacc.c:1661 */
#line 919 "ldgram.y"
{ (yyval.etree) = (yyvsp[(2) - (2)].etree); }
break;
 
case 221:
#line 922 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_unop ('!', (yyvsp[0].etree)); }
#line 3507 "ldgram.c" /* yacc.c:1661 */
#line 921 "ldgram.y"
{ (yyval.etree) = exp_unop ('~', (yyvsp[(2) - (2)].etree));}
break;
 
case 222:
#line 924 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[0].etree); }
#line 3513 "ldgram.c" /* yacc.c:1661 */
#line 924 "ldgram.y"
{ (yyval.etree) = exp_binop ('*', (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 223:
#line 926 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_unop ('~', (yyvsp[0].etree));}
#line 3519 "ldgram.c" /* yacc.c:1661 */
#line 926 "ldgram.y"
{ (yyval.etree) = exp_binop ('/', (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 224:
#line 929 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('*', (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3525 "ldgram.c" /* yacc.c:1661 */
#line 928 "ldgram.y"
{ (yyval.etree) = exp_binop ('%', (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 225:
#line 931 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('/', (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3531 "ldgram.c" /* yacc.c:1661 */
#line 930 "ldgram.y"
{ (yyval.etree) = exp_binop ('+', (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 226:
#line 933 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('%', (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3537 "ldgram.c" /* yacc.c:1661 */
#line 932 "ldgram.y"
{ (yyval.etree) = exp_binop ('-' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 227:
#line 935 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('+', (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3543 "ldgram.c" /* yacc.c:1661 */
#line 934 "ldgram.y"
{ (yyval.etree) = exp_binop (LSHIFT , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 228:
#line 937 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('-' , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3549 "ldgram.c" /* yacc.c:1661 */
#line 936 "ldgram.y"
{ (yyval.etree) = exp_binop (RSHIFT , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 229:
#line 939 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop (LSHIFT , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3555 "ldgram.c" /* yacc.c:1661 */
#line 938 "ldgram.y"
{ (yyval.etree) = exp_binop (EQ , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 230:
#line 941 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop (RSHIFT , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3561 "ldgram.c" /* yacc.c:1661 */
#line 940 "ldgram.y"
{ (yyval.etree) = exp_binop (NE , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 231:
#line 943 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop (EQ , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3567 "ldgram.c" /* yacc.c:1661 */
#line 942 "ldgram.y"
{ (yyval.etree) = exp_binop (LE , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 232:
#line 945 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop (NE , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3573 "ldgram.c" /* yacc.c:1661 */
#line 944 "ldgram.y"
{ (yyval.etree) = exp_binop (GE , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 233:
#line 947 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop (LE , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3579 "ldgram.c" /* yacc.c:1661 */
#line 946 "ldgram.y"
{ (yyval.etree) = exp_binop ('<' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 234:
#line 949 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop (GE , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3585 "ldgram.c" /* yacc.c:1661 */
#line 948 "ldgram.y"
{ (yyval.etree) = exp_binop ('>' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 235:
#line 951 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('<' , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3591 "ldgram.c" /* yacc.c:1661 */
#line 950 "ldgram.y"
{ (yyval.etree) = exp_binop ('&' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 236:
#line 953 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('>' , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3597 "ldgram.c" /* yacc.c:1661 */
#line 952 "ldgram.y"
{ (yyval.etree) = exp_binop ('^' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 237:
#line 955 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('&' , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3603 "ldgram.c" /* yacc.c:1661 */
#line 954 "ldgram.y"
{ (yyval.etree) = exp_binop ('|' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 238:
#line 957 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('^' , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3609 "ldgram.c" /* yacc.c:1661 */
#line 956 "ldgram.y"
{ (yyval.etree) = exp_trinop ('?' , (yyvsp[(1) - (5)].etree), (yyvsp[(3) - (5)].etree), (yyvsp[(5) - (5)].etree)); }
break;
 
case 239:
#line 959 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('|' , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3615 "ldgram.c" /* yacc.c:1661 */
#line 958 "ldgram.y"
{ (yyval.etree) = exp_binop (ANDAND , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 240:
#line 961 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_trinop ('?' , (yyvsp[-4].etree), (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3621 "ldgram.c" /* yacc.c:1661 */
#line 960 "ldgram.y"
{ (yyval.etree) = exp_binop (OROR , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
break;
 
case 241:
#line 963 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop (ANDAND , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3627 "ldgram.c" /* yacc.c:1661 */
#line 962 "ldgram.y"
{ (yyval.etree) = exp_nameop (DEFINED, (yyvsp[(3) - (4)].name)); }
break;
 
case 242:
#line 965 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop (OROR , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3633 "ldgram.c" /* yacc.c:1661 */
#line 964 "ldgram.y"
{ (yyval.etree) = exp_bigintop ((yyvsp[(1) - (1)].bigint).integer, (yyvsp[(1) - (1)].bigint).str); }
break;
 
case 243:
#line 967 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (DEFINED, (yyvsp[-1].name)); }
#line 3639 "ldgram.c" /* yacc.c:1661 */
#line 966 "ldgram.y"
{ (yyval.etree) = exp_nameop (SIZEOF_HEADERS,0); }
break;
 
case 244:
#line 969 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_bigintop ((yyvsp[0].bigint).integer, (yyvsp[0].bigint).str); }
#line 3645 "ldgram.c" /* yacc.c:1661 */
#line 969 "ldgram.y"
{ (yyval.etree) = exp_nameop (ALIGNOF,(yyvsp[(3) - (4)].name)); }
break;
 
case 245:
#line 971 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (SIZEOF_HEADERS,0); }
#line 3651 "ldgram.c" /* yacc.c:1661 */
#line 971 "ldgram.y"
{ (yyval.etree) = exp_nameop (SIZEOF,(yyvsp[(3) - (4)].name)); }
break;
 
case 246:
#line 974 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (ALIGNOF,(yyvsp[-1].name)); }
#line 3657 "ldgram.c" /* yacc.c:1661 */
#line 973 "ldgram.y"
{ (yyval.etree) = exp_nameop (ADDR,(yyvsp[(3) - (4)].name)); }
break;
 
case 247:
#line 976 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (SIZEOF,(yyvsp[-1].name)); }
#line 3663 "ldgram.c" /* yacc.c:1661 */
#line 975 "ldgram.y"
{ (yyval.etree) = exp_nameop (LOADADDR,(yyvsp[(3) - (4)].name)); }
break;
 
case 248:
#line 978 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (ADDR,(yyvsp[-1].name)); }
#line 3669 "ldgram.c" /* yacc.c:1661 */
#line 977 "ldgram.y"
{ (yyval.etree) = exp_nameop (CONSTANT,(yyvsp[(3) - (4)].name)); }
break;
 
case 249:
#line 980 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (LOADADDR,(yyvsp[-1].name)); }
#line 3675 "ldgram.c" /* yacc.c:1661 */
#line 979 "ldgram.y"
{ (yyval.etree) = exp_unop (ABSOLUTE, (yyvsp[(3) - (4)].etree)); }
break;
 
case 250:
#line 982 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (CONSTANT,(yyvsp[-1].name)); }
#line 3681 "ldgram.c" /* yacc.c:1661 */
#line 981 "ldgram.y"
{ (yyval.etree) = exp_unop (ALIGN_K,(yyvsp[(3) - (4)].etree)); }
break;
 
case 251:
#line 984 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_unop (ABSOLUTE, (yyvsp[-1].etree)); }
#line 3687 "ldgram.c" /* yacc.c:1661 */
#line 983 "ldgram.y"
{ (yyval.etree) = exp_binop (ALIGN_K,(yyvsp[(3) - (6)].etree),(yyvsp[(5) - (6)].etree)); }
break;
 
case 252:
#line 986 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_unop (ALIGN_K,(yyvsp[-1].etree)); }
#line 3693 "ldgram.c" /* yacc.c:1661 */
#line 985 "ldgram.y"
{ (yyval.etree) = exp_binop (DATA_SEGMENT_ALIGN, (yyvsp[(3) - (6)].etree), (yyvsp[(5) - (6)].etree)); }
break;
 
case 253:
#line 988 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop (ALIGN_K,(yyvsp[-3].etree),(yyvsp[-1].etree)); }
#line 3699 "ldgram.c" /* yacc.c:1661 */
#line 987 "ldgram.y"
{ (yyval.etree) = exp_binop (DATA_SEGMENT_RELRO_END, (yyvsp[(5) - (6)].etree), (yyvsp[(3) - (6)].etree)); }
break;
 
case 254:
#line 990 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop (DATA_SEGMENT_ALIGN, (yyvsp[-3].etree), (yyvsp[-1].etree)); }
#line 3705 "ldgram.c" /* yacc.c:1661 */
#line 989 "ldgram.y"
{ (yyval.etree) = exp_unop (DATA_SEGMENT_END, (yyvsp[(3) - (4)].etree)); }
break;
 
case 255:
#line 992 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop (DATA_SEGMENT_RELRO_END, (yyvsp[-1].etree), (yyvsp[-3].etree)); }
#line 3711 "ldgram.c" /* yacc.c:1661 */
break;
 
case 256:
#line 994 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_unop (DATA_SEGMENT_END, (yyvsp[-1].etree)); }
#line 3717 "ldgram.c" /* yacc.c:1661 */
break;
 
case 257:
#line 996 "ldgram.y" /* yacc.c:1661 */
#line 991 "ldgram.y"
{ /* The operands to the expression node are
placed in the opposite order from the way
in which they appear in the script as
3724,426 → 3817,363
that allows us to reuse more code in
fold_binary. */
(yyval.etree) = exp_binop (SEGMENT_START,
(yyvsp[-1].etree),
exp_nameop (NAME, (yyvsp[-3].name))); }
#line 3730 "ldgram.c" /* yacc.c:1661 */
(yyvsp[(5) - (6)].etree),
exp_nameop (NAME, (yyvsp[(3) - (6)].name))); }
break;
 
case 256:
#line 1000 "ldgram.y"
{ (yyval.etree) = exp_unop (ALIGN_K,(yyvsp[(3) - (4)].etree)); }
break;
 
case 257:
#line 1002 "ldgram.y"
{ (yyval.etree) = exp_nameop (NAME,(yyvsp[(1) - (1)].name)); }
break;
 
case 258:
#line 1005 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_unop (ALIGN_K,(yyvsp[-1].etree)); }
#line 3736 "ldgram.c" /* yacc.c:1661 */
#line 1004 "ldgram.y"
{ (yyval.etree) = exp_binop (MAX_K, (yyvsp[(3) - (6)].etree), (yyvsp[(5) - (6)].etree) ); }
break;
 
case 259:
#line 1007 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (NAME,(yyvsp[0].name)); }
#line 3742 "ldgram.c" /* yacc.c:1661 */
#line 1006 "ldgram.y"
{ (yyval.etree) = exp_binop (MIN_K, (yyvsp[(3) - (6)].etree), (yyvsp[(5) - (6)].etree) ); }
break;
 
case 260:
#line 1009 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop (MAX_K, (yyvsp[-3].etree), (yyvsp[-1].etree) ); }
#line 3748 "ldgram.c" /* yacc.c:1661 */
#line 1008 "ldgram.y"
{ (yyval.etree) = exp_assert ((yyvsp[(3) - (6)].etree), (yyvsp[(5) - (6)].name)); }
break;
 
case 261:
#line 1011 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop (MIN_K, (yyvsp[-3].etree), (yyvsp[-1].etree) ); }
#line 3754 "ldgram.c" /* yacc.c:1661 */
#line 1010 "ldgram.y"
{ (yyval.etree) = exp_nameop (ORIGIN, (yyvsp[(3) - (4)].name)); }
break;
 
case 262:
#line 1013 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_assert ((yyvsp[-3].etree), (yyvsp[-1].name)); }
#line 3760 "ldgram.c" /* yacc.c:1661 */
#line 1012 "ldgram.y"
{ (yyval.etree) = exp_nameop (LENGTH, (yyvsp[(3) - (4)].name)); }
break;
 
case 263:
#line 1015 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (ORIGIN, (yyvsp[-1].name)); }
#line 3766 "ldgram.c" /* yacc.c:1661 */
#line 1014 "ldgram.y"
{ (yyval.etree) = exp_unop (LOG2CEIL, (yyvsp[(3) - (4)].etree)); }
break;
 
case 264:
#line 1017 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (LENGTH, (yyvsp[-1].name)); }
#line 3772 "ldgram.c" /* yacc.c:1661 */
#line 1019 "ldgram.y"
{ (yyval.name) = (yyvsp[(3) - (3)].name); }
break;
 
case 265:
#line 1019 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_unop (LOG2CEIL, (yyvsp[-1].etree)); }
#line 3778 "ldgram.c" /* yacc.c:1661 */
#line 1020 "ldgram.y"
{ (yyval.name) = 0; }
break;
 
case 266:
#line 1024 "ldgram.y" /* yacc.c:1661 */
{ (yyval.name) = (yyvsp[0].name); }
#line 3784 "ldgram.c" /* yacc.c:1661 */
#line 1024 "ldgram.y"
{ (yyval.etree) = (yyvsp[(3) - (4)].etree); }
break;
 
case 267:
#line 1025 "ldgram.y" /* yacc.c:1661 */
{ (yyval.name) = 0; }
#line 3790 "ldgram.c" /* yacc.c:1661 */
#line 1025 "ldgram.y"
{ (yyval.etree) = 0; }
break;
 
case 268:
#line 1029 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[-1].etree); }
#line 3796 "ldgram.c" /* yacc.c:1661 */
#line 1029 "ldgram.y"
{ (yyval.etree) = (yyvsp[(3) - (4)].etree); }
break;
 
case 269:
#line 1030 "ldgram.y" /* yacc.c:1661 */
#line 1030 "ldgram.y"
{ (yyval.etree) = 0; }
#line 3802 "ldgram.c" /* yacc.c:1661 */
break;
 
case 270:
#line 1034 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[-1].etree); }
#line 3808 "ldgram.c" /* yacc.c:1661 */
#line 1034 "ldgram.y"
{ (yyval.token) = ALIGN_WITH_INPUT; }
break;
 
case 271:
#line 1035 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = 0; }
#line 3814 "ldgram.c" /* yacc.c:1661 */
#line 1035 "ldgram.y"
{ (yyval.token) = 0; }
break;
 
case 272:
#line 1039 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = ALIGN_WITH_INPUT; }
#line 3820 "ldgram.c" /* yacc.c:1661 */
#line 1039 "ldgram.y"
{ (yyval.etree) = (yyvsp[(3) - (4)].etree); }
break;
 
case 273:
#line 1040 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = 0; }
#line 3826 "ldgram.c" /* yacc.c:1661 */
#line 1040 "ldgram.y"
{ (yyval.etree) = 0; }
break;
 
case 274:
#line 1044 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[-1].etree); }
#line 3832 "ldgram.c" /* yacc.c:1661 */
#line 1044 "ldgram.y"
{ (yyval.token) = ONLY_IF_RO; }
break;
 
case 275:
#line 1045 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = 0; }
#line 3838 "ldgram.c" /* yacc.c:1661 */
#line 1045 "ldgram.y"
{ (yyval.token) = ONLY_IF_RW; }
break;
 
case 276:
#line 1049 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = ONLY_IF_RO; }
#line 3844 "ldgram.c" /* yacc.c:1661 */
#line 1046 "ldgram.y"
{ (yyval.token) = SPECIAL; }
break;
 
case 277:
#line 1050 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = ONLY_IF_RW; }
#line 3850 "ldgram.c" /* yacc.c:1661 */
#line 1047 "ldgram.y"
{ (yyval.token) = 0; }
break;
 
case 278:
#line 1051 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = SPECIAL; }
#line 3856 "ldgram.c" /* yacc.c:1661 */
#line 1050 "ldgram.y"
{ ldlex_expression(); }
break;
 
case 279:
#line 1052 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = 0; }
#line 3862 "ldgram.c" /* yacc.c:1661 */
#line 1055 "ldgram.y"
{ ldlex_popstate (); ldlex_script (); }
break;
 
case 280:
#line 1055 "ldgram.y" /* yacc.c:1661 */
{ ldlex_expression(); }
#line 3868 "ldgram.c" /* yacc.c:1661 */
break;
 
case 281:
#line 1060 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate (); ldlex_script (); }
#line 3874 "ldgram.c" /* yacc.c:1661 */
break;
 
case 282:
#line 1063 "ldgram.y" /* yacc.c:1661 */
#line 1058 "ldgram.y"
{
lang_enter_output_section_statement((yyvsp[-9].name), (yyvsp[-7].etree),
lang_enter_output_section_statement((yyvsp[(1) - (10)].name), (yyvsp[(3) - (10)].etree),
sectype,
(yyvsp[-5].etree), (yyvsp[-3].etree), (yyvsp[-6].etree), (yyvsp[-1].token), (yyvsp[-4].token));
(yyvsp[(5) - (10)].etree), (yyvsp[(7) - (10)].etree), (yyvsp[(4) - (10)].etree), (yyvsp[(9) - (10)].token), (yyvsp[(6) - (10)].token));
}
#line 3884 "ldgram.c" /* yacc.c:1661 */
break;
 
case 283:
#line 1069 "ldgram.y" /* yacc.c:1661 */
case 281:
#line 1064 "ldgram.y"
{ ldlex_popstate (); ldlex_expression (); }
#line 3890 "ldgram.c" /* yacc.c:1661 */
break;
 
case 284:
#line 1071 "ldgram.y" /* yacc.c:1661 */
case 282:
#line 1066 "ldgram.y"
{
ldlex_popstate ();
lang_leave_output_section_statement ((yyvsp[0].fill), (yyvsp[-3].name), (yyvsp[-1].section_phdr), (yyvsp[-2].name));
lang_leave_output_section_statement ((yyvsp[(18) - (18)].fill), (yyvsp[(15) - (18)].name), (yyvsp[(17) - (18)].section_phdr), (yyvsp[(16) - (18)].name));
}
#line 3899 "ldgram.c" /* yacc.c:1661 */
break;
 
case 285:
#line 1076 "ldgram.y" /* yacc.c:1661 */
case 283:
#line 1071 "ldgram.y"
{}
#line 3905 "ldgram.c" /* yacc.c:1661 */
break;
 
case 286:
#line 1078 "ldgram.y" /* yacc.c:1661 */
case 284:
#line 1073 "ldgram.y"
{ ldlex_expression (); }
#line 3911 "ldgram.c" /* yacc.c:1661 */
break;
 
case 287:
#line 1080 "ldgram.y" /* yacc.c:1661 */
case 285:
#line 1075 "ldgram.y"
{ ldlex_popstate (); ldlex_script (); }
#line 3917 "ldgram.c" /* yacc.c:1661 */
break;
 
case 288:
#line 1082 "ldgram.y" /* yacc.c:1661 */
case 286:
#line 1077 "ldgram.y"
{
lang_enter_overlay ((yyvsp[-5].etree), (yyvsp[-2].etree));
lang_enter_overlay ((yyvsp[(3) - (8)].etree), (yyvsp[(6) - (8)].etree));
}
#line 3925 "ldgram.c" /* yacc.c:1661 */
break;
 
case 289:
#line 1087 "ldgram.y" /* yacc.c:1661 */
case 287:
#line 1082 "ldgram.y"
{ ldlex_popstate (); ldlex_expression (); }
#line 3931 "ldgram.c" /* yacc.c:1661 */
break;
 
case 290:
#line 1089 "ldgram.y" /* yacc.c:1661 */
case 288:
#line 1084 "ldgram.y"
{
ldlex_popstate ();
lang_leave_overlay ((yyvsp[-11].etree), (int) (yyvsp[-12].integer),
(yyvsp[0].fill), (yyvsp[-3].name), (yyvsp[-1].section_phdr), (yyvsp[-2].name));
lang_leave_overlay ((yyvsp[(5) - (16)].etree), (int) (yyvsp[(4) - (16)].integer),
(yyvsp[(16) - (16)].fill), (yyvsp[(13) - (16)].name), (yyvsp[(15) - (16)].section_phdr), (yyvsp[(14) - (16)].name));
}
#line 3941 "ldgram.c" /* yacc.c:1661 */
break;
 
case 292:
#line 1099 "ldgram.y" /* yacc.c:1661 */
case 290:
#line 1094 "ldgram.y"
{ ldlex_expression (); }
#line 3947 "ldgram.c" /* yacc.c:1661 */
break;
 
case 293:
#line 1101 "ldgram.y" /* yacc.c:1661 */
case 291:
#line 1096 "ldgram.y"
{
ldlex_popstate ();
lang_add_assignment (exp_assign (".", (yyvsp[0].etree), FALSE));
lang_add_assignment (exp_assign (".", (yyvsp[(3) - (3)].etree), FALSE));
}
#line 3956 "ldgram.c" /* yacc.c:1661 */
break;
 
case 293:
#line 1102 "ldgram.y"
{ ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
break;
 
case 294:
#line 1104 "ldgram.y"
{ ldlex_popstate (); }
break;
 
case 295:
#line 1107 "ldgram.y" /* yacc.c:1661 */
{ ldlex_script (); ldfile_open_command_file((yyvsp[0].name)); }
#line 3962 "ldgram.c" /* yacc.c:1661 */
#line 1108 "ldgram.y"
{ sectype = noload_section; }
break;
 
case 296:
#line 1109 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate (); }
#line 3968 "ldgram.c" /* yacc.c:1661 */
#line 1109 "ldgram.y"
{ sectype = noalloc_section; }
break;
 
case 297:
#line 1113 "ldgram.y" /* yacc.c:1661 */
{ sectype = noload_section; }
#line 3974 "ldgram.c" /* yacc.c:1661 */
#line 1110 "ldgram.y"
{ sectype = noalloc_section; }
break;
 
case 298:
#line 1114 "ldgram.y" /* yacc.c:1661 */
#line 1111 "ldgram.y"
{ sectype = noalloc_section; }
#line 3980 "ldgram.c" /* yacc.c:1661 */
break;
 
case 299:
#line 1115 "ldgram.y" /* yacc.c:1661 */
#line 1112 "ldgram.y"
{ sectype = noalloc_section; }
#line 3986 "ldgram.c" /* yacc.c:1661 */
break;
 
case 300:
#line 1116 "ldgram.y" /* yacc.c:1661 */
{ sectype = noalloc_section; }
#line 3992 "ldgram.c" /* yacc.c:1661 */
case 301:
#line 1117 "ldgram.y"
{ sectype = normal_section; }
break;
 
case 301:
#line 1117 "ldgram.y" /* yacc.c:1661 */
{ sectype = noalloc_section; }
#line 3998 "ldgram.c" /* yacc.c:1661 */
case 302:
#line 1118 "ldgram.y"
{ sectype = normal_section; }
break;
 
case 303:
#line 1122 "ldgram.y" /* yacc.c:1661 */
{ sectype = normal_section; }
#line 4004 "ldgram.c" /* yacc.c:1661 */
#line 1122 "ldgram.y"
{ (yyval.etree) = (yyvsp[(1) - (3)].etree); }
break;
 
case 304:
#line 1123 "ldgram.y" /* yacc.c:1661 */
{ sectype = normal_section; }
#line 4010 "ldgram.c" /* yacc.c:1661 */
#line 1123 "ldgram.y"
{ (yyval.etree) = (etree_type *)NULL; }
break;
 
case 305:
#line 1127 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[-2].etree); }
#line 4016 "ldgram.c" /* yacc.c:1661 */
#line 1128 "ldgram.y"
{ (yyval.etree) = (yyvsp[(3) - (6)].etree); }
break;
 
case 306:
#line 1128 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (etree_type *)NULL; }
#line 4022 "ldgram.c" /* yacc.c:1661 */
#line 1130 "ldgram.y"
{ (yyval.etree) = (yyvsp[(3) - (10)].etree); }
break;
 
case 307:
#line 1133 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[-3].etree); }
#line 4028 "ldgram.c" /* yacc.c:1661 */
#line 1134 "ldgram.y"
{ (yyval.etree) = (yyvsp[(1) - (2)].etree); }
break;
 
case 308:
#line 1135 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[-7].etree); }
#line 4034 "ldgram.c" /* yacc.c:1661 */
#line 1135 "ldgram.y"
{ (yyval.etree) = (etree_type *) NULL; }
break;
 
case 309:
#line 1139 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[-1].etree); }
#line 4040 "ldgram.c" /* yacc.c:1661 */
#line 1140 "ldgram.y"
{ (yyval.integer) = 0; }
break;
 
case 310:
#line 1140 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (etree_type *) NULL; }
#line 4046 "ldgram.c" /* yacc.c:1661 */
#line 1142 "ldgram.y"
{ (yyval.integer) = 1; }
break;
 
case 311:
#line 1145 "ldgram.y" /* yacc.c:1661 */
{ (yyval.integer) = 0; }
#line 4052 "ldgram.c" /* yacc.c:1661 */
#line 1147 "ldgram.y"
{ (yyval.name) = (yyvsp[(2) - (2)].name); }
break;
 
case 312:
#line 1147 "ldgram.y" /* yacc.c:1661 */
{ (yyval.integer) = 1; }
#line 4058 "ldgram.c" /* yacc.c:1661 */
#line 1148 "ldgram.y"
{ (yyval.name) = DEFAULT_MEMORY_REGION; }
break;
 
case 313:
#line 1152 "ldgram.y" /* yacc.c:1661 */
{ (yyval.name) = (yyvsp[0].name); }
#line 4064 "ldgram.c" /* yacc.c:1661 */
break;
 
case 314:
#line 1153 "ldgram.y" /* yacc.c:1661 */
{ (yyval.name) = DEFAULT_MEMORY_REGION; }
#line 4070 "ldgram.c" /* yacc.c:1661 */
break;
 
case 315:
#line 1158 "ldgram.y" /* yacc.c:1661 */
#line 1153 "ldgram.y"
{
(yyval.section_phdr) = NULL;
}
#line 4078 "ldgram.c" /* yacc.c:1661 */
break;
 
case 316:
#line 1162 "ldgram.y" /* yacc.c:1661 */
case 314:
#line 1157 "ldgram.y"
{
struct lang_output_section_phdr_list *n;
 
n = ((struct lang_output_section_phdr_list *)
xmalloc (sizeof *n));
n->name = (yyvsp[0].name);
n->name = (yyvsp[(3) - (3)].name);
n->used = FALSE;
n->next = (yyvsp[-2].section_phdr);
n->next = (yyvsp[(1) - (3)].section_phdr);
(yyval.section_phdr) = n;
}
#line 4093 "ldgram.c" /* yacc.c:1661 */
break;
 
case 318:
#line 1178 "ldgram.y" /* yacc.c:1661 */
case 316:
#line 1173 "ldgram.y"
{
ldlex_script ();
lang_enter_overlay_section ((yyvsp[0].name));
lang_enter_overlay_section ((yyvsp[(2) - (2)].name));
}
#line 4102 "ldgram.c" /* yacc.c:1661 */
break;
 
case 319:
#line 1183 "ldgram.y" /* yacc.c:1661 */
case 317:
#line 1178 "ldgram.y"
{ ldlex_popstate (); ldlex_expression (); }
#line 4108 "ldgram.c" /* yacc.c:1661 */
break;
 
case 320:
#line 1185 "ldgram.y" /* yacc.c:1661 */
case 318:
#line 1180 "ldgram.y"
{
ldlex_popstate ();
lang_leave_overlay_section ((yyvsp[0].fill), (yyvsp[-1].section_phdr));
lang_leave_overlay_section ((yyvsp[(9) - (9)].fill), (yyvsp[(8) - (9)].section_phdr));
}
#line 4117 "ldgram.c" /* yacc.c:1661 */
break;
 
case 325:
#line 1202 "ldgram.y" /* yacc.c:1661 */
case 323:
#line 1197 "ldgram.y"
{ ldlex_expression (); }
#line 4123 "ldgram.c" /* yacc.c:1661 */
break;
 
case 326:
#line 1203 "ldgram.y" /* yacc.c:1661 */
case 324:
#line 1198 "ldgram.y"
{ ldlex_popstate (); }
#line 4129 "ldgram.c" /* yacc.c:1661 */
break;
 
case 327:
#line 1205 "ldgram.y" /* yacc.c:1661 */
case 325:
#line 1200 "ldgram.y"
{
lang_new_phdr ((yyvsp[-5].name), (yyvsp[-3].etree), (yyvsp[-2].phdr).filehdr, (yyvsp[-2].phdr).phdrs, (yyvsp[-2].phdr).at,
(yyvsp[-2].phdr).flags);
lang_new_phdr ((yyvsp[(1) - (6)].name), (yyvsp[(3) - (6)].etree), (yyvsp[(4) - (6)].phdr).filehdr, (yyvsp[(4) - (6)].phdr).phdrs, (yyvsp[(4) - (6)].phdr).at,
(yyvsp[(4) - (6)].phdr).flags);
}
#line 4138 "ldgram.c" /* yacc.c:1661 */
break;
 
case 328:
#line 1213 "ldgram.y" /* yacc.c:1661 */
case 326:
#line 1208 "ldgram.y"
{
(yyval.etree) = (yyvsp[0].etree);
(yyval.etree) = (yyvsp[(1) - (1)].etree);
 
if ((yyvsp[0].etree)->type.node_class == etree_name
&& (yyvsp[0].etree)->type.node_code == NAME)
if ((yyvsp[(1) - (1)].etree)->type.node_class == etree_name
&& (yyvsp[(1) - (1)].etree)->type.node_code == NAME)
{
const char *s;
unsigned int i;
4154,7 → 4184,7
"PT_PHDR", "PT_TLS"
};
 
s = (yyvsp[0].etree)->name.name;
s = (yyvsp[(1) - (1)].etree)->name.name;
for (i = 0;
i < sizeof phdr_types / sizeof phdr_types[0];
i++)
4179,333 → 4209,286
}
}
}
#line 4183 "ldgram.c" /* yacc.c:1661 */
break;
 
case 329:
#line 1257 "ldgram.y" /* yacc.c:1661 */
case 327:
#line 1252 "ldgram.y"
{
memset (&(yyval.phdr), 0, sizeof (struct phdr_info));
}
#line 4191 "ldgram.c" /* yacc.c:1661 */
break;
 
case 330:
#line 1261 "ldgram.y" /* yacc.c:1661 */
case 328:
#line 1256 "ldgram.y"
{
(yyval.phdr) = (yyvsp[0].phdr);
if (strcmp ((yyvsp[-2].name), "FILEHDR") == 0 && (yyvsp[-1].etree) == NULL)
(yyval.phdr) = (yyvsp[(3) - (3)].phdr);
if (strcmp ((yyvsp[(1) - (3)].name), "FILEHDR") == 0 && (yyvsp[(2) - (3)].etree) == NULL)
(yyval.phdr).filehdr = TRUE;
else if (strcmp ((yyvsp[-2].name), "PHDRS") == 0 && (yyvsp[-1].etree) == NULL)
else if (strcmp ((yyvsp[(1) - (3)].name), "PHDRS") == 0 && (yyvsp[(2) - (3)].etree) == NULL)
(yyval.phdr).phdrs = TRUE;
else if (strcmp ((yyvsp[-2].name), "FLAGS") == 0 && (yyvsp[-1].etree) != NULL)
(yyval.phdr).flags = (yyvsp[-1].etree);
else if (strcmp ((yyvsp[(1) - (3)].name), "FLAGS") == 0 && (yyvsp[(2) - (3)].etree) != NULL)
(yyval.phdr).flags = (yyvsp[(2) - (3)].etree);
else
einfo (_("%X%P:%S: PHDRS syntax error at `%s'\n"),
NULL, (yyvsp[-2].name));
NULL, (yyvsp[(1) - (3)].name));
}
#line 4208 "ldgram.c" /* yacc.c:1661 */
break;
 
case 331:
#line 1274 "ldgram.y" /* yacc.c:1661 */
case 329:
#line 1269 "ldgram.y"
{
(yyval.phdr) = (yyvsp[0].phdr);
(yyval.phdr).at = (yyvsp[-2].etree);
(yyval.phdr) = (yyvsp[(5) - (5)].phdr);
(yyval.phdr).at = (yyvsp[(3) - (5)].etree);
}
#line 4217 "ldgram.c" /* yacc.c:1661 */
break;
 
case 332:
#line 1282 "ldgram.y" /* yacc.c:1661 */
case 330:
#line 1277 "ldgram.y"
{
(yyval.etree) = NULL;
}
#line 4225 "ldgram.c" /* yacc.c:1661 */
break;
 
case 333:
#line 1286 "ldgram.y" /* yacc.c:1661 */
case 331:
#line 1281 "ldgram.y"
{
(yyval.etree) = (yyvsp[-1].etree);
(yyval.etree) = (yyvsp[(2) - (3)].etree);
}
#line 4233 "ldgram.c" /* yacc.c:1661 */
break;
 
case 334:
#line 1292 "ldgram.y" /* yacc.c:1661 */
case 332:
#line 1287 "ldgram.y"
{
ldlex_version_file ();
PUSH_ERROR (_("dynamic list"));
}
#line 4242 "ldgram.c" /* yacc.c:1661 */
break;
 
case 335:
#line 1297 "ldgram.y" /* yacc.c:1661 */
case 333:
#line 1292 "ldgram.y"
{
ldlex_popstate ();
POP_ERROR ();
}
#line 4251 "ldgram.c" /* yacc.c:1661 */
break;
 
case 339:
#line 1314 "ldgram.y" /* yacc.c:1661 */
case 337:
#line 1309 "ldgram.y"
{
lang_append_dynamic_list ((yyvsp[-1].versyms));
lang_append_dynamic_list ((yyvsp[(1) - (2)].versyms));
}
#line 4259 "ldgram.c" /* yacc.c:1661 */
break;
 
case 340:
#line 1322 "ldgram.y" /* yacc.c:1661 */
case 338:
#line 1317 "ldgram.y"
{
ldlex_version_file ();
PUSH_ERROR (_("VERSION script"));
}
#line 4268 "ldgram.c" /* yacc.c:1661 */
break;
 
case 341:
#line 1327 "ldgram.y" /* yacc.c:1661 */
case 339:
#line 1322 "ldgram.y"
{
ldlex_popstate ();
POP_ERROR ();
}
#line 4277 "ldgram.c" /* yacc.c:1661 */
break;
 
case 342:
#line 1336 "ldgram.y" /* yacc.c:1661 */
case 340:
#line 1331 "ldgram.y"
{
ldlex_version_script ();
}
#line 4285 "ldgram.c" /* yacc.c:1661 */
break;
 
case 343:
#line 1340 "ldgram.y" /* yacc.c:1661 */
case 341:
#line 1335 "ldgram.y"
{
ldlex_popstate ();
}
#line 4293 "ldgram.c" /* yacc.c:1661 */
break;
 
case 344:
#line 1347 "ldgram.y"
{
lang_register_vers_node (NULL, (yyvsp[(2) - (4)].versnode), NULL);
}
break;
 
case 345:
#line 1351 "ldgram.y"
{
lang_register_vers_node ((yyvsp[(1) - (5)].name), (yyvsp[(3) - (5)].versnode), NULL);
}
break;
 
case 346:
#line 1352 "ldgram.y" /* yacc.c:1661 */
#line 1355 "ldgram.y"
{
lang_register_vers_node (NULL, (yyvsp[-2].versnode), NULL);
lang_register_vers_node ((yyvsp[(1) - (6)].name), (yyvsp[(3) - (6)].versnode), (yyvsp[(5) - (6)].deflist));
}
#line 4301 "ldgram.c" /* yacc.c:1661 */
break;
 
case 347:
#line 1356 "ldgram.y" /* yacc.c:1661 */
#line 1362 "ldgram.y"
{
lang_register_vers_node ((yyvsp[-4].name), (yyvsp[-2].versnode), NULL);
(yyval.deflist) = lang_add_vers_depend (NULL, (yyvsp[(1) - (1)].name));
}
#line 4309 "ldgram.c" /* yacc.c:1661 */
break;
 
case 348:
#line 1360 "ldgram.y" /* yacc.c:1661 */
#line 1366 "ldgram.y"
{
lang_register_vers_node ((yyvsp[-5].name), (yyvsp[-3].versnode), (yyvsp[-1].deflist));
(yyval.deflist) = lang_add_vers_depend ((yyvsp[(1) - (2)].deflist), (yyvsp[(2) - (2)].name));
}
#line 4317 "ldgram.c" /* yacc.c:1661 */
break;
 
case 349:
#line 1367 "ldgram.y" /* yacc.c:1661 */
#line 1373 "ldgram.y"
{
(yyval.deflist) = lang_add_vers_depend (NULL, (yyvsp[0].name));
(yyval.versnode) = lang_new_vers_node (NULL, NULL);
}
#line 4325 "ldgram.c" /* yacc.c:1661 */
break;
 
case 350:
#line 1371 "ldgram.y" /* yacc.c:1661 */
#line 1377 "ldgram.y"
{
(yyval.deflist) = lang_add_vers_depend ((yyvsp[-1].deflist), (yyvsp[0].name));
(yyval.versnode) = lang_new_vers_node ((yyvsp[(1) - (2)].versyms), NULL);
}
#line 4333 "ldgram.c" /* yacc.c:1661 */
break;
 
case 351:
#line 1378 "ldgram.y" /* yacc.c:1661 */
#line 1381 "ldgram.y"
{
(yyval.versnode) = lang_new_vers_node (NULL, NULL);
(yyval.versnode) = lang_new_vers_node ((yyvsp[(3) - (4)].versyms), NULL);
}
#line 4341 "ldgram.c" /* yacc.c:1661 */
break;
 
case 352:
#line 1382 "ldgram.y" /* yacc.c:1661 */
#line 1385 "ldgram.y"
{
(yyval.versnode) = lang_new_vers_node ((yyvsp[-1].versyms), NULL);
(yyval.versnode) = lang_new_vers_node (NULL, (yyvsp[(3) - (4)].versyms));
}
#line 4349 "ldgram.c" /* yacc.c:1661 */
break;
 
case 353:
#line 1386 "ldgram.y" /* yacc.c:1661 */
#line 1389 "ldgram.y"
{
(yyval.versnode) = lang_new_vers_node ((yyvsp[-1].versyms), NULL);
(yyval.versnode) = lang_new_vers_node ((yyvsp[(3) - (8)].versyms), (yyvsp[(7) - (8)].versyms));
}
#line 4357 "ldgram.c" /* yacc.c:1661 */
break;
 
case 354:
#line 1390 "ldgram.y" /* yacc.c:1661 */
#line 1396 "ldgram.y"
{
(yyval.versnode) = lang_new_vers_node (NULL, (yyvsp[-1].versyms));
(yyval.versyms) = lang_new_vers_pattern (NULL, (yyvsp[(1) - (1)].name), ldgram_vers_current_lang, FALSE);
}
#line 4365 "ldgram.c" /* yacc.c:1661 */
break;
 
case 355:
#line 1394 "ldgram.y" /* yacc.c:1661 */
#line 1400 "ldgram.y"
{
(yyval.versnode) = lang_new_vers_node ((yyvsp[-5].versyms), (yyvsp[-1].versyms));
(yyval.versyms) = lang_new_vers_pattern (NULL, (yyvsp[(1) - (1)].name), ldgram_vers_current_lang, TRUE);
}
#line 4373 "ldgram.c" /* yacc.c:1661 */
break;
 
case 356:
#line 1401 "ldgram.y" /* yacc.c:1661 */
#line 1404 "ldgram.y"
{
(yyval.versyms) = lang_new_vers_pattern (NULL, (yyvsp[0].name), ldgram_vers_current_lang, FALSE);
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), (yyvsp[(3) - (3)].name), ldgram_vers_current_lang, FALSE);
}
#line 4381 "ldgram.c" /* yacc.c:1661 */
break;
 
case 357:
#line 1405 "ldgram.y" /* yacc.c:1661 */
#line 1408 "ldgram.y"
{
(yyval.versyms) = lang_new_vers_pattern (NULL, (yyvsp[0].name), ldgram_vers_current_lang, TRUE);
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), (yyvsp[(3) - (3)].name), ldgram_vers_current_lang, TRUE);
}
#line 4389 "ldgram.c" /* yacc.c:1661 */
break;
 
case 358:
#line 1409 "ldgram.y" /* yacc.c:1661 */
#line 1412 "ldgram.y"
{
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[-2].versyms), (yyvsp[0].name), ldgram_vers_current_lang, FALSE);
(yyval.name) = ldgram_vers_current_lang;
ldgram_vers_current_lang = (yyvsp[(4) - (5)].name);
}
#line 4397 "ldgram.c" /* yacc.c:1661 */
break;
 
case 359:
#line 1413 "ldgram.y" /* yacc.c:1661 */
#line 1417 "ldgram.y"
{
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[-2].versyms), (yyvsp[0].name), ldgram_vers_current_lang, TRUE);
struct bfd_elf_version_expr *pat;
for (pat = (yyvsp[(7) - (9)].versyms); pat->next != NULL; pat = pat->next);
pat->next = (yyvsp[(1) - (9)].versyms);
(yyval.versyms) = (yyvsp[(7) - (9)].versyms);
ldgram_vers_current_lang = (yyvsp[(6) - (9)].name);
}
#line 4405 "ldgram.c" /* yacc.c:1661 */
break;
 
case 360:
#line 1417 "ldgram.y" /* yacc.c:1661 */
#line 1425 "ldgram.y"
{
(yyval.name) = ldgram_vers_current_lang;
ldgram_vers_current_lang = (yyvsp[-1].name);
ldgram_vers_current_lang = (yyvsp[(2) - (3)].name);
}
#line 4414 "ldgram.c" /* yacc.c:1661 */
break;
 
case 361:
#line 1422 "ldgram.y" /* yacc.c:1661 */
#line 1430 "ldgram.y"
{
struct bfd_elf_version_expr *pat;
for (pat = (yyvsp[-2].versyms); pat->next != NULL; pat = pat->next);
pat->next = (yyvsp[-8].versyms);
(yyval.versyms) = (yyvsp[-2].versyms);
ldgram_vers_current_lang = (yyvsp[-3].name);
(yyval.versyms) = (yyvsp[(5) - (7)].versyms);
ldgram_vers_current_lang = (yyvsp[(4) - (7)].name);
}
#line 4426 "ldgram.c" /* yacc.c:1661 */
break;
 
case 362:
#line 1430 "ldgram.y" /* yacc.c:1661 */
#line 1435 "ldgram.y"
{
(yyval.name) = ldgram_vers_current_lang;
ldgram_vers_current_lang = (yyvsp[-1].name);
(yyval.versyms) = lang_new_vers_pattern (NULL, "global", ldgram_vers_current_lang, FALSE);
}
#line 4435 "ldgram.c" /* yacc.c:1661 */
break;
 
case 363:
#line 1435 "ldgram.y" /* yacc.c:1661 */
#line 1439 "ldgram.y"
{
(yyval.versyms) = (yyvsp[-2].versyms);
ldgram_vers_current_lang = (yyvsp[-3].name);
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), "global", ldgram_vers_current_lang, FALSE);
}
#line 4444 "ldgram.c" /* yacc.c:1661 */
break;
 
case 364:
#line 1440 "ldgram.y" /* yacc.c:1661 */
#line 1443 "ldgram.y"
{
(yyval.versyms) = lang_new_vers_pattern (NULL, "global", ldgram_vers_current_lang, FALSE);
(yyval.versyms) = lang_new_vers_pattern (NULL, "local", ldgram_vers_current_lang, FALSE);
}
#line 4452 "ldgram.c" /* yacc.c:1661 */
break;
 
case 365:
#line 1444 "ldgram.y" /* yacc.c:1661 */
#line 1447 "ldgram.y"
{
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[-2].versyms), "global", ldgram_vers_current_lang, FALSE);
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), "local", ldgram_vers_current_lang, FALSE);
}
#line 4460 "ldgram.c" /* yacc.c:1661 */
break;
 
case 366:
#line 1448 "ldgram.y" /* yacc.c:1661 */
#line 1451 "ldgram.y"
{
(yyval.versyms) = lang_new_vers_pattern (NULL, "local", ldgram_vers_current_lang, FALSE);
(yyval.versyms) = lang_new_vers_pattern (NULL, "extern", ldgram_vers_current_lang, FALSE);
}
#line 4468 "ldgram.c" /* yacc.c:1661 */
break;
 
case 367:
#line 1452 "ldgram.y" /* yacc.c:1661 */
#line 1455 "ldgram.y"
{
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[-2].versyms), "local", ldgram_vers_current_lang, FALSE);
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), "extern", ldgram_vers_current_lang, FALSE);
}
#line 4476 "ldgram.c" /* yacc.c:1661 */
break;
 
case 368:
#line 1456 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versyms) = lang_new_vers_pattern (NULL, "extern", ldgram_vers_current_lang, FALSE);
}
#line 4484 "ldgram.c" /* yacc.c:1661 */
break;
 
case 369:
#line 1460 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[-2].versyms), "extern", ldgram_vers_current_lang, FALSE);
}
#line 4492 "ldgram.c" /* yacc.c:1661 */
break;
 
 
#line 4496 "ldgram.c" /* yacc.c:1661 */
/* Line 1267 of yacc.c. */
#line 4490 "ldgram.c"
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
that yytoken be updated with the new translation. We take the
approach of translating immediately before every use of yytoken.
One alternative is translating here after every semantic action,
but that translation would be missed if the semantic action invokes
YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
incorrect destructor might then be invoked immediately. In the
case of YYERROR or YYBACKUP, subsequent parser actions might lead
to an incorrect destructor call or verbose syntax error message
before the lookahead is translated. */
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
 
YYPOPSTACK (yylen);
4514,7 → 4497,8
 
*++yyvsp = yyval;
 
/* Now 'shift' the result of the reduction. Determine what state
 
/* Now `shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule
number reduced by. */
 
4529,14 → 4513,10
goto yynewstate;
 
 
/*--------------------------------------.
| yyerrlab -- here on detecting error. |
`--------------------------------------*/
/*------------------------------------.
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
/* Make sure we have latest lookahead translation. See comments at
user semantic actions for why this is necessary. */
yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
 
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{
4544,36 → 4524,37
#if ! YYERROR_VERBOSE
yyerror (YY_("syntax error"));
#else
# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
yyssp, yytoken)
{
char const *yymsgp = YY_("syntax error");
int yysyntax_error_status;
yysyntax_error_status = YYSYNTAX_ERROR;
if (yysyntax_error_status == 0)
yymsgp = yymsg;
else if (yysyntax_error_status == 1)
YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
{
YYSIZE_T yyalloc = 2 * yysize;
if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
yyalloc = YYSTACK_ALLOC_MAXIMUM;
if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg);
yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
if (!yymsg)
yymsg = (char *) YYSTACK_ALLOC (yyalloc);
if (yymsg)
yymsg_alloc = yyalloc;
else
{
yymsg = yymsgbuf;
yymsg_alloc = sizeof yymsgbuf;
yysyntax_error_status = 2;
}
}
 
if (0 < yysize && yysize <= yymsg_alloc)
{
(void) yysyntax_error (yymsg, yystate, yychar);
yyerror (yymsg);
}
else
{
yysyntax_error_status = YYSYNTAX_ERROR;
yymsgp = yymsg;
yyerror (YY_("syntax error"));
if (yysize != 0)
goto yyexhaustedlab;
}
}
yyerror (yymsgp);
if (yysyntax_error_status == 2)
goto yyexhaustedlab;
}
# undef YYSYNTAX_ERROR
#endif
}
 
4581,7 → 4562,7
 
if (yyerrstatus == 3)
{
/* If just tried and failed to reuse lookahead token after an
/* If just tried and failed to reuse look-ahead token after an
error, discard it. */
 
if (yychar <= YYEOF)
4598,7 → 4579,7
}
}
 
/* Else will try to reuse lookahead token after shifting the error
/* Else will try to reuse look-ahead token after shifting the error
token. */
goto yyerrlab1;
 
4614,7 → 4595,7
if (/*CONSTCOND*/ 0)
goto yyerrorlab;
 
/* Do not reclaim the symbols of the rule whose action triggered
/* Do not reclaim the symbols of the rule which action triggered
this YYERROR. */
YYPOPSTACK (yylen);
yylen = 0;
4632,7 → 4613,7
for (;;)
{
yyn = yypact[yystate];
if (!yypact_value_is_default (yyn))
if (yyn != YYPACT_NINF)
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
4655,9 → 4636,10
YY_STACK_PRINT (yyss, yyssp);
}
 
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
if (yyn == YYFINAL)
YYACCEPT;
 
*++yyvsp = yylval;
YY_IGNORE_MAYBE_UNINITIALIZED_END
 
 
/* Shift the error token. */
4681,7 → 4663,7
yyresult = 1;
goto yyreturn;
 
#if !defined yyoverflow || YYERROR_VERBOSE
#ifndef yyoverflow
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
4692,15 → 4674,10
#endif
 
yyreturn:
if (yychar != YYEMPTY)
{
/* Make sure we have latest lookahead translation. See comments at
user semantic actions for why this is necessary. */
yytoken = YYTRANSLATE (yychar);
if (yychar != YYEOF && yychar != YYEMPTY)
yydestruct ("Cleanup: discarding lookahead",
yytoken, &yylval);
}
/* Do not reclaim the symbols of the rule whose action triggered
/* Do not reclaim the symbols of the rule which action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
YY_STACK_PRINT (yyss, yyssp);
4718,10 → 4695,13
if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg);
#endif
return yyresult;
/* Make sure YYID is used. */
return YYID (yyresult);
}
#line 1470 "ldgram.y" /* yacc.c:1906 */
 
 
#line 1465 "ldgram.y"
 
void
yyerror(arg)
const char *arg;
4734,3 → 4714,4
else
einfo ("%P%F:%S: %s\n", NULL, arg);
}
 
/contrib/toolchain/binutils/ld/ldgram.h
1,13 → 1,14
/* A Bison parser, made by GNU Bison 3.0. */
/* A Bison parser, made by GNU Bison 2.3. */
 
/* Bison interface for Yacc-like parsers in C
/* Skeleton interface for Bison's Yacc-like parsers in C
 
Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
 
This program is free software: you can redistribute it and/or modify
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
the Free Software Foundation; either version 2, or (at your option)
any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
15,7 → 16,9
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
 
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
30,40 → 33,31
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
 
#ifndef YY_YY_LDGRAM_H_INCLUDED
# define YY_YY_LDGRAM_H_INCLUDED
/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#if YYDEBUG
extern int yydebug;
#endif
 
/* Token type. */
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
enum yytokentype
{
/* Put the tokens into the symbol table, so that GDB and other debuggers
know about them. */
enum yytokentype {
INT = 258,
NAME = 259,
LNAME = 260,
PLUSEQ = 261,
MINUSEQ = 262,
MULTEQ = 263,
DIVEQ = 264,
LSHIFTEQ = 265,
RSHIFTEQ = 266,
ANDEQ = 267,
OREQ = 268,
OREQ = 261,
ANDEQ = 262,
RSHIFTEQ = 263,
LSHIFTEQ = 264,
DIVEQ = 265,
MULTEQ = 266,
MINUSEQ = 267,
PLUSEQ = 268,
OROR = 269,
ANDAND = 270,
EQ = 271,
NE = 272,
LE = 273,
GE = 274,
LSHIFT = 275,
RSHIFT = 276,
NE = 271,
EQ = 272,
GE = 273,
LE = 274,
RSHIFT = 275,
LSHIFT = 276,
UNARY = 277,
END = 278,
ALIGN_K = 279,
179,22 → 173,22
#define INT 258
#define NAME 259
#define LNAME 260
#define PLUSEQ 261
#define MINUSEQ 262
#define MULTEQ 263
#define DIVEQ 264
#define LSHIFTEQ 265
#define RSHIFTEQ 266
#define ANDEQ 267
#define OREQ 268
#define OREQ 261
#define ANDEQ 262
#define RSHIFTEQ 263
#define LSHIFTEQ 264
#define DIVEQ 265
#define MULTEQ 266
#define MINUSEQ 267
#define PLUSEQ 268
#define OROR 269
#define ANDAND 270
#define EQ 271
#define NE 272
#define LE 273
#define GE 274
#define LSHIFT 275
#define RSHIFT 276
#define NE 271
#define EQ 272
#define GE 273
#define LE 274
#define RSHIFT 275
#define LSHIFT 276
#define UNARY 277
#define END 278
#define ALIGN_K 279
305,13 → 299,13
#define CONSTANT 384
#define INPUT_DYNAMIC_LIST 385
 
/* Value type. */
 
 
 
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE YYSTYPE;
union YYSTYPE
typedef union YYSTYPE
#line 60 "ldgram.y"
{
#line 60 "ldgram.y" /* yacc.c:1915 */
 
bfd_vma integer;
struct big_int
{
340,16 → 334,14
struct bfd_elf_version_deps *deflist;
struct bfd_elf_version_expr *versyms;
struct bfd_elf_version_tree *versnode;
 
#line 345 "ldgram.h" /* yacc.c:1915 */
};
}
/* Line 1529 of yacc.c. */
#line 340 "ldgram.h"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
#endif
 
 
extern YYSTYPE yylval;
 
int yyparse (void);
 
#endif /* !YY_YY_LDGRAM_H_INCLUDED */
/contrib/toolchain/binutils/ld/ldlang.c
1,5 → 1,5
/* Linker command language support.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991-2013 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
40,11 → 40,13
#include "demangle.h"
#include "hashtab.h"
#include "libbfd.h"
#include "elf-bfd.h"
#ifdef ENABLE_PLUGINS
#include "plugin.h"
#endif /* ENABLE_PLUGINS */
 
#include <limits.h>
 
 
#ifndef offsetof
#define offsetof(TYPE, MEMBER) ((size_t) & (((TYPE*) 0)->MEMBER))
#endif
57,7 → 59,7
#define obstack_chunk_free free
static const char *entry_symbol_default = "start";
static bfd_boolean placed_commons = FALSE;
static bfd_boolean map_head_is_link_order = FALSE;
static bfd_boolean stripped_excluded_sections = FALSE;
static lang_output_section_statement_type *default_common_section;
static bfd_boolean map_option_f;
static bfd_vma print_dot;
64,14 → 66,17
static lang_input_statement_type *first_file;
static const char *current_target;
static lang_statement_list_type statement_list;
static struct bfd_hash_table lang_definedness_table;
static lang_statement_list_type *stat_save[10];
static lang_statement_list_type **stat_save_ptr = &stat_save[0];
static struct unique_sections *unique_section_list;
static struct asneeded_minfo *asneeded_list_head;
 
/* Forward declarations. */
static void exp_init_os (etree_type *);
static void init_map_userdata (bfd *, asection *, void *);
static lang_input_statement_type *lookup_name (const char *);
static struct bfd_hash_entry *lang_definedness_newfunc
(struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
static void insert_undefined (const char *);
static bfd_boolean sort_def_symbol (struct bfd_link_hash_entry *, void *);
static void print_statement (lang_statement_union_type *,
85,7 → 90,6
static void lang_do_version_exports_section (void);
static void lang_finalize_version_expr_head
(struct bfd_elf_version_expr_head *);
static void lang_do_memory_regions (void);
 
/* Exported variables. */
const char *output_target;
105,12 → 109,13
bfd_boolean delete_output_file_on_failure = FALSE;
struct lang_phdr *lang_phdr_list;
struct lang_nocrossrefs *nocrossref_list;
struct asneeded_minfo **asneeded_list_tail;
 
/* Functions that traverse the linker script and might evaluate
DEFINED() need to increment this at the start of the traversal. */
DEFINED() need to increment this. */
int lang_statement_iteration = 0;
 
etree_type *base; /* Relocation base - or null */
 
/* Return TRUE if the PATTERN argument is a wildcard pattern.
Although backslashes are treated specially if a pattern contains
wildcards, we do not consider the mere presence of a backslash to
201,7 → 206,7
struct unique_sections *unam;
const char *secnam;
 
if (bfd_link_relocatable (&link_info)
if (link_info.relocatable
&& sec->owner != NULL
&& bfd_is_group_section (sec->owner, sec))
return !(os != NULL
1060,6 → 1065,13
p->flags.whole_archive = input_flags.whole_archive;
p->flags.sysrooted = input_flags.sysrooted;
 
if (file_type == lang_input_file_is_l_enum
&& name[0] == ':' && name[1] != '\0')
{
file_type = lang_input_file_is_search_file_enum;
name = name + 1;
}
 
switch (file_type)
{
case lang_input_file_is_symbols_only_enum:
1073,12 → 1085,6
p->local_sym_name = name;
break;
case lang_input_file_is_l_enum:
if (name[0] == ':' && name[1] != '\0')
{
p->filename = name + 1;
p->flags.full_name_provided = TRUE;
}
else
p->filename = name;
p->local_sym_name = concat ("-l", name, (const char *) NULL);
p->flags.maybe_archive = TRUE;
1116,26 → 1122,6
lang_input_file_enum_type file_type,
const char *target)
{
if (name != NULL && *name == '=')
{
lang_input_statement_type *ret;
char *sysrooted_name
= concat (ld_sysroot, name + 1, (const char *) NULL);
 
/* We've now forcibly prepended the sysroot, making the input
file independent of the context. Therefore, temporarily
force a non-sysrooted context for this statement, so it won't
get the sysroot prepended again when opened. (N.B. if it's a
script, any child nodes with input files starting with "/"
will be handled as "sysrooted" as they'll be found to be
within the sysroot subdirectory.) */
unsigned int outer_sysrooted = input_flags.sysrooted;
input_flags.sysrooted = 0;
ret = new_afile (sysrooted_name, file_type, target, TRUE);
input_flags.sysrooted = outer_sysrooted;
return ret;
}
 
return new_afile (name, file_type, target, TRUE);
}
 
1239,13 → 1225,24
 
abs_output_section->bfd_section = bfd_abs_section_ptr;
 
asneeded_list_head = NULL;
asneeded_list_tail = &asneeded_list_head;
/* The value "3" is ad-hoc, somewhat related to the expected number of
DEFINED expressions in a linker script. For most default linker
scripts, there are none. Why a hash table then? Well, it's somewhat
simpler to re-use working machinery than using a linked list in terms
of code-complexity here in ld, besides the initialization which just
looks like other code here. */
if (!bfd_hash_table_init_n (&lang_definedness_table,
lang_definedness_newfunc,
sizeof (struct lang_definedness_hash_entry),
3))
einfo (_("%P%F: can not create hash table: %E\n"));
}
 
void
lang_finish (void)
{
bfd_link_hash_table_free (link_info.output_bfd, link_info.hash);
bfd_hash_table_free (&lang_definedness_table);
output_section_statement_table_free ();
}
 
1306,9 → 1303,7
new_region->name_list.name = xstrdup (name);
new_region->name_list.next = NULL;
new_region->next = NULL;
new_region->origin_exp = NULL;
new_region->origin = 0;
new_region->length_exp = NULL;
new_region->length = ~(bfd_size_type) 0;
new_region->current = 0;
new_region->last_os = NULL;
1385,14 → 1380,6
return lang_memory_region_lookup (DEFAULT_MEMORY_REGION, FALSE);
}
 
/* Get the output section statement directly from the userdata. */
 
lang_output_section_statement_type *
lang_output_section_get (const asection *output_section)
{
return get_userdata (output_section);
}
 
/* Find or create an output_section_statement with the given NAME.
If CONSTRAINT is non-zero match one with that constraint, otherwise
match any non-negative constraint. If CREATE, always make a
1499,12 → 1486,11
 
lang_output_section_statement_type *
lang_output_section_find_by_flags (const asection *sec,
flagword sec_flags,
lang_output_section_statement_type **exact,
lang_match_sec_type_func match_type)
{
lang_output_section_statement_type *first, *look, *found;
flagword look_flags, differ;
flagword flags;
 
/* We know the first statement on this list is *ABS*. May as well
skip it. */
1515,17 → 1501,17
found = NULL;
for (look = first; look; look = look->next)
{
look_flags = look->flags;
flags = look->flags;
if (look->bfd_section != NULL)
{
look_flags = look->bfd_section->flags;
flags = look->bfd_section->flags;
if (match_type && !match_type (link_info.output_bfd,
look->bfd_section,
sec->owner, sec))
continue;
}
differ = look_flags ^ sec_flags;
if (!(differ & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_READONLY
flags ^= sec->flags;
if (!(flags & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_READONLY
| SEC_CODE | SEC_SMALL_DATA | SEC_THREAD_LOCAL)))
found = look;
}
1536,144 → 1522,115
return found;
}
 
if ((sec_flags & SEC_CODE) != 0
&& (sec_flags & SEC_ALLOC) != 0)
if ((sec->flags & SEC_CODE) != 0
&& (sec->flags & SEC_ALLOC) != 0)
{
/* Try for a rw code section. */
for (look = first; look; look = look->next)
{
look_flags = look->flags;
flags = look->flags;
if (look->bfd_section != NULL)
{
look_flags = look->bfd_section->flags;
flags = look->bfd_section->flags;
if (match_type && !match_type (link_info.output_bfd,
look->bfd_section,
sec->owner, sec))
continue;
}
differ = look_flags ^ sec_flags;
if (!(differ & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
flags ^= sec->flags;
if (!(flags & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
| SEC_CODE | SEC_SMALL_DATA | SEC_THREAD_LOCAL)))
found = look;
}
}
else if ((sec_flags & SEC_READONLY) != 0
&& (sec_flags & SEC_ALLOC) != 0)
else if ((sec->flags & (SEC_READONLY | SEC_THREAD_LOCAL)) != 0
&& (sec->flags & SEC_ALLOC) != 0)
{
/* .rodata can go after .text, .sdata2 after .rodata. */
for (look = first; look; look = look->next)
{
look_flags = look->flags;
flags = look->flags;
if (look->bfd_section != NULL)
{
look_flags = look->bfd_section->flags;
flags = look->bfd_section->flags;
if (match_type && !match_type (link_info.output_bfd,
look->bfd_section,
sec->owner, sec))
continue;
}
differ = look_flags ^ sec_flags;
if (!(differ & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
flags ^= sec->flags;
if (!(flags & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
| SEC_READONLY | SEC_SMALL_DATA))
|| (!(differ & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
|| (!(flags & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
| SEC_READONLY))
&& !(look_flags & SEC_SMALL_DATA)))
&& !(look->flags & SEC_SMALL_DATA))
|| (!(flags & (SEC_THREAD_LOCAL | SEC_ALLOC))
&& (look->flags & SEC_THREAD_LOCAL)
&& (!(flags & SEC_LOAD)
|| (look->flags & SEC_LOAD))))
found = look;
}
}
else if ((sec_flags & SEC_THREAD_LOCAL) != 0
&& (sec_flags & SEC_ALLOC) != 0)
else if ((sec->flags & SEC_SMALL_DATA) != 0
&& (sec->flags & SEC_ALLOC) != 0)
{
/* .tdata can go after .data, .tbss after .tdata. Treat .tbss
as if it were a loaded section, and don't use match_type. */
bfd_boolean seen_thread_local = FALSE;
 
match_type = NULL;
for (look = first; look; look = look->next)
{
look_flags = look->flags;
if (look->bfd_section != NULL)
look_flags = look->bfd_section->flags;
 
differ = look_flags ^ (sec_flags | SEC_LOAD | SEC_HAS_CONTENTS);
if (!(differ & (SEC_THREAD_LOCAL | SEC_ALLOC)))
{
/* .tdata and .tbss must be adjacent and in that order. */
if (!(look_flags & SEC_LOAD)
&& (sec_flags & SEC_LOAD))
/* ..so if we're at a .tbss section and we're placing
a .tdata section stop looking and return the
previous section. */
break;
found = look;
seen_thread_local = TRUE;
}
else if (seen_thread_local)
break;
else if (!(differ & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD)))
found = look;
}
}
else if ((sec_flags & SEC_SMALL_DATA) != 0
&& (sec_flags & SEC_ALLOC) != 0)
{
/* .sdata goes after .data, .sbss after .sdata. */
for (look = first; look; look = look->next)
{
look_flags = look->flags;
flags = look->flags;
if (look->bfd_section != NULL)
{
look_flags = look->bfd_section->flags;
flags = look->bfd_section->flags;
if (match_type && !match_type (link_info.output_bfd,
look->bfd_section,
sec->owner, sec))
continue;
}
differ = look_flags ^ sec_flags;
if (!(differ & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
flags ^= sec->flags;
if (!(flags & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
| SEC_THREAD_LOCAL))
|| ((look_flags & SEC_SMALL_DATA)
&& !(sec_flags & SEC_HAS_CONTENTS)))
|| ((look->flags & SEC_SMALL_DATA)
&& !(sec->flags & SEC_HAS_CONTENTS)))
found = look;
}
}
else if ((sec_flags & SEC_HAS_CONTENTS) != 0
&& (sec_flags & SEC_ALLOC) != 0)
else if ((sec->flags & SEC_HAS_CONTENTS) != 0
&& (sec->flags & SEC_ALLOC) != 0)
{
/* .data goes after .rodata. */
for (look = first; look; look = look->next)
{
look_flags = look->flags;
flags = look->flags;
if (look->bfd_section != NULL)
{
look_flags = look->bfd_section->flags;
flags = look->bfd_section->flags;
if (match_type && !match_type (link_info.output_bfd,
look->bfd_section,
sec->owner, sec))
continue;
}
differ = look_flags ^ sec_flags;
if (!(differ & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
flags ^= sec->flags;
if (!(flags & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
| SEC_SMALL_DATA | SEC_THREAD_LOCAL)))
found = look;
}
}
else if ((sec_flags & SEC_ALLOC) != 0)
else if ((sec->flags & SEC_ALLOC) != 0)
{
/* .bss goes after any other alloc section. */
for (look = first; look; look = look->next)
{
look_flags = look->flags;
flags = look->flags;
if (look->bfd_section != NULL)
{
look_flags = look->bfd_section->flags;
flags = look->bfd_section->flags;
if (match_type && !match_type (link_info.output_bfd,
look->bfd_section,
sec->owner, sec))
continue;
}
differ = look_flags ^ sec_flags;
if (!(differ & SEC_ALLOC))
flags ^= sec->flags;
if (!(flags & SEC_ALLOC))
found = look;
}
}
1682,11 → 1639,11
/* non-alloc go last. */
for (look = first; look; look = look->next)
{
look_flags = look->flags;
flags = look->flags;
if (look->bfd_section != NULL)
look_flags = look->bfd_section->flags;
differ = look_flags ^ sec_flags;
if (!(differ & SEC_DEBUGGING))
flags = look->bfd_section->flags;
flags ^= sec->flags;
if (!(flags & SEC_DEBUGGING))
found = look;
}
return found;
1695,7 → 1652,7
if (found || !match_type)
return found;
 
return lang_output_section_find_by_flags (sec, sec_flags, NULL, NULL);
return lang_output_section_find_by_flags (sec, NULL, NULL);
}
 
/* Find the last output section before given output statement.
1805,7 → 1762,6
{
lang_statement_list_type add;
const char *ps;
lang_assignment_statement_type *start_assign;
lang_output_section_statement_type *os;
lang_output_section_statement_type **os_tail;
 
1818,8 → 1774,7
push_stat_ptr (&add);
}
 
if (bfd_link_relocatable (&link_info)
|| (s->flags & (SEC_LOAD | SEC_ALLOC)) == 0)
if (link_info.relocatable || (s->flags & (SEC_LOAD | SEC_ALLOC)) == 0)
address = exp_intop (0);
 
os_tail = ((lang_output_section_statement_type **)
1828,7 → 1783,6
NULL, NULL, NULL, constraint, 0);
 
ps = NULL;
start_assign = NULL;
if (config.build_constructors && *os_tail == os)
{
/* If the name of the section is representable in C, then create
1843,8 → 1797,7
symname = (char *) xmalloc (ps - secname + sizeof "__start_" + 1);
symname[0] = bfd_get_symbol_leading_char (link_info.output_bfd);
sprintf (symname + (symname[0] != 0), "__start_%s", secname);
start_assign
= lang_add_assignment (exp_provide (symname,
lang_add_assignment (exp_provide (symname,
exp_nameop (NAME, "."),
FALSE));
}
1869,25 → 1822,16
lang_leave_output_section_statement (NULL, DEFAULT_MEMORY_REGION, NULL,
NULL);
 
if (start_assign != NULL)
if (ps != NULL && *ps == '\0')
{
char *symname;
lang_assignment_statement_type *stop_assign;
bfd_vma dot;
 
symname = (char *) xmalloc (ps - secname + sizeof "__stop_" + 1);
symname[0] = bfd_get_symbol_leading_char (link_info.output_bfd);
sprintf (symname + (symname[0] != 0), "__stop_%s", secname);
stop_assign
= lang_add_assignment (exp_provide (symname,
lang_add_assignment (exp_provide (symname,
exp_nameop (NAME, "."),
FALSE));
/* Evaluate the expression to define the symbol if referenced,
before sizing dynamic sections. */
dot = os->bfd_section->vma;
exp_fold_tree (start_assign->exp, os->bfd_section, &dot);
dot += s->size;
exp_fold_tree (stop_assign->exp, os->bfd_section, &dot);
}
 
/* Restore the global list pointer. */
2010,43 → 1954,6
}
 
static void
lang_print_asneeded (void)
{
struct asneeded_minfo *m;
char buf[100];
 
if (asneeded_list_head == NULL)
return;
 
sprintf (buf, _("\nAs-needed library included "
"to satisfy reference by file (symbol)\n\n"));
minfo ("%s", buf);
 
for (m = asneeded_list_head; m != NULL; m = m->next)
{
size_t len;
 
minfo ("%s", m->soname);
len = strlen (m->soname);
 
if (len >= 29)
{
print_nl ();
len = 0;
}
while (len < 30)
{
print_space ();
++len;
}
 
if (m->ref != NULL)
minfo ("%B ", m->ref);
minfo ("(%T)\n", m->name);
}
}
 
static void
lang_map_flags (flagword flag)
{
if (flag & SEC_ALLOC)
2070,6 → 1977,7
{
lang_memory_region_type *m;
bfd_boolean dis_header_printed = FALSE;
bfd *p;
 
LANG_FOR_EACH_INPUT_STATEMENT (file)
{
2141,12 → 2049,27
if (! link_info.reduce_memory_overheads)
{
obstack_begin (&map_obstack, 1000);
for (p = link_info.input_bfds; p != (bfd *) NULL; p = p->link_next)
bfd_map_over_sections (p, init_map_userdata, 0);
bfd_link_hash_traverse (link_info.hash, sort_def_symbol, 0);
}
lang_statement_iteration++;
print_statements ();
}
 
ldemul_extra_map_file_text (link_info.output_bfd, &link_info, config.map_file);
static void
init_map_userdata (bfd *abfd ATTRIBUTE_UNUSED,
asection *sec,
void *data ATTRIBUTE_UNUSED)
{
fat_section_userdata_type *new_data
= ((fat_section_userdata_type *) (stat_alloc
(sizeof (fat_section_userdata_type))));
 
ASSERT (get_userdata (sec) == NULL);
get_userdata (sec) = new_data;
new_data->map_symbol_def_tail = &new_data->map_symbol_def_head;
new_data->map_symbol_def_count = 0;
}
 
static bfd_boolean
2153,22 → 2076,21
sort_def_symbol (struct bfd_link_hash_entry *hash_entry,
void *info ATTRIBUTE_UNUSED)
{
if ((hash_entry->type == bfd_link_hash_defined
if (hash_entry->type == bfd_link_hash_defined
|| hash_entry->type == bfd_link_hash_defweak)
&& hash_entry->u.def.section->owner != link_info.output_bfd
&& hash_entry->u.def.section->owner != NULL)
{
input_section_userdata_type *ud;
struct fat_user_section_struct *ud;
struct map_symbol_def *def;
 
ud = ((input_section_userdata_type *)
get_userdata (hash_entry->u.def.section));
ud = (struct fat_user_section_struct *)
get_userdata (hash_entry->u.def.section);
if (!ud)
{
ud = (input_section_userdata_type *) stat_alloc (sizeof (*ud));
get_userdata (hash_entry->u.def.section) = ud;
ud->map_symbol_def_tail = &ud->map_symbol_def_head;
ud->map_symbol_def_count = 0;
/* ??? What do we have to do to initialize this beforehand? */
/* The first time we get here is bfd_abs_section... */
init_map_userdata (0, hash_entry->u.def.section, 0);
ud = (struct fat_user_section_struct *)
get_userdata (hash_entry->u.def.section);
}
else if (!ud->map_symbol_def_tail)
ud->map_symbol_def_tail = &ud->map_symbol_def_head;
2203,9 → 2125,13
s->bfd_section->output_section = s->bfd_section;
s->bfd_section->output_offset = 0;
 
/* Set the userdata of the output section to the output section
statement to avoid lookup. */
get_userdata (s->bfd_section) = s;
if (!link_info.reduce_memory_overheads)
{
fat_section_userdata_type *new_userdata = (fat_section_userdata_type *)
stat_alloc (sizeof (fat_section_userdata_type));
memset (new_userdata, 0, sizeof (fat_section_userdata_type));
get_userdata (s->bfd_section) = new_userdata;
}
 
/* If there is a base address, make sure that any sections it might
mention are initialized. */
2360,7 → 2286,7
format targets, .text$foo sections go into .text and it's odd
to see .text with SEC_LINK_ONCE set. */
 
if (!bfd_link_relocatable (&link_info))
if (!link_info.relocatable)
flags &= ~(SEC_LINK_ONCE | SEC_LINK_DUPLICATES | SEC_RELOC);
 
switch (output->sectype)
2435,7 → 2361,8
 
section->output_section = output->bfd_section;
 
if (!map_head_is_link_order)
if (!link_info.relocatable
&& !stripped_excluded_sections)
{
asection *s = output->bfd_section->map_tail.s;
output->bfd_section->map_tail.s = section;
2814,7 → 2741,9
break;
 
case bfd_object:
#ifdef ENABLE_PLUGINS
if (!entry->flags.reload)
#endif
ldlang_add_file (entry);
if (trace_files || verbose)
info_msg ("%I\n", entry);
3185,8 → 3114,7
ASSERT (link_info.output_bfd == NULL);
open_output (statement->output_statement.name);
ldemul_set_output_arch ();
if (config.magic_demand_paged
&& !bfd_link_relocatable (&link_info))
if (config.magic_demand_paged && !link_info.relocatable)
link_info.output_bfd->flags |= D_PAGED;
else
link_info.output_bfd->flags &= ~D_PAGED;
3291,7 → 3219,6
{
lang_statement_union_type **os_tail;
lang_statement_list_type add;
bfd *abfd;
 
s->input_statement.target = current_target;
 
3298,26 → 3225,32
/* If we are being called from within a group, and this
is an archive which has already been searched, then
force it to be researched unless the whole archive
has been loaded already. Do the same for a rescan.
Likewise reload --as-needed shared libs. */
has been loaded already. Do the same for a rescan. */
if (mode != OPEN_BFD_NORMAL
#ifdef ENABLE_PLUGINS
&& ((mode & OPEN_BFD_RESCAN) == 0
|| plugin_insert == NULL)
#endif
&& !s->input_statement.flags.whole_archive
&& s->input_statement.flags.loaded
&& (abfd = s->input_statement.the_bfd) != NULL
&& ((bfd_get_format (abfd) == bfd_archive
&& !s->input_statement.flags.whole_archive)
|| (bfd_get_format (abfd) == bfd_object
&& ((abfd->flags) & DYNAMIC) != 0
&& s->input_statement.the_bfd != NULL
&& bfd_check_format (s->input_statement.the_bfd,
bfd_archive))
s->input_statement.flags.loaded = FALSE;
#ifdef ENABLE_PLUGINS
/* When rescanning, reload --as-needed shared libs. */
else if ((mode & OPEN_BFD_RESCAN) != 0
&& plugin_insert == NULL
&& s->input_statement.flags.loaded
&& s->input_statement.flags.add_DT_NEEDED_for_regular
&& bfd_get_flavour (abfd) == bfd_target_elf_flavour
&& (elf_dyn_lib_class (abfd) & DYN_AS_NEEDED) != 0)))
&& s->input_statement.the_bfd != NULL
&& ((s->input_statement.the_bfd->flags) & DYNAMIC) != 0
&& plugin_should_reload (s->input_statement.the_bfd))
{
s->input_statement.flags.loaded = FALSE;
s->input_statement.flags.reload = TRUE;
}
#endif
 
os_tail = lang_output_section_statement.tail;
lang_list_init (&add);
3370,6 → 3303,85
einfo ("%F");
}
 
/* Add a symbol to a hash of symbols used in DEFINED (NAME) expressions. */
 
void
lang_track_definedness (const char *name)
{
if (bfd_hash_lookup (&lang_definedness_table, name, TRUE, FALSE) == NULL)
einfo (_("%P%F: bfd_hash_lookup failed creating symbol %s\n"), name);
}
 
/* New-function for the definedness hash table. */
 
static struct bfd_hash_entry *
lang_definedness_newfunc (struct bfd_hash_entry *entry,
struct bfd_hash_table *table ATTRIBUTE_UNUSED,
const char *name ATTRIBUTE_UNUSED)
{
struct lang_definedness_hash_entry *ret
= (struct lang_definedness_hash_entry *) entry;
 
if (ret == NULL)
ret = (struct lang_definedness_hash_entry *)
bfd_hash_allocate (table, sizeof (struct lang_definedness_hash_entry));
 
if (ret == NULL)
einfo (_("%P%F: bfd_hash_allocate failed creating symbol %s\n"), name);
 
ret->iteration = -1;
return &ret->root;
}
 
/* Return the iteration when the definition of NAME was last updated. A
value of -1 means that the symbol is not defined in the linker script
or the command line, but may be defined in the linker symbol table. */
 
int
lang_symbol_definition_iteration (const char *name)
{
struct lang_definedness_hash_entry *defentry
= (struct lang_definedness_hash_entry *)
bfd_hash_lookup (&lang_definedness_table, name, FALSE, FALSE);
 
/* We've already created this one on the presence of DEFINED in the
script, so it can't be NULL unless something is borked elsewhere in
the code. */
if (defentry == NULL)
FAIL ();
 
return defentry->iteration;
}
 
/* Update the definedness state of NAME. */
 
void
lang_update_definedness (const char *name, struct bfd_link_hash_entry *h)
{
struct lang_definedness_hash_entry *defentry
= (struct lang_definedness_hash_entry *)
bfd_hash_lookup (&lang_definedness_table, name, FALSE, FALSE);
 
/* We don't keep track of symbols not tested with DEFINED. */
if (defentry == NULL)
return;
 
/* If the symbol was already defined, and not from an earlier statement
iteration, don't update the definedness iteration, because that'd
make the symbol seem defined in the linker script at this point, and
it wasn't; it was defined in some object. If we do anyway, DEFINED
would start to yield false before this point and the construct "sym =
DEFINED (sym) ? sym : X;" would change sym to X despite being defined
in an object. */
if (h->type != bfd_link_hash_undefined
&& h->type != bfd_link_hash_common
&& h->type != bfd_link_hash_new
&& defentry->iteration == -1)
return;
 
defentry->iteration = lang_statement_iteration;
}
 
/* Add the supplied name to the symbol table as an undefined reference.
This is a two step process as the symbol table doesn't even exist at
the time the ld command line is processed. First we put the name
3427,55 → 3439,6
insert_undefined (ptr->name);
}
 
/* Structure used to build the list of symbols that the user has required
be defined. */
 
struct require_defined_symbol
{
const char *name;
struct require_defined_symbol *next;
};
 
/* The list of symbols that the user has required be defined. */
 
static struct require_defined_symbol *require_defined_symbol_list;
 
/* Add a new symbol NAME to the list of symbols that are required to be
defined. */
 
void
ldlang_add_require_defined (const char * const name)
{
struct require_defined_symbol *ptr;
 
ldlang_add_undef (name, TRUE);
ptr = (struct require_defined_symbol *) stat_alloc (sizeof (*ptr));
ptr->next = require_defined_symbol_list;
ptr->name = strdup (name);
require_defined_symbol_list = ptr;
}
 
/* Check that all symbols the user required to be defined, are defined,
raise an error if we find a symbol that is not defined. */
 
static void
ldlang_check_require_defined_symbols (void)
{
struct require_defined_symbol *ptr;
 
for (ptr = require_defined_symbol_list; ptr != NULL; ptr = ptr->next)
{
struct bfd_link_hash_entry *h;
 
h = bfd_link_hash_lookup (link_info.hash, ptr->name,
FALSE, FALSE, TRUE);
if (h == NULL
|| (h->type != bfd_link_hash_defined
&& h->type != bfd_link_hash_defweak))
einfo(_("%P%X: required symbol `%s' not defined\n"), ptr->name);
}
}
 
/* Check for all readonly or some readwrite sections. */
 
static void
3926,6 → 3889,10
}
}
 
/* TODO: Don't just junk map_head.s, turn them into link_orders. */
output_section->map_head.link_order = NULL;
output_section->map_tail.link_order = NULL;
 
if (exclude)
{
/* We don't set bfd_section to NULL since bfd_section of the
3937,42 → 3904,10
link_info.output_bfd->section_count--;
}
}
}
 
/* Called from ldwrite to clear out asection.map_head and
asection.map_tail for use as link_orders in ldwrite.
FIXME: Except for sh64elf.em which starts creating link_orders in
its after_allocation routine so needs to call it early. */
 
void
lang_clear_os_map (void)
{
lang_output_section_statement_type *os;
 
if (map_head_is_link_order)
return;
 
for (os = &lang_output_section_statement.head->output_section_statement;
os != NULL;
os = os->next)
{
asection *output_section;
 
if (os->constraint < 0)
continue;
 
output_section = os->bfd_section;
if (output_section == NULL)
continue;
 
/* TODO: Don't just junk map_head.s, turn them into link_orders. */
output_section->map_head.link_order = NULL;
output_section->map_tail.link_order = NULL;
}
 
/* Stop future calls to lang_add_section from messing with map_head
and map_tail link_order fields. */
map_head_is_link_order = TRUE;
stripped_excluded_sections = TRUE;
}
 
static void
4041,7 → 3976,6
const char *dst = assignment->exp->assign.dst;
 
is_dot = (dst[0] == '.' && dst[1] == 0);
if (!is_dot)
expld.assign_name = dst;
tree = assignment->exp->assign.src;
}
4049,12 → 3983,7
osec = output_section->bfd_section;
if (osec == NULL)
osec = bfd_abs_section_ptr;
 
if (assignment->exp->type.node_class != etree_provide)
exp_fold_tree (tree, osec, &print_dot);
else
expld.result.valid_p = FALSE;
 
if (expld.result.valid_p)
{
bfd_vma value;
4092,9 → 4021,6
}
else
{
if (assignment->exp->type.node_class == etree_provide)
minfo ("[!provide]");
else
minfo ("*undef* ");
#ifdef BFD64
minfo (" ");
4160,8 → 4086,8
static void
print_all_symbols (asection *sec)
{
input_section_userdata_type *ud
= (input_section_userdata_type *) get_userdata (sec);
struct fat_user_section_struct *ud =
(struct fat_user_section_struct *) get_userdata (sec);
struct map_symbol_def *def;
struct bfd_link_hash_entry **entries;
unsigned int i;
4637,15 → 4563,12
{
lang_input_section_type *is = &((*this_ptr)->input_section);
asection *i = is->section;
asection *o = output_section_statement->bfd_section;
 
if (i->sec_info_type == SEC_INFO_TYPE_JUST_SYMS)
i->output_offset = i->vma - o->vma;
else if ((i->flags & SEC_EXCLUDE) != 0)
i->output_offset = dot - o->vma;
else
if (i->sec_info_type != SEC_INFO_TYPE_JUST_SYMS
&& (i->flags & SEC_EXCLUDE) == 0)
{
bfd_size_type alignment_needed;
asection *o;
 
/* Align this section first to the input sections requirement,
then to the output section's requirement. If this alignment
4655,6 → 4578,7
if (output_section_statement->subsection_alignment != -1)
i->alignment_power = output_section_statement->subsection_alignment;
 
o = output_section_statement->bfd_section;
if (o->alignment_power < i->alignment_power)
o->alignment_power = i->alignment_power;
 
4667,6 → 4591,7
}
 
/* Remember where in the output section this input section goes. */
 
i->output_offset = dot - o->vma;
 
/* Mark how big the output section must be to contain this now. */
4673,6 → 4598,10
dot += TO_ADDR (i->size);
o->size = TO_SIZE (dot - o->vma);
}
else
{
i->output_offset = i->vma - output_section_statement->bfd_section->vma;
}
 
return dot;
}
4847,7 → 4776,7
{
case lang_output_section_statement_enum:
{
bfd_vma newdot, after, dotdelta;
bfd_vma newdot, after;
lang_output_section_statement_type *os;
lang_memory_region_type *r;
int section_alignment = 0;
4860,7 → 4789,7
here, in lang_insert_orphan, or in the default linker scripts.
This is covering for coff backend linker bugs. See PR6945. */
if (os->addr_tree == NULL
&& bfd_link_relocatable (&link_info)
&& link_info.relocatable
&& (bfd_get_flavour (link_info.output_bfd)
== bfd_target_coff_flavour))
os->addr_tree = exp_intop (0);
4913,7 → 4842,6
}
 
newdot = dot;
dotdelta = 0;
if (bfd_is_abs_section (os->bfd_section))
{
/* No matter what happens, an abs section starts at zero. */
4939,7 → 4867,7
defined, issue an error message. */
if (!os->ignored
&& !IGNORE_SECTION (os->bfd_section)
&& !bfd_link_relocatable (&link_info)
&& ! link_info.relocatable
&& check_regions
&& strcmp (os->region->name_list.name,
DEFAULT_MEMORY_REGION) == 0
4982,14 → 4910,13
bfd_vma savedot = newdot;
newdot = align_power (newdot, section_alignment);
 
dotdelta = newdot - savedot;
if (dotdelta != 0
if (newdot != savedot
&& (config.warn_section_align
|| os->addr_tree != NULL)
&& expld.phase != lang_mark_phase_enum)
einfo (_("%P: warning: changing start of section"
" %s by %lu bytes\n"),
os->name, (unsigned long) dotdelta);
os->name, (unsigned long) (newdot - savedot));
}
 
bfd_set_section_vma (0, os->bfd_section, newdot);
5037,20 → 4964,15
{
bfd_vma lma = os->lma_region->current;
 
if (os->align_lma_with_input)
lma += dotdelta;
else
{
/* When LMA_REGION is the same as REGION, align the LMA
as we did for the VMA, possibly including alignment
from the bfd section. If a different region, then
only align according to the value in the output
statement. */
if (os->lma_region != os->region)
statement unless specified otherwise. */
if (os->lma_region != os->region && !os->align_lma_with_input)
section_alignment = os->section_alignment;
if (section_alignment > 0)
lma = align_power (lma, section_alignment);
}
os->bfd_section->lma = lma;
}
else if (r->last_os != NULL
5119,17 → 5041,14
&& dot >= (r->last_os->output_section_statement
.bfd_section->vma)))
&& os->lma_region == NULL
&& !bfd_link_relocatable (&link_info))
&& !link_info.relocatable)
r->last_os = s;
 
/* .tbss sections effectively have zero size. */
if ((os->bfd_section->flags & SEC_HAS_CONTENTS) != 0
|| (os->bfd_section->flags & SEC_THREAD_LOCAL) == 0
|| bfd_link_relocatable (&link_info))
dotdelta = TO_ADDR (os->bfd_section->size);
else
dotdelta = 0;
dot += dotdelta;
|| link_info.relocatable)
dot += TO_ADDR (os->bfd_section->size);
 
if (os->update_dot_tree != 0)
exp_fold_tree (os->update_dot_tree, bfd_abs_section_ptr, &dot);
5149,10 → 5068,10
os->bfd_section->vma);
 
if (os->lma_region != NULL && os->lma_region != os->region
&& ((os->bfd_section->flags & SEC_LOAD)
|| os->align_lma_with_input))
&& (os->bfd_section->flags & SEC_LOAD))
{
os->lma_region->current = os->bfd_section->lma + dotdelta;
os->lma_region->current
= os->bfd_section->lma + TO_ADDR (os->bfd_section->size);
 
if (check_regions)
os_region_check (os, os->lma_region, NULL,
5253,7 → 5172,7
*relax = TRUE;
}
dot = size_input_section (prev, output_section_statement,
fill, dot);
output_section_statement->fill, dot);
}
break;
 
5445,56 → 5364,57
if (expld.dataseg.phase == exp_dataseg_end_seen
&& link_info.relro && expld.dataseg.relro_end)
{
bfd_vma initial_base, relro_end, desired_end;
asection *sec;
/* If DATA_SEGMENT_ALIGN DATA_SEGMENT_RELRO_END pair was seen, try
to put expld.dataseg.relro on a (common) page boundary. */
bfd_vma min_base, old_base, relro_end, maxpage;
 
expld.dataseg.phase = exp_dataseg_relro_adjust;
maxpage = expld.dataseg.maxpagesize;
/* MIN_BASE is the absolute minimum address we are allowed to start the
read-write segment (byte before will be mapped read-only). */
min_base = (expld.dataseg.min_base + maxpage - 1) & ~(maxpage - 1);
/* OLD_BASE is the address for a feasible minimum address which will
still not cause a data overlap inside MAXPAGE causing file offset skip
by MAXPAGE. */
old_base = expld.dataseg.base;
expld.dataseg.base += (-expld.dataseg.relro_end
& (expld.dataseg.pagesize - 1));
/* Compute the expected PT_GNU_RELRO segment end. */
relro_end = ((expld.dataseg.relro_end + expld.dataseg.pagesize - 1)
& ~(expld.dataseg.pagesize - 1));
 
/* Adjust by the offset arg of DATA_SEGMENT_RELRO_END. */
desired_end = relro_end - expld.dataseg.relro_offset;
 
/* For sections in the relro segment.. */
for (sec = link_info.output_bfd->section_last; sec; sec = sec->prev)
if ((sec->flags & SEC_ALLOC) != 0
&& sec->vma >= expld.dataseg.base
&& sec->vma < expld.dataseg.relro_end - expld.dataseg.relro_offset)
if (min_base + maxpage < expld.dataseg.base)
{
/* Where do we want to put this section so that it ends as
desired? */
bfd_vma start, end, bump;
 
end = start = sec->vma;
if ((sec->flags & SEC_HAS_CONTENTS) != 0
|| (sec->flags & SEC_THREAD_LOCAL) == 0)
end += sec->size;
bump = desired_end - end;
/* We'd like to increase START by BUMP, but we must heed
alignment so the increase might be less than optimum. */
start += bump;
start &= ~(((bfd_vma) 1 << sec->alignment_power) - 1);
/* This is now the desired end for the previous section. */
desired_end = start;
expld.dataseg.base -= maxpage;
relro_end -= maxpage;
}
 
expld.dataseg.phase = exp_dataseg_relro_adjust;
ASSERT (desired_end >= expld.dataseg.base);
initial_base = expld.dataseg.base;
expld.dataseg.base = desired_end;
lang_reset_memory_regions ();
one_lang_size_sections_pass (relax, check_regions);
 
if (expld.dataseg.relro_end > relro_end)
{
/* Assignments to dot, or to output section address in a
user script have increased padding over the original.
Revert. */
expld.dataseg.base = initial_base;
/* The alignment of sections between DATA_SEGMENT_ALIGN
and DATA_SEGMENT_RELRO_END caused huge padding to be
inserted at DATA_SEGMENT_RELRO_END. Try to start a bit lower so
that the section alignments will fit in. */
asection *sec;
unsigned int max_alignment_power = 0;
 
/* Find maximum alignment power of sections between
DATA_SEGMENT_ALIGN and DATA_SEGMENT_RELRO_END. */
for (sec = link_info.output_bfd->sections; sec; sec = sec->next)
if (sec->vma >= expld.dataseg.base
&& sec->vma < expld.dataseg.relro_end
&& sec->alignment_power > max_alignment_power)
max_alignment_power = sec->alignment_power;
 
if (((bfd_vma) 1 << max_alignment_power) < expld.dataseg.pagesize)
{
if (expld.dataseg.base - (1 << max_alignment_power) < old_base)
expld.dataseg.base += expld.dataseg.pagesize;
expld.dataseg.base -= (1 << max_alignment_power);
lang_reset_memory_regions ();
one_lang_size_sections_pass (relax, check_regions);
}
 
}
link_info.relro_start = expld.dataseg.base;
link_info.relro_end = expld.dataseg.relro_end;
}
5565,7 → 5485,7
/* .tbss sections effectively have zero size. */
if ((os->bfd_section->flags & SEC_HAS_CONTENTS) != 0
|| (os->bfd_section->flags & SEC_THREAD_LOCAL) == 0
|| bfd_link_relocatable (&link_info))
|| link_info.relocatable)
dot += TO_ADDR (os->bfd_section->size);
 
if (os->update_dot_tree != NULL)
5789,7 → 5709,7
{
asection *s;
 
if (bfd_link_relocatable (&link_info))
if (link_info.relocatable)
return;
 
for (s = link_info.output_bfd->sections; s != NULL; s = s->next)
5829,8 → 5749,8
struct bfd_link_hash_entry *h;
bfd_boolean warn;
 
if ((bfd_link_relocatable (&link_info) && !link_info.gc_sections)
|| bfd_link_dll (&link_info))
if ((link_info.relocatable && !link_info.gc_sections)
|| (link_info.shared && !link_info.executable))
warn = entry_from_cmdline;
else
warn = TRUE;
5837,7 → 5757,7
 
/* Force the user to specify a root when generating a relocatable with
--gc-sections. */
if (link_info.gc_sections && bfd_link_relocatable (&link_info)
if (link_info.gc_sections && link_info.relocatable
&& !(entry_from_cmdline || undef_from_cmdline))
einfo (_("%P%F: gc-sections requires either an entry or "
"an undefined symbol\n"));
5947,8 → 5867,7
input format may not have equivalent representations in
the output format (and besides BFD does not translate
relocs for other link purposes than a final link). */
if ((bfd_link_relocatable (&link_info)
|| link_info.emitrelocations)
if ((link_info.relocatable || link_info.emitrelocations)
&& (compatible == NULL
|| (bfd_get_flavour (input_bfd)
!= bfd_get_flavour (link_info.output_bfd)))
6004,7 → 5923,7
{
if (command_line.inhibit_common_definition)
return;
if (bfd_link_relocatable (&link_info)
if (link_info.relocatable
&& ! command_line.force_common_definition)
return;
 
6027,7 → 5946,7
for (power = 0; power <= 4; power++)
bfd_link_hash_traverse (link_info.hash, lang_one_common, &power);
 
power = (unsigned int) -1;
power = UINT_MAX;
bfd_link_hash_traverse (link_info.hash, lang_one_common, &power);
}
}
6119,55 → 6038,6
return TRUE;
}
 
/* Handle a single orphan section S, placing the orphan into an appropriate
output section. The effects of the --orphan-handling command line
option are handled here. */
 
static void
ldlang_place_orphan (asection *s)
{
if (config.orphan_handling == orphan_handling_discard)
{
lang_output_section_statement_type *os;
os = lang_output_section_statement_lookup (DISCARD_SECTION_NAME, 0,
TRUE);
if (os->addr_tree == NULL
&& (bfd_link_relocatable (&link_info)
|| (s->flags & (SEC_LOAD | SEC_ALLOC)) == 0))
os->addr_tree = exp_intop (0);
lang_add_section (&os->children, s, NULL, os);
}
else
{
lang_output_section_statement_type *os;
const char *name = s->name;
int constraint = 0;
 
if (config.orphan_handling == orphan_handling_error)
einfo ("%X%P: error: unplaced orphan section `%A' from `%B'.\n",
s, s->owner);
 
if (config.unique_orphan_sections || unique_section_p (s, NULL))
constraint = SPECIAL;
 
os = ldemul_place_orphan (s, name, constraint);
if (os == NULL)
{
os = lang_output_section_statement_lookup (name, constraint, TRUE);
if (os->addr_tree == NULL
&& (bfd_link_relocatable (&link_info)
|| (s->flags & (SEC_LOAD | SEC_ALLOC)) == 0))
os->addr_tree = exp_intop (0);
lang_add_section (&os->children, s, NULL, os);
}
 
if (config.orphan_handling == orphan_handling_warn)
einfo ("%P: warning: orphan section `%A' from `%B' being "
"placed in section `%s'.\n",
s, s->owner, os->name);
}
}
 
/* Run through the input files and ensure that every input section has
somewhere to go. If one is found without a destination then create
an input request and place it into the statement tree. */
6195,7 → 6065,7
/* This is a lonely common section which must have
come from an archive. We attach to the section
with the wildcard. */
if (!bfd_link_relocatable (&link_info)
if (! link_info.relocatable
|| command_line.force_common_definition)
{
if (default_common_section == NULL)
6207,11 → 6077,31
}
}
else
ldlang_place_orphan (s);
{
const char *name = s->name;
int constraint = 0;
 
if (config.unique_orphan_sections
|| unique_section_p (s, NULL))
constraint = SPECIAL;
 
if (!ldemul_place_orphan (s, name, constraint))
{
lang_output_section_statement_type *os;
os = lang_output_section_statement_lookup (name,
constraint,
TRUE);
if (os->addr_tree == NULL
&& (link_info.relocatable
|| (s->flags & (SEC_LOAD | SEC_ALLOC)) == 0))
os->addr_tree = exp_intop (0);
lang_add_section (&os->children, s, NULL, os);
}
}
}
}
}
}
 
void
lang_set_flags (lang_memory_region_type *ptr, const char *flags, int invert)
6219,18 → 6109,10
flagword *ptr_flags;
 
ptr_flags = invert ? &ptr->not_flags : &ptr->flags;
 
while (*flags)
{
switch (*flags)
{
/* PR 17900: An exclamation mark in the attributes reverses
the sense of any of the attributes that follow. */
case '!':
invert = ! invert;
ptr_flags = invert ? &ptr->not_flags : &ptr->flags;
break;
 
case 'A': case 'a':
*ptr_flags |= SEC_ALLOC;
break;
6253,7 → 6135,7
break;
 
default:
einfo (_("%P%F: invalid character %c (%d) in flags\n"), * flags, * flags);
einfo (_("%P%F: invalid syntax in flags\n"));
break;
}
flags++;
6296,11 → 6178,11
 
/* The BFD linker needs to have a list of all input BFDs involved in
a link. */
ASSERT (entry->the_bfd->link.next == NULL);
ASSERT (entry->the_bfd->link_next == NULL);
ASSERT (entry->the_bfd != link_info.output_bfd);
 
*link_info.input_bfds_tail = entry->the_bfd;
link_info.input_bfds_tail = &entry->the_bfd->link.next;
link_info.input_bfds_tail = &entry->the_bfd->link_next;
entry->the_bfd->usrdata = entry;
bfd_set_gp_size (entry->the_bfd, g_switch_value);
 
6397,6 → 6279,7
 
new_stmt = new_stat (lang_output_statement, stat_ptr);
new_stmt->name = output_filename;
 
}
 
/* Reset the current counters in the regions. */
6483,7 → 6366,7
/* SEC_EXCLUDE is ignored when doing a relocatable link, except in
the special case of debug info. (See bfd/stabs.c)
Twiddle the flag here, to simplify later linker code. */
if (bfd_link_relocatable (&link_info))
if (link_info.relocatable)
{
LANG_FOR_EACH_INPUT_STATEMENT (f)
{
6726,7 → 6609,7
open_input_bfds (statement_list.head, OPEN_BFD_NORMAL);
 
#ifdef ENABLE_PLUGINS
if (link_info.lto_plugin_active)
if (plugin_active_plugins_p ())
{
lang_statement_list_type added;
lang_statement_list_type files, inputfiles;
6745,6 → 6628,7
einfo (_("%P%F: %s: plugin reported error after all symbols read\n"),
plugin_error_plugin ());
/* Open any newly added files, updating the file chains. */
link_info.loading_lto_outputs = TRUE;
open_input_bfds (*added.tail, OPEN_BFD_NORMAL);
/* Restore the global list pointer now they have all been added. */
lang_list_remove_tail (stat_ptr, &added);
6785,26 → 6669,8
link_info.gc_sym_list = &entry_symbol;
if (entry_symbol.name == NULL)
link_info.gc_sym_list = ldlang_undef_chain_list_head;
if (link_info.init_function != NULL)
{
struct bfd_sym_chain *sym
= (struct bfd_sym_chain *) stat_alloc (sizeof (*sym));
sym->next = link_info.gc_sym_list;
sym->name = link_info.init_function;
link_info.gc_sym_list = sym;
}
if (link_info.fini_function != NULL)
{
struct bfd_sym_chain *sym
= (struct bfd_sym_chain *) stat_alloc (sizeof (*sym));
sym->next = link_info.gc_sym_list;
sym->name = link_info.fini_function;
link_info.gc_sym_list = sym;
}
 
ldemul_after_open ();
if (config.map_file != NULL)
lang_print_asneeded ();
 
bfd_section_already_linked_table_free ();
 
6826,16 → 6692,14
/* PR 13683: We must rerun the assignments prior to running garbage
collection in order to make sure that all symbol aliases are resolved. */
lang_do_assignments (lang_mark_phase_enum);
 
lang_do_memory_regions();
expld.phase = lang_first_phase_enum;
 
/* Remove unreferenced sections if asked to. */
lang_gc_sections ();
 
/* Size up the common data. */
lang_common ();
 
/* Remove unreferenced sections if asked to. */
lang_gc_sections ();
 
/* Update wild statements. */
update_wild_statements (statement_list.head);
 
6849,7 → 6713,7
/* Find any sections not attached explicitly and handle them. */
lang_place_orphans ();
 
if (!bfd_link_relocatable (&link_info))
if (! link_info.relocatable)
{
asection *found;
 
6880,7 → 6744,7
lang_record_phdrs ();
 
/* Check relro sections. */
if (link_info.relro && !bfd_link_relocatable (&link_info))
if (link_info.relro && ! link_info.relocatable)
lang_find_relro_sections ();
 
/* Size up the sections. */
6899,16 → 6763,10
 
ldemul_finish ();
 
/* Convert absolute symbols to section relative. */
ldexp_finalize_syms ();
 
/* Make sure that the section addresses make sense. */
if (command_line.check_section_addresses)
lang_check_section_addresses ();
 
/* Check any required symbols are known. */
ldlang_check_require_defined_symbols ();
 
lang_end ();
}
 
8097,37 → 7955,6
lang_new_vers_node (greg, lreg), NULL);
}
 
/* Evaluate LENGTH and ORIGIN parts of MEMORY spec */
 
static void
lang_do_memory_regions (void)
{
lang_memory_region_type *r = lang_memory_region_list;
 
for (; r != NULL; r = r->next)
{
if (r->origin_exp)
{
exp_fold_tree_no_dot (r->origin_exp);
if (expld.result.valid_p)
{
r->origin = expld.result.value;
r->current = r->origin;
}
else
einfo (_("%F%P: invalid origin for memory region %s\n"), r->name_list.name);
}
if (r->length_exp)
{
exp_fold_tree_no_dot (r->length_exp);
if (expld.result.valid_p)
r->length = expld.result.value;
else
einfo (_("%F%P: invalid length for memory region %s\n"), r->name_list.name);
}
}
}
 
void
lang_add_unique (const char *name)
{
8237,41 → 8064,3
p = q;
}
}
 
/* Pretty print memory amount. */
 
static void
lang_print_memory_size (bfd_vma sz)
{
if ((sz & 0x3fffffff) == 0)
printf ("%10" BFD_VMA_FMT "u GB", sz >> 30);
else if ((sz & 0xfffff) == 0)
printf ("%10" BFD_VMA_FMT "u MB", sz >> 20);
else if ((sz & 0x3ff) == 0)
printf ("%10" BFD_VMA_FMT "u KB", sz >> 10);
else
printf (" %10" BFD_VMA_FMT "u B", sz);
}
 
/* Implement --print-memory-usage: disply per region memory usage. */
 
void
lang_print_memory_usage (void)
{
lang_memory_region_type *r;
 
printf ("Memory region Used Size Region Size %%age Used\n");
for (r = lang_memory_region_list; r->next != NULL; r = r->next)
{
bfd_vma used_length = r->current - r->origin;
double percent;
 
printf ("%16s: ",r->name_list.name);
lang_print_memory_size (used_length);
lang_print_memory_size ((bfd_vma) r->length);
 
percent = used_length * 100.0 / r->length;
 
printf (" %6.2f%%\n", percent);
}
}
/contrib/toolchain/binutils/ld/ldlang.h
1,5 → 1,5
/* ldlang.h - linker command language support
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991-2013 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
55,10 → 55,8
{
lang_memory_region_name name_list;
struct memory_region_struct *next;
union etree_union *origin_exp;
bfd_vma origin;
bfd_size_type length;
union etree_union *length_exp;
bfd_vma current;
union lang_statement_union *last_os;
flagword flags;
237,9 → 235,6
/* 1 means this file was specified in a -l option. */
unsigned int maybe_archive : 1;
 
/* 1 means this file was specified in a -l:namespec option. */
unsigned int full_name_provided : 1;
 
/* 1 means search a set of directories for this file. */
unsigned int search_dirs : 1;
 
274,9 → 269,6
/* Set if the file does not exist. */
unsigned int missing_file : 1;
 
/* Set if reloading an archive or --as-needed lib. */
unsigned int reload : 1;
 
#ifdef ENABLE_PLUGINS
/* Set if the file was claimed by a plugin. */
unsigned int claimed : 1;
284,12 → 276,9
/* Set if the file was claimed from an archive. */
unsigned int claim_archive : 1;
 
/* Set if added by the lto plugin add_input_file callback. */
unsigned int lto_output : 1;
/* Set if reloading an --as-needed lib. */
unsigned int reload : 1;
#endif /* ENABLE_PLUGINS */
 
/* Head of list of pushed flags. */
struct lang_input_statement_flags *pushed;
};
 
typedef struct lang_input_statement_struct
324,23 → 313,6
asection *section;
} lang_input_section_type;
 
struct map_symbol_def {
struct bfd_link_hash_entry *entry;
struct map_symbol_def *next;
};
 
/* For input sections, when writing a map file: head / tail of a linked
list of hash table entries for symbols defined in this section. */
typedef struct input_section_userdata_struct
{
struct map_symbol_def *map_symbol_def_head;
struct map_symbol_def **map_symbol_def_tail;
unsigned long map_symbol_def_count;
} input_section_userdata_type;
 
#define get_userdata(x) ((x)->userdata)
 
 
typedef struct lang_wild_statement_struct lang_wild_statement_type;
 
typedef void (*callback_t) (lang_wild_statement_type *, struct wildcard_list *,
475,6 → 447,15
const char *name;
};
 
/* This structure records symbols for which we need to keep track of
definedness for use in the DEFINED () test. */
 
struct lang_definedness_hash_entry
{
struct bfd_hash_entry root;
int iteration;
};
 
/* Used by place_orphan to keep track of orphan sections and statements. */
 
struct orphan_save
487,14 → 468,6
lang_output_section_statement_type **os_tail;
};
 
struct asneeded_minfo
{
struct asneeded_minfo *next;
const char *soname;
bfd *ref;
const char *name;
};
 
extern struct lang_phdr *lang_phdr_list;
extern struct lang_nocrossrefs *nocrossref_list;
extern const char *output_target;
502,6 → 475,7
extern lang_statement_list_type lang_output_section_statement;
extern struct lang_input_statement_flags input_flags;
extern bfd_boolean lang_has_input_file;
extern etree_type *base;
extern lang_statement_list_type *stat_ptr;
extern bfd_boolean delete_output_file_on_failure;
 
512,10 → 486,7
extern lang_statement_list_type input_file_chain;
 
extern int lang_statement_iteration;
extern struct asneeded_minfo **asneeded_list_tail;
 
extern void (*output_bfd_hash_table_free_fn) (struct bfd_link_hash_table *);
 
extern void lang_init
(void);
extern void lang_finish
592,7 → 563,7
extern void ldlang_add_file
(lang_input_statement_type *);
extern lang_output_section_statement_type *lang_output_section_find_by_flags
(const asection *, flagword, lang_output_section_statement_type **,
(const asection *, lang_output_section_statement_type **,
lang_match_sec_type_func);
extern lang_output_section_statement_type *lang_insert_orphan
(asection *, const char *, int, lang_output_section_statement_type *,
601,8 → 572,6
(const char *, lang_input_file_enum_type, const char *);
extern void lang_add_keepsyms_file
(const char *);
extern lang_output_section_statement_type *lang_output_section_get
(const asection *);
extern lang_output_section_statement_type *lang_output_section_statement_lookup
(const char *, int, bfd_boolean);
extern lang_output_section_statement_type *next_matching_output_section_statement
609,8 → 578,6
(lang_output_section_statement_type *, int);
extern void ldlang_add_undef
(const char *const, bfd_boolean);
extern void ldlang_add_require_defined
(const char *const);
extern void lang_add_output_format
(const char *, const char *, const char *, int);
extern void lang_list_init
632,8 → 599,6
(size_t);
extern void strip_excluded_output_sections
(void);
extern void lang_clear_os_map
(void);
extern void dprint_statement
(lang_statement_union_type *, int);
extern void lang_size_sections
679,6 → 644,11
(const char *);
extern const char *lang_get_output_target
(void);
extern void lang_track_definedness (const char *);
extern int lang_symbol_definition_iteration (const char *);
extern void lang_update_definedness
(const char *, struct bfd_link_hash_entry *);
 
extern void add_excluded_libs (const char *);
extern bfd_boolean load_symbols
(lang_input_statement_type *, lang_statement_list_type *);
690,7 → 660,4
extern void
lang_ld_feature (char *);
 
extern void
lang_print_memory_usage (void);
 
#endif
/contrib/toolchain/binutils/ld/ldlex-wrapper.c
1,4 → 1,4
/* Copyright (C) 2012-2015 Free Software Foundation, Inc.
/* Copyright 2012 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
/contrib/toolchain/binutils/ld/ldlex.h
1,5 → 1,6
/* ldlex.h -
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991, 1992, 1993, 1994, 1995, 1997, 2000, 2003, 2005, 2006,
2007, 2012 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
33,7 → 34,6
OPTION_DEFSYM,
OPTION_DEMANGLE,
OPTION_DYNAMIC_LINKER,
OPTION_NO_DYNAMIC_LINKER,
OPTION_SYSROOT,
OPTION_EB,
OPTION_EL,
137,13 → 137,7
#endif /* ENABLE_PLUGINS */
OPTION_DEFAULT_SCRIPT,
OPTION_PRINT_OUTPUT_FORMAT,
OPTION_PRINT_SYSROOT,
OPTION_IGNORE_UNRESOLVED_SYMBOL,
OPTION_PUSH_STATE,
OPTION_POP_STATE,
OPTION_PRINT_MEMORY_USAGE,
OPTION_REQUIRE_DEFINED_SYMBOL,
OPTION_ORPHAN_HANDLING,
};
 
/* The initial parser states. */
166,7 → 160,6
extern void lex_push_file (FILE *, const char *, unsigned int);
extern void lex_redirect (const char *, const char *, unsigned int);
extern void ldlex_script (void);
extern void ldlex_inputlist (void);
extern void ldlex_mri_script (void);
extern void ldlex_version_script (void);
extern void ldlex_version_file (void);
/contrib/toolchain/binutils/ld/ldmain.h
1,5 → 1,5
/* ldmain.h -
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991-2013 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
/contrib/toolchain/binutils/ld/ldmisc.c
1,5 → 1,7
/* ldmisc.c
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011, 2012, 2013
Free Software Foundation, Inc.
Written by Steve Chamberlain of Cygnus Support.
 
This file is part of the GNU Binutils.
35,7 → 37,6
#include "ldmain.h"
#include "ldfile.h"
#include "elf-bfd.h"
#include "coff-bfd.h"
 
/*
%% literal %
483,21 → 484,6
va_list arg;
 
va_start (arg, fmt);
if (fmt[0] == '%' && fmt[1] == '!' && fmt[2] == 0)
{
/* Stash info about --as-needed shared libraries. Print
later so they don't appear intermingled with archive
library info. */
struct asneeded_minfo *m = xmalloc (sizeof *m);
 
m->next = NULL;
m->soname = va_arg (arg, const char *);
m->ref = va_arg (arg, bfd *);
m->name = va_arg (arg, const char *);
*asneeded_list_tail = m;
asneeded_list_tail = &m->next;
}
else
vfinfo (config.map_file, fmt, arg, FALSE);
va_end (arg);
}
534,10 → 520,10
ld_abort (const char *file, int line, const char *fn)
{
if (fn != NULL)
einfo (_("%P: internal error: aborting at %s:%d in %s\n"),
einfo (_("%P: internal error: aborting at %s line %d in %s\n"),
file, line, fn);
else
einfo (_("%P: internal error: aborting at %s:%d\n"),
einfo (_("%P: internal error: aborting at %s line %d\n"),
file, line);
einfo (_("%P%F: please report this bug\n"));
xexit (1);
/contrib/toolchain/binutils/ld/ldmisc.h
1,5 → 1,6
/* ldmisc.h -
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991, 1992, 1993, 1994, 1996, 1997, 2001, 2003, 2004, 2005, 2007
Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
/contrib/toolchain/binutils/ld/ldver.c
1,5 → 1,7
/* ldver.c -- Print linker version.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2002,
2003, 2005, 2007, 2008, 2009, 2010, 2011, 2012, 2013
Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
38,7 → 40,7
 
if (noisy & 2)
{
printf (_("Copyright (C) 2015 Free Software Foundation, Inc.\n"));
printf (_("Copyright 2013 Free Software Foundation, Inc.\n"));
printf (_("\
This program is free software; you may redistribute it under the terms of\n\
the GNU General Public License version 3 or (at your option) a later version.\n\
/contrib/toolchain/binutils/ld/ldver.h
1,5 → 1,6
/* ldver.h -- Header file for ldver.c.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991, 1992, 1993, 1996, 2001, 2003, 2005, 2007
Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
/contrib/toolchain/binutils/ld/ldwrite.c
1,5 → 1,7
/* ldwrite.c -- write out the linked file
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2002,
2003, 2004, 2005, 2006, 2007, 2008, 2010, 2012
Free Software Foundation, Inc.
Written by Steve Chamberlain sac@cygnus.com
 
This file is part of the GNU Binutils.
488,13 → 490,13
|| info->strip == strip_some)
thislines = sec->lineno_count;
 
if (bfd_link_relocatable (info))
if (info->relocatable)
thisrelocs = sec->reloc_count;
 
thissize = sec->size;
 
}
else if (bfd_link_relocatable (info)
else if (info->relocatable
&& (p->type == bfd_section_reloc_link_order
|| p->type == bfd_symbol_reloc_link_order))
thisrelocs++;
572,7 → 574,6
/* Reset error indicator, which can typically something like invalid
format from opening up the .o files. */
bfd_set_error (bfd_error_no_error);
lang_clear_os_map ();
lang_for_each_statement (build_link_order);
 
if (config.split_by_reloc != (unsigned) -1
/contrib/toolchain/binutils/ld/ldwrite.h
1,5 → 1,5
/* ldwrite.h -
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991, 1992, 1993, 2003, 2005, 2007 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
/contrib/toolchain/binutils/ld/lexsup.c
1,5 → 1,7
/* Parse options for the GNU linker.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012
Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
65,9 → 67,9
 
enum control_enum {
/* Use one dash before long option name. */
ONE_DASH = 1,
ONE_DASH,
/* Use two dashes before long option name. */
TWO_DASHES = 2,
TWO_DASHES,
/* Only accept two dashes before the long option name.
This is an overloading of the use of this enum, since originally it
was only intended to tell the --help display function how to display
138,9 → 140,6
{ {"dynamic-linker", required_argument, NULL, OPTION_DYNAMIC_LINKER},
'I', N_("PROGRAM"), N_("Set PROGRAM as the dynamic linker to use"),
TWO_DASHES },
{ {"no-dynamic-linker", no_argument, NULL, OPTION_NO_DYNAMIC_LINKER},
'\0', NULL, N_("Produce an executable with no program interpreter header"),
TWO_DASHES },
{ {"library", required_argument, NULL, 'l'},
'l', N_("LIBNAME"), N_("Search for library LIBNAME"), TWO_DASHES },
{ {"library-path", required_argument, NULL, 'L'},
179,12 → 178,6
{ {"fuse-ld=", required_argument, NULL, OPTION_IGNORE},
'\0', NULL, N_("Ignored for GCC linker option compatibility"),
ONE_DASH },
{ {"map-whole-files", optional_argument, NULL, OPTION_IGNORE},
'\0', NULL, N_("Ignored for gold option compatibility"),
TWO_DASHES },
{ {"no-map-whole-files", optional_argument, NULL, OPTION_IGNORE},
'\0', NULL, N_("Ignored for gold option compatibility"),
TWO_DASHES },
{ {"Qy", no_argument, NULL, OPTION_IGNORE},
'\0', NULL, N_("Ignored for SVR4 compatibility"), ONE_DASH },
{ {"emit-relocs", no_argument, NULL, 'q'},
215,9 → 208,6
{ {"undefined", required_argument, NULL, 'u'},
'u', N_("SYMBOL"), N_("Start with undefined reference to SYMBOL"),
TWO_DASHES },
{ {"require-defined", required_argument, NULL, OPTION_REQUIRE_DEFINED_SYMBOL},
'\0', N_("SYMBOL"), N_("Require SYMBOL be defined in the final output"),
TWO_DASHES },
{ {"unique", optional_argument, NULL, OPTION_UNIQUE},
'\0', N_("[=SECTION]"),
N_("Don't merge input [SECTION | orphan] sections"), TWO_DASHES },
391,8 → 381,6
EXACTLY_TWO_DASHES },
{ {"print-output-format", no_argument, NULL, OPTION_PRINT_OUTPUT_FORMAT},
'\0', NULL, N_("Print default output format"), TWO_DASHES },
{ {"print-sysroot", no_argument, NULL, OPTION_PRINT_SYSROOT},
'\0', NULL, N_("Print current sysroot"), TWO_DASHES },
{ {"qmagic", no_argument, NULL, OPTION_IGNORE},
'\0', NULL, N_("Ignored for Linux compatibility"), ONE_DASH },
{ {"reduce-memory-overheads", no_argument, NULL,
519,17 → 507,6
OPTION_IGNORE_UNRESOLVED_SYMBOL},
'\0', N_("SYMBOL"),
N_("Unresolved SYMBOL will not cause an error or warning"), TWO_DASHES },
{ {"push-state", no_argument, NULL, OPTION_PUSH_STATE},
'\0', NULL, N_("Push state of flags governing input file handling"),
TWO_DASHES },
{ {"pop-state", no_argument, NULL, OPTION_POP_STATE},
'\0', NULL, N_("Pop state of flags governing input file handling"),
TWO_DASHES },
{ {"print-memory-usage", no_argument, NULL, OPTION_PRINT_MEMORY_USAGE},
'\0', NULL, N_("Report target memory usage"), TWO_DASHES },
{ {"orphan-handling", required_argument, NULL, OPTION_ORPHAN_HANDLING},
'\0', N_("=MODE"), N_("Control how orphan sections are handled."),
TWO_DASHES },
};
 
#define OPTION_COUNT ARRAY_SIZE (ld_options)
679,28 → 656,7
switch (optc)
{
case '?':
{
/* If the last word on the command line is an option that
requires an argument, getopt will refuse to recognise it.
Try to catch such options here and issue a more helpful
error message than just "unrecognized option". */
int opt;
 
for (opt = ARRAY_SIZE (ld_options); opt--;)
if (ld_options[opt].opt.has_arg == required_argument
/* FIXME: There are a few short options that do not
have long equivalents, but which require arguments.
We should handle them too. */
&& ld_options[opt].opt.name != NULL
&& strcmp (argv[last_optind] + ld_options[opt].control, ld_options[opt].opt.name) == 0)
{
einfo (_("%P: %s: missing argument\n"), argv[last_optind]);
break;
}
 
if (opt == -1)
einfo (_("%P: unrecognized option '%s'\n"), argv[last_optind]);
}
/* Fall through. */
 
default:
785,11 → 741,7
case 'I': /* Used on Solaris. */
case OPTION_DYNAMIC_LINKER:
command_line.interpreter = optarg;
link_info.nointerp = 0;
break;
case OPTION_NO_DYNAMIC_LINKER:
link_info.nointerp = 1;
break;
case OPTION_SYSROOT:
/* Already handled in ldmain.c. */
break;
1004,11 → 956,6
case OPTION_OFORMAT:
lang_add_output_format (optarg, NULL, NULL, 0);
break;
case OPTION_PRINT_SYSROOT:
if (*ld_sysroot)
puts (ld_sysroot);
xexit (0);
break;
case OPTION_PRINT_OUTPUT_FORMAT:
command_line.print_output_format = TRUE;
break;
1035,13 → 982,9
an error message here. We cannot just make this a warning,
increment optind, and continue because getopt is too confused
and will seg-fault the next time around. */
einfo(_("%P%F: unrecognised option: %s\n"), argv[optind]);
einfo(_("%P%F: bad -rpath option\n"));
 
if (bfd_link_pic (&link_info))
einfo (_("%P%F: -r and %s may not be used together\n"),
bfd_link_dll (&link_info) ? "-shared" : "-pie");
 
link_info.type = type_relocatable;
link_info.relocatable = TRUE;
config.build_constructors = FALSE;
config.magic_demand_paged = FALSE;
config.text_read_only = FALSE;
1144,10 → 1087,7
case OPTION_SHARED:
if (config.has_shared)
{
if (bfd_link_relocatable (&link_info))
einfo (_("%P%F: -r and -shared may not be used together\n"));
 
link_info.type = type_dll;
link_info.shared = TRUE;
/* When creating a shared library, the default
behaviour is to ignore any unresolved references. */
if (link_info.unresolved_syms_in_objects == RM_NOT_YET_SET)
1161,10 → 1101,8
case OPTION_PIE:
if (config.has_shared)
{
if (bfd_link_relocatable (&link_info))
einfo (_("%P%F: -r and -pie may not be used together\n"));
 
link_info.type = type_pie;
link_info.shared = TRUE;
link_info.pie = TRUE;
}
else
einfo (_("%P%F: -pie not supported\n"));
1171,10 → 1109,6
break;
case 'h': /* Used on Solaris. */
case OPTION_SONAME:
if (optarg[0] == '\0' && command_line.soname
&& command_line.soname[0])
einfo (_("%P: SONAME must not be empty string; keeping previous one\n"));
else
command_line.soname = optarg;
break;
case OPTION_SORT_COMMON:
1277,11 → 1211,7
link_info.task_link = TRUE;
/* Fall through - do an implied -r option. */
case OPTION_UR:
if (bfd_link_pic (&link_info))
einfo (_("%P%F: -r and %s may not be used together\n"),
bfd_link_dll (&link_info) ? "-shared" : "-pie");
 
link_info.type = type_relocatable;
link_info.relocatable = TRUE;
config.build_constructors = TRUE;
config.magic_demand_paged = FALSE;
config.text_read_only = FALSE;
1290,9 → 1220,6
case 'u':
ldlang_add_undef (optarg, TRUE);
break;
case OPTION_REQUIRE_DEFINED_SYMBOL:
ldlang_add_require_defined (optarg);
break;
case OPTION_UNIQUE:
if (optarg != NULL)
lang_add_unique (optarg);
1515,50 → 1442,9
einfo (_("%P%X: --hash-size needs a numeric argument\n"));
}
break;
 
case OPTION_PUSH_STATE:
input_flags.pushed = xmemdup (&input_flags,
sizeof (input_flags),
sizeof (input_flags));
break;
 
case OPTION_POP_STATE:
if (input_flags.pushed == NULL)
einfo (_("%P%F: no state pushed before popping\n"));
else
{
struct lang_input_statement_flags *oldp = input_flags.pushed;
memcpy (&input_flags, oldp, sizeof (input_flags));
free (oldp);
}
break;
 
case OPTION_PRINT_MEMORY_USAGE:
command_line.print_memory_usage = TRUE;
break;
 
case OPTION_ORPHAN_HANDLING:
if (strcasecmp (optarg, "place") == 0)
config.orphan_handling = orphan_handling_place;
else if (strcasecmp (optarg, "warn") == 0)
config.orphan_handling = orphan_handling_warn;
else if (strcasecmp (optarg, "error") == 0)
config.orphan_handling = orphan_handling_error;
else if (strcasecmp (optarg, "discard") == 0)
config.orphan_handling = orphan_handling_discard;
else
einfo (_("%P%F: invalid argument to option"
" \"--orphan-handling\"\n"));
break;
}
}
 
if (command_line.soname && command_line.soname[0] == '\0')
{
einfo (_("%P: SONAME must not be empty string; ignored\n"));
command_line.soname = NULL;
}
 
while (ingroup)
{
lang_leave_group ();
1579,9 → 1465,13
/* FIXME: Should we allow emulations a chance to set this ? */
link_info.unresolved_syms_in_shared_libs = how_to_report_unresolved_symbols;
 
if (bfd_link_relocatable (&link_info)
&& command_line.check_section_addresses < 0)
if (link_info.relocatable)
{
if (command_line.check_section_addresses < 0)
command_line.check_section_addresses = 0;
if (link_info.shared)
einfo (_("%P%F: -r and -shared may not be used together\n"));
}
 
/* We may have -Bsymbolic, -Bsymbolic-functions, --dynamic-list-data,
--dynamic-list-cpp-new, --dynamic-list-cpp-typeinfo and
1594,7 → 1484,7
break;
case symbolic:
/* -Bsymbolic is for shared library only. */
if (bfd_link_dll (&link_info))
if (link_info.shared)
{
link_info.symbolic = TRUE;
/* Should we free the unused memory? */
1604,7 → 1494,7
break;
case symbolic_functions:
/* -Bsymbolic-functions is for shared library only. */
if (bfd_link_dll (&link_info))
if (link_info.shared)
command_line.dynamic_list = dynamic_list_data;
break;
}
1620,7 → 1510,7
break;
}
 
if (!bfd_link_dll (&link_info))
if (! link_info.shared)
{
if (command_line.filter_shlib)
einfo (_("%P%F: -F may not be used without -shared\n"));
1628,10 → 1518,13
einfo (_("%P%F: -f may not be used without -shared\n"));
}
 
if (! link_info.shared || link_info.pie)
link_info.executable = TRUE;
 
/* Treat ld -r -s as ld -r -S -x (i.e., strip all local symbols). I
don't see how else this can be handled, since in this case we
must preserve all externally visible symbols. */
if (bfd_link_relocatable (&link_info) && link_info.strip == strip_all)
if (link_info.relocatable && link_info.strip == strip_all)
{
link_info.strip = strip_debugger;
if (link_info.discard == discard_sec_merge)
1705,123 → 1598,7
lang_section_start (section, exp_intop (val), seg);
}
 
static void
elf_shlib_list_options (FILE *file)
{
fprintf (file, _("\
--audit=AUDITLIB Specify a library to use for auditing\n"));
fprintf (file, _("\
-Bgroup Selects group name lookup rules for DSO\n"));
fprintf (file, _("\
--disable-new-dtags Disable new dynamic tags\n"));
fprintf (file, _("\
--enable-new-dtags Enable new dynamic tags\n"));
fprintf (file, _("\
--eh-frame-hdr Create .eh_frame_hdr section\n"));
fprintf (file, _("\
--exclude-libs=LIBS Make all symbols in LIBS hidden\n"));
fprintf (file, _("\
--hash-style=STYLE Set hash style to sysv, gnu or both\n"));
fprintf (file, _("\
-P AUDITLIB, --depaudit=AUDITLIB\n" "\
Specify a library to use for auditing dependencies\n"));
fprintf (file, _("\
-z combreloc Merge dynamic relocs into one section and sort\n"));
fprintf (file, _("\
-z nocombreloc Don't merge dynamic relocs into one section\n"));
fprintf (file, _("\
-z global Make symbols in DSO available for subsequently\n\
loaded objects\n"));
fprintf (file, _("\
-z initfirst Mark DSO to be initialized first at runtime\n"));
fprintf (file, _("\
-z interpose Mark object to interpose all DSOs but executable\n"));
fprintf (file, _("\
-z lazy Mark object lazy runtime binding (default)\n"));
fprintf (file, _("\
-z loadfltr Mark object requiring immediate process\n"));
fprintf (file, _("\
-z nocopyreloc Don't create copy relocs\n"));
fprintf (file, _("\
-z nodefaultlib Mark object not to use default search paths\n"));
fprintf (file, _("\
-z nodelete Mark DSO non-deletable at runtime\n"));
fprintf (file, _("\
-z nodlopen Mark DSO not available to dlopen\n"));
fprintf (file, _("\
-z nodump Mark DSO not available to dldump\n"));
fprintf (file, _("\
-z now Mark object non-lazy runtime binding\n"));
fprintf (file, _("\
-z origin Mark object requiring immediate $ORIGIN\n\
processing at runtime\n"));
fprintf (file, _("\
-z relro Create RELRO program header\n"));
fprintf (file, _("\
-z norelro Don't create RELRO program header\n"));
fprintf (file, _("\
-z stacksize=SIZE Set size of stack segment\n"));
fprintf (file, _("\
-z text Treat DT_TEXTREL in shared object as error\n"));
fprintf (file, _("\
-z notext Don't treat DT_TEXTREL in shared object as error\n"));
fprintf (file, _("\
-z textoff Don't treat DT_TEXTREL in shared object as error\n"));
}
 
static void
elf_static_list_options (FILE *file)
{
fprintf (file, _("\
--build-id[=STYLE] Generate build ID note\n"));
fprintf (file, _("\
--compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi]\n\
Compress DWARF debug sections using zlib\n"));
#ifdef DEFAULT_FLAG_COMPRESS_DEBUG
fprintf (file, _("\
Default: zlib-gabi\n"));
#else
fprintf (file, _("\
Default: none\n"));
#endif
fprintf (file, _("\
-z common-page-size=SIZE Set common page size to SIZE\n"));
fprintf (file, _("\
-z max-page-size=SIZE Set maximum page size to SIZE\n"));
fprintf (file, _("\
-z defs Report unresolved symbols in object files.\n"));
fprintf (file, _("\
-z muldefs Allow multiple definitions\n"));
fprintf (file, _("\
-z execstack Mark executable as requiring executable stack\n"));
fprintf (file, _("\
-z noexecstack Mark executable as not requiring executable stack\n"));
}
 
static void
elf_plt_unwind_list_options (FILE *file)
{
fprintf (file, _("\
--ld-generated-unwind-info Generate exception handling info for PLT\n\
--no-ld-generated-unwind-info\n\
Don't generate exception handling info for PLT\n"));
}
 
static void
ld_list_options (FILE *file, bfd_boolean elf, bfd_boolean shlib,
bfd_boolean plt_unwind)
{
if (!elf)
return;
printf (_("ELF emulations:\n"));
if (plt_unwind)
elf_plt_unwind_list_options (file);
elf_static_list_options (file);
if (shlib)
elf_shlib_list_options (file);
}
 
/* Print help messages for the options. */
 
static void
1933,8 → 1710,6
 
/* xgettext:c-format */
printf (_("%s: emulation specific options:\n"), program_name);
ld_list_options (stdout, ELF_LIST_OPTIONS, ELF_SHLIB_LIST_OPTIONS,
ELF_PLT_UNWIND_LIST_OPTIONS);
ldemul_list_emulation_options (stdout);
printf ("\n");
 
/contrib/toolchain/binutils/ld/mri.c
1,5 → 1,6
/* mri.c -- handle MRI style linker scripts
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Copyright 1991, 1992, 1993, 1994, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2005, 2007, 2011 Free Software Foundation, Inc.
Contributed by Steve Chamberlain <sac@cygnus.com>.
 
This file is part of the GNU Binutils.
44,8 → 45,6
};
 
static unsigned int symbol_truncate = 10000;
static etree_type *base; /* Relocation base - or null */
 
static struct section_name_struct *order;
static struct section_name_struct *only_load;
static struct section_name_struct *address;
/contrib/toolchain/binutils/ld/mri.h
1,5 → 1,5
/* mri.h -- header file for MRI scripting functions
Copyright (C) 1993-2015 Free Software Foundation, Inc.
Copyright 1993, 1995, 1996, 2003, 2005, 2007 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
/contrib/toolchain/binutils/ld/pe-dll.c
1,5 → 1,6
/* Routines to help build PEI-format DLLs (Win32 etc)
Copyright (C) 1998-2015 Free Software Foundation, Inc.
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
Written by DJ Delorie <dj@cygnus.com>
 
This file is part of the GNU Binutils.
235,7 → 236,6
{ STRING_COMMA_LEN ("_impure_ptr") },
{ STRING_COMMA_LEN ("_fmode") },
{ STRING_COMMA_LEN ("environ") },
{ STRING_COMMA_LEN ("__dso_handle") },
{ NULL, 0 }
};
 
655,7 → 655,7
 
/* First, run around to all the objects looking for the .drectve
sections, and push those into the def file too. */
for (b = info->input_bfds; b; b = b->link.next)
for (b = info->input_bfds; b; b = b->link_next)
{
s = bfd_get_section_by_name (b, ".drectve");
if (s)
693,7 → 693,7
 
/* If we are building an executable and there is nothing
to export, we do not build an export table at all. */
if (bfd_link_executable (info) && pe_def_file->num_exports == 0
if (info->executable && pe_def_file->num_exports == 0
&& (!pe_dll_export_everything || pe_dll_exclude_all_symbols))
return;
 
701,7 → 701,7
if ((pe_dll_export_everything || pe_def_file->num_exports == 0)
&& !pe_dll_exclude_all_symbols)
{
for (b = info->input_bfds; b; b = b->link.next)
for (b = info->input_bfds; b; b = b->link_next)
{
asymbol **symbols;
int nsyms;
1268,7 → 1268,7
bfd *b;
asection *s;
 
for (b = info->input_bfds; b; b = b->link.next)
for (b = info->input_bfds; b; b = b->link_next)
{
asymbol **symbols;
 
1331,7 → 1331,7
struct bfd_section *s;
 
total_relocs = 0;
for (b = info->input_bfds; b; b = b->link.next)
for (b = info->input_bfds; b; b = b->link_next)
for (s = b->sections; s; s = s->next)
total_relocs += s->reloc_count;
 
1339,7 → 1339,7
 
total_relocs = 0;
bi = 0;
for (bi = 0, b = info->input_bfds; b; bi++, b = b->link.next)
for (bi = 0, b = info->input_bfds; b; bi++, b = b->link_next)
{
arelent **relocs;
int relsize, nrelocs;
2591,7 → 2591,7
BSF_NO_FLAGS, 0);
 
bfd_set_section_size (abfd, extern_rt_rel, PE_IDATA5_SIZE);
extern_rt_rel_d = xcalloc (1, PE_IDATA5_SIZE);
extern_rt_rel_d = xmalloc (PE_IDATA5_SIZE);
extern_rt_rel->contents = extern_rt_rel_d;
 
quick_reloc (abfd, 0, BFD_RELOC_RVA, 1);
2727,7 → 2727,7
ar_head = make_head (outarch);
 
/* Iterate the input BFDs, looking for exclude-modules-for-implib. */
for (ibfd = info->input_bfds; ibfd; ibfd = ibfd->link.next)
for (ibfd = info->input_bfds; ibfd; ibfd = ibfd->link_next)
{
/* Iterate the exclude list. */
struct exclude_list_struct *ex;
3369,7 → 3369,7
pe_output_file_set_long_section_names (abfd);
process_def_file_and_drectve (abfd, info);
 
if (pe_def_file->num_exports == 0 && !bfd_link_pic (info))
if (pe_def_file->num_exports == 0 && !info->shared)
return;
 
generate_edata (abfd, info);
3411,7 → 3411,7
 
fill_edata (abfd, info);
 
if (bfd_link_dll (info))
if (info->shared && !info->pie)
pe_data (abfd)->dll = 1;
 
edata_s->contents = edata_d;
/contrib/toolchain/binutils/ld/pe-dll.h
1,5 → 1,6
/* pe-dll.h: Header file for routines used to build Windows DLLs.
Copyright (C) 1999-2015 Free Software Foundation, Inc.
Copyright 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
/contrib/toolchain/binutils/ld/plugin.c
1,5 → 1,5
/* Plugin control for the GNU linker.
Copyright (C) 2010-2015 Free Software Foundation, Inc.
Copyright 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
21,7 → 21,6
#include "sysdep.h"
#include "libiberty.h"
#include "bfd.h"
#include "libbfd.h"
#include "bfdlink.h"
#include "bfdver.h"
#include "ld.h"
30,7 → 29,6
#include "ldexp.h"
#include "ldlang.h"
#include "ldfile.h"
#include "../bfd/plugin.h"
#include "plugin.h"
#include "plugin-api.h"
#include "elf-bfd.h"
74,26 → 72,6
bfd_boolean cleanup_done;
} plugin_t;
 
typedef struct view_buffer
{
char *addr;
size_t filesize;
off_t offset;
} view_buffer_t;
 
/* The internal version of struct ld_plugin_input_file with a BFD
pointer. */
typedef struct plugin_input_file
{
bfd *abfd;
view_buffer_t view_buffer;
char *name;
int fd;
bfd_boolean use_mmap;
off_t offset;
off_t filesize;
} plugin_input_file_t;
 
/* The master list of all plugins. */
static plugin_t *plugins_list = NULL;
 
136,7 → 114,6
LDPT_REGISTER_CLEANUP_HOOK,
LDPT_ADD_SYMBOLS,
LDPT_GET_INPUT_FILE,
LDPT_GET_VIEW,
LDPT_RELEASE_INPUT_FILE,
LDPT_GET_SYMBOLS,
LDPT_GET_SYMBOLS_V2,
150,12 → 127,9
 
/* Forward references. */
static bfd_boolean plugin_notice (struct bfd_link_info *,
struct bfd_link_hash_entry *,
struct bfd_link_hash_entry *,
bfd *, asection *, bfd_vma, flagword);
struct bfd_link_hash_entry *, bfd *,
asection *, bfd_vma, flagword, const char *);
 
static const bfd_target * plugin_object_p (bfd *);
 
#if !defined (HAVE_DLFCN_H) && defined (HAVE_WINDOWS_H)
 
#define RTLD_NOW 0 /* Dummy value. */
243,17 → 217,6
if (!last_plugin)
return set_plugin_error (_("<no plugin>"));
 
/* Ignore -pass-through= from GCC driver. */
if (*arg == '-')
{
const char *p = arg + 1;
 
if (*p == '-')
++p;
if (strncmp (p, "pass-through=", 13) == 0)
return 0;
}
 
newarg = xmalloc (sizeof *newarg);
newarg->arg = arg;
newarg->next = NULL;
265,33 → 228,22
return 0;
}
 
/* Generate a dummy BFD to represent an IR file, for any callers of
plugin_call_claim_file to use as the handle in the ld_plugin_input_file
struct that they build to pass in. The BFD is initially writable, so
that symbols can be added to it; it must be made readable after the
add_symbols hook has been called so that it can be read when linking. */
static bfd *
/* Create a dummy BFD. */
bfd *
plugin_get_ir_dummy_bfd (const char *name, bfd *srctemplate)
{
bfd *abfd;
bfd_boolean bfd_plugin_target;
 
bfd_use_reserved_id = 1;
bfd_plugin_target = bfd_plugin_target_p (srctemplate->xvec);
abfd = bfd_create (concat (name, IRONLY_SUFFIX, (const char *) NULL),
bfd_plugin_target ? link_info.output_bfd : srctemplate);
srctemplate);
if (abfd != NULL)
{
abfd->flags |= BFD_LINKER_CREATED | BFD_PLUGIN;
if (!bfd_make_writable (abfd))
goto report_error;
if (!bfd_plugin_target)
{
bfd_set_arch_info (abfd, bfd_get_arch_info (srctemplate));
bfd_set_gp_size (abfd, bfd_get_gp_size (srctemplate));
if (!bfd_copy_private_bfd_data (srctemplate, abfd))
goto report_error;
}
if (bfd_make_writable (abfd)
&& bfd_copy_private_bfd_data (srctemplate, abfd))
{
flagword flags;
 
302,18 → 254,22
return abfd;
}
}
report_error:
einfo (_("could not create dummy IR bfd: %F%E\n"));
return NULL;
}
 
/* Check if the BFD passed in is an IR dummy object file. */
static inline bfd_boolean
static bfd_boolean
is_ir_dummy_bfd (const bfd *abfd)
{
/* ABFD can sometimes legitimately be NULL, e.g. when called from one
of the linker callbacks for a symbol in the *ABS* or *UND* sections. */
return abfd != NULL && (abfd->flags & BFD_PLUGIN) != 0;
of the linker callbacks for a symbol in the *ABS* or *UND* sections.
Likewise, the usrdata field may be NULL if ABFD was added by the
backend without a corresponding input statement, as happens e.g.
when processing DT_NEEDED dependencies. */
return (abfd
&& abfd->usrdata
&& ((lang_input_statement_type *)(abfd->usrdata))->flags.claimed);
}
 
/* Helpers to convert between BFD and GOLD symbol formats. */
450,8 → 406,7
add_symbols (void *handle, int nsyms, const struct ld_plugin_symbol *syms)
{
asymbol **symptrs;
plugin_input_file_t *input = handle;
bfd *abfd = input->abfd;
bfd *abfd = handle;
int n;
 
ASSERT (called_plugin);
474,31 → 429,16
/* Get the input file information with an open (possibly re-opened)
file descriptor. */
static enum ld_plugin_status
get_input_file (const void *handle, struct ld_plugin_input_file *file)
get_input_file (const void *handle ATTRIBUTE_UNUSED,
struct ld_plugin_input_file *file ATTRIBUTE_UNUSED)
{
const plugin_input_file_t *input = handle;
 
ASSERT (called_plugin);
 
file->name = input->name;
file->offset = input->offset;
file->filesize = input->filesize;
file->handle = (void *) handle;
 
return LDPS_OK;
}
 
/* Get view of the input file. */
static enum ld_plugin_status
get_view (const void *handle, const void **viewp)
{
ASSERT (called_plugin);
return LDPS_ERR;
}
 
/* Release the input file. */
static enum ld_plugin_status
release_input_file (const void *handle)
release_input_file (const void *handle ATTRIBUTE_UNUSED)
{
ASSERT (called_plugin);
return LDPS_ERR;
512,9 → 452,9
{
struct bfd_sym_chain *sym;
 
if (bfd_link_relocatable (&link_info))
if (link_info.relocatable)
return TRUE;
if (link_info.export_dynamic || bfd_link_dll (&link_info))
if (link_info.export_dynamic || !link_info.executable)
{
/* Check if symbol is hidden by version script. */
if (bfd_hide_sym_by_version (link_info.version_info,
554,8 → 494,7
get_symbols (const void *handle, int nsyms, struct ld_plugin_symbol *syms,
int def_ironly_exp)
{
const plugin_input_file_t *input = handle;
const bfd *abfd = (const bfd *) input->abfd;
const bfd *abfd = handle;
int n;
 
ASSERT (called_plugin);
673,14 → 612,10
static enum ld_plugin_status
add_input_file (const char *pathname)
{
lang_input_statement_type *is;
 
ASSERT (called_plugin);
is = lang_add_input_file (xstrdup (pathname), lang_input_file_is_file_enum,
NULL);
if (!is)
if (!lang_add_input_file (xstrdup (pathname), lang_input_file_is_file_enum,
NULL))
return LDPS_ERR;
is->flags.lto_output = 1;
return LDPS_OK;
}
 
688,14 → 623,10
static enum ld_plugin_status
add_input_library (const char *pathname)
{
lang_input_statement_type *is;
 
ASSERT (called_plugin);
is = lang_add_input_file (xstrdup (pathname), lang_input_file_is_l_enum,
NULL);
if (!is)
if (!lang_add_input_file (xstrdup (pathname), lang_input_file_is_l_enum,
NULL))
return LDPS_ERR;
is->flags.lto_output = 1;
return LDPS_OK;
}
 
723,19 → 654,15
putchar ('\n');
break;
case LDPL_WARNING:
{
char *newfmt = ACONCAT (("%P: warning: ", format, "\n",
(const char *) NULL));
vfinfo (stdout, newfmt, args, TRUE);
}
vfinfo (stdout, format, args, TRUE);
putchar ('\n');
break;
case LDPL_FATAL:
case LDPL_ERROR:
default:
{
char *newfmt = ACONCAT ((level == LDPL_FATAL ? "%P%F" : "%P%X",
": error: ", format, "\n",
(const char *) NULL));
char *newfmt = ACONCAT ((level == LDPL_FATAL ? "%P%F: " : "%P%X: ",
format, "\n", (const char *) NULL));
fflush (stdout);
vfinfo (stderr, newfmt, args, TRUE);
fflush (stderr);
773,10 → 700,11
TVU(val) = major * 100 + minor;
break;
case LDPT_LINKER_OUTPUT:
TVU(val) = (bfd_link_relocatable (&link_info) ? LDPO_REL
: bfd_link_pde (&link_info) ? LDPO_EXEC
: bfd_link_pie (&link_info) ? LDPO_PIE
: LDPO_DYN);
TVU(val) = (link_info.relocatable
? LDPO_REL
: (link_info.executable
? (link_info.pie ? LDPO_PIE : LDPO_EXEC)
: LDPO_DYN));
break;
case LDPT_OUTPUT_NAME:
TVU(string) = output_filename;
796,9 → 724,6
case LDPT_GET_INPUT_FILE:
TVU(get_input_file) = get_input_file;
break;
case LDPT_GET_VIEW:
TVU(get_view) = get_view;
break;
case LDPT_RELEASE_INPUT_FILE:
TVU(release_input_file) = release_input_file;
break;
842,6 → 767,14
tv->tv_u.tv_val = 0;
}
 
/* Return true if any plugins are active this run. Only valid
after options have been processed. */
bfd_boolean
plugin_active_plugins_p (void)
{
return plugins_list != NULL;
}
 
/* Load up and initialise all plugins after argument parsing. */
void
plugin_load_plugins (void)
897,14 → 830,7
plugin_callbacks = *orig_callbacks;
plugin_callbacks.notice = &plugin_notice;
link_info.notice_all = TRUE;
link_info.lto_plugin_active = TRUE;
link_info.callbacks = &plugin_callbacks;
 
register_ld_plugin_object_p (plugin_object_p);
 
#if HAVE_MMAP && HAVE_GETPAGESIZE
plugin_pagesize = getpagesize ();
#endif
}
 
/* Call 'claim file' hook for all plugins. */
931,156 → 857,23
return plugin_error_p () ? -1 : 0;
}
 
/* Duplicates a character string with memory attached to ABFD. */
 
static char *
plugin_strdup (bfd *abfd, const char *str)
void
plugin_maybe_claim (struct ld_plugin_input_file *file,
lang_input_statement_type *entry)
{
size_t strlength;
char *copy;
strlength = strlen (str) + 1;
copy = bfd_alloc (abfd, strlength);
if (copy == NULL)
einfo (_("%P%F: plugin_strdup failed to allocate memory: %s\n"),
bfd_get_error ());
memcpy (copy, str, strlength);
return copy;
}
int claimed = 0;
 
static const bfd_target *
plugin_object_p (bfd *ibfd)
{
int claimed;
plugin_input_file_t *input;
off_t offset, filesize;
struct ld_plugin_input_file file;
bfd *abfd;
bfd_boolean inarchive;
const char *name;
int fd;
 
/* Don't try the dummy object file. */
if ((ibfd->flags & BFD_PLUGIN) != 0)
return NULL;
 
if (ibfd->plugin_format != bfd_plugin_uknown)
{
if (ibfd->plugin_format == bfd_plugin_yes)
return ibfd->plugin_dummy_bfd->xvec;
else
return NULL;
}
 
inarchive = bfd_my_archive (ibfd) != NULL;
name = inarchive ? bfd_my_archive (ibfd)->filename : ibfd->filename;
fd = open (name, O_RDONLY | O_BINARY);
 
if (fd < 0)
return NULL;
 
/* We create a dummy BFD, initially empty, to house whatever symbols
the plugin may want to add. */
abfd = plugin_get_ir_dummy_bfd (ibfd->filename, ibfd);
 
input = bfd_alloc (abfd, sizeof (*input));
if (input == NULL)
einfo (_("%P%F: plugin failed to allocate memory for input: %s\n"),
bfd_get_error ());
 
if (inarchive)
{
/* Offset and filesize must refer to the individual archive
member, not the whole file, and must exclude the header.
Fortunately for us, that is how the data is stored in the
origin field of the bfd and in the arelt_data. */
offset = ibfd->origin;
filesize = arelt_size (ibfd);
}
else
{
offset = 0;
filesize = lseek (fd, 0, SEEK_END);
 
/* We must copy filename attached to ibfd if it is not an archive
member since it may be freed by bfd_close below. */
name = plugin_strdup (abfd, name);
}
 
file.name = name;
file.offset = offset;
file.filesize = filesize;
file.fd = fd;
file.handle = input;
 
input->abfd = abfd;
input->view_buffer.addr = NULL;
input->view_buffer.filesize = 0;
input->view_buffer.offset = 0;
input->fd = fd;
input->use_mmap = FALSE;
input->offset = offset;
input->filesize = filesize;
input->name = plugin_strdup (abfd, ibfd->filename);
 
claimed = 0;
 
if (plugin_call_claim_file (&file, &claimed))
file->handle = plugin_get_ir_dummy_bfd (entry->the_bfd->filename,
entry->the_bfd);
if (plugin_call_claim_file (file, &claimed))
einfo (_("%P%F: %s: plugin reported error claiming file\n"),
plugin_error_plugin ());
 
if (input->fd != -1 && ! bfd_plugin_target_p (ibfd->xvec))
{
/* FIXME: fd belongs to us, not the plugin. GCC plugin, which
doesn't need fd after plugin_call_claim_file, doesn't use
BFD plugin target vector. Since GCC plugin doesn't call
release_input_file, we close it here. LLVM plugin, which
needs fd after plugin_call_claim_file and calls
release_input_file after it is done, uses BFD plugin target
vector. This scheme doesn't work when a plugin needs fd and
doesn't use BFD plugin target vector neither. */
close (fd);
input->fd = -1;
}
 
/* fd belongs to us, not the plugin; but we don't need it. */
close (file->fd);
if (claimed)
{
ibfd->plugin_format = bfd_plugin_yes;
ibfd->plugin_dummy_bfd = abfd;
bfd_make_readable (abfd);
return abfd->xvec;
}
else
{
#if HAVE_MMAP
if (input->use_mmap)
{
/* If plugin didn't claim the file, unmap the buffer. */
char *addr = input->view_buffer.addr;
off_t size = input->view_buffer.filesize;
# if HAVE_GETPAGESIZE
off_t bias = input->view_buffer.offset % plugin_pagesize;
size += bias;
addr -= bias;
# endif
munmap (addr, size);
}
#endif
 
/* If plugin didn't claim the file, we don't need the dummy bfd.
Can't avoid speculatively creating it, alas. */
ibfd->plugin_format = bfd_plugin_no;
bfd_close_all_done (abfd);
return NULL;
}
}
 
void
plugin_maybe_claim (lang_input_statement_type *entry)
{
if (plugin_object_p (entry->the_bfd))
{
bfd *abfd = entry->the_bfd->plugin_dummy_bfd;
 
/* Discard the real file's BFD and substitute the dummy one. */
 
/* BFD archive handling caches elements so we can't call
1087,10 → 880,18
bfd_close for archives. */
if (entry->the_bfd->my_archive == NULL)
bfd_close (entry->the_bfd);
entry->the_bfd = abfd;
entry->flags.claimed = 1;
entry->the_bfd = file->handle;
entry->flags.claimed = TRUE;
bfd_make_readable (entry->the_bfd);
}
else
{
/* If plugin didn't claim the file, we don't need the dummy bfd.
Can't avoid speculatively creating it, alas. */
bfd_close_all_done (file->handle);
entry->flags.claimed = FALSE;
}
}
 
/* Call 'all symbols read' hook for all plugins. */
int
1149,21 → 950,16
static bfd_boolean
plugin_notice (struct bfd_link_info *info,
struct bfd_link_hash_entry *h,
struct bfd_link_hash_entry *inh,
bfd *abfd,
asection *section,
bfd_vma value,
flagword flags)
flagword flags,
const char *string)
{
struct bfd_link_hash_entry *orig_h = h;
 
if (h != NULL)
{
bfd *sym_bfd;
 
if (h->type == bfd_link_hash_warning)
h = h->u.i.link;
 
/* Nothing to do here if this def/ref is from an IR dummy BFD. */
if (is_ir_dummy_bfd (abfd))
;
1173,15 → 969,16
else if (bfd_is_ind_section (section)
|| (flags & BSF_INDIRECT) != 0)
{
/* ??? Some of this is questionable. See comments in
_bfd_generic_link_add_one_symbol for case IND. */
if (h->type != bfd_link_hash_new)
{
struct bfd_link_hash_entry *inh;
 
h->non_ir_ref = TRUE;
inh = bfd_wrapped_link_hash_lookup (abfd, info, string, FALSE,
FALSE, FALSE);
if (inh != NULL)
inh->non_ir_ref = TRUE;
}
else if (inh->type == bfd_link_hash_new)
inh->non_ir_ref = TRUE;
}
 
/* Nothing to do here for warning symbols. */
1222,12 → 1019,23
}
 
/* Continue with cref/nocrossref/trace-sym processing. */
if (orig_h == NULL
if (h == NULL
|| orig_notice_all
|| (info->notice_hash != NULL
&& bfd_hash_lookup (info->notice_hash, orig_h->root.string,
&& bfd_hash_lookup (info->notice_hash, h->root.string,
FALSE, FALSE) != NULL))
return (*orig_callbacks->notice) (info, orig_h, inh,
abfd, section, value, flags);
return (*orig_callbacks->notice) (info, h,
abfd, section, value, flags, string);
return TRUE;
}
 
/* Return true if bfd is a dynamic library that should be reloaded. */
 
bfd_boolean
plugin_should_reload (bfd *abfd)
{
return ((abfd->flags & DYNAMIC) != 0
&& bfd_get_flavour (abfd) == bfd_target_elf_flavour
&& bfd_get_format (abfd) == bfd_object
&& (elf_dyn_lib_class (abfd) & DYN_AS_NEEDED) != 0);
}
/contrib/toolchain/binutils/ld/plugin.h
1,5 → 1,5
/* Plugin control for the GNU linker.
Copyright (C) 2010-2015 Free Software Foundation, Inc.
Copyright 2010, 2011 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
39,6 → 39,10
error if none. */
extern int plugin_opt_plugin_arg (const char *arg);
 
/* Return true if any plugins are active this run. Only valid
after options have been processed. */
extern bfd_boolean plugin_active_plugins_p (void);
 
/* Load up and initialise all plugins after argument parsing. */
extern void plugin_load_plugins (void);
 
46,7 → 50,8
extern const char *plugin_error_plugin (void);
 
/* Call 'claim file' hook for all plugins. */
extern void plugin_maybe_claim (lang_input_statement_type *);
extern void plugin_maybe_claim (struct ld_plugin_input_file *,
lang_input_statement_type *);
 
/* Call 'all symbols read' hook for all plugins. */
extern int plugin_call_all_symbols_read (void);
54,4 → 59,14
/* Call 'cleanup' hook for all plugins at exit. */
extern void plugin_call_cleanup (void);
 
/* Generate a dummy BFD to represent an IR file, for any callers of
plugin_call_claim_file to use as the handle in the ld_plugin_input_file
struct that they build to pass in. The BFD is initially writable, so
that symbols can be added to it; it must be made readable after the
add_symbols hook has been called so that it can be read when linking. */
extern bfd *plugin_get_ir_dummy_bfd (const char *name, bfd *template);
 
/* Return true if bfd is a dynamic library that should be reloaded. */
extern bfd_boolean plugin_should_reload (bfd *);
 
#endif /* !def GLD_PLUGIN_H */