diff options
author | Chris Lattner <sabre@nondot.org> | 2001-06-06 20:29:01 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2001-06-06 20:29:01 +0000 |
commit | 009505452b713ed2e3a8e99c5545a6e721c65495 (patch) | |
tree | 136a71c5b87bdf534d1f20a67558b49226b5a4d6 /include/llvm/Assembly/Parser.h | |
parent | 8d0afd3d32d1d67f9aa5df250a1d6955aa8f1ac9 (diff) | |
download | external_llvm-009505452b713ed2e3a8e99c5545a6e721c65495.zip external_llvm-009505452b713ed2e3a8e99c5545a6e721c65495.tar.gz external_llvm-009505452b713ed2e3a8e99c5545a6e721c65495.tar.bz2 |
Initial revision
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Assembly/Parser.h')
-rw-r--r-- | include/llvm/Assembly/Parser.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/include/llvm/Assembly/Parser.h b/include/llvm/Assembly/Parser.h new file mode 100644 index 0000000..5ac6ec2 --- /dev/null +++ b/include/llvm/Assembly/Parser.h @@ -0,0 +1,66 @@ +//===-- llvm/assembly/Parser.h - Parser for VM assembly files ----*- C++ -*--=// +// +// These classes are implemented by the lib/AssemblyParser library. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_ASSEMBLY_PARSER_H +#define LLVM_ASSEMBLY_PARSER_H + +#include <string> + +class Module; +class ToolCommandLine; +class ParseException; + + +// The useful interface defined by this file... Parse an ascii file, and return +// the internal representation in a nice slice'n'dice'able representation. +// +Module *ParseAssemblyFile(const ToolCommandLine &Opts) throw (ParseException); + +//===------------------------------------------------------------------------=== +// Helper Classes +//===------------------------------------------------------------------------=== + +// ParseException - For when an exceptional event is generated by the parser. +// This class lets you print out the exception message +// +class ParseException { +public: + ParseException(const ToolCommandLine &Opts, const string &message, + int LineNo = -1, int ColNo = -1); + + ParseException(const ParseException &E); + + // getMessage - Return the message passed in at construction time plus extra + // information extracted from the options used to parse with... + // + const string getMessage() const; + + inline const string getRawMessage() const { // Just the raw message... + return Message; + } + + inline const ToolCommandLine &getOptions() const { + return Opts; // Get the options obj used to parse. + } + + // getErrorLocation - Return the line and column number of the error in the + // input source file. The source filename can be derived from the + // ParserOptions in effect. If positional information is not applicable, + // these will return a value of -1. + // + inline const void getErrorLocation(int &Line, int &Column) const { + Line = LineNo; Column = ColumnNo; + } + +private : + const ToolCommandLine &Opts; + string Message; + int LineNo, ColumnNo; // -1 if not relevant + + ParseException &operator=(const ParseException &E); // objects by reference +}; + +#endif |