10621cb2eSAlp Toker //===--- RewriteTest.cpp - Rewriter playground ----------------------------===// 20621cb2eSAlp Toker // 3*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 5*2946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 60621cb2eSAlp Toker // 70621cb2eSAlp Toker //===----------------------------------------------------------------------===// 80621cb2eSAlp Toker // 90621cb2eSAlp Toker // This is a testbed. 100621cb2eSAlp Toker // 110621cb2eSAlp Toker //===----------------------------------------------------------------------===// 120621cb2eSAlp Toker 130621cb2eSAlp Toker #include "clang/Lex/Preprocessor.h" 140621cb2eSAlp Toker #include "clang/Rewrite/Core/TokenRewriter.h" 159670f847SMehdi Amini #include "clang/Rewrite/Frontend/Rewriters.h" 160621cb2eSAlp Toker #include "llvm/Support/raw_ostream.h" 170621cb2eSAlp Toker DoRewriteTest(Preprocessor & PP,raw_ostream * OS)180621cb2eSAlp Tokervoid clang::DoRewriteTest(Preprocessor &PP, raw_ostream *OS) { 190621cb2eSAlp Toker SourceManager &SM = PP.getSourceManager(); 200621cb2eSAlp Toker const LangOptions &LangOpts = PP.getLangOpts(); 210621cb2eSAlp Toker 220621cb2eSAlp Toker TokenRewriter Rewriter(SM.getMainFileID(), SM, LangOpts); 230621cb2eSAlp Toker 240621cb2eSAlp Toker // Throw <i> </i> tags around comments. 250621cb2eSAlp Toker for (TokenRewriter::token_iterator I = Rewriter.token_begin(), 260621cb2eSAlp Toker E = Rewriter.token_end(); I != E; ++I) { 270621cb2eSAlp Toker if (I->isNot(tok::comment)) continue; 280621cb2eSAlp Toker 290621cb2eSAlp Toker Rewriter.AddTokenBefore(I, "<i>"); 300621cb2eSAlp Toker Rewriter.AddTokenAfter(I, "</i>"); 310621cb2eSAlp Toker } 320621cb2eSAlp Toker 330621cb2eSAlp Toker 340621cb2eSAlp Toker // Print out the output. 350621cb2eSAlp Toker for (TokenRewriter::token_iterator I = Rewriter.token_begin(), 360621cb2eSAlp Toker E = Rewriter.token_end(); I != E; ++I) 370621cb2eSAlp Toker *OS << PP.getSpelling(*I); 380621cb2eSAlp Toker } 39