| //===-- 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 |