1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00

llvm-mc: Add MCAsmParser::Parse[Paren]Expression forms which return an MCExpr.

llvm-svn: 80574
This commit is contained in:
Daniel Dunbar 2009-08-31 08:08:17 +00:00
parent be245a258c
commit 5fbaad8079
3 changed files with 26 additions and 0 deletions

View File

@ -15,6 +15,7 @@
namespace llvm {
class MCAsmLexer;
class MCContext;
class MCExpr;
class MCValue;
class SMLoc;
class Twine;
@ -45,6 +46,21 @@ public:
/// clients.
virtual bool Error(SMLoc L, const Twine &Msg) = 0;
/// ParseExpression - Parse an arbitrary expression.
///
/// @param Res - The value of the expression. The result is undefined
/// on error.
/// @result - False on success.
virtual bool ParseExpression(const MCExpr *&Res) = 0;
/// ParseParenExpression - Parse an arbitrary expression, assuming that an
/// initial '(' has already been consumed.
///
/// @param Res - The value of the expression. The result is undefined
/// on error.
/// @result - False on success.
virtual bool ParseParenExpression(const MCExpr *&Res) = 0;
/// ParseAbsoluteExpression - Parse an expression which must evaluate to an
/// absolute value.
///

View File

@ -21,6 +21,7 @@
#include "llvm/MC/MCSectionMachO.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/MC/MCValue.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetAsmParser.h"
@ -258,6 +259,13 @@ bool AsmParser::ParseExpression(const MCExpr *&Res) {
ParseBinOpRHS(1, Res);
}
bool AsmParser::ParseParenExpression(const MCExpr *&Res) {
if (ParseParenExpr(Res))
return true;
return false;
}
bool AsmParser::ParseAbsoluteExpression(int64_t &Res) {
const MCExpr *Expr;

View File

@ -70,6 +70,8 @@ public:
virtual bool ParseExpression(const MCExpr *&Res);
virtual bool ParseParenExpression(const MCExpr *&Res);
virtual bool ParseAbsoluteExpression(int64_t &Res);
virtual bool ParseRelocatableExpression(MCValue &Res);