================ @@ -0,0 +1,136 @@ +//===--- UseCppStyleCommentsCheck.cpp - clang-tidy-------------------------===// + +// +// 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 +// +//===----------------------------------------------------------------------===// + +#include "UseCppStyleCommentsCheck.h" +#include "clang/ASTMatchers/ASTMatchFinder.h" +#include "clang/Lex/Lexer.h" +#include "clang/Lex/Preprocessor.h" +#include <sstream.h> + +using namespace clang::ast_matchers; + +namespace clang::tidy::readability { +class UseCppStyleCommentsCheck::CStyleCommentHandler : public CommentHandler { +public: + CStyleCommentHandler(UseCppStyleCommentsCheck &Check) + : Check(Check), + CStyleCommentMatch( + "^[ \t]*/\\*+[ \t\r\n]*(.*[ \t\r\n]*)*[ \t\r\n]*\\*+/[ \t\r\n]*$") { + } + + std::string convertToCppStyleComment(const SourceManager &SM, + const SourceRange &Range) { + const StringRef CommentText = Lexer::getSourceText( + CharSourceRange::getTokenRange(Range), SM, LangOptions()); + + std::string InnerText = CommentText.str(); + InnerText.erase(0, 2); + InnerText.erase(InnerText.size() - 2, 2); + + std::string Result; + std::istringstream Stream(InnerText); + std::string Line; + + if (std::getline(Stream, Line)) { + const size_t StartPos = Line.find_first_not_of(" \t"); + if (StartPos != std::string::npos) { + Line = Line.substr(StartPos); + } else { + Line.clear(); + } + Result += "// " + Line; + } + + while (std::getline(Stream, Line)) { + const size_t StartPos = Line.find_first_not_of(" \t"); + if (StartPos != std::string::npos) { + Line = Line.substr(StartPos); + } else { + Line.clear(); + } + Result += "\n// " + Line; + } + return Result; + } + + bool CheckForInlineComments(Preprocessor &PP, SourceRange Range) { + const SourceManager &SM = PP.getSourceManager(); + const SourceLocation CommentStart = Range.getBegin(); + const SourceLocation CommentEnd = Range.getEnd(); + + unsigned StartLine = SM.getSpellingLineNumber(CommentStart); + unsigned EndLine = SM.getSpellingLineNumber(CommentEnd); + + if (StartLine == EndLine) { + SourceLocation LineBegin = ---------------- EugeneZelenko wrote:
```suggestion const SourceLocation LineBegin = ``` Same for variables below. https://github.com/llvm/llvm-project/pull/124319 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits