diff options
Diffstat (limited to 'contrib/llvm-project/clang/lib/Format/Macros.h')
-rw-r--r-- | contrib/llvm-project/clang/lib/Format/Macros.h | 40 |
1 files changed, 17 insertions, 23 deletions
diff --git a/contrib/llvm-project/clang/lib/Format/Macros.h b/contrib/llvm-project/clang/lib/Format/Macros.h index 1964624e828c..e05f734b0db8 100644 --- a/contrib/llvm-project/clang/lib/Format/Macros.h +++ b/contrib/llvm-project/clang/lib/Format/Macros.h @@ -39,15 +39,9 @@ #define CLANG_LIB_FORMAT_MACROS_H #include <list> -#include <map> -#include <string> -#include <vector> #include "FormatToken.h" -#include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/DenseMap.h" -#include "llvm/ADT/SmallVector.h" -#include "llvm/ADT/StringRef.h" namespace clang { namespace format { @@ -85,7 +79,7 @@ struct UnwrappedLineNode; /// class MacroExpander { public: - using ArgsList = llvm::ArrayRef<llvm::SmallVector<FormatToken *, 8>>; + using ArgsList = ArrayRef<SmallVector<FormatToken *, 8>>; /// Construct a macro expander from a set of macro definitions. /// Macro definitions must be encoded as UTF-8. @@ -101,27 +95,27 @@ public: /// Macros that cannot be parsed will be silently discarded. /// MacroExpander(const std::vector<std::string> &Macros, - clang::SourceManager &SourceMgr, const FormatStyle &Style, + SourceManager &SourceMgr, const FormatStyle &Style, llvm::SpecificBumpPtrAllocator<FormatToken> &Allocator, IdentifierTable &IdentTable); ~MacroExpander(); /// Returns whether any macro \p Name is defined, regardless of overloads. - bool defined(llvm::StringRef Name) const; + bool defined(StringRef Name) const; /// Returns whetherh there is an object-like overload, i.e. where the macro /// has no arguments and should not consume subsequent parentheses. - bool objectLike(llvm::StringRef Name) const; + bool objectLike(StringRef Name) const; /// Returns whether macro \p Name provides an overload with the given arity. - bool hasArity(llvm::StringRef Name, unsigned Arity) const; + bool hasArity(StringRef Name, unsigned Arity) const; /// Returns the expanded stream of format tokens for \p ID, where /// each element in \p Args is a positional argument to the macro call. /// If \p Args is not set, the object-like overload is used. /// If \p Args is set, the overload with the arity equal to \c Args.size() is /// used. - llvm::SmallVector<FormatToken *, 8> + SmallVector<FormatToken *, 8> expand(FormatToken *ID, std::optional<ArgsList> OptionalArgs) const; private: @@ -130,7 +124,7 @@ private: void parseDefinition(const std::string &Macro); - clang::SourceManager &SourceMgr; + SourceManager &SourceMgr; const FormatStyle &Style; llvm::SpecificBumpPtrAllocator<FormatToken> &Allocator; IdentifierTable &IdentTable; @@ -231,8 +225,9 @@ public: UnwrappedLine takeResult() &&; private: - void add(FormatToken *Token, FormatToken *ExpandedParent, bool First); - void prepareParent(FormatToken *ExpandedParent, bool First); + void add(FormatToken *Token, FormatToken *ExpandedParent, bool First, + unsigned Level); + void prepareParent(FormatToken *ExpandedParent, bool First, unsigned Level); FormatToken *getParentInResult(FormatToken *Parent); void reconstruct(FormatToken *Token); void startReconstruction(FormatToken *Token); @@ -265,14 +260,16 @@ private: LineNode() = default; LineNode(FormatToken *Tok) : Tok(Tok) {} FormatToken *Tok = nullptr; - llvm::SmallVector<std::unique_ptr<ReconstructedLine>> Children; + SmallVector<std::unique_ptr<ReconstructedLine>> Children; }; // Line in which we build up the resulting unwrapped line. // FIXME: Investigate changing UnwrappedLine to a pointer type and using it // instead of rolling our own type. struct ReconstructedLine { - llvm::SmallVector<std::unique_ptr<LineNode>> Tokens; + explicit ReconstructedLine(unsigned Level) : Level(Level) {} + unsigned Level; + SmallVector<std::unique_ptr<LineNode>> Tokens; }; // The line in which we collect the resulting reconstructed output. @@ -288,7 +285,7 @@ private: // Stack of currently "open" lines, where each line's predecessor's last // token is the parent token for that line. - llvm::SmallVector<ReconstructedLine *> ActiveReconstructedLines; + SmallVector<ReconstructedLine *> ActiveReconstructedLines; // Maps from the expanded token to the token that takes its place in the // reconstructed token stream in terms of parent-child relationships. @@ -328,7 +325,7 @@ private: }; // Stack of macro calls for which we're in the middle of an expansion. - llvm::SmallVector<Expansion> ActiveExpansions; + SmallVector<Expansion> ActiveExpansions; struct MacroCallState { MacroCallState(ReconstructedLine *Line, FormatToken *ParentLastToken, @@ -371,10 +368,7 @@ private: // |- , // | \- <argument> // \- ) - llvm::SmallVector<MacroCallState> MacroCallStructure; - - // Level the generated UnwrappedLine will be at. - const unsigned Level; + SmallVector<MacroCallState> MacroCallStructure; // Maps from identifier of the macro call to an unwrapped line containing // all tokens of the macro call. |