Mercurial > hg > CbC > CbC_llvm
view clang/lib/Format/NamespaceEndCommentsFixer.h @ 176:de4ac79aef9d
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 17:13:11 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
//===--- NamespaceEndCommentsFixer.h ----------------------------*- C++ -*-===// // // 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 // //===----------------------------------------------------------------------===// /// /// \file /// This file declares NamespaceEndCommentsFixer, a TokenAnalyzer that /// fixes namespace end comments. /// //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_LIB_FORMAT_NAMESPACEENDCOMMENTSFIXER_H #define LLVM_CLANG_LIB_FORMAT_NAMESPACEENDCOMMENTSFIXER_H #include "TokenAnalyzer.h" namespace clang { namespace format { // Finds the namespace token corresponding to a closing namespace `}`, if that // is to be formatted. // If \p Line contains the closing `}` of a namespace, is affected and is not in // a preprocessor directive, the result will be the matching namespace token. // Otherwise returns null. // \p AnnotatedLines is the sequence of lines from which \p Line is a member of. const FormatToken * getNamespaceToken(const AnnotatedLine *Line, const SmallVectorImpl<AnnotatedLine *> &AnnotatedLines); class NamespaceEndCommentsFixer : public TokenAnalyzer { public: NamespaceEndCommentsFixer(const Environment &Env, const FormatStyle &Style); std::pair<tooling::Replacements, unsigned> analyze(TokenAnnotator &Annotator, SmallVectorImpl<AnnotatedLine *> &AnnotatedLines, FormatTokenLexer &Tokens) override; }; } // end namespace format } // end namespace clang #endif