[llvm-commits] [llvm] r94940 - in /llvm/trunk: include/llvm/Target/TargetAsmLexer.h lib/Target/TargetAsmLexer.cpp lib/Target/X86/AsmParser/X86AsmLexer.cpp

Sean Callanan scallanan at apple.com
Sat Jan 30 18:28:18 PST 2010


Author: spyffe
Date: Sat Jan 30 20:28:18 2010
New Revision: 94940

URL: http://llvm.org/viewvc/llvm-project?rev=94940&view=rev
Log:
Moved InstallLexer() from the X86-specific AsmLexer
to the TargetAsmLexer class so that clients can
actually use the TargetAsmLexer they get from a
Target.

Modified:
    llvm/trunk/include/llvm/Target/TargetAsmLexer.h
    llvm/trunk/lib/Target/TargetAsmLexer.cpp
    llvm/trunk/lib/Target/X86/AsmParser/X86AsmLexer.cpp

Modified: llvm/trunk/include/llvm/Target/TargetAsmLexer.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetAsmLexer.h?rev=94940&r1=94939&r2=94940&view=diff

==============================================================================
--- llvm/trunk/include/llvm/Target/TargetAsmLexer.h (original)
+++ llvm/trunk/include/llvm/Target/TargetAsmLexer.h Sat Jan 30 20:28:18 2010
@@ -38,12 +38,22 @@
   
   /// TheTarget - The Target that this machine was created for.
   const Target &TheTarget;
+  MCAsmLexer *Lexer;
   
 public:
   virtual ~TargetAsmLexer();
   
   const Target &getTarget() const { return TheTarget; }
   
+  /// InstallLexer - Set the lexer to get tokens from lower-level lexer \arg L.
+  void InstallLexer(MCAsmLexer &L) {
+    Lexer = &L;
+  }
+  
+  MCAsmLexer *getLexer() {
+    return Lexer;
+  }
+  
   /// Lex - Consume the next token from the input stream and return it.
   const AsmToken &Lex() {
     return CurTok = LexToken();

Modified: llvm/trunk/lib/Target/TargetAsmLexer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/TargetAsmLexer.cpp?rev=94940&r1=94939&r2=94940&view=diff

==============================================================================
--- llvm/trunk/lib/Target/TargetAsmLexer.cpp (original)
+++ llvm/trunk/lib/Target/TargetAsmLexer.cpp Sat Jan 30 20:28:18 2010
@@ -10,5 +10,5 @@
 #include "llvm/Target/TargetAsmLexer.h"
 using namespace llvm;
 
-TargetAsmLexer::TargetAsmLexer(const Target &T) : TheTarget(T) {}
+TargetAsmLexer::TargetAsmLexer(const Target &T) : TheTarget(T), Lexer(NULL) {}
 TargetAsmLexer::~TargetAsmLexer() {}

Modified: llvm/trunk/lib/Target/X86/AsmParser/X86AsmLexer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/AsmParser/X86AsmLexer.cpp?rev=94940&r1=94939&r2=94940&view=diff

==============================================================================
--- llvm/trunk/lib/Target/X86/AsmParser/X86AsmLexer.cpp (original)
+++ llvm/trunk/lib/Target/X86/AsmParser/X86AsmLexer.cpp Sat Jan 30 20:28:18 2010
@@ -22,13 +22,12 @@
   
 class X86AsmLexer : public TargetAsmLexer {
   const MCAsmInfo &AsmInfo;
-  MCAsmLexer *Lexer;
   
   bool tentativeIsValid;
   AsmToken tentativeToken;
   
   const AsmToken &lexTentative() {
-    tentativeToken = Lexer->Lex();
+    tentativeToken = getLexer()->Lex();
     tentativeIsValid = true;
     return tentativeToken;
   }
@@ -39,7 +38,7 @@
       return tentativeToken;
     }
     else {
-      return Lexer->Lex();
+      return getLexer()->Lex();
     }
   }
   
@@ -64,11 +63,7 @@
   }
 public:
   X86AsmLexer(const Target &T, const MCAsmInfo &MAI)
-    : TargetAsmLexer(T), AsmInfo(MAI), Lexer(NULL), tentativeIsValid(false) {
-  }
-  
-  void InstallLexer(MCAsmLexer &L) {
-    Lexer = &L;
+    : TargetAsmLexer(T), AsmInfo(MAI), tentativeIsValid(false) {
   }
 };
 





More information about the llvm-commits mailing list