Provide generic MCAsmParser when constructing target specific parsers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77362 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/llvm-mc/AsmParser.h b/tools/llvm-mc/AsmParser.h
index dd60338..253bb8b 100644
--- a/tools/llvm-mc/AsmParser.h
+++ b/tools/llvm-mc/AsmParser.h
@@ -27,7 +27,7 @@
class TargetAsmParser;
class Twine;
-class AsmParser : MCAsmParser {
+class AsmParser : public MCAsmParser {
public:
struct X86Operand;
@@ -35,18 +35,18 @@
AsmLexer Lexer;
MCContext &Ctx;
MCStreamer &Out;
- TargetAsmParser &TargetParser;
+ TargetAsmParser *TargetParser;
public:
- AsmParser(SourceMgr &_SM, MCContext &_Ctx, MCStreamer &_Out,
- TargetAsmParser &_TargetParser)
- : Lexer(_SM), Ctx(_Ctx), Out(_Out), TargetParser(_TargetParser) {}
+ AsmParser(SourceMgr &_SM, MCContext &_Ctx, MCStreamer &_Out)
+ : Lexer(_SM), Ctx(_Ctx), Out(_Out), TargetParser(0) {}
~AsmParser() {}
-
+
bool Run();
public:
- TargetAsmParser &getTargetParser() const { return TargetParser; }
+ TargetAsmParser &getTargetParser() const { return *TargetParser; }
+ void setTargetParser(TargetAsmParser &P) { TargetParser = &P; }
virtual MCAsmLexer &getLexer() { return Lexer; }