//===-- llvm/Assembly/Parser.h - Parser for VM assembly files ---*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // These classes are implemented by the lib/AsmParser library. // //===----------------------------------------------------------------------===// #ifndef LLVM_ASSEMBLY_PARSER_H #define LLVM_ASSEMBLY_PARSER_H #include <string> namespace llvm { class Module; class MemoryBuffer; class SMDiagnostic; class raw_ostream; class LLVMContext; /// This function is the main interface to the LLVM Assembly Parser. It parses /// an ASCII file that (presumably) contains LLVM Assembly code. It returns a /// Module (intermediate representation) with the corresponding features. Note /// that this does not verify that the generated Module is valid, so you should /// run the verifier after parsing the file to check that it is okay. /// @brief Parse LLVM Assembly from a file Module *ParseAssemblyFile( const std::string &Filename, ///< The name of the file to parse SMDiagnostic &Error, ///< Error result info. LLVMContext &Context ///< Context in which to allocate globals info. ); /// The function is a secondary interface to the LLVM Assembly Parser. It parses /// an ASCII string that (presumably) contains LLVM Assembly code. It returns a /// Module (intermediate representation) with the corresponding features. Note /// that this does not verify that the generated Module is valid, so you should /// run the verifier after parsing the file to check that it is okay. /// @brief Parse LLVM Assembly from a string Module *ParseAssemblyString( const char *AsmString, ///< The string containing assembly Module *M, ///< A module to add the assembly too. SMDiagnostic &Error, ///< Error result info. LLVMContext &Context ); /// This function is the low-level interface to the LLVM Assembly Parser. /// ParseAssemblyFile and ParseAssemblyString are wrappers around this function. /// @brief Parse LLVM Assembly from a MemoryBuffer. This function *always* /// takes ownership of the MemoryBuffer. Module *ParseAssembly( MemoryBuffer *F, ///< The MemoryBuffer containing assembly Module *M, ///< A module to add the assembly too. SMDiagnostic &Err, ///< Error result info. LLVMContext &Context ); } // End llvm namespace #endif