clang 20.0.0git
Public Member Functions | List of all members
clang::ast_matchers::dynamic::Parser::Sema Class Referenceabstract

Interface to connect the parser with the registry and more. More...

#include "clang/ASTMatchers/Dynamic/Parser.h"

Inheritance diagram for clang::ast_matchers::dynamic::Parser::Sema:
Inheritance graph
[legend]

Public Member Functions

virtual ~Sema ()
 
virtual VariantMatcher actOnMatcherExpression (MatcherCtor Ctor, SourceRange NameRange, StringRef BindID, ArrayRef< ParserValue > Args, Diagnostics *Error)=0
 Process a matcher expression.
 
virtual std::optional< MatcherCtorlookupMatcherCtor (StringRef MatcherName)=0
 Look up a matcher by name.
 
virtual bool isBuilderMatcher (MatcherCtor) const =0
 
virtual ASTNodeKind nodeMatcherType (MatcherCtor) const =0
 
virtual internal::MatcherDescriptorPtr buildMatcherCtor (MatcherCtor, SourceRange NameRange, ArrayRef< ParserValue > Args, Diagnostics *Error) const =0
 
virtual std::vector< ArgKindgetAcceptedCompletionTypes (llvm::ArrayRef< std::pair< MatcherCtor, unsigned > > Context)
 Compute the list of completion types for Context.
 
virtual std::vector< MatcherCompletiongetMatcherCompletions (llvm::ArrayRef< ArgKind > AcceptedTypes)
 Compute the list of completions that match any of AcceptedTypes.
 

Detailed 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.

Definition at line 67 of file Parser.h.

Constructor & Destructor Documentation

◆ ~Sema()

clang::ast_matchers::dynamic::Parser::Sema::~Sema ( )
virtualdefault

Member Function Documentation

◆ actOnMatcherExpression()

virtual VariantMatcher clang::ast_matchers::dynamic::Parser::Sema::actOnMatcherExpression ( MatcherCtor  Ctor,
SourceRange  NameRange,
StringRef  BindID,
ArrayRef< ParserValue Args,
Diagnostics Error 
)
pure virtual

Process a matcher expression.

All the arguments passed here have already been processed.

Parameters
CtorA matcher constructor looked up by lookupMatcherCtor.
NameRangeThe location of the name in the matcher source. Useful for error reporting.
BindIDThe ID to use to bind the matcher, or a null StringRef if no ID is specified.
ArgsThe argument list for the matcher.
Returns
The matcher objects constructed by the processor, or a null matcher if an error occurred. In that case, Error will contain a description of the error.

Implemented in clang::ast_matchers::dynamic::Parser::RegistrySema.

◆ buildMatcherCtor()

virtual internal::MatcherDescriptorPtr clang::ast_matchers::dynamic::Parser::Sema::buildMatcherCtor ( MatcherCtor  ,
SourceRange  NameRange,
ArrayRef< ParserValue Args,
Diagnostics Error 
) const
pure virtual

◆ getAcceptedCompletionTypes()

std::vector< ArgKind > clang::ast_matchers::dynamic::Parser::Sema::getAcceptedCompletionTypes ( llvm::ArrayRef< std::pair< MatcherCtor, unsigned > >  Context)
virtual

Compute the list of completion types for Context.

Each element of 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.

Reimplemented in clang::ast_matchers::dynamic::Parser::RegistrySema.

Definition at line 323 of file Parser.cpp.

◆ getMatcherCompletions()

std::vector< MatcherCompletion > clang::ast_matchers::dynamic::Parser::Sema::getMatcherCompletions ( llvm::ArrayRef< ArgKind AcceptedTypes)
virtual

Compute the list of completions that match any of AcceptedTypes.

Parameters
AcceptedTypesAll types accepted for this completion.
Returns
All completions for the specified types. Completions should be valid when used in lookupMatcherCtor(). The matcher constructed from the return of lookupMatcherCtor() should be convertible to some type in AcceptedTypes.

Reimplemented in clang::ast_matchers::dynamic::Parser::RegistrySema.

Definition at line 329 of file Parser.cpp.

◆ isBuilderMatcher()

virtual bool clang::ast_matchers::dynamic::Parser::Sema::isBuilderMatcher ( MatcherCtor  ) const
pure virtual

◆ lookupMatcherCtor()

virtual std::optional< MatcherCtor > clang::ast_matchers::dynamic::Parser::Sema::lookupMatcherCtor ( StringRef  MatcherName)
pure virtual

Look up a matcher by name.

Parameters
MatcherNameThe matcher name found by the parser.
Returns
The matcher constructor, or std::optional<MatcherCtor>() if not found.

Implemented in clang::ast_matchers::dynamic::Parser::RegistrySema.

◆ nodeMatcherType()

virtual ASTNodeKind clang::ast_matchers::dynamic::Parser::Sema::nodeMatcherType ( MatcherCtor  ) const
pure virtual

The documentation for this class was generated from the following files: