Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6323 → Rev 6324

/contrib/toolchain/binutils/ld/Makefile
5,7 → 5,9
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
CFLAGS = -c -save-temps $(CFLAGS_OPT)
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)
 
INCLUDES= -I. -I../bfd -I../include -I$(SDK_DIR)/sources/newlib/libc/include
 
20,11 → 22,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
LDFLAGS = -static -nostdlib --stack 12582912 -T$(SDK_DIR)/sources/newlib/app.lds --image-base 0 --subsystem native
 
 
SRCS = \
deffilep.c ei386pe.c \
deffilep.c ei386pe.c ldbuildid.c\
ldcref.c ldctor.c ldemul.c \
ldexp.c ldfile.c ldgram.c \
ldlang.c ldlex-wrapper.c \
/contrib/toolchain/binutils/ld/config.h
1,5 → 1,5
/* config.h. Generated from config.in by configure. */
/* config.in. Generated from configure.in by autoheader. */
/* config.in. Generated from configure.ac by autoheader. */
 
/* Check that config.h is #included before system headers
(this works only for glibc, but that should be enough). */
8,6 → 8,9
#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 */
48,18 → 51,9
*/
#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 */
 
166,19 → 160,19
#define PACKAGE_BUGREPORT ""
 
/* Define to the full name of this package. */
#define PACKAGE_NAME ""
#define PACKAGE_NAME "ld"
 
/* Define to the full name and version of this package. */
#define PACKAGE_STRING ""
#define PACKAGE_STRING "ld 2.26"
 
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME ""
#define PACKAGE_TARNAME "ld"
 
/* Define to the home page for this package. */
#define PACKAGE_URL ""
 
/* Define to the version of this package. */
#define PACKAGE_VERSION ""
#define PACKAGE_VERSION "2.26"
 
/* The size of `void *', as computed by sizeof. */
#define SIZEOF_VOID_P 4
215,7 → 209,7
 
 
/* Version number of package */
#define VERSION "2.24"
#define VERSION "2.26"
 
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
`char[]'. */
/contrib/toolchain/binutils/ld/deffile.h
1,6 → 1,5
/* deffile.h - header for .DEF file parser
Copyright 1998, 1999, 2000, 2002, 2003, 2005, 2006, 2007, 2009
Free Software Foundation, Inc.
Copyright (C) 1998-2015 Free Software Foundation, Inc.
Written by DJ Delorie dj@cygnus.com
 
This file is part of the GNU Binutils.
/contrib/toolchain/binutils/ld/deffilep.c
1,14 → 1,13
/* A Bison parser, made by GNU Bison 2.3. */
/* A Bison parser, made by GNU Bison 3.0. */
 
/* Skeleton implementation for Bison's Yacc-like parsers in C
/* Bison implementation for Yacc-like parsers in C
 
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
Copyright (C) 1984, 1989-1990, 2000-2013 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 2, or (at your option)
any later version.
the Free Software Foundation, either version 3 of the License, 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
16,9 → 15,7
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, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
along with this program. If not, see <http://www.gnu.org/licenses/>. */
 
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
47,7 → 44,7
#define YYBISON 1
 
/* Bison version. */
#define YYBISON_VERSION "2.3"
#define YYBISON_VERSION "3.0"
 
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
55,86 → 52,20
/* Pure parsers. */
#define YYPURE 0
 
/* Using locations. */
#define YYLSP_NEEDED 0
/* Push parsers. */
#define YYPUSH 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"
#line 1 "deffilep.y" /* yacc.c:339 */
/* deffilep.y - parser for .def files */
 
/* Copyright 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006,
2007, 2009 Free Software Foundation, Inc.
/* Copyright (C) 1995-2015 Free Software Foundation, Inc.
 
This file is part of GNU Binutils.
 
243,11 → 174,15
static const char *lex_parse_string_end = 0;
 
 
#line 178 "deffilep.c" /* yacc.c:339 */
 
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
# 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
257,37 → 192,113
# define YYERROR_VERBOSE 0
#endif
 
/* Enabling the token table. */
#ifndef YYTOKEN_TABLE
# define YYTOKEN_TABLE 0
/* 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
#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
#line 114 "deffilep.y"
typedef union YYSTYPE YYSTYPE;
union YYSTYPE
{
#line 113 "deffilep.y" /* yacc.c:355 */
 
char *id;
const char *id_const;
int number;
bfd_vma vma;
char *digits;
}
/* Line 193 of yacc.c. */
#line 277 "deffilep.c"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 
#line 286 "deffilep.c" /* yacc.c:355 */
};
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif
 
 
extern YYSTYPE yylval;
 
int yyparse (void);
 
#endif /* !YY_YY_DEFFILEP_H_INCLUDED */
 
/* Copy the second part of user declarations. */
 
#line 301 "deffilep.c" /* yacc.c:358 */
 
/* Line 216 of yacc.c. */
#line 290 "deffilep.c"
 
#ifdef short
# undef short
#endif
300,11 → 311,8
 
#ifdef YYTYPE_INT8
typedef YYTYPE_INT8 yytype_int8;
#elif (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
#else
typedef signed char yytype_int8;
#else
typedef short int yytype_int8;
#endif
 
#ifdef YYTYPE_UINT16
324,8 → 332,7
# define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
# define YYSIZE_T size_t
# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# elif ! defined YYSIZE_T
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# else
339,39 → 346,49
# 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
 
/* Identity function, used to suppress warnings about constant conditions. */
#ifndef lint
# define YYID(n) (n)
#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")
#else
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static int
YYID (int i)
#else
static int
YYID (i)
int i;
# define YY_INITIAL_VALUE(Value) Value
#endif
{
return i;
}
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
#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. */
389,11 → 406,11
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# ifndef _STDLIB_H
# define _STDLIB_H 1
/* Use EXIT_SUCCESS as a witness for stdlib.h. */
# ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0
# endif
# endif
# endif
401,8 → 418,8
# endif
 
# ifdef YYSTACK_ALLOC
/* Pacify GCC's `empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
/* Pacify GCC's 'empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (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
416,25 → 433,23
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
# if (defined __cplusplus && ! defined _STDLIB_H \
# if (defined __cplusplus && ! defined EXIT_SUCCESS \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# ifndef _STDLIB_H
# define _STDLIB_H 1
# ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# if ! defined malloc && ! defined EXIT_SUCCESS
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# if ! defined free && ! defined EXIT_SUCCESS
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
449,8 → 464,8
/* A type that is properly aligned for any stack member. */
union yyalloc
{
yytype_int16 yyss;
YYSTYPE yyvs;
yytype_int16 yyss_alloc;
YYSTYPE yyvs_alloc;
};
 
/* The size of the maximum gap between one aligned stack and the next. */
462,23 → 477,7
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
 
/* 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
# define YYCOPY_NEEDED 1
 
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
485,19 → 484,39
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) \
# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
do \
{ \
YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack, Stack, yysize); \
Stack = &yyptr->Stack; \
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
Stack = &yyptr->Stack_alloc; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (YYID (0))
while (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. */
509,10 → 528,11
#define YYNNTS 27
/* YYNRULES -- Number of rules. */
#define YYNRULES 99
/* YYNRULES -- Number of states. */
/* YYNSTATES -- Number of states. */
#define YYNSTATES 146
 
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 285
 
519,7 → 539,8
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
as returned by yylex, without out-of-bounds checking. */
static const yytype_uint8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
554,72 → 575,23
};
 
#if YYDEBUG
/* 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. */
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
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
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
};
#endif
 
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
#if YYDEBUG || YYERROR_VERBOSE || 0
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
634,13 → 606,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", 0
"opt_id", "NUMBER", "VMA", YY_NULL
};
#endif
 
# ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
token YYLEX-NUM. */
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
(internal) symbol number NUM (which must be that of a token). */
static const yytype_uint16 yytoknum[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
650,69 → 622,18
};
# endif
 
/* 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_NINF -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 yypact_value_is_default(Yystate) \
(!!((Yystate) == (-82)))
 
/* 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_NINF -48
 
/* 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
};
#define yytable_value_is_error(Yytable_value) \
0
 
/* 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,
732,6 → 653,28
-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[] =
{
740,11 → 683,17
-82, 101, -82, -82, -82, -5, -82
};
 
/* 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
/* 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. */
static const yytype_int16 yytable[] =
{
47, 60, 114, 54, 44, 115, 64, 48, 49, 50,
804,6 → 753,37
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)
814,22 → 794,16
#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 && yylen == 1) \
if (yychar == YYEMPTY) \
{ \
yychar = (Token); \
yylval = (Value); \
yytoken = YYTRANSLATE (yychar); \
YYPOPSTACK (1); \
YYPOPSTACK (yylen); \
yystate = *yyssp; \
goto yybackup; \
} \
else \
837,63 → 811,14
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (YYID (0))
while (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
 
906,8 → 831,14
do { \
if (yydebug) \
YYFPRINTF Args; \
} while (YYID (0))
} while (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) \
917,40 → 848,26
Type, Value); \
YYFPRINTF (stderr, "\n"); \
} \
} while (YYID (0))
} while (0)
 
 
/*--------------------------------.
| Print this symbol on YYOUTPUT. |
`--------------------------------*/
/*----------------------------------------.
| Print this symbol's value 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
switch (yytype)
{
default:
break;
YYUSE (yytype);
}
}
 
 
/*--------------------------------.
957,22 → 874,11
| 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
{
if (yytype < YYNTOKENS)
YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
else
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
YYFPRINTF (yyoutput, "%s %s (",
yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
 
yy_symbol_value_print (yyoutput, yytype, yyvaluep);
YYFPRINTF (yyoutput, ")");
983,20 → 889,15
| TOP (included). |
`------------------------------------------------------------------*/
 
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
#else
static void
yy_stack_print (bottom, top)
yytype_int16 *bottom;
yytype_int16 *top;
#endif
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
{
YYFPRINTF (stderr, "Stack now");
for (; bottom <= top; ++bottom)
YYFPRINTF (stderr, " %d", *bottom);
for (; yybottom <= yytop; yybottom++)
{
int yybot = *yybottom;
YYFPRINTF (stderr, " %d", yybot);
}
YYFPRINTF (stderr, "\n");
}
 
1004,7 → 905,7
do { \
if (yydebug) \
yy_stack_print ((Bottom), (Top)); \
} while (YYID (0))
} while (0)
 
 
/*------------------------------------------------.
1011,30 → 912,23
| 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 (YYSTYPE *yyvsp, int yyrule)
#else
static void
yy_reduce_print (yyvsp, yyrule)
YYSTYPE *yyvsp;
int yyrule;
#endif
yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
{
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++)
{
fprintf (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
YYFPRINTF (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr,
yystos[yyssp[yyi + 1 - yynrhs]],
&(yyvsp[(yyi + 1) - (yynrhs)])
);
fprintf (stderr, "\n");
YYFPRINTF (stderr, "\n");
}
}
 
1041,8 → 935,8
# define YY_REDUCE_PRINT(Rule) \
do { \
if (yydebug) \
yy_reduce_print (yyvsp, Rule); \
} while (YYID (0))
yy_reduce_print (yyssp, yyvsp, Rule); \
} while (0)
 
/* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */
1072,7 → 966,6
#endif
 
 
#if YYERROR_VERBOSE
 
# ifndef yystrlen
1080,15 → 973,8
# 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++)
1104,16 → 990,8
# 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;
1174,251 → 1052,226
}
# endif
 
/* 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];
/* 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.
 
if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
return 0;
else
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)
{
int yytype = YYTRANSLATE (yychar);
YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
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];
int yyx;
/* Number of reported tokens (one for the "unexpected", one per
"expected"). */
int yycount = 0;
 
# 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;
 
/* 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))
{
/* Start YYX at -YYN if negative to avoid negative indexes in
YYCHECK. */
YYCHECK. In other words, skip the first -YYN actions for
this state because they are default actions. */
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 yycount = 1;
int yyx;
 
yyarg[0] = yytname[yytype];
yyfmt = yystpcpy (yyformat, yyunexpected);
 
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
&& !yytable_value_is_error (yytable[yyx + yyn]))
{
if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
{
yycount = 1;
yysize = yysize0;
yyformat[sizeof yyunexpected - 1] = '\0';
break;
}
yyarg[yycount++] = yytname[yyx];
yysize1 = yysize + yytnamerr (0, yytname[yyx]);
yysize_overflow |= (yysize1 < yysize);
{
YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
if (! (yysize <= yysize1
&& yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
yysize = yysize1;
yyfmt = yystpcpy (yyfmt, yyprefix);
yyprefix = yyor;
}
}
}
}
 
yyf = YY_(yyformat);
yysize1 = yysize + yystrlen (yyf);
yysize_overflow |= (yysize1 < yysize);
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;
yysize = yysize1;
}
 
if (yysize_overflow)
return YYSIZE_MAXIMUM;
if (*yymsg_alloc < yysize)
{
*yymsg_alloc = 2 * yysize;
if (! (yysize <= *yymsg_alloc
&& *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
*yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
return 1;
}
 
if (yyresult)
{
/* 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 = yyresult;
{
char *yyp = *yymsg;
int yyi = 0;
while ((*yyp = *yyf) != '\0')
while ((*yyp = *yyformat) != '\0')
if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
{
if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
{
yyp += yytnamerr (yyp, yyarg[yyi++]);
yyf += 2;
yyformat += 2;
}
else
{
yyp++;
yyf++;
yyformat++;
}
}
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);
 
switch (yytype)
{
 
default:
break;
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
YYUSE (yytype);
YY_IGNORE_MAYBE_UNINITIALIZED_END
}
}
 
/* 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 look-ahead symbol. */
/* The lookahead symbol. */
int yychar;
 
/* The semantic value of the look-ahead symbol. */
/* The semantic value of the lookahead 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
 
/* Three stacks and their tools:
`yyss': related to states,
`yyvs': related to semantic values,
`yyls': related to locations.
/* The stacks and their tools:
'yyss': related to states.
'yyvs': related to semantic values.
 
Refer to the stacks thru separate pointers, to allow yyoverflow
Refer to the stacks through separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
 
/* The state stack. */
yytype_int16 yyssa[YYINITDEPTH];
yytype_int16 *yyss = yyssa;
yytype_int16 *yyss;
yytype_int16 *yyssp;
 
/* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH];
YYSTYPE *yyvs = yyvsa;
YYSTYPE *yyvs;
YYSTYPE *yyvsp;
 
YYSIZE_T yystacksize;
 
 
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
 
YYSIZE_T yystacksize = YYINITDEPTH;
 
int yyn;
int yyresult;
/* Lookahead token as an internal (translated) token number. */
int yytoken = 0;
/* 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;
1425,15 → 1278,6
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;
 
/*------------------------------------------------------------.
1460,7 → 1304,6
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
1468,7 → 1311,6
yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
 
&yystacksize);
 
yyss = yyss1;
1491,9 → 1333,8
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyexhaustedlab;
YYSTACK_RELOCATE (yyss);
YYSTACK_RELOCATE (yyvs);
 
YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
1504,7 → 1345,6
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
 
 
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
 
1514,6 → 1354,9
 
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
if (yystate == YYFINAL)
YYACCEPT;
 
goto yybackup;
 
/*-----------.
1522,20 → 1365,20
yybackup:
 
/* Do appropriate processing given the current state. Read a
look-ahead token if we need one and don't already have one. */
lookahead token if we need one and don't already have one. */
 
/* First try to decide what to do without reference to look-ahead token. */
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
if (yyn == YYPACT_NINF)
if (yypact_value_is_default (yyn))
goto yydefault;
 
/* Not known => get a look-ahead token if don't already have one. */
/* Not known => get a lookahead token if don't already have one. */
 
/* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
/* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
yychar = YYLEX;
yychar = yylex ();
}
 
if (yychar <= YYEOF)
1557,29 → 1400,27
yyn = yytable[yyn];
if (yyn <= 0)
{
if (yyn == 0 || yyn == YYTABLE_NINF)
if (yytable_value_is_error (yyn))
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 look-ahead token. */
/* Shift the lookahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 
/* Discard the shifted token unless it is eof. */
if (yychar != YYEOF)
/* Discard the shifted token. */
yychar = YYEMPTY;
 
yystate = yyn;
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
YY_IGNORE_MAYBE_UNINITIALIZED_END
 
goto yynewstate;
 
1602,7 → 1443,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
1616,454 → 1457,548
switch (yyn)
{
case 4:
#line 144 "deffilep.y"
{ def_image_name ((yyvsp[(2) - (3)].id), (yyvsp[(3) - (3)].vma), 0); }
#line 143 "deffilep.y" /* yacc.c:1661 */
{ def_image_name ((yyvsp[-1].id), (yyvsp[0].vma), 0); }
#line 1463 "deffilep.c" /* yacc.c:1661 */
break;
 
case 5:
#line 145 "deffilep.y"
{ def_image_name ((yyvsp[(2) - (3)].id), (yyvsp[(3) - (3)].vma), 1); }
#line 144 "deffilep.y" /* yacc.c:1661 */
{ def_image_name ((yyvsp[-1].id), (yyvsp[0].vma), 1); }
#line 1469 "deffilep.c" /* yacc.c:1661 */
break;
 
case 6:
#line 146 "deffilep.y"
{ def_description ((yyvsp[(2) - (2)].id));}
#line 145 "deffilep.y" /* yacc.c:1661 */
{ def_description ((yyvsp[0].id));}
#line 1475 "deffilep.c" /* yacc.c:1661 */
break;
 
case 7:
#line 147 "deffilep.y"
{ def_stacksize ((yyvsp[(2) - (3)].number), (yyvsp[(3) - (3)].number));}
#line 146 "deffilep.y" /* yacc.c:1661 */
{ def_stacksize ((yyvsp[-1].number), (yyvsp[0].number));}
#line 1481 "deffilep.c" /* yacc.c:1661 */
break;
 
case 8:
#line 148 "deffilep.y"
{ def_heapsize ((yyvsp[(2) - (3)].number), (yyvsp[(3) - (3)].number));}
#line 147 "deffilep.y" /* yacc.c:1661 */
{ def_heapsize ((yyvsp[-1].number), (yyvsp[0].number));}
#line 1487 "deffilep.c" /* yacc.c:1661 */
break;
 
case 9:
#line 149 "deffilep.y"
{ def_section ("CODE", (yyvsp[(2) - (2)].number));}
#line 148 "deffilep.y" /* yacc.c:1661 */
{ def_section ("CODE", (yyvsp[0].number));}
#line 1493 "deffilep.c" /* yacc.c:1661 */
break;
 
case 10:
#line 150 "deffilep.y"
{ def_section ("DATA", (yyvsp[(2) - (2)].number));}
#line 149 "deffilep.y" /* yacc.c:1661 */
{ def_section ("DATA", (yyvsp[0].number));}
#line 1499 "deffilep.c" /* yacc.c:1661 */
break;
 
case 14:
#line 154 "deffilep.y"
{ def_version ((yyvsp[(2) - (2)].number), 0);}
#line 153 "deffilep.y" /* yacc.c:1661 */
{ def_version ((yyvsp[0].number), 0);}
#line 1505 "deffilep.c" /* yacc.c:1661 */
break;
 
case 15:
#line 155 "deffilep.y"
{ def_version ((yyvsp[(2) - (4)].number), (yyvsp[(4) - (4)].number));}
#line 154 "deffilep.y" /* yacc.c:1661 */
{ def_version ((yyvsp[-2].number), (yyvsp[0].number));}
#line 1511 "deffilep.c" /* yacc.c:1661 */
break;
 
case 16:
#line 156 "deffilep.y"
{ def_directive ((yyvsp[(2) - (2)].id));}
#line 155 "deffilep.y" /* yacc.c:1661 */
{ def_directive ((yyvsp[0].id));}
#line 1517 "deffilep.c" /* yacc.c:1661 */
break;
 
case 17:
#line 157 "deffilep.y"
{ def_aligncomm ((yyvsp[(2) - (4)].id), (yyvsp[(4) - (4)].number));}
#line 156 "deffilep.y" /* yacc.c:1661 */
{ def_aligncomm ((yyvsp[-2].id), (yyvsp[0].number));}
#line 1523 "deffilep.c" /* yacc.c:1661 */
break;
 
case 21:
#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)); }
#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 */
break;
 
case 22:
#line 178 "deffilep.y"
{ (yyval.number) = (yyvsp[(1) - (3)].number) | (yyvsp[(3) - (3)].number); }
#line 177 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = (yyvsp[-2].number) | (yyvsp[0].number); }
#line 1535 "deffilep.c" /* yacc.c:1661 */
break;
 
case 23:
#line 179 "deffilep.y"
#line 178 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = 0; }
#line 1541 "deffilep.c" /* yacc.c:1661 */
break;
 
case 24:
#line 182 "deffilep.y"
#line 181 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = 1; }
#line 1547 "deffilep.c" /* yacc.c:1661 */
break;
 
case 25:
#line 183 "deffilep.y"
#line 182 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = 1; }
#line 1553 "deffilep.c" /* yacc.c:1661 */
break;
 
case 26:
#line 184 "deffilep.y"
#line 183 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = 2; }
#line 1559 "deffilep.c" /* yacc.c:1661 */
break;
 
case 27:
#line 185 "deffilep.y"
#line 184 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = 2; }
#line 1565 "deffilep.c" /* yacc.c:1661 */
break;
 
case 28:
#line 186 "deffilep.y"
#line 185 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = 4; }
#line 1571 "deffilep.c" /* yacc.c:1661 */
break;
 
case 29:
#line 187 "deffilep.y"
#line 186 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = 4; }
#line 1577 "deffilep.c" /* yacc.c:1661 */
break;
 
case 30:
#line 188 "deffilep.y"
#line 187 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = 8; }
#line 1583 "deffilep.c" /* yacc.c:1661 */
break;
 
case 31:
#line 189 "deffilep.y"
#line 188 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = 8; }
#line 1589 "deffilep.c" /* yacc.c:1661 */
break;
 
case 34:
#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)); }
#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 */
break;
 
case 35:
#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)); }
#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 */
break;
 
case 36:
#line 202 "deffilep.y"
{ def_import ((yyvsp[(1) - (6)].id), (yyvsp[(3) - (6)].id), 0, (yyvsp[(5) - (6)].id), -1, (yyvsp[(6) - (6)].id)); }
#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 */
break;
 
case 37:
#line 204 "deffilep.y"
{ def_import ((yyvsp[(1) - (6)].id), (yyvsp[(3) - (6)].id), 0, 0, (yyvsp[(5) - (6)].number), (yyvsp[(6) - (6)].id)); }
#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 */
break;
 
case 38:
#line 206 "deffilep.y"
{ def_import( 0, (yyvsp[(1) - (6)].id), (yyvsp[(3) - (6)].id), (yyvsp[(5) - (6)].id), -1, (yyvsp[(6) - (6)].id)); }
#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 */
break;
 
case 39:
#line 208 "deffilep.y"
{ def_import ( 0, (yyvsp[(1) - (4)].id), 0, (yyvsp[(3) - (4)].id), -1, (yyvsp[(4) - (4)].id)); }
#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 */
break;
 
case 42:
#line 217 "deffilep.y"
{ def_section ((yyvsp[(1) - (2)].id), (yyvsp[(2) - (2)].number));}
#line 216 "deffilep.y" /* yacc.c:1661 */
{ def_section ((yyvsp[-1].id), (yyvsp[0].number));}
#line 1631 "deffilep.c" /* yacc.c:1661 */
break;
 
case 43:
#line 218 "deffilep.y"
{ def_section_alt ((yyvsp[(1) - (2)].id), (yyvsp[(2) - (2)].id));}
#line 217 "deffilep.y" /* yacc.c:1661 */
{ def_section_alt ((yyvsp[-1].id), (yyvsp[0].id));}
#line 1637 "deffilep.c" /* yacc.c:1661 */
break;
 
case 44:
#line 222 "deffilep.y"
{ (yyval.number) = (yyvsp[(1) - (3)].number) | (yyvsp[(3) - (3)].number); }
#line 221 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = (yyvsp[-2].number) | (yyvsp[0].number); }
#line 1643 "deffilep.c" /* yacc.c:1661 */
break;
 
case 45:
#line 223 "deffilep.y"
{ (yyval.number) = (yyvsp[(1) - (1)].number); }
#line 222 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = (yyvsp[0].number); }
#line 1649 "deffilep.c" /* yacc.c:1661 */
break;
 
case 48:
#line 230 "deffilep.y"
{ (yyval.number)=(yyvsp[(2) - (2)].number);}
#line 229 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number)=(yyvsp[0].number);}
#line 1655 "deffilep.c" /* yacc.c:1661 */
break;
 
case 49:
#line 231 "deffilep.y"
#line 230 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number)=-1;}
#line 1661 "deffilep.c" /* yacc.c:1661 */
break;
 
case 50:
#line 235 "deffilep.y"
#line 234 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = 1;}
#line 1667 "deffilep.c" /* yacc.c:1661 */
break;
 
case 51:
#line 236 "deffilep.y"
#line 235 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = 2;}
#line 1673 "deffilep.c" /* yacc.c:1661 */
break;
 
case 52:
#line 237 "deffilep.y"
#line 236 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number)=4;}
#line 1679 "deffilep.c" /* yacc.c:1661 */
break;
 
case 53:
#line 238 "deffilep.y"
#line 237 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number)=8;}
#line 1685 "deffilep.c" /* yacc.c:1661 */
break;
 
case 54:
#line 242 "deffilep.y"
#line 241 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "BASE"; }
#line 1691 "deffilep.c" /* yacc.c:1661 */
break;
 
case 55:
#line 243 "deffilep.y"
#line 242 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "CODE"; }
#line 1697 "deffilep.c" /* yacc.c:1661 */
break;
 
case 56:
#line 244 "deffilep.y"
#line 243 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "CONSTANT"; }
#line 1703 "deffilep.c" /* yacc.c:1661 */
break;
 
case 57:
#line 245 "deffilep.y"
#line 244 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "constant"; }
#line 1709 "deffilep.c" /* yacc.c:1661 */
break;
 
case 58:
#line 246 "deffilep.y"
#line 245 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "DATA"; }
#line 1715 "deffilep.c" /* yacc.c:1661 */
break;
 
case 59:
#line 247 "deffilep.y"
#line 246 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "data"; }
#line 1721 "deffilep.c" /* yacc.c:1661 */
break;
 
case 60:
#line 248 "deffilep.y"
#line 247 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "DESCRIPTION"; }
#line 1727 "deffilep.c" /* yacc.c:1661 */
break;
 
case 61:
#line 249 "deffilep.y"
#line 248 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "DIRECTIVE"; }
#line 1733 "deffilep.c" /* yacc.c:1661 */
break;
 
case 62:
#line 250 "deffilep.y"
#line 249 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "EXECUTE"; }
#line 1739 "deffilep.c" /* yacc.c:1661 */
break;
 
case 63:
#line 251 "deffilep.y"
#line 250 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "EXPORTS"; }
#line 1745 "deffilep.c" /* yacc.c:1661 */
break;
 
case 64:
#line 252 "deffilep.y"
#line 251 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "HEAPSIZE"; }
#line 1751 "deffilep.c" /* yacc.c:1661 */
break;
 
case 65:
#line 253 "deffilep.y"
#line 252 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "IMPORTS"; }
#line 1757 "deffilep.c" /* yacc.c:1661 */
break;
 
case 66:
#line 260 "deffilep.y"
#line 259 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "NAME"; }
#line 1763 "deffilep.c" /* yacc.c:1661 */
break;
 
case 67:
#line 261 "deffilep.y"
#line 260 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "NONAME"; }
#line 1769 "deffilep.c" /* yacc.c:1661 */
break;
 
case 68:
#line 262 "deffilep.y"
#line 261 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "noname"; }
#line 1775 "deffilep.c" /* yacc.c:1661 */
break;
 
case 69:
#line 263 "deffilep.y"
#line 262 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "PRIVATE"; }
#line 1781 "deffilep.c" /* yacc.c:1661 */
break;
 
case 70:
#line 264 "deffilep.y"
#line 263 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "private"; }
#line 1787 "deffilep.c" /* yacc.c:1661 */
break;
 
case 71:
#line 265 "deffilep.y"
#line 264 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "READ"; }
#line 1793 "deffilep.c" /* yacc.c:1661 */
break;
 
case 72:
#line 266 "deffilep.y"
#line 265 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "SHARED"; }
#line 1799 "deffilep.c" /* yacc.c:1661 */
break;
 
case 73:
#line 267 "deffilep.y"
#line 266 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "STACKSIZE"; }
#line 1805 "deffilep.c" /* yacc.c:1661 */
break;
 
case 74:
#line 268 "deffilep.y"
#line 267 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "VERSION"; }
#line 1811 "deffilep.c" /* yacc.c:1661 */
break;
 
case 75:
#line 269 "deffilep.y"
#line 268 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id_const) = "WRITE"; }
#line 1817 "deffilep.c" /* yacc.c:1661 */
break;
 
case 76:
#line 272 "deffilep.y"
{ (yyval.id) = (yyvsp[(1) - (1)].id); }
#line 271 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id) = (yyvsp[0].id); }
#line 1823 "deffilep.c" /* yacc.c:1661 */
break;
 
case 77:
#line 274 "deffilep.y"
#line 273 "deffilep.y" /* yacc.c:1661 */
{
char *name = xmalloc (strlen ((yyvsp[(2) - (2)].id_const)) + 2);
sprintf (name, ".%s", (yyvsp[(2) - (2)].id_const));
char *name = xmalloc (strlen ((yyvsp[0].id_const)) + 2);
sprintf (name, ".%s", (yyvsp[0].id_const));
(yyval.id) = name;
}
#line 1833 "deffilep.c" /* yacc.c:1661 */
break;
 
case 78:
#line 280 "deffilep.y"
#line 279 "deffilep.y" /* yacc.c:1661 */
{
char *name = def_pool_alloc (strlen ((yyvsp[(2) - (2)].id)) + 2);
sprintf (name, ".%s", (yyvsp[(2) - (2)].id));
char *name = def_pool_alloc (strlen ((yyvsp[0].id)) + 2);
sprintf (name, ".%s", (yyvsp[0].id));
(yyval.id) = name;
}
#line 1843 "deffilep.c" /* yacc.c:1661 */
break;
 
case 79:
#line 286 "deffilep.y"
#line 285 "deffilep.y" /* yacc.c:1661 */
{
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));
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));
(yyval.id) = name;
}
#line 1853 "deffilep.c" /* yacc.c:1661 */
break;
 
case 80:
#line 292 "deffilep.y"
#line 291 "deffilep.y" /* yacc.c:1661 */
{
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));
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));
(yyval.id) = name;
}
#line 1863 "deffilep.c" /* yacc.c:1661 */
break;
 
case 81:
#line 299 "deffilep.y"
{ (yyval.id) = (yyvsp[(1) - (1)].id); }
#line 298 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id) = (yyvsp[0].id); }
#line 1869 "deffilep.c" /* yacc.c:1661 */
break;
 
case 82:
#line 300 "deffilep.y"
#line 299 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id) = ""; }
#line 1875 "deffilep.c" /* yacc.c:1661 */
break;
 
case 83:
#line 303 "deffilep.y"
{ (yyval.id) = (yyvsp[(2) - (2)].id); }
#line 302 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id) = (yyvsp[0].id); }
#line 1881 "deffilep.c" /* yacc.c:1661 */
break;
 
case 84:
#line 304 "deffilep.y"
#line 303 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id) = 0; }
#line 1887 "deffilep.c" /* yacc.c:1661 */
break;
 
case 85:
#line 308 "deffilep.y"
{ (yyval.number) = (yyvsp[(2) - (2)].number);}
#line 307 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = (yyvsp[0].number);}
#line 1893 "deffilep.c" /* yacc.c:1661 */
break;
 
case 86:
#line 309 "deffilep.y"
#line 308 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = -1;}
#line 1899 "deffilep.c" /* yacc.c:1661 */
break;
 
case 87:
#line 313 "deffilep.y"
{ (yyval.id) = (yyvsp[(2) - (2)].id); }
#line 312 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id) = (yyvsp[0].id); }
#line 1905 "deffilep.c" /* yacc.c:1661 */
break;
 
case 88:
#line 314 "deffilep.y"
#line 313 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id) = 0; }
#line 1911 "deffilep.c" /* yacc.c:1661 */
break;
 
case 89:
#line 317 "deffilep.y"
{ (yyval.vma) = (yyvsp[(3) - (3)].vma);}
#line 316 "deffilep.y" /* yacc.c:1661 */
{ (yyval.vma) = (yyvsp[0].vma);}
#line 1917 "deffilep.c" /* yacc.c:1661 */
break;
 
case 90:
#line 318 "deffilep.y"
#line 317 "deffilep.y" /* yacc.c:1661 */
{ (yyval.vma) = (bfd_vma) -1;}
#line 1923 "deffilep.c" /* yacc.c:1661 */
break;
 
case 91:
#line 321 "deffilep.y"
{ (yyval.id) = (yyvsp[(1) - (1)].id); }
#line 320 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id) = (yyvsp[0].id); }
#line 1929 "deffilep.c" /* yacc.c:1661 */
break;
 
case 92:
#line 323 "deffilep.y"
#line 322 "deffilep.y" /* yacc.c:1661 */
{
char *id = def_pool_alloc (strlen ((yyvsp[(2) - (2)].id)) + 2);
sprintf (id, ".%s", (yyvsp[(2) - (2)].id));
char *id = def_pool_alloc (strlen ((yyvsp[0].id)) + 2);
sprintf (id, ".%s", (yyvsp[0].id));
(yyval.id) = id;
}
#line 1939 "deffilep.c" /* yacc.c:1661 */
break;
 
