clang API Documentation

Classes | Public Types | Static Public Member Functions
clang::ast_matchers::dynamic::Parser Class Reference

Matcher expression parser. More...

#include <Parser.h>

List of all members.

Classes

class  CodeTokenizer
 Simple tokenizer for the parser. More...
class  RegistrySema
 Sema implementation that uses the matcher registry to process the tokens. More...
struct  ScopedContextEntry
class  Sema
 Interface to connect the parser with the registry and more. More...
struct  TokenInfo
 Simple structure to hold information for one token from the parser. More...

Public Types

typedef llvm::StringMap
< VariantValue
NamedValueMap

Static Public Member Functions

static llvm::Optional
< DynTypedMatcher > 
parseMatcherExpression (StringRef MatcherCode, Sema *S, const NamedValueMap *NamedValues, Diagnostics *Error)
 Parse a matcher expression.
static llvm::Optional
< DynTypedMatcher > 
parseMatcherExpression (StringRef MatcherCode, Sema *S, Diagnostics *Error)
static llvm::Optional
< DynTypedMatcher > 
parseMatcherExpression (StringRef MatcherCode, Diagnostics *Error)
static bool parseExpression (StringRef Code, Sema *S, const NamedValueMap *NamedValues, VariantValue *Value, Diagnostics *Error)
 Parse an expression.
static bool parseExpression (StringRef Code, Sema *S, VariantValue *Value, Diagnostics *Error)
static bool parseExpression (StringRef Code, VariantValue *Value, Diagnostics *Error)
static std::vector
< MatcherCompletion
completeExpression (StringRef Code, unsigned CompletionOffset, Sema *S, const NamedValueMap *NamedValues)
 Complete an expression at the given offset.
static std::vector
< MatcherCompletion
completeExpression (StringRef Code, unsigned CompletionOffset, Sema *S)
static std::vector
< MatcherCompletion
completeExpression (StringRef Code, unsigned CompletionOffset)

Detailed Description

Matcher expression parser.

Definition at line 50 of file ASTMatchers/Dynamic/Parser.h.


Member Typedef Documentation

Definition at line 144 of file ASTMatchers/Dynamic/Parser.h.


Member Function Documentation

std::vector< MatcherCompletion > clang::ast_matchers::dynamic::Parser::completeExpression ( StringRef  Code,
unsigned  CompletionOffset,
Sema S,
const NamedValueMap NamedValues 
) [static]

Complete an expression at the given offset.

Parameters:
SThe Sema instance that will help the parser construct the matchers. If null, it uses the default registry.
NamedValuesA 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.

Definition at line 572 of file ASTMatchers/Dynamic/Parser.cpp.

References clang::diag::Error, P, clang::ast_matchers::dynamic::MatcherCompletion::Specificity, and clang::ast_matchers::dynamic::MatcherCompletion::TypedText.

Referenced by completeExpression().

static std::vector<MatcherCompletion> clang::ast_matchers::dynamic::Parser::completeExpression ( StringRef  Code,
unsigned  CompletionOffset,
Sema S 
) [inline, static]

Definition at line 214 of file ASTMatchers/Dynamic/Parser.h.

References completeExpression().

static std::vector<MatcherCompletion> clang::ast_matchers::dynamic::Parser::completeExpression ( StringRef  Code,
unsigned  CompletionOffset 
) [inline, static]

Definition at line 218 of file ASTMatchers/Dynamic/Parser.h.

References completeExpression().

bool clang::ast_matchers::dynamic::Parser::parseExpression ( StringRef  Code,
Sema S,
const NamedValueMap NamedValues,
VariantValue Value,
Diagnostics Error 
) [static]

Parse an expression.

Parses any expression supported by this parser. In general, the parseMatcherExpression function is a better approach to get a matcher object.

Parameters:
SThe Sema instance that will help the parser construct the matchers. If null, it uses the default registry.
NamedValuesA map of precomputed named values. This provides the dictionary for the <NamedValue> rule of the grammar. If null, it is ignored.

Definition at line 557 of file ASTMatchers/Dynamic/Parser.cpp.

References clang::ast_matchers::dynamic::Diagnostics::addError(), clang::ast_matchers::dynamic::Diagnostics::ET_ParserTrailingCode, clang::ast_matchers::dynamic::Parser::TokenInfo::Kind, clang::ast_matchers::dynamic::Parser::CodeTokenizer::peekNextToken(), and clang::ast_matchers::dynamic::Parser::TokenInfo::Range.

Referenced by parseExpression().

static bool clang::ast_matchers::dynamic::Parser::parseExpression ( StringRef  Code,
Sema S,
VariantValue Value,
Diagnostics Error 
) [inline, static]

Definition at line 190 of file ASTMatchers/Dynamic/Parser.h.

References parseExpression().

static bool clang::ast_matchers::dynamic::Parser::parseExpression ( StringRef  Code,
VariantValue Value,
Diagnostics Error 
) [inline, static]

Definition at line 194 of file ASTMatchers/Dynamic/Parser.h.

References parseExpression().

llvm::Optional< DynTypedMatcher > clang::ast_matchers::dynamic::Parser::parseMatcherExpression ( StringRef  MatcherCode,
Sema S,
const NamedValueMap NamedValues,
Diagnostics Error 
) [static]

Parse a matcher expression.

Parameters:
MatcherCodeThe matcher expression to parse.
SThe Sema instance that will help the parser construct the matchers. If null, it uses the default registry.
NamedValuesA map of precomputed named values. This provides the dictionary for the <NamedValue> rule of the grammar. If null, it is ignored.
Returns:
The matcher object constructed by the processor, or an empty Optional if an error occurred. In that case, Error will contain a description of the error. The caller takes ownership of the DynTypedMatcher object returned.

Definition at line 592 of file ASTMatchers/Dynamic/Parser.cpp.

References clang::ast_matchers::dynamic::Diagnostics::addError(), clang::ast_matchers::dynamic::Diagnostics::ET_ParserNotAMatcher, clang::ast_matchers::dynamic::Diagnostics::ET_ParserOverloadedType, clang::ast_matchers::dynamic::VariantValue::getMatcher(), clang::ast_matchers::dynamic::VariantMatcher::getSingleMatcher(), clang::ast_matchers::dynamic::VariantValue::getTypeAsString(), and clang::ast_matchers::dynamic::VariantValue::isMatcher().

Referenced by parseMatcherExpression().

static llvm::Optional<DynTypedMatcher> clang::ast_matchers::dynamic::Parser::parseMatcherExpression ( StringRef  MatcherCode,
Sema S,
Diagnostics Error 
) [inline, static]

Definition at line 166 of file ASTMatchers/Dynamic/Parser.h.

References parseMatcherExpression().

static llvm::Optional<DynTypedMatcher> clang::ast_matchers::dynamic::Parser::parseMatcherExpression ( StringRef  MatcherCode,
Diagnostics Error 
) [inline, static]

Definition at line 171 of file ASTMatchers/Dynamic/Parser.h.

References parseMatcherExpression().


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