diff --git a/Driver/ASTConsumers.h b/Driver/ASTConsumers.h
index 4265672..90b4f97 100644
--- a/Driver/ASTConsumers.h
+++ b/Driver/ASTConsumers.h
@@ -27,6 +27,7 @@
 ASTConsumer *CreateDeadStoreChecker(Diagnostic &Diags);
 ASTConsumer *CreateUnitValsChecker(Diagnostic &Diags);
 ASTConsumer *CreateLLVMEmitter(Diagnostic &Diags);
+ASTConsumer *CreateCodeRewriterTest();
 
 } // end clang namespace
 
diff --git a/Driver/RewriteTest.cpp b/Driver/RewriteTest.cpp
new file mode 100644
index 0000000..ef1a9b0
--- /dev/null
+++ b/Driver/RewriteTest.cpp
@@ -0,0 +1,43 @@
+//===--- RewriteTest.cpp - Playground for the code rewriter ---------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file was developed by Chris Lattner and is distributed under the
+// University of Illinois Open Source License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// Hacks and fun related to the code rewriter.
+//
+//===----------------------------------------------------------------------===//
+
+#include "ASTConsumers.h"
+#include "clang/AST/AST.h"
+#include "clang/AST/ASTConsumer.h"
+
+using namespace clang;
+
+
+namespace {
+  class ASTViewer : public ASTConsumer {
+    SourceManager *SM;
+  public:
+    void Initialize(ASTContext &Context, unsigned MainFileID) {
+      SM = &Context.SourceMgr;
+    }
+    
+    virtual void HandleTopLevelDecl(Decl *D);
+  };
+}
+
+ASTConsumer *clang::CreateCodeRewriterTest() { return new ASTViewer(); }
+
+
+
+
+void ASTViewer::HandleTopLevelDecl(Decl *D) {
+  if (NamedDecl *ND = dyn_cast<NamedDecl>(D))
+    if (ND->getName())
+      printf("%s\n", ND->getName());
+  
+}
diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index 9d8f712..6d9b6b0 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -49,6 +49,7 @@
 Stats("stats", llvm::cl::desc("Print performance metrics and statistics"));
 
 enum ProgActions {
+  RewriteTest,                  // Rewriter testing stuff.
   EmitLLVM,                     // Emit a .ll file.
   ASTPrint,                     // Parse ASTs and print them.
   ASTDump,                      // Parse ASTs and dump them.
@@ -101,6 +102,8 @@
                         "Flag warnings of uses of unitialized variables."),
              clEnumValN(EmitLLVM, "emit-llvm",
                         "Build ASTs then convert to LLVM, emit .ll file"),
+             clEnumValN(RewriteTest, "rewrite-test",
+                        "Playground for the code rewriter"),
              clEnumValEnd));
 
 static llvm::cl::opt<bool>
@@ -796,6 +799,10 @@
   case EmitLLVM:
     Consumer = CreateLLVMEmitter(PP.getDiagnostics());
     break;
+    
+  case RewriteTest:
+    Consumer = CreateCodeRewriterTest();
+    break;
   }
   
   if (Consumer) {