case 93:
#line 329 "deffilep.y"
#line 328 "deffilep.y" /* yacc.c:1661 */
{
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));
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));
(yyval.id) = id;
}
#line 1949 "deffilep.c" /* yacc.c:1661 */
break;
 
case 94:
#line 336 "deffilep.y"
{ (yyval.digits) = (yyvsp[(1) - (1)].digits); }
#line 335 "deffilep.y" /* yacc.c:1661 */
{ (yyval.digits) = (yyvsp[0].digits); }
#line 1955 "deffilep.c" /* yacc.c:1661 */
break;
 
case 95:
#line 337 "deffilep.y"
#line 336 "deffilep.y" /* yacc.c:1661 */
{ (yyval.digits) = ""; }
#line 1961 "deffilep.c" /* yacc.c:1661 */
break;
 
case 96:
#line 340 "deffilep.y"
{ (yyval.id) = (yyvsp[(1) - (1)].id); }
#line 339 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id) = (yyvsp[0].id); }
#line 1967 "deffilep.c" /* yacc.c:1661 */
break;
 
case 97:
#line 341 "deffilep.y"
#line 340 "deffilep.y" /* yacc.c:1661 */
{ (yyval.id) = ""; }
#line 1973 "deffilep.c" /* yacc.c:1661 */
break;
 
case 98:
#line 344 "deffilep.y"
{ (yyval.number) = strtoul ((yyvsp[(1) - (1)].digits), 0, 0); }
#line 343 "deffilep.y" /* yacc.c:1661 */
{ (yyval.number) = strtoul ((yyvsp[0].digits), 0, 0); }
#line 1979 "deffilep.c" /* yacc.c:1661 */
break;
 
case 99:
#line 346 "deffilep.y"
{ (yyval.vma) = (bfd_vma) strtoull ((yyvsp[(1) - (1)].digits), 0, 0); }
#line 345 "deffilep.y" /* yacc.c:1661 */
{ (yyval.vma) = (bfd_vma) strtoull ((yyvsp[0].digits), 0, 0); }
#line 1985 "deffilep.c" /* yacc.c:1661 */
break;
 
 
/* Line 1267 of yacc.c. */
#line 2065 "deffilep.c"
#line 1989 "deffilep.c" /* yacc.c:1661 */
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);
2072,8 → 2007,7
 
*++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. */
 
2088,10 → 2022,14
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)
{
2099,37 → 2037,36
#if ! YYERROR_VERBOSE
yyerror (YY_("syntax error"));
#else
# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
yyssp, yytoken)
{
YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
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 yyalloc = 2 * yysize;
if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
yyalloc = YYSTACK_ALLOC_MAXIMUM;
if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg);
yymsg = (char *) YYSTACK_ALLOC (yyalloc);
if (yymsg)
yymsg_alloc = yyalloc;
else
yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
if (!yymsg)
{
yymsg = yymsgbuf;
yymsg_alloc = sizeof yymsgbuf;
yysyntax_error_status = 2;
}
}
 
if (0 < yysize && yysize <= yymsg_alloc)
else
{
(void) yysyntax_error (yymsg, yystate, yychar);
yyerror (yymsg);
yysyntax_error_status = YYSYNTAX_ERROR;
yymsgp = yymsg;
}
else
{
yyerror (YY_("syntax error"));
if (yysize != 0)
}
yyerror (yymsgp);
if (yysyntax_error_status == 2)
goto yyexhaustedlab;
}
}
# undef YYSYNTAX_ERROR
#endif
}
 
2137,7 → 2074,7
 
if (yyerrstatus == 3)
{
/* If just tried and failed to reuse look-ahead token after an
/* If just tried and failed to reuse lookahead token after an
error, discard it. */
 
if (yychar <= YYEOF)
2154,7 → 2091,7
}
}
 
/* Else will try to reuse look-ahead token after shifting the error
/* Else will try to reuse lookahead token after shifting the error
token. */
goto yyerrlab1;
 
2170,7 → 2107,7
if (/*CONSTCOND*/ 0)
goto yyerrorlab;
 
/* Do not reclaim the symbols of the rule which action triggered
/* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */
YYPOPSTACK (yylen);
yylen = 0;
2188,7 → 2125,7
for (;;)
{
yyn = yypact[yystate];
if (yyn != YYPACT_NINF)
if (!yypact_value_is_default (yyn))
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2211,10 → 2148,9
YY_STACK_PRINT (yyss, yyssp);
}
 
if (yyn == YYFINAL)
YYACCEPT;
 
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
YY_IGNORE_MAYBE_UNINITIALIZED_END
 
 
/* Shift the error token. */
2238,7 → 2174,7
yyresult = 1;
goto yyreturn;
 
#ifndef yyoverflow
#if !defined yyoverflow || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
2249,10 → 2185,15
#endif
 
yyreturn:
if (yychar != YYEOF && yychar != YYEMPTY)
if (yychar != YYEMPTY)
{
/* Make sure we have latest lookahead translation. See comments at
user semantic actions for why this is necessary. */
yytoken = YYTRANSLATE (yychar);
yydestruct ("Cleanup: discarding lookahead",
yytoken, &yylval);
/* Do not reclaim the symbols of the rule which action triggered
}
/* Do not reclaim the symbols of the rule whose action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
YY_STACK_PRINT (yyss, yyssp);
2270,14 → 2211,11
if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg);
#endif
/* Make sure YYID is used. */
return YYID (yyresult);
return yyresult;
}
#line 347 "deffilep.y" /* yacc.c:1906 */
 
 
#line 348 "deffilep.y"
 
 
/*****************************************************************************
API
*****************************************************************************/
3422,4 → 3360,3
free (p);
}
}
 
/contrib/toolchain/binutils/ld/ei386pe.c
3,7 → 3,7
 
 
 
/* Copyright 1995-2013 Free Software Foundation, Inc.
/* Copyright (C) 1995-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
56,6 → 56,7
#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
63,9 → 64,10
#include "coff/i386.h"
#include "coff/pe.h"
 
/* FIXME: This is a BFD internal header file, and we should not be
/* FIXME: These are BFD internal header files, and we should not be
using it here. */
#include "../bfd/libcoff.h"
#include "../bfd/libpei.h"
 
#include "deffile.h"
#include "pe-dll.h"
116,7 → 118,8
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 = FALSE;
static bfd_boolean insert_timestamp = TRUE;
static const char *emit_build_id;
 
#ifdef DLL_SUPPORT
static int pe_enable_stdcall_fixup = -1; /* 0=disable 1=enable. */
123,6 → 126,7
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
 
222,6 → 226,8
#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
256,6 → 262,7
{"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. */
276,7 → 283,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", no_argument, NULL, OPTION_ENABLE_AUTO_IMAGE_BASE},
{"enable-auto-image-base", optional_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},
300,6 → 307,7
{"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}
};
 
389,7 → 397,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, _(" --insert-timestamp Use a real timestamp rather than zero.\n"));
fprintf (file, _(" --[no-]insert-timestamp Use a real timestamp rather than zero (default).\n"));
fprintf (file, _(" This makes binaries non-deterministic\n"));
#ifdef DLL_SUPPORT
fprintf (file, _(" --add-stdcall-alias Export symbols with and without @nn\n"));
405,9 → 413,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 Automatically choose image base for DLLs\n unless user specifies one\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, _(" --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"));
428,6 → 436,7
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"));
}
 
 
478,7 → 487,7
/* Entry point name for arbitrary subsystem numbers. */
static const char default_entry[] = "mainCRTStartup";
 
if (link_info.shared || dll)
if (bfd_link_pic (&link_info) || dll)
{
#if defined (TARGET_IS_i386pe)
entry = "DllMainCRTStartup@12";
622,6 → 631,7
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)
695,6 → 705,9
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);
737,6 → 750,12
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;
807,7 → 826,18
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);
846,7 → 876,7
compute_dll_image_base (const char *ofile)
{
unsigned long hash = strhash (ofile);
return 0x61300000 + ((hash << 16) & 0x0FFC0000);
return pe_auto_image_base + ((hash << 16) & 0x0FFC0000);
}
#endif
 
864,9 → 894,9
 
if (!init[IMAGEBASEOFF].inited)
{
if (link_info.relocatable)
if (bfd_link_relocatable (&link_info))
init[IMAGEBASEOFF].value = 0;
else if (init[DLLOFF].value || (link_info.shared && !link_info.pie))
else if (init[DLLOFF].value || bfd_link_dll (&link_info))
{
#ifdef DLL_SUPPORT
init[IMAGEBASEOFF].value = (pe_enable_auto_image_base
882,7 → 912,7
}
 
/* Don't do any symbol assignments if this is a relocatable link. */
if (link_info.relocatable)
if (bfd_link_relocatable (&link_info))
return;
 
/* Glue the assignments into the abs section. */
1075,11 → 1105,20
if (undef->type == bfd_link_hash_undefined)
{
/* C++ symbols are *long*. */
char buf[4096];
#define BUF_SIZE 4096
char buf[BUF_SIZE];
 
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);
1161,6 → 1200,169
*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)
{
1178,11 → 1380,31
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. */
1205,11 → 1427,16
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)
{
1218,6 → 1445,7
}
}
}
}
 
pe_output_file_set_long_section_names (link_info.output_bfd);
 
1235,10 → 1463,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 (!link_info.relocatable)
if (!bfd_link_relocatable (&link_info))
pe_dll_build_sections (link_info.output_bfd, &link_info);
#else
if (link_info.shared)
if (bfd_link_pic (&link_info))
pe_dll_build_sections (link_info.output_bfd, &link_info);
else
pe_exe_build_sections (link_info.output_bfd, &link_info);
1658,7 → 1886,7
 
/* def_file_print (stdout, pe_def_file); */
if (pe_def_file->is_dll == 1)
link_info.shared = 1;
link_info.type = type_dll;
 
