diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-07-20 20:01:54 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-07-20 20:01:54 +0000 |
commit | dbd692a66e6a5f60ec3ff120ed27ae3a918c375f (patch) | |
tree | 6d907de7a0162d51e5dbc71592dfdf2bdffe127e /lib | |
parent | 753480ad204c122dab5942ff40f7f5b10c7a891e (diff) |
Add MCAsmLexer interface.
- This provides the AsmLexer interface to the target specific assembly parsers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76460 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/MC/CMakeLists.txt | 1 | ||||
-rw-r--r-- | lib/MC/MCAsmLexer.cpp | 18 | ||||
-rw-r--r-- | lib/Target/X86/AsmParser/X86AsmParser.cpp | 40 |
3 files changed, 51 insertions, 8 deletions
diff --git a/lib/MC/CMakeLists.txt b/lib/MC/CMakeLists.txt index f0af7df959..3dd1e18191 100644 --- a/lib/MC/CMakeLists.txt +++ b/lib/MC/CMakeLists.txt @@ -1,4 +1,5 @@ add_llvm_library(LLVMMC + MCAsmLexer.cpp MCAsmParser.cpp MCAsmStreamer.cpp MCContext.cpp diff --git a/lib/MC/MCAsmLexer.cpp b/lib/MC/MCAsmLexer.cpp new file mode 100644 index 0000000000..5cbcbfd6de --- /dev/null +++ b/lib/MC/MCAsmLexer.cpp @@ -0,0 +1,18 @@ +//===-- MCAsmLexer.cpp - Abstract Asm Lexer Interface ---------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "llvm/MC/MCAsmLexer.h" + +using namespace llvm; + +MCAsmLexer::MCAsmLexer() { +} + +MCAsmLexer::~MCAsmLexer() { +} diff --git a/lib/Target/X86/AsmParser/X86AsmParser.cpp b/lib/Target/X86/AsmParser/X86AsmParser.cpp index b5f6ce608d..357ea6d342 100644 --- a/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -8,21 +8,29 @@ //===----------------------------------------------------------------------===// #include "X86.h" +#include "llvm/ADT/SmallVector.h" #include "llvm/MC/MCAsmParser.h" #include "llvm/Target/TargetRegistry.h" #include "llvm/Target/TargetAsmParser.h" using namespace llvm; namespace { + struct X86Operand { + }; -class X86ATTAsmParser : public TargetAsmParser { - public: - explicit X86ATTAsmParser(const Target &); - - virtual bool ParseInstruction(MCAsmParser &AP, const char *Name, - MCInst &Inst); -}; + class X86ATTAsmParser : public TargetAsmParser { + bool ParseOperand(X86Operand &Op); + + bool MatchInstruction(const char *Name, + llvm::SmallVector<X86Operand, 3> &Operands, + MCInst &Inst); + public: + explicit X86ATTAsmParser(const Target &); + + virtual bool ParseInstruction(MCAsmParser &AP, const char *Name, + MCInst &Inst); + }; } X86ATTAsmParser::X86ATTAsmParser(const Target &T) @@ -30,9 +38,25 @@ X86ATTAsmParser::X86ATTAsmParser(const Target &T) { } +bool X86ATTAsmParser::ParseOperand(X86Operand &Op) { + return true; +} + +bool +X86ATTAsmParser::MatchInstruction(const char *Name, + llvm::SmallVector<X86Operand, 3> &Operands, + MCInst &Inst) { + return false; +} + bool X86ATTAsmParser::ParseInstruction(MCAsmParser &AP, const char *Name, MCInst &Inst) { - return true; + MCAsmLexer &Lexer = AP.getLexer(); + llvm::SmallVector<X86Operand, 3> Operands; + (void) Lexer; + (void) Operands; + + return MatchInstruction(Name, Operands, Inst); } namespace { |