class Parser
Declaration
class Parser { /* full declaration omitted */ };
Description
Matcher expression parser.
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:55
Member Variables
- private clang::ast_matchers::dynamic::Parser:: CodeTokenizer* const Tokenizer
- private clang::ast_matchers::dynamic::Parser::Sema* const S
- private const clang::ast_matchers::dynamic::Parser:: NamedValueMap* const NamedValues
- private clang::ast_matchers::dynamic::Diagnostics* const Error
- private clang::ast_matchers::dynamic::Parser:: ContextStackTy ContextStack
- private std::vector<MatcherCompletion> Completions
Method Overview
- private Parser(clang::ast_matchers::dynamic::Parser::CodeTokenizer * Tokenizer, clang::ast_matchers::dynamic::Parser::Sema * S, const clang::ast_matchers::dynamic::Parser::NamedValueMap * NamedValues, clang::ast_matchers::dynamic::Diagnostics * Error)
- private void addCompletion(const clang::ast_matchers::dynamic::Parser::TokenInfo & CompToken, const clang::ast_matchers::dynamic::MatcherCompletion & Completion)
- private void addExpressionCompletions()
- public static std::vector<MatcherCompletion> completeExpression(llvm::StringRef & Code, unsigned int CompletionOffset)
- public static std::vector<MatcherCompletion> completeExpression(llvm::StringRef & Code, unsigned int CompletionOffset, clang::ast_matchers::dynamic::Parser::Sema * S)
- public static std::vector<MatcherCompletion> completeExpression(llvm::StringRef & Code, unsigned int CompletionOffset, clang::ast_matchers::dynamic::Parser::Sema * S, const clang::ast_matchers::dynamic::Parser::NamedValueMap * NamedValues)
- private std::vector<MatcherCompletion> getNamedValueCompletions(ArrayRef<clang::ast_matchers::dynamic::ArgKind> AcceptedTypes)
- private bool parseBindID(std::string & BindID)
- public static bool parseExpression(llvm::StringRef & Code, clang::ast_matchers::dynamic::VariantValue * Value, clang::ast_matchers::dynamic::Diagnostics * Error)
- public static bool parseExpression(llvm::StringRef & Code, clang::ast_matchers::dynamic::Parser::Sema * S, clang::ast_matchers::dynamic::VariantValue * Value, clang::ast_matchers::dynamic::Diagnostics * Error)
- public static bool parseExpression(llvm::StringRef & Code, clang::ast_matchers::dynamic::Parser::Sema * S, const clang::ast_matchers::dynamic::Parser::NamedValueMap * NamedValues, clang::ast_matchers::dynamic::VariantValue * Value, clang::ast_matchers::dynamic::Diagnostics * Error)
- private bool parseExpressionImpl(clang::ast_matchers::dynamic::VariantValue * Value)
- private bool parseIdentifierPrefixImpl(clang::ast_matchers::dynamic::VariantValue * Value)
- private bool parseMatcherBuilder(clang::ast_matchers::dynamic::MatcherCtor Ctor, const clang::ast_matchers::dynamic::Parser::TokenInfo & NameToken, const clang::ast_matchers::dynamic::Parser::TokenInfo & OpenToken, clang::ast_matchers::dynamic::VariantValue * Value)
- public static llvm::Optional<DynTypedMatcher> parseMatcherExpression(llvm::StringRef & MatcherCode, clang::ast_matchers::dynamic::Diagnostics * Error)
- public static llvm::Optional<DynTypedMatcher> parseMatcherExpression(llvm::StringRef & MatcherCode, clang::ast_matchers::dynamic::Parser::Sema * S, clang::ast_matchers::dynamic::Diagnostics * Error)
- public static llvm::Optional<DynTypedMatcher> parseMatcherExpression(llvm::StringRef & MatcherCode, clang::ast_matchers::dynamic::Parser::Sema * S, const clang::ast_matchers::dynamic::Parser::NamedValueMap * NamedValues, clang::ast_matchers::dynamic::Diagnostics * Error)
- private bool parseMatcherExpressionImpl(const clang::ast_matchers::dynamic::Parser::TokenInfo & NameToken, const clang::ast_matchers::dynamic::Parser::TokenInfo & OpenToken, llvm::Optional<MatcherCtor> Ctor, clang::ast_matchers::dynamic::VariantValue * Value)
Methods
¶Parser(
clang::ast_matchers::dynamic::Parser::
CodeTokenizer* Tokenizer,
clang::ast_matchers::dynamic::Parser::Sema* S,
const clang::ast_matchers::dynamic::Parser::
NamedValueMap* NamedValues,
clang::ast_matchers::dynamic::Diagnostics*
Error)
Parser(
clang::ast_matchers::dynamic::Parser::
CodeTokenizer* Tokenizer,
clang::ast_matchers::dynamic::Parser::Sema* S,
const clang::ast_matchers::dynamic::Parser::
NamedValueMap* NamedValues,
clang::ast_matchers::dynamic::Diagnostics*
Error)
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:247
Parameters
- clang::ast_matchers::dynamic::Parser:: CodeTokenizer* Tokenizer
- clang::ast_matchers::dynamic::Parser::Sema* S
- const clang::ast_matchers::dynamic::Parser:: NamedValueMap* NamedValues
- clang::ast_matchers::dynamic::Diagnostics* Error
¶void addCompletion(
const clang::ast_matchers::dynamic::Parser::
TokenInfo& CompToken,
const clang::ast_matchers::dynamic::
MatcherCompletion& Completion)
void addCompletion(
const clang::ast_matchers::dynamic::Parser::
TokenInfo& CompToken,
const clang::ast_matchers::dynamic::
MatcherCompletion& Completion)
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:261
Parameters
- const clang::ast_matchers::dynamic::Parser:: TokenInfo& CompToken
- const clang::ast_matchers::dynamic:: MatcherCompletion& Completion
¶void addExpressionCompletions()
void addExpressionCompletions()
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:263
¶static std::vector<MatcherCompletion>
completeExpression(llvm::StringRef& Code,
unsigned int CompletionOffset)
static std::vector<MatcherCompletion>
completeExpression(llvm::StringRef& Code,
unsigned int CompletionOffset)
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:238
Parameters
- llvm::StringRef& Code
- unsigned int CompletionOffset
¶static std::vector<MatcherCompletion>
completeExpression(
llvm::StringRef& Code,
unsigned int CompletionOffset,
clang::ast_matchers::dynamic::Parser::Sema* S)
static std::vector<MatcherCompletion>
completeExpression(
llvm::StringRef& Code,
unsigned int CompletionOffset,
clang::ast_matchers::dynamic::Parser::Sema* S)
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:234
Parameters
- llvm::StringRef& Code
- unsigned int CompletionOffset
- clang::ast_matchers::dynamic::Parser::Sema* S
¶static std::vector<MatcherCompletion>
completeExpression(
llvm::StringRef& Code,
unsigned int CompletionOffset,
clang::ast_matchers::dynamic::Parser::Sema* S,
const clang::ast_matchers::dynamic::Parser::
NamedValueMap* NamedValues)
static std::vector<MatcherCompletion>
completeExpression(
llvm::StringRef& Code,
unsigned int CompletionOffset,
clang::ast_matchers::dynamic::Parser::Sema* S,
const clang::ast_matchers::dynamic::Parser::
NamedValueMap* NamedValues)
Description
Complete an expression at the given offset.
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:231
Parameters
- llvm::StringRef& Code
- unsigned int CompletionOffset
- clang::ast_matchers::dynamic::Parser::Sema* S
- The Sema instance that will help the parser construct the matchers. If null, it uses the default registry.
- const clang::ast_matchers::dynamic::Parser:: NamedValueMap* NamedValues
- A map of precomputed named values. This provides the dictionary for the <NamedValue > rule of the grammar. If null, it is ignored.
Returns
The list of completions, which may be empty if there are no available completions or if an error occurred.
¶std::vector<MatcherCompletion>
getNamedValueCompletions(
ArrayRef<
clang::ast_matchers::dynamic::ArgKind>
AcceptedTypes)
std::vector<MatcherCompletion>
getNamedValueCompletions(
ArrayRef<
clang::ast_matchers::dynamic::ArgKind>
AcceptedTypes)
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:266
Parameters
- ArrayRef<clang::ast_matchers::dynamic::ArgKind> AcceptedTypes
¶bool parseBindID(std::string& BindID)
bool parseBindID(std::string& BindID)
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:251
Parameters
- std::string& BindID
¶static bool parseExpression(
llvm::StringRef& Code,
clang::ast_matchers::dynamic::VariantValue*
Value,
clang::ast_matchers::dynamic::Diagnostics*
Error)
static bool parseExpression(
llvm::StringRef& Code,
clang::ast_matchers::dynamic::VariantValue*
Value,
clang::ast_matchers::dynamic::Diagnostics*
Error)
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:214
Parameters
- llvm::StringRef& Code
- clang::ast_matchers::dynamic::VariantValue* Value
- clang::ast_matchers::dynamic::Diagnostics* Error
¶static bool parseExpression(
llvm::StringRef& Code,
clang::ast_matchers::dynamic::Parser::Sema* S,
clang::ast_matchers::dynamic::VariantValue*
Value,
clang::ast_matchers::dynamic::Diagnostics*
Error)
static bool parseExpression(
llvm::StringRef& Code,
clang::ast_matchers::dynamic::Parser::Sema* S,
clang::ast_matchers::dynamic::VariantValue*
Value,
clang::ast_matchers::dynamic::Diagnostics*
Error)
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:210
Parameters
- llvm::StringRef& Code
- clang::ast_matchers::dynamic::Parser::Sema* S
- clang::ast_matchers::dynamic::VariantValue* Value
- clang::ast_matchers::dynamic::Diagnostics* Error
¶static bool parseExpression(
llvm::StringRef& Code,
clang::ast_matchers::dynamic::Parser::Sema* S,
const clang::ast_matchers::dynamic::Parser::
NamedValueMap* NamedValues,
clang::ast_matchers::dynamic::VariantValue*
Value,
clang::ast_matchers::dynamic::Diagnostics*
Error)
static bool parseExpression(
llvm::StringRef& Code,
clang::ast_matchers::dynamic::Parser::Sema* S,
const clang::ast_matchers::dynamic::Parser::
NamedValueMap* NamedValues,
clang::ast_matchers::dynamic::VariantValue*
Value,
clang::ast_matchers::dynamic::Diagnostics*
Error)
Description
Parse an expression. Parses any expression supported by this parser. In general, the\c parseMatcherExpression function is a better approach to get a matcher object.
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:207
Parameters
- llvm::StringRef& Code
- clang::ast_matchers::dynamic::Parser::Sema* S
- The Sema instance that will help the parser construct the matchers. If null, it uses the default registry.
- const clang::ast_matchers::dynamic::Parser:: NamedValueMap* NamedValues
- A map of precomputed named values. This provides the dictionary for the <NamedValue > rule of the grammar. If null, it is ignored.
- clang::ast_matchers::dynamic::VariantValue* Value
- clang::ast_matchers::dynamic::Diagnostics* Error
¶bool parseExpressionImpl(
clang::ast_matchers::dynamic::VariantValue*
Value)
bool parseExpressionImpl(
clang::ast_matchers::dynamic::VariantValue*
Value)
Description
Parse an <Expression >
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:252
Parameters
¶bool parseIdentifierPrefixImpl(
clang::ast_matchers::dynamic::VariantValue*
Value)
bool parseIdentifierPrefixImpl(
clang::ast_matchers::dynamic::VariantValue*
Value)
Description
Parse expressions that start with an identifier. This function can parse named values and matchers. In case of failure it will try to determine the user's intent to give an appropriate error message.
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:259
Parameters
¶bool parseMatcherBuilder(
clang::ast_matchers::dynamic::MatcherCtor
Ctor,
const clang::ast_matchers::dynamic::Parser::
TokenInfo& NameToken,
const clang::ast_matchers::dynamic::Parser::
TokenInfo& OpenToken,
clang::ast_matchers::dynamic::VariantValue*
Value)
bool parseMatcherBuilder(
clang::ast_matchers::dynamic::MatcherCtor
Ctor,
const clang::ast_matchers::dynamic::Parser::
TokenInfo& NameToken,
const clang::ast_matchers::dynamic::Parser::
TokenInfo& OpenToken,
clang::ast_matchers::dynamic::VariantValue*
Value)
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:253
Parameters
- clang::ast_matchers::dynamic::MatcherCtor Ctor
- const clang::ast_matchers::dynamic::Parser:: TokenInfo& NameToken
- const clang::ast_matchers::dynamic::Parser:: TokenInfo& OpenToken
- clang::ast_matchers::dynamic::VariantValue* Value
¶static llvm::Optional<DynTypedMatcher>
parseMatcherExpression(
llvm::StringRef& MatcherCode,
clang::ast_matchers::dynamic::Diagnostics*
Error)
static llvm::Optional<DynTypedMatcher>
parseMatcherExpression(
llvm::StringRef& MatcherCode,
clang::ast_matchers::dynamic::Diagnostics*
Error)
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:191
Parameters
- llvm::StringRef& MatcherCode
- clang::ast_matchers::dynamic::Diagnostics* Error
¶static llvm::Optional<DynTypedMatcher>
parseMatcherExpression(
llvm::StringRef& MatcherCode,
clang::ast_matchers::dynamic::Parser::Sema* S,
clang::ast_matchers::dynamic::Diagnostics*
Error)
static llvm::Optional<DynTypedMatcher>
parseMatcherExpression(
llvm::StringRef& MatcherCode,
clang::ast_matchers::dynamic::Parser::Sema* S,
clang::ast_matchers::dynamic::Diagnostics*
Error)
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:187
Parameters
- llvm::StringRef& MatcherCode
- clang::ast_matchers::dynamic::Parser::Sema* S
- clang::ast_matchers::dynamic::Diagnostics* Error
¶static llvm::Optional<DynTypedMatcher>
parseMatcherExpression(
llvm::StringRef& MatcherCode,
clang::ast_matchers::dynamic::Parser::Sema* S,
const clang::ast_matchers::dynamic::Parser::
NamedValueMap* NamedValues,
clang::ast_matchers::dynamic::Diagnostics*
Error)
static llvm::Optional<DynTypedMatcher>
parseMatcherExpression(
llvm::StringRef& MatcherCode,
clang::ast_matchers::dynamic::Parser::Sema* S,
const clang::ast_matchers::dynamic::Parser::
NamedValueMap* NamedValues,
clang::ast_matchers::dynamic::Diagnostics*
Error)
Description
Parse a matcher expression.
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:184
Parameters
- llvm::StringRef& MatcherCode
- The matcher expression to parse.
- clang::ast_matchers::dynamic::Parser::Sema* S
- The Sema instance that will help the parser construct the matchers. If null, it uses the default registry.
- const clang::ast_matchers::dynamic::Parser:: NamedValueMap* NamedValues
- A map of precomputed named values. This provides the dictionary for the <NamedValue > rule of the grammar. If null, it is ignored.
- clang::ast_matchers::dynamic::Diagnostics* Error
Returns
The matcher object constructed by the processor, or an empty Optional if an error occurred. In that case, \c Error will contain a description of the error. The caller takes ownership of the DynTypedMatcher object returned.
¶bool parseMatcherExpressionImpl(
const clang::ast_matchers::dynamic::Parser::
TokenInfo& NameToken,
const clang::ast_matchers::dynamic::Parser::
TokenInfo& OpenToken,
llvm::Optional<MatcherCtor> Ctor,
clang::ast_matchers::dynamic::VariantValue*
Value)
bool parseMatcherExpressionImpl(
const clang::ast_matchers::dynamic::Parser::
TokenInfo& NameToken,
const clang::ast_matchers::dynamic::Parser::
TokenInfo& OpenToken,
llvm::Optional<MatcherCtor> Ctor,
clang::ast_matchers::dynamic::VariantValue*
Value)
Description
Parse and validate a matcher expression.
Declared at: clang/include/clang/ASTMatchers/Dynamic/Parser.h:255
Parameters
- const clang::ast_matchers::dynamic::Parser:: TokenInfo& NameToken
- const clang::ast_matchers::dynamic::Parser:: TokenInfo& OpenToken
- llvm::Optional<MatcherCtor> Ctor
- clang::ast_matchers::dynamic::VariantValue* Value
Returns
\c true on success, in which case \c Value has the matcher parsed. If the input is malformed, or some argument has an error, it returns \c false.