if (pe_def_file->base_address != (bfd_vma)(-1))
{
1767,9 → 1995,10
finish_default ();
 
#ifdef DLL_SUPPORT
if (link_info.shared
if (bfd_link_pic (&link_info)
#if !defined(TARGET_IS_shpe)
|| (!link_info.relocatable && pe_def_file->num_exports != 0)
|| (!bfd_link_relocatable (&link_info)
&& pe_def_file->num_exports != 0)
#endif
)
{
1828,7 → 2057,7
lang_statement_union_type **pl;
 
/* Look through the script to see where to place this section. */
if (!link_info.relocatable
if (!bfd_link_relocatable (&link_info)
&& (dollar = strchr (secname, '$')) != NULL)
{
size_t len = dollar - secname;
1910,6 → 2139,8
struct orphan_save *place;
lang_output_section_statement_type *after;
etree_type *address;
flagword flags;
asection *nexts;
 
if (!orphan_init_done)
{
1927,14 → 2158,26
/* 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 ((s->flags & SEC_ALLOC) == 0)
if ((flags & SEC_ALLOC) == 0)
;
else if ((s->flags & (SEC_LOAD | SEC_HAS_CONTENTS)) == 0)
else if ((flags & (SEC_LOAD | SEC_HAS_CONTENTS)) == 0)
place = &hold[orphan_bss];
else if ((s->flags & SEC_READONLY) == 0)
else if ((flags & SEC_READONLY) == 0)
place = &hold[orphan_data];
else if ((s->flags & SEC_CODE) == 0)
else if ((flags & SEC_CODE) == 0)
{
place = (!strncmp (secname, ".idata$", 7) ? &hold[orphan_idata]
: &hold[orphan_rodata]);
1949,7 → 2192,8
place->os = lang_output_section_find (place->name);
after = place->os;
if (after == NULL)
after = lang_output_section_find_by_flags (s, &place->os, NULL);
after = lang_output_section_find_by_flags (s, flags, &place->os,
NULL);
if (after == NULL)
/* *ABS* is always the first output section statement. */
after = (&lang_output_section_statement.head
1962,7 → 2206,7
address = exp_unop (ALIGN_K, exp_nameop (NAME, "__section_alignment__"));
os = lang_insert_orphan (s, secname, constraint, after, place, address,
&add_child);
if (link_info.relocatable)
if (bfd_link_relocatable (&link_info))
{
os->section_alignment = s->alignment_power;
os->bfd_section->alignment_power = s->alignment_power;
2039,7 → 2283,7
unsigned int i;
 
 
if (! entry->flags.maybe_archive)
if (! entry->flags.maybe_archive || entry->flags.full_name_provided)
return FALSE;
 
filename = entry->filename;
2112,11 → 2356,15
{
*isfile = 0;
 
if (link_info.relocatable && config.build_constructors)
if (bfd_link_relocatable (&link_info) && 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(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\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\
SECTIONS\n\
{\n\
.text :\n\
2134,12 → 2382,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"
" *(.jcr)\n\
*(.data2)\n\
KEEP(*(.jcr))\n\
}\n\
.rdata :\n\
{\n\
2148,11 → 2396,11
}\n\
.eh_frame :\n\
{\n\
*(.eh_frame*)\n\
KEEP(*(.eh_frame*))\n\
}\n\
.pdata :\n\
{\n\
*(.pdata)\n\
KEEP(*(.pdata))\n\
}\n\
.bss :\n\
{\n\
2159,12 → 2407,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\
2184,14 → 2432,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\
.endjunk :\n\
.rsrc : SUBALIGN(4)\n\
{\n\
/* end is deprecated, don't use it */\n"
" }\n\
.rsrc :\n\
{\n\
*(.rsrc)\n\
}\n\
.reloc :\n\
2209,12 → 2457,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\
2352,10 → 2600,14
*(.zdebug_types)\n\
}\n\
}\n\n"
; else if (link_info.relocatable) return
; else if (bfd_link_relocatable (&link_info)) 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(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\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\
SECTIONS\n\
{\n\
.text :\n\
2373,21 → 2625,21
.data :\n\
{\n\
*(.data)\n\
*(.data2)\n\
*(.jcr)\n\
*(.data2)\n"
" KEEP(*(.jcr))\n\
}\n\
.rdata :\n\
{\n"
" *(.rdata)\n\
{\n\
*(.rdata)\n\
*(.rdata_runtime_pseudo_reloc)\n\
}\n\
.eh_frame :\n\
{\n\
*(.eh_frame*)\n\
KEEP(*(.eh_frame*))\n\
}\n\
.pdata :\n\
{\n\
*(.pdata)\n\
KEEP(*(.pdata))\n\
}\n\
.bss :\n\
{\n\
2398,12 → 2650,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\
2423,12 → 2675,12
}\n\
.endjunk :\n\
{\n\
/* end is deprecated, don't use it */\n\
/* end is deprecated, don't use it */\n"
" }\n\
.rsrc : SUBALIGN(4)\n\
{\n\
*(.rsrc)\n\
}\n\
.rsrc :\n\
{\n\
*(.rsrc)\n"
" }\n\
.reloc :\n\
{\n\
*(.reloc)\n\
2448,12 → 2700,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\
2589,8 → 2841,12
}\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(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\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\
SECTIONS\n\
{\n\
/* Make the virtual address and file offset synced if the alignment is\n\
2599,7 → 2855,7
. = ALIGN(__section_alignment__);\n\
.text __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) :\n\
{\n\
*(.init)\n\
KEEP(*(.init))\n\
*(.text)\n\
*(SORT(.text$*))\n\
*(.text.*)\n\
2608,12 → 2864,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\
2628,17 → 2884,17
*(.data)\n\
*(.data2)\n\
*(SORT(.data$*))\n\
*(.jcr)\n\
KEEP(*(.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\
2647,11 → 2903,11
__RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;\n\
.eh_frame BLOCK(__section_alignment__) :\n\
{\n\
*(.eh_frame*)\n\
KEEP(*(.eh_frame*))\n\
}\n\
.pdata BLOCK(__section_alignment__) :\n\
{\n\
*(.pdata)\n\
KEEP(*(.pdata))\n\
}\n\
.bss BLOCK(__section_alignment__) :\n\
{\n\
2658,12 → 2914,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\
2677,33 → 2933,33
{\n\
/* This cannot currently be handled with grouped sections.\n\
See pe.em:sort_sections. */\n\
SORT(*)(.idata$2)\n\
SORT(*)(.idata$3)\n\
KEEP (SORT(*)(.idata$2))\n\
KEEP (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\
SORT(*)(.idata$4)\n\
KEEP (SORT(*)(.idata$4))\n\
__IAT_start__ = .;\n\
SORT(*)(.idata$5)\n\
__IAT_end__ = .;\n\
SORT(*)(.idata$6)\n\
SORT(*)(.idata$7)\n\
}\n"
" .CRT BLOCK(__section_alignment__) :\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\
{\n\
___crt_xc_start__ = . ;\n\
*(SORT(.CRT$XC*)) /* C initialization */\n\
KEEP (*(SORT(.CRT$XC*))) /* C initialization */\n\
___crt_xc_end__ = . ;\n\
___crt_xi_start__ = . ;\n\
*(SORT(.CRT$XI*)) /* C++ initialization */\n\
KEEP (*(SORT(.CRT$XI*))) /* C++ initialization */\n\
___crt_xi_end__ = . ;\n\
___crt_xl_start__ = . ;\n\
*(SORT(.CRT$XL*)) /* TLS callbacks */\n\
KEEP (*(SORT(.CRT$XL*))) /* TLS callbacks */\n\
/* ___crt_xl_end__ is defined in the TLS Directory support code */\n\
___crt_xp_start__ = . ;\n\
*(SORT(.CRT$XP*)) /* Pre-termination */\n\
KEEP (*(SORT(.CRT$XP*))) /* Pre-termination */\n\
___crt_xp_end__ = . ;\n\
___crt_xt_start__ = . ;\n\
*(SORT(.CRT$XT*)) /* Termination */\n\
KEEP (*(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\
2713,11 → 2969,11
.tls BLOCK(__section_alignment__) :\n\
{\n\
___tls_start__ = . ;\n\
*(.tls$AAA)\n\
*(.tls)\n\
*(.tls$)\n\
*(SORT(.tls$*))\n\
*(.tls$ZZZ)\n\
KEEP (*(.tls$AAA))\n\
KEEP (*(.tls))\n\
KEEP (*(.tls$))\n\
KEEP (*(SORT(.tls$*)))\n\
KEEP (*(.tls$ZZZ))\n\
___tls_end__ = . ;\n\
}\n\
.endjunk BLOCK(__section_alignment__) :\n\
2727,10 → 2983,10
PROVIDE ( _end = .);\n\
__end__ = .;\n\
}\n\
.rsrc BLOCK(__section_alignment__) :\n\
.rsrc BLOCK(__section_alignment__) : SUBALIGN(4)\n\
{\n\
*(.rsrc)\n\
*(SORT(.rsrc$*))\n\
KEEP (*(.rsrc))\n\
KEEP (*(.rsrc$*))\n\
}\n\
.reloc BLOCK(__section_alignment__) :\n\
{\n\
2892,8 → 3148,12
}\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(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\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\
SECTIONS\n\
{\n\
/* Make the virtual address and file offset synced if the alignment is\n\
2902,7 → 3162,7
. = ALIGN(__section_alignment__);\n\
.text __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) :\n\
{\n\
*(.init)\n\
KEEP(*(.init))\n\
*(.text)\n\
*(SORT(.text$*))\n\
*(.text.*)\n\
2911,12 → 3171,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\
2931,17 → 3191,17
*(.data)\n\
*(.data2)\n\
*(SORT(.data$*))\n\
*(.jcr)\n\
KEEP(*(.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\
2950,11 → 3210,11
__RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;\n\
.eh_frame BLOCK(__section_alignment__) :\n\
{\n\
*(.eh_frame*)\n\
KEEP(*(.eh_frame*))\n\
}\n\
.pdata BLOCK(__section_alignment__) :\n\
{\n\
*(.pdata)\n\
KEEP(*(.pdata))\n\
}\n\
.bss BLOCK(__section_alignment__) :\n\
{\n\
2961,12 → 3221,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\
2980,33 → 3240,33
{\n\
/* This cannot currently be handled with grouped sections.\n\
See pe.em:sort_sections. */\n\
SORT(*)(.idata$2)\n\
SORT(*)(.idata$3)\n\
KEEP (SORT(*)(.idata$2))\n\
KEEP (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\
SORT(*)(.idata$4)\n\
KEEP (SORT(*)(.idata$4))\n\
__IAT_start__ = .;\n\
SORT(*)(.idata$5)\n\
__IAT_end__ = .;\n\
SORT(*)(.idata$6)\n\
SORT(*)(.idata$7)\n\
}\n"
" .CRT BLOCK(__section_alignment__) :\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\
{\n\
___crt_xc_start__ = . ;\n\
*(SORT(.CRT$XC*)) /* C initialization */\n\
KEEP (*(SORT(.CRT$XC*))) /* C initialization */\n\
___crt_xc_end__ = . ;\n\
___crt_xi_start__ = . ;\n\
*(SORT(.CRT$XI*)) /* C++ initialization */\n\
KEEP (*(SORT(.CRT$XI*))) /* C++ initialization */\n\
___crt_xi_end__ = . ;\n\
___crt_xl_start__ = . ;\n\
*(SORT(.CRT$XL*)) /* TLS callbacks */\n\
KEEP (*(SORT(.CRT$XL*))) /* TLS callbacks */\n\
/* ___crt_xl_end__ is defined in the TLS Directory support code */\n\
___crt_xp_start__ = . ;\n\
*(SORT(.CRT$XP*)) /* Pre-termination */\n\
KEEP (*(SORT(.CRT$XP*))) /* Pre-termination */\n\
___crt_xp_end__ = . ;\n\
___crt_xt_start__ = . ;\n\
*(SORT(.CRT$XT*)) /* Termination */\n\
KEEP (*(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\
3016,11 → 3276,11
.tls BLOCK(__section_alignment__) :\n\
{\n\
___tls_start__ = . ;\n\
*(.tls$AAA)\n\
*(.tls)\n\
*(.tls$)\n\
*(SORT(.tls$*))\n\
*(.tls$ZZZ)\n\
KEEP (*(.tls$AAA))\n\
KEEP (*(.tls))\n\
KEEP (*(.tls$))\n\
KEEP (*(SORT(.tls$*)))\n\
KEEP (*(.tls$ZZZ))\n\
___tls_end__ = . ;\n\
}\n\
.endjunk BLOCK(__section_alignment__) :\n\
3030,10 → 3290,10
PROVIDE ( _end = .);\n\
__end__ = .;\n\
}\n\
.rsrc BLOCK(__section_alignment__) :\n\
.rsrc BLOCK(__section_alignment__) : SUBALIGN(4)\n\
{\n\
*(.rsrc)\n\
*(SORT(.rsrc$*))\n\
KEEP (*(.rsrc))\n\
KEEP (*(.rsrc$*))\n\
}\n\
.reloc BLOCK(__section_alignment__) :\n\
{\n\
3195,8 → 3455,12
}\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(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\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\
SECTIONS\n\
{\n\
/* Make the virtual address and file offset synced if the alignment is\n\
3205,7 → 3469,7
. = ALIGN(__section_alignment__);\n\
.text __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) :\n\
{\n\
*(.init)\n\
KEEP(*(.init))\n\
*(.text)\n\
*(SORT(.text$*))\n\
*(.text.*)\n\
3214,12 → 3478,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\
3236,15 → 3500,15
*(SORT(.data$*))\n\
*(.rdata)\n\
*(SORT(.rdata$*))\n\
*(.jcr)\n\
KEEP(*(.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\
3253,11 → 3517,11
__RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;\n\
.eh_frame BLOCK(__section_alignment__) :\n\
{\n\
*(.eh_frame*)\n\
KEEP(*(.eh_frame*))\n\
}\n\
.pdata BLOCK(__section_alignment__) :\n\
{\n\
*(.pdata)\n\
KEEP(*(.pdata))\n\
}\n\
.bss BLOCK(__section_alignment__) :\n\
{\n\
3264,12 → 3528,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\
3283,33 → 3547,33
{\n\
/* This cannot currently be handled with grouped sections.\n\
See pe.em:sort_sections. */\n\
SORT(*)(.idata$2)\n\
SORT(*)(.idata$3)\n\
KEEP (SORT(*)(.idata$2))\n\
KEEP (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\
SORT(*)(.idata$4)\n\
KEEP (SORT(*)(.idata$4))\n\
__IAT_start__ = .;\n\
SORT(*)(.idata$5)\n\
__IAT_end__ = .;\n\
SORT(*)(.idata$6)\n\
SORT(*)(.idata$7)\n\
}\n"
" .CRT BLOCK(__section_alignment__) :\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\
{\n\
___crt_xc_start__ = . ;\n\
*(SORT(.CRT$XC*)) /* C initialization */\n\
KEEP (*(SORT(.CRT$XC*))) /* C initialization */\n\
___crt_xc_end__ = . ;\n\
___crt_xi_start__ = . ;\n\
*(SORT(.CRT$XI*)) /* C++ initialization */\n\
KEEP (*(SORT(.CRT$XI*))) /* C++ initialization */\n\
___crt_xi_end__ = . ;\n\
___crt_xl_start__ = . ;\n\
*(SORT(.CRT$XL*)) /* TLS callbacks */\n\
KEEP (*(SORT(.CRT$XL*))) /* TLS callbacks */\n\
/* ___crt_xl_end__ is defined in the TLS Directory support code */\n\
___crt_xp_start__ = . ;\n\
*(SORT(.CRT$XP*)) /* Pre-termination */\n\
KEEP (*(SORT(.CRT$XP*))) /* Pre-termination */\n\
___crt_xp_end__ = . ;\n\
___crt_xt_start__ = . ;\n\
*(SORT(.CRT$XT*)) /* Termination */\n\
KEEP (*(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\
3319,11 → 3583,11
.tls BLOCK(__section_alignment__) :\n\
{\n\
___tls_start__ = . ;\n\
*(.tls$AAA)\n\
*(.tls)\n\
*(.tls$)\n\
*(SORT(.tls$*))\n\
*(.tls$ZZZ)\n\
KEEP (*(.tls$AAA))\n\
KEEP (*(.tls))\n\
KEEP (*(.tls$))\n\
KEEP (*(SORT(.tls$*)))\n\
KEEP (*(.tls$ZZZ))\n\
___tls_end__ = . ;\n\
}\n\
.endjunk BLOCK(__section_alignment__) :\n\
3333,10 → 3597,10
PROVIDE ( _end = .);\n\
__end__ = .;\n\
}\n\
.rsrc BLOCK(__section_alignment__) :\n\
.rsrc BLOCK(__section_alignment__) : SUBALIGN(4)\n\
{\n\
*(.rsrc)\n\
*(SORT(.rsrc$*))\n\
KEEP (*(.rsrc))\n\
KEEP (*(.rsrc$*))\n\
}\n\
.reloc BLOCK(__section_alignment__) :\n\
{\n\
3498,8 → 3762,12
}\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(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\");\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\
SECTIONS\n\
{\n\
/* Make the virtual address and file offset synced if the alignment is\n\
3508,7 → 3776,7
. = ALIGN(__section_alignment__);\n\
.text __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) :\n\
{\n\
*(.init)\n\
KEEP(*(.init))\n\
*(.text)\n\
*(SORT(.text$*))\n\
*(.text.*)\n\
3517,12 → 3785,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\
3537,17 → 3805,17
*(.data)\n\
*(.data2)\n\
*(SORT(.data$*))\n\
*(.jcr)\n\
KEEP(*(.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\
3556,11 → 3824,11
__RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;\n\
.eh_frame BLOCK(__section_alignment__) :\n\
{\n\
*(.eh_frame*)\n\
KEEP(*(.eh_frame*))\n\
}\n\
.pdata BLOCK(__section_alignment__) :\n\
{\n\
*(.pdata)\n\
KEEP(*(.pdata))\n\
}\n\
.bss BLOCK(__section_alignment__) :\n\
{\n\
3567,12 → 3835,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\
3586,33 → 3854,33
{\n\
/* This cannot currently be handled with grouped sections.\n\
See pe.em:sort_sections. */\n\
SORT(*)(.idata$2)\n\
SORT(*)(.idata$3)\n\
KEEP (SORT(*)(.idata$2))\n\
KEEP (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\
SORT(*)(.idata$4)\n\
KEEP (SORT(*)(.idata$4))\n\
__IAT_start__ = .;\n\
SORT(*)(.idata$5)\n\
__IAT_end__ = .;\n\
SORT(*)(.idata$6)\n\
SORT(*)(.idata$7)\n\
}\n"
" .CRT BLOCK(__section_alignment__) :\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\
{\n\
___crt_xc_start__ = . ;\n\
*(SORT(.CRT$XC*)) /* C initialization */\n\
KEEP (*(SORT(.CRT$XC*))) /* C initialization */\n\
___crt_xc_end__ = . ;\n\
___crt_xi_start__ = . ;\n\
*(SORT(.CRT$XI*)) /* C++ initialization */\n\
KEEP (*(SORT(.CRT$XI*))) /* C++ initialization */\n\
___crt_xi_end__ = . ;\n\
___crt_xl_start__ = . ;\n\
*(SORT(.CRT$XL*)) /* TLS callbacks */\n\
KEEP (*(SORT(.CRT$XL*))) /* TLS callbacks */\n\
/* ___crt_xl_end__ is defined in the TLS Directory support code */\n\
___crt_xp_start__ = . ;\n\
*(SORT(.CRT$XP*)) /* Pre-termination */\n\
KEEP (*(SORT(.CRT$XP*))) /* Pre-termination */\n\
___crt_xp_end__ = . ;\n\
___crt_xt_start__ = . ;\n\
*(SORT(.CRT$XT*)) /* Termination */\n\
KEEP (*(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\
3622,11 → 3890,11
.tls BLOCK(__section_alignment__) :\n\
{\n\
___tls_start__ = . ;\n\
*(.tls$AAA)\n\
*(.tls)\n\
*(.tls$)\n\
*(SORT(.tls$*))\n\
*(.tls$ZZZ)\n\
KEEP (*(.tls$AAA))\n\
KEEP (*(.tls))\n\
KEEP (*(.tls$))\n\
KEEP (*(SORT(.tls$*)))\n\
KEEP (*(.tls$ZZZ))\n\
___tls_end__ = . ;\n\
}\n\
.endjunk BLOCK(__section_alignment__) :\n\
3636,10 → 3904,10
PROVIDE ( _end = .);\n\
__end__ = .;\n\
}\n\
.rsrc BLOCK(__section_alignment__) :\n\
.rsrc BLOCK(__section_alignment__) : SUBALIGN(4)\n\
{\n\
*(.rsrc)\n\
*(SORT(.rsrc$*))\n\
KEEP (*(.rsrc))\n\
KEEP (*(.rsrc$*))\n\
}\n\
.reloc BLOCK(__section_alignment__) :\n\
{\n\
3828,5 → 4096,6
gld_i386pe_list_options,
gld_i386pe_recognized_file,
gld_i386pe_find_potential_libraries,
NULL /* new_vers_pattern. */
NULL, /* new_vers_pattern. */
NULL /* extra_map_file_text. */
};
/contrib/toolchain/binutils/ld/ld.h
1,7 → 1,5
/* ld.h -- general linker header file
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.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
104,23 → 102,6
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)
180,6 → 161,9
/* 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;
 
223,6 → 207,25
 
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;
245,6 → 248,9
/* 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/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 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 ldbuildid.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/ld.sh
1,6 → 1,7
#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/ldbuildid.c
0,0 → 1,158
/* ldbuildid.c - Build Id support routines
Copyright (C) 2013-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
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.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
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, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
#include "sysdep.h"
#include "bfd.h"
#include "safe-ctype.h"
#include "md5.h"
#include "sha1.h"
#include "ldbuildid.h"
 
#define streq(a,b) strcmp ((a), (b)) == 0
#define strneq(a,b,n) strncmp ((a), (b), (n)) == 0
 
bfd_boolean
validate_build_id_style (const char *style)
{
if ((streq (style, "md5")) || (streq (style, "sha1"))
#ifndef __MINGW32__
|| (streq (style, "uuid"))
#endif
|| (strneq (style, "0x", 2)))
return TRUE;
 
return FALSE;
}
 
bfd_size_type
compute_build_id_size (const char *style)
{
if (streq (style, "md5") || streq (style, "uuid"))
return 128 / 8;
 
if (streq (style, "sha1"))
return 160 / 8;
 
if (strneq (style, "0x", 2))
{
bfd_size_type size = 0;
/* ID is in string form (hex). Count the bytes. */
const char *id = style + 2;
 
do
{
if (ISXDIGIT (id[0]) && ISXDIGIT (id[1]))
{
++size;
id += 2;
}
else if (*id == '-' || *id == ':')
++id;
else
{
size = 0;
break;
}
} while (*id != '\0');
return size;
}
 
return 0;
}
 
static unsigned char
read_hex (const char xdigit)
{
if (ISDIGIT (xdigit))
return xdigit - '0';
 
if (ISUPPER (xdigit))
return xdigit - 'A' + 0xa;
 
if (ISLOWER (xdigit))
return xdigit - 'a' + 0xa;
 
abort ();
return 0;
}
 
bfd_boolean
generate_build_id (bfd *abfd,
const char *style,
checksum_fn checksum_contents,
unsigned char *id_bits,
int size ATTRIBUTE_UNUSED)
{
if (streq (style, "md5"))
{
struct md5_ctx ctx;
 
md5_init_ctx (&ctx);
if (!(*checksum_contents) (abfd, (sum_fn) &md5_process_bytes, &ctx))
return FALSE;
md5_finish_ctx (&ctx, id_bits);
}
else if (streq (style, "sha1"))
{
struct sha1_ctx ctx;
 
sha1_init_ctx (&ctx);
if (!(*checksum_contents) (abfd, (sum_fn) &sha1_process_bytes, &ctx))
return FALSE;
sha1_finish_ctx (&ctx, id_bits);
}
#ifndef __MINGW32__
else if (streq (style, "uuid"))
{
int n;
int fd = open ("/dev/urandom", O_RDONLY);
 
if (fd < 0)
return FALSE;
n = read (fd, id_bits, size);
close (fd);
if (n < size)
return FALSE;
}
#endif
else if (strneq (style, "0x", 2))
{
/* ID is in string form (hex). Convert to bits. */
const char *id = style + 2;
size_t n = 0;
 
do
{
if (ISXDIGIT (id[0]) && ISXDIGIT (id[1]))
{
id_bits[n] = read_hex (*id++) << 4;
id_bits[n++] |= read_hex (*id++);
}
else if (*id == '-' || *id == ':')
++id;
else
abort (); /* Should have been validated earlier. */
} while (*id != '\0');
}
else
abort (); /* Should have been validated earlier. */
 
return TRUE;
}
/contrib/toolchain/binutils/ld/ldbuildid.h
0,0 → 1,39
/* ldbuildid.h -
Copyright (C) 2013-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
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.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
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, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
#ifndef LDBUILDID_H
#define LDBUILDID_H
 
extern bfd_boolean
validate_build_id_style (const char *);
 
extern bfd_size_type
compute_build_id_size (const char *);
 
typedef void (*sum_fn) (const void *, size_t, void *);
 
typedef bfd_boolean (*checksum_fn) (bfd *,
void (*) (const void *, size_t, void *),
void *);
 
extern bfd_boolean
generate_build_id (bfd *, const char *, checksum_fn, unsigned char *, int);
 
#endif /* LDBUILDID_H */
/contrib/toolchain/binutils/ld/ldcref.c
1,5 → 1,5
/* ldcref.c -- output a cross reference table
Copyright 1996-2013 Free Software Foundation, Inc.
Copyright (C) 1996-2015 Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@cygnus.com>
 
This file is part of the GNU Binutils.
40,7 → 40,8
/* 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. */
55,7 → 56,8
 
/* 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;
65,7 → 67,8
 
/* This is what the hash table looks like. */
 
struct cref_hash_table {
struct cref_hash_table
{
struct bfd_hash_table root;
};
 
348,7 → 351,10
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. */
426,8 → 432,16
}
}
 
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,7 → 1,5
/* ldctor.c -- constructor support routines
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.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
By Steve Chamberlain <sac@cygnus.com>
 
This file is part of the GNU Binutils.
276,7 → 274,7
howto = bfd_reloc_type_lookup (link_info.output_bfd, p->reloc);
if (howto == NULL)
{
if (link_info.relocatable)
if (bfd_link_relocatable (&link_info))
{
einfo (_("%P%X: %s does not support reloc %s for set %s\n"),
bfd_get_target (link_info.output_bfd),
364,7 → 362,7
if (! bfd_is_abs_section (e->section))
e->section->flags |= SEC_KEEP;
 
if (link_info.relocatable)
if (bfd_link_relocatable (&link_info))
lang_add_reloc (p->reloc, howto, e->section, e->name,
exp_intop (e->value));
else
/contrib/toolchain/binutils/ld/ldctor.h
1,6 → 1,5
/* ldctor.h - linker constructor support
Copyright 1991, 1992, 1993, 1994, 1995, 1998, 2000, 2002, 2003, 2005,
2007, 2008 Free Software Foundation, Inc.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
/contrib/toolchain/binutils/ld/ldemul.c
1,7 → 1,5
/* ldemul.c -- clearing house for ld emulation states
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.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
207,7 → 205,7
after_parse_default (void)
{
if (entry_symbol.name != NULL
&& (link_info.executable || entry_from_cmdline))
&& (bfd_link_executable (&link_info) || entry_from_cmdline))
{
bfd_boolean is_vma = FALSE;
 
237,7 → 235,7
void
before_allocation_default (void)
{
if (!link_info.relocatable)
if (!bfd_link_relocatable (&link_info))
strip_excluded_output_sections ();
}
 
244,7 → 242,7
void
finish_default (void)
{
if (!link_info.relocatable)
if (!bfd_link_relocatable (&link_info))
_bfd_fix_excluded_sec_syms (link_info.output_bfd, &link_info);
}
 
350,3 → 348,10
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,7 → 1,5
/* ld-emul.h - Linker emulation header file
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001,
2002, 2003, 2004, 2005, 2007, 2008
Free Software Foundation, Inc.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
96,6 → 94,8
(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,6 → 196,11
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 1991-2013 Free Software Foundation, Inc.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Written by Steve Chamberlain of Cygnus Support <sac@cygnus.com>.
 
This file is part of the GNU Binutils.
48,6 → 48,31
 
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. */
 
161,6 → 186,7
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
236,8 → 262,7
{
asection *s = expld.section;
 
if (s == bfd_abs_section_ptr && expld.phase == lang_final_phase_enum)
s = section_for_dot ();
expld.rel_from_abs = TRUE;
expld.result.valid_p = TRUE;
expld.result.value = value - s->vma;
expld.result.str = NULL;
244,6 → 269,79
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)
{
494,7 → 592,6
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;
507,7 → 604,10
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;
575,13 → 675,10
break;
 
case DEFINED:
if (expld.phase == lang_first_phase_enum)
lang_track_definedness (tree->name.name);
else
if (expld.phase != lang_first_phase_enum)
{
struct bfd_link_hash_entry *h;
int def_iteration
= lang_symbol_definition_iteration (tree->name.name);
struct definedness_hash_entry *def;
 
h = bfd_wrapped_link_hash_lookup (link_info.output_bfd,
&link_info,
591,8 → 688,9
&& (h->type == bfd_link_hash_defined
|| h->type == bfd_link_hash_defweak
|| h->type == bfd_link_hash_common)
&& (def_iteration == lang_statement_iteration
|| def_iteration == -1));
&& ((def = symbol_defined (tree->name.name)) == NULL
|| def->by_object
|| def->iteration == (lang_statement_iteration & 1)));
}
break;
 
599,7 → 697,24
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)
732,6 → 847,8
 
case LENGTH:
{
if (expld.phase != lang_first_phase_enum)
{
lang_memory_region_type *mem;
 
mem = lang_memory_region_lookup (tree->name.name, FALSE);
742,6 → 859,7
" referenced in expression\n"),
tree, tree->name.name);
}
}
break;
 
case ORIGIN:
775,7 → 893,107
}
}
 
/* 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)
839,6 → 1057,25
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)
887,12 → 1124,16
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_common))
|| !(h->type == bfd_link_hash_new
|| h->type == bfd_link_hash_undefined
|| h->type == bfd_link_hash_undefweak
|| h->linker_def))
{
/* Do nothing. The symbol was never referenced, or was
defined by some object. */
/* 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. */
break;
}
}
924,32 → 1165,48
tree->assign.dst);
}
 
/* FIXME: Should we worry if the symbol is already
defined? */
lang_update_definedness (tree->assign.dst, h);
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;
if (expld.result.section == NULL)
expld.result.section = expld.section;
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. This could be more general
(e.g. a ?: operator with NAMEs in each branch). */
one symbol to another. Also, handle the case of a foldable
ternary conditional with names on either side. */
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)
{
struct bfd_link_hash_entry *hsrc;
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);
 
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);
if (!expld.result.value
&& tree->assign.src->trinary.rhs->type.node_class
== etree_name)
try_copy_symbol_type (h, tree->assign.src->trinary.rhs);
}
}
}
else if (expld.phase == lang_final_phase_enum)
{
h = bfd_link_hash_lookup (link_info.hash, tree->assign.dst,
976,6 → 1233,7
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;
985,6 → 1243,7
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;
1355,3 → 1614,51
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,6 → 1,5
/* ldexp.h -
Copyright 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, 2002,
2003, 2004, 2005, 2007, 2011, 2012 Free Software Foundation, Inc.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
139,6 → 138,14
 
/* 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
157,7 → 164,7
struct {
enum phase_enum phase;
 
bfd_vma base, min_base, relro_end, end, pagesize, maxpagesize;
bfd_vma base, relro_offset, relro_end, end, pagesize, maxpagesize;
 
enum relro_enum relro;
 
222,5 → 229,8
(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.c
1,7 → 1,5
/* Linker file opening and searching.
Copyright 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, 2002,
2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
144,6 → 142,14
/* 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
303,22 → 309,10
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 (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);
}
}
if (link_info.lto_plugin_active
&& !no_more_claiming
&& bfd_check_format (entry->the_bfd, bfd_object))
plugin_maybe_claim (entry);
#endif /* ENABLE_PLUGINS */
 
/* It opened OK, the format checked out, and the plugins have had
363,13 → 357,13
{
char *string;
 
if (entry->flags.dynamic && ! link_info.relocatable)
if (entry->flags.dynamic && !bfd_link_relocatable (&link_info))
{
if (ldemul_open_dynamic_archive (arch, search, entry))
return TRUE;
}
 
if (entry->flags.maybe_archive)
if (entry->flags.maybe_archive && !entry->flags.full_name_provided)
string = concat (search->name, slash, lib, entry->filename,
arch, suffix, (const char *) NULL);
else
/contrib/toolchain/binutils/ld/ldfile.h
1,6 → 1,5
/* ldfile.h -
Copyright 1991, 1992, 1993, 1994, 1995, 2000, 2002, 2003, 2004, 2005,
2007, 2012 Free Software Foundation, Inc.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
/contrib/toolchain/binutils/ld/ldgram.c
1,14 → 1,13
/* A Bison parser, made by GNU Bison 2.3. */
/* A Bison parser, made by GNU Bison 3.0. */
 
/* Skeleton implementation for Bison's Yacc-like parsers in C
/* Bison implementation for Yacc-like parsers in C
 
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
Copyright (C) 1984, 1989-1990, 2000-2013 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 2, or (at your option)
any later version.
the Free Software Foundation, either version 3 of the License, 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
16,9 → 15,7
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, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
along with this program. If not, see <http://www.gnu.org/licenses/>. */
 
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
47,7 → 44,7
#define YYBISON 1
 
/* Bison version. */
#define YYBISON_VERSION "2.3"
#define YYBISON_VERSION "3.0"
 
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
55,36 → 52,109
/* Pure parsers. */
#define YYPURE 0
 
/* Using locations. */
#define YYLSP_NEEDED 0
/* Push parsers. */
#define YYPUSH 0
 
/* Pull parsers. */
#define YYPULL 1
 
 
/* Tokens. */
 
 
/* 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. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
/* Put the tokens into the symbol table, so that GDB and other debuggers
know about them. */
enum yytokentype {
enum yytokentype
{
INT = 258,
NAME = 259,
LNAME = 260,
OREQ = 261,
ANDEQ = 262,
RSHIFTEQ = 263,
LSHIFTEQ = 264,
DIVEQ = 265,
MULTEQ = 266,
MINUSEQ = 267,
PLUSEQ = 268,
PLUSEQ = 261,
MINUSEQ = 262,
MULTEQ = 263,
DIVEQ = 264,
LSHIFTEQ = 265,
RSHIFTEQ = 266,
ANDEQ = 267,
OREQ = 268,
OROR = 269,
ANDAND = 270,
NE = 271,
EQ = 272,
GE = 273,
LE = 274,
RSHIFT = 275,
LSHIFT = 276,
EQ = 271,
NE = 272,
LE = 273,
GE = 274,
LSHIFT = 275,
RSHIFT = 276,
UNARY = 277,
END = 278,
ALIGN_K = 279,
200,22 → 270,22
#define INT 258
#define NAME 259
#define LNAME 260
#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 PLUSEQ 261
#define MINUSEQ 262
#define MULTEQ 263
#define DIVEQ 264
#define LSHIFTEQ 265
#define RSHIFTEQ 266
#define ANDEQ 267
#define OREQ 268
#define OROR 269
#define ANDAND 270
#define NE 271
#define EQ 272
#define GE 273
#define LE 274
#define RSHIFT 275
#define LSHIFT 276
#define EQ 271
#define NE 272
#define LE 273
#define GE 274
#define LSHIFT 275
#define RSHIFT 276
#define UNARY 277
#define END 278
#define ALIGN_K 279
326,72 → 396,13
#define CONSTANT 384
#define INPUT_DYNAMIC_LIST 385
 
 
 
 
/* 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
 
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
#line 60 "ldgram.y"
typedef union YYSTYPE YYSTYPE;
union YYSTYPE
{
#line 60 "ldgram.y" /* yacc.c:355 */
 
bfd_vma integer;
struct big_int
{
420,23 → 431,24
struct bfd_elf_version_deps *deflist;
struct bfd_elf_version_expr *versyms;
struct bfd_elf_version_tree *versnode;
}
/* Line 193 of yacc.c. */
#line 426 "ldgram.c"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 
#line 436 "ldgram.c" /* yacc.c:355 */
};
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif
 
 
extern YYSTYPE yylval;
 
int yyparse (void);
 
#endif /* !YY_YY_LDGRAM_H_INCLUDED */
 
/* Copy the second part of user declarations. */
 
#line 451 "ldgram.c" /* yacc.c:358 */
 
/* Line 216 of yacc.c. */
#line 439 "ldgram.c"
 
#ifdef short
# undef short
#endif
449,11 → 461,8
 
#ifdef YYTYPE_INT8
typedef YYTYPE_INT8 yytype_int8;
#elif (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
#else
typedef signed char yytype_int8;
#else
typedef short int yytype_int8;
#endif
 
#ifdef YYTYPE_UINT16
473,8 → 482,7
# define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
# define YYSIZE_T size_t
# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# elif ! defined YYSIZE_T
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# else
488,39 → 496,49
# 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
 
/* Identity function, used to suppress warnings about constant conditions. */
#ifndef lint
# define YYID(n) (n)
#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")
#else
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static int
YYID (int i)
#else
static int
YYID (i)
int i;
# define YY_INITIAL_VALUE(Value) Value
#endif
{
return i;
}
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
#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. */
538,11 → 556,11
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# ifndef _STDLIB_H
# define _STDLIB_H 1
/* Use EXIT_SUCCESS as a witness for stdlib.h. */
# ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0
# endif
# endif
# endif
550,8 → 568,8
# endif
 
# ifdef YYSTACK_ALLOC
/* Pacify GCC's `empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
/* Pacify GCC's 'empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (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
565,25 → 583,23
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
# if (defined __cplusplus && ! defined _STDLIB_H \
# if (defined __cplusplus && ! defined EXIT_SUCCESS \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# ifndef _STDLIB_H
# define _STDLIB_H 1
# ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# if ! defined malloc && ! defined EXIT_SUCCESS
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# if ! defined free && ! defined EXIT_SUCCESS
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
598,8 → 614,8
/* A type that is properly aligned for any stack member. */
union yyalloc
{
yytype_int16 yyss;
YYSTYPE yyvs;
yytype_int16 yyss_alloc;
YYSTYPE yyvs_alloc;
};
 
/* The size of the maximum gap between one aligned stack and the next. */
611,23 → 627,7
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
 
/* 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
# define YYCOPY_NEEDED 1
 
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
634,34 → 634,55
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) \
# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
do \
{ \
YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack, Stack, yysize); \
Stack = &yyptr->Stack; \
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
Stack = &yyptr->Stack_alloc; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (YYID (0))
while (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 1999
#define YYLAST 1915
 
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 154
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 129
#define YYNNTS 131
/* YYNRULES -- Number of rules. */
#define YYNRULES 369
/* YYNRULES -- Number of states. */
#define YYNSTATES 803
#define YYNRULES 371
/* YYNSTATES -- Number of states. */
#define YYNSTATES 805
 
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 385
 
668,7 → 689,8
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
as returned by yylex, without out-of-bounds checking. */
static const yytype_uint8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
677,7 → 699,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, 6, 25, 15, 2, 2, 2, 2, 2, 2,
24, 10, 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,
697,7 → 719,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, 7, 8, 9, 10, 11, 12, 13, 14, 17,
5, 6, 7, 8, 9, 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,
713,184 → 735,7
};
 
#if YYDEBUG
/* 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. */
/* 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,
902,49 → 747,50
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, 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
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
};
#endif
 
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
#if YYDEBUG || YYERROR_VERBOSE || 0
/* 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", "'='", "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",
"$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",
"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",
963,43 → 809,44
"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", "@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",
"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",
"atype", "opt_exp_with_type", "opt_exp_without_type", "opt_nocrossrefs",
"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",
"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",
"dynamic_list_nodes", "dynamic_list_node", "dynamic_list_tag",
"version_script_file", "@37", "version", "@38", "vers_nodes",
"vers_node", "verdep", "vers_tag", "vers_defns", "@39", "@40",
"opt_semicolon", 0
"version_script_file", "$@38", "version", "$@39", "vers_nodes",
"vers_node", "verdep", "vers_tag", "vers_defns", "@40", "@41",
"opt_semicolon", YY_NULL
};
#endif
 
# ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
token YYLEX-NUM. */
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
(internal) symbol number NUM (which must be that of a token). */
static const yytype_uint16 yytoknum[] =
{
0, 256, 257, 258, 259, 260, 61, 261, 262, 263,
264, 265, 266, 267, 268, 63, 58, 269, 270, 124,
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
61, 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,
1017,713 → 864,622
};
# endif
 
/* 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_NINF -648
 
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
#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[] =
{
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
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
};
 
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
STATE-NUM when YYTABLE doesn't specify something else to do. Zero
/* 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_uint16 yydefact[] =
{
0, 59, 10, 8, 338, 332, 0, 2, 62, 3,
0, 59, 10, 8, 340, 334, 0, 2, 62, 3,
13, 6, 0, 4, 0, 5, 0, 1, 60, 11,
0, 349, 0, 339, 342, 0, 333, 334, 0, 0,
0, 351, 0, 341, 344, 0, 335, 336, 0, 0,
0, 0, 0, 79, 0, 80, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 209, 210, 0,
0, 82, 0, 0, 0, 0, 111, 0, 72, 61,
0, 0, 0, 0, 0, 0, 0, 211, 212, 0,
0, 82, 0, 0, 0, 0, 113, 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, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 219, 221, 0, 0, 0,
0, 0, 0, 221, 223, 0, 0, 0, 0, 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, 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, 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, 0,
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
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
};
 
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
-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
-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
};
 
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -647
static const yytype_int16 yypact[] =
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-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
-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
};
 
/* 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
/* 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. */
static const yytype_int16 yytable[] =
{
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,
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,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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,
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,
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
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,
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,
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
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
};
 
static const yytype_int16 yycheck[] =
{
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,
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,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
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,
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,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
-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,
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, -1, -1, -1, -1, -1, -1, -1, -1,
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,
-1, -1, 130, 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,
148, 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,
-1, 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,
-1, 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,
-1, 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,
-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,
26, 27, 28, 29, 30, 31, 32, 33, 34, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15, 147, 17, 18, 19, 20, 21, 22, 23, 24,
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,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
15, 147, 17, 18, 19, 20, 21, 22, 23, 24,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
-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,
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,
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, 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
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
1731,88 → 1487,175
static const yytype_uint16 yystos[] =
{
0, 126, 127, 128, 137, 146, 155, 171, 172, 159,
160, 157, 158, 271, 272, 266, 267, 0, 173, 161,
4, 58, 132, 275, 276, 58, 268, 269, 4, 46,
160, 157, 158, 273, 274, 268, 269, 0, 173, 161,
4, 58, 132, 277, 278, 58, 270, 271, 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,
181, 183, 204, 206, 217, 218, 220, 222, 258, 273,
274, 4, 38, 66, 101, 108, 109, 110, 111, 112,
183, 185, 206, 208, 219, 220, 222, 224, 260, 275,
276, 4, 38, 66, 101, 108, 109, 110, 111, 112,
114, 115, 116, 119, 120, 122, 123, 124, 129, 130,
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,
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,
50, 37, 37, 4, 156, 58, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 175, 37, 37,
37, 37, 184, 37, 147, 148, 203, 136, 4, 156,
37, 37, 186, 37, 147, 148, 205, 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, 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,
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,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
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
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
};
 
/* 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)
1823,22 → 1666,16
#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 && yylen == 1) \
if (yychar == YYEMPTY) \
{ \
yychar = (Token); \
yylval = (Value); \
yytoken = YYTRANSLATE (yychar); \
YYPOPSTACK (1); \
YYPOPSTACK (yylen); \
yystate = *yyssp; \
goto yybackup; \
} \
else \
1846,63 → 1683,14
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (YYID (0))
while (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
 
1915,8 → 1703,14
do { \
if (yydebug) \
YYFPRINTF Args; \
} while (YYID (0))
} while (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) \
1926,40 → 1720,26
Type, Value); \
YYFPRINTF (stderr, "\n"); \
} \
} while (YYID (0))
} while (0)
 
 
/*--------------------------------.
| Print this symbol on YYOUTPUT. |
`--------------------------------*/
/*----------------------------------------.
| Print this symbol's value 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
switch (yytype)
{
default:
break;
YYUSE (yytype);
}
}
 
 
/*--------------------------------.
1966,22 → 1746,11
| 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
{
if (yytype < YYNTOKENS)
YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
else
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
YYFPRINTF (yyoutput, "%s %s (",
yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
 
yy_symbol_value_print (yyoutput, yytype, yyvaluep);
YYFPRINTF (yyoutput, ")");
1992,20 → 1761,15
| TOP (included). |
`------------------------------------------------------------------*/
 
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
#else
static void
yy_stack_print (bottom, top)
yytype_int16 *bottom;
yytype_int16 *top;
#endif
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
{
YYFPRINTF (stderr, "Stack now");
for (; bottom <= top; ++bottom)
YYFPRINTF (stderr, " %d", *bottom);
for (; yybottom <= yytop; yybottom++)
{
int yybot = *yybottom;
YYFPRINTF (stderr, " %d", yybot);
}
YYFPRINTF (stderr, "\n");
}
 
2013,7 → 1777,7
do { \
if (yydebug) \
yy_stack_print ((Bottom), (Top)); \
} while (YYID (0))
} while (0)
 
 
/*------------------------------------------------.
2020,30 → 1784,23
| 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 (YYSTYPE *yyvsp, int yyrule)
#else
static void
yy_reduce_print (yyvsp, yyrule)
YYSTYPE *yyvsp;
int yyrule;
#endif
yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
{
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++)
{
fprintf (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
YYFPRINTF (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr,
yystos[yyssp[yyi + 1 - yynrhs]],
&(yyvsp[(yyi + 1) - (yynrhs)])
);
fprintf (stderr, "\n");
YYFPRINTF (stderr, "\n");
}
}
 
2050,8 → 1807,8
# define YY_REDUCE_PRINT(Rule) \
do { \
if (yydebug) \
yy_reduce_print (yyvsp, Rule); \
} while (YYID (0))
yy_reduce_print (yyssp, yyvsp, Rule); \
} while (0)
 
/* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */
2081,7 → 1838,6
#endif
 
 
#if YYERROR_VERBOSE
 
# ifndef yystrlen
2089,15 → 1845,8
# 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++)
2113,16 → 1862,8
# 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;
2183,251 → 1924,226
}
# endif
 
/* 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];
/* 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.
 
if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
return 0;
else
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)
{
int yytype = YYTRANSLATE (yychar);
YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
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];
int yyx;
/* Number of reported tokens (one for the "unexpected", one per
"expected"). */
int yycount = 0;
 
# 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;
 
/* 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))
{
/* Start YYX at -YYN if negative to avoid negative indexes in
YYCHECK. */
YYCHECK. In other words, skip the first -YYN actions for
this state because they are default actions. */
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 yycount = 1;
int yyx;
 
yyarg[0] = yytname[yytype];
yyfmt = yystpcpy (yyformat, yyunexpected);
 
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
&& !yytable_value_is_error (yytable[yyx + yyn]))
{
if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
{
yycount = 1;
yysize = yysize0;
yyformat[sizeof yyunexpected - 1] = '\0';
break;
}
yyarg[yycount++] = yytname[yyx];
yysize1 = yysize + yytnamerr (0, yytname[yyx]);
yysize_overflow |= (yysize1 < yysize);
{
YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
if (! (yysize <= yysize1
&& yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
yysize = yysize1;
yyfmt = yystpcpy (yyfmt, yyprefix);
yyprefix = yyor;
}
}
}
}
 
yyf = YY_(yyformat);
yysize1 = yysize + yystrlen (yyf);
yysize_overflow |= (yysize1 < yysize);
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;
yysize = yysize1;
}
 
if (yysize_overflow)
return YYSIZE_MAXIMUM;
if (*yymsg_alloc < yysize)
{
*yymsg_alloc = 2 * yysize;
if (! (yysize <= *yymsg_alloc
&& *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
*yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
return 1;
}
 
if (yyresult)
{
/* 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 = yyresult;
{
char *yyp = *yymsg;
int yyi = 0;
while ((*yyp = *yyf) != '\0')
while ((*yyp = *yyformat) != '\0')
if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
{
if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
{
yyp += yytnamerr (yyp, yyarg[yyi++]);
yyf += 2;
yyformat += 2;
}
else
{
yyp++;
yyf++;
yyformat++;
}
}
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);
 
switch (yytype)
{
 
default:
break;
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
YYUSE (yytype);
YY_IGNORE_MAYBE_UNINITIALIZED_END
}
}
 
/* 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 look-ahead symbol. */
/* The lookahead symbol. */
int yychar;
 
/* The semantic value of the look-ahead symbol. */
/* The semantic value of the lookahead 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
 
/* Three stacks and their tools:
`yyss': related to states,
`yyvs': related to semantic values,
`yyls': related to locations.
/* The stacks and their tools:
'yyss': related to states.
'yyvs': related to semantic values.
 
Refer to the stacks thru separate pointers, to allow yyoverflow
Refer to the stacks through separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
 
/* The state stack. */
yytype_int16 yyssa[YYINITDEPTH];
yytype_int16 *yyss = yyssa;
yytype_int16 *yyss;
yytype_int16 *yyssp;
 
/* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH];
YYSTYPE *yyvs = yyvsa;
YYSTYPE *yyvs;
YYSTYPE *yyvsp;
 
YYSIZE_T yystacksize;
 
 
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
 
YYSIZE_T yystacksize = YYINITDEPTH;
 
int yyn;
int yyresult;
/* Lookahead token as an internal (translated) token number. */
int yytoken = 0;
/* 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;
2434,15 → 2150,6
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;
 
/*------------------------------------------------------------.
2469,7 → 2176,6
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
2477,7 → 2183,6
yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
 
&yystacksize);
 
yyss = yyss1;
2500,9 → 2205,8
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyexhaustedlab;
YYSTACK_RELOCATE (yyss);
YYSTACK_RELOCATE (yyvs);
 
YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
2513,7 → 2217,6
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
 
 
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
 
2523,6 → 2226,9
 
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
if (yystate == YYFINAL)
YYACCEPT;
 
goto yybackup;
 
/*-----------.
2531,20 → 2237,20
yybackup:
 
/* Do appropriate processing given the current state. Read a
look-ahead token if we need one and don't already have one. */
lookahead token if we need one and don't already have one. */
 
/* First try to decide what to do without reference to look-ahead token. */
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
if (yyn == YYPACT_NINF)
if (yypact_value_is_default (yyn))
goto yydefault;
 
/* Not known => get a look-ahead token if don't already have one. */
/* Not known => get a lookahead token if don't already have one. */
 
/* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
/* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
yychar = YYLEX;
yychar = yylex ();
}
 
if (yychar <= YYEOF)
2566,29 → 2272,27
yyn = yytable[yyn];
if (yyn <= 0)
{
if (yyn == 0 || yyn == YYTABLE_NINF)
if (yytable_value_is_error (yyn))
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 look-ahead token. */
/* Shift the lookahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 
/* Discard the shifted token unless it is eof. */
if (yychar != YYEOF)
/* Discard the shifted token. */
yychar = YYEMPTY;
 
yystate = yyn;
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
YY_IGNORE_MAYBE_UNINITIALIZED_END
 
goto yynewstate;
 
2611,7 → 2315,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
2625,1192 → 2329,1395
switch (yyn)
{
case 8:
#line 178 "ldgram.y"
#line 178 "ldgram.y" /* yacc.c:1661 */
{ ldlex_defsym(); }
#line 2335 "ldgram.c" /* yacc.c:1661 */
break;
 
case 9:
#line 180 "ldgram.y"
#line 180 "ldgram.y" /* yacc.c:1661 */
{
ldlex_popstate();
lang_add_assignment (exp_defsym ((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree)));
lang_add_assignment (exp_defsym ((yyvsp[-2].name), (yyvsp[0].etree)));
}
#line 2344 "ldgram.c" /* yacc.c:1661 */
break;
 
case 10:
#line 188 "ldgram.y"
#line 188 "ldgram.y" /* yacc.c:1661 */
{
ldlex_mri_script ();
PUSH_ERROR (_("MRI style script"));
}
#line 2353 "ldgram.c" /* yacc.c:1661 */
break;
 
case 11:
#line 193 "ldgram.y"
#line 193 "ldgram.y" /* yacc.c:1661 */
{
ldlex_popstate ();
mri_draw_tree ();
POP_ERROR ();
}
#line 2363 "ldgram.c" /* yacc.c:1661 */
break;
 
case 16:
#line 208 "ldgram.y"
#line 208 "ldgram.y" /* yacc.c:1661 */
{
einfo(_("%P%F: unrecognised keyword in MRI style script '%s'\n"),(yyvsp[(1) - (1)].name));
einfo(_("%P%F: unrecognised keyword in MRI style script '%s'\n"),(yyvsp[0].name));
}
#line 2371 "ldgram.c" /* yacc.c:1661 */
break;
 
case 17:
#line 211 "ldgram.y"
#line 211 "ldgram.y" /* yacc.c:1661 */
{
config.map_filename = "-";
}
#line 2379 "ldgram.c" /* yacc.c:1661 */
break;
 
case 20:
#line 217 "ldgram.y"
{ mri_public((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree)); }
#line 217 "ldgram.y" /* yacc.c:1661 */
{ mri_public((yyvsp[-2].name), (yyvsp[0].etree)); }
#line 2385 "ldgram.c" /* yacc.c:1661 */
break;
 
case 21:
#line 219 "ldgram.y"
{ mri_public((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree)); }
#line 219 "ldgram.y" /* yacc.c:1661 */
{ mri_public((yyvsp[-2].name), (yyvsp[0].etree)); }
#line 2391 "ldgram.c" /* yacc.c:1661 */
break;
 
case 22:
#line 221 "ldgram.y"
{ mri_public((yyvsp[(2) - (3)].name), (yyvsp[(3) - (3)].etree)); }
#line 221 "ldgram.y" /* yacc.c:1661 */
{ mri_public((yyvsp[-1].name), (yyvsp[0].etree)); }
#line 2397 "ldgram.c" /* yacc.c:1661 */
break;
 
case 23:
#line 223 "ldgram.y"
{ mri_format((yyvsp[(2) - (2)].name)); }
#line 223 "ldgram.y" /* yacc.c:1661 */
{ mri_format((yyvsp[0].name)); }
#line 2403 "ldgram.c" /* yacc.c:1661 */
break;
 
case 24:
#line 225 "ldgram.y"
{ mri_output_section((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree));}
#line 225 "ldgram.y" /* yacc.c:1661 */
{ mri_output_section((yyvsp[-2].name), (yyvsp[0].etree));}
#line 2409 "ldgram.c" /* yacc.c:1661 */
break;
 
case 25:
#line 227 "ldgram.y"
{ mri_output_section((yyvsp[(2) - (3)].name), (yyvsp[(3) - (3)].etree));}
#line 227 "ldgram.y" /* yacc.c:1661 */
{ mri_output_section((yyvsp[-1].name), (yyvsp[0].etree));}
#line 2415 "ldgram.c" /* yacc.c:1661 */
break;
 
case 26:
#line 229 "ldgram.y"
{ mri_output_section((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree));}
#line 229 "ldgram.y" /* yacc.c:1661 */
{ mri_output_section((yyvsp[-2].name), (yyvsp[0].etree));}
#line 2421 "ldgram.c" /* yacc.c:1661 */
break;
 
case 27:
#line 231 "ldgram.y"
{ mri_align((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)); }
#line 231 "ldgram.y" /* yacc.c:1661 */
{ mri_align((yyvsp[-2].name),(yyvsp[0].etree)); }
#line 2427 "ldgram.c" /* yacc.c:1661 */
break;
 
case 28:
#line 233 "ldgram.y"
{ mri_align((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)); }
#line 233 "ldgram.y" /* yacc.c:1661 */
{ mri_align((yyvsp[-2].name),(yyvsp[0].etree)); }
#line 2433 "ldgram.c" /* yacc.c:1661 */
break;
 
case 29:
#line 235 "ldgram.y"
{ mri_alignmod((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)); }
#line 235 "ldgram.y" /* yacc.c:1661 */
{ mri_alignmod((yyvsp[-2].name),(yyvsp[0].etree)); }
#line 2439 "ldgram.c" /* yacc.c:1661 */
break;
 
case 30:
#line 237 "ldgram.y"
{ mri_alignmod((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)); }
#line 237 "ldgram.y" /* yacc.c:1661 */
{ mri_alignmod((yyvsp[-2].name),(yyvsp[0].etree)); }
#line 2445 "ldgram.c" /* yacc.c:1661 */
break;
 
case 33:
#line 241 "ldgram.y"
{ mri_name((yyvsp[(2) - (2)].name)); }
#line 241 "ldgram.y" /* yacc.c:1661 */
{ mri_name((yyvsp[0].name)); }
#line 2451 "ldgram.c" /* yacc.c:1661 */
break;
 
case 34:
#line 243 "ldgram.y"
{ mri_alias((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].name),0);}
#line 243 "ldgram.y" /* yacc.c:1661 */
{ mri_alias((yyvsp[-2].name),(yyvsp[0].name),0);}
#line 2457 "ldgram.c" /* yacc.c:1661 */
break;
 
case 35:
#line 245 "ldgram.y"
{ mri_alias ((yyvsp[(2) - (4)].name), 0, (int) (yyvsp[(4) - (4)].bigint).integer); }
#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 */
break;
 
case 36:
#line 247 "ldgram.y"
{ mri_base((yyvsp[(2) - (2)].etree)); }
#line 247 "ldgram.y" /* yacc.c:1661 */
{ mri_base((yyvsp[0].etree)); }
#line 2469 "ldgram.c" /* yacc.c:1661 */
break;
 
case 37:
#line 249 "ldgram.y"
{ mri_truncate ((unsigned int) (yyvsp[(2) - (2)].bigint).integer); }
#line 249 "ldgram.y" /* yacc.c:1661 */
{ mri_truncate ((unsigned int) (yyvsp[0].bigint).integer); }
#line 2475 "ldgram.c" /* yacc.c:1661 */
break;
 
case 40:
#line 253 "ldgram.y"
{ ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
#line 253 "ldgram.y" /* yacc.c:1661 */
{ ldlex_script (); ldfile_open_command_file((yyvsp[0].name)); }
#line 2481 "ldgram.c" /* yacc.c:1661 */
break;
 
case 41:
#line 255 "ldgram.y"
#line 255 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate (); }
#line 2487 "ldgram.c" /* yacc.c:1661 */
break;
 
case 42:
#line 257 "ldgram.y"
{ lang_add_entry ((yyvsp[(2) - (2)].name), FALSE); }
#line 257 "ldgram.y" /* yacc.c:1661 */
{ lang_add_entry ((yyvsp[0].name), FALSE); }
#line 2493 "ldgram.c" /* yacc.c:1661 */
break;
 
case 44:
#line 262 "ldgram.y"
{ mri_order((yyvsp[(3) - (3)].name)); }
#line 262 "ldgram.y" /* yacc.c:1661 */
{ mri_order((yyvsp[0].name)); }
#line 2499 "ldgram.c" /* yacc.c:1661 */
break;
 
case 45:
#line 263 "ldgram.y"
{ mri_order((yyvsp[(2) - (2)].name)); }
#line 263 "ldgram.y" /* yacc.c:1661 */
{ mri_order((yyvsp[0].name)); }
#line 2505 "ldgram.c" /* yacc.c:1661 */
break;
 
case 47:
#line 269 "ldgram.y"
{ mri_load((yyvsp[(1) - (1)].name)); }
#line 269 "ldgram.y" /* yacc.c:1661 */
{ mri_load((yyvsp[0].name)); }
#line 2511 "ldgram.c" /* yacc.c:1661 */
break;
 
case 48:
#line 270 "ldgram.y"
{ mri_load((yyvsp[(3) - (3)].name)); }
#line 270 "ldgram.y" /* yacc.c:1661 */
{ mri_load((yyvsp[0].name)); }
#line 2517 "ldgram.c" /* yacc.c:1661 */
break;
 
case 49:
#line 275 "ldgram.y"
{ mri_only_load((yyvsp[(1) - (1)].name)); }
#line 275 "ldgram.y" /* yacc.c:1661 */
{ mri_only_load((yyvsp[0].name)); }
#line 2523 "ldgram.c" /* yacc.c:1661 */
break;
 
case 50:
#line 277 "ldgram.y"
{ mri_only_load((yyvsp[(3) - (3)].name)); }
#line 277 "ldgram.y" /* yacc.c:1661 */
{ mri_only_load((yyvsp[0].name)); }
#line 2529 "ldgram.c" /* yacc.c:1661 */
break;
 
case 51:
#line 281 "ldgram.y"
#line 281 "ldgram.y" /* yacc.c:1661 */
{ (yyval.name) = NULL; }
#line 2535 "ldgram.c" /* yacc.c:1661 */
break;
 
case 54:
#line 288 "ldgram.y"
#line 288 "ldgram.y" /* yacc.c:1661 */
{ ldlex_expression (); }
#line 2541 "ldgram.c" /* yacc.c:1661 */
break;
 
case 55:
#line 290 "ldgram.y"
#line 290 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate (); }
#line 2547 "ldgram.c" /* yacc.c:1661 */
break;
 
case 56:
#line 294 "ldgram.y"
{ ldlang_add_undef ((yyvsp[(1) - (1)].name), FALSE); }
#line 294 "ldgram.y" /* yacc.c:1661 */
{ ldlang_add_undef ((yyvsp[0].name), FALSE); }
#line 2553 "ldgram.c" /* yacc.c:1661 */
break;
 
case 57:
#line 296 "ldgram.y"
{ ldlang_add_undef ((yyvsp[(2) - (2)].name), FALSE); }
#line 296 "ldgram.y" /* yacc.c:1661 */
{ ldlang_add_undef ((yyvsp[0].name), FALSE); }
#line 2559 "ldgram.c" /* yacc.c:1661 */
break;
 
case 58:
#line 298 "ldgram.y"
{ ldlang_add_undef ((yyvsp[(3) - (3)].name), FALSE); }
#line 298 "ldgram.y" /* yacc.c:1661 */
{ ldlang_add_undef ((yyvsp[0].name), FALSE); }
#line 2565 "ldgram.c" /* yacc.c:1661 */
break;
 
case 59:
#line 302 "ldgram.y"
#line 302 "ldgram.y" /* yacc.c:1661 */
{ ldlex_both(); }
#line 2571 "ldgram.c" /* yacc.c:1661 */
break;
 
case 60:
#line 304 "ldgram.y"
#line 304 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate(); }
#line 2577 "ldgram.c" /* yacc.c:1661 */
break;
 
case 73:
#line 325 "ldgram.y"
{ lang_add_target((yyvsp[(3) - (4)].name)); }
#line 325 "ldgram.y" /* yacc.c:1661 */
{ lang_add_target((yyvsp[-1].name)); }
#line 2583 "ldgram.c" /* yacc.c:1661 */
break;
 
case 74:
#line 327 "ldgram.y"
{ ldfile_add_library_path ((yyvsp[(3) - (4)].name), FALSE); }
#line 327 "ldgram.y" /* yacc.c:1661 */
{ ldfile_add_library_path ((yyvsp[-1].name), FALSE); }
#line 2589 "ldgram.c" /* yacc.c:1661 */
break;
 
case 75:
#line 329 "ldgram.y"
{ lang_add_output((yyvsp[(3) - (4)].name), 1); }
#line 329 "ldgram.y" /* yacc.c:1661 */
{ lang_add_output((yyvsp[-1].name), 1); }
#line 2595 "ldgram.c" /* yacc.c:1661 */
break;
 
case 76:
#line 331 "ldgram.y"
{ lang_add_output_format ((yyvsp[(3) - (4)].name), (char *) NULL,
#line 331 "ldgram.y" /* yacc.c:1661 */
{ lang_add_output_format ((yyvsp[-1].name), (char *) NULL,
(char *) NULL, 1); }
#line 2602 "ldgram.c" /* yacc.c:1661 */
break;
 
case 77:
#line 334 "ldgram.y"
{ lang_add_output_format ((yyvsp[(3) - (8)].name), (yyvsp[(5) - (8)].name), (yyvsp[(7) - (8)].name), 1); }
#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 */
break;
 
case 78:
#line 336 "ldgram.y"
{ ldfile_set_output_arch ((yyvsp[(3) - (4)].name), bfd_arch_unknown); }
#line 336 "ldgram.y" /* yacc.c:1661 */
{ ldfile_set_output_arch ((yyvsp[-1].name), bfd_arch_unknown); }
#line 2614 "ldgram.c" /* yacc.c:1661 */
break;
 
case 79:
#line 338 "ldgram.y"
#line 338 "ldgram.y" /* yacc.c:1661 */
{ command_line.force_common_definition = TRUE ; }
#line 2620 "ldgram.c" /* yacc.c:1661 */
break;
 
case 80:
#line 340 "ldgram.y"
#line 340 "ldgram.y" /* yacc.c:1661 */
{ command_line.inhibit_common_definition = TRUE ; }
#line 2626 "ldgram.c" /* yacc.c:1661 */
break;
 
case 82:
#line 343 "ldgram.y"
#line 343 "ldgram.y" /* yacc.c:1661 */
{ lang_enter_group (); }
#line 2632 "ldgram.c" /* yacc.c:1661 */
break;
 
case 83:
#line 345 "ldgram.y"
#line 345 "ldgram.y" /* yacc.c:1661 */
{ lang_leave_group (); }
#line 2638 "ldgram.c" /* yacc.c:1661 */
break;
 
case 84:
#line 347 "ldgram.y"
{ lang_add_map((yyvsp[(3) - (4)].name)); }
#line 347 "ldgram.y" /* yacc.c:1661 */
{ lang_add_map((yyvsp[-1].name)); }
#line 2644 "ldgram.c" /* yacc.c:1661 */
break;
 
case 85:
#line 349 "ldgram.y"
{ ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
#line 349 "ldgram.y" /* yacc.c:1661 */
{ ldlex_script (); ldfile_open_command_file((yyvsp[0].name)); }
#line 2650 "ldgram.c" /* yacc.c:1661 */
break;
 
case 86:
#line 351 "ldgram.y"
#line 351 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate (); }
#line 2656 "ldgram.c" /* yacc.c:1661 */
break;
 
case 87:
#line 353 "ldgram.y"
#line 353 "ldgram.y" /* yacc.c:1661 */
{
lang_add_nocrossref ((yyvsp[(3) - (4)].nocrossref));
lang_add_nocrossref ((yyvsp[-1].nocrossref));
}
#line 2664 "ldgram.c" /* yacc.c:1661 */
break;
 
case 89:
#line 358 "ldgram.y"
{ lang_add_insert ((yyvsp[(3) - (3)].name), 0); }
#line 358 "ldgram.y" /* yacc.c:1661 */
{ lang_add_insert ((yyvsp[0].name), 0); }
#line 2670 "ldgram.c" /* yacc.c:1661 */
break;
 
case 90:
#line 360 "ldgram.y"
{ lang_add_insert ((yyvsp[(3) - (3)].name), 1); }
#line 360 "ldgram.y" /* yacc.c:1661 */
{ lang_add_insert ((yyvsp[0].name), 1); }
#line 2676 "ldgram.c" /* yacc.c:1661 */
break;
 
case 91:
#line 362 "ldgram.y"
{ lang_memory_region_alias ((yyvsp[(3) - (6)].name), (yyvsp[(5) - (6)].name)); }
#line 362 "ldgram.y" /* yacc.c:1661 */
{ lang_memory_region_alias ((yyvsp[-3].name), (yyvsp[-1].name)); }
#line 2682 "ldgram.c" /* yacc.c:1661 */
break;
 
case 92:
#line 364 "ldgram.y"
{ lang_ld_feature ((yyvsp[(3) - (4)].name)); }
#line 364 "ldgram.y" /* yacc.c:1661 */
{ lang_ld_feature ((yyvsp[-1].name)); }
#line 2688 "ldgram.c" /* yacc.c:1661 */
break;
 
case 93:
#line 369 "ldgram.y"
{ lang_add_input_file((yyvsp[(1) - (1)].name),lang_input_file_is_search_file_enum,
(char *)NULL); }
#line 368 "ldgram.y" /* yacc.c:1661 */
{ ldlex_inputlist(); }
#line 2694 "ldgram.c" /* yacc.c:1661 */
break;
 
case 94:
#line 372 "ldgram.y"
{ lang_add_input_file((yyvsp[(3) - (3)].name),lang_input_file_is_search_file_enum,
(char *)NULL); }
#line 370 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate(); }
#line 2700 "ldgram.c" /* yacc.c:1661 */
break;
 
case 95:
#line 375 "ldgram.y"
{ lang_add_input_file((yyvsp[(2) - (2)].name),lang_input_file_is_search_file_enum,
#line 374 "ldgram.y" /* yacc.c:1661 */
{ lang_add_input_file((yyvsp[0].name),lang_input_file_is_search_file_enum,
(char *)NULL); }
#line 2707 "ldgram.c" /* yacc.c:1661 */
break;
 
case 96:
#line 378 "ldgram.y"
{ lang_add_input_file((yyvsp[(1) - (1)].name),lang_input_file_is_l_enum,
#line 377 "ldgram.y" /* yacc.c:1661 */
{ lang_add_input_file((yyvsp[0].name),lang_input_file_is_search_file_enum,
(char *)NULL); }
#line 2714 "ldgram.c" /* yacc.c:1661 */
break;
 
case 97:
#line 381 "ldgram.y"
{ lang_add_input_file((yyvsp[(3) - (3)].name),lang_input_file_is_l_enum,
#line 380 "ldgram.y" /* yacc.c:1661 */
{ lang_add_input_file((yyvsp[0].name),lang_input_file_is_search_file_enum,
(char *)NULL); }
#line 2721 "ldgram.c" /* yacc.c:1661 */
break;
 
case 98:
#line 384 "ldgram.y"
{ lang_add_input_file((yyvsp[(2) - (2)].name),lang_input_file_is_l_enum,
#line 383 "ldgram.y" /* yacc.c:1661 */
{ lang_add_input_file((yyvsp[0].name),lang_input_file_is_l_enum,
(char *)NULL); }
#line 2728 "ldgram.c" /* yacc.c:1661 */
break;
 
case 99:
#line 387 "ldgram.y"
{ (yyval.integer) = input_flags.add_DT_NEEDED_for_regular;
input_flags.add_DT_NEEDED_for_regular = TRUE; }
#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 */
break;
 
case 100:
#line 390 "ldgram.y"
{ input_flags.add_DT_NEEDED_for_regular = (yyvsp[(3) - (5)].integer); }
#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 */
break;
 
case 101:
#line 392 "ldgram.y"
#line 392 "ldgram.y" /* yacc.c:1661 */
{ (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"
{ input_flags.add_DT_NEEDED_for_regular = (yyvsp[(5) - (7)].integer); }
#line 395 "ldgram.y" /* yacc.c:1661 */
{ input_flags.add_DT_NEEDED_for_regular = (yyvsp[-2].integer); }
#line 2755 "ldgram.c" /* yacc.c:1661 */
break;
 
case 103:
#line 397 "ldgram.y"
#line 397 "ldgram.y" /* yacc.c:1661 */
{ (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"
{ input_flags.add_DT_NEEDED_for_regular = (yyvsp[(4) - (6)].integer); }
#line 400 "ldgram.y" /* yacc.c:1661 */
{ input_flags.add_DT_NEEDED_for_regular = (yyvsp[-2].integer); }
#line 2768 "ldgram.c" /* yacc.c:1661 */
break;
 
case 109:
#line 415 "ldgram.y"
{ lang_add_entry ((yyvsp[(3) - (4)].name), FALSE); }
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 */
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 417 "ldgram.y"
#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 */
{ldlex_expression ();}
#line 2793 "ldgram.c" /* yacc.c:1661 */
break;
 
case 112:
#line 418 "ldgram.y"
case 114:
#line 423 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate ();
lang_add_assignment (exp_assert ((yyvsp[(4) - (7)].etree), (yyvsp[(6) - (7)].name))); }
lang_add_assignment (exp_assert ((yyvsp[-3].etree), (yyvsp[-1].name))); }
#line 2800 "ldgram.c" /* yacc.c:1661 */
break;
 
case 113:
#line 426 "ldgram.y"
case 115:
#line 431 "ldgram.y" /* yacc.c:1661 */
{
(yyval.cname) = (yyvsp[(1) - (1)].name);
(yyval.cname) = (yyvsp[0].name);
}
#line 2808 "ldgram.c" /* yacc.c:1661 */
break;
 
case 114:
#line 430 "ldgram.y"
case 116:
#line 435 "ldgram.y" /* yacc.c:1661 */
{
(yyval.cname) = "*";
}
#line 2816 "ldgram.c" /* yacc.c:1661 */
break;
 
case 115:
#line 434 "ldgram.y"
case 117:
#line 439 "ldgram.y" /* yacc.c:1661 */
{
(yyval.cname) = "?";
}
#line 2824 "ldgram.c" /* yacc.c:1661 */
break;
 
case 116:
#line 441 "ldgram.y"
case 118:
#line 446 "ldgram.y" /* yacc.c:1661 */
{
(yyval.wildcard).name = (yyvsp[(1) - (1)].cname);
(yyval.wildcard).name = (yyvsp[0].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 117:
#line 448 "ldgram.y"
case 119:
#line 453 "ldgram.y" /* yacc.c:1661 */
{
(yyval.wildcard).name = (yyvsp[(5) - (5)].cname);
(yyval.wildcard).name = (yyvsp[0].cname);
(yyval.wildcard).sorted = none;
(yyval.wildcard).exclude_name_list = (yyvsp[(3) - (5)].name_list);
(yyval.wildcard).exclude_name_list = (yyvsp[-2].name_list);
(yyval.wildcard).section_flag_list = NULL;
}
#line 2846 "ldgram.c" /* yacc.c:1661 */
break;
 
case 118:
#line 455 "ldgram.y"
case 120:
#line 460 "ldgram.y" /* yacc.c:1661 */
{
(yyval.wildcard).name = (yyvsp[(3) - (4)].cname);
(yyval.wildcard).name = (yyvsp[-1].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 119:
#line 462 "ldgram.y"
case 121:
#line 467 "ldgram.y" /* yacc.c:1661 */
{
(yyval.wildcard).name = (yyvsp[(3) - (4)].cname);
(yyval.wildcard).name = (yyvsp[-1].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 120:
#line 469 "ldgram.y"
case 122:
#line 474 "ldgram.y" /* yacc.c:1661 */
{
(yyval.wildcard).name = (yyvsp[(3) - (4)].cname);
(yyval.wildcard).name = (yyvsp[-1].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 121:
#line 476 "ldgram.y"
case 123:
#line 481 "ldgram.y" /* yacc.c:1661 */
{
(yyval.wildcard).name = (yyvsp[(5) - (7)].cname);
(yyval.wildcard).name = (yyvsp[-2].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 122:
#line 483 "ldgram.y"
case 124:
#line 488 "ldgram.y" /* yacc.c:1661 */
{
(yyval.wildcard).name = (yyvsp[(5) - (7)].cname);
(yyval.wildcard).name = (yyvsp[-2].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 123:
#line 490 "ldgram.y"
case 125:
#line 495 "ldgram.y" /* yacc.c:1661 */
{
(yyval.wildcard).name = (yyvsp[(5) - (7)].cname);
(yyval.wildcard).name = (yyvsp[-2].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 124:
#line 497 "ldgram.y"
case 126:
#line 502 "ldgram.y" /* yacc.c:1661 */
{
(yyval.wildcard).name = (yyvsp[(5) - (7)].cname);
(yyval.wildcard).name = (yyvsp[-2].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 125:
#line 504 "ldgram.y"
case 127:
#line 509 "ldgram.y" /* yacc.c:1661 */
{
(yyval.wildcard).name = (yyvsp[(7) - (8)].cname);
(yyval.wildcard).name = (yyvsp[-1].cname);
(yyval.wildcard).sorted = by_name;
(yyval.wildcard).exclude_name_list = (yyvsp[(5) - (8)].name_list);
(yyval.wildcard).exclude_name_list = (yyvsp[-3].name_list);
(yyval.wildcard).section_flag_list = NULL;
}
#line 2934 "ldgram.c" /* yacc.c:1661 */
break;
 
case 126:
#line 511 "ldgram.y"
case 128:
#line 516 "ldgram.y" /* yacc.c:1661 */
{
(yyval.wildcard).name = (yyvsp[(3) - (4)].cname);
(yyval.wildcard).name = (yyvsp[-1].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 127:
#line 520 "ldgram.y"
case 129:
#line 525 "ldgram.y" /* yacc.c:1661 */
{
struct flag_info_list *n;
n = ((struct flag_info_list *) xmalloc (sizeof *n));
if ((yyvsp[(1) - (1)].name)[0] == '!')
if ((yyvsp[0].name)[0] == '!')
{
n->with = without_flags;
n->name = &(yyvsp[(1) - (1)].name)[1];
n->name = &(yyvsp[0].name)[1];
}
else
{
n->with = with_flags;
n->name = (yyvsp[(1) - (1)].name);
n->name = (yyvsp[0].name);
}
n->valid = FALSE;
n->next = NULL;
(yyval.flag_info_list) = n;
}
#line 2967 "ldgram.c" /* yacc.c:1661 */
break;
 
case 128:
#line 538 "ldgram.y"
case 130:
#line 543 "ldgram.y" /* yacc.c:1661 */
{
struct flag_info_list *n;
n = ((struct flag_info_list *) xmalloc (sizeof *n));
if ((yyvsp[(3) - (3)].name)[0] == '!')
if ((yyvsp[0].name)[0] == '!')
{
n->with = without_flags;
n->name = &(yyvsp[(3) - (3)].name)[1];
n->name = &(yyvsp[0].name)[1];
}
else
{
n->with = with_flags;
n->name = (yyvsp[(3) - (3)].name);
n->name = (yyvsp[0].name);
}
n->valid = FALSE;
n->next = (yyvsp[(1) - (3)].flag_info_list);
n->next = (yyvsp[-2].flag_info_list);
(yyval.flag_info_list) = n;
}
#line 2989 "ldgram.c" /* yacc.c:1661 */
break;
 
case 129:
#line 559 "ldgram.y"
case 131:
#line 564 "ldgram.y" /* yacc.c:1661 */
{
struct flag_info *n;
n = ((struct flag_info *) xmalloc (sizeof *n));
n->flag_list = (yyvsp[(3) - (4)].flag_info_list);
n->flag_list = (yyvsp[-1].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 130:
#line 572 "ldgram.y"
case 132:
#line 577 "ldgram.y" /* yacc.c:1661 */
{
struct name_list *tmp;
tmp = (struct name_list *) xmalloc (sizeof *tmp);
tmp->name = (yyvsp[(2) - (2)].cname);
tmp->next = (yyvsp[(1) - (2)].name_list);
tmp->name = (yyvsp[0].cname);
tmp->next = (yyvsp[-1].name_list);
(yyval.name_list) = tmp;
}
#line 3015 "ldgram.c" /* yacc.c:1661 */
break;
 
case 131:
#line 581 "ldgram.y"
case 133:
#line 586 "ldgram.y" /* yacc.c:1661 */
{
struct name_list *tmp;
tmp = (struct name_list *) xmalloc (sizeof *tmp);
tmp->name = (yyvsp[(1) - (1)].cname);
tmp->name = (yyvsp[0].cname);
tmp->next = NULL;
(yyval.name_list) = tmp;
}
#line 3027 "ldgram.c" /* yacc.c:1661 */
break;
 
case 132:
#line 592 "ldgram.y"
case 134:
#line 597 "ldgram.y" /* yacc.c:1661 */
{
struct wildcard_list *tmp;
tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
tmp->next = (yyvsp[(1) - (3)].wildcard_list);
tmp->spec = (yyvsp[(3) - (3)].wildcard);
tmp->next = (yyvsp[-2].wildcard_list);
tmp->spec = (yyvsp[0].wildcard);
(yyval.wildcard_list) = tmp;
}
#line 3039 "ldgram.c" /* yacc.c:1661 */
break;
 
case 133:
#line 601 "ldgram.y"
case 135:
#line 606 "ldgram.y" /* yacc.c:1661 */
{
struct wildcard_list *tmp;
tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
tmp->next = NULL;
tmp->spec = (yyvsp[(1) - (1)].wildcard);
tmp->spec = (yyvsp[0].wildcard);
(yyval.wildcard_list) = tmp;
}
#line 3051 "ldgram.c" /* yacc.c:1661 */
break;
 
case 134:
#line 612 "ldgram.y"
case 136:
#line 617 "ldgram.y" /* yacc.c:1661 */
{
struct wildcard_spec tmp;
tmp.name = (yyvsp[(1) - (1)].name);
tmp.name = (yyvsp[0].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 135:
#line 621 "ldgram.y"
case 137:
#line 626 "ldgram.y" /* yacc.c:1661 */
{
struct wildcard_spec tmp;
tmp.name = (yyvsp[(2) - (2)].name);
tmp.name = (yyvsp[0].name);
tmp.exclude_name_list = NULL;
tmp.sorted = none;
tmp.section_flag_list = (yyvsp[(1) - (2)].flag_info);
tmp.section_flag_list = (yyvsp[-1].flag_info);
lang_add_wild (&tmp, NULL, ldgram_had_keep);
}
#line 3077 "ldgram.c" /* yacc.c:1661 */
break;
 
case 136:
#line 630 "ldgram.y"
case 138:
#line 635 "ldgram.y" /* yacc.c:1661 */
{
lang_add_wild (NULL, (yyvsp[(2) - (3)].wildcard_list), ldgram_had_keep);
lang_add_wild (NULL, (yyvsp[-1].wildcard_list), ldgram_had_keep);
}
#line 3085 "ldgram.c" /* yacc.c:1661 */
break;
 
case 137:
#line 634 "ldgram.y"
case 139:
#line 639 "ldgram.y" /* yacc.c:1661 */
{
struct wildcard_spec tmp;
tmp.name = NULL;
tmp.exclude_name_list = NULL;
tmp.sorted = none;
tmp.section_flag_list = (yyvsp[(1) - (4)].flag_info);
lang_add_wild (&tmp, (yyvsp[(3) - (4)].wildcard_list), ldgram_had_keep);
tmp.section_flag_list = (yyvsp[-3].flag_info);
lang_add_wild (&tmp, (yyvsp[-1].wildcard_list), ldgram_had_keep);
}
#line 3098 "ldgram.c" /* yacc.c:1661 */
break;
 
case 138:
#line 643 "ldgram.y"
case 140:
#line 648 "ldgram.y" /* yacc.c:1661 */
{
lang_add_wild (&(yyvsp[(1) - (4)].wildcard), (yyvsp[(3) - (4)].wildcard_list), ldgram_had_keep);
lang_add_wild (&(yyvsp[-3].wildcard), (yyvsp[-1].wildcard_list), ldgram_had_keep);
}
#line 3106 "ldgram.c" /* yacc.c:1661 */
break;
 
case 139:
#line 647 "ldgram.y"
case 141:
#line 652 "ldgram.y" /* yacc.c:1661 */
{
(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);
(yyvsp[-3].wildcard).section_flag_list = (yyvsp[-4].flag_info);
lang_add_wild (&(yyvsp[-3].wildcard), (yyvsp[-1].wildcard_list), ldgram_had_keep);
}
#line 3115 "ldgram.c" /* yacc.c:1661 */
break;
 
case 141:
#line 656 "ldgram.y"
case 143:
#line 661 "ldgram.y" /* yacc.c:1661 */
{ ldgram_had_keep = TRUE; }
#line 3121 "ldgram.c" /* yacc.c:1661 */
break;
 
case 142:
#line 658 "ldgram.y"
case 144:
#line 663 "ldgram.y" /* yacc.c:1661 */
{ ldgram_had_keep = FALSE; }
#line 3127 "ldgram.c" /* yacc.c:1661 */
break;
 
case 144:
#line 664 "ldgram.y"
case 146:
#line 669 "ldgram.y" /* yacc.c:1661 */
{
lang_add_attribute(lang_object_symbols_statement_enum);
}
#line 3135 "ldgram.c" /* yacc.c:1661 */
break;
 
case 146:
#line 669 "ldgram.y"
case 148:
#line 674 "ldgram.y" /* yacc.c:1661 */
{
 
lang_add_attribute(lang_constructors_statement_enum);
}
#line 3144 "ldgram.c" /* yacc.c:1661 */
break;
 
case 147:
#line 674 "ldgram.y"
case 149:
#line 679 "ldgram.y" /* yacc.c:1661 */
{
constructors_sorted = TRUE;
lang_add_attribute (lang_constructors_statement_enum);
}
#line 3153 "ldgram.c" /* yacc.c:1661 */
break;
 
case 149:
#line 680 "ldgram.y"
case 151:
#line 685 "ldgram.y" /* yacc.c:1661 */
{
lang_add_data ((int) (yyvsp[(1) - (4)].integer), (yyvsp[(3) - (4)].etree));
lang_add_data ((int) (yyvsp[-3].integer), (yyvsp[-1].etree));
}
#line 3161 "ldgram.c" /* yacc.c:1661 */
break;
 
case 150:
#line 685 "ldgram.y"
case 152:
#line 690 "ldgram.y" /* yacc.c:1661 */
{
lang_add_fill ((yyvsp[(3) - (4)].fill));
lang_add_fill ((yyvsp[-1].fill));
}
#line 3169 "ldgram.c" /* yacc.c:1661 */
break;
 
case 151:
#line 688 "ldgram.y"
case 153:
#line 693 "ldgram.y" /* yacc.c:1661 */
{ldlex_expression ();}
#line 3175 "ldgram.c" /* yacc.c:1661 */
break;
 
case 152:
#line 689 "ldgram.y"
case 154:
#line 694 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate ();
lang_add_assignment (exp_assert ((yyvsp[(4) - (8)].etree), (yyvsp[(6) - (8)].name))); }
lang_add_assignment (exp_assert ((yyvsp[-4].etree), (yyvsp[-2].name))); }
#line 3182 "ldgram.c" /* yacc.c:1661 */
break;
 
case 153:
#line 692 "ldgram.y"
{ ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
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 */
break;
 
case 154:
#line 694 "ldgram.y"
case 156:
#line 699 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate (); }
#line 3194 "ldgram.c" /* yacc.c:1661 */
break;
 
case 159:
#line 709 "ldgram.y"
{ (yyval.integer) = (yyvsp[(1) - (1)].token); }
case 161:
#line 714 "ldgram.y" /* yacc.c:1661 */
{ (yyval.integer) = (yyvsp[0].token); }
#line 3200 "ldgram.c" /* yacc.c:1661 */
break;
 
case 160:
#line 711 "ldgram.y"
{ (yyval.integer) = (yyvsp[(1) - (1)].token); }
case 162:
#line 716 "ldgram.y" /* yacc.c:1661 */
{ (yyval.integer) = (yyvsp[0].token); }
#line 3206 "ldgram.c" /* yacc.c:1661 */
break;
 
case 161:
#line 713 "ldgram.y"
{ (yyval.integer) = (yyvsp[(1) - (1)].token); }
case 163:
#line 718 "ldgram.y" /* yacc.c:1661 */
{ (yyval.integer) = (yyvsp[0].token); }
#line 3212 "ldgram.c" /* yacc.c:1661 */
break;
 
case 162:
#line 715 "ldgram.y"
{ (yyval.integer) = (yyvsp[(1) - (1)].token); }
case 164:
#line 720 "ldgram.y" /* yacc.c:1661 */
{ (yyval.integer) = (yyvsp[0].token); }
#line 3218 "ldgram.c" /* yacc.c:1661 */
break;
 
case 163:
#line 717 "ldgram.y"
{ (yyval.integer) = (yyvsp[(1) - (1)].token); }
case 165:
#line 722 "ldgram.y" /* yacc.c:1661 */
{ (yyval.integer) = (yyvsp[0].token); }
#line 3224 "ldgram.c" /* yacc.c:1661 */
break;
 
case 164:
#line 722 "ldgram.y"
case 166:
#line 727 "ldgram.y" /* yacc.c:1661 */
{
(yyval.fill) = exp_get_fill ((yyvsp[(1) - (1)].etree), 0, "fill value");
(yyval.fill) = exp_get_fill ((yyvsp[0].etree), 0, "fill value");
}
#line 3232 "ldgram.c" /* yacc.c:1661 */
break;
 
case 165:
#line 729 "ldgram.y"
{ (yyval.fill) = (yyvsp[(2) - (2)].fill); }
case 167:
#line 734 "ldgram.y" /* yacc.c:1661 */
{ (yyval.fill) = (yyvsp[0].fill); }
#line 3238 "ldgram.c" /* yacc.c:1661 */
break;
 
case 166:
#line 730 "ldgram.y"
case 168:
#line 735 "ldgram.y" /* yacc.c:1661 */
{ (yyval.fill) = (fill_type *) 0; }
#line 3244 "ldgram.c" /* yacc.c:1661 */
break;
 
case 167:
#line 735 "ldgram.y"
case 169:
#line 740 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = '+'; }
#line 3250 "ldgram.c" /* yacc.c:1661 */
break;
 
case 168:
#line 737 "ldgram.y"
case 170:
#line 742 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = '-'; }
#line 3256 "ldgram.c" /* yacc.c:1661 */
break;
 
case 169:
#line 739 "ldgram.y"
case 171:
#line 744 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = '*'; }
#line 3262 "ldgram.c" /* yacc.c:1661 */
break;
 
case 170:
#line 741 "ldgram.y"
case 172:
#line 746 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = '/'; }
#line 3268 "ldgram.c" /* yacc.c:1661 */
break;
 
case 171:
#line 743 "ldgram.y"
case 173:
#line 748 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = LSHIFT; }
#line 3274 "ldgram.c" /* yacc.c:1661 */
break;
 
case 172:
#line 745 "ldgram.y"
case 174:
#line 750 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = RSHIFT; }
#line 3280 "ldgram.c" /* yacc.c:1661 */
break;
 
case 173:
#line 747 "ldgram.y"
case 175:
#line 752 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = '&'; }
#line 3286 "ldgram.c" /* yacc.c:1661 */
break;
 
case 174:
#line 749 "ldgram.y"
case 176:
#line 754 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = '|'; }
#line 3292 "ldgram.c" /* yacc.c:1661 */
break;
 
case 177:
#line 759 "ldgram.y"
case 179:
#line 764 "ldgram.y" /* yacc.c:1661 */
{
lang_add_assignment (exp_assign ((yyvsp[(1) - (3)].name), (yyvsp[(3) - (3)].etree), FALSE));
lang_add_assignment (exp_assign ((yyvsp[-2].name), (yyvsp[0].etree), FALSE));
}
#line 3300 "ldgram.c" /* yacc.c:1661 */
break;
 
case 178:
#line 763 "ldgram.y"
case 180:
#line 768 "ldgram.y" /* yacc.c:1661 */
{
lang_add_assignment (exp_assign ((yyvsp[(1) - (3)].name),
exp_binop ((yyvsp[(2) - (3)].token),
lang_add_assignment (exp_assign ((yyvsp[-2].name),
exp_binop ((yyvsp[-1].token),
exp_nameop (NAME,
(yyvsp[(1) - (3)].name)),
(yyvsp[(3) - (3)].etree)), FALSE));
(yyvsp[-2].name)),
(yyvsp[0].etree)), FALSE));
}
#line 3312 "ldgram.c" /* yacc.c:1661 */
break;
 
case 179:
#line 771 "ldgram.y"
case 181:
#line 776 "ldgram.y" /* yacc.c:1661 */
{
lang_add_assignment (exp_assign ((yyvsp[(3) - (6)].name), (yyvsp[(5) - (6)].etree), TRUE));
lang_add_assignment (exp_assign ((yyvsp[-3].name), (yyvsp[-1].etree), TRUE));
}
#line 3320 "ldgram.c" /* yacc.c:1661 */
break;
 
case 180:
#line 775 "ldgram.y"
case 182:
#line 780 "ldgram.y" /* yacc.c:1661 */
{
lang_add_assignment (exp_provide ((yyvsp[(3) - (6)].name), (yyvsp[(5) - (6)].etree), FALSE));
lang_add_assignment (exp_provide ((yyvsp[-3].name), (yyvsp[-1].etree), FALSE));
}
#line 3328 "ldgram.c" /* yacc.c:1661 */
break;
 
case 181:
#line 779 "ldgram.y"
case 183:
#line 784 "ldgram.y" /* yacc.c:1661 */
{
lang_add_assignment (exp_provide ((yyvsp[(3) - (6)].name), (yyvsp[(5) - (6)].etree), TRUE));
lang_add_assignment (exp_provide ((yyvsp[-3].name), (yyvsp[-1].etree), TRUE));
}
#line 3336 "ldgram.c" /* yacc.c:1661 */
break;
 
case 189:
#line 802 "ldgram.y"
{ region = lang_memory_region_lookup ((yyvsp[(1) - (1)].name), TRUE); }
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 */
break;
 
case 190:
#line 805 "ldgram.y"
case 192:
#line 810 "ldgram.y" /* yacc.c:1661 */
{}
#line 3348 "ldgram.c" /* yacc.c:1661 */
break;
 
case 191:
#line 807 "ldgram.y"
{ ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
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 */
break;
 
case 192:
#line 809 "ldgram.y"
case 194:
#line 814 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate (); }
#line 3360 "ldgram.c" /* yacc.c:1661 */
break;
 
case 193:
#line 814 "ldgram.y"
case 195:
#line 819 "ldgram.y" /* yacc.c:1661 */
{
region->origin = exp_get_vma ((yyvsp[(3) - (3)].etree), 0, "origin");
region->origin_exp = (yyvsp[0].etree);
region->current = region->origin;
}
#line 3369 "ldgram.c" /* yacc.c:1661 */
break;
 
case 194:
#line 822 "ldgram.y"
case 196:
#line 827 "ldgram.y" /* yacc.c:1661 */
{
region->length = exp_get_vma ((yyvsp[(3) - (3)].etree), -1, "length");
region->length_exp = (yyvsp[0].etree);
}
#line 3377 "ldgram.c" /* yacc.c:1661 */
break;
 
case 195:
#line 829 "ldgram.y"
case 197:
#line 834 "ldgram.y" /* yacc.c:1661 */
{ /* dummy action to avoid bison 1.25 error message */ }
#line 3383 "ldgram.c" /* yacc.c:1661 */
break;
 
case 199:
#line 840 "ldgram.y"
{ lang_set_flags (region, (yyvsp[(1) - (1)].name), 0); }
case 201:
#line 845 "ldgram.y" /* yacc.c:1661 */
{ lang_set_flags (region, (yyvsp[0].name), 0); }
#line 3389 "ldgram.c" /* yacc.c:1661 */
break;
 
case 200:
#line 842 "ldgram.y"
{ lang_set_flags (region, (yyvsp[(2) - (2)].name), 1); }
case 202:
#line 847 "ldgram.y" /* yacc.c:1661 */
{ lang_set_flags (region, (yyvsp[0].name), 1); }
#line 3395 "ldgram.c" /* yacc.c:1661 */
break;
 
case 201:
#line 847 "ldgram.y"
{ lang_startup((yyvsp[(3) - (4)].name)); }
case 203:
#line 852 "ldgram.y" /* yacc.c:1661 */
{ lang_startup((yyvsp[-1].name)); }
#line 3401 "ldgram.c" /* yacc.c:1661 */
break;
 
case 203:
#line 853 "ldgram.y"
case 205:
#line 858 "ldgram.y" /* yacc.c:1661 */
{ ldemul_hll((char *)NULL); }
#line 3407 "ldgram.c" /* yacc.c:1661 */
break;
 
case 204:
#line 858 "ldgram.y"
{ ldemul_hll((yyvsp[(3) - (3)].name)); }
case 206:
#line 863 "ldgram.y" /* yacc.c:1661 */
{ ldemul_hll((yyvsp[0].name)); }
#line 3413 "ldgram.c" /* yacc.c:1661 */
break;
 
case 205:
#line 860 "ldgram.y"
{ ldemul_hll((yyvsp[(1) - (1)].name)); }
case 207:
#line 865 "ldgram.y" /* yacc.c:1661 */
{ ldemul_hll((yyvsp[0].name)); }
#line 3419 "ldgram.c" /* yacc.c:1661 */
break;
 
case 207:
#line 868 "ldgram.y"
{ ldemul_syslib((yyvsp[(3) - (3)].name)); }
case 209:
#line 873 "ldgram.y" /* yacc.c:1661 */
{ ldemul_syslib((yyvsp[0].name)); }
#line 3425 "ldgram.c" /* yacc.c:1661 */
break;
 
case 209:
#line 874 "ldgram.y"
case 211:
#line 879 "ldgram.y" /* yacc.c:1661 */
{ lang_float(TRUE); }
#line 3431 "ldgram.c" /* yacc.c:1661 */
break;
 
case 210:
#line 876 "ldgram.y"
case 212:
#line 881 "ldgram.y" /* yacc.c:1661 */
{ lang_float(FALSE); }
#line 3437 "ldgram.c" /* yacc.c:1661 */
break;
 
case 211:
#line 881 "ldgram.y"
case 213:
#line 886 "ldgram.y" /* yacc.c:1661 */
{
(yyval.nocrossref) = NULL;
}
#line 3445 "ldgram.c" /* yacc.c:1661 */
break;
 
case 212:
#line 885 "ldgram.y"
case 214:
#line 890 "ldgram.y" /* yacc.c:1661 */
{
struct lang_nocrossref *n;
 
n = (struct lang_nocrossref *) xmalloc (sizeof *n);
n->name = (yyvsp[(1) - (2)].name);
n->next = (yyvsp[(2) - (2)].nocrossref);
n->name = (yyvsp[-1].name);
n->next = (yyvsp[0].nocrossref);
(yyval.nocrossref) = n;
}
#line 3458 "ldgram.c" /* yacc.c:1661 */
break;
 
case 213:
#line 894 "ldgram.y"
case 215:
#line 899 "ldgram.y" /* yacc.c:1661 */
{
struct lang_nocrossref *n;
 
n = (struct lang_nocrossref *) xmalloc (sizeof *n);
n->name = (yyvsp[(1) - (3)].name);
n->next = (yyvsp[(3) - (3)].nocrossref);
n->name = (yyvsp[-2].name);
n->next = (yyvsp[0].nocrossref);
(yyval.nocrossref) = n;
}
#line 3471 "ldgram.c" /* yacc.c:1661 */
break;
 
case 214:
#line 904 "ldgram.y"
case 216:
#line 909 "ldgram.y" /* yacc.c:1661 */
{ 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 913 "ldgram.y"
{ (yyval.etree) = (yyvsp[(2) - (3)].etree); }
#line 911 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate (); (yyval.etree)=(yyvsp[0].etree);}
#line 3483 "ldgram.c" /* yacc.c:1661 */
break;
 
case 218:
#line 915 "ldgram.y"
{ (yyval.etree) = exp_unop ((int) (yyvsp[(1) - (4)].integer),(yyvsp[(3) - (4)].etree)); }
#line 916 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_unop ('-', (yyvsp[0].etree)); }
#line 3489 "ldgram.c" /* yacc.c:1661 */
break;
 
case 219:
#line 917 "ldgram.y"
{ (yyval.etree) = exp_unop ('!', (yyvsp[(2) - (2)].etree)); }
#line 918 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[-1].etree); }
#line 3495 "ldgram.c" /* yacc.c:1661 */
break;
 
case 220:
#line 919 "ldgram.y"
{ (yyval.etree) = (yyvsp[(2) - (2)].etree); }
#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 */
break;
 
case 221:
#line 921 "ldgram.y"
{ (yyval.etree) = exp_unop ('~', (yyvsp[(2) - (2)].etree));}
#line 922 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_unop ('!', (yyvsp[0].etree)); }
#line 3507 "ldgram.c" /* yacc.c:1661 */
break;
 
case 222:
#line 924 "ldgram.y"
{ (yyval.etree) = exp_binop ('*', (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#line 924 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[0].etree); }
#line 3513 "ldgram.c" /* yacc.c:1661 */
break;
 
case 223:
#line 926 "ldgram.y"
{ (yyval.etree) = exp_binop ('/', (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#line 926 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_unop ('~', (yyvsp[0].etree));}
#line 3519 "ldgram.c" /* yacc.c:1661 */
break;
 
case 224:
#line 928 "ldgram.y"
{ (yyval.etree) = exp_binop ('%', (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#line 929 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('*', (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3525 "ldgram.c" /* yacc.c:1661 */
break;
 
case 225:
#line 930 "ldgram.y"
{ (yyval.etree) = exp_binop ('+', (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#line 931 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('/', (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3531 "ldgram.c" /* yacc.c:1661 */
break;
 
case 226:
#line 932 "ldgram.y"
{ (yyval.etree) = exp_binop ('-' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#line 933 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('%', (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3537 "ldgram.c" /* yacc.c:1661 */
break;
 
case 227:
#line 934 "ldgram.y"
{ (yyval.etree) = exp_binop (LSHIFT , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#line 935 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('+', (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3543 "ldgram.c" /* yacc.c:1661 */
break;
 
case 228:
#line 936 "ldgram.y"
{ (yyval.etree) = exp_binop (RSHIFT , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#line 937 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('-' , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3549 "ldgram.c" /* yacc.c:1661 */
break;
 
case 229:
#line 938 "ldgram.y"
{ (yyval.etree) = exp_binop (EQ , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#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 */
break;
 
case 230:
#line 940 "ldgram.y"
{ (yyval.etree) = exp_binop (NE , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#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 */
break;
 
case 231:
#line 942 "ldgram.y"
{ (yyval.etree) = exp_binop (LE , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#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 */
break;
 
case 232:
#line 944 "ldgram.y"
{ (yyval.etree) = exp_binop (GE , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#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 */
break;
 
case 233:
#line 946 "ldgram.y"
{ (yyval.etree) = exp_binop ('<' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#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 */
break;
 
case 234:
#line 948 "ldgram.y"
{ (yyval.etree) = exp_binop ('>' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#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 */
break;
 
case 235:
#line 950 "ldgram.y"
{ (yyval.etree) = exp_binop ('&' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#line 951 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('<' , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3591 "ldgram.c" /* yacc.c:1661 */
break;
 
case 236:
#line 952 "ldgram.y"
{ (yyval.etree) = exp_binop ('^' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#line 953 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('>' , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3597 "ldgram.c" /* yacc.c:1661 */
break;
 
case 237:
#line 954 "ldgram.y"
{ (yyval.etree) = exp_binop ('|' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#line 955 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('&' , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3603 "ldgram.c" /* yacc.c:1661 */
break;
 
case 238:
#line 956 "ldgram.y"
{ (yyval.etree) = exp_trinop ('?' , (yyvsp[(1) - (5)].etree), (yyvsp[(3) - (5)].etree), (yyvsp[(5) - (5)].etree)); }
#line 957 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('^' , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3609 "ldgram.c" /* yacc.c:1661 */
break;
 
case 239:
#line 958 "ldgram.y"
{ (yyval.etree) = exp_binop (ANDAND , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#line 959 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_binop ('|' , (yyvsp[-2].etree), (yyvsp[0].etree)); }
#line 3615 "ldgram.c" /* yacc.c:1661 */
break;
 
case 240:
#line 960 "ldgram.y"
{ (yyval.etree) = exp_binop (OROR , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
#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 */
break;
 
case 241:
#line 962 "ldgram.y"
{ (yyval.etree) = exp_nameop (DEFINED, (yyvsp[(3) - (4)].name)); }
#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 */
break;
 
case 242:
#line 964 "ldgram.y"
{ (yyval.etree) = exp_bigintop ((yyvsp[(1) - (1)].bigint).integer, (yyvsp[(1) - (1)].bigint).str); }
#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 */
break;
 
case 243:
#line 966 "ldgram.y"
{ (yyval.etree) = exp_nameop (SIZEOF_HEADERS,0); }
#line 967 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (DEFINED, (yyvsp[-1].name)); }
#line 3639 "ldgram.c" /* yacc.c:1661 */
break;
 
case 244:
#line 969 "ldgram.y"
{ (yyval.etree) = exp_nameop (ALIGNOF,(yyvsp[(3) - (4)].name)); }
#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 */
break;
 
case 245:
#line 971 "ldgram.y"
{ (yyval.etree) = exp_nameop (SIZEOF,(yyvsp[(3) - (4)].name)); }
#line 971 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (SIZEOF_HEADERS,0); }
#line 3651 "ldgram.c" /* yacc.c:1661 */
break;
 
case 246:
#line 973 "ldgram.y"
{ (yyval.etree) = exp_nameop (ADDR,(yyvsp[(3) - (4)].name)); }
#line 974 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (ALIGNOF,(yyvsp[-1].name)); }
#line 3657 "ldgram.c" /* yacc.c:1661 */
break;
 
case 247:
#line 975 "ldgram.y"
{ (yyval.etree) = exp_nameop (LOADADDR,(yyvsp[(3) - (4)].name)); }
#line 976 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (SIZEOF,(yyvsp[-1].name)); }
#line 3663 "ldgram.c" /* yacc.c:1661 */
break;
 
case 248:
#line 977 "ldgram.y"
{ (yyval.etree) = exp_nameop (CONSTANT,(yyvsp[(3) - (4)].name)); }
#line 978 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (ADDR,(yyvsp[-1].name)); }
#line 3669 "ldgram.c" /* yacc.c:1661 */
break;
 
case 249:
#line 979 "ldgram.y"
{ (yyval.etree) = exp_unop (ABSOLUTE, (yyvsp[(3) - (4)].etree)); }
#line 980 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (LOADADDR,(yyvsp[-1].name)); }
#line 3675 "ldgram.c" /* yacc.c:1661 */
break;
 
case 250:
#line 981 "ldgram.y"
{ (yyval.etree) = exp_unop (ALIGN_K,(yyvsp[(3) - (4)].etree)); }
#line 982 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (CONSTANT,(yyvsp[-1].name)); }
#line 3681 "ldgram.c" /* yacc.c:1661 */
break;
 
case 251:
#line 983 "ldgram.y"
{ (yyval.etree) = exp_binop (ALIGN_K,(yyvsp[(3) - (6)].etree),(yyvsp[(5) - (6)].etree)); }
#line 984 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_unop (ABSOLUTE, (yyvsp[-1].etree)); }
#line 3687 "ldgram.c" /* yacc.c:1661 */
break;
 
case 252:
#line 985 "ldgram.y"
{ (yyval.etree) = exp_binop (DATA_SEGMENT_ALIGN, (yyvsp[(3) - (6)].etree), (yyvsp[(5) - (6)].etree)); }
#line 986 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_unop (ALIGN_K,(yyvsp[-1].etree)); }
#line 3693 "ldgram.c" /* yacc.c:1661 */
break;
 
case 253:
#line 987 "ldgram.y"
{ (yyval.etree) = exp_binop (DATA_SEGMENT_RELRO_END, (yyvsp[(5) - (6)].etree), (yyvsp[(3) - (6)].etree)); }
#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 */
break;
 
case 254:
#line 989 "ldgram.y"
{ (yyval.etree) = exp_unop (DATA_SEGMENT_END, (yyvsp[(3) - (4)].etree)); }
#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 */
break;
 
case 255:
#line 991 "ldgram.y"
#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 */
{ /* The operands to the expression node are
placed in the opposite order from the way
in which they appear in the script as
3817,363 → 3724,426
that allows us to reuse more code in
fold_binary. */
(yyval.etree) = exp_binop (SEGMENT_START,
(yyvsp[(5) - (6)].etree),
exp_nameop (NAME, (yyvsp[(3) - (6)].name))); }
(yyvsp[-1].etree),
exp_nameop (NAME, (yyvsp[-3].name))); }
#line 3730 "ldgram.c" /* yacc.c:1661 */
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 1004 "ldgram.y"
{ (yyval.etree) = exp_binop (MAX_K, (yyvsp[(3) - (6)].etree), (yyvsp[(5) - (6)].etree) ); }
#line 1005 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_unop (ALIGN_K,(yyvsp[-1].etree)); }
#line 3736 "ldgram.c" /* yacc.c:1661 */
break;
 
case 259:
#line 1006 "ldgram.y"
{ (yyval.etree) = exp_binop (MIN_K, (yyvsp[(3) - (6)].etree), (yyvsp[(5) - (6)].etree) ); }
#line 1007 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (NAME,(yyvsp[0].name)); }
#line 3742 "ldgram.c" /* yacc.c:1661 */
break;
 
case 260:
#line 1008 "ldgram.y"
{ (yyval.etree) = exp_assert ((yyvsp[(3) - (6)].etree), (yyvsp[(5) - (6)].name)); }
#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 */
break;
 
case 261:
#line 1010 "ldgram.y"
{ (yyval.etree) = exp_nameop (ORIGIN, (yyvsp[(3) - (4)].name)); }
#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 */
break;
 
case 262:
#line 1012 "ldgram.y"
{ (yyval.etree) = exp_nameop (LENGTH, (yyvsp[(3) - (4)].name)); }
#line 1013 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_assert ((yyvsp[-3].etree), (yyvsp[-1].name)); }
#line 3760 "ldgram.c" /* yacc.c:1661 */
break;
 
case 263:
#line 1014 "ldgram.y"
{ (yyval.etree) = exp_unop (LOG2CEIL, (yyvsp[(3) - (4)].etree)); }
#line 1015 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (ORIGIN, (yyvsp[-1].name)); }
#line 3766 "ldgram.c" /* yacc.c:1661 */
break;
 
case 264:
#line 1019 "ldgram.y"
{ (yyval.name) = (yyvsp[(3) - (3)].name); }
#line 1017 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_nameop (LENGTH, (yyvsp[-1].name)); }
#line 3772 "ldgram.c" /* yacc.c:1661 */
break;
 
case 265:
#line 1020 "ldgram.y"
{ (yyval.name) = 0; }
#line 1019 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = exp_unop (LOG2CEIL, (yyvsp[-1].etree)); }
#line 3778 "ldgram.c" /* yacc.c:1661 */
break;
 
case 266:
#line 1024 "ldgram.y"
{ (yyval.etree) = (yyvsp[(3) - (4)].etree); }
#line 1024 "ldgram.y" /* yacc.c:1661 */
{ (yyval.name) = (yyvsp[0].name); }
#line 3784 "ldgram.c" /* yacc.c:1661 */
break;
 
case 267:
#line 1025 "ldgram.y"
{ (yyval.etree) = 0; }
#line 1025 "ldgram.y" /* yacc.c:1661 */
{ (yyval.name) = 0; }
#line 3790 "ldgram.c" /* yacc.c:1661 */
break;
 
case 268:
#line 1029 "ldgram.y"
{ (yyval.etree) = (yyvsp[(3) - (4)].etree); }
#line 1029 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[-1].etree); }
#line 3796 "ldgram.c" /* yacc.c:1661 */
break;
 
case 269:
#line 1030 "ldgram.y"
#line 1030 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = 0; }
#line 3802 "ldgram.c" /* yacc.c:1661 */
break;
 
case 270:
#line 1034 "ldgram.y"
{ (yyval.token) = ALIGN_WITH_INPUT; }
#line 1034 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[-1].etree); }
#line 3808 "ldgram.c" /* yacc.c:1661 */
break;
 
case 271:
#line 1035 "ldgram.y"
{ (yyval.token) = 0; }
#line 1035 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = 0; }
#line 3814 "ldgram.c" /* yacc.c:1661 */
break;
 
case 272:
#line 1039 "ldgram.y"
{ (yyval.etree) = (yyvsp[(3) - (4)].etree); }
#line 1039 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = ALIGN_WITH_INPUT; }
#line 3820 "ldgram.c" /* yacc.c:1661 */
break;
 
case 273:
#line 1040 "ldgram.y"
#line 1040 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = 0; }
#line 3826 "ldgram.c" /* yacc.c:1661 */
break;
 
case 274:
#line 1044 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[-1].etree); }
#line 3832 "ldgram.c" /* yacc.c:1661 */
break;
 
case 275:
#line 1045 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = 0; }
#line 3838 "ldgram.c" /* yacc.c:1661 */
break;
 
case 274:
#line 1044 "ldgram.y"
case 276:
#line 1049 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = ONLY_IF_RO; }
#line 3844 "ldgram.c" /* yacc.c:1661 */
break;
 
case 275:
#line 1045 "ldgram.y"
case 277:
#line 1050 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = ONLY_IF_RW; }
#line 3850 "ldgram.c" /* yacc.c:1661 */
break;
 
case 276:
#line 1046 "ldgram.y"
case 278:
#line 1051 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = SPECIAL; }
#line 3856 "ldgram.c" /* yacc.c:1661 */
break;
 
case 277:
#line 1047 "ldgram.y"
case 279:
#line 1052 "ldgram.y" /* yacc.c:1661 */
{ (yyval.token) = 0; }
#line 3862 "ldgram.c" /* yacc.c:1661 */
break;
 
case 278:
#line 1050 "ldgram.y"
case 280:
#line 1055 "ldgram.y" /* yacc.c:1661 */
{ ldlex_expression(); }
#line 3868 "ldgram.c" /* yacc.c:1661 */
break;
 
case 279:
#line 1055 "ldgram.y"
case 281:
#line 1060 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate (); ldlex_script (); }
#line 3874 "ldgram.c" /* yacc.c:1661 */
break;
 
case 280:
#line 1058 "ldgram.y"
case 282:
#line 1063 "ldgram.y" /* yacc.c:1661 */
{
lang_enter_output_section_statement((yyvsp[(1) - (10)].name), (yyvsp[(3) - (10)].etree),
lang_enter_output_section_statement((yyvsp[-9].name), (yyvsp[-7].etree),
sectype,
(yyvsp[(5) - (10)].etree), (yyvsp[(7) - (10)].etree), (yyvsp[(4) - (10)].etree), (yyvsp[(9) - (10)].token), (yyvsp[(6) - (10)].token));
(yyvsp[-5].etree), (yyvsp[-3].etree), (yyvsp[-6].etree), (yyvsp[-1].token), (yyvsp[-4].token));
}
#line 3884 "ldgram.c" /* yacc.c:1661 */
break;
 
case 281:
#line 1064 "ldgram.y"
case 283:
#line 1069 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate (); ldlex_expression (); }
#line 3890 "ldgram.c" /* yacc.c:1661 */
break;
 
case 282:
#line 1066 "ldgram.y"
case 284:
#line 1071 "ldgram.y" /* yacc.c:1661 */
{
ldlex_popstate ();
lang_leave_output_section_statement ((yyvsp[(18) - (18)].fill), (yyvsp[(15) - (18)].name), (yyvsp[(17) - (18)].section_phdr), (yyvsp[(16) - (18)].name));
lang_leave_output_section_statement ((yyvsp[0].fill), (yyvsp[-3].name), (yyvsp[-1].section_phdr), (yyvsp[-2].name));
}
#line 3899 "ldgram.c" /* yacc.c:1661 */
break;
 
case 283:
#line 1071 "ldgram.y"
case 285:
#line 1076 "ldgram.y" /* yacc.c:1661 */
{}
#line 3905 "ldgram.c" /* yacc.c:1661 */
break;
 
case 284:
#line 1073 "ldgram.y"
case 286:
#line 1078 "ldgram.y" /* yacc.c:1661 */
{ ldlex_expression (); }
#line 3911 "ldgram.c" /* yacc.c:1661 */
break;
 
case 285:
#line 1075 "ldgram.y"
case 287:
#line 1080 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate (); ldlex_script (); }
#line 3917 "ldgram.c" /* yacc.c:1661 */
break;
 
case 286:
#line 1077 "ldgram.y"
case 288:
#line 1082 "ldgram.y" /* yacc.c:1661 */
{
lang_enter_overlay ((yyvsp[(3) - (8)].etree), (yyvsp[(6) - (8)].etree));
lang_enter_overlay ((yyvsp[-5].etree), (yyvsp[-2].etree));
}
#line 3925 "ldgram.c" /* yacc.c:1661 */
break;
 
case 287:
#line 1082 "ldgram.y"
case 289:
#line 1087 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate (); ldlex_expression (); }
#line 3931 "ldgram.c" /* yacc.c:1661 */
break;
 
case 288:
#line 1084 "ldgram.y"
case 290:
#line 1089 "ldgram.y" /* yacc.c:1661 */
{
ldlex_popstate ();
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));
lang_leave_overlay ((yyvsp[-11].etree), (int) (yyvsp[-12].integer),
(yyvsp[0].fill), (yyvsp[-3].name), (yyvsp[-1].section_phdr), (yyvsp[-2].name));
}
#line 3941 "ldgram.c" /* yacc.c:1661 */
break;
 
case 290:
#line 1094 "ldgram.y"
case 292:
#line 1099 "ldgram.y" /* yacc.c:1661 */
{ ldlex_expression (); }
#line 3947 "ldgram.c" /* yacc.c:1661 */
break;
 
case 291:
#line 1096 "ldgram.y"
case 293:
#line 1101 "ldgram.y" /* yacc.c:1661 */
{
ldlex_popstate ();
lang_add_assignment (exp_assign (".", (yyvsp[(3) - (3)].etree), FALSE));
lang_add_assignment (exp_assign (".", (yyvsp[0].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 1108 "ldgram.y"
{ sectype = noload_section; }
#line 1107 "ldgram.y" /* yacc.c:1661 */
{ ldlex_script (); ldfile_open_command_file((yyvsp[0].name)); }
#line 3962 "ldgram.c" /* yacc.c:1661 */
break;
 
case 296:
#line 1109 "ldgram.y"
{ sectype = noalloc_section; }
#line 1109 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate (); }
#line 3968 "ldgram.c" /* yacc.c:1661 */
break;
 
case 297:
#line 1110 "ldgram.y"
{ sectype = noalloc_section; }
#line 1113 "ldgram.y" /* yacc.c:1661 */
{ sectype = noload_section; }
#line 3974 "ldgram.c" /* yacc.c:1661 */
break;
 
case 298:
#line 1111 "ldgram.y"
#line 1114 "ldgram.y" /* yacc.c:1661 */
{ sectype = noalloc_section; }
#line 3980 "ldgram.c" /* yacc.c:1661 */
break;
 
case 299:
#line 1112 "ldgram.y"
#line 1115 "ldgram.y" /* yacc.c:1661 */
{ sectype = noalloc_section; }
#line 3986 "ldgram.c" /* yacc.c:1661 */
break;
 
case 301:
#line 1117 "ldgram.y"
{ sectype = normal_section; }
case 300:
#line 1116 "ldgram.y" /* yacc.c:1661 */
{ sectype = noalloc_section; }
#line 3992 "ldgram.c" /* yacc.c:1661 */
break;
 
case 302:
#line 1118 "ldgram.y"
{ sectype = normal_section; }
case 301:
#line 1117 "ldgram.y" /* yacc.c:1661 */
{ sectype = noalloc_section; }
#line 3998 "ldgram.c" /* yacc.c:1661 */
break;
 
case 303:
#line 1122 "ldgram.y"
{ (yyval.etree) = (yyvsp[(1) - (3)].etree); }
#line 1122 "ldgram.y" /* yacc.c:1661 */
{ sectype = normal_section; }
#line 4004 "ldgram.c" /* yacc.c:1661 */
break;
 
case 304:
#line 1123 "ldgram.y"
{ (yyval.etree) = (etree_type *)NULL; }
#line 1123 "ldgram.y" /* yacc.c:1661 */
{ sectype = normal_section; }
#line 4010 "ldgram.c" /* yacc.c:1661 */
break;
 
case 305:
#line 1128 "ldgram.y"
{ (yyval.etree) = (yyvsp[(3) - (6)].etree); }
#line 1127 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[-2].etree); }
#line 4016 "ldgram.c" /* yacc.c:1661 */
break;
 
case 306:
#line 1130 "ldgram.y"
{ (yyval.etree) = (yyvsp[(3) - (10)].etree); }
#line 1128 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (etree_type *)NULL; }
#line 4022 "ldgram.c" /* yacc.c:1661 */
break;
 
case 307:
#line 1134 "ldgram.y"
{ (yyval.etree) = (yyvsp[(1) - (2)].etree); }
#line 1133 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[-3].etree); }
#line 4028 "ldgram.c" /* yacc.c:1661 */
break;
 
case 308:
#line 1135 "ldgram.y"
{ (yyval.etree) = (etree_type *) NULL; }
#line 1135 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[-7].etree); }
#line 4034 "ldgram.c" /* yacc.c:1661 */
break;
 
case 309:
#line 1140 "ldgram.y"
{ (yyval.integer) = 0; }
#line 1139 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (yyvsp[-1].etree); }
#line 4040 "ldgram.c" /* yacc.c:1661 */
break;
 
case 310:
#line 1142 "ldgram.y"
{ (yyval.integer) = 1; }
#line 1140 "ldgram.y" /* yacc.c:1661 */
{ (yyval.etree) = (etree_type *) NULL; }
#line 4046 "ldgram.c" /* yacc.c:1661 */
break;
 
case 311:
#line 1147 "ldgram.y"
{ (yyval.name) = (yyvsp[(2) - (2)].name); }
#line 1145 "ldgram.y" /* yacc.c:1661 */
{ (yyval.integer) = 0; }
#line 4052 "ldgram.c" /* yacc.c:1661 */
break;
 
case 312:
#line 1148 "ldgram.y"
#line 1147 "ldgram.y" /* yacc.c:1661 */
{ (yyval.integer) = 1; }
#line 4058 "ldgram.c" /* yacc.c:1661 */
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 313:
#line 1153 "ldgram.y"
case 315:
#line 1158 "ldgram.y" /* yacc.c:1661 */
{
(yyval.section_phdr) = NULL;
}
#line 4078 "ldgram.c" /* yacc.c:1661 */
break;
 
case 314:
#line 1157 "ldgram.y"
case 316:
#line 1162 "ldgram.y" /* yacc.c:1661 */
{
struct lang_output_section_phdr_list *n;
 
n = ((struct lang_output_section_phdr_list *)
xmalloc (sizeof *n));
n->name = (yyvsp[(3) - (3)].name);
n->name = (yyvsp[0].name);
n->used = FALSE;
n->next = (yyvsp[(1) - (3)].section_phdr);
n->next = (yyvsp[-2].section_phdr);
(yyval.section_phdr) = n;
}
#line 4093 "ldgram.c" /* yacc.c:1661 */
break;
 
case 316:
#line 1173 "ldgram.y"
case 318:
#line 1178 "ldgram.y" /* yacc.c:1661 */
{
ldlex_script ();
lang_enter_overlay_section ((yyvsp[(2) - (2)].name));
lang_enter_overlay_section ((yyvsp[0].name));
}
#line 4102 "ldgram.c" /* yacc.c:1661 */
break;
 
case 317:
#line 1178 "ldgram.y"
case 319:
#line 1183 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate (); ldlex_expression (); }
#line 4108 "ldgram.c" /* yacc.c:1661 */
break;
 
case 318:
#line 1180 "ldgram.y"
case 320:
#line 1185 "ldgram.y" /* yacc.c:1661 */
{
ldlex_popstate ();
lang_leave_overlay_section ((yyvsp[(9) - (9)].fill), (yyvsp[(8) - (9)].section_phdr));
lang_leave_overlay_section ((yyvsp[0].fill), (yyvsp[-1].section_phdr));
}
#line 4117 "ldgram.c" /* yacc.c:1661 */
break;
 
case 323:
#line 1197 "ldgram.y"
case 325:
#line 1202 "ldgram.y" /* yacc.c:1661 */
{ ldlex_expression (); }
#line 4123 "ldgram.c" /* yacc.c:1661 */
break;
 
case 324:
#line 1198 "ldgram.y"
case 326:
#line 1203 "ldgram.y" /* yacc.c:1661 */
{ ldlex_popstate (); }
#line 4129 "ldgram.c" /* yacc.c:1661 */
break;
 
case 325:
#line 1200 "ldgram.y"
case 327:
#line 1205 "ldgram.y" /* yacc.c:1661 */
{
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);
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);
}
#line 4138 "ldgram.c" /* yacc.c:1661 */
break;
 
case 326:
#line 1208 "ldgram.y"
case 328:
#line 1213 "ldgram.y" /* yacc.c:1661 */
{
(yyval.etree) = (yyvsp[(1) - (1)].etree);
(yyval.etree) = (yyvsp[0].etree);
 
if ((yyvsp[(1) - (1)].etree)->type.node_class == etree_name
&& (yyvsp[(1) - (1)].etree)->type.node_code == NAME)
if ((yyvsp[0].etree)->type.node_class == etree_name
&& (yyvsp[0].etree)->type.node_code == NAME)
{
const char *s;
unsigned int i;
4184,7 → 4154,7
"PT_PHDR", "PT_TLS"
};
 
s = (yyvsp[(1) - (1)].etree)->name.name;
s = (yyvsp[0].etree)->name.name;
for (i = 0;
i < sizeof phdr_types / sizeof phdr_types[0];
i++)
4209,286 → 4179,333
}
}
}
#line 4183 "ldgram.c" /* yacc.c:1661 */
break;
 
case 327:
#line 1252 "ldgram.y"
case 329:
#line 1257 "ldgram.y" /* yacc.c:1661 */
{
memset (&(yyval.phdr), 0, sizeof (struct phdr_info));
}
#line 4191 "ldgram.c" /* yacc.c:1661 */
break;
 
case 328:
#line 1256 "ldgram.y"
case 330:
#line 1261 "ldgram.y" /* yacc.c:1661 */
{
(yyval.phdr) = (yyvsp[(3) - (3)].phdr);
if (strcmp ((yyvsp[(1) - (3)].name), "FILEHDR") == 0 && (yyvsp[(2) - (3)].etree) == NULL)
(yyval.phdr) = (yyvsp[0].phdr);
if (strcmp ((yyvsp[-2].name), "FILEHDR") == 0 && (yyvsp[-1].etree) == NULL)
(yyval.phdr).filehdr = TRUE;
else if (strcmp ((yyvsp[(1) - (3)].name), "PHDRS") == 0 && (yyvsp[(2) - (3)].etree) == NULL)
else if (strcmp ((yyvsp[-2].name), "PHDRS") == 0 && (yyvsp[-1].etree) == NULL)
(yyval.phdr).phdrs = TRUE;
else if (strcmp ((yyvsp[(1) - (3)].name), "FLAGS") == 0 && (yyvsp[(2) - (3)].etree) != NULL)
(yyval.phdr).flags = (yyvsp[(2) - (3)].etree);
else if (strcmp ((yyvsp[-2].name), "FLAGS") == 0 && (yyvsp[-1].etree) != NULL)
(yyval.phdr).flags = (yyvsp[-1].etree);
else
einfo (_("%X%P:%S: PHDRS syntax error at `%s'\n"),
NULL, (yyvsp[(1) - (3)].name));
NULL, (yyvsp[-2].name));
}
#line 4208 "ldgram.c" /* yacc.c:1661 */
break;
 
case 329:
#line 1269 "ldgram.y"
case 331:
#line 1274 "ldgram.y" /* yacc.c:1661 */
{
(yyval.phdr) = (yyvsp[(5) - (5)].phdr);
(yyval.phdr).at = (yyvsp[(3) - (5)].etree);
(yyval.phdr) = (yyvsp[0].phdr);
(yyval.phdr).at = (yyvsp[-2].etree);
}
#line 4217 "ldgram.c" /* yacc.c:1661 */
break;
 
case 330:
#line 1277 "ldgram.y"
case 332:
#line 1282 "ldgram.y" /* yacc.c:1661 */
{
(yyval.etree) = NULL;
}
#line 4225 "ldgram.c" /* yacc.c:1661 */
break;
 
case 331:
#line 1281 "ldgram.y"
case 333:
#line 1286 "ldgram.y" /* yacc.c:1661 */
{
(yyval.etree) = (yyvsp[(2) - (3)].etree);
(yyval.etree) = (yyvsp[-1].etree);
}
#line 4233 "ldgram.c" /* yacc.c:1661 */
break;
 
case 332:
#line 1287 "ldgram.y"
case 334:
#line 1292 "ldgram.y" /* yacc.c:1661 */
{
ldlex_version_file ();
PUSH_ERROR (_("dynamic list"));
}
#line 4242 "ldgram.c" /* yacc.c:1661 */
break;
 
case 333:
#line 1292 "ldgram.y"
case 335:
#line 1297 "ldgram.y" /* yacc.c:1661 */
{
ldlex_popstate ();
POP_ERROR ();
}
#line 4251 "ldgram.c" /* yacc.c:1661 */
break;
 
case 337:
#line 1309 "ldgram.y"
case 339:
#line 1314 "ldgram.y" /* yacc.c:1661 */
{
lang_append_dynamic_list ((yyvsp[(1) - (2)].versyms));
lang_append_dynamic_list ((yyvsp[-1].versyms));
}
#line 4259 "ldgram.c" /* yacc.c:1661 */
break;
 
case 338:
#line 1317 "ldgram.y"
case 340:
#line 1322 "ldgram.y" /* yacc.c:1661 */
{
ldlex_version_file ();
PUSH_ERROR (_("VERSION script"));
}
#line 4268 "ldgram.c" /* yacc.c:1661 */
break;
 
case 339:
#line 1322 "ldgram.y"
case 341:
#line 1327 "ldgram.y" /* yacc.c:1661 */
{
ldlex_popstate ();
POP_ERROR ();
}
#line 4277 "ldgram.c" /* yacc.c:1661 */
break;
 
case 340:
#line 1331 "ldgram.y"
case 342:
#line 1336 "ldgram.y" /* yacc.c:1661 */
{
ldlex_version_script ();
}
#line 4285 "ldgram.c" /* yacc.c:1661 */
break;
 
case 341:
#line 1335 "ldgram.y"
case 343:
#line 1340 "ldgram.y" /* yacc.c:1661 */
{
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 1355 "ldgram.y"
#line 1352 "ldgram.y" /* yacc.c:1661 */
{
lang_register_vers_node ((yyvsp[(1) - (6)].name), (yyvsp[(3) - (6)].versnode), (yyvsp[(5) - (6)].deflist));
lang_register_vers_node (NULL, (yyvsp[-2].versnode), NULL);
}
#line 4301 "ldgram.c" /* yacc.c:1661 */
break;
 
case 347:
#line 1362 "ldgram.y"
#line 1356 "ldgram.y" /* yacc.c:1661 */
{
(yyval.deflist) = lang_add_vers_depend (NULL, (yyvsp[(1) - (1)].name));
lang_register_vers_node ((yyvsp[-4].name), (yyvsp[-2].versnode), NULL);
}
#line 4309 "ldgram.c" /* yacc.c:1661 */
break;
 
case 348:
#line 1366 "ldgram.y"
#line 1360 "ldgram.y" /* yacc.c:1661 */
{
(yyval.deflist) = lang_add_vers_depend ((yyvsp[(1) - (2)].deflist), (yyvsp[(2) - (2)].name));
lang_register_vers_node ((yyvsp[-5].name), (yyvsp[-3].versnode), (yyvsp[-1].deflist));
}
#line 4317 "ldgram.c" /* yacc.c:1661 */
break;
 
case 349:
#line 1373 "ldgram.y"
#line 1367 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versnode) = lang_new_vers_node (NULL, NULL);
(yyval.deflist) = lang_add_vers_depend (NULL, (yyvsp[0].name));
}
#line 4325 "ldgram.c" /* yacc.c:1661 */
break;
 
case 350:
#line 1377 "ldgram.y"
#line 1371 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versnode) = lang_new_vers_node ((yyvsp[(1) - (2)].versyms), NULL);
(yyval.deflist) = lang_add_vers_depend ((yyvsp[-1].deflist), (yyvsp[0].name));
}
#line 4333 "ldgram.c" /* yacc.c:1661 */
break;
 
case 351:
#line 1381 "ldgram.y"
#line 1378 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versnode) = lang_new_vers_node ((yyvsp[(3) - (4)].versyms), NULL);
(yyval.versnode) = lang_new_vers_node (NULL, NULL);
}
#line 4341 "ldgram.c" /* yacc.c:1661 */
break;
 
case 352:
#line 1385 "ldgram.y"
#line 1382 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versnode) = lang_new_vers_node (NULL, (yyvsp[(3) - (4)].versyms));
(yyval.versnode) = lang_new_vers_node ((yyvsp[-1].versyms), NULL);
}
#line 4349 "ldgram.c" /* yacc.c:1661 */
break;
 
case 353:
#line 1389 "ldgram.y"
#line 1386 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versnode) = lang_new_vers_node ((yyvsp[(3) - (8)].versyms), (yyvsp[(7) - (8)].versyms));
(yyval.versnode) = lang_new_vers_node ((yyvsp[-1].versyms), NULL);
}
#line 4357 "ldgram.c" /* yacc.c:1661 */
break;
 
case 354:
#line 1396 "ldgram.y"
#line 1390 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versyms) = lang_new_vers_pattern (NULL, (yyvsp[(1) - (1)].name), ldgram_vers_current_lang, FALSE);
(yyval.versnode) = lang_new_vers_node (NULL, (yyvsp[-1].versyms));
}
#line 4365 "ldgram.c" /* yacc.c:1661 */
break;
 
case 355:
#line 1400 "ldgram.y"
#line 1394 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versyms) = lang_new_vers_pattern (NULL, (yyvsp[(1) - (1)].name), ldgram_vers_current_lang, TRUE);
(yyval.versnode) = lang_new_vers_node ((yyvsp[-5].versyms), (yyvsp[-1].versyms));
}
#line 4373 "ldgram.c" /* yacc.c:1661 */
break;
 
case 356:
#line 1404 "ldgram.y"
#line 1401 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), (yyvsp[(3) - (3)].name), ldgram_vers_current_lang, FALSE);
(yyval.versyms) = lang_new_vers_pattern (NULL, (yyvsp[0].name), ldgram_vers_current_lang, FALSE);
}
#line 4381 "ldgram.c" /* yacc.c:1661 */
break;
 
case 357:
#line 1408 "ldgram.y"
#line 1405 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), (yyvsp[(3) - (3)].name), ldgram_vers_current_lang, TRUE);
(yyval.versyms) = lang_new_vers_pattern (NULL, (yyvsp[0].name), ldgram_vers_current_lang, TRUE);
}
#line 4389 "ldgram.c" /* yacc.c:1661 */
break;
 
case 358:
#line 1412 "ldgram.y"
#line 1409 "ldgram.y" /* yacc.c:1661 */
{
(yyval.name) = ldgram_vers_current_lang;
ldgram_vers_current_lang = (yyvsp[(4) - (5)].name);
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[-2].versyms), (yyvsp[0].name), ldgram_vers_current_lang, FALSE);
}
#line 4397 "ldgram.c" /* yacc.c:1661 */
break;
 
case 359:
#line 1417 "ldgram.y"
#line 1413 "ldgram.y" /* yacc.c:1661 */
{
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);
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[-2].versyms), (yyvsp[0].name), ldgram_vers_current_lang, TRUE);
}
#line 4405 "ldgram.c" /* yacc.c:1661 */
break;
 
case 360:
#line 1425 "ldgram.y"
#line 1417 "ldgram.y" /* yacc.c:1661 */
{
(yyval.name) = ldgram_vers_current_lang;
ldgram_vers_current_lang = (yyvsp[(2) - (3)].name);
ldgram_vers_current_lang = (yyvsp[-1].name);
}
#line 4414 "ldgram.c" /* yacc.c:1661 */
break;
 
case 361:
#line 1430 "ldgram.y"
#line 1422 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versyms) = (yyvsp[(5) - (7)].versyms);
ldgram_vers_current_lang = (yyvsp[(4) - (7)].name);
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);
}
#line 4426 "ldgram.c" /* yacc.c:1661 */
break;
 
case 362:
#line 1435 "ldgram.y"
#line 1430 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versyms) = lang_new_vers_pattern (NULL, "global", ldgram_vers_current_lang, FALSE);
(yyval.name) = ldgram_vers_current_lang;
ldgram_vers_current_lang = (yyvsp[-1].name);
}
#line 4435 "ldgram.c" /* yacc.c:1661 */
break;
 
case 363:
#line 1439 "ldgram.y"
#line 1435 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), "global", ldgram_vers_current_lang, FALSE);
(yyval.versyms) = (yyvsp[-2].versyms);
ldgram_vers_current_lang = (yyvsp[-3].name);
}
#line 4444 "ldgram.c" /* yacc.c:1661 */
break;
 
case 364:
#line 1443 "ldgram.y"
#line 1440 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versyms) = lang_new_vers_pattern (NULL, "local", ldgram_vers_current_lang, FALSE);
(yyval.versyms) = lang_new_vers_pattern (NULL, "global", ldgram_vers_current_lang, FALSE);
}
#line 4452 "ldgram.c" /* yacc.c:1661 */
break;
 
case 365:
#line 1447 "ldgram.y"
#line 1444 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), "local", ldgram_vers_current_lang, FALSE);
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[-2].versyms), "global", ldgram_vers_current_lang, FALSE);
}
#line 4460 "ldgram.c" /* yacc.c:1661 */
break;
 
case 366:
#line 1451 "ldgram.y"
#line 1448 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versyms) = lang_new_vers_pattern (NULL, "extern", ldgram_vers_current_lang, FALSE);
(yyval.versyms) = lang_new_vers_pattern (NULL, "local", ldgram_vers_current_lang, FALSE);
}
#line 4468 "ldgram.c" /* yacc.c:1661 */
break;
 
case 367:
#line 1455 "ldgram.y"
#line 1452 "ldgram.y" /* yacc.c:1661 */
{
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), "extern", ldgram_vers_current_lang, FALSE);
(yyval.versyms) = lang_new_vers_pattern ((yyvsp[-2].versyms), "local", 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;
 
/* Line 1267 of yacc.c. */
#line 4490 "ldgram.c"
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 */
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);
4497,8 → 4514,7
 
*++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. */
 
4513,10 → 4529,14
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)
{
4524,37 → 4544,36
#if ! YYERROR_VERBOSE
yyerror (YY_("syntax error"));
#else
# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
yyssp, yytoken)
{
YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
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 yyalloc = 2 * yysize;
if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
yyalloc = YYSTACK_ALLOC_MAXIMUM;
if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg);
yymsg = (char *) YYSTACK_ALLOC (yyalloc);
if (yymsg)
yymsg_alloc = yyalloc;
else
yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
if (!yymsg)
{
yymsg = yymsgbuf;
yymsg_alloc = sizeof yymsgbuf;
yysyntax_error_status = 2;
}
}
 
if (0 < yysize && yysize <= yymsg_alloc)
else
{
(void) yysyntax_error (yymsg, yystate, yychar);
yyerror (yymsg);
yysyntax_error_status = YYSYNTAX_ERROR;
yymsgp = yymsg;
}
else
{
yyerror (YY_("syntax error"));
if (yysize != 0)
}
yyerror (yymsgp);
if (yysyntax_error_status == 2)
goto yyexhaustedlab;
}
}
# undef YYSYNTAX_ERROR
#endif
}
 
4562,7 → 4581,7
 
if (yyerrstatus == 3)
{
/* If just tried and failed to reuse look-ahead token after an
/* If just tried and failed to reuse lookahead token after an
error, discard it. */
 
if (yychar <= YYEOF)
4579,7 → 4598,7
}
}
 
/* Else will try to reuse look-ahead token after shifting the error
/* Else will try to reuse lookahead token after shifting the error
token. */
goto yyerrlab1;
 
4595,7 → 4614,7
if (/*CONSTCOND*/ 0)
goto yyerrorlab;
 
/* Do not reclaim the symbols of the rule which action triggered
/* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */
YYPOPSTACK (yylen);
yylen = 0;
4613,7 → 4632,7
for (;;)
{
yyn = yypact[yystate];
if (yyn != YYPACT_NINF)
if (!yypact_value_is_default (yyn))
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
4636,10 → 4655,9
YY_STACK_PRINT (yyss, yyssp);
}
 
if (yyn == YYFINAL)
YYACCEPT;
 
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
YY_IGNORE_MAYBE_UNINITIALIZED_END
 
 
/* Shift the error token. */
4663,7 → 4681,7
yyresult = 1;
goto yyreturn;
 
#ifndef yyoverflow
#if !defined yyoverflow || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
4674,10 → 4692,15
#endif
 
yyreturn:
if (yychar != YYEOF && yychar != YYEMPTY)
if (yychar != YYEMPTY)
{
/* Make sure we have latest lookahead translation. See comments at
user semantic actions for why this is necessary. */
yytoken = YYTRANSLATE (yychar);
yydestruct ("Cleanup: discarding lookahead",
yytoken, &yylval);
/* Do not reclaim the symbols of the rule which action triggered
}
/* Do not reclaim the symbols of the rule whose action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
YY_STACK_PRINT (yyss, yyssp);
4695,13 → 4718,10
if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg);
#endif
/* Make sure YYID is used. */
return YYID (yyresult);
return yyresult;
}
#line 1470 "ldgram.y" /* yacc.c:1906 */
 
 
#line 1465 "ldgram.y"
 
void
yyerror(arg)
const char *arg;
4714,4 → 4734,3
else
einfo ("%P%F:%S: %s\n", NULL, arg);
}
 
/contrib/toolchain/binutils/ld/ldgram.h
1,14 → 1,13
/* A Bison parser, made by GNU Bison 2.3. */
/* A Bison parser, made by GNU Bison 3.0. */
 
/* Skeleton interface for Bison's Yacc-like parsers in C
/* Bison interface for Yacc-like parsers in C
 
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
Copyright (C) 1984, 1989-1990, 2000-2013 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 2, or (at your option)
any later version.
the Free Software Foundation, either version 3 of the License, 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
16,9 → 15,7
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, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
along with this program. If not, see <http://www.gnu.org/licenses/>. */
 
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
33,31 → 30,40
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
 
/* Tokens. */
#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. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
/* Put the tokens into the symbol table, so that GDB and other debuggers
know about them. */
enum yytokentype {
enum yytokentype
{
INT = 258,
NAME = 259,
LNAME = 260,
OREQ = 261,
ANDEQ = 262,
RSHIFTEQ = 263,
LSHIFTEQ = 264,
DIVEQ = 265,
MULTEQ = 266,
MINUSEQ = 267,
PLUSEQ = 268,
PLUSEQ = 261,
MINUSEQ = 262,
MULTEQ = 263,
DIVEQ = 264,
LSHIFTEQ = 265,
RSHIFTEQ = 266,
ANDEQ = 267,
OREQ = 268,
OROR = 269,
ANDAND = 270,
NE = 271,
EQ = 272,
GE = 273,
LE = 274,
RSHIFT = 275,
LSHIFT = 276,
EQ = 271,
NE = 272,
LE = 273,
GE = 274,
LSHIFT = 275,
RSHIFT = 276,
UNARY = 277,
END = 278,
ALIGN_K = 279,
173,22 → 179,22
#define INT 258
#define NAME 259
#define LNAME 260
#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 PLUSEQ 261
#define MINUSEQ 262
#define MULTEQ 263
#define DIVEQ 264
#define LSHIFTEQ 265
#define RSHIFTEQ 266
#define ANDEQ 267
#define OREQ 268
#define OROR 269
#define ANDAND 270
#define NE 271
#define EQ 272
#define GE 273
#define LE 274
#define RSHIFT 275
#define LSHIFT 276
#define EQ 271
#define NE 272
#define LE 273
#define GE 274
#define LSHIFT 275
#define RSHIFT 276
#define UNARY 277
#define END 278
#define ALIGN_K 279
299,13 → 305,13
#define CONSTANT 384
#define INPUT_DYNAMIC_LIST 385
 
 
 
 
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
#line 60 "ldgram.y"
typedef union YYSTYPE YYSTYPE;
union YYSTYPE
{
#line 60 "ldgram.y" /* yacc.c:1915 */
 
bfd_vma integer;
struct big_int
{
334,14 → 340,16
struct bfd_elf_version_deps *deflist;
struct bfd_elf_version_expr *versyms;
struct bfd_elf_version_tree *versnode;
}
/* Line 1529 of yacc.c. */
#line 340 "ldgram.h"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 
#line 345 "ldgram.h" /* yacc.c:1915 */
};
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 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 1991-2013 Free Software Foundation, Inc.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
40,13 → 40,11
#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
59,7 → 57,7
#define obstack_chunk_free free
static const char *entry_symbol_default = "start";
static bfd_boolean placed_commons = FALSE;
static bfd_boolean stripped_excluded_sections = FALSE;
static bfd_boolean map_head_is_link_order = FALSE;
static lang_output_section_statement_type *default_common_section;
static bfd_boolean map_option_f;
static bfd_vma print_dot;
66,17 → 64,14
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 *,
90,6 → 85,7
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;
109,13 → 105,12
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. */
DEFINED() need to increment this at the start of the traversal. */
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
206,7 → 201,7
struct unique_sections *unam;
const char *secnam;
 
if (link_info.relocatable
if (bfd_link_relocatable (&link_info)
&& sec->owner != NULL
&& bfd_is_group_section (sec->owner, sec))
return !(os != NULL
1065,13 → 1060,6
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:
1085,6 → 1073,12
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;
1122,6 → 1116,26
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);
}
 
1225,24 → 1239,13
 
abs_output_section->bfd_section = bfd_abs_section_ptr;
 
/* 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"));
asneeded_list_head = NULL;
asneeded_list_tail = &asneeded_list_head;
}
 
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 ();
}
 
1303,7 → 1306,9
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;
1380,6 → 1385,14
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
1486,11 → 1499,12
 
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 flags;
flagword look_flags, differ;
 
/* We know the first statement on this list is *ABS*. May as well
skip it. */
1501,17 → 1515,17
found = NULL;
for (look = first; look; look = look->next)
{
flags = look->flags;
look_flags = look->flags;
if (look->bfd_section != NULL)
{
flags = look->bfd_section->flags;
look_flags = look->bfd_section->flags;
if (match_type && !match_type (link_info.output_bfd,
look->bfd_section,
sec->owner, sec))
continue;
}
flags ^= sec->flags;
if (!(flags & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_READONLY
differ = look_flags ^ sec_flags;
if (!(differ & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_READONLY
| SEC_CODE | SEC_SMALL_DATA | SEC_THREAD_LOCAL)))
found = look;
}
1522,115 → 1536,144
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)
{
flags = look->flags;
look_flags = look->flags;
if (look->bfd_section != NULL)
{
flags = look->bfd_section->flags;
look_flags = look->bfd_section->flags;
if (match_type && !match_type (link_info.output_bfd,
look->bfd_section,
sec->owner, sec))
continue;
}
flags ^= sec->flags;
if (!(flags & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
differ = look_flags ^ sec_flags;
if (!(differ & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
| SEC_CODE | SEC_SMALL_DATA | SEC_THREAD_LOCAL)))
found = look;
}
}
else if ((sec->flags & (SEC_READONLY | SEC_THREAD_LOCAL)) != 0
&& (sec->flags & SEC_ALLOC) != 0)
else if ((sec_flags & SEC_READONLY) != 0
&& (sec_flags & SEC_ALLOC) != 0)
{
/* .rodata can go after .text, .sdata2 after .rodata. */
for (look = first; look; look = look->next)
{
flags = look->flags;
look_flags = look->flags;
if (look->bfd_section != NULL)
{
flags = look->bfd_section->flags;
look_flags = look->bfd_section->flags;
if (match_type && !match_type (link_info.output_bfd,
look->bfd_section,
sec->owner, sec))
continue;
}
flags ^= sec->flags;
if (!(flags & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
differ = look_flags ^ sec_flags;
if (!(differ & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
| SEC_READONLY | SEC_SMALL_DATA))
|| (!(flags & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
|| (!(differ & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
| SEC_READONLY))
&& !(look->flags & SEC_SMALL_DATA))
|| (!(flags & (SEC_THREAD_LOCAL | SEC_ALLOC))
&& (look->flags & SEC_THREAD_LOCAL)
&& (!(flags & SEC_LOAD)
|| (look->flags & SEC_LOAD))))
&& !(look_flags & SEC_SMALL_DATA)))
found = look;
}
}
else if ((sec->flags & SEC_SMALL_DATA) != 0
&& (sec->flags & SEC_ALLOC) != 0)
else if ((sec_flags & SEC_THREAD_LOCAL) != 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)
{
flags = look->flags;
look_flags = look->flags;
if (look->bfd_section != NULL)
{
flags = look->bfd_section->flags;
look_flags = look->bfd_section->flags;
if (match_type && !match_type (link_info.output_bfd,
look->bfd_section,
sec->owner, sec))
continue;
}
flags ^= sec->flags;
if (!(flags & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
differ = look_flags ^ sec_flags;
if (!(differ & (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)
{
flags = look->flags;
look_flags = look->flags;
if (look->bfd_section != NULL)
{
flags = look->bfd_section->flags;
look_flags = look->bfd_section->flags;
if (match_type && !match_type (link_info.output_bfd,
look->bfd_section,
sec->owner, sec))
continue;
}
flags ^= sec->flags;
if (!(flags & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
differ = look_flags ^ sec_flags;
if (!(differ & (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)
{
flags = look->flags;
look_flags = look->flags;
if (look->bfd_section != NULL)
{
flags = look->bfd_section->flags;
look_flags = look->bfd_section->flags;
if (match_type && !match_type (link_info.output_bfd,
look->bfd_section,
sec->owner, sec))
continue;
}
flags ^= sec->flags;
if (!(flags & SEC_ALLOC))
differ = look_flags ^ sec_flags;
if (!(differ & SEC_ALLOC))
found = look;
}
}
1639,11 → 1682,11
/* non-alloc go last. */
for (look = first; look; look = look->next)
{
flags = look->flags;
look_flags = look->flags;
if (look->bfd_section != NULL)
flags = look->bfd_section->flags;
flags ^= sec->flags;
if (!(flags & SEC_DEBUGGING))
look_flags = look->bfd_section->flags;
differ = look_flags ^ sec_flags;
if (!(differ & SEC_DEBUGGING))
found = look;
}
return found;
1652,7 → 1695,7
if (found || !match_type)
return found;
 
return lang_output_section_find_by_flags (sec, NULL, NULL);
return lang_output_section_find_by_flags (sec, sec_flags, NULL, NULL);
}
 
/* Find the last output section before given output statement.
1762,6 → 1805,7
{
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;
 
1774,7 → 1818,8
push_stat_ptr (&add);
}
 
if (link_info.relocatable || (s->flags & (SEC_LOAD | SEC_ALLOC)) == 0)
if (bfd_link_relocatable (&link_info)
|| (s->flags & (SEC_LOAD | SEC_ALLOC)) == 0)
address = exp_intop (0);
 
os_tail = ((lang_output_section_statement_type **)
1783,6 → 1828,7
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
1797,7 → 1843,8
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);
lang_add_assignment (exp_provide (symname,
start_assign
= lang_add_assignment (exp_provide (symname,
exp_nameop (NAME, "."),
FALSE));
}
1822,16 → 1869,25
lang_leave_output_section_statement (NULL, DEFAULT_MEMORY_REGION, NULL,
NULL);
 
if (ps != NULL && *ps == '\0')
if (start_assign != NULL)
{
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);
lang_add_assignment (exp_provide (symname,
stop_assign
= 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. */
1954,6 → 2010,43
}
 
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)
1977,7 → 2070,6
{
lang_memory_region_type *m;
bfd_boolean dis_header_printed = FALSE;
bfd *p;
 
LANG_FOR_EACH_INPUT_STATEMENT (file)
{
2049,27 → 2141,12
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 ();
}
 
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;
ldemul_extra_map_file_text (link_info.output_bfd, &link_info, config.map_file);
}
 
static bfd_boolean
2076,21 → 2153,22
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)
{
struct fat_user_section_struct *ud;
input_section_userdata_type *ud;
struct map_symbol_def *def;
 
ud = (struct fat_user_section_struct *)
get_userdata (hash_entry->u.def.section);
ud = ((input_section_userdata_type *)
get_userdata (hash_entry->u.def.section));
if (! ud)
{
/* ??? 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);
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;
}
else if (!ud->map_symbol_def_tail)
ud->map_symbol_def_tail = &ud->map_symbol_def_head;
2125,13 → 2203,9
s->bfd_section->output_section = s->bfd_section;
s->bfd_section->output_offset = 0;
 
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;
}
/* Set the userdata of the output section to the output section
statement to avoid lookup. */
get_userdata (s->bfd_section) = s;
 
/* If there is a base address, make sure that any sections it might
mention are initialized. */
2286,7 → 2360,7
format targets, .text$foo sections go into .text and it's odd
to see .text with SEC_LINK_ONCE set. */
 
if (!link_info.relocatable)
if (!bfd_link_relocatable (&link_info))
flags &= ~(SEC_LINK_ONCE | SEC_LINK_DUPLICATES | SEC_RELOC);
 
switch (output->sectype)
2361,8 → 2435,7
 
section->output_section = output->bfd_section;
 
if (!link_info.relocatable
&& !stripped_excluded_sections)
if (!map_head_is_link_order)
{
asection *s = output->bfd_section->map_tail.s;
output->bfd_section->map_tail.s = section;
2741,9 → 2814,7
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);
3114,7 → 3185,8
ASSERT (link_info.output_bfd == NULL);
open_output (statement->output_statement.name);
ldemul_set_output_arch ();
if (config.magic_demand_paged && !link_info.relocatable)
if (config.magic_demand_paged
&& !bfd_link_relocatable (&link_info))
link_info.output_bfd->flags |= D_PAGED;
else
link_info.output_bfd->flags &= ~D_PAGED;
3219,6 → 3291,7
{
lang_statement_union_type **os_tail;
lang_statement_list_type add;
bfd *abfd;
 
s->input_statement.target = current_target;
 
3225,32 → 3298,26
/* 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. */
has been loaded already. Do the same for a rescan.
Likewise reload --as-needed shared libs. */
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
&& 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
&& (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.flags.add_DT_NEEDED_for_regular
&& s->input_statement.the_bfd != NULL
&& ((s->input_statement.the_bfd->flags) & DYNAMIC) != 0
&& plugin_should_reload (s->input_statement.the_bfd))
&& bfd_get_flavour (abfd) == bfd_target_elf_flavour
&& (elf_dyn_lib_class (abfd) & DYN_AS_NEEDED) != 0)))
{
s->input_statement.flags.loaded = FALSE;
s->input_statement.flags.reload = TRUE;
}
#endif
 
os_tail = lang_output_section_statement.tail;
lang_list_init (&add);
3303,85 → 3370,6
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
3439,6 → 3427,55
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
3889,10 → 3926,6
}
}
 
/* 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
3904,10 → 3937,42
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. */
stripped_excluded_sections = TRUE;
map_head_is_link_order = TRUE;
}
 
static void
3976,6 → 4041,7
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;
}
3983,7 → 4049,12
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;
4021,6 → 4092,9
}
else
{
if (assignment->exp->type.node_class == etree_provide)
minfo ("[!provide]");
else
minfo ("*undef* ");
#ifdef BFD64
minfo (" ");
4086,8 → 4160,8
static void
print_all_symbols (asection *sec)
{
struct fat_user_section_struct *ud =
(struct fat_user_section_struct *) get_userdata (sec);
input_section_userdata_type *ud
= (input_section_userdata_type *) get_userdata (sec);
struct map_symbol_def *def;
struct bfd_link_hash_entry **entries;
unsigned int i;
4563,12 → 4637,15
{
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->flags & SEC_EXCLUDE) == 0)
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
{
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
4578,7 → 4655,6
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;
 
4591,7 → 4667,6
}
 
/* 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. */
4598,10 → 4673,6
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;
}
4776,7 → 4847,7
{
case lang_output_section_statement_enum:
{
bfd_vma newdot, after;
bfd_vma newdot, after, dotdelta;
lang_output_section_statement_type *os;
lang_memory_region_type *r;
int section_alignment = 0;
4789,7 → 4860,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
&& link_info.relocatable
&& bfd_link_relocatable (&link_info)
&& (bfd_get_flavour (link_info.output_bfd)
== bfd_target_coff_flavour))
os->addr_tree = exp_intop (0);
4842,6 → 4913,7
}
 
newdot = dot;
dotdelta = 0;
if (bfd_is_abs_section (os->bfd_section))
{
/* No matter what happens, an abs section starts at zero. */
4867,7 → 4939,7
defined, issue an error message. */
if (!os->ignored
&& !IGNORE_SECTION (os->bfd_section)
&& ! link_info.relocatable
&& !bfd_link_relocatable (&link_info)
&& check_regions
&& strcmp (os->region->name_list.name,
DEFAULT_MEMORY_REGION) == 0
4910,13 → 4982,14
bfd_vma savedot = newdot;
newdot = align_power (newdot, section_alignment);
 
if (newdot != savedot
dotdelta = newdot - savedot;
if (dotdelta != 0
&& (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) (newdot - savedot));
os->name, (unsigned long) dotdelta);
}
 
bfd_set_section_vma (0, os->bfd_section, newdot);
4964,15 → 5037,20
{
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 unless specified otherwise. */
if (os->lma_region != os->region && !os->align_lma_with_input)
statement. */
if (os->lma_region != os->region)
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
5041,14 → 5119,17
&& dot >= (r->last_os->output_section_statement
.bfd_section->vma)))
&& os->lma_region == NULL
&& !link_info.relocatable)
&& !bfd_link_relocatable (&link_info))
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
|| link_info.relocatable)
dot += TO_ADDR (os->bfd_section->size);
|| bfd_link_relocatable (&link_info))
dotdelta = TO_ADDR (os->bfd_section->size);
else
dotdelta = 0;
dot += dotdelta;
 
if (os->update_dot_tree != 0)
exp_fold_tree (os->update_dot_tree, bfd_abs_section_ptr, &dot);
5068,10 → 5149,10
os->bfd_section->vma);
 
if (os->lma_region != NULL && os->lma_region != os->region
&& (os->bfd_section->flags & SEC_LOAD))
&& ((os->bfd_section->flags & SEC_LOAD)
|| os->align_lma_with_input))
{
os->lma_region->current
= os->bfd_section->lma + TO_ADDR (os->bfd_section->size);
os->lma_region->current = os->bfd_section->lma + dotdelta;
 
if (check_regions)
os_region_check (os, os->lma_region, NULL,
5172,7 → 5253,7
*relax = TRUE;
}
dot = size_input_section (prev, output_section_statement,
output_section_statement->fill, dot);
fill, dot);
}
break;
 
5364,57 → 5445,56
if (expld.dataseg.phase == exp_dataseg_end_seen
&& link_info.relro && expld.dataseg.relro_end)
{
/* 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;
bfd_vma initial_base, relro_end, desired_end;
asection *sec;
 
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));
if (min_base + maxpage < expld.dataseg.base)
 
/* 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)
{
expld.dataseg.base -= maxpage;
relro_end -= maxpage;
/* 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.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)
{
/* 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);
/* Assignments to dot, or to output section address in a
user script have increased padding over the original.
Revert. */
expld.dataseg.base = initial_base;
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;
}
5485,7 → 5565,7
/* .tbss sections effectively have zero size. */
if ((os->bfd_section->flags & SEC_HAS_CONTENTS) != 0
|| (os->bfd_section->flags & SEC_THREAD_LOCAL) == 0
|| link_info.relocatable)
|| bfd_link_relocatable (&link_info))
dot += TO_ADDR (os->bfd_section->size);
 
if (os->update_dot_tree != NULL)
5709,7 → 5789,7
{
asection *s;
 
if (link_info.relocatable)
if (bfd_link_relocatable (&link_info))
return;
 
for (s = link_info.output_bfd->sections; s != NULL; s = s->next)
5749,8 → 5829,8
struct bfd_link_hash_entry *h;
bfd_boolean warn;
 
if ((link_info.relocatable && !link_info.gc_sections)
|| (link_info.shared && !link_info.executable))
if ((bfd_link_relocatable (&link_info) && !link_info.gc_sections)
|| bfd_link_dll (&link_info))
warn = entry_from_cmdline;
else
warn = TRUE;
5757,7 → 5837,7
 
/* Force the user to specify a root when generating a relocatable with
--gc-sections. */
if (link_info.gc_sections && link_info.relocatable
if (link_info.gc_sections && bfd_link_relocatable (&link_info)
&& !(entry_from_cmdline || undef_from_cmdline))
einfo (_("%P%F: gc-sections requires either an entry or "
"an undefined symbol\n"));
5867,7 → 5947,8
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 ((link_info.relocatable || link_info.emitrelocations)
if ((bfd_link_relocatable (&link_info)
|| link_info.emitrelocations)
&& (compatible == NULL
|| (bfd_get_flavour (input_bfd)
!= bfd_get_flavour (link_info.output_bfd)))
5923,7 → 6004,7
{
if (command_line.inhibit_common_definition)
return;
if (link_info.relocatable
if (bfd_link_relocatable (&link_info)
&& ! command_line.force_common_definition)
return;
 
5946,7 → 6027,7
for (power = 0; power <= 4; power++)
bfd_link_hash_traverse (link_info.hash, lang_one_common, &power);
 
power = UINT_MAX;
power = (unsigned int) -1;
bfd_link_hash_traverse (link_info.hash, lang_one_common, &power);
}
}
6038,6 → 6119,55
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. */
6065,7 → 6195,7
/* This is a lonely common section which must have
come from an archive. We attach to the section
with the wildcard. */
if (! link_info.relocatable
if (!bfd_link_relocatable (&link_info)
|| command_line.force_common_definition)
{
if (default_common_section == NULL)
6077,31 → 6207,11
}
}
else
{
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);
ldlang_place_orphan (s);
}
}
}
}
}
}
 
void
lang_set_flags (lang_memory_region_type *ptr, const char *flags, int invert)
6109,10 → 6219,18
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;
6135,7 → 6253,7
break;
 
default:
einfo (_("%P%F: invalid syntax in flags\n"));
einfo (_("%P%F: invalid character %c (%d) in flags\n"), * flags, * flags);
break;
}
flags++;
6178,11 → 6296,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);
 
6279,7 → 6397,6
 
new_stmt = new_stat (lang_output_statement, stat_ptr);
new_stmt->name = output_filename;
 
}
 
/* Reset the current counters in the regions. */
6366,7 → 6483,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 (link_info.relocatable)
if (bfd_link_relocatable (&link_info))
{
LANG_FOR_EACH_INPUT_STATEMENT (f)
{
6609,7 → 6726,7
open_input_bfds (statement_list.head, OPEN_BFD_NORMAL);
 
#ifdef ENABLE_PLUGINS
if (plugin_active_plugins_p ())
if (link_info.lto_plugin_active)
{
lang_statement_list_type added;
lang_statement_list_type files, inputfiles;
6628,7 → 6745,6
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);
6669,8 → 6785,26
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 ();
 
6692,14 → 6826,16
/* 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;
 
/* Size up the common data. */
lang_common ();
 
/* Remove unreferenced sections if asked to. */
lang_gc_sections ();
 
/* Size up the common data. */
lang_common ();
 
/* Update wild statements. */
update_wild_statements (statement_list.head);
 
6713,7 → 6849,7
/* Find any sections not attached explicitly and handle them. */
lang_place_orphans ();
 
if (! link_info.relocatable)
if (!bfd_link_relocatable (&link_info))
{
asection *found;
 
6744,7 → 6880,7
lang_record_phdrs ();
 
/* Check relro sections. */
if (link_info.relro && ! link_info.relocatable)
if (link_info.relro && !bfd_link_relocatable (&link_info))
lang_find_relro_sections ();
 
/* Size up the sections. */
6763,10 → 6899,16
 
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 ();
}
 
7955,6 → 8097,37
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)
{
8064,3 → 8237,41
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 1991-2013 Free Software Foundation, Inc.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
55,8 → 55,10
{
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;
235,6 → 237,9
/* 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;
 
269,6 → 274,9
/* 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;
276,9 → 284,12
/* Set if the file was claimed from an archive. */
unsigned int claim_archive : 1;
 
/* Set if reloading an --as-needed lib. */
unsigned int reload : 1;
/* Set if added by the lto plugin add_input_file callback. */
unsigned int lto_output : 1;
#endif /* ENABLE_PLUGINS */
 
/* Head of list of pushed flags. */
struct lang_input_statement_flags *pushed;
};
 
typedef struct lang_input_statement_struct
313,6 → 324,23
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 *,
447,15 → 475,6
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
468,6 → 487,14
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;
475,7 → 502,6
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;
 
486,7 → 512,10
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
563,7 → 592,7
extern void ldlang_add_file
(lang_input_statement_type *);
extern lang_output_section_statement_type *lang_output_section_find_by_flags
(const asection *, lang_output_section_statement_type **,
(const asection *, flagword, 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 *,
572,6 → 601,8
(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
578,6 → 609,8
(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
599,6 → 632,8
(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
644,11 → 679,6
(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 *);
660,4 → 690,7
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 2012 Free Software Foundation, Inc.
/* Copyright (C) 2012-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
/contrib/toolchain/binutils/ld/ldlex.c
360,8 → 360,8
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
 
#define YY_NUM_RULES 197
#define YY_END_OF_BUFFER 198
#define YY_NUM_RULES 198
#define YY_END_OF_BUFFER 199
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
369,200 → 369,202
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
static yyconst flex_int16_t yy_accept[1751] =
static yyconst flex_int16_t yy_accept[1766] =
{ 0,
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,
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,
 
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,
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,
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, 172, 172, 172,
172, 172, 172, 172, 172, 172, 172, 172, 31, 194,
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,
 
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,
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,
 
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,
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,
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,
173, 93, 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, 173, 173, 72, 62, 173, 63, 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, 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, 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,
173, 173, 173, 173, 173, 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,
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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, 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,
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,
 
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,
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, 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,
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,
 
173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
173, 173, 173, 173, 173, 173, 173, 108, 173, 177,
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,
 
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,
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,
 
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, 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, 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
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
} ;
 
static yyconst flex_int32_t yy_ec[256] =
601,724 → 603,746
{ 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, 10, 10, 10, 10,
10, 10, 8, 8, 8, 8, 8, 8, 8, 8,
7, 1, 1, 6, 1, 3, 11, 11, 11, 11,
11, 11, 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, 10, 10, 10,
10, 10, 10, 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, 8, 8, 8, 8, 8, 8, 1, 1,
1, 9
} ;
 
static yyconst flex_int16_t yy_base[1775] =
static yyconst flex_int16_t yy_base[1798] =
{ 0,
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, 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,
 
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,
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,
 
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,
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, 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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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
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
 
} ;
 
static yyconst flex_int16_t yy_def[1775] =
static yyconst flex_int16_t yy_def[1798] =
{ 0,
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,
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,
 
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,
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,
 
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,
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, 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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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, 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,
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,
 
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, 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, 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,
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,
 
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, 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,
 
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,
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, 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, 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,
 
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
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
 
} ;
 
static yyconst flex_int16_t yy_nxt[2787] =
static yyconst flex_int16_t yy_nxt[2931] =
{ 0,
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540,
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,
1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550,
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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
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
} ;
 
static yyconst flex_int16_t yy_chk[2787] =
static yyconst flex_int16_t yy_chk[2931] =
{ 0,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1328,304 → 1352,320
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, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3, 3, 5, 5, 5, 5, 5, 5, 100, 5,
5, 5, 5, 5, 5, 5, 5, 30, 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, 5, 5, 7, 7, 7, 7, 7, 7,
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,
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, 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, 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, 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,
9, 9, 9, 9, 9, 9, 9, 9, 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, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
15, 15, 15, 15, 15, 15, 804, 15, 15, 15,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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,
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,
 
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
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
} ;
 
static yy_state_type yy_last_accepting_state;
1645,7 → 1685,7
#line 1 "ldlex.l"
#line 4 "ldlex.l"
 
/* Copyright 1991-2013 Free Software Foundation, Inc.
/* Copyright (C) 1991-2015 Free Software Foundation, Inc.
Written by Steve Chamberlain of Cygnus Support.
 
This file is part of the GNU Binutils.
1720,6 → 1760,7
/* 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
1741,17 → 1782,19
 
 
 
#line 1745 "ldlex.c"
 
#line 1787 "ldlex.c"
 
#define INITIAL 0
#define SCRIPT 1
#define EXPRESSION 2
#define BOTH 3
#define DEFSYMEXP 4
#define MRI 5
#define VERS_START 6
#define VERS_SCRIPT 7
#define VERS_NODE 8
#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
 
#ifndef YY_NO_UNISTD_H
/* Special case for "unistd.h", since it is non-ANSI. We include it way
1929,7 → 1972,7
register char *yy_cp, *yy_bp;
register int yy_act;
 
#line 119 "ldlex.l"
#line 121 "ldlex.l"
 
 
if (parser_input != input_selected)
1948,7 → 1991,7
}
}
 
#line 1952 "ldlex.c"
#line 1995 "ldlex.c"
 
if ( !(yy_init) )
{
2001,13 → 2044,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 >= 1751 )
if ( yy_current_state >= 1766 )
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] != 2704 );
while ( yy_base[yy_current_state] != 2848 );
 
yy_find_action:
yy_act = yy_accept[yy_current_state];
2033,32 → 2076,32
 
case 1:
YY_RULE_SETUP
#line 137 "ldlex.l"
#line 139 "ldlex.l"
{ comment (); }
YY_BREAK
case 2:
YY_RULE_SETUP
#line 140 "ldlex.l"
#line 142 "ldlex.l"
{ RTOKEN('-');}
YY_BREAK
case 3:
YY_RULE_SETUP
#line 141 "ldlex.l"
#line 143 "ldlex.l"
{ RTOKEN('+');}
YY_BREAK
case 4:
YY_RULE_SETUP
#line 142 "ldlex.l"
#line 144 "ldlex.l"
{ yylval.name = xstrdup (yytext); return NAME; }
YY_BREAK
case 5:
YY_RULE_SETUP
#line 143 "ldlex.l"
#line 145 "ldlex.l"
{ RTOKEN('='); }
YY_BREAK
case 6:
YY_RULE_SETUP
#line 145 "ldlex.l"
#line 147 "ldlex.l"
{
yylval.integer = bfd_scan_vma (yytext + 1, 0, 16);
yylval.bigint.str = NULL;
2067,7 → 2110,7
YY_BREAK
case 7:
YY_RULE_SETUP
#line 151 "ldlex.l"
#line 153 "ldlex.l"
{
int ibase ;
switch (yytext[yyleng - 1]) {
2096,7 → 2139,7
YY_BREAK
case 8:
YY_RULE_SETUP
#line 176 "ldlex.l"
#line 178 "ldlex.l"
{
char *s = yytext;
int ibase = 0;
2129,824 → 2172,824
YY_BREAK
case 9:
YY_RULE_SETUP
#line 205 "ldlex.l"
#line 207 "ldlex.l"
{ RTOKEN(']');}
YY_BREAK
case 10:
YY_RULE_SETUP
#line 206 "ldlex.l"
#line 208 "ldlex.l"
{ RTOKEN('[');}
YY_BREAK
case 11:
YY_RULE_SETUP
#line 207 "ldlex.l"
#line 209 "ldlex.l"
{ RTOKEN(LSHIFTEQ);}
YY_BREAK
case 12:
YY_RULE_SETUP
#line 208 "ldlex.l"
#line 210 "ldlex.l"
{ RTOKEN(RSHIFTEQ);}
YY_BREAK
case 13:
YY_RULE_SETUP
#line 209 "ldlex.l"
#line 211 "ldlex.l"
{ RTOKEN(OROR);}
YY_BREAK
case 14:
YY_RULE_SETUP
#line 210 "ldlex.l"
#line 212 "ldlex.l"
{ RTOKEN(EQ);}
YY_BREAK
case 15:
YY_RULE_SETUP
#line 211 "ldlex.l"
#line 213 "ldlex.l"
{ RTOKEN(NE);}
YY_BREAK
case 16:
YY_RULE_SETUP
#line 212 "ldlex.l"
#line 214 "ldlex.l"
{ RTOKEN(GE);}
YY_BREAK
case 17:
YY_RULE_SETUP
#line 213 "ldlex.l"
#line 215 "ldlex.l"
{ RTOKEN(LE);}
YY_BREAK
case 18:
YY_RULE_SETUP
#line 214 "ldlex.l"
#line 216 "ldlex.l"
{ RTOKEN(LSHIFT);}
YY_BREAK
case 19:
YY_RULE_SETUP
#line 215 "ldlex.l"
#line 217 "ldlex.l"
{ RTOKEN(RSHIFT);}
YY_BREAK
case 20:
YY_RULE_SETUP
#line 216 "ldlex.l"
#line 218 "ldlex.l"
{ RTOKEN(PLUSEQ);}
YY_BREAK
case 21:
YY_RULE_SETUP
#line 217 "ldlex.l"
#line 219 "ldlex.l"
{ RTOKEN(MINUSEQ);}
YY_BREAK
case 22:
YY_RULE_SETUP
#line 218 "ldlex.l"
#line 220 "ldlex.l"
{ RTOKEN(MULTEQ);}
YY_BREAK
case 23:
YY_RULE_SETUP
#line 219 "ldlex.l"
#line 221 "ldlex.l"
{ RTOKEN(DIVEQ);}
YY_BREAK
case 24:
YY_RULE_SETUP
#line 220 "ldlex.l"
#line 222 "ldlex.l"
{ RTOKEN(ANDEQ);}
YY_BREAK
case 25:
YY_RULE_SETUP
#line 221 "ldlex.l"
#line 223 "ldlex.l"
{ RTOKEN(OREQ);}
YY_BREAK
case 26:
YY_RULE_SETUP
#line 222 "ldlex.l"
#line 224 "ldlex.l"
{ RTOKEN(ANDAND);}
YY_BREAK
case 27:
YY_RULE_SETUP
#line 223 "ldlex.l"
#line 225 "ldlex.l"
{ RTOKEN('>');}
YY_BREAK
case 28:
YY_RULE_SETUP
#line 224 "ldlex.l"
#line 226 "ldlex.l"
{ RTOKEN(',');}
YY_BREAK
case 29:
YY_RULE_SETUP
#line 225 "ldlex.l"
#line 227 "ldlex.l"
{ RTOKEN('&');}
YY_BREAK
case 30:
YY_RULE_SETUP
#line 226 "ldlex.l"
#line 228 "ldlex.l"
{ RTOKEN('|');}
YY_BREAK
case 31:
YY_RULE_SETUP
#line 227 "ldlex.l"
#line 229 "ldlex.l"
{ RTOKEN('~');}
YY_BREAK
case 32:
YY_RULE_SETUP
#line 228 "ldlex.l"
#line 230 "ldlex.l"
{ RTOKEN('!');}
YY_BREAK
case 33:
YY_RULE_SETUP
#line 229 "ldlex.l"
#line 231 "ldlex.l"
{ RTOKEN('?');}
YY_BREAK
case 34:
YY_RULE_SETUP
#line 230 "ldlex.l"
#line 232 "ldlex.l"
{ RTOKEN('*');}
YY_BREAK
case 35:
YY_RULE_SETUP
#line 231 "ldlex.l"
#line 233 "ldlex.l"
{ RTOKEN('+');}
YY_BREAK
case 36:
YY_RULE_SETUP
#line 232 "ldlex.l"
#line 234 "ldlex.l"
{ RTOKEN('-');}
YY_BREAK
case 37:
YY_RULE_SETUP
#line 233 "ldlex.l"
#line 235 "ldlex.l"
{ RTOKEN('/');}
YY_BREAK
case 38:
YY_RULE_SETUP
#line 234 "ldlex.l"
#line 236 "ldlex.l"
{ RTOKEN('%');}
YY_BREAK
case 39:
YY_RULE_SETUP
#line 235 "ldlex.l"
#line 237 "ldlex.l"
{ RTOKEN('<');}
YY_BREAK
case 40:
YY_RULE_SETUP
#line 236 "ldlex.l"
#line 238 "ldlex.l"
{ RTOKEN('=');}
YY_BREAK
case 41:
YY_RULE_SETUP
#line 237 "ldlex.l"
#line 239 "ldlex.l"
{ RTOKEN('}') ; }
YY_BREAK
case 42:
YY_RULE_SETUP
#line 238 "ldlex.l"
#line 240 "ldlex.l"
{ RTOKEN('{'); }
YY_BREAK
case 43:
YY_RULE_SETUP
#line 239 "ldlex.l"
#line 241 "ldlex.l"
{ RTOKEN(')');}
YY_BREAK
case 44:
YY_RULE_SETUP
#line 240 "ldlex.l"
#line 242 "ldlex.l"
{ RTOKEN('(');}
YY_BREAK
case 45:
YY_RULE_SETUP
#line 241 "ldlex.l"
#line 243 "ldlex.l"
{ RTOKEN(':'); }
YY_BREAK
case 46:
YY_RULE_SETUP
#line 242 "ldlex.l"
#line 244 "ldlex.l"
{ RTOKEN(';');}
YY_BREAK
case 47:
YY_RULE_SETUP
#line 243 "ldlex.l"
#line 245 "ldlex.l"
{ RTOKEN(MEMORY);}
YY_BREAK
case 48:
YY_RULE_SETUP
#line 244 "ldlex.l"
#line 246 "ldlex.l"
{ RTOKEN(REGION_ALIAS);}
YY_BREAK
case 49:
YY_RULE_SETUP
#line 245 "ldlex.l"
#line 247 "ldlex.l"
{ RTOKEN(LD_FEATURE);}
YY_BREAK
case 50:
YY_RULE_SETUP
#line 246 "ldlex.l"
#line 248 "ldlex.l"
{ RTOKEN(ORIGIN);}
YY_BREAK
case 51:
YY_RULE_SETUP
#line 247 "ldlex.l"
#line 249 "ldlex.l"
{ RTOKEN(VERSIONK);}
YY_BREAK
case 52:
YY_RULE_SETUP
#line 248 "ldlex.l"
#line 250 "ldlex.l"
{ RTOKEN(BLOCK);}
YY_BREAK
case 53:
YY_RULE_SETUP
#line 249 "ldlex.l"
#line 251 "ldlex.l"
{ RTOKEN(BIND);}
YY_BREAK
case 54:
YY_RULE_SETUP
#line 250 "ldlex.l"
#line 252 "ldlex.l"
{ RTOKEN(LENGTH);}
YY_BREAK
case 55:
YY_RULE_SETUP
#line 251 "ldlex.l"
#line 253 "ldlex.l"
{ RTOKEN(ALIGN_K);}
YY_BREAK
case 56:
YY_RULE_SETUP
#line 252 "ldlex.l"
#line 254 "ldlex.l"
{ RTOKEN(DATA_SEGMENT_ALIGN);}
YY_BREAK
case 57:
YY_RULE_SETUP
#line 253 "ldlex.l"
#line 255 "ldlex.l"
{ RTOKEN(DATA_SEGMENT_RELRO_END);}
YY_BREAK
case 58:
YY_RULE_SETUP
#line 254 "ldlex.l"
#line 256 "ldlex.l"
{ RTOKEN(DATA_SEGMENT_END);}
YY_BREAK
case 59:
YY_RULE_SETUP
#line 255 "ldlex.l"
#line 257 "ldlex.l"
{ RTOKEN(ADDR);}
YY_BREAK
case 60:
YY_RULE_SETUP
#line 256 "ldlex.l"
#line 258 "ldlex.l"
{ RTOKEN(LOADADDR);}
YY_BREAK
case 61:
YY_RULE_SETUP
#line 257 "ldlex.l"
#line 259 "ldlex.l"
{ RTOKEN(ALIGNOF); }
YY_BREAK
case 62:
YY_RULE_SETUP
#line 258 "ldlex.l"
#line 260 "ldlex.l"
{ RTOKEN(MAX_K); }
YY_BREAK
case 63:
YY_RULE_SETUP
#line 259 "ldlex.l"
#line 261 "ldlex.l"
{ RTOKEN(MIN_K); }
YY_BREAK
case 64:
YY_RULE_SETUP
#line 260 "ldlex.l"
#line 262 "ldlex.l"
{ RTOKEN(LOG2CEIL); }
YY_BREAK
case 65:
YY_RULE_SETUP
#line 261 "ldlex.l"
#line 263 "ldlex.l"
{ RTOKEN(ASSERT_K); }
YY_BREAK
case 66:
YY_RULE_SETUP
#line 262 "ldlex.l"
#line 264 "ldlex.l"
{ RTOKEN(ENTRY);}
YY_BREAK
case 67:
YY_RULE_SETUP
#line 263 "ldlex.l"
#line 265 "ldlex.l"
{ RTOKEN(EXTERN);}
YY_BREAK
case 68:
YY_RULE_SETUP
#line 264 "ldlex.l"
#line 266 "ldlex.l"
{ RTOKEN(NEXT);}
YY_BREAK
case 69:
YY_RULE_SETUP
#line 265 "ldlex.l"
#line 267 "ldlex.l"
{ RTOKEN(SIZEOF_HEADERS);}
YY_BREAK
case 70:
YY_RULE_SETUP
#line 266 "ldlex.l"
#line 268 "ldlex.l"
{ RTOKEN(SIZEOF_HEADERS);}
YY_BREAK
case 71:
YY_RULE_SETUP
#line 267 "ldlex.l"
#line 269 "ldlex.l"
{ RTOKEN(SEGMENT_START);}
YY_BREAK
case 72:
YY_RULE_SETUP
#line 268 "ldlex.l"
#line 270 "ldlex.l"
{ RTOKEN(MAP);}
YY_BREAK
case 73:
YY_RULE_SETUP
#line 269 "ldlex.l"
#line 271 "ldlex.l"
{ RTOKEN(SIZEOF);}
YY_BREAK
case 74:
YY_RULE_SETUP
#line 270 "ldlex.l"
#line 272 "ldlex.l"
{ RTOKEN(TARGET_K);}
YY_BREAK
case 75:
YY_RULE_SETUP
#line 271 "ldlex.l"
#line 273 "ldlex.l"
{ RTOKEN(SEARCH_DIR);}
YY_BREAK
case 76:
YY_RULE_SETUP
#line 272 "ldlex.l"
#line 274 "ldlex.l"
{ RTOKEN(OUTPUT);}
YY_BREAK
case 77:
YY_RULE_SETUP
#line 273 "ldlex.l"
#line 275 "ldlex.l"
{ RTOKEN(INPUT);}
YY_BREAK
case 78:
YY_RULE_SETUP
#line 274 "ldlex.l"
#line 276 "ldlex.l"
{ RTOKEN(GROUP);}
YY_BREAK
case 79:
YY_RULE_SETUP
#line 275 "ldlex.l"
#line 277 "ldlex.l"
{ RTOKEN(AS_NEEDED);}
YY_BREAK
case 80:
YY_RULE_SETUP
#line 276 "ldlex.l"
#line 278 "ldlex.l"
{ RTOKEN(DEFINED);}
YY_BREAK
case 81:
YY_RULE_SETUP
#line 277 "ldlex.l"
#line 279 "ldlex.l"
{ RTOKEN(CREATE_OBJECT_SYMBOLS);}
YY_BREAK
case 82:
YY_RULE_SETUP
#line 278 "ldlex.l"
#line 280 "ldlex.l"
{ RTOKEN( CONSTRUCTORS);}
YY_BREAK
case 83:
YY_RULE_SETUP
#line 279 "ldlex.l"
#line 281 "ldlex.l"
{ RTOKEN(FORCE_COMMON_ALLOCATION);}
YY_BREAK
case 84:
YY_RULE_SETUP
#line 280 "ldlex.l"
#line 282 "ldlex.l"
{ RTOKEN(INHIBIT_COMMON_ALLOCATION);}
YY_BREAK
case 85:
YY_RULE_SETUP
#line 281 "ldlex.l"
#line 283 "ldlex.l"
{ RTOKEN(SECTIONS);}
YY_BREAK
case 86:
YY_RULE_SETUP
#line 282 "ldlex.l"
#line 284 "ldlex.l"
{ RTOKEN(INSERT_K);}
YY_BREAK
case 87:
YY_RULE_SETUP
#line 283 "ldlex.l"
#line 285 "ldlex.l"
{ RTOKEN(AFTER);}
YY_BREAK
case 88:
YY_RULE_SETUP
#line 284 "ldlex.l"
#line 286 "ldlex.l"
{ RTOKEN(BEFORE);}
YY_BREAK
case 89:
YY_RULE_SETUP
#line 285 "ldlex.l"
#line 287 "ldlex.l"
{ RTOKEN(FILL);}
YY_BREAK
case 90:
YY_RULE_SETUP
#line 286 "ldlex.l"
#line 288 "ldlex.l"
{ RTOKEN(STARTUP);}
YY_BREAK
case 91:
YY_RULE_SETUP
#line 287 "ldlex.l"
#line 289 "ldlex.l"
{ RTOKEN(OUTPUT_FORMAT);}
YY_BREAK
case 92:
YY_RULE_SETUP
#line 288 "ldlex.l"
#line 290 "ldlex.l"
{ RTOKEN( OUTPUT_ARCH);}
YY_BREAK
case 93:
YY_RULE_SETUP
#line 289 "ldlex.l"
#line 291 "ldlex.l"
{ RTOKEN(HLL);}
YY_BREAK
case 94:
YY_RULE_SETUP
#line 290 "ldlex.l"
#line 292 "ldlex.l"
{ RTOKEN(SYSLIB);}
YY_BREAK
case 95:
YY_RULE_SETUP
#line 291 "ldlex.l"
#line 293 "ldlex.l"
{ RTOKEN(FLOAT);}
YY_BREAK
case 96:
YY_RULE_SETUP
#line 292 "ldlex.l"
#line 294 "ldlex.l"
{ RTOKEN( QUAD);}
YY_BREAK
case 97:
YY_RULE_SETUP
#line 293 "ldlex.l"
#line 295 "ldlex.l"
{ RTOKEN( SQUAD);}
YY_BREAK
case 98:
YY_RULE_SETUP
#line 294 "ldlex.l"
#line 296 "ldlex.l"
{ RTOKEN( LONG);}
YY_BREAK
case 99:
YY_RULE_SETUP
#line 295 "ldlex.l"
#line 297 "ldlex.l"
{ RTOKEN( SHORT);}
YY_BREAK
case 100:
YY_RULE_SETUP
#line 296 "ldlex.l"
#line 298 "ldlex.l"
{ RTOKEN( BYTE);}
YY_BREAK
case 101:
YY_RULE_SETUP
#line 297 "ldlex.l"
#line 299 "ldlex.l"
{ RTOKEN(NOFLOAT);}
YY_BREAK
case 102:
YY_RULE_SETUP
#line 298 "ldlex.l"
#line 300 "ldlex.l"
{ RTOKEN(NOCROSSREFS);}
YY_BREAK
case 103:
YY_RULE_SETUP
#line 299 "ldlex.l"
#line 301 "ldlex.l"
{ RTOKEN(OVERLAY); }
YY_BREAK
case 104:
YY_RULE_SETUP
#line 300 "ldlex.l"
#line 302 "ldlex.l"
{ RTOKEN(SORT_BY_NAME); }
YY_BREAK
case 105:
YY_RULE_SETUP
#line 301 "ldlex.l"
#line 303 "ldlex.l"
{ RTOKEN(SORT_BY_ALIGNMENT); }
YY_BREAK
case 106:
YY_RULE_SETUP
#line 302 "ldlex.l"
#line 304 "ldlex.l"
{ RTOKEN(SORT_BY_NAME); }
YY_BREAK
case 107:
YY_RULE_SETUP
#line 303 "ldlex.l"
#line 305 "ldlex.l"
{ RTOKEN(SORT_BY_INIT_PRIORITY); }
YY_BREAK
case 108:
YY_RULE_SETUP
#line 304 "ldlex.l"
#line 306 "ldlex.l"
{ RTOKEN(SORT_NONE); }
YY_BREAK
case 109:
YY_RULE_SETUP
#line 305 "ldlex.l"
#line 307 "ldlex.l"
{ RTOKEN(NOLOAD);}
YY_BREAK
case 110:
YY_RULE_SETUP
#line 306 "ldlex.l"
#line 308 "ldlex.l"
{ RTOKEN(DSECT);}
YY_BREAK
case 111:
YY_RULE_SETUP
#line 307 "ldlex.l"
#line 309 "ldlex.l"
{ RTOKEN(COPY);}
YY_BREAK
case 112:
YY_RULE_SETUP
#line 308 "ldlex.l"
#line 310 "ldlex.l"
{ RTOKEN(INFO);}
YY_BREAK
case 113:
YY_RULE_SETUP
#line 309 "ldlex.l"
#line 311 "ldlex.l"
{ RTOKEN(OVERLAY);}
YY_BREAK
case 114:
YY_RULE_SETUP
#line 310 "ldlex.l"
#line 312 "ldlex.l"
{ RTOKEN(ONLY_IF_RO); }
YY_BREAK
case 115:
YY_RULE_SETUP
#line 311 "ldlex.l"
#line 313 "ldlex.l"
{ RTOKEN(ONLY_IF_RW); }
YY_BREAK
case 116:
YY_RULE_SETUP
#line 312 "ldlex.l"
#line 314 "ldlex.l"
{ RTOKEN(SPECIAL); }
YY_BREAK
case 117:
YY_RULE_SETUP
#line 313 "ldlex.l"
#line 315 "ldlex.l"
{ RTOKEN(ORIGIN);}
YY_BREAK
case 118:
YY_RULE_SETUP
#line 314 "ldlex.l"
#line 316 "ldlex.l"
{ RTOKEN(ORIGIN);}
YY_BREAK
case 119:
YY_RULE_SETUP
#line 315 "ldlex.l"
#line 317 "ldlex.l"
{ RTOKEN( LENGTH);}
YY_BREAK
case 120:
YY_RULE_SETUP
#line 316 "ldlex.l"
#line 318 "ldlex.l"
{ RTOKEN( LENGTH);}
YY_BREAK
case 121:
YY_RULE_SETUP
#line 317 "ldlex.l"
#line 319 "ldlex.l"
{ RTOKEN(INPUT_SECTION_FLAGS); }
YY_BREAK
case 122:
YY_RULE_SETUP
#line 318 "ldlex.l"
#line 320 "ldlex.l"
{ RTOKEN(INCLUDE);}
YY_BREAK
case 123:
YY_RULE_SETUP
#line 319 "ldlex.l"
#line 321 "ldlex.l"
{ RTOKEN (PHDRS); }
YY_BREAK
case 124:
YY_RULE_SETUP
#line 320 "ldlex.l"
#line 322 "ldlex.l"
{ RTOKEN(AT);}
YY_BREAK
case 125:
YY_RULE_SETUP
#line 321 "ldlex.l"
#line 323 "ldlex.l"
{ RTOKEN(ALIGN_WITH_INPUT);}
YY_BREAK
case 126:
YY_RULE_SETUP
#line 322 "ldlex.l"
#line 324 "ldlex.l"
{ RTOKEN(SUBALIGN);}
YY_BREAK
case 127:
YY_RULE_SETUP
#line 323 "ldlex.l"
#line 325 "ldlex.l"
{ RTOKEN(HIDDEN); }
YY_BREAK
case 128:
YY_RULE_SETUP
#line 324 "ldlex.l"
#line 326 "ldlex.l"
{ RTOKEN(PROVIDE); }
YY_BREAK
case 129:
YY_RULE_SETUP
#line 325 "ldlex.l"
#line 327 "ldlex.l"
{ RTOKEN(PROVIDE_HIDDEN); }
YY_BREAK
case 130:
YY_RULE_SETUP
#line 326 "ldlex.l"
#line 328 "ldlex.l"
{ RTOKEN(KEEP); }
YY_BREAK
case 131:
YY_RULE_SETUP
#line 327 "ldlex.l"
#line 329 "ldlex.l"
{ RTOKEN(EXCLUDE_FILE); }
YY_BREAK
case 132:
YY_RULE_SETUP
#line 328 "ldlex.l"
#line 330 "ldlex.l"
{ RTOKEN(CONSTANT);}
YY_BREAK
case 133:
/* rule 133 can match eol */
YY_RULE_SETUP
#line 329 "ldlex.l"
#line 331 "ldlex.l"
{ ++ lineno; }
YY_BREAK
case 134:
/* rule 134 can match eol */
YY_RULE_SETUP
#line 330 "ldlex.l"
#line 332 "ldlex.l"
{ ++ lineno; RTOKEN(NEWLINE); }
YY_BREAK
case 135:
YY_RULE_SETUP
#line 331 "ldlex.l"
#line 333 "ldlex.l"
{ /* Mri comment line */ }
YY_BREAK
case 136:
YY_RULE_SETUP
#line 332 "ldlex.l"
#line 334 "ldlex.l"
{ /* Mri comment line */ }
YY_BREAK
case 137:
YY_RULE_SETUP
#line 333 "ldlex.l"
#line 335 "ldlex.l"
{ RTOKEN(ENDWORD); }
YY_BREAK
case 138:
YY_RULE_SETUP
#line 334 "ldlex.l"
#line 336 "ldlex.l"
{ RTOKEN(ALIGNMOD);}
YY_BREAK
case 139:
YY_RULE_SETUP
#line 335 "ldlex.l"
#line 337 "ldlex.l"
{ RTOKEN(ALIGN_K);}
YY_BREAK
case 140:
YY_RULE_SETUP
#line 336 "ldlex.l"
#line 338 "ldlex.l"
{ RTOKEN(CHIP); }
YY_BREAK
case 141:
YY_RULE_SETUP
#line 337 "ldlex.l"
#line 339 "ldlex.l"
{ RTOKEN(BASE); }
YY_BREAK
case 142:
YY_RULE_SETUP
#line 338 "ldlex.l"
#line 340 "ldlex.l"
{ RTOKEN(ALIAS); }
YY_BREAK
case 143:
YY_RULE_SETUP
#line 339 "ldlex.l"
#line 341 "ldlex.l"
{ RTOKEN(TRUNCATE); }
YY_BREAK
case 144:
YY_RULE_SETUP
#line 340 "ldlex.l"
#line 342 "ldlex.l"
{ RTOKEN(LOAD); }
YY_BREAK
case 145:
YY_RULE_SETUP
#line 341 "ldlex.l"
#line 343 "ldlex.l"
{ RTOKEN(PUBLIC); }
YY_BREAK
case 146:
YY_RULE_SETUP
#line 342 "ldlex.l"
#line 344 "ldlex.l"
{ RTOKEN(ORDER); }
YY_BREAK
case 147:
YY_RULE_SETUP
#line 343 "ldlex.l"
#line 345 "ldlex.l"
{ RTOKEN(NAMEWORD); }
YY_BREAK
case 148:
YY_RULE_SETUP
#line 344 "ldlex.l"
#line 346 "ldlex.l"
{ RTOKEN(FORMAT); }
YY_BREAK
case 149:
YY_RULE_SETUP
#line 345 "ldlex.l"
#line 347 "ldlex.l"
{ RTOKEN(CASE); }
YY_BREAK
case 150:
YY_RULE_SETUP
#line 346 "ldlex.l"
#line 348 "ldlex.l"
{ RTOKEN(START); }
YY_BREAK
case 151:
YY_RULE_SETUP
#line 347 "ldlex.l"
#line 349 "ldlex.l"
{ RTOKEN(LIST); /* LIST and ignore to end of line */ }
YY_BREAK
case 152:
YY_RULE_SETUP
#line 348 "ldlex.l"
#line 350 "ldlex.l"
{ RTOKEN(SECT); }
YY_BREAK
case 153:
YY_RULE_SETUP
#line 349 "ldlex.l"
#line 351 "ldlex.l"
{ RTOKEN(ABSOLUTE); }
YY_BREAK
case 154:
YY_RULE_SETUP
#line 350 "ldlex.l"
#line 352 "ldlex.l"
{ RTOKEN(ENDWORD); }
YY_BREAK
case 155:
YY_RULE_SETUP
#line 351 "ldlex.l"
#line 353 "ldlex.l"
{ RTOKEN(ALIGNMOD);}
YY_BREAK
case 156:
YY_RULE_SETUP
#line 352 "ldlex.l"
#line 354 "ldlex.l"
{ RTOKEN(ALIGN_K);}
YY_BREAK
case 157:
YY_RULE_SETUP
#line 353 "ldlex.l"
#line 355 "ldlex.l"
{ RTOKEN(CHIP); }
YY_BREAK
case 158:
YY_RULE_SETUP
#line 354 "ldlex.l"
#line 356 "ldlex.l"
{ RTOKEN(BASE); }
YY_BREAK
case 159:
YY_RULE_SETUP
#line 355 "ldlex.l"
#line 357 "ldlex.l"
{ RTOKEN(ALIAS); }
YY_BREAK
case 160:
YY_RULE_SETUP
#line 356 "ldlex.l"
#line 358 "ldlex.l"
{ RTOKEN(TRUNCATE); }
YY_BREAK
case 161:
YY_RULE_SETUP
#line 357 "ldlex.l"
#line 359 "ldlex.l"
{ RTOKEN(LOAD); }
YY_BREAK
case 162:
YY_RULE_SETUP
#line 358 "ldlex.l"
#line 360 "ldlex.l"
{ RTOKEN(PUBLIC); }
YY_BREAK
case 163:
YY_RULE_SETUP
#line 359 "ldlex.l"
#line 361 "ldlex.l"
{ RTOKEN(ORDER); }
YY_BREAK
case 164:
YY_RULE_SETUP
#line 360 "ldlex.l"
#line 362 "ldlex.l"
{ RTOKEN(NAMEWORD); }
YY_BREAK
case 165:
YY_RULE_SETUP
#line 361 "ldlex.l"
#line 363 "ldlex.l"
{ RTOKEN(FORMAT); }
YY_BREAK
case 166:
YY_RULE_SETUP
#line 362 "ldlex.l"
#line 364 "ldlex.l"
{ RTOKEN(CASE); }
YY_BREAK
case 167:
YY_RULE_SETUP
#line 363 "ldlex.l"
#line 365 "ldlex.l"
{ RTOKEN(EXTERN); }
YY_BREAK
case 168:
YY_RULE_SETUP
#line 364 "ldlex.l"
#line 366 "ldlex.l"
{ RTOKEN(START); }
YY_BREAK
case 169:
YY_RULE_SETUP
#line 365 "ldlex.l"
#line 367 "ldlex.l"
{ RTOKEN(LIST); /* LIST and ignore to end of line */ }
YY_BREAK
case 170:
YY_RULE_SETUP
#line 366 "ldlex.l"
#line 368 "ldlex.l"
{ RTOKEN(SECT); }
YY_BREAK
case 171:
YY_RULE_SETUP
#line 367 "ldlex.l"
#line 369 "ldlex.l"
{ RTOKEN(ABSOLUTE); }
YY_BREAK
case 172:
YY_RULE_SETUP
#line 369 "ldlex.l"
#line 371 "ldlex.l"
{
/* Filename without commas, needed to parse mri stuff */
yylval.name = xstrdup (yytext);
2955,7 → 2998,7
YY_BREAK
case 173:
YY_RULE_SETUP
#line 376 "ldlex.l"
#line 378 "ldlex.l"
{
yylval.name = xstrdup (yytext);
return NAME;
2963,31 → 3006,40
YY_BREAK
case 174:
YY_RULE_SETUP
#line 380 "ldlex.l"
#line 382 "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 175:
case 176:
YY_RULE_SETUP
#line 384 "ldlex.l"
#line 391 "ldlex.l"
{
yylval.name = xstrdup (yytext);
return NAME;
}
YY_BREAK
case 176:
case 177:
YY_RULE_SETUP
#line 388 "ldlex.l"
#line 395 "ldlex.l"
{
yylval.name = xstrdup (yytext + 2);
return LNAME;
}
YY_BREAK
case 177:
case 178:
YY_RULE_SETUP
#line 392 "ldlex.l"
#line 399 "ldlex.l"
{
/* Annoyingly, this pattern can match comments, and we have
longest match issues to consider. So if the first two
3005,10 → 3057,10
}
}
YY_BREAK
case 178:
/* rule 178 can match eol */
case 179:
/* rule 179 can match eol */
YY_RULE_SETUP
#line 409 "ldlex.l"
#line 416 "ldlex.l"
{
/* No matter the state, quotes
give what's inside */
3017,98 → 3069,99
return NAME;
}
YY_BREAK
case 179:
/* rule 179 can match eol */
case 180:
/* rule 180 can match eol */
YY_RULE_SETUP
#line 416 "ldlex.l"
#line 423 "ldlex.l"
{ lineno++;}
YY_BREAK
case 180:
case 181:
YY_RULE_SETUP
#line 417 "ldlex.l"
#line 424 "ldlex.l"
{ }
YY_BREAK
case 181:
case 182:
YY_RULE_SETUP
#line 419 "ldlex.l"
#line 426 "ldlex.l"
{ return *yytext; }
YY_BREAK
case 182:
case 183:
YY_RULE_SETUP
#line 421 "ldlex.l"
#line 428 "ldlex.l"
{ RTOKEN(GLOBAL); }
YY_BREAK
case 183:
case 184:
YY_RULE_SETUP
#line 423 "ldlex.l"
#line 430 "ldlex.l"
{ RTOKEN(LOCAL); }
YY_BREAK
case 184:
case 185:
YY_RULE_SETUP
#line 425 "ldlex.l"
#line 432 "ldlex.l"
{ RTOKEN(EXTERN); }
YY_BREAK
case 185:
case 186:
YY_RULE_SETUP
#line 427 "ldlex.l"
#line 434 "ldlex.l"
{ yylval.name = xstrdup (yytext);
return VERS_IDENTIFIER; }
YY_BREAK
case 186:
case 187:
YY_RULE_SETUP
#line 430 "ldlex.l"
#line 437 "ldlex.l"
{ yylval.name = xstrdup (yytext);
return VERS_TAG; }
YY_BREAK
case 187:
case 188:
YY_RULE_SETUP
#line 433 "ldlex.l"
#line 440 "ldlex.l"
{ BEGIN(VERS_SCRIPT); return *yytext; }
YY_BREAK
case 188:
case 189:
YY_RULE_SETUP
#line 435 "ldlex.l"
#line 442 "ldlex.l"
{ BEGIN(VERS_NODE);
vers_node_nesting = 0;
return *yytext;
}
YY_BREAK
case 189:
case 190:
YY_RULE_SETUP
#line 439 "ldlex.l"
#line 446 "ldlex.l"
{ return *yytext; }
YY_BREAK
case 190:
case 191:
YY_RULE_SETUP
#line 440 "ldlex.l"
#line 447 "ldlex.l"
{ vers_node_nesting++; return *yytext; }
YY_BREAK
case 191:
case 192:
YY_RULE_SETUP
#line 441 "ldlex.l"
#line 448 "ldlex.l"
{ if (--vers_node_nesting < 0)
BEGIN(VERS_SCRIPT);
return *yytext;
}
YY_BREAK
case 192:
/* rule 192 can match eol */
case 193:
/* rule 193 can match eol */
YY_RULE_SETUP
#line 446 "ldlex.l"
#line 453 "ldlex.l"
{ lineno++; }
YY_BREAK
case 193:
case 194:
YY_RULE_SETUP
#line 448 "ldlex.l"
#line 455 "ldlex.l"
{ /* Eat up comments */ }
YY_BREAK
case 194:
case 195:
YY_RULE_SETUP
#line 450 "ldlex.l"
#line 457 "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):
3116,7 → 3169,7
case YY_STATE_EOF(VERS_START):
case YY_STATE_EOF(VERS_SCRIPT):
case YY_STATE_EOF(VERS_NODE):
#line 452 "ldlex.l"
#line 459 "ldlex.l"
{
include_stack_ptr--;
if (include_stack_ptr == 0)
3130,22 → 3183,22
return END;
}
YY_BREAK
case 195:
case 196:
YY_RULE_SETUP
#line 465 "ldlex.l"
#line 472 "ldlex.l"
lex_warn_invalid (" in script", yytext);
YY_BREAK
case 196:
case 197:
YY_RULE_SETUP
#line 466 "ldlex.l"
#line 473 "ldlex.l"
lex_warn_invalid (" in expression", yytext);
YY_BREAK
case 197:
case 198:
YY_RULE_SETUP
#line 468 "ldlex.l"
#line 475 "ldlex.l"
ECHO;
YY_BREAK
#line 3149 "ldlex.c"
#line 3202 "ldlex.c"
 
case YY_END_OF_BUFFER:
{
3435,7 → 3488,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 >= 1751 )
if ( yy_current_state >= 1766 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3463,11 → 3516,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 >= 1751 )
if ( yy_current_state >= 1766 )
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 == 1750);
yy_is_jam = (yy_current_state == 1765);
 
return yy_is_jam ? 0 : yy_current_state;
}
4103,7 → 4156,7
 
#define YYTABLES_NAME "yytables"
 
#line 468 "ldlex.l"
#line 475 "ldlex.l"
 
 
4206,6 → 4259,13
}
 
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/ldlex.h
1,6 → 1,5
/* ldlex.h -
Copyright 1991, 1992, 1993, 1994, 1995, 1997, 2000, 2003, 2005, 2006,
2007, 2012 Free Software Foundation, Inc.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
34,6 → 33,7
OPTION_DEFSYM,
OPTION_DEMANGLE,
OPTION_DYNAMIC_LINKER,
OPTION_NO_DYNAMIC_LINKER,
OPTION_SYSROOT,
OPTION_EB,
OPTION_EL,
137,7 → 137,13
#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. */
160,6 → 166,7
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.c
1,5 → 1,5
/* Main program of GNU linker.
Copyright 1991-2013 Free Software Foundation, Inc.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Written by Steve Chamberlain steve@cygnus.com
 
This file is part of the GNU Binutils.
41,7 → 41,6
#ifdef ENABLE_PLUGINS
#include "plugin.h"
#include "plugin-api.h"
#include "libbfd.h"
#endif /* ENABLE_PLUGINS */
 
/* Somewhere above, sys/stat.h got included. */
137,7 → 136,7
(struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma);
static bfd_boolean notice
(struct bfd_link_info *, struct bfd_link_hash_entry *,
bfd *, asection *, bfd_vma, flagword, const char *);
struct bfd_link_hash_entry *, bfd *, asection *, bfd_vma, flagword);
 
static struct bfd_link_callbacks link_callbacks =
{
223,15 → 222,7
/* 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
286,9 → 277,13
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);
297,6 → 292,7
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);
378,6 → 374,13
 
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)
412,11 → 415,18
 
/* Print error messages for any missing symbols, for any warning
symbols, and possibly multiple definitions. */
if (link_info.relocatable)
if (bfd_link_relocatable (&link_info))
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)
425,7 → 435,17
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
448,7 → 468,8
/* 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 (! link_info.relocatable && command_line.force_exe_suffix)
if (!bfd_link_relocatable (&link_info)
&& command_line.force_exe_suffix)
{
int len = strlen (output_filename);
 
469,10 → 490,10
dst = fopen (dst_name, FOPEN_WB);
 
if (!src)
einfo (_("%X%P: unable to open for source of copy `%s'\n"),
einfo (_("%P%F: unable to open for source of copy `%s'\n"),
output_filename);
if (!dst)
einfo (_("%X%P: unable to open for destination of copy `%s'\n"),
einfo (_("%P%F: unable to open for destination of copy `%s'\n"),
dst_name);
while ((l = fread (buf, 1, bsize, src)) > 0)
{
597,8 → 618,10
|| 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], "-mips64r2") == 0
|| strcmp (argv[i], "-mips64r6") == 0)
{
/* FIXME: The arguments -mips1, -mips2, -mips3, etc. are
passed to the linker by some MIPS compilers. They
744,6 → 767,7
 
free (buf);
link_info.strip = strip_some;
fclose (file);
}
/* Callbacks from the BFD linker routines. */
771,25 → 795,10
BFD, but we still want to output the original BFD filename. */
orig_input = *input;
#ifdef ENABLE_PLUGINS
if (plugin_active_plugins_p () && !no_more_claiming)
if (link_info.lto_plugin_active && !no_more_claiming)
{
/* We must offer this archive member to the plugins to claim. */
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);
plugin_maybe_claim (input);
if (input->flags.claimed)
{
input->flags.claim_archive = TRUE;
796,7 → 805,6
*subsbfd = input->the_bfd;
}
}
}
#endif /* ENABLE_PLUGINS */
 
ldlang_add_file (input);
840,7 → 848,8
{
char buf[100];
 
sprintf (buf, _("Archive member included because of file (symbol)\n\n"));
sprintf (buf, _("Archive member included "
"to satisfy reference by file (symbol)\n\n"));
minfo ("%s", buf);
header_printed = TRUE;
}
1109,7 → 1118,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
&& (info->relocatable
&& (bfd_link_relocatable (info)
|| bfd_reloc_type_lookup (abfd, BFD_RELOC_CTOR) == NULL))
einfo (_("%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"));
 
1148,6 → 1157,25
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
1170,23 → 1198,13
einfo ("%P: %s%s\n", _("warning: "), warning);
else if (symbol == NULL)
einfo ("%B: %s%s\n", abfd, _("warning: "), warning);
else
else if (! symbol_warning (warning, symbol, abfd))
{
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)
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;
einfo ("%B: %s%s\n", abfd, _("warning: "), warning);
}
 
1436,11 → 1454,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,
const char *string ATTRIBUTE_UNUSED)
flagword flags ATTRIBUTE_UNUSED)
{
const char *name;
 
/contrib/toolchain/binutils/ld/ldmain.h
1,5 → 1,5
/* ldmain.h -
Copyright 1991-2013 Free Software Foundation, Inc.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
/contrib/toolchain/binutils/ld/ldmisc.c
1,7 → 1,5
/* ldmisc.c
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.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Written by Steve Chamberlain of Cygnus Support.
 
This file is part of the GNU Binutils.
37,6 → 35,7
#include "ldmain.h"
#include "ldfile.h"
#include "elf-bfd.h"
#include "coff-bfd.h"
 
/*
%% literal %
484,6 → 483,21
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);
}
520,10 → 534,10
ld_abort (const char *file, int line, const char *fn)
{
if (fn != NULL)
einfo (_("%P: internal error: aborting at %s line %d in %s\n"),
einfo (_("%P: internal error: aborting at %s:%d in %s\n"),
file, line, fn);
else
einfo (_("%P: internal error: aborting at %s line %d\n"),
einfo (_("%P: internal error: aborting at %s:%d\n"),
file, line);
einfo (_("%P%F: please report this bug\n"));
xexit (1);
/contrib/toolchain/binutils/ld/ldmisc.h
1,6 → 1,5
/* ldmisc.h -
Copyright 1991, 1992, 1993, 1994, 1996, 1997, 2001, 2003, 2004, 2005, 2007
Free Software Foundation, Inc.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
/contrib/toolchain/binutils/ld/ldver.c
1,7 → 1,5
/* ldver.c -- Print linker version.
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2002,
2003, 2005, 2007, 2008, 2009, 2010, 2011, 2012, 2013
Free Software Foundation, Inc.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
40,7 → 38,7
 
if (noisy & 2)
{
printf (_("Copyright 2013 Free Software Foundation, Inc.\n"));
printf (_("Copyright (C) 2015 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,6 → 1,5
/* ldver.h -- Header file for ldver.c.
Copyright 1991, 1992, 1993, 1996, 2001, 2003, 2005, 2007
Free Software Foundation, Inc.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
/contrib/toolchain/binutils/ld/ldwrite.c
1,7 → 1,5
/* ldwrite.c -- write out the linked file
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2002,
2003, 2004, 2005, 2006, 2007, 2008, 2010, 2012
Free Software Foundation, Inc.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Written by Steve Chamberlain sac@cygnus.com
 
This file is part of the GNU Binutils.
490,13 → 488,13
|| info->strip == strip_some)
thislines = sec->lineno_count;
 
if (info->relocatable)
if (bfd_link_relocatable (info))
thisrelocs = sec->reloc_count;
 
thissize = sec->size;
 
}
else if (info->relocatable
else if (bfd_link_relocatable (info)
&& (p->type == bfd_section_reloc_link_order
|| p->type == bfd_symbol_reloc_link_order))
thisrelocs++;
574,6 → 572,7
/* 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 1991, 1992, 1993, 2003, 2005, 2007 Free Software Foundation, Inc.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
/contrib/toolchain/binutils/ld/lexsup.c
1,7 → 1,5
/* Parse options for the GNU linker.
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.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
67,9 → 65,9
 
enum control_enum {
/* Use one dash before long option name. */
ONE_DASH,
ONE_DASH = 1,
/* Use two dashes before long option name. */
TWO_DASHES,
TWO_DASHES = 2,
/* 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
140,6 → 138,9
{ {"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'},
178,6 → 179,12
{ {"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'},
208,6 → 215,9
{ {"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 },
381,6 → 391,8
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,
507,6 → 519,17
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)
656,7 → 679,28
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:
741,7 → 785,11
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;
956,6 → 1004,11
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;
982,9 → 1035,13
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: bad -rpath option\n"));
einfo(_("%P%F: unrecognised option: %s\n"), argv[optind]);
 
link_info.relocatable = TRUE;
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;
config.build_constructors = FALSE;
config.magic_demand_paged = FALSE;
config.text_read_only = FALSE;
1087,7 → 1144,10
case OPTION_SHARED:
if (config.has_shared)
{
link_info.shared = TRUE;
if (bfd_link_relocatable (&link_info))
einfo (_("%P%F: -r and -shared may not be used together\n"));
 
link_info.type = type_dll;
/* 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)
1101,8 → 1161,10
case OPTION_PIE:
if (config.has_shared)
{
link_info.shared = TRUE;
link_info.pie = TRUE;
if (bfd_link_relocatable (&link_info))
einfo (_("%P%F: -r and -pie may not be used together\n"));
 
link_info.type = type_pie;
}
else
einfo (_("%P%F: -pie not supported\n"));
1109,6 → 1171,10
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:
1211,7 → 1277,11
link_info.task_link = TRUE;
/* Fall through - do an implied -r option. */
case OPTION_UR:
link_info.relocatable = TRUE;
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;
config.build_constructors = TRUE;
config.magic_demand_paged = FALSE;
config.text_read_only = FALSE;
1220,6 → 1290,9
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);
1442,9 → 1515,50
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 ();
1465,13 → 1579,9
/* FIXME: Should we allow emulations a chance to set this ? */
link_info.unresolved_syms_in_shared_libs = how_to_report_unresolved_symbols;
 
if (link_info.relocatable)
{
if (command_line.check_section_addresses < 0)
if (bfd_link_relocatable (&link_info)
&& 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
1484,7 → 1594,7
break;
case symbolic:
/* -Bsymbolic is for shared library only. */
if (link_info.shared)
if (bfd_link_dll (&link_info))
{
link_info.symbolic = TRUE;
/* Should we free the unused memory? */
1494,7 → 1604,7
break;
case symbolic_functions:
/* -Bsymbolic-functions is for shared library only. */
if (link_info.shared)
if (bfd_link_dll (&link_info))
command_line.dynamic_list = dynamic_list_data;
break;
}
1510,7 → 1620,7
break;
}
 
if (! link_info.shared)
if (!bfd_link_dll (&link_info))
{
if (command_line.filter_shlib)
einfo (_("%P%F: -F may not be used without -shared\n"));
1518,13 → 1628,10
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 (link_info.relocatable && link_info.strip == strip_all)
if (bfd_link_relocatable (&link_info) && link_info.strip == strip_all)
{
link_info.strip = strip_debugger;
if (link_info.discard == discard_sec_merge)
1598,7 → 1705,123
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
1710,6 → 1933,8
 
/* 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,6 → 1,5
/* mri.c -- handle MRI style linker scripts
Copyright 1991, 1992, 1993, 1994, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2005, 2007, 2011 Free Software Foundation, Inc.
Copyright (C) 1991-2015 Free Software Foundation, Inc.
Contributed by Steve Chamberlain <sac@cygnus.com>.
 
This file is part of the GNU Binutils.
45,6 → 44,8
};
 
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 1993, 1995, 1996, 2003, 2005, 2007 Free Software Foundation, Inc.
Copyright (C) 1993-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
/contrib/toolchain/binutils/ld/pe-dll.c
1,6 → 1,5
/* Routines to help build PEI-format DLLs (Win32 etc)
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
Copyright (C) 1998-2015 Free Software Foundation, Inc.
Written by DJ Delorie <dj@cygnus.com>
 
This file is part of the GNU Binutils.
236,6 → 235,7
{ 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 (info->executable && pe_def_file->num_exports == 0
if (bfd_link_executable (info) && 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 = xmalloc (PE_IDATA5_SIZE);
extern_rt_rel_d = xcalloc (1, 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 && !info->shared)
if (pe_def_file->num_exports == 0 && !bfd_link_pic (info))
return;
 
generate_edata (abfd, info);
3411,7 → 3411,7
 
fill_edata (abfd, info);
 
if (info->shared && !info->pie)
if (bfd_link_dll (info))
pe_data (abfd)->dll = 1;
 
edata_s->contents = edata_d;
/contrib/toolchain/binutils/ld/pe-dll.h
1,6 → 1,5
/* pe-dll.h: Header file for routines used to build Windows DLLs.
Copyright 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Copyright (C) 1999-2015 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 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
Copyright (C) 2010-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
21,6 → 21,7
#include "sysdep.h"
#include "libiberty.h"
#include "bfd.h"
#include "libbfd.h"
#include "bfdlink.h"
#include "bfdver.h"
#include "ld.h"
29,6 → 30,7
#include "ldexp.h"
#include "ldlang.h"
#include "ldfile.h"
#include "../bfd/plugin.h"
#include "plugin.h"
#include "plugin-api.h"
#include "elf-bfd.h"
72,6 → 74,26
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;
 
114,6 → 136,7
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,
127,9 → 150,12
 
/* Forward references. */
static bfd_boolean plugin_notice (struct bfd_link_info *,
struct bfd_link_hash_entry *, bfd *,
asection *, bfd_vma, flagword, const char *);
struct bfd_link_hash_entry *,
struct bfd_link_hash_entry *,
bfd *, asection *, bfd_vma, flagword);
 
static const bfd_target * plugin_object_p (bfd *);
 
#if !defined (HAVE_DLFCN_H) && defined (HAVE_WINDOWS_H)
 
#define RTLD_NOW 0 /* Dummy value. */
217,6 → 243,17
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;
228,22 → 265,33
return 0;
}
 
/* Create a dummy BFD. */
bfd *
/* 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 *
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),
srctemplate);
bfd_plugin_target ? link_info.output_bfd : 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_make_writable (abfd)
&& bfd_copy_private_bfd_data (srctemplate, abfd))
if (!bfd_copy_private_bfd_data (srctemplate, abfd))
goto report_error;
}
{
flagword flags;
 
254,22 → 302,18
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 bfd_boolean
static inline 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.
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);
of the linker callbacks for a symbol in the *ABS* or *UND* sections. */
return abfd != NULL && (abfd->flags & BFD_PLUGIN) != 0;
}
 
/* Helpers to convert between BFD and GOLD symbol formats. */
406,7 → 450,8
add_symbols (void *handle, int nsyms, const struct ld_plugin_symbol *syms)
{
asymbol **symptrs;
bfd *abfd = handle;
plugin_input_file_t *input = handle;
bfd *abfd = input->abfd;
int n;
 
ASSERT (called_plugin);
429,16 → 474,31
/* Get the input file information with an open (possibly re-opened)
file descriptor. */
static enum ld_plugin_status
get_input_file (const void *handle ATTRIBUTE_UNUSED,
struct ld_plugin_input_file *file ATTRIBUTE_UNUSED)
get_input_file (const void *handle, struct ld_plugin_input_file *file)
{
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 ATTRIBUTE_UNUSED)
release_input_file (const void *handle)
{
ASSERT (called_plugin);
return LDPS_ERR;
452,9 → 512,9
{
struct bfd_sym_chain *sym;
 
if (link_info.relocatable)
if (bfd_link_relocatable (&link_info))
return TRUE;
if (link_info.export_dynamic || !link_info.executable)
if (link_info.export_dynamic || bfd_link_dll (&link_info))
{
/* Check if symbol is hidden by version script. */
if (bfd_hide_sym_by_version (link_info.version_info,
494,7 → 554,8
get_symbols (const void *handle, int nsyms, struct ld_plugin_symbol *syms,
int def_ironly_exp)
{
const bfd *abfd = handle;
const plugin_input_file_t *input = handle;
const bfd *abfd = (const bfd *) input->abfd;
int n;
 
ASSERT (called_plugin);
612,10 → 673,14
static enum ld_plugin_status
add_input_file (const char *pathname)
{
lang_input_statement_type *is;
 
ASSERT (called_plugin);
if (!lang_add_input_file (xstrdup (pathname), lang_input_file_is_file_enum,
NULL))
is = lang_add_input_file (xstrdup (pathname), lang_input_file_is_file_enum,
NULL);
if (!is)
return LDPS_ERR;
is->flags.lto_output = 1;
return LDPS_OK;
}
 
623,10 → 688,14
static enum ld_plugin_status
add_input_library (const char *pathname)
{
lang_input_statement_type *is;
 
ASSERT (called_plugin);
if (!lang_add_input_file (xstrdup (pathname), lang_input_file_is_l_enum,
NULL))
is = lang_add_input_file (xstrdup (pathname), lang_input_file_is_l_enum,
NULL);
if (!is)
return LDPS_ERR;
is->flags.lto_output = 1;
return LDPS_OK;
}
 
654,15 → 723,19
putchar ('\n');
break;
case LDPL_WARNING:
vfinfo (stdout, format, args, TRUE);
putchar ('\n');
{
char *newfmt = ACONCAT (("%P: warning: ", format, "\n",
(const char *) NULL));
vfinfo (stdout, newfmt, args, TRUE);
}
break;
case LDPL_FATAL:
case LDPL_ERROR:
default:
{
char *newfmt = ACONCAT ((level == LDPL_FATAL ? "%P%F: " : "%P%X: ",
format, "\n", (const char *) NULL));
char *newfmt = ACONCAT ((level == LDPL_FATAL ? "%P%F" : "%P%X",
": error: ", format, "\n",
(const char *) NULL));
fflush (stdout);
vfinfo (stderr, newfmt, args, TRUE);
fflush (stderr);
700,11 → 773,10
TVU(val) = major * 100 + minor;
break;
case LDPT_LINKER_OUTPUT:
TVU(val) = (link_info.relocatable
? LDPO_REL
: (link_info.executable
? (link_info.pie ? LDPO_PIE : LDPO_EXEC)
: LDPO_DYN));
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);
break;
case LDPT_OUTPUT_NAME:
TVU(string) = output_filename;
724,6 → 796,9
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;
767,14 → 842,6
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)
830,7 → 897,14
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. */
857,23 → 931,156
return plugin_error_p () ? -1 : 0;
}
 
void
plugin_maybe_claim (struct ld_plugin_input_file *file,
lang_input_statement_type *entry)
/* Duplicates a character string with memory attached to ABFD. */
 
static char *
plugin_strdup (bfd *abfd, const char *str)
{
int claimed = 0;
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;
}
 
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. */
file->handle = plugin_get_ir_dummy_bfd (entry->the_bfd->filename,
entry->the_bfd);
if (plugin_call_claim_file (file, &claimed))
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))
einfo (_("%P%F: %s: plugin reported error claiming file\n"),
plugin_error_plugin ());
/* fd belongs to us, not the plugin; but we don't need it. */
close (file->fd);
 
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;
}
 
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
880,18 → 1087,10
bfd_close for archives. */
if (entry->the_bfd->my_archive == NULL)
bfd_close (entry->the_bfd);
entry->the_bfd = file->handle;
entry->flags.claimed = TRUE;
bfd_make_readable (entry->the_bfd);
entry->the_bfd = abfd;
entry->flags.claimed = 1;
}
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
950,16 → 1149,21
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,
const char *string)
flagword flags)
{
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))
;
969,16 → 1173,15
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. */
1019,23 → 1222,12
}
 
/* Continue with cref/nocrossref/trace-sym processing. */
if (h == NULL
if (orig_h == NULL
|| orig_notice_all
|| (info->notice_hash != NULL
&& bfd_hash_lookup (info->notice_hash, h->root.string,
&& bfd_hash_lookup (info->notice_hash, orig_h->root.string,
FALSE, FALSE) != NULL))
return (*orig_callbacks->notice) (info, h,
abfd, section, value, flags, string);
return (*orig_callbacks->notice) (info, orig_h, inh,
abfd, section, value, flags);
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 2010, 2011 Free Software Foundation, Inc.
Copyright (C) 2010-2015 Free Software Foundation, Inc.
 
This file is part of the GNU Binutils.
 
39,10 → 39,6
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);
 
50,8 → 46,7
extern const char *plugin_error_plugin (void);
 
/* Call 'claim file' hook for all plugins. */
extern void plugin_maybe_claim (struct ld_plugin_input_file *,
lang_input_statement_type *);
extern void plugin_maybe_claim (lang_input_statement_type *);
 
/* Call 'all symbols read' hook for all plugins. */
extern int plugin_call_all_symbols_read (void);
59,14 → 54,4
/* 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 */