LLVM API Documentation
00001 /* A Bison parser, made by GNU Bison 2.0. */ 00002 00003 /* Skeleton parser for Yacc-like parsing with Bison, 00004 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. 00005 00006 This program is free software; you can redistribute it and/or modify 00007 it under the terms of the GNU General Public License as published by 00008 the Free Software Foundation; either version 2, or (at your option) 00009 any later version. 00010 00011 This program is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU General Public License for more details. 00015 00016 You should have received a copy of the GNU General Public License 00017 along with this program; if not, write to the Free Software 00018 Foundation, Inc., 59 Temple Place - Suite 330, 00019 Boston, MA 02111-1307, USA. */ 00020 00021 /* As a special exception, when this file is copied by Bison into a 00022 Bison output file, you may use that output file without restriction. 00023 This special exception was added by the Free Software Foundation 00024 in version 1.24 of Bison. */ 00025 00026 /* Tokens. */ 00027 #ifndef YYTOKENTYPE 00028 # define YYTOKENTYPE 00029 /* Put the tokens into the symbol table, so that GDB and other debuggers 00030 know about them. */ 00031 enum yytokentype { 00032 ESINT64VAL = 258, 00033 EUINT64VAL = 259, 00034 SINTVAL = 260, 00035 UINTVAL = 261, 00036 FPVAL = 262, 00037 VOID = 263, 00038 BOOL = 264, 00039 SBYTE = 265, 00040 UBYTE = 266, 00041 SHORT = 267, 00042 USHORT = 268, 00043 INT = 269, 00044 UINT = 270, 00045 LONG = 271, 00046 ULONG = 272, 00047 FLOAT = 273, 00048 DOUBLE = 274, 00049 TYPE = 275, 00050 LABEL = 276, 00051 VAR_ID = 277, 00052 LABELSTR = 278, 00053 STRINGCONSTANT = 279, 00054 IMPLEMENTATION = 280, 00055 ZEROINITIALIZER = 281, 00056 TRUETOK = 282, 00057 FALSETOK = 283, 00058 BEGINTOK = 284, 00059 ENDTOK = 285, 00060 DECLARE = 286, 00061 GLOBAL = 287, 00062 CONSTANT = 288, 00063 VOLATILE = 289, 00064 TO = 290, 00065 DOTDOTDOT = 291, 00066 NULL_TOK = 292, 00067 UNDEF = 293, 00068 CONST = 294, 00069 INTERNAL = 295, 00070 LINKONCE = 296, 00071 WEAK = 297, 00072 APPENDING = 298, 00073 OPAQUE = 299, 00074 NOT = 300, 00075 EXTERNAL = 301, 00076 TARGET = 302, 00077 TRIPLE = 303, 00078 ENDIAN = 304, 00079 POINTERSIZE = 305, 00080 LITTLE = 306, 00081 BIG = 307, 00082 DEPLIBS = 308, 00083 RET = 309, 00084 BR = 310, 00085 SWITCH = 311, 00086 INVOKE = 312, 00087 UNWIND = 313, 00088 UNREACHABLE = 314, 00089 ADD = 315, 00090 SUB = 316, 00091 MUL = 317, 00092 DIV = 318, 00093 REM = 319, 00094 AND = 320, 00095 OR = 321, 00096 XOR = 322, 00097 SETLE = 323, 00098 SETGE = 324, 00099 SETLT = 325, 00100 SETGT = 326, 00101 SETEQ = 327, 00102 SETNE = 328, 00103 MALLOC = 329, 00104 ALLOCA = 330, 00105 FREE = 331, 00106 LOAD = 332, 00107 STORE = 333, 00108 GETELEMENTPTR = 334, 00109 PHI_TOK = 335, 00110 CALL = 336, 00111 CAST = 337, 00112 SELECT = 338, 00113 SHL = 339, 00114 SHR = 340, 00115 VAARG = 341, 00116 VANEXT = 342, 00117 VA_ARG = 343 00118 }; 00119 #endif 00120 #define ESINT64VAL 258 00121 #define EUINT64VAL 259 00122 #define SINTVAL 260 00123 #define UINTVAL 261 00124 #define FPVAL 262 00125 #define VOID 263 00126 #define BOOL 264 00127 #define SBYTE 265 00128 #define UBYTE 266 00129 #define SHORT 267 00130 #define USHORT 268 00131 #define INT 269 00132 #define UINT 270 00133 #define LONG 271 00134 #define ULONG 272 00135 #define FLOAT 273 00136 #define DOUBLE 274 00137 #define TYPE 275 00138 #define LABEL 276 00139 #define VAR_ID 277 00140 #define LABELSTR 278 00141 #define STRINGCONSTANT 279 00142 #define IMPLEMENTATION 280 00143 #define ZEROINITIALIZER 281 00144 #define TRUETOK 282 00145 #define FALSETOK 283 00146 #define BEGINTOK 284 00147 #define ENDTOK 285 00148 #define DECLARE 286 00149 #define GLOBAL 287 00150 #define CONSTANT 288 00151 #define VOLATILE 289 00152 #define TO 290 00153 #define DOTDOTDOT 291 00154 #define NULL_TOK 292 00155 #define UNDEF 293 00156 #define CONST 294 00157 #define INTERNAL 295 00158 #define LINKONCE 296 00159 #define WEAK 297 00160 #define APPENDING 298 00161 #define OPAQUE 299 00162 #define NOT 300 00163 #define EXTERNAL 301 00164 #define TARGET 302 00165 #define TRIPLE 303 00166 #define ENDIAN 304 00167 #define POINTERSIZE 305 00168 #define LITTLE 306 00169 #define BIG 307 00170 #define DEPLIBS 308 00171 #define RET 309 00172 #define BR 310 00173 #define SWITCH 311 00174 #define INVOKE 312 00175 #define UNWIND 313 00176 #define UNREACHABLE 314 00177 #define ADD 315 00178 #define SUB 316 00179 #define MUL 317 00180 #define DIV 318 00181 #define REM 319 00182 #define AND 320 00183 #define OR 321 00184 #define XOR 322 00185 #define SETLE 323 00186 #define SETGE 324 00187 #define SETLT 325 00188 #define SETGT 326 00189 #define SETEQ 327 00190 #define SETNE 328 00191 #define MALLOC 329 00192 #define ALLOCA 330 00193 #define FREE 331 00194 #define LOAD 332 00195 #define STORE 333 00196 #define GETELEMENTPTR 334 00197 #define PHI_TOK 335 00198 #define CALL 336 00199 #define CAST 337 00200 #define SELECT 338 00201 #define SHL 339 00202 #define SHR 340 00203 #define VAARG 341 00204 #define VANEXT 342 00205 #define VA_ARG 343 00206 00207 00208 00209 00210 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) 00211 #line 827 "llvmAsmParser.y" 00212 typedef union YYSTYPE { 00213 llvm::Module *ModuleVal; 00214 llvm::Function *FunctionVal; 00215 std::pair<llvm::PATypeHolder*, char*> *ArgVal; 00216 llvm::BasicBlock *BasicBlockVal; 00217 llvm::TerminatorInst *TermInstVal; 00218 llvm::Instruction *InstVal; 00219 llvm::Constant *ConstVal; 00220 00221 const llvm::Type *PrimType; 00222 llvm::PATypeHolder *TypeVal; 00223 llvm::Value *ValueVal; 00224 00225 std::vector<std::pair<llvm::PATypeHolder*,char*> > *ArgList; 00226 std::vector<llvm::Value*> *ValueList; 00227 std::list<llvm::PATypeHolder> *TypeList; 00228 std::list<std::pair<llvm::Value*, 00229 llvm::BasicBlock*> > *PHIList; // Represent the RHS of PHI node 00230 std::vector<std::pair<llvm::Constant*, llvm::BasicBlock*> > *JumpTable; 00231 std::vector<llvm::Constant*> *ConstVector; 00232 00233 llvm::GlobalValue::LinkageTypes Linkage; 00234 int64_t SInt64Val; 00235 uint64_t UInt64Val; 00236 int SIntVal; 00237 unsigned UIntVal; 00238 double FPVal; 00239 bool BoolVal; 00240 00241 char *StrVal; // This memory is strdup'd! 00242 llvm::ValID ValIDVal; // strdup'd memory maybe! 00243 00244 llvm::Instruction::BinaryOps BinaryOpVal; 00245 llvm::Instruction::TermOps TermOpVal; 00246 llvm::Instruction::MemoryOps MemOpVal; 00247 llvm::Instruction::OtherOps OtherOpVal; 00248 llvm::Module::Endianness Endianness; 00249 } YYSTYPE; 00250 /* Line 1318 of yacc.c. */ 00251 #line 252 "llvmAsmParser.tab.h" 00252 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 00253 # define YYSTYPE_IS_DECLARED 1 00254 # define YYSTYPE_IS_TRIVIAL 1 00255 #endif 00256 00257 extern YYSTYPE llvmAsmlval; 00258 00259 00260