Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. //===--- SourceExtraction.cpp - Clang refactoring library -----------------===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8.  
  9. #ifndef LLVM_CLANG_TOOLING_REFACTORING_EXTRACT_SOURCEEXTRACTION_H
  10. #define LLVM_CLANG_TOOLING_REFACTORING_EXTRACT_SOURCEEXTRACTION_H
  11.  
  12. #include "clang/Basic/LLVM.h"
  13.  
  14. namespace clang {
  15.  
  16. class LangOptions;
  17. class SourceManager;
  18. class SourceRange;
  19. class Stmt;
  20.  
  21. namespace tooling {
  22.  
  23. /// Determines which semicolons should be inserted during extraction.
  24. class ExtractionSemicolonPolicy {
  25. public:
  26.   bool isNeededInExtractedFunction() const {
  27.     return IsNeededInExtractedFunction;
  28.   }
  29.  
  30.   bool isNeededInOriginalFunction() const { return IsNeededInOriginalFunction; }
  31.  
  32.   /// Returns the semicolon insertion policy that is needed for extraction of
  33.   /// the given statement from the given source range.
  34.   static ExtractionSemicolonPolicy compute(const Stmt *S,
  35.                                            SourceRange &ExtractedRange,
  36.                                            const SourceManager &SM,
  37.                                            const LangOptions &LangOpts);
  38.  
  39. private:
  40.   ExtractionSemicolonPolicy(bool IsNeededInExtractedFunction,
  41.                             bool IsNeededInOriginalFunction)
  42.       : IsNeededInExtractedFunction(IsNeededInExtractedFunction),
  43.         IsNeededInOriginalFunction(IsNeededInOriginalFunction) {}
  44.   bool IsNeededInExtractedFunction;
  45.   bool IsNeededInOriginalFunction;
  46. };
  47.  
  48. } // end namespace tooling
  49. } // end namespace clang
  50.  
  51. #endif // LLVM_CLANG_TOOLING_REFACTORING_EXTRACT_SOURCEEXTRACTION_H
  52.