Mercurial > hg > CbC > CbC_llvm
view clang/lib/Frontend/Rewrite/RewriteTest.cpp @ 223:5f17cb93ff66 llvm-original
LLVM13 (2021/7/18)
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 18 Jul 2021 22:43:00 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
//===--- RewriteTest.cpp - Rewriter playground ----------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This is a testbed. // //===----------------------------------------------------------------------===// #include "clang/Lex/Preprocessor.h" #include "clang/Rewrite/Core/TokenRewriter.h" #include "clang/Rewrite/Frontend/Rewriters.h" #include "llvm/Support/raw_ostream.h" void clang::DoRewriteTest(Preprocessor &PP, raw_ostream *OS) { SourceManager &SM = PP.getSourceManager(); const LangOptions &LangOpts = PP.getLangOpts(); TokenRewriter Rewriter(SM.getMainFileID(), SM, LangOpts); // Throw <i> </i> tags around comments. for (TokenRewriter::token_iterator I = Rewriter.token_begin(), E = Rewriter.token_end(); I != E; ++I) { if (I->isNot(tok::comment)) continue; Rewriter.AddTokenBefore(I, "<i>"); Rewriter.AddTokenAfter(I, "</i>"); } // Print out the output. for (TokenRewriter::token_iterator I = Rewriter.token_begin(), E = Rewriter.token_end(); I != E; ++I) *OS << PP.getSpelling(*I); }