/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 */ |