forked from OSchip/llvm-project
Make expression parsing and error/warning reporting available through the
generic MCAsmParser interface. llvm-svn: 77381
This commit is contained in:
parent
6adb6e07ce
commit
c43267a472
|
@ -10,8 +10,13 @@
|
|||
#ifndef LLVM_MC_MCASMPARSER_H
|
||||
#define LLVM_MC_MCASMPARSER_H
|
||||
|
||||
#include "llvm/Support/DataTypes.h"
|
||||
|
||||
namespace llvm {
|
||||
class MCAsmLexer;
|
||||
class MCValue;
|
||||
class SMLoc;
|
||||
class Twine;
|
||||
|
||||
/// MCAsmParser - Generic assembler parser interface, for use by target specific
|
||||
/// assembly parsers.
|
||||
|
@ -25,6 +30,43 @@ public:
|
|||
virtual ~MCAsmParser();
|
||||
|
||||
virtual MCAsmLexer &getLexer() = 0;
|
||||
|
||||
/// Warning - Emit a warning at the location \arg L, with the message \arg
|
||||
/// Msg.
|
||||
virtual void Warning(SMLoc L, const Twine &Msg) = 0;
|
||||
|
||||
/// Warning - Emit an error at the location \arg L, with the message \arg
|
||||
/// Msg.
|
||||
///
|
||||
/// \return The return value is always true, as an idiomatic convenience to
|
||||
/// clients.
|
||||
virtual bool Error(SMLoc L, const Twine &Msg) = 0;
|
||||
|
||||
/// ParseAbsoluteExpression - Parse an expression which must evaluate to an
|
||||
/// absolute value.
|
||||
///
|
||||
/// @param Res - The value of the absolute expression. The result is undefined
|
||||
/// on error.
|
||||
/// @result - False on success.
|
||||
virtual bool ParseAbsoluteExpression(int64_t &Res) = 0;
|
||||
|
||||
/// ParseRelocatableExpression - Parse an expression which must be
|
||||
/// relocatable.
|
||||
///
|
||||
/// @param Res - The relocatable expression value. The result is undefined on
|
||||
/// error.
|
||||
/// @result - False on success.
|
||||
virtual bool ParseRelocatableExpression(MCValue &Res) = 0;
|
||||
|
||||
/// ParseParenRelocatableExpression - Parse an expression which must be
|
||||
/// relocatable, assuming that an initial '(' has already been consumed.
|
||||
///
|
||||
/// @param Res - The relocatable expression value. The result is undefined on
|
||||
/// error.
|
||||
/// @result - False on success.
|
||||
///
|
||||
/// @see ParseRelocatableExpression, ParseParenExpr.
|
||||
virtual bool ParseParenRelocatableExpression(MCValue &Res) = 0;
|
||||
};
|
||||
|
||||
} // End llvm namespace
|
||||
|
|
|
@ -48,41 +48,32 @@ public:
|
|||
TargetAsmParser &getTargetParser() const { return *TargetParser; }
|
||||
void setTargetParser(TargetAsmParser &P) { TargetParser = &P; }
|
||||
|
||||
/// @name MCAsmParser Interface
|
||||
/// {
|
||||
|
||||
virtual MCAsmLexer &getLexer() { return Lexer; }
|
||||
|
||||
virtual void Warning(SMLoc L, const Twine &Meg);
|
||||
|
||||
virtual bool Error(SMLoc L, const Twine &Msg);
|
||||
|
||||
virtual bool ParseExpression(AsmExpr *&Res);
|
||||
|
||||
virtual bool ParseAbsoluteExpression(int64_t &Res);
|
||||
|
||||
virtual bool ParseRelocatableExpression(MCValue &Res);
|
||||
|
||||
/// }
|
||||
|
||||
private:
|
||||
bool ParseStatement();
|
||||
|
||||
void Warning(SMLoc L, const Twine &Msg);
|
||||
bool Error(SMLoc L, const Twine &Msg);
|
||||
bool TokError(const char *Msg);
|
||||
|
||||
void EatToEndOfStatement();
|
||||
|
||||
bool ParseAssignment(const StringRef &Name, bool IsDotSet);
|
||||
|
||||
/// ParseExpression - Parse a general assembly expression.
|
||||
///
|
||||
/// @param Res - The resulting expression. The pointer value is null on error.
|
||||
/// @result - False on success.
|
||||
bool ParseExpression(AsmExpr *&Res);
|
||||
|
||||
/// ParseAbsoluteExpression - Parse an expression which must evaluate to an
|
||||
/// absolute value.
|
||||
///
|
||||
/// @param Res - The value of the absolute expression. The result is undefined
|
||||
/// on error.
|
||||
/// @result - False on success.
|
||||
bool ParseAbsoluteExpression(int64_t &Res);
|
||||
|
||||
/// ParseRelocatableExpression - Parse an expression which must be
|
||||
/// relocatable.
|
||||
///
|
||||
/// @param Res - The relocatable expression value. The result is undefined on
|
||||
/// error.
|
||||
/// @result - False on success.
|
||||
bool ParseRelocatableExpression(MCValue &Res);
|
||||
|
||||
/// ParseParenRelocatableExpression - Parse an expression which must be
|
||||
/// relocatable, assuming that an initial '(' has already been consumed.
|
||||
///
|
||||
|
|
Loading…
Reference in New Issue