LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

llvmAsmParser.h

Go to the documentation of this file.
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