1 /* A Bison parser, made by GNU Bison 2.1. */ 2 3 /* Skeleton parser for Yacc-like parsing with Bison, 4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2, or (at your option) 9 any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program; if not, write to the Free Software 18 Foundation, Inc., 51 Franklin Street, Fifth Floor, 19 Boston, MA 02110-1301, USA. */ 20 21 /* As a special exception, when this file is copied by Bison into a 22 Bison output file, you may use that output file without restriction. 23 This special exception was added by the Free Software Foundation 24 in version 1.24 of Bison. */ 25 26 /* Tokens. */ 27 #ifndef YYTOKENTYPE 28 # define YYTOKENTYPE 29 /* Put the tokens into the symbol table, so that GDB and other debuggers 30 know about them. */ 31 enum yytokentype { 32 INT = 258, 33 NAME = 259, 34 LNAME = 260, 35 OREQ = 261, 36 ANDEQ = 262, 37 RSHIFTEQ = 263, 38 LSHIFTEQ = 264, 39 DIVEQ = 265, 40 MULTEQ = 266, 41 MINUSEQ = 267, 42 PLUSEQ = 268, 43 OROR = 269, 44 ANDAND = 270, 45 NE = 271, 46 EQ = 272, 47 GE = 273, 48 LE = 274, 49 RSHIFT = 275, 50 LSHIFT = 276, 51 UNARY = 277, 52 END = 278, 53 ALIGN_K = 279, 54 BLOCK = 280, 55 BIND = 281, 56 QUAD = 282, 57 SQUAD = 283, 58 LONG = 284, 59 SHORT = 285, 60 BYTE = 286, 61 SECTIONS = 287, 62 PHDRS = 288, 63 INSERT_K = 289, 64 AFTER = 290, 65 BEFORE = 291, 66 DATA_SEGMENT_ALIGN = 292, 67 DATA_SEGMENT_RELRO_END = 293, 68 DATA_SEGMENT_END = 294, 69 SORT_BY_NAME = 295, 70 SORT_BY_ALIGNMENT = 296, 71 SIZEOF_HEADERS = 297, 72 OUTPUT_FORMAT = 298, 73 FORCE_COMMON_ALLOCATION = 299, 74 OUTPUT_ARCH = 300, 75 INHIBIT_COMMON_ALLOCATION = 301, 76 SEGMENT_START = 302, 77 INCLUDE = 303, 78 MEMORY = 304, 79 NOLOAD = 305, 80 DSECT = 306, 81 COPY = 307, 82 INFO = 308, 83 OVERLAY = 309, 84 DEFINED = 310, 85 TARGET_K = 311, 86 SEARCH_DIR = 312, 87 MAP = 313, 88 ENTRY = 314, 89 NEXT = 315, 90 SIZEOF = 316, 91 ALIGNOF = 317, 92 ADDR = 318, 93 LOADADDR = 319, 94 MAX_K = 320, 95 MIN_K = 321, 96 STARTUP = 322, 97 HLL = 323, 98 SYSLIB = 324, 99 FLOAT = 325, 100 NOFLOAT = 326, 101 NOCROSSREFS = 327, 102 ORIGIN = 328, 103 FILL = 329, 104 LENGTH = 330, 105 CREATE_OBJECT_SYMBOLS = 331, 106 INPUT = 332, 107 GROUP = 333, 108 OUTPUT = 334, 109 CONSTRUCTORS = 335, 110 ALIGNMOD = 336, 111 AT = 337, 112 SUBALIGN = 338, 113 PROVIDE = 339, 114 PROVIDE_HIDDEN = 340, 115 AS_NEEDED = 341, 116 CHIP = 342, 117 LIST = 343, 118 SECT = 344, 119 ABSOLUTE = 345, 120 LOAD = 346, 121 NEWLINE = 347, 122 ENDWORD = 348, 123 ORDER = 349, 124 NAMEWORD = 350, 125 ASSERT_K = 351, 126 FORMAT = 352, 127 PUBLIC = 353, 128 DEFSYMEND = 354, 129 BASE = 355, 130 ALIAS = 356, 131 TRUNCATE = 357, 132 REL = 358, 133 INPUT_SCRIPT = 359, 134 INPUT_MRI_SCRIPT = 360, 135 INPUT_DEFSYM = 361, 136 CASE = 362, 137 EXTERN = 363, 138 START = 364, 139 VERS_TAG = 365, 140 VERS_IDENTIFIER = 366, 141 GLOBAL = 367, 142 LOCAL = 368, 143 VERSIONK = 369, 144 INPUT_VERSION_SCRIPT = 370, 145 KEEP = 371, 146 ONLY_IF_RO = 372, 147 ONLY_IF_RW = 373, 148 SPECIAL = 374, 149 EXCLUDE_FILE = 375, 150 CONSTANT = 376, 151 INPUT_DYNAMIC_LIST = 377 152 }; 153 #endif 154 /* Tokens. */ 155 #define INT 258 156 #define NAME 259 157 #define LNAME 260 158 #define OREQ 261 159 #define ANDEQ 262 160 #define RSHIFTEQ 263 161 #define LSHIFTEQ 264 162 #define DIVEQ 265 163 #define MULTEQ 266 164 #define MINUSEQ 267 165 #define PLUSEQ 268 166 #define OROR 269 167 #define ANDAND 270 168 #define NE 271 169 #define EQ 272 170 #define GE 273 171 #define LE 274 172 #define RSHIFT 275 173 #define LSHIFT 276 174 #define UNARY 277 175 #define END 278 176 #define ALIGN_K 279 177 #define BLOCK 280 178 #define BIND 281 179 #define QUAD 282 180 #define SQUAD 283 181 #define LONG 284 182 #define SHORT 285 183 #define BYTE 286 184 #define SECTIONS 287 185 #define PHDRS 288 186 #define INSERT_K 289 187 #define AFTER 290 188 #define BEFORE 291 189 #define DATA_SEGMENT_ALIGN 292 190 #define DATA_SEGMENT_RELRO_END 293 191 #define DATA_SEGMENT_END 294 192 #define SORT_BY_NAME 295 193 #define SORT_BY_ALIGNMENT 296 194 #define SIZEOF_HEADERS 297 195 #define OUTPUT_FORMAT 298 196 #define FORCE_COMMON_ALLOCATION 299 197 #define OUTPUT_ARCH 300 198 #define INHIBIT_COMMON_ALLOCATION 301 199 #define SEGMENT_START 302 200 #define INCLUDE 303 201 #define MEMORY 304 202 #define NOLOAD 305 203 #define DSECT 306 204 #define COPY 307 205 #define INFO 308 206 #define OVERLAY 309 207 #define DEFINED 310 208 #define TARGET_K 311 209 #define SEARCH_DIR 312 210 #define MAP 313 211 #define ENTRY 314 212 #define NEXT 315 213 #define SIZEOF 316 214 #define ALIGNOF 317 215 #define ADDR 318 216 #define LOADADDR 319 217 #define MAX_K 320 218 #define MIN_K 321 219 #define STARTUP 322 220 #define HLL 323 221 #define SYSLIB 324 222 #define FLOAT 325 223 #define NOFLOAT 326 224 #define NOCROSSREFS 327 225 #define ORIGIN 328 226 #define FILL 329 227 #define LENGTH 330 228 #define CREATE_OBJECT_SYMBOLS 331 229 #define INPUT 332 230 #define GROUP 333 231 #define OUTPUT 334 232 #define CONSTRUCTORS 335 233 #define ALIGNMOD 336 234 #define AT 337 235 #define SUBALIGN 338 236 #define PROVIDE 339 237 #define PROVIDE_HIDDEN 340 238 #define AS_NEEDED 341 239 #define CHIP 342 240 #define LIST 343 241 #define SECT 344 242 #define ABSOLUTE 345 243 #define LOAD 346 244 #define NEWLINE 347 245 #define ENDWORD 348 246 #define ORDER 349 247 #define NAMEWORD 350 248 #define ASSERT_K 351 249 #define FORMAT 352 250 #define PUBLIC 353 251 #define DEFSYMEND 354 252 #define BASE 355 253 #define ALIAS 356 254 #define TRUNCATE 357 255 #define REL 358 256 #define INPUT_SCRIPT 359 257 #define INPUT_MRI_SCRIPT 360 258 #define INPUT_DEFSYM 361 259 #define CASE 362 260 #define EXTERN 363 261 #define START 364 262 #define VERS_TAG 365 263 #define VERS_IDENTIFIER 366 264 #define GLOBAL 367 265 #define LOCAL 368 266 #define VERSIONK 369 267 #define INPUT_VERSION_SCRIPT 370 268 #define KEEP 371 269 #define ONLY_IF_RO 372 270 #define ONLY_IF_RW 373 271 #define SPECIAL 374 272 #define EXCLUDE_FILE 375 273 #define CONSTANT 376 274 #define INPUT_DYNAMIC_LIST 377 275 276 277 278 279 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) 280 #line 61 "ldgram.y" 281 typedef union YYSTYPE { 282 bfd_vma integer; 283 struct big_int 284 { 285 bfd_vma integer; 286 char *str; 287 } bigint; 288 fill_type *fill; 289 char *name; 290 const char *cname; 291 struct wildcard_spec wildcard; 292 struct wildcard_list *wildcard_list; 293 struct name_list *name_list; 294 int token; 295 union etree_union *etree; 296 struct phdr_info 297 { 298 bfd_boolean filehdr; 299 bfd_boolean phdrs; 300 union etree_union *at; 301 union etree_union *flags; 302 } phdr; 303 struct lang_nocrossref *nocrossref; 304 struct lang_output_section_phdr_list *section_phdr; 305 struct bfd_elf_version_deps *deflist; 306 struct bfd_elf_version_expr *versyms; 307 struct bfd_elf_version_tree *versnode; 308 } YYSTYPE; 309 /* Line 1447 of yacc.c. */ 310 #line 311 "ldgram.h" 311 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 312 # define YYSTYPE_IS_DECLARED 1 313 # define YYSTYPE_IS_TRIVIAL 1 314 #endif 315 316 extern YYSTYPE yylval; 317 318 319 320