1 /* A Bison parser, made by GNU Bison 2.5. */ 2 3 /* Bison interface for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. 6 7 This program is free software: you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation, either version 3 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 19 20 /* As a special exception, you may create a larger work that contains 21 part or all of the Bison parser skeleton and distribute that work 22 under terms of your choice, so long as that work isn't itself a 23 parser generator using the skeleton or a modified version thereof 24 as a parser skeleton. Alternatively, if you modify or redistribute 25 the parser skeleton itself, you may (at your option) remove this 26 special exception, which will cause the skeleton and the resulting 27 Bison output files to be licensed under the GNU General Public 28 License without this special exception. 29 30 This special exception was added by the Free Software Foundation in 31 version 2.2 of Bison. */ 32 33 34 /* Tokens. */ 35 #ifndef YYTOKENTYPE 36 # define YYTOKENTYPE 37 /* Put the tokens into the symbol table, so that GDB and other debuggers 38 know about them. */ 39 enum yytokentype { 40 kADD_OP = 258, 41 kALIGN = 259, 42 kAS_NEEDED = 260, 43 kENTRY = 261, 44 kEXCLUDE_FILE = 262, 45 kFILENAME = 263, 46 kGLOBAL = 264, 47 kGROUP = 265, 48 kID = 266, 49 kINPUT = 267, 50 kINTERP = 268, 51 kKEEP = 269, 52 kLOCAL = 270, 53 kMODE = 271, 54 kMUL_OP = 272, 55 kNUM = 273, 56 kOUTPUT_FORMAT = 274, 57 kPAGESIZE = 275, 58 kPROVIDE = 276, 59 kSEARCH_DIR = 277, 60 kSEGMENT = 278, 61 kSIZEOF_HEADERS = 279, 62 kSORT = 280, 63 kVERSION = 281, 64 kVERSION_SCRIPT = 282, 65 ADD_OP = 283, 66 MUL_OP = 284 67 }; 68 #endif 69 /* Tokens. */ 70 #define kADD_OP 258 71 #define kALIGN 259 72 #define kAS_NEEDED 260 73 #define kENTRY 261 74 #define kEXCLUDE_FILE 262 75 #define kFILENAME 263 76 #define kGLOBAL 264 77 #define kGROUP 265 78 #define kID 266 79 #define kINPUT 267 80 #define kINTERP 268 81 #define kKEEP 269 82 #define kLOCAL 270 83 #define kMODE 271 84 #define kMUL_OP 272 85 #define kNUM 273 86 #define kOUTPUT_FORMAT 274 87 #define kPAGESIZE 275 88 #define kPROVIDE 276 89 #define kSEARCH_DIR 277 90 #define kSEGMENT 278 91 #define kSIZEOF_HEADERS 279 92 #define kSORT 280 93 #define kVERSION 281 94 #define kVERSION_SCRIPT 282 95 #define ADD_OP 283 96 #define MUL_OP 284 97 98 99 100 101 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 102 typedef union YYSTYPE 103 { 104 105 /* Line 2068 of yacc.c */ 106 #line 71 "ldscript.y" 107 108 uintmax_t num; 109 enum expression_tag op; 110 char *str; 111 struct expression *expr; 112 struct input_section_name *sectionname; 113 struct filemask_section_name *filemask_section_name; 114 struct input_rule *input_rule; 115 struct output_rule *output_rule; 116 struct assignment *assignment; 117 struct filename_list *filename_list; 118 struct version *version; 119 struct id_list *id_list; 120 121 122 123 /* Line 2068 of yacc.c */ 124 #line 125 "ldscript.h" 125 } YYSTYPE; 126 # define YYSTYPE_IS_TRIVIAL 1 127 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 128 # define YYSTYPE_IS_DECLARED 1 129 #endif 130 131 extern YYSTYPE ldlval; 132 133 134