Parser - This implements a parser for the C family of languages. More...
#include "clang/Parse/Parser.h"
Parser - This implements a parser for the C family of languages.
After parsing units of the grammar, productions are invoked to handle whatever has been read.
Definition at line 58 of file Parser.h.
◆ DeclGroupPtrTy ◆ FullExprArg ◆ StmtVectorA SmallVector of statements.
Definition at line 521 of file Parser.h.
◆ TemplateParameterLists ◆ TemplateTy ◆ SkipUntilFlagsControl flags for SkipUntil functions.
Enumerator StopAtSemiStop skipping at semicolon.
StopBeforeMatchStop skipping at specified token, but don't skip the token itself.
StopAtCodeCompletionStop at code completion.
Definition at line 1272 of file Parser.h.
◆ TypeCastStateTypeCastState - State whether an expression is or may be a type cast.
Enumerator NotTypeCast MaybeTypeCast IsTypeCastDefinition at line 1841 of file Parser.h.
◆ Parser() ◆ ~Parser() ◆ ConsumeAnyToken() ◆ ConsumeToken()ConsumeToken - Consume the current 'peek token' and lex the next one.
This does not work with special tokens: string literals, code completion, annotation tokens and balanced tokens must be handled using the specific consume methods. Returns the location of the consumed token.
Definition at line 548 of file Parser.h.
References clang::Token::getLocation(), and clang::Preprocessor::Lex().
Referenced by ConsumeAnyToken(), Initialize(), clang::Parser::ConditionDeclarationOrInitStatementState::markNotExpression(), ParseConstraintLogicalAndExpression(), ParseConstraintLogicalOrExpression(), parseMapperModifier(), parseMapTypeModifiers(), ParseMSAsmIdentifier(), ParseOpenMPReservedLocator(), ParseOpenMPVarList(), ParseUnqualifiedId(), SkipMalformedDecl(), SkipUntil(), TryAnnotateTypeOrScopeToken(), and TryAnnotateTypeOrScopeTokenAfterScopeSpec().
◆ Diag() [1/3] ◆ Diag() [2/3]Definition at line 81 of file Parser.cpp.
References Loc, and clang::DiagnosticsEngine::Report().
Referenced by Diag(), diagnoseExpectedAttributeSubjectSubRule(), diagnoseUnknownAttributeSubjectSubRule(), ParseConstraintLogicalAndExpression(), ParseFirstTopLevelDecl(), parseMapperModifier(), parseMapTypeModifiers(), ParseOpenMPReservedLocator(), ParseOpenMPVarList(), ParseUnqualifiedId(), TryAnnotateTypeOrScopeToken(), and TryAnnotateTypeOrScopeTokenAfterScopeSpec().
◆ Diag() [3/3] ◆ EnterScope() void Parser::EnterScope ( unsigned ScopeFlags ) ◆ ExitScope() void Parser::ExitScope ( ) ◆ getActions() Sema & clang::Parser::getActions ( ) const inline ◆ getAttrFactory() ◆ getCurScope() Scope * clang::Parser::getCurScope ( ) const inlineDefinition at line 502 of file Parser.h.
References clang::Sema::getCurScope().
Referenced by EnterScope(), ExitScope(), Initialize(), ParseAssignmentExpression(), ParseConditionalExpression(), ParseConstraintLogicalAndExpression(), ParseConstraintLogicalOrExpression(), ParseUnqualifiedId(), clang::Parser::ReenterClassScopeRAII::ReenterClassScopeRAII(), TryAnnotateTypeOrScopeToken(), TryAnnotateTypeOrScopeTokenAfterScopeSpec(), ~Parser(), and clang::Parser::ReenterClassScopeRAII::~ReenterClassScopeRAII().
◆ getCurToken() const Token & clang::Parser::getCurToken ( ) const inline ◆ getEndOfPreviousToken() ◆ getLangOpts() const LangOptions & clang::Parser::getLangOpts ( ) const inlineDefinition at line 495 of file Parser.h.
References clang::Preprocessor::getLangOpts().
Referenced by clang::BalancedDelimiterTracker::expectAndConsume(), Initialize(), MightBeCXXScopeToken(), ParseFirstTopLevelDecl(), parseMapperModifier(), parseMapTypeModifiers(), ParseMSAsmIdentifier(), ParseOpenMPVarList(), ParseTopLevelDecl(), ParseUnqualifiedId(), TryAnnotateCXXScopeToken(), TryAnnotateTypeOrScopeToken(), and TryAnnotateTypeOrScopeTokenAfterScopeSpec().
◆ getNullabilityKeyword() ◆ getObjCDeclContext() ◆ getPreprocessor() ◆ getTargetInfo() const TargetInfo & clang::Parser::getTargetInfo ( ) const inline ◆ getTypeAnnotation() ◆ incrementMSManglingNumber() void clang::Parser::incrementMSManglingNumber ( ) const inline ◆ Initialize() void Parser::Initialize ( )Initialize - Warm up the parser.
Definition at line 490 of file Parser.cpp.
References clang::Sema::ActOnTranslationUnitScope(), ConsumeToken(), clang::Scope::DeclScope, EnterScope(), clang::IdentifierTable::get(), getCurScope(), clang::Preprocessor::getIdentifierInfo(), clang::Preprocessor::getIdentifierTable(), getLangOpts(), clang::Sema::Initialize(), clang::ObjC, and clang::Preprocessor::SetPoisonReason().
◆ MightBeCXXScopeToken() bool clang::Parser::MightBeCXXScopeToken ( ) inline ◆ NextToken() const Token & clang::Parser::NextToken ( ) inline ◆ ParseArrayBoundExpression() ◆ ParseAssignmentExpression() ◆ ParseCaseExpression() ◆ ParseConditionalExpression() ◆ ParseConstantExpression() ◆ ParseConstantExpressionInExprEvalContext() ◆ ParseConstraintExpression() ◆ ParseConstraintLogicalAndExpression() ExprResult Parser::ParseConstraintLogicalAndExpression ( bool IsTrailingRequiresClause )Parse a constraint-logical-and-expression.
/// C++2a[temp.constr.decl]p1 /// constraint-logical-and-expression: /// primary-expression /// constraint-logical-and-expression '&&' primary-expression /// ///
Definition at line 309 of file ParseExpr.cpp.
References clang::Sema::ActOnBinOp(), clang::Sema::CheckConstraintExpression(), ConsumeToken(), clang::Sema::CorrectDelayedTyposInExpr(), clang::FixItHint::CreateInsertion(), Diag(), E, clang::ExprError(), clang::ActionResult< PtrTy, Compress >::get(), clang::Stmt::getBeginLoc(), clang::getBinOpPrecedence(), getCurScope(), clang::Stmt::getEndLoc(), clang::Expr::getExprLoc(), clang::Token::getKind(), clang::Preprocessor::getLocForEndOfToken(), clang::Stmt::getSourceRange(), clang::prec::InclusiveOr, clang::Token::is(), clang::ActionResult< PtrTy, Compress >::isInvalid(), clang::Token::isOneOf(), clang::ActionResult< PtrTy, Compress >::isUsable(), clang::prec::LogicalAnd, NextToken(), clang::Note, NotTypeCast, and clang::Sema::Unevaluated.
Referenced by ParseConstraintLogicalOrExpression().
◆ ParseConstraintLogicalOrExpression() ExprResult Parser::ParseConstraintLogicalOrExpression ( bool IsTrailingRequiresClause )Parse a constraint-logical-or-expression.
/// C++2a[temp.constr.decl]p1 /// constraint-logical-or-expression: /// constraint-logical-and-expression /// constraint-logical-or-expression '||' /// constraint-logical-and-expression /// ///
Definition at line 401 of file ParseExpr.cpp.
References clang::Sema::ActOnBinOp(), ConsumeToken(), clang::Sema::CorrectDelayedTyposInExpr(), clang::ExprError(), clang::ActionResult< PtrTy, Compress >::get(), getCurScope(), clang::Token::is(), clang::ActionResult< PtrTy, Compress >::isUsable(), and ParseConstraintLogicalAndExpression().
◆ ParseExpression()Simple precedence-based parser for binary/ternary operators.
Note: we diverge from the C99 grammar when parsing the assignment-expression production. C99 specifies that the LHS of an assignment operator should be parsed as a unary-expression, but consistency dictates that it be a conditional-expession. In practice, the important thing here is that the LHS of an assignment has to be an l-value, which productions between unary-expression and conditional-expression don't produce. Because we want consistency, we parse the LHS as a conditional-expression, then check for l-value-ness in semantic analysis stages.
/// pm-expression: [C++ 5.5] /// cast-expression /// pm-expression '.*' cast-expression /// pm-expression '->*' cast-expression /// /// multiplicative-expression: [C99 6.5.5] /// Note: in C++, apply pm-expression instead of cast-expression /// cast-expression /// multiplicative-expression '*' cast-expression /// multiplicative-expression '/' cast-expression /// multiplicative-expression '%' cast-expression /// /// additive-expression: [C99 6.5.6] /// multiplicative-expression /// additive-expression '+' multiplicative-expression /// additive-expression '-' multiplicative-expression /// /// shift-expression: [C99 6.5.7] /// additive-expression /// shift-expression '<<' additive-expression /// shift-expression '>>' additive-expression /// /// compare-expression: [C++20 expr.spaceship] /// shift-expression /// compare-expression '<=>' shift-expression /// /// relational-expression: [C99 6.5.8] /// compare-expression /// relational-expression '<' compare-expression /// relational-expression '>' compare-expression /// relational-expression '<=' compare-expression /// relational-expression '>=' compare-expression /// /// equality-expression: [C99 6.5.9] /// relational-expression /// equality-expression '==' relational-expression /// equality-expression '!=' relational-expression /// /// AND-expression: [C99 6.5.10] /// equality-expression /// AND-expression '&' equality-expression /// /// exclusive-OR-expression: [C99 6.5.11] /// AND-expression /// exclusive-OR-expression '^' AND-expression /// /// inclusive-OR-expression: [C99 6.5.12] /// exclusive-OR-expression /// inclusive-OR-expression '|' exclusive-OR-expression /// /// logical-AND-expression: [C99 6.5.13] /// inclusive-OR-expression /// logical-AND-expression '&&' inclusive-OR-expression /// /// logical-OR-expression: [C99 6.5.14] /// logical-AND-expression /// logical-OR-expression '||' logical-AND-expression /// /// conditional-expression: [C99 6.5.15] /// logical-OR-expression /// logical-OR-expression '?' expression ':' conditional-expression /// [GNU] logical-OR-expression '?' ':' conditional-expression /// [C++] the third operand is an assignment-expression /// /// assignment-expression: [C99 6.5.16] /// conditional-expression /// unary-expression assignment-operator assignment-expression /// [C++] throw-expression [C++ 15] /// /// assignment-operator: one of /// = *= /= %= += -= <<= >>= &= ^= |= /// /// expression: [C99 6.5.17] /// assignment-expression ...[opt] /// expression ',' assignment-expression ...[opt] ///
Definition at line 134 of file ParseExpr.cpp.
References clang::prec::Comma, and ParseAssignmentExpression().
◆ ParseFirstTopLevelDecl() ◆ parseMapperModifier()Parses the mapper modifier in map, to, and from clauses.
Parse the mapper modifier in map, to, and from clauses.
Definition at line 4232 of file ParseOpenMP.cpp.
References ConsumeToken(), clang::CPlusPlus, clang::Data, clang::ASTContext::DeclarationNames, Diag(), clang::Sema::getASTContext(), clang::Token::getIdentifierInfo(), getLangOpts(), clang::Token::getLocation(), clang::Token::isNot(), SkipUntil(), StopBeforeMatch, and clang::T.
Referenced by parseMapTypeModifiers(), and ParseOpenMPVarList().
◆ parseMapTypeModifiers()Parses map-type-modifiers in map clause.
Parse map-type-modifiers in map clause.
map([ [map-type-modifier[,] [map-type-modifier[,] ...] map-type : ] list) where, map-type-modifier ::= always | close | mapper(mapper-identifier)
map([ [map-type-modifier[,] [map-type-modifier[,] ...] [map-type] : ] list) where, map-type-modifier ::= always | close | mapper(mapper-identifier) | present where, map-type ::= alloc | delete | from | release | to | tofrom
Definition at line 4267 of file ParseOpenMP.cpp.
References ConsumeToken(), clang::Data, Diag(), getCurToken(), clang::Token::getIdentifierInfo(), getLangOpts(), clang::Token::getLocation(), clang::IdentifierInfo::getName(), clang::Token::is(), isMapModifier(), isMapType(), clang::Token::isNot(), clang::Preprocessor::LookAhead(), clang::OMPC_MAP_unknown, and parseMapperModifier().
Referenced by ParseOpenMPVarList().
◆ ParseMSAsmIdentifier()Parse an identifier in an MS-style inline assembly block.
Definition at line 200 of file ParseStmtAsm.cpp.
References ConsumeAnyToken(), ConsumeToken(), clang::CPlusPlus, clang::Token::getIdentifierInfo(), getLangOpts(), clang::Token::getLocation(), Id, clang::Token::is(), clang::Token::isNot(), clang::Preprocessor::LookAhead(), clang::Sema::LookupInlineAsmIdentifier(), clang::Sema::LookupInlineAsmVarDeclField(), ParseUnqualifiedId(), clang::Result, clang::Token::setKind(), and clang::Token::startToken().
◆ ParseOpenACCDirectiveDecl() ◆ ParseOpenACCDirectiveStmt() ◆ ParseOpenMPParensExpr() ◆ ParseOpenMPReservedLocator() ◆ ParseOpenMPVarList()Parses clauses with list.
Definition at line 4619 of file ParseOpenMP.cpp.
References clang::Sema::ActOnFinishFullExpr(), clang::BalancedDelimiterTracker::consumeClose(), clang::BalancedDelimiterTracker::consumeOpen(), ConsumeToken(), clang::Sema::CorrectDelayedTyposInExpr(), clang::CPlusPlus, clang::Data, clang::Scope::DeclScope, Diag(), EnterScope(), ExitScope(), clang::ActionResult< PtrTy, Compress >::get(), getCurToken(), clang::Token::getIdentifierInfo(), getLangOpts(), clang::Token::getLocation(), clang::Sema::GetNameFromUnqualifiedId(), clang::getOpenMPSimpleClauseType(), clang::Preprocessor::getSpelling(), clang::Token::is(), clang::Token::isAnnotation(), clang::Token::isNot(), clang::isOpenMPDistributeDirective(), clang::isOpenMPTaskLoopDirective(), clang::IdentifierInfo::isStr(), clang::ActionResult< PtrTy, Compress >::isUsable(), Loc, clang::Preprocessor::LookAhead(), NextToken(), clang::OMPC_ADJUST_ARGS_unknown, clang::OMPC_DEPEND_unknown, clang::OMPC_DOACROSS_unknown, clang::OMPC_LASTPRIVATE_unknown, clang::OMPC_MAP_unknown, clang::OMPC_MOTION_MODIFIER_unknown, clang::OMPC_REDUCTION_unknown, clang::Scope::OpenMPDirectiveScope, ParseAssignmentExpression(), parseMapperModifier(), parseMapType(), parseMapTypeModifiers(), parseOpenMPAllocateClauseModifiers(), ParseOpenMPReservedLocator(), ParseReductionId(), clang::Preprocessor::parseSimpleIntegerLiteral(), parseStepSize(), SkipUntil(), StopBeforeMatch, and clang::T.
◆ ParseStringLiteralExpression() ExprResult clang::Parser::ParseStringLiteralExpression ( bool AllowUserDefinedLiteral =false
) ◆ ParseTopLevelDecl() [1/2] bool clang::Parser::ParseTopLevelDecl ( ) inline ◆ ParseTopLevelDecl() [2/2]
ParseTopLevelDecl - Parse one top-level declaration.
ParseTopLevelDecl - Parse one top-level declaration, return whatever the action tells us to.
Returns true if the EOF was encountered.
This returns true if the EOF was encountered.
top-level-declaration: declaration [C++20] module-import-declaration
Definition at line 628 of file Parser.cpp.
References clang::Sema::ActOnAnnotModuleBegin(), clang::Sema::ActOnAnnotModuleEnd(), clang::Sema::ActOnAnnotModuleInclude(), clang::Sema::ActOnEndOfTranslationUnit(), clang::Sema::ActOnModuleImport(), clang::Sema::ConvertDeclToDeclGroup(), clang::Preprocessor::Diag(), clang::Sema::FirstDecl, clang::Token::getAnnotationValue(), clang::Token::getIdentifierInfo(), clang::Token::getKind(), getKind(), getLangOpts(), clang::Token::getLocation(), clang::Preprocessor::getMaxTokens(), clang::Preprocessor::getMaxTokensOverrideLoc(), clang::Preprocessor::getTokenCount(), clang::Sema::ImportAllowed, clang::Sema::ImportFinished, clang::Module::isHeaderUnit(), clang::SourceLocation::isValid(), Loc, NextToken(), clang::Sema::NotACXX20Module, clang::Sema::PrivateFragmentImportAllowed, clang::Sema::PrivateFragmentImportFinished, clang::Result, and clang::Sema::SetLateTemplateParser().
◆ ParseTypeName() ◆ ParseUnevaluatedStringLiteralExpression() ExprResult clang::Parser::ParseUnevaluatedStringLiteralExpression ( ) ◆ ParseUnqualifiedId()Parse a C++ unqualified-id (or a C identifier), which describes the name of an entity.
unqualified-id: [
C++
expr.prim.general]
identifier
operator-function-id
conversion-function-id
[
C++0x] literal-
operator-
id[TODO]
~ class-name
template-id
const internal::VariadicDynCastAllOfMatcher< Stmt, Expr > expr
Matches expressions.
Definition at line 2987 of file ParseExprCXX.cpp.
References clang::Sema::ActOnTemplateName(), clang::CXXScopeSpec::clear(), ConsumeToken(), clang::CPlusPlus, clang::CPlusPlus17, clang::FixItHint::CreateInsertion(), clang::FixItHint::CreateRemoval(), Diag(), clang::Sema::getConstructorName(), getCurScope(), clang::Sema::getDestructorName(), clang::Sema::getDestructorTypeForDecltype(), clang::Token::getIdentifierInfo(), clang::Token::getKind(), getLangOpts(), clang::Token::getLocation(), clang::IdentifierInfo::getName(), Id, clang::IK_LiteralOperatorId, clang::IK_OperatorFunctionId, clang::Token::is(), clang::Sema::isCurrentClassName(), clang::Sema::isDeductionGuideName(), clang::CXXScopeSpec::isEmpty(), clang::TemplateIdAnnotation::isInvalid(), clang::Token::isNot(), clang::CXXScopeSpec::isNotEmpty(), clang::CXXScopeSpec::isSet(), clang::SourceLocation::isValid(), clang::TemplateIdAnnotation::LAngleLoc, clang::TemplateIdAnnotation::Name, NextToken(), clang::TemplateIdAnnotation::RAngleLoc, clang::Result, clang::Token::setKind(), clang::Sema::ShouldEnterDeclaratorScope(), clang::TemplateIdAnnotation::TemplateKWLoc, clang::TemplateIdAnnotation::TemplateNameLoc, clang::TNK_Dependent_template_name, clang::TNK_Function_template, clang::TNK_Non_template, and clang::TNK_Var_template.
Referenced by ParseMSAsmIdentifier().
◆ ReenterTemplateScopes() ◆ SkipMalformedDecl() void Parser::SkipMalformedDecl ( ) ◆ SkipUntil() [1/4]SkipUntil - Read tokens until we get to the specified token, then consume it (unless no flag StopBeforeMatch).
Because we cannot guarantee that the token will ever occur, this skips to the next token, or to some likely good stopping point. If StopAtSemi is true, skipping will stop at a ';' character.
If SkipUntil finds the specified token, it returns true, otherwise it returns false.
Definition at line 286 of file Parser.cpp.
References ConsumeAnyToken(), ConsumeToken(), clang::Token::getKind(), HasFlagsSet(), clang::Token::is(), clang::Token::isNot(), SkipUntil(), StopAtCodeCompletion, StopAtSemi, and StopBeforeMatch.
◆ SkipUntil() [2/4]SkipUntil - Read tokens until we get to the specified token, then consume it (unless StopBeforeMatch is specified).
Because we cannot guarantee that the token will ever occur, this skips to the next token, or to some likely good stopping point. If Flags has StopAtSemi flag, skipping will stop at a ';' character. Balances (), [], and {} delimiter tokens while skipping.
If SkipUntil finds the specified token, it returns true, otherwise it returns false.
Definition at line 1294 of file Parser.h.
References SkipUntil(), and clang::T.
Referenced by clang::BalancedDelimiterTracker::expectAndConsume(), clang::Parser::ConditionDeclarationOrInitStatementState::markNotExpression(), parseMapperModifier(), ParseOpenMPVarList(), SkipMalformedDecl(), clang::BalancedDelimiterTracker::skipToEnd(), and SkipUntil().
◆ SkipUntil() [3/4] ◆ SkipUntil() [4/4] ◆ TryAnnotateCXXScopeToken() bool Parser::TryAnnotateCXXScopeToken ( bool EnteringContext =false
) ◆ TryAnnotateOptionalCXXScopeToken() bool clang::Parser::TryAnnotateOptionalCXXScopeToken ( bool EnteringContext = false
) inline ◆ TryAnnotateTypeOrScopeToken()
TryAnnotateTypeOrScopeToken - If the current token position is on a typename (possibly qualified in C++) or a C++ scope specifier not followed by a typename, TryAnnotateTypeOrScopeToken will replace one or more tokens with a single annotation token representing the typename or C++ scope respectively.
This simplifies handling of C++ scope specifiers and allows efficient backtracking without the need to re-parse and resolve nested-names and typenames. It will mainly be called when we expect to treat identifiers as typenames (if they are typenames). For example, in C we do not expect identifiers inside expressions to be treated as typenames so it will not be called for expressions in C. The benefit for C/ObjC is that a typename will be annotated and Actions.getTypeName will not be needed to be called again (e.g. getTypeName will not be called twice, once to check whether we have a declaration specifier, and another one to get the actual type inside ParseDeclarationSpecifiers).
This returns true if an error occurred.
Note that this routine emits an error if you call it with ::new or ::delete as the current tokens, so only call it in contexts where these are invalid.
Definition at line 1995 of file Parser.cpp.
References clang::Sema::ActOnTypenameType(), clang::Preprocessor::AnnotateCachedTokens(), ConsumeToken(), clang::CPlusPlus, Diag(), clang::Preprocessor::EnterToken(), clang::Token::getAnnotationRange(), getCurScope(), clang::Token::getIdentifierInfo(), getLangOpts(), clang::Token::getLastLoc(), clang::Token::getLocation(), clang::CXXScopeSpec::getRange(), clang::TemplateIdAnnotation::getTemplateArgs(), clang::Token::is(), clang::Token::isAnnotation(), clang::Token::isEditorPlaceholder(), clang::CXXScopeSpec::isEmpty(), clang::TemplateIdAnnotation::isInvalid(), clang::TemplateIdAnnotation::LAngleLoc, clang::Preprocessor::Lex(), clang::TemplateIdAnnotation::mightBeType(), clang::TemplateIdAnnotation::Name, NextToken(), clang::TemplateIdAnnotation::NumArgs, clang::TemplateIdAnnotation::RAngleLoc, clang::Result, clang::Token::setAnnotationEndLoc(), clang::Token::setKind(), clang::Token::setLocation(), clang::TemplateIdAnnotation::Template, clang::TemplateIdAnnotation::TemplateKWLoc, clang::TemplateIdAnnotation::TemplateNameLoc, TryAnnotateTypeOrScopeToken(), TryAnnotateTypeOrScopeTokenAfterScopeSpec(), and clang::TypeError().
Referenced by TryAnnotateTypeOrScopeToken().
◆ TryAnnotateTypeOrScopeTokenAfterScopeSpec()Try to annotate a type or scope token, having already parsed an optional scope specifier.
IsNewScope
should be true
unless the scope specifier was extracted from an existing tok::annot_cxxscope annotation.
An Objective-C object type followed by '<' is a specialization of a parameterized class type or a protocol-qualified type.
Definition at line 2124 of file Parser.cpp.
References clang::Preprocessor::AnnotateCachedTokens(), ConsumeToken(), clang::CPlusPlus, Diag(), clang::OpaquePtr< PtrTy >::get(), clang::ActionResult< PtrTy, Compress >::get(), clang::CXXScopeSpec::getBeginLoc(), getCurScope(), clang::Token::getIdentifierInfo(), getLangOpts(), clang::Token::getLocation(), clang::Sema::getTypeName(), clang::Token::is(), clang::CXXScopeSpec::isEmpty(), clang::CXXScopeSpec::isNotEmpty(), clang::Type::isObjCObjectPointerType(), clang::Type::isObjCObjectType(), clang::Sema::isTemplateName(), clang::ActionResult< PtrTy, Compress >::isUsable(), clang::TemplateIdAnnotation::Kind, NextToken(), clang::ObjC, clang::Token::setAnnotationEndLoc(), clang::Token::setKind(), clang::Token::setLocation(), clang::TNK_Type_template, and clang::TNK_Undeclared_template.
Referenced by TryAnnotateTypeOrScopeToken().
◆ TryConsumeToken() [1/2] ◆ TryConsumeToken() [2/2] ◆ BalancedDelimiterTracker ◆ ColonProtectionRAIIObject ◆ InMessageExpressionRAIIObject ◆ ObjCDeclContextSwitch friend class ObjCDeclContextSwitch friendDefinition at line 65 of file Parser.h.
◆ OffsetOfStateRAIIObject ◆ operator| ◆ ParenBraceBracketBalancer ◆ ParsingOpenACCDirectiveRAII ◆ ParsingOpenMPDirectiveRAII ◆ PoisonSEHIdentifiersRAIIObject ◆ MisleadingIndentationElseLocThe location of the first statement inside an else that might have a missleading indentation.
If there is no MisleadingIndentationChecker on an else active, this location is invalid.
Definition at line 1318 of file Parser.h.
The documentation for this class was generated from the following files:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4