class Parser::Sema
Declaration
class Parser::Sema { /* full declaration omitted */ };
Description
Interface to connect the parser with the registry and more. The parser uses the Sema instance passed into parseMatcherExpression() to handle all matcher tokens. The simplest processor implementation would simply call into the registry to create the matchers. However, a more complex processor might decide to intercept the matcher creation and do some extra work. For example, it could apply some transformation to the matcher by adding some id() nodes, or could detect specific matcher nodes for more efficient lookup.
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:67
Method Overview
- public virtual clang::ast_matchers::dynamic::VariantMatcher actOnMatcherExpression(clang::ast_matchers::dynamic::MatcherCtor Ctor, clang::ast_matchers::dynamic::SourceRange NameRange, llvm::StringRef BindID, ArrayRef<clang::ast_matchers::dynamic::ParserValue> Args, clang::ast_matchers::dynamic::Diagnostics * Error)
- public virtual internal::MatcherDescriptorPtr buildMatcherCtor(clang::ast_matchers::dynamic::MatcherCtor, clang::ast_matchers::dynamic::SourceRange NameRange, ArrayRef<clang::ast_matchers::dynamic::ParserValue> Args, clang::ast_matchers::dynamic::Diagnostics * Error) const
- public virtual std::vector<ArgKind> getAcceptedCompletionTypes(llvm::ArrayRef<std::pair<MatcherCtor, unsigned int>> Context)
- public virtual std::vector<MatcherCompletion> getMatcherCompletions(llvm::ArrayRef<ArgKind> AcceptedTypes)
- public virtual bool isBuilderMatcher(clang::ast_matchers::dynamic::MatcherCtor) const
- public virtual llvm::Optional<MatcherCtor> lookupMatcherCtor(llvm::StringRef MatcherName)
- public virtual clang::ASTNodeKind nodeMatcherType(clang::ast_matchers::dynamic::MatcherCtor) const
- public virtual ~Sema()
Methods
¶virtual clang::ast_matchers::dynamic::
VariantMatcher
actOnMatcherExpression(
clang::ast_matchers::dynamic::MatcherCtor
Ctor,
clang::ast_matchers::dynamic::SourceRange
NameRange,
llvm::StringRef BindID,
ArrayRef<clang::ast_matchers::dynamic::
ParserValue> Args,
clang::ast_matchers::dynamic::Diagnostics*
Error)
virtual clang::ast_matchers::dynamic::
VariantMatcher
actOnMatcherExpression(
clang::ast_matchers::dynamic::MatcherCtor
Ctor,
clang::ast_matchers::dynamic::SourceRange
NameRange,
llvm::StringRef BindID,
ArrayRef<clang::ast_matchers::dynamic::
ParserValue> Args,
clang::ast_matchers::dynamic::Diagnostics*
Error)
Description
Process a matcher expression. All the arguments passed here have already been processed.
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:88
Parameters
- clang::ast_matchers::dynamic::MatcherCtor Ctor
- A matcher constructor looked up by lookupMatcherCtor.
- clang::ast_matchers::dynamic::SourceRange NameRange
- The location of the name in the matcher source. Useful for error reporting.
- llvm::StringRef BindID
- The ID to use to bind the matcher, or a null \c StringRef if no ID is specified.
- ArrayRef< clang::ast_matchers::dynamic::ParserValue> Args
- The argument list for the matcher.
- clang::ast_matchers::dynamic::Diagnostics* Error
Returns
The matcher objects constructed by the processor, or a null matcher if an error occurred. In that case, \c Error will contain a description of the error.
¶virtual internal::MatcherDescriptorPtr
buildMatcherCtor(
clang::ast_matchers::dynamic::MatcherCtor,
clang::ast_matchers::dynamic::SourceRange
NameRange,
ArrayRef<
clang::ast_matchers::dynamic::ParserValue>
Args,
clang::ast_matchers::dynamic::Diagnostics*
Error) const
virtual internal::MatcherDescriptorPtr
buildMatcherCtor(
clang::ast_matchers::dynamic::MatcherCtor,
clang::ast_matchers::dynamic::SourceRange
NameRange,
ArrayRef<
clang::ast_matchers::dynamic::ParserValue>
Args,
clang::ast_matchers::dynamic::Diagnostics*
Error) const
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:108
Parameters
- clang::ast_matchers::dynamic::MatcherCtor
- clang::ast_matchers::dynamic::SourceRange NameRange
- ArrayRef< clang::ast_matchers::dynamic::ParserValue> Args
- clang::ast_matchers::dynamic::Diagnostics* Error
¶virtual std::vector<ArgKind>
getAcceptedCompletionTypes(
llvm::ArrayRef<
std::pair<MatcherCtor, unsigned int>>
Context)
virtual std::vector<ArgKind>
getAcceptedCompletionTypes(
llvm::ArrayRef<
std::pair<MatcherCtor, unsigned int>>
Context)
Description
Compute the list of completion types for \p Context. Each element of \p Context represents a matcher invocation, going from outermost to innermost. Elements are pairs consisting of a reference to the matcher constructor and the index of the next element in the argument list of that matcher (or for the last element, the index of the completion point in the argument list). An empty list requests completion for the root matcher.
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:119
Parameters
- llvm::ArrayRef< std::pair<MatcherCtor, unsigned int>> Context
¶virtual std::vector<MatcherCompletion>
getMatcherCompletions(
llvm::ArrayRef<ArgKind> AcceptedTypes)
virtual std::vector<MatcherCompletion>
getMatcherCompletions(
llvm::ArrayRef<ArgKind> AcceptedTypes)
Description
Compute the list of completions that match any of\p AcceptedTypes.
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:132
Parameters
- llvm::ArrayRef<ArgKind> AcceptedTypes
- All types accepted for this completion.
Returns
All completions for the specified types. Completions should be valid when used in \c lookupMatcherCtor(). The matcher constructed from the return of \c lookupMatcherCtor() should be convertible to some type in \p AcceptedTypes.
¶virtual bool isBuilderMatcher(
clang::ast_matchers::dynamic::MatcherCtor)
const
virtual bool isBuilderMatcher(
clang::ast_matchers::dynamic::MatcherCtor)
const
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:103
Parameters
¶virtual llvm::Optional<MatcherCtor>
lookupMatcherCtor(llvm::StringRef MatcherName)
virtual llvm::Optional<MatcherCtor>
lookupMatcherCtor(llvm::StringRef MatcherName)
Description
Look up a matcher by name.
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:101
Parameters
- llvm::StringRef MatcherName
- The matcher name found by the parser.
Returns
The matcher constructor, or Optional <MatcherCtor >() if not found.
¶virtual clang::ASTNodeKind nodeMatcherType(
clang::ast_matchers::dynamic::MatcherCtor)
const
virtual clang::ASTNodeKind nodeMatcherType(
clang::ast_matchers::dynamic::MatcherCtor)
const
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:105
Parameters
¶virtual ~Sema()
virtual ~Sema()
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:69