1*e5dd7070Spatrick //===--- RewriteTest.cpp - Rewriter playground ----------------------------===// 2*e5dd7070Spatrick // 3*e5dd7070Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*e5dd7070Spatrick // See https://llvm.org/LICENSE.txt for license information. 5*e5dd7070Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*e5dd7070Spatrick // 7*e5dd7070Spatrick //===----------------------------------------------------------------------===// 8*e5dd7070Spatrick // 9*e5dd7070Spatrick // This is a testbed. 10*e5dd7070Spatrick // 11*e5dd7070Spatrick //===----------------------------------------------------------------------===// 12*e5dd7070Spatrick 13*e5dd7070Spatrick #include "clang/Lex/Preprocessor.h" 14*e5dd7070Spatrick #include "clang/Rewrite/Core/TokenRewriter.h" 15*e5dd7070Spatrick #include "clang/Rewrite/Frontend/Rewriters.h" 16*e5dd7070Spatrick #include "llvm/Support/raw_ostream.h" 17*e5dd7070Spatrick DoRewriteTest(Preprocessor & PP,raw_ostream * OS)18*e5dd7070Spatrickvoid clang::DoRewriteTest(Preprocessor &PP, raw_ostream *OS) { 19*e5dd7070Spatrick SourceManager &SM = PP.getSourceManager(); 20*e5dd7070Spatrick const LangOptions &LangOpts = PP.getLangOpts(); 21*e5dd7070Spatrick 22*e5dd7070Spatrick TokenRewriter Rewriter(SM.getMainFileID(), SM, LangOpts); 23*e5dd7070Spatrick 24*e5dd7070Spatrick // Throw <i> </i> tags around comments. 25*e5dd7070Spatrick for (TokenRewriter::token_iterator I = Rewriter.token_begin(), 26*e5dd7070Spatrick E = Rewriter.token_end(); I != E; ++I) { 27*e5dd7070Spatrick if (I->isNot(tok::comment)) continue; 28*e5dd7070Spatrick 29*e5dd7070Spatrick Rewriter.AddTokenBefore(I, "<i>"); 30*e5dd7070Spatrick Rewriter.AddTokenAfter(I, "</i>"); 31*e5dd7070Spatrick } 32*e5dd7070Spatrick 33*e5dd7070Spatrick 34*e5dd7070Spatrick // Print out the output. 35*e5dd7070Spatrick for (TokenRewriter::token_iterator I = Rewriter.token_begin(), 36*e5dd7070Spatrick E = Rewriter.token_end(); I != E; ++I) 37*e5dd7070Spatrick *OS << PP.getSpelling(*I); 38*e5dd7070Spatrick } 39