clang API Documentation

clang::Action Class Reference

#include <Action.h>

Inheritance diagram for clang::Action:
Inheritance graph
[legend]
Collaboration diagram for clang::Action:
Collaboration graph
[legend]

List of all members.

Classes

class  FullExprArg
struct  ObjCArgInfo
struct  OffsetOfComponent

Public Types

enum  TagUseKind { TUK_Reference, TUK_Declaration, TUK_Definition, TUK_Friend }
enum  ExpressionEvaluationContext { Unevaluated, PotentiallyEvaluated, PotentiallyPotentiallyEvaluated }
 

Describes how the expressions currently being parsed are evaluated at run-time, if at all.

More...
enum  ObjCMessageKind { ObjCSuperMessage, ObjCInstanceMessage, ObjCClassMessage }
 

Describes the kind of message expression indicated by a message send that starts with an identifier.

More...
enum  PragmaOptionsAlignKind {
  POAK_Native, POAK_Natural, POAK_Packed, POAK_Power,
  POAK_Mac68k, POAK_Reset
}
enum  PragmaPackKind { PPK_Default, PPK_Show, PPK_Push, PPK_Pop }
typedef OpaquePtr< DeclGroupRefDeclGroupPtrTy
typedef OpaquePtr< TemplateNameTemplateTy
typedef OpaquePtr< QualTypeTypeTy
typedef Attr AttrTy
typedef CXXBaseSpecifier BaseTy
typedef CXXBaseOrMemberInitializer MemInitTy
typedef Expr ExprTy
typedef Stmt StmtTy
typedef TemplateParameterList TemplateParamsTy
typedef NestedNameSpecifier CXXScopeTy
typedef clang::ExprResult ExprResult
typedef clang::StmtResult StmtResult
typedef clang::TypeResult TypeResult
typedef clang::BaseResult BaseResult
typedef clang::DeclResult DeclResult
typedef clang::MemInitResult MemInitResult
typedef ExprExprArg
 Single expressions or statements as arguments.
typedef StmtStmtArg
typedef ASTMultiPtr< Expr * > MultiExprArg
 Multiple expressions or statements as arguments.
typedef ASTMultiPtr< Stmt * > MultiStmtArg
typedef ASTMultiPtr
< TemplateParameterList * > 
MultiTemplateParamsArg
typedef uintptr_t ParsingDeclStackState

Public Member Functions

 Action ()
virtual ~Action ()
 Out-of-line virtual destructor to provide home for this class.
FullExprArg MakeFullExpr (Expr *Arg)
ExprResult ExprError ()
StmtResult StmtError ()
ExprResult ExprError (const DiagnosticBuilder &)
StmtResult StmtError (const DiagnosticBuilder &)
ExprResult ExprEmpty ()
StmtResult StmtEmpty ()
virtual void PrintStats () const
 Statistics.
virtual std::string getDeclName (Decl *D)
virtual ParsingDeclStackState PushParsingDeclaration ()
virtual void PopParsingDeclaration (ParsingDeclStackState S, Decl *D)
virtual DeclGroupPtrTy ConvertDeclToDeclGroup (Decl *Ptr)
virtual void DiagnoseUseOfUnimplementedSelectors ()
virtual ParsedType getTypeName (IdentifierInfo &II, SourceLocation NameLoc, Scope *S, CXXScopeSpec *SS=0, bool isClassName=false, ParsedType ObjectType=ParsedType())=0
virtual DeclSpec::TST isTagName (IdentifierInfo &II, Scope *S)
virtual bool DiagnoseUnknownTypeName (const IdentifierInfo &II, SourceLocation IILoc, Scope *S, CXXScopeSpec *SS, ParsedType &SuggestedType)
 Action called as part of error recovery when the parser has determined that the given name must refer to a type, but getTypeName() did not return a result.
virtual bool isCurrentClassName (const IdentifierInfo &II, Scope *S, const CXXScopeSpec *SS=0)=0
virtual TemplateNameKind isTemplateName (Scope *S, CXXScopeSpec &SS, bool hasTemplateKeyword, UnqualifiedId &Name, ParsedType ObjectType, bool EnteringContext, TemplateTy &Template, bool &MemberOfUnknownSpecialization)=0
 Determine whether the given name refers to a template.
virtual bool DiagnoseUnknownTemplateName (const IdentifierInfo &II, SourceLocation IILoc, Scope *S, const CXXScopeSpec *SS, TemplateTy &SuggestedTemplate, TemplateNameKind &SuggestedKind)
 Action called as part of error recovery when the parser has determined that the given name must refer to a template, but isTemplateName() did not return a result.
virtual bool isNonTypeNestedNameSpecifier (Scope *S, CXXScopeSpec &SS, SourceLocation IdLoc, IdentifierInfo &II, ParsedType ObjectType)
 Determine whether the given name refers to a non-type nested name specifier, e.g., the name of a namespace or namespace alias.
virtual CXXScopeTyActOnCXXGlobalScopeSpecifier (Scope *S, SourceLocation CCLoc)
virtual CXXScopeTyActOnCXXNestedNameSpecifier (Scope *S, CXXScopeSpec &SS, SourceLocation IdLoc, SourceLocation CCLoc, IdentifierInfo &II, ParsedType ObjectType, bool EnteringContext)
 Parsed an identifier followed by '::' in a C++ nested-name-specifier.
virtual bool IsInvalidUnlessNestedName (Scope *S, CXXScopeSpec &SS, IdentifierInfo &II, ParsedType ObjectType, bool EnteringContext)
virtual CXXScopeTyActOnCXXNestedNameSpecifier (Scope *S, const CXXScopeSpec &SS, ParsedType Type, SourceRange TypeRange, SourceLocation CCLoc)
virtual bool ShouldEnterDeclaratorScope (Scope *S, const CXXScopeSpec &SS)
virtual bool ActOnCXXEnterDeclaratorScope (Scope *S, CXXScopeSpec &SS)
virtual void ActOnCXXExitDeclaratorScope (Scope *S, const CXXScopeSpec &SS)
virtual void ActOnCXXEnterDeclInitializer (Scope *S, Decl *Dcl)
virtual void ActOnCXXExitDeclInitializer (Scope *S, Decl *Dcl)
virtual DeclActOnDeclarator (Scope *S, Declarator &D)
virtual DeclActOnParamDeclarator (Scope *S, Declarator &D)
virtual DeclActOnObjCExceptionDecl (Scope *S, Declarator &D)
 Parsed an exception object declaration within an Objective-C statement.
virtual void AddInitializerToDecl (Decl *Dcl, ExprArg Init)
virtual void SetDeclDeleted (Decl *Dcl, SourceLocation DelLoc)
virtual void ActOnUninitializedDecl (Decl *Dcl, bool TypeContainsUndeducedAuto)
virtual void ActOnInitializerError (Decl *Dcl)
 Note that the given declaration had an initializer that could not be parsed.
virtual DeclGroupPtrTy FinalizeDeclaratorGroup (Scope *S, const DeclSpec &DS, Decl **Group, unsigned NumDecls)
virtual void ActOnFinishKNRParamDeclarations (Scope *S, Declarator &D, SourceLocation LocAfterDecls)
 Indicates that all K&R-style parameter declarations have been parsed prior to a function definition.
virtual DeclActOnStartOfFunctionDef (Scope *FnBodyScope, Declarator &D)=0
virtual DeclActOnStartOfFunctionDef (Scope *FnBodyScope, Decl *D)=0
virtual void ActOnStartOfObjCMethodDef (Scope *FnBodyScope, Decl *D)
virtual DeclActOnFinishFunctionBody (Decl *Decl, StmtArg Body)
virtual DeclActOnFileScopeAsmDecl (SourceLocation Loc, ExprArg AsmString)
virtual void ActOnPopScope (SourceLocation Loc, Scope *S)
virtual void ActOnTranslationUnitScope (Scope *S)
virtual DeclParsedFreeStandingDeclSpec (Scope *S, AccessSpecifier Access, DeclSpec &DS)
virtual DeclActOnStartLinkageSpecification (Scope *S, SourceLocation ExternLoc, SourceLocation LangLoc, llvm::StringRef Lang, SourceLocation LBraceLoc)
virtual DeclActOnFinishLinkageSpecification (Scope *S, Decl *LinkageSpec, SourceLocation RBraceLoc)
virtual void ActOnEndOfTranslationUnit ()
virtual TypeResult ActOnTypeName (Scope *S, Declarator &D)
 ActOnTypeName - A type-name (type-id in C++) was parsed.
virtual DeclActOnTag (Scope *S, unsigned TagSpec, TagUseKind TUK, SourceLocation KWLoc, CXXScopeSpec &SS, IdentifierInfo *Name, SourceLocation NameLoc, AttributeList *Attr, AccessSpecifier AS, MultiTemplateParamsArg TemplateParameterLists, bool &OwnedDecl, bool &IsDependent)
 The parser has encountered a tag (e.g., "class X") that should be turned into a declaration by the action module.
virtual TypeResult ActOnDependentTag (Scope *S, unsigned TagSpec, TagUseKind TUK, const CXXScopeSpec &SS, IdentifierInfo *Name, SourceLocation KWLoc, SourceLocation NameLoc)
virtual void ActOnDefs (Scope *S, Decl *TagD, SourceLocation DeclStart, IdentifierInfo *ClassName, llvm::SmallVectorImpl< Decl * > &Decls)
virtual DeclActOnField (Scope *S, Decl *TagD, SourceLocation DeclStart, Declarator &D, ExprTy *BitfieldWidth)
virtual DeclActOnIvar (Scope *S, SourceLocation DeclStart, Decl *IntfDecl, Declarator &D, ExprTy *BitfieldWidth, tok::ObjCKeywordKind visibility)
virtual void ActOnLastBitfield (SourceLocation DeclStart, Decl *IntfDecl, llvm::SmallVectorImpl< Decl * > &AllIvarDecls)
virtual void ActOnFields (Scope *S, SourceLocation RecLoc, Decl *TagDecl, Decl **Fields, unsigned NumFields, SourceLocation LBrac, SourceLocation RBrac, AttributeList *AttrList)
virtual void ActOnTagStartDefinition (Scope *S, Decl *TagDecl)
virtual void ActOnStartCXXMemberDeclarations (Scope *S, Decl *TagDecl, SourceLocation LBraceLoc)
virtual void ActOnTagFinishDefinition (Scope *S, Decl *TagDecl, SourceLocation RBraceLoc)
virtual void ActOnTagDefinitionError (Scope *S, Decl *TagDecl)
virtual DeclActOnEnumConstant (Scope *S, Decl *EnumDecl, Decl *LastEnumConstant, SourceLocation IdLoc, IdentifierInfo *Id, SourceLocation EqualLoc, ExprTy *Val)
virtual void ActOnEnumBody (SourceLocation EnumLoc, SourceLocation LBraceLoc, SourceLocation RBraceLoc, Decl *EnumDecl, Decl **Elements, unsigned NumElements, Scope *S, AttributeList *AttrList)
virtual StmtResult ActOnNullStmt (SourceLocation SemiLoc)
virtual StmtResult ActOnCompoundStmt (SourceLocation L, SourceLocation R, MultiStmtArg Elts, bool isStmtExpr)
virtual StmtResult ActOnDeclStmt (DeclGroupPtrTy Decl, SourceLocation StartLoc, SourceLocation EndLoc)
virtual void ActOnForEachDeclStmt (DeclGroupPtrTy Decl)
virtual StmtResult ActOnExprStmt (FullExprArg Expr)=0
virtual StmtResult ActOnCaseStmt (SourceLocation CaseLoc, ExprArg LHSVal, SourceLocation DotDotDotLoc, ExprArg RHSVal, SourceLocation ColonLoc)
virtual void ActOnCaseStmtBody (StmtTy *CaseStmt, StmtArg SubStmt)
 ActOnCaseStmtBody - This installs a statement as the body of a case.
virtual StmtResult ActOnDefaultStmt (SourceLocation DefaultLoc, SourceLocation ColonLoc, StmtArg SubStmt, Scope *CurScope)
virtual StmtResult ActOnLabelStmt (SourceLocation IdentLoc, IdentifierInfo *II, SourceLocation ColonLoc, StmtArg SubStmt)
virtual StmtResult ActOnIfStmt (SourceLocation IfLoc, FullExprArg CondVal, Decl *CondVar, StmtArg ThenVal, SourceLocation ElseLoc, StmtArg ElseVal)
 Parsed an "if" statement.
virtual StmtResult ActOnStartOfSwitchStmt (SourceLocation SwitchLoc, ExprArg Cond, Decl *CondVar)
 Parsed the start of a "switch" statement.
virtual StmtResult ActOnFinishSwitchStmt (SourceLocation SwitchLoc, StmtArg Switch, StmtArg Body)
virtual StmtResult ActOnWhileStmt (SourceLocation WhileLoc, FullExprArg Cond, Decl *CondVar, StmtArg Body)
 Parsed a "while" statement.
virtual StmtResult ActOnDoStmt (SourceLocation DoLoc, StmtArg Body, SourceLocation WhileLoc, SourceLocation CondLParen, ExprArg Cond, SourceLocation CondRParen)
virtual StmtResult ActOnForStmt (SourceLocation ForLoc, SourceLocation LParenLoc, StmtArg First, FullExprArg Second, Decl *SecondVar, FullExprArg Third, SourceLocation RParenLoc, StmtArg Body)
 Parsed a "for" statement.
virtual StmtResult ActOnObjCForCollectionStmt (SourceLocation ForColLoc, SourceLocation LParenLoc, StmtArg First, ExprArg Second, SourceLocation RParenLoc, StmtArg Body)
virtual StmtResult ActOnGotoStmt (SourceLocation GotoLoc, SourceLocation LabelLoc, IdentifierInfo *LabelII)
virtual StmtResult ActOnIndirectGotoStmt (SourceLocation GotoLoc, SourceLocation StarLoc, ExprArg DestExp)
virtual StmtResult ActOnContinueStmt (SourceLocation ContinueLoc, Scope *CurScope)
virtual StmtResult ActOnBreakStmt (SourceLocation GotoLoc, Scope *CurScope)
virtual StmtResult ActOnReturnStmt (SourceLocation ReturnLoc, ExprArg RetValExp)
virtual StmtResult ActOnAsmStmt (SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg Constraints, MultiExprArg Exprs, ExprArg AsmString, MultiExprArg Clobbers, SourceLocation RParenLoc, bool MSAsm=false)
virtual StmtResult ActOnObjCAtCatchStmt (SourceLocation AtLoc, SourceLocation RParen, Decl *Parm, StmtArg Body)
 Parsed an Objective-C statement.
virtual StmtResult ActOnObjCAtFinallyStmt (SourceLocation AtLoc, StmtArg Body)
 Parsed an Objective-C statement.
virtual StmtResult ActOnObjCAtTryStmt (SourceLocation AtLoc, StmtArg Try, MultiStmtArg CatchStmts, StmtArg Finally)
 Parsed an Objective-C -- statement.
virtual StmtResult ActOnObjCAtThrowStmt (SourceLocation AtLoc, ExprArg Throw, Scope *CurScope)
virtual StmtResult ActOnObjCAtSynchronizedStmt (SourceLocation AtLoc, ExprArg SynchExpr, StmtArg SynchBody)
virtual DeclActOnExceptionDeclarator (Scope *S, Declarator &D)
virtual StmtResult ActOnCXXCatchBlock (SourceLocation CatchLoc, Decl *ExceptionDecl, StmtArg HandlerBlock)
virtual StmtResult ActOnCXXTryBlock (SourceLocation TryLoc, StmtArg TryBlock, MultiStmtArg Handlers)
virtual void PushExpressionEvaluationContext (ExpressionEvaluationContext NewContext)
 The parser is entering a new expression evaluation context.
virtual void PopExpressionEvaluationContext ()
 The parser is exiting an expression evaluation context.
virtual SourceRange getExprRange (ExprTy *E) const
 Retrieve the source range that corresponds to the given expression.
virtual ExprResult ActOnIdExpression (Scope *S, CXXScopeSpec &SS, UnqualifiedId &Name, bool HasTrailingLParen, bool IsAddressOfOperand)
 Parsed an id-expression (C++) or identifier (C) in expression context, e.g., the expression "x" that refers to a variable named "x".
virtual ExprResult ActOnPredefinedExpr (SourceLocation Loc, tok::TokenKind Kind)
virtual ExprResult ActOnCharacterConstant (const Token &)
virtual ExprResult ActOnNumericConstant (const Token &)
virtual ExprResult ActOnStringLiteral (const Token *Toks, unsigned NumToks)
virtual ExprResult ActOnParenExpr (SourceLocation L, SourceLocation R, ExprArg Val)
virtual ExprResult ActOnParenOrParenListExpr (SourceLocation L, SourceLocation R, MultiExprArg Val, ParsedType TypeOfCast=ParsedType())
virtual ExprResult ActOnPostfixUnaryOp (Scope *S, SourceLocation OpLoc, tok::TokenKind Kind, ExprArg Input)
virtual ExprResult ActOnArraySubscriptExpr (Scope *S, ExprArg Base, SourceLocation LLoc, ExprArg Idx, SourceLocation RLoc)
virtual ExprResult ActOnMemberAccessExpr (Scope *S, ExprArg Base, SourceLocation OpLoc, tok::TokenKind OpKind, CXXScopeSpec &SS, UnqualifiedId &Member, Decl *ObjCImpDecl, bool HasTrailingLParen)
 Parsed a member access expresion (C99 6.5.2.3, C++ [expr.ref]) of the form x.m or p->m.
virtual ExprResult ActOnCallExpr (Scope *S, ExprArg Fn, SourceLocation LParenLoc, MultiExprArg Args, SourceLocation *CommaLocs, SourceLocation RParenLoc)
virtual ExprResult ActOnUnaryOp (Scope *S, SourceLocation OpLoc, tok::TokenKind Op, ExprArg Input)
virtual ExprResult ActOnSizeOfAlignOfExpr (SourceLocation OpLoc, bool isSizeof, bool isType, void *TyOrEx, const SourceRange &ArgRange)
virtual ExprResult ActOnCompoundLiteral (SourceLocation LParen, ParsedType Ty, SourceLocation RParen, ExprArg Op)
virtual ExprResult ActOnInitList (SourceLocation LParenLoc, MultiExprArg InitList, SourceLocation RParenLoc)
virtual ExprResult ActOnDesignatedInitializer (Designation &Desig, SourceLocation Loc, bool GNUSyntax, ExprResult Init)
 Parsed a C99 designated initializer.
virtual ExprResult ActOnCastExpr (Scope *S, SourceLocation LParenLoc, ParsedType Ty, SourceLocation RParenLoc, ExprArg Op)
virtual bool TypeIsVectorType (ParsedType Ty)
virtual ExprResult ActOnBinOp (Scope *S, SourceLocation TokLoc, tok::TokenKind Kind, ExprArg LHS, ExprArg RHS)
virtual ExprResult ActOnConditionalOp (SourceLocation QuestionLoc, SourceLocation ColonLoc, ExprArg Cond, ExprArg LHS, ExprArg RHS)
virtual ExprResult ActOnAddrLabel (SourceLocation OpLoc, SourceLocation LabLoc, IdentifierInfo *LabelII)
virtual ExprResult ActOnStmtExpr (SourceLocation LPLoc, StmtArg SubStmt, SourceLocation RPLoc)
virtual ExprResult ActOnBuiltinOffsetOf (Scope *S, SourceLocation BuiltinLoc, SourceLocation TypeLoc, ParsedType Arg1, OffsetOfComponent *CompPtr, unsigned NumComponents, SourceLocation RParenLoc)
virtual ExprResult ActOnTypesCompatibleExpr (SourceLocation BuiltinLoc, ParsedType arg1, ParsedType arg2, SourceLocation RPLoc)
virtual ExprResult ActOnChooseExpr (SourceLocation BuiltinLoc, ExprArg cond, ExprArg expr1, ExprArg expr2, SourceLocation RPLoc)
virtual ExprResult ActOnVAArg (SourceLocation BuiltinLoc, ExprArg expr, ParsedType type, SourceLocation RPLoc)
virtual ExprResult ActOnGNUNullExpr (SourceLocation TokenLoc)
virtual void ActOnBlockStart (SourceLocation CaretLoc, Scope *CurScope)
virtual void ActOnBlockArguments (Declarator &ParamInfo, Scope *CurScope)
virtual void ActOnBlockError (SourceLocation CaretLoc, Scope *CurScope)
virtual ExprResult ActOnBlockStmtExpr (SourceLocation CaretLoc, StmtArg Body, Scope *CurScope)
virtual DeclActOnStartNamespaceDef (Scope *S, SourceLocation IdentLoc, IdentifierInfo *Ident, SourceLocation LBrace, AttributeList *AttrList)
virtual void ActOnFinishNamespaceDef (Decl *Dcl, SourceLocation RBrace)
virtual DeclActOnUsingDirective (Scope *CurScope, SourceLocation UsingLoc, SourceLocation NamespcLoc, CXXScopeSpec &SS, SourceLocation IdentLoc, IdentifierInfo *NamespcName, AttributeList *AttrList)=0
 ActOnUsingDirective - This is called when using-directive is parsed.
virtual DeclActOnNamespaceAliasDef (Scope *CurScope, SourceLocation NamespaceLoc, SourceLocation AliasLoc, IdentifierInfo *Alias, CXXScopeSpec &SS, SourceLocation IdentLoc, IdentifierInfo *Ident)
virtual DeclActOnUsingDeclaration (Scope *CurScope, AccessSpecifier AS, bool HasUsingKeyword, SourceLocation UsingLoc, CXXScopeSpec &SS, UnqualifiedId &Name, AttributeList *AttrList, bool IsTypeName, SourceLocation TypenameLoc)=0
 Parsed a C++ using-declaration.
virtual void ActOnParamDefaultArgument (Decl *param, SourceLocation EqualLoc, ExprArg defarg)
 ActOnParamDefaultArgument - Parse default argument for function parameter.
virtual void ActOnParamUnparsedDefaultArgument (Decl *param, SourceLocation EqualLoc, SourceLocation ArgLoc)
virtual void ActOnParamDefaultArgumentError (Decl *param)
virtual void AddCXXDirectInitializerToDecl (Decl *Dcl, SourceLocation LParenLoc, MultiExprArg Exprs, SourceLocation *CommaLocs, SourceLocation RParenLoc)
virtual void ActOnReenterTemplateScope (Scope *S, Decl *Template)
 Called when we re-enter a template parameter scope.
virtual void ActOnStartDelayedMemberDeclarations (Scope *S, Decl *Record)
virtual void ActOnStartDelayedCXXMethodDeclaration (Scope *S, Decl *Method)
virtual void ActOnDelayedCXXMethodParameter (Scope *S, Decl *Param)
virtual void ActOnFinishDelayedCXXMethodDeclaration (Scope *S, Decl *Method)
virtual void ActOnFinishDelayedMemberDeclarations (Scope *S, Decl *Record)
virtual DeclActOnStaticAssertDeclaration (SourceLocation AssertLoc, ExprArg AssertExpr, ExprArg AssertMessageExpr)
 ActOnStaticAssertDeclaration - Parse a C++0x static_assert declaration.
virtual DeclActOnFriendFunctionDecl (Scope *S, Declarator &D, bool IsDefinition, MultiTemplateParamsArg TParams)
virtual DeclActOnFriendTypeDecl (Scope *S, const DeclSpec &DS, MultiTemplateParamsArg TParams)
 ActOnFriendTypeDecl - Parsed a friend type declaration.
virtual ParsedType getDestructorName (SourceLocation TildeLoc, IdentifierInfo &II, SourceLocation NameLoc, Scope *S, CXXScopeSpec &SS, ParsedType ObjectType, bool EnteringContext)
 Parsed a destructor name or pseudo-destructor name.
virtual ExprResult ActOnCXXNamedCast (SourceLocation OpLoc, tok::TokenKind Kind, SourceLocation LAngleBracketLoc, ParsedType Ty, SourceLocation RAngleBracketLoc, SourceLocation LParenLoc, ExprArg Op, SourceLocation RParenLoc)
 ActOnCXXNamedCast - Parse {dynamic,static,reinterpret,const}_cast's.
virtual ExprResult ActOnCXXTypeid (SourceLocation OpLoc, SourceLocation LParenLoc, bool isType, void *TyOrExpr, SourceLocation RParenLoc)
 ActOnCXXTypeidOfType - Parse typeid( type-id ).
virtual ExprResult ActOnCXXThis (SourceLocation ThisLoc)
 ActOnCXXThis - Parse the C++ 'this' pointer.
virtual ExprResult ActOnCXXBoolLiteral (SourceLocation OpLoc, tok::TokenKind Kind)
 ActOnCXXBoolLiteral - Parse {true,false} literals.
virtual ExprResult ActOnCXXNullPtrLiteral (SourceLocation Loc)
 ActOnCXXNullPtrLiteral - Parse 'nullptr'.
virtual ExprResult ActOnCXXThrow (SourceLocation OpLoc, ExprArg Op)
 ActOnCXXThrow - Parse throw expressions.
virtual ExprResult ActOnCXXTypeConstructExpr (SourceRange TypeRange, ParsedType TypeRep, SourceLocation LParenLoc, MultiExprArg Exprs, SourceLocation *CommaLocs, SourceLocation RParenLoc)
virtual DeclResult ActOnCXXConditionDeclaration (Scope *S, Declarator &D)=0
 Parsed a condition declaration in a C++ if, switch, or while statement.
virtual ExprResult ActOnBooleanCondition (Scope *S, SourceLocation Loc, ExprArg SubExpr)
 Parsed an expression that will be handled as the condition in an if/while/for statement.
virtual ExprResult ActOnCXXNew (SourceLocation StartLoc, bool UseGlobal, SourceLocation PlacementLParen, MultiExprArg PlacementArgs, SourceLocation PlacementRParen, SourceRange TypeIdParens, Declarator &D, SourceLocation ConstructorLParen, MultiExprArg ConstructorArgs, SourceLocation ConstructorRParen)
 Parsed a C++ 'new' expression.
virtual ExprResult ActOnCXXDelete (SourceLocation StartLoc, bool UseGlobal, bool ArrayForm, ExprArg Operand)
virtual ExprResult ActOnUnaryTypeTrait (UnaryTypeTrait OTT, SourceLocation KWLoc, SourceLocation LParen, ParsedType Ty, SourceLocation RParen)
virtual ExprResult ActOnStartCXXMemberReference (Scope *S, ExprArg Base, SourceLocation OpLoc, tok::TokenKind OpKind, ParsedType &ObjectType, bool &MayBePseudoDestructor)
 Invoked when the parser is starting to parse a C++ member access expression such as x.f or x->f.
virtual ExprResult ActOnPseudoDestructorExpr (Scope *S, ExprArg Base, SourceLocation OpLoc, tok::TokenKind OpKind, CXXScopeSpec &SS, UnqualifiedId &FirstTypeName, SourceLocation CCLoc, SourceLocation TildeLoc, UnqualifiedId &SecondTypeName, bool HasTrailingLParen)
 Parsed a C++ pseudo-destructor expression or a dependent member access expression that has the same syntactic form as a pseudo-destructor expression.
virtual ExprResult ActOnFinishFullExpr (ExprArg Expr)
virtual BaseResult ActOnBaseSpecifier (Decl *classdecl, SourceRange SpecifierRange, bool Virtual, AccessSpecifier Access, ParsedType basetype, SourceLocation BaseLoc)
 ActOnBaseSpecifier - Parsed a base specifier.
virtual void ActOnBaseSpecifiers (Decl *ClassDecl, BaseTy **Bases, unsigned NumBases)
virtual DeclActOnAccessSpecifier (AccessSpecifier AS, SourceLocation ASLoc, SourceLocation ColonLoc)
virtual DeclActOnCXXMemberDeclarator (Scope *S, AccessSpecifier AS, Declarator &D, MultiTemplateParamsArg TemplateParameterLists, ExprTy *BitfieldWidth, ExprTy *Init, bool IsDefinition, bool Deleted=false)
virtual MemInitResult ActOnMemInitializer (Decl *ConstructorDecl, Scope *S, CXXScopeSpec &SS, IdentifierInfo *MemberOrBase, ParsedType TemplateTypeTy, SourceLocation IdLoc, SourceLocation LParenLoc, ExprTy **Args, unsigned NumArgs, SourceLocation *CommaLocs, SourceLocation RParenLoc)
virtual void ActOnMemInitializers (Decl *ConstructorDecl, SourceLocation ColonLoc, MemInitTy **MemInits, unsigned NumMemInits, bool AnyErrors)
virtual void ActOnDefaultCtorInitializers (Decl *CDtorDecl)
virtual void ActOnFinishCXXMemberSpecification (Scope *S, SourceLocation RLoc, Decl *TagDecl, SourceLocation LBrac, SourceLocation RBrac, AttributeList *AttrList)
virtual DeclActOnTypeParameter (Scope *S, bool Typename, bool Ellipsis, SourceLocation EllipsisLoc, SourceLocation KeyLoc, IdentifierInfo *ParamName, SourceLocation ParamNameLoc, unsigned Depth, unsigned Position, SourceLocation EqualLoc, ParsedType DefaultArg)
 Called when a C++ template type parameter(e.g., "typename T") has been parsed.
virtual DeclActOnNonTypeTemplateParameter (Scope *S, Declarator &D, unsigned Depth, unsigned Position, SourceLocation EqualLoc, ExprArg DefaultArg)
 Called when a C++ non-type template parameter has been parsed.
virtual void ActOnNonTypeTemplateParameterDefault (Decl *TemplateParam, SourceLocation EqualLoc, ExprArg Default)
 Adds a default argument to the given non-type template parameter.
virtual DeclActOnTemplateTemplateParameter (Scope *S, SourceLocation TmpLoc, TemplateParamsTy *Params, IdentifierInfo *ParamName, SourceLocation ParamNameLoc, unsigned Depth, unsigned Position, SourceLocation EqualLoc, const ParsedTemplateArgument &DefaultArg)
 Called when a C++ template template parameter has been parsed.
virtual TemplateParamsTyActOnTemplateParameterList (unsigned Depth, SourceLocation ExportLoc, SourceLocation TemplateLoc, SourceLocation LAngleLoc, Decl **Params, unsigned NumParams, SourceLocation RAngleLoc)
virtual TypeResult ActOnTemplateIdType (TemplateTy Template, SourceLocation TemplateLoc, SourceLocation LAngleLoc, ASTTemplateArgsPtr TemplateArgs, SourceLocation RAngleLoc)
 Form a type from a template and a list of template arguments.
virtual TypeResult ActOnTagTemplateIdType (TypeResult Type, TagUseKind TUK, DeclSpec::TST TagSpec, SourceLocation TagLoc)
 Note that a template ID was used with a tag.
virtual TemplateNameKind ActOnDependentTemplateName (Scope *S, SourceLocation TemplateKWLoc, CXXScopeSpec &SS, UnqualifiedId &Name, ParsedType ObjectType, bool EnteringContext, TemplateTy &Template)
 Form a dependent template name.
virtual DeclResult ActOnClassTemplateSpecialization (Scope *S, unsigned TagSpec, TagUseKind TUK, SourceLocation KWLoc, CXXScopeSpec &SS, TemplateTy Template, SourceLocation TemplateNameLoc, SourceLocation LAngleLoc, ASTTemplateArgsPtr TemplateArgs, SourceLocation RAngleLoc, AttributeList *Attr, MultiTemplateParamsArg TemplateParameterLists)=0
 Process the declaration or definition of an explicit class template specialization or a class template partial specialization.
virtual DeclActOnTemplateDeclarator (Scope *S, MultiTemplateParamsArg TemplateParameterLists, Declarator &D)
 Invoked when a declarator that has one or more template parameter lists has been parsed.
virtual DeclActOnStartOfFunctionTemplateDef (Scope *FnBodyScope, MultiTemplateParamsArg TemplateParameterLists, Declarator &D)
 Invoked when the parser is beginning to parse a function template or function template specialization definition.
virtual DeclResult ActOnExplicitInstantiation (Scope *S, SourceLocation ExternLoc, SourceLocation TemplateLoc, unsigned TagSpec, SourceLocation KWLoc, const CXXScopeSpec &SS, TemplateTy Template, SourceLocation TemplateNameLoc, SourceLocation LAngleLoc, ASTTemplateArgsPtr TemplateArgs, SourceLocation RAngleLoc, AttributeList *Attr)
 Process the explicit instantiation of a class template specialization.
virtual DeclResult ActOnExplicitInstantiation (Scope *S, SourceLocation ExternLoc, SourceLocation TemplateLoc, unsigned TagSpec, SourceLocation KWLoc, CXXScopeSpec &SS, IdentifierInfo *Name, SourceLocation NameLoc, AttributeList *Attr)
 Process the explicit instantiation of a member class of a class template specialization.
virtual DeclResult ActOnExplicitInstantiation (Scope *S, SourceLocation ExternLoc, SourceLocation TemplateLoc, Declarator &D)
 Process the explicit instantiation of a function template or a member of a class template.
virtual TypeResult ActOnTypenameType (Scope *S, SourceLocation TypenameLoc, const CXXScopeSpec &SS, const IdentifierInfo &II, SourceLocation IdLoc)
 Called when the parser has parsed a C++ typename specifier that ends in an identifier, e.g., "typename T::type".
virtual TypeResult ActOnTypenameType (Scope *S, SourceLocation TypenameLoc, const CXXScopeSpec &SS, SourceLocation TemplateLoc, ParsedType Ty)
 Called when the parser has parsed a C++ typename specifier that ends in a template-id, e.g., "typename MetaFun::template apply<T1, T2>".
virtual void ActOnStartSuppressingAccessChecks ()
 Called when the parser begins parsing a construct which should not have access control applied to it.
virtual void ActOnStopSuppressingAccessChecks ()
 Called when the parser finishes parsing a construct which should not have access control applied to it.
virtual DeclActOnStartClassInterface (SourceLocation AtInterfaceLoc, IdentifierInfo *ClassName, SourceLocation ClassLoc, IdentifierInfo *SuperName, SourceLocation SuperLoc, Decl *const *ProtoRefs, unsigned NumProtoRefs, const SourceLocation *ProtoLocs, SourceLocation EndProtoLoc, AttributeList *AttrList)
virtual DeclActOnCompatiblityAlias (SourceLocation AtCompatibilityAliasLoc, IdentifierInfo *AliasName, SourceLocation AliasLocation, IdentifierInfo *ClassName, SourceLocation ClassLocation)
virtual DeclActOnStartProtocolInterface (SourceLocation AtProtoLoc, IdentifierInfo *ProtocolName, SourceLocation ProtocolLoc, Decl *const *ProtoRefs, unsigned NumProtoRefs, const SourceLocation *ProtoLocs, SourceLocation EndProtoLoc, AttributeList *AttrList)
virtual DeclActOnStartCategoryInterface (SourceLocation AtInterfaceLoc, IdentifierInfo *ClassName, SourceLocation ClassLoc, IdentifierInfo *CategoryName, SourceLocation CategoryLoc, Decl *const *ProtoRefs, unsigned NumProtoRefs, const SourceLocation *ProtoLocs, SourceLocation EndProtoLoc)
virtual DeclActOnStartClassImplementation (SourceLocation AtClassImplLoc, IdentifierInfo *ClassName, SourceLocation ClassLoc, IdentifierInfo *SuperClassname, SourceLocation SuperClassLoc)
virtual DeclActOnStartCategoryImplementation (SourceLocation AtCatImplLoc, IdentifierInfo *ClassName, SourceLocation ClassLoc, IdentifierInfo *CatName, SourceLocation CatLoc)
virtual DeclActOnPropertyImplDecl (Scope *S, SourceLocation AtLoc, SourceLocation PropertyNameLoc, bool ImplKind, Decl *ClassImplDecl, IdentifierInfo *propertyId, IdentifierInfo *propertyIvar)
virtual DeclActOnMethodDeclaration (SourceLocation BeginLoc, SourceLocation EndLoc, tok::TokenKind MethodType, Decl *ClassDecl, ObjCDeclSpec &ReturnQT, ParsedType ReturnType, Selector Sel, ObjCArgInfo *ArgInfo, DeclaratorChunk::ParamInfo *CParamInfo, unsigned CNumArgs, AttributeList *MethodAttrList, tok::ObjCKeywordKind impKind, bool isVariadic=false)
virtual void ActOnAtEnd (Scope *S, SourceRange AtEnd, Decl *classDecl, Decl **allMethods=0, unsigned allNum=0, Decl **allProperties=0, unsigned pNum=0, DeclGroupPtrTy *allTUVars=0, unsigned tuvNum=0)
virtual DeclActOnProperty (Scope *S, SourceLocation AtLoc, FieldDeclarator &FD, ObjCDeclSpec &ODS, Selector GetterSel, Selector SetterSel, Decl *ClassCategory, bool *OverridingProperty, tok::ObjCKeywordKind MethodImplKind)
virtual ExprResult ActOnClassPropertyRefExpr (IdentifierInfo &receiverName, IdentifierInfo &propertyName, SourceLocation receiverNameLoc, SourceLocation propertyNameLoc)
virtual ObjCMessageKind getObjCMessageKind (Scope *S, IdentifierInfo *Name, SourceLocation NameLoc, bool IsSuper, bool HasTrailingDot, ParsedType &ReceiverType)=0
 Determine the kind of Objective-C message send that we will be performing based on the identifier given.
virtual ExprResult ActOnSuperMessage (Scope *S, SourceLocation SuperLoc, Selector Sel, SourceLocation LBracLoc, SourceLocation SelectorLoc, SourceLocation RBracLoc, MultiExprArg Args)=0
 Parsed a message send to 'super'.
virtual ExprResult ActOnClassMessage (Scope *S, ParsedType Receiver, Selector Sel, SourceLocation LBracLoc, SourceLocation SelectorLoc, SourceLocation RBracLoc, MultiExprArg Args)=0
 Parsed a message send to a class.
virtual ExprResult ActOnInstanceMessage (Scope *S, ExprArg Receiver, Selector Sel, SourceLocation LBracLoc, SourceLocation SelectorLoc, SourceLocation RBracLoc, MultiExprArg Args)=0
 Parsed a message send to an object instance.
virtual DeclActOnForwardClassDeclaration (SourceLocation AtClassLoc, IdentifierInfo **IdentList, SourceLocation *IdentLocs, unsigned NumElts)
virtual DeclActOnForwardProtocolDeclaration (SourceLocation AtProtocolLoc, const IdentifierLocPair *IdentList, unsigned NumElts, AttributeList *AttrList)
virtual void FindProtocolDeclaration (bool WarnOnDeclarations, const IdentifierLocPair *ProtocolId, unsigned NumProtocols, llvm::SmallVectorImpl< Decl * > &ResProtos)
virtual ExprResult ParseObjCStringLiteral (SourceLocation *AtLocs, ExprTy **Strings, unsigned NumStrings)
virtual ExprResult ParseObjCEncodeExpression (SourceLocation AtLoc, SourceLocation EncLoc, SourceLocation LParenLoc, ParsedType Ty, SourceLocation RParenLoc)
virtual ExprResult ParseObjCSelectorExpression (Selector Sel, SourceLocation AtLoc, SourceLocation SelLoc, SourceLocation LParenLoc, SourceLocation RParenLoc)
virtual ExprResult ParseObjCProtocolExpression (IdentifierInfo *ProtocolId, SourceLocation AtLoc, SourceLocation ProtoLoc, SourceLocation LParenLoc, SourceLocation RParenLoc)
virtual void ActOnPragmaOptionsAlign (PragmaOptionsAlignKind Kind, SourceLocation PragmaLoc, SourceLocation KindLoc)
virtual void ActOnPragmaPack (PragmaPackKind Kind, IdentifierInfo *Name, ExprTy *Alignment, SourceLocation PragmaLoc, SourceLocation LParenLoc, SourceLocation RParenLoc)
 ActOnPragmaPack - Called on well formed pragma pack(...).
virtual void ActOnPragmaUnused (const Token *Identifiers, unsigned NumIdentifiers, Scope *CurScope, SourceLocation PragmaLoc, SourceLocation LParenLoc, SourceLocation RParenLoc)
 ActOnPragmaUnused - Called on well formed pragma unused(...).
virtual void ActOnPragmaVisibility (bool IsPush, const IdentifierInfo *VisType, SourceLocation PragmaLoc)
 ActOnPragmaVisibility - Called on well formed pragma GCC visibility... .
virtual void ActOnPragmaWeakID (IdentifierInfo *WeakName, SourceLocation PragmaLoc, SourceLocation WeakNameLoc)
 ActOnPragmaWeakID - Called on well formed pragma weak ident.
virtual void ActOnPragmaWeakAlias (IdentifierInfo *WeakName, IdentifierInfo *AliasName, SourceLocation PragmaLoc, SourceLocation WeakNameLoc, SourceLocation AliasNameLoc)
 ActOnPragmaWeakAlias - Called on well formed pragma weak ident = ident.

Protected Member Functions

ScopegetCurScope () const
 Retrieve the parser's current scope.

Friends

class Parser

Code completion actions

These actions are used to signal that a code-completion token has been found at a point in the grammar where the Action implementation is likely to be able to provide a list of possible completions, e.g., after the "." or "->" of a member access expression.

Todo:

Code completion for designated field initializers

Code completion for call arguments after a function template-id

Code completion within a call expression, object construction, etc.

Code completion within a template argument list.

Code completion for attributes.



enum  ParserCompletionContext {
  PCC_Namespace, PCC_Class, PCC_ObjCInterface, PCC_ObjCImplementation,
  PCC_ObjCInstanceVariableList, PCC_Template, PCC_MemberTemplate, PCC_Expression,
  PCC_Statement, PCC_ForInit, PCC_Condition, PCC_RecoveryInFunction,
  PCC_Type
}
 

Describes the context in which code completion occurs.

More...
virtual void CodeCompleteOrdinaryName (Scope *S, ParserCompletionContext CompletionContext)
 Code completion for an ordinary name that occurs within the given scope.
virtual void CodeCompleteDeclarator (Scope *S, bool AllowNonIdentifiers, bool AllowNestedNameSpecifiers)
 Code completion for a declarator name.
virtual void CodeCompleteMemberReferenceExpr (Scope *S, ExprTy *Base, SourceLocation OpLoc, bool IsArrow)
 Code completion for a member access expression.
virtual void CodeCompleteTag (Scope *S, unsigned TagSpec)
 Code completion for a reference to a tag.
virtual void CodeCompleteCase (Scope *S)
 Code completion for a case statement.
virtual void CodeCompleteCall (Scope *S, Expr *Fn, Expr **Args, unsigned NumArgs)
 Code completion for a call.
virtual void CodeCompleteInitializer (Scope *S, Decl *D)
 Code completion for the initializer of a variable declaration.
virtual void CodeCompleteReturn (Scope *S)
 Code completion after the "return" keyword within a function.
virtual void CodeCompleteAssignmentRHS (Scope *S, ExprTy *LHS)
 Code completion for the right-hand side of an assignment or compound assignment operator.
virtual void CodeCompleteQualifiedId (Scope *S, CXXScopeSpec &SS, bool EnteringContext)
 Code completion for a C++ nested-name-specifier that precedes a qualified-id of some form.
virtual void CodeCompleteUsing (Scope *S)
 Code completion for a C++ "using" declaration or directive.
virtual void CodeCompleteUsingDirective (Scope *S)
 Code completion for a C++ using directive.
virtual void CodeCompleteNamespaceDecl (Scope *S)
 Code completion for a C++ namespace declaration or namespace alias declaration.
virtual void CodeCompleteNamespaceAliasDecl (Scope *S)
 Code completion for a C++ namespace alias declaration.
virtual void CodeCompleteOperatorName (Scope *S)
 Code completion for an operator name.
virtual void CodeCompleteObjCAtDirective (Scope *S, Decl *ObjCImpDecl, bool InInterface)
 Code completion after the '@' at the top level.
virtual void CodeCompleteObjCAtVisibility (Scope *S)
 Code completion after the '@' in the list of instance variables.
virtual void CodeCompleteObjCAtStatement (Scope *S)
 Code completion after the '@' in a statement.
virtual void CodeCompleteObjCAtExpression (Scope *S)
 Code completion after the '@' in an expression.
virtual void CodeCompleteObjCPropertyFlags (Scope *S, ObjCDeclSpec &ODS)
 Code completion for an ObjC property decl.
virtual void CodeCompleteObjCPropertyGetter (Scope *S, Decl *ClassDecl, Decl **Methods, unsigned NumMethods)
 Code completion for the getter of an Objective-C property declaration.
virtual void CodeCompleteObjCPropertySetter (Scope *S, Decl *ClassDecl, Decl **Methods, unsigned NumMethods)
 Code completion for the setter of an Objective-C property declaration.
virtual void CodeCompleteObjCPassingType (Scope *S, ObjCDeclSpec &DS)
 Code completion for an Objective-C method parameter or return type.
virtual void CodeCompleteObjCMessageReceiver (Scope *S)
 Code completion for the receiver in an Objective-C message send.
virtual void CodeCompleteObjCSuperMessage (Scope *S, SourceLocation SuperLoc, IdentifierInfo **SelIdents, unsigned NumSelIdents)
 Code completion for an ObjC message expression that sends a message to the superclass.
virtual void CodeCompleteObjCClassMessage (Scope *S, ParsedType Receiver, IdentifierInfo **SelIdents, unsigned NumSelIdents)
 Code completion for an ObjC message expression that refers to a class method.
virtual void CodeCompleteObjCInstanceMessage (Scope *S, ExprTy *Receiver, IdentifierInfo **SelIdents, unsigned NumSelIdents)
 Code completion for an ObjC message expression that refers to an instance method.
virtual void CodeCompleteObjCForCollection (Scope *S, DeclGroupPtrTy IterationVar)
 Code completion for the collection argument of an Objective-C for-each statement.
virtual void CodeCompleteObjCProtocolReferences (IdentifierLocPair *Protocols, unsigned NumProtocols)
 Code completion for a list of protocol references in Objective-C, such as P1 and P2 in id<P1,P2>.
virtual void CodeCompleteObjCProtocolDecl (Scope *S)
virtual void CodeCompleteObjCInterfaceDecl (Scope *S)
virtual void CodeCompleteObjCSuperclass (Scope *S, IdentifierInfo *ClassName, SourceLocation ClassNameLoc)
 Code completion for the superclass of an Objective-C interface, after the ':'.
virtual void CodeCompleteObjCImplementationDecl (Scope *S)
 Code completion for an Objective-C implementation, after the but before any identifier.
virtual void CodeCompleteObjCInterfaceCategory (Scope *S, IdentifierInfo *ClassName, SourceLocation ClassNameLoc)
 Code completion for the category name in an Objective-C interface declaration.
virtual void CodeCompleteObjCImplementationCategory (Scope *S, IdentifierInfo *ClassName, SourceLocation ClassNameLoc)
 Code completion for the category name in an Objective-C category implementation.
virtual void CodeCompleteObjCPropertyDefinition (Scope *S, Decl *ObjCImpDecl)
 Code completion for the property names when defining an Objective-C property.
virtual void CodeCompleteObjCPropertySynthesizeIvar (Scope *S, IdentifierInfo *PropertyName, Decl *ObjCImpDecl)
 Code completion for the instance variable name that should follow an '=' when synthesizing an Objective-C property.
virtual void CodeCompleteObjCMethodDecl (Scope *S, bool IsInstanceMethod, ParsedType ReturnType, Decl *IDecl)
 Code completion for an Objective-C method declaration or definition, which may occur within an interface, category, extension, protocol, or implementation thereof (where applicable).
virtual void CodeCompleteObjCMethodDeclSelector (Scope *S, bool IsInstanceMethod, bool AtParameterName, ParsedType ReturnType, IdentifierInfo **SelIdents, unsigned NumSelIdents)
 Code completion for a selector identifier or argument name within an Objective-C method declaration.
virtual void CodeCompletePreprocessorDirective (bool InConditional)
 Code completion for a preprocessor directive.
virtual void CodeCompleteInPreprocessorConditionalExclusion (Scope *S)
 Code completion while in an area of the translation unit that was excluded due to preprocessor conditionals.
virtual void CodeCompletePreprocessorMacroName (bool IsDefinition)
 Code completion in the preprocessor where an already-defined macro name is expected, e.g., an ifdef or undef.
virtual void CodeCompletePreprocessorExpression ()
 Callback invoked when performing code completion in a preprocessor expression, such as the condition of an if or elif directive.
virtual void CodeCompletePreprocessorMacroArgument (Scope *S, IdentifierInfo *Macro, MacroInfo *MacroInfo, unsigned Argument)
 Callback invoked when performing code completion inside a function-like macro argument.
virtual void CodeCompleteNaturalLanguage ()
 Callback invoked when performing code completion in a context where we expect a natural language, e.g., inside a comment or string.

Detailed Description

Action - As the parser reads the input file and recognizes the productions of the grammar, it invokes methods on this class to turn the parsed input into something useful: e.g. a parse tree.

The callback methods that this class provides are phrased as actions that the parser has just done or is about to do when the method is called. They are not requests that the actions module do the specified action.

All of the methods here are optional except getTypeName() and isCurrentClassName(), which must be specified in order for the parse to complete accurately.

Definition at line 59 of file Sema/Action.h.


Member Typedef Documentation

Definition at line 85 of file Sema/Action.h.

Definition at line 99 of file Sema/Action.h.

Definition at line 86 of file Sema/Action.h.

Definition at line 91 of file Sema/Action.h.

Definition at line 82 of file Sema/Action.h.

Definition at line 100 of file Sema/Action.h.

Single expressions or statements as arguments.

Definition at line 104 of file Sema/Action.h.

Expr/Stmt/Type/BaseResult - Provide a unique type to wrap ExprTy/StmtTy/TypeTy/BaseTy, providing strong typing and allowing for failure.

Definition at line 96 of file Sema/Action.h.

Definition at line 88 of file Sema/Action.h.

Definition at line 101 of file Sema/Action.h.

Definition at line 87 of file Sema/Action.h.

Multiple expressions or statements as arguments.

Definition at line 108 of file Sema/Action.h.

Definition at line 109 of file Sema/Action.h.

Definition at line 110 of file Sema/Action.h.

Definition at line 167 of file Sema/Action.h.

Definition at line 105 of file Sema/Action.h.

Definition at line 97 of file Sema/Action.h.

Definition at line 89 of file Sema/Action.h.

Definition at line 90 of file Sema/Action.h.

Definition at line 83 of file Sema/Action.h.

Definition at line 98 of file Sema/Action.h.

Definition at line 84 of file Sema/Action.h.


Member Enumeration Documentation

Describes how the expressions currently being parsed are evaluated at run-time, if at all.

Enumerator:
Unevaluated 

The current expression and its subexpressions occur within an unevaluated operand (C++0x [expr]p8), such as a constant expression or the subexpression of sizeof, where the type or the value of the expression may be significant but no code will be generated to evaluate the value of the expression at run time.

PotentiallyEvaluated 

The current expression is potentially evaluated at run time, which means that code may be generated to evaluate the value of the expression at run time.

PotentiallyPotentiallyEvaluated 

The current expression may be potentially evaluated or it may be unevaluated, but it is impossible to tell from the lexical context. This evaluation context is used primary for the operand of the C++ typeid expression, whose argument is potentially evaluated only when it is an lvalue of polymorphic class type (C++ [basic.def.odr]p2).

Definition at line 1036 of file Sema/Action.h.

Describes the kind of message expression indicated by a message send that starts with an identifier.

Enumerator:
ObjCSuperMessage 

The message is sent to 'super'.

ObjCInstanceMessage 

The message is an instance message.

ObjCClassMessage 

The message is a class message, and the identifier is a type name.

Definition at line 2523 of file Sema/Action.h.

Describes the context in which code completion occurs.

Enumerator:
PCC_Namespace 

Code completion occurs at top-level or namespace context.

PCC_Class 

Code completion occurs within a class, struct, or union.

PCC_ObjCInterface 

Code completion occurs within an Objective-C interface, protocol, or category.

PCC_ObjCImplementation 

Code completion occurs within an Objective-C implementation or category implementation.

PCC_ObjCInstanceVariableList 

Code completion occurs within the list of instance variables in an Objective-C interface, protocol, category, or implementation.

PCC_Template 

Code completion occurs following one or more template headers.

PCC_MemberTemplate 

Code completion occurs following one or more template headers within a class.

PCC_Expression 

Code completion occurs within an expression.

PCC_Statement 

Code completion occurs within a statement, which may also be an expression or a declaration.

PCC_ForInit 

Code completion occurs at the beginning of the initialization statement (or expression) in a for loop.

PCC_Condition 

Code completion occurs within the condition of an if, while, switch, or for statement.

PCC_RecoveryInFunction 

Code completion occurs within the body of a function on a recovery path, where we do not have a specific handle on our position in the grammar.

PCC_Type 

Code completion occurs where only a type is permitted.

Definition at line 2759 of file Sema/Action.h.

Enumerator:
POAK_Native 
POAK_Natural 
POAK_Packed 
POAK_Power 
POAK_Mac68k 
POAK_Reset 

Definition at line 2677 of file Sema/Action.h.

Enumerator:
PPK_Default 
PPK_Show 
PPK_Push 
PPK_Pop 

Definition at line 2694 of file Sema/Action.h.

Enumerator:
TUK_Reference 
TUK_Declaration 
TUK_Definition 
TUK_Friend 

Definition at line 626 of file Sema/Action.h.


Constructor & Destructor Documentation

clang::Action::Action (  )  [inline]

Definition at line 73 of file Sema/Action.h.

Action::~Action (  )  [virtual]

Out-of-line virtual destructor to provide home for this class.

Out-of-line virtual destructor to provide home for Action class.

Definition at line 38 of file Sema/Action.cpp.


Member Function Documentation

virtual Decl* clang::Action::ActOnAccessSpecifier ( AccessSpecifier  AS,
SourceLocation  ASLoc,
SourceLocation  ColonLoc 
) [inline, virtual]

ActOnAccessSpecifier - This is invoked when an access specifier (and the colon following it) is found during the parsing of a C++ class member declarator.

Reimplemented in clang::Sema.

Definition at line 1799 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnAddrLabel ( SourceLocation  OpLoc,
SourceLocation  LabLoc,
IdentifierInfo LabelII 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1261 of file Sema/Action.h.

References ExprEmpty().

virtual ExprResult clang::Action::ActOnArraySubscriptExpr ( Scope S,
ExprArg  Base,
SourceLocation  LLoc,
ExprArg  Idx,
SourceLocation  RLoc 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1138 of file Sema/Action.h.

References ExprEmpty().

virtual StmtResult clang::Action::ActOnAsmStmt ( SourceLocation  AsmLoc,
bool  IsSimple,
bool  IsVolatile,
unsigned  NumOutputs,
unsigned  NumInputs,
IdentifierInfo **  Names,
MultiExprArg  Constraints,
MultiExprArg  Exprs,
ExprArg  AsmString,
MultiExprArg  Clobbers,
SourceLocation  RParenLoc,
bool  MSAsm = false 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 941 of file Sema/Action.h.

References StmtEmpty().

virtual void clang::Action::ActOnAtEnd ( Scope S,
SourceRange  AtEnd,
Decl classDecl,
Decl **  allMethods = 0,
unsigned  allNum = 0,
Decl **  allProperties = 0,
unsigned  pNum = 0,
DeclGroupPtrTy allTUVars = 0,
unsigned  tuvNum = 0 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 2494 of file Sema/Action.h.

Referenced by clang::Parser::FinishPendingObjCActions().

virtual BaseResult clang::Action::ActOnBaseSpecifier ( Decl classdecl,
SourceRange  SpecifierRange,
bool  Virtual,
AccessSpecifier  Access,
ParsedType  basetype,
SourceLocation  BaseLoc 
) [inline, virtual]

ActOnBaseSpecifier - Parsed a base specifier.

Reimplemented in clang::Sema.

Definition at line 1784 of file Sema/Action.h.

virtual void clang::Action::ActOnBaseSpecifiers ( Decl ClassDecl,
BaseTy **  Bases,
unsigned  NumBases 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1792 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnBinOp ( Scope S,
SourceLocation  TokLoc,
tok::TokenKind  Kind,
ExprArg  LHS,
ExprArg  RHS 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1244 of file Sema/Action.h.

References ExprEmpty().

virtual void clang::Action::ActOnBlockArguments ( Declarator ParamInfo,
Scope CurScope 
) [inline, virtual]

ActOnBlockArguments - This callback allows processing of block arguments. If there are no arguments, this is still invoked.

Reimplemented in clang::Sema.

Definition at line 1327 of file Sema/Action.h.

virtual void clang::Action::ActOnBlockError ( SourceLocation  CaretLoc,
Scope CurScope 
) [inline, virtual]

ActOnBlockError - If there is an error parsing a block, this callback is invoked to pop the information about the block from the action impl.

Reimplemented in clang::Sema.

Definition at line 1331 of file Sema/Action.h.

virtual void clang::Action::ActOnBlockStart ( SourceLocation  CaretLoc,
Scope CurScope 
) [inline, virtual]

ActOnBlockStart - This callback is invoked when a block literal is started. The result pointer is passed into the block finalizers.

Reimplemented in clang::Sema.

Definition at line 1323 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnBlockStmtExpr ( SourceLocation  CaretLoc,
StmtArg  Body,
Scope CurScope 
) [inline, virtual]

ActOnBlockStmtExpr - This is called when the body of a block statement literal was successfully completed. ^(int x){...}

Reimplemented in clang::Sema.

Definition at line 1335 of file Sema/Action.h.

References ExprEmpty().

virtual ExprResult clang::Action::ActOnBooleanCondition ( Scope S,
SourceLocation  Loc,
ExprArg  SubExpr 
) [inline, virtual]

Parsed an expression that will be handled as the condition in an if/while/for statement.

This routine handles the conversion of the expression to 'bool'.

Parameters:
S The scope in which the expression occurs.
Loc The location of the construct that requires the conversion to a boolean value.
SubExpr The expression that is being converted to bool.

Reimplemented in clang::Sema.

Definition at line 1636 of file Sema/Action.h.

References clang::move().

virtual StmtResult clang::Action::ActOnBreakStmt ( SourceLocation  GotoLoc,
Scope CurScope 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 933 of file Sema/Action.h.

References StmtEmpty().

virtual ExprResult clang::Action::ActOnBuiltinOffsetOf ( Scope S,
SourceLocation  BuiltinLoc,
SourceLocation  TypeLoc,
ParsedType  Arg1,
OffsetOfComponent CompPtr,
unsigned  NumComponents,
SourceLocation  RParenLoc 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1282 of file Sema/Action.h.

References ExprEmpty().

virtual ExprResult clang::Action::ActOnCallExpr ( Scope S,
ExprArg  Fn,
SourceLocation  LParenLoc,
MultiExprArg  Args,
SourceLocation CommaLocs,
SourceLocation  RParenLoc 
) [inline, virtual]

ActOnCallExpr - Handle a call to Fn with the specified array of arguments. This provides the location of the left/right parens and a list of comma locations. There are guaranteed to be one fewer commas than arguments, unless there are zero arguments.

Reimplemented in clang::Sema.

Definition at line 1184 of file Sema/Action.h.

References ExprEmpty().

virtual StmtResult clang::Action::ActOnCaseStmt ( SourceLocation  CaseLoc,
ExprArg  LHSVal,
SourceLocation  DotDotDotLoc,
ExprArg  RHSVal,
SourceLocation  ColonLoc 
) [inline, virtual]

ActOnCaseStmt - Note that this handles the GNU 'case 1 ... 4' extension, which can specify an RHS value. The sub-statement of the case is specified in a separate action.

Reimplemented in clang::Sema.

Definition at line 795 of file Sema/Action.h.

References StmtEmpty().

virtual void clang::Action::ActOnCaseStmtBody ( StmtTy CaseStmt,
StmtArg  SubStmt 
) [inline, virtual]

ActOnCaseStmtBody - This installs a statement as the body of a case.

Reimplemented in clang::Sema.

Definition at line 803 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnCastExpr ( Scope S,
SourceLocation  LParenLoc,
ParsedType  Ty,
SourceLocation  RParenLoc,
ExprArg  Op 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1234 of file Sema/Action.h.

References ExprEmpty().

virtual ExprResult clang::Action::ActOnCharacterConstant ( const Token  )  [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1105 of file Sema/Action.h.

References ExprEmpty().

virtual ExprResult clang::Action::ActOnChooseExpr ( SourceLocation  BuiltinLoc,
ExprArg  cond,
ExprArg  expr1,
ExprArg  expr2,
SourceLocation  RPLoc 
) [inline, virtual]

Definition at line 1300 of file Sema/Action.h.

References ExprEmpty().

virtual ExprResult clang::Action::ActOnClassMessage ( Scope S,
ParsedType  Receiver,
Selector  Sel,
SourceLocation  LBracLoc,
SourceLocation  SelectorLoc,
SourceLocation  RBracLoc,
MultiExprArg  Args 
) [pure virtual]

Parsed a message send to a class.

Parameters:
S The scope in which the message send occurs.
Receiver The type of the class receiving the message.
Sel The selector to which the message is being sent.
LBracLoc The location of the opening square bracket ']'.
SelectorLoc The location of the first identifier in the selector.
RBrac The location of the closing square bracket ']'.
Args The message arguments.

Implemented in clang::Sema.

virtual ExprResult clang::Action::ActOnClassPropertyRefExpr ( IdentifierInfo receiverName,
IdentifierInfo propertyName,
SourceLocation  receiverNameLoc,
SourceLocation  propertyNameLoc 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 2514 of file Sema/Action.h.

References ExprEmpty().

virtual DeclResult clang::Action::ActOnClassTemplateSpecialization ( Scope S,
unsigned  TagSpec,
TagUseKind  TUK,
SourceLocation  KWLoc,
CXXScopeSpec SS,
TemplateTy  Template,
SourceLocation  TemplateNameLoc,
SourceLocation  LAngleLoc,
ASTTemplateArgsPtr  TemplateArgs,
SourceLocation  RAngleLoc,
AttributeList Attr,
MultiTemplateParamsArg  TemplateParameterLists 
) [pure virtual]

Process the declaration or definition of an explicit class template specialization or a class template partial specialization.

This routine is invoked when an explicit class template specialization or a class template partial specialization is declared or defined, to introduce the (partial) specialization and produce a declaration for it. In the following example, ActOnClassTemplateSpecialization will be invoked for the declarations at both A and B:

 template<typename T> class X;
 template<> class X<int> { }; // A: explicit specialization
 template<typename T> class X<T*> { }; // B: partial specialization

Note that it is the job of semantic analysis to determine which of the two cases actually occurred in the source code, since they are parsed through the same path. The formulation of the template parameter lists describes which case we are in.

Parameters:
S the current scope
TagSpec whether this declares a class, struct, or union (template)
TUK whether this is a declaration or a definition
KWLoc the location of the 'class', 'struct', or 'union' keyword.
SS the scope specifier preceding the template-id
Template the declaration of the class template that we are specializing.
Attr attributes on the specialization
TemplateParameterLists the set of template parameter lists that apply to this declaration. In a well-formed program, the number of template parameter lists will be one more than the number of template-ids in the scope specifier. However, it is common for users to provide the wrong number of template parameter lists (such as a missing template<> prior to a specialization); the parser does not check this condition.

Implemented in clang::Sema.

virtual Decl* clang::Action::ActOnCompatiblityAlias ( SourceLocation  AtCompatibilityAliasLoc,
IdentifierInfo AliasName,
SourceLocation  AliasLocation,
IdentifierInfo ClassName,
SourceLocation  ClassLocation 
) [inline, virtual]

ActOnCompatiblityAlias - this action is called after complete parsing of declaration. It sets up the alias relationships.

Reimplemented in clang::Sema.

Definition at line 2395 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnCompoundLiteral ( SourceLocation  LParen,
ParsedType  Ty,
SourceLocation  RParen,
ExprArg  Op 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1203 of file Sema/Action.h.

References ExprEmpty().

virtual StmtResult clang::Action::ActOnCompoundStmt ( SourceLocation  L,
SourceLocation  R,
MultiStmtArg  Elts,
bool  isStmtExpr 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 776 of file Sema/Action.h.

References StmtEmpty().

virtual ExprResult clang::Action::ActOnConditionalOp ( SourceLocation  QuestionLoc,
SourceLocation  ColonLoc,
ExprArg  Cond,
ExprArg  LHS,
ExprArg  RHS 
) [inline, virtual]

ActOnConditionalOp - Parse a ?: operation. Note that 'LHS' may be null in the case of a the GNU conditional expr extension.

Reimplemented in clang::Sema.

Definition at line 1252 of file Sema/Action.h.

References ExprEmpty().

virtual StmtResult clang::Action::ActOnContinueStmt ( SourceLocation  ContinueLoc,
Scope CurScope 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 929 of file Sema/Action.h.

References StmtEmpty().

virtual ExprResult clang::Action::ActOnCXXBoolLiteral ( SourceLocation  OpLoc,
tok::TokenKind  Kind 
) [inline, virtual]

ActOnCXXBoolLiteral - Parse {true,false} literals.

Reimplemented in clang::Sema.

Definition at line 1581 of file Sema/Action.h.

References ExprEmpty().

virtual StmtResult clang::Action::ActOnCXXCatchBlock ( SourceLocation  CatchLoc,
Decl ExceptionDecl,
StmtArg  HandlerBlock 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1018 of file Sema/Action.h.

References StmtEmpty().

virtual DeclResult clang::Action::ActOnCXXConditionDeclaration ( Scope S,
Declarator D 
) [pure virtual]

Parsed a condition declaration in a C++ if, switch, or while statement.

This callback will be invoked after parsing the declaration of "x" in

 if (int x = f()) {
   // ...
 }
Parameters:
S the scope of the if, switch, or while statement.
D the declarator that that describes the variable being declared.

Implemented in clang::Sema.

virtual ExprResult clang::Action::ActOnCXXDelete ( SourceLocation  StartLoc,
bool  UseGlobal,
bool  ArrayForm,
ExprArg  Operand 
) [inline, virtual]

ActOnCXXDelete - Parsed a C++ 'delete' expression. UseGlobal is true if the delete was qualified (delete). ArrayForm is true if the array form was used (delete[]).

Reimplemented in clang::Sema.

Definition at line 1683 of file Sema/Action.h.

References ExprEmpty().

virtual bool clang::Action::ActOnCXXEnterDeclaratorScope ( Scope S,
CXXScopeSpec SS 
) [inline, virtual]

ActOnCXXEnterDeclaratorScope - Called when a C++ scope specifier (global scope or nested-name-specifier) is parsed as part of a declarator-id. After this method is called, according to [C++ 3.4.3p3], names should be looked up in the declarator-id's scope, until the declarator is parsed and ActOnCXXExitDeclaratorScope is called. The 'SS' should be a non-empty valid CXXScopeSpec.

Returns:
true if an error occurred, false otherwise.

Reimplemented in clang::Sema.

Definition at line 448 of file Sema/Action.h.

virtual void clang::Action::ActOnCXXEnterDeclInitializer ( Scope S,
Decl Dcl 
) [inline, virtual]

ActOnCXXEnterDeclInitializer - Invoked when we are about to parse an initializer for the declaration 'Dcl'. After this method is called, according to [C++ 3.4.1p13], if 'Dcl' is a static data member of class X, names should be looked up in the scope of class X.

Reimplemented in clang::Sema.

Definition at line 465 of file Sema/Action.h.

virtual void clang::Action::ActOnCXXExitDeclaratorScope ( Scope S,
const CXXScopeSpec SS 
) [inline, virtual]

ActOnCXXExitDeclaratorScope - Called when a declarator that previously invoked ActOnCXXEnterDeclaratorScope(), is finished. 'SS' is the same CXXScopeSpec that was passed to ActOnCXXEnterDeclaratorScope as well. Used to indicate that names should revert to being looked up in the defining scope.

Reimplemented in clang::Sema.

Definition at line 457 of file Sema/Action.h.

virtual void clang::Action::ActOnCXXExitDeclInitializer ( Scope S,
Decl Dcl 
) [inline, virtual]

ActOnCXXExitDeclInitializer - Invoked after we are finished parsing an initializer for the declaration 'Dcl'.

Reimplemented in clang::Sema.

Definition at line 470 of file Sema/Action.h.

virtual CXXScopeTy* clang::Action::ActOnCXXGlobalScopeSpecifier ( Scope S,
SourceLocation  CCLoc 
) [inline, virtual]

ActOnCXXGlobalScopeSpecifier - Return the object that represents the global scope ('::').

Reimplemented in clang::Sema.

Definition at line 358 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnCXXMemberDeclarator ( Scope S,
AccessSpecifier  AS,
Declarator D,
MultiTemplateParamsArg  TemplateParameterLists,
ExprTy BitfieldWidth,
ExprTy Init,
bool  IsDefinition,
bool  Deleted = false 
) [inline, virtual]

ActOnCXXMemberDeclarator - This is invoked when a C++ class member declarator is parsed. 'AS' is the access specifier, 'BitfieldWidth' specifies the bitfield width if there is one and 'Init' specifies the initializer if any. 'Deleted' is true if there's a =delete specifier on the function.

Reimplemented in clang::Sema.

Definition at line 1810 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnCXXNamedCast ( SourceLocation  OpLoc,
tok::TokenKind  Kind,
SourceLocation  LAngleBracketLoc,
ParsedType  Ty,
SourceLocation  RAngleBracketLoc,
SourceLocation  LParenLoc,
ExprArg  Op,
SourceLocation  RParenLoc 
) [inline, virtual]

ActOnCXXNamedCast - Parse {dynamic,static,reinterpret,const}_cast's.

Reimplemented in clang::Sema.

Definition at line 1556 of file Sema/Action.h.

References ExprEmpty().

virtual CXXScopeTy* clang::Action::ActOnCXXNestedNameSpecifier ( Scope S,
const CXXScopeSpec SS,
ParsedType  Type,
SourceRange  TypeRange,
SourceLocation  CCLoc 
) [inline, virtual]

ActOnCXXNestedNameSpecifier - Called during parsing of a nested-name-specifier that involves a template-id, e.g., "foo::bar<int, float>::", and now we need to build a scope specifier. SS is empty or the previously parsed nested-name part ("foo::"), Type is the already-parsed class template specialization (or other template-id that names a type), TypeRange is the source range where the type is located, and CCLoc is the location of the trailing '::'.

Reimplemented in clang::Sema.

Definition at line 422 of file Sema/Action.h.

virtual CXXScopeTy* clang::Action::ActOnCXXNestedNameSpecifier ( Scope S,
CXXScopeSpec SS,
SourceLocation  IdLoc,
SourceLocation  CCLoc,
IdentifierInfo II,
ParsedType  ObjectType,
bool  EnteringContext 
) [inline, virtual]

Parsed an identifier followed by '::' in a C++ nested-name-specifier.

Parameters:
S the scope in which the nested-name-specifier was parsed.
SS the nested-name-specifier that precedes the identifier. For example, if we are parsing "foo::bar::", SS will describe the "foo::" that has already been parsed.
IdLoc the location of the identifier we have just parsed (e.g., the "bar" in "foo::bar::".
CCLoc the location of the '::' at the end of the nested-name-specifier.
II the identifier that represents the scope that this nested-name-specifier refers to, e.g., the "bar" in "foo::bar::".
ObjectType if this nested-name-specifier occurs as part of a C++ member access expression such as "x->Base::f", the type of the base object (e.g., *x in the example, if "x" were a pointer).
EnteringContext if true, then we intend to immediately enter the context of this nested-name-specifier, e.g., for an out-of-line definition of a class member.
Returns:
a CXXScopeTy* object representing the C++ scope.

Reimplemented in clang::Sema.

Definition at line 390 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnCXXNew ( SourceLocation  StartLoc,
bool  UseGlobal,
SourceLocation  PlacementLParen,
MultiExprArg  PlacementArgs,
SourceLocation  PlacementRParen,
SourceRange  TypeIdParens,
Declarator D,
SourceLocation  ConstructorLParen,
MultiExprArg  ConstructorArgs,
SourceLocation  ConstructorRParen 
) [inline, virtual]

Parsed a C++ 'new' expression.

Parameters:
StartLoc The start of the new expression, which is either the "new" keyword or the "::" preceding it, depending on UseGlobal.
UseGlobal True if the "new" was qualified with "::".
PlacementLParen The location of the opening parenthesis ('(') for the placement arguments, if any.
PlacementArgs The placement arguments, if any.
PlacementRParen The location of the closing parenthesis (')') for the placement arguments, if any.
TypeIdParens If the type was expressed as a type-id in parentheses, the source range covering the parenthesized type-id.
D The parsed declarator, which may include an array size (for array new) as the first declarator.
ConstructorLParen The location of the opening parenthesis ('(') for the constructor arguments, if any.
ConstructorArgs The constructor arguments, if any.
ConstructorRParen The location of the closing parenthesis (')') for the constructor arguments, if any.

Reimplemented in clang::Sema.

Definition at line 1669 of file Sema/Action.h.

References ExprEmpty().

virtual ExprResult clang::Action::ActOnCXXNullPtrLiteral ( SourceLocation  Loc  )  [inline, virtual]

ActOnCXXNullPtrLiteral - Parse 'nullptr'.

Reimplemented in clang::Sema.

Definition at line 1587 of file Sema/Action.h.

References ExprEmpty().

virtual ExprResult clang::Action::ActOnCXXThis ( SourceLocation  ThisLoc  )  [inline, virtual]

ActOnCXXThis - Parse the C++ 'this' pointer.

Reimplemented in clang::Sema.

Definition at line 1576 of file Sema/Action.h.

References ExprEmpty().

virtual ExprResult clang::Action::ActOnCXXThrow ( SourceLocation  OpLoc,
ExprArg  Op 
) [inline, virtual]

ActOnCXXThrow - Parse throw expressions.

Reimplemented in clang::Sema.

Definition at line 1592 of file Sema/Action.h.

References ExprEmpty().

virtual StmtResult clang::Action::ActOnCXXTryBlock ( SourceLocation  TryLoc,
StmtArg  TryBlock,
MultiStmtArg  Handlers 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1024 of file Sema/Action.h.

References StmtEmpty().

virtual ExprResult clang::Action::ActOnCXXTypeConstructExpr ( SourceRange  TypeRange,
ParsedType  TypeRep,
SourceLocation  LParenLoc,
MultiExprArg  Exprs,
SourceLocation CommaLocs,
SourceLocation  RParenLoc 
) [inline, virtual]

ActOnCXXTypeConstructExpr - Parse construction of a specified type. Can be interpreted either as function-style casting ("int(x)") or class type construction ("ClassType(x,y,z)") or creation of a value-initialized type ("int()").

Reimplemented in clang::Sema.

Definition at line 1600 of file Sema/Action.h.

References ExprEmpty().

virtual ExprResult clang::Action::ActOnCXXTypeid ( SourceLocation  OpLoc,
SourceLocation  LParenLoc,
bool  isType,
void *  TyOrExpr,
SourceLocation  RParenLoc 
) [inline, virtual]

ActOnCXXTypeidOfType - Parse typeid( type-id ).

Reimplemented in clang::Sema.

Definition at line 1568 of file Sema/Action.h.

References ExprEmpty().

virtual Decl* clang::Action::ActOnDeclarator ( Scope S,
Declarator D 
) [inline, virtual]

ActOnDeclarator - This callback is invoked when a declarator is parsed and 'Init' specifies the initializer if any. This is for things like: "int X = 4" or "typedef int foo".

Reimplemented in clang::Sema.

Definition at line 477 of file Sema/Action.h.

virtual StmtResult clang::Action::ActOnDeclStmt ( DeclGroupPtrTy  Decl,
SourceLocation  StartLoc,
SourceLocation  EndLoc 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 781 of file Sema/Action.h.

References StmtEmpty().

virtual void clang::Action::ActOnDefaultCtorInitializers ( Decl CDtorDecl  )  [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1847 of file Sema/Action.h.

virtual StmtResult clang::Action::ActOnDefaultStmt ( SourceLocation  DefaultLoc,
SourceLocation  ColonLoc,
StmtArg  SubStmt,
Scope CurScope 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 805 of file Sema/Action.h.

References StmtEmpty().

virtual void clang::Action::ActOnDefs ( Scope S,
Decl TagD,
SourceLocation  DeclStart,
IdentifierInfo ClassName,
llvm::SmallVectorImpl< Decl * > &  Decls 
) [inline, virtual]

Act on () element found when parsing a structure. ClassName is the name of the referenced class.

Reimplemented in clang::Sema.

Definition at line 709 of file Sema/Action.h.

virtual void clang::Action::ActOnDelayedCXXMethodParameter ( Scope S,
Decl Param 
) [inline, virtual]

ActOnDelayedCXXMethodParameter - We've already started a delayed C++ method declaration. We're (re-)introducing the given function parameter into scope for use in parsing later parts of the method declaration. For example, we could see an ActOnParamDefaultArgument event for this parameter.

Reimplemented in clang::Sema.

Definition at line 1497 of file Sema/Action.h.

virtual TypeResult clang::Action::ActOnDependentTag ( Scope S,
unsigned  TagSpec,
TagUseKind  TUK,
const CXXScopeSpec SS,
IdentifierInfo Name,
SourceLocation  KWLoc,
SourceLocation  NameLoc 
) [inline, virtual]

Acts on a reference to a dependent tag name. This arises in cases like:

template <class t>=""> class A; template <class t>=""> class B { friend class A<T>::M; // here };

Parameters:
TagSpec an instance of DeclSpec::TST corresponding to the tag specifier.
TUK the tag use kind (either TUK_Friend or TUK_Reference)
SS the scope specifier (always defined)

Reimplemented in clang::Sema.

Definition at line 697 of file Sema/Action.h.

virtual TemplateNameKind clang::Action::ActOnDependentTemplateName ( Scope S,
SourceLocation  TemplateKWLoc,
CXXScopeSpec SS,
UnqualifiedId Name,
ParsedType  ObjectType,
bool  EnteringContext,
TemplateTy Template 
) [inline, virtual]

Form a dependent template name.

This action forms a dependent template name given the template name and its (presumably dependent) scope specifier. For example, given "MetaFun::template apply", the scope specifier SS will be "MetaFun::", TemplateKWLoc contains the location of the "template" keyword, and "apply" is the Name.

Parameters:
S The scope in which the dependent template name was parsed.
TemplateKWLoc the location of the "template" keyword (if any).
SS the nested-name-specifier that precedes the "template" keyword or the template name. If the dependent template name occurs in a member access expression, e.g., "x.template f<T>", this nested-name-specifier will be empty.
Name the name of the template.
ObjectType if this dependent template name occurs in the context of a member access expression, the type of the object being accessed.
EnteringContext whether we are entering the context of this template.
Template Will be set to the dependent template name, on success.
Returns:
The kind of template name that was produced. Generally, this will be TNK_Dependent_template_name. However, if the nested-name-specifier is not dependent, or refers to the current instantiation, then we may be able to resolve the template kind more specifically.

Reimplemented in clang::Sema.

Definition at line 2102 of file Sema/Action.h.

References clang::TNK_Non_template.

virtual ExprResult clang::Action::ActOnDesignatedInitializer ( Designation Desig,
SourceLocation  Loc,
bool  GNUSyntax,
ExprResult  Init 
) [inline, virtual]

Parsed a C99 designated initializer.

Parameters:
Desig Contains the designation with one or more designators.
Loc The location of the '=' or ':' prior to the initialization expression.
GNUSyntax If true, then this designated initializer used the deprecated GNU syntax fieldname:foo or [expr]foo rather than the C99 syntax .fieldname=foo or [expr]=foo.
Init The value that the entity (or entities) described by the designation will be initialized with.

Reimplemented in clang::Sema.

Definition at line 1227 of file Sema/Action.h.

References ExprEmpty().

virtual StmtResult clang::Action::ActOnDoStmt ( SourceLocation  DoLoc,
StmtArg  Body,
SourceLocation  WhileLoc,
SourceLocation  CondLParen,
ExprArg  Cond,
SourceLocation  CondRParen 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 876 of file Sema/Action.h.

References StmtEmpty().

virtual void clang::Action::ActOnEndOfTranslationUnit (  )  [inline, virtual]

ActOnEndOfTranslationUnit - This is called at the very end of the translation unit when EOF is reached and all but the top-level scope is popped.

Reimplemented in clang::Sema.

Definition at line 615 of file Sema/Action.h.

Referenced by clang::Parser::ParseTopLevelDecl().

virtual void clang::Action::ActOnEnumBody ( SourceLocation  EnumLoc,
SourceLocation  LBraceLoc,
SourceLocation  RBraceLoc,
Decl EnumDecl,
Decl **  Elements,
unsigned  NumElements,
Scope S,
AttributeList AttrList 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 763 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnEnumConstant ( Scope S,
Decl EnumDecl,
Decl LastEnumConstant,
SourceLocation  IdLoc,
IdentifierInfo Id,
SourceLocation  EqualLoc,
ExprTy Val 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 757 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnExceptionDeclarator ( Scope S,
Declarator D 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1014 of file Sema/Action.h.

virtual DeclResult clang::Action::ActOnExplicitInstantiation ( Scope S,
SourceLocation  ExternLoc,
SourceLocation  TemplateLoc,
Declarator D 
) [inline, virtual]

Process the explicit instantiation of a function template or a member of a class template.

This routine is invoked when an explicit instantiation of a function template or member function of a class template specialization is encountered. In the following example, ActOnExplicitInstantiation will be invoked to force the instantiation of X<int>:

 template<typename T> void f(T);
 template void f(int); // explicit instantiation
Parameters:
S the current scope
ExternLoc the location of the 'extern' keyword that specifies that this is an extern template (if any).
TemplateLoc the location of the 'template' keyword that specifies that this is an explicit instantiation.
D the declarator describing the declaration to be implicitly instantiated.

Reimplemented in clang::Sema.

Definition at line 2328 of file Sema/Action.h.

virtual DeclResult clang::Action::ActOnExplicitInstantiation ( Scope S,
SourceLocation  ExternLoc,
SourceLocation  TemplateLoc,
unsigned  TagSpec,
SourceLocation  KWLoc,
CXXScopeSpec SS,
IdentifierInfo Name,
SourceLocation  NameLoc,
AttributeList Attr 
) [inline, virtual]

Process the explicit instantiation of a member class of a class template specialization.

This routine is invoked when an explicit instantiation of a member class of a class template specialization is encountered. In the following example, ActOnExplicitInstantiation will be invoked to force the instantiation of X<int>::Inner:

 template<typename T> class X { class Inner { /* ... */}; };
 template class X<int>::Inner; // explicit instantiation
Parameters:
S the current scope
ExternLoc the location of the 'extern' keyword that specifies that this is an extern template (if any).
TemplateLoc the location of the 'template' keyword that specifies that this is an explicit instantiation.
TagSpec whether this declares a class, struct, or union (template).
KWLoc the location of the 'class', 'struct', or 'union' keyword.
SS the scope specifier preceding the template-id.
Template the declaration of the class template that we are instantiation.
LAngleLoc the location of the '<' token in the template-id.
TemplateArgs the template arguments used to form the template-id.
TemplateArgLocs the locations of the template arguments.
RAngleLoc the location of the '>' token in the template-id.
Attr attributes that apply to this instantiation.

Reimplemented in clang::Sema.

Definition at line 2292 of file Sema/Action.h.

virtual DeclResult clang::Action::ActOnExplicitInstantiation ( Scope S,
SourceLocation  ExternLoc,
SourceLocation  TemplateLoc,
unsigned  TagSpec,
SourceLocation  KWLoc,
const CXXScopeSpec SS,
TemplateTy  Template,
SourceLocation  TemplateNameLoc,
SourceLocation  LAngleLoc,
ASTTemplateArgsPtr  TemplateArgs,
SourceLocation  RAngleLoc,
AttributeList Attr 
) [inline, virtual]

Process the explicit instantiation of a class template specialization.

This routine is invoked when an explicit instantiation of a class template specialization is encountered. In the following example, ActOnExplicitInstantiation will be invoked to force the instantiation of X<int>:

 template<typename T> class X { /* ... */ };
 template class X<int>; // explicit instantiation
Parameters:
S the current scope
ExternLoc the location of the 'extern' keyword that specifies that this is an extern template (if any).
TemplateLoc the location of the 'template' keyword that specifies that this is an explicit instantiation.
TagSpec whether this declares a class, struct, or union (template).
KWLoc the location of the 'class', 'struct', or 'union' keyword.
SS the scope specifier preceding the template-id.
Template the declaration of the class template that we are instantiation.
LAngleLoc the location of the '<' token in the template-id.
TemplateArgs the template arguments used to form the template-id.
TemplateArgLocs the locations of the template arguments.
RAngleLoc the location of the '>' token in the template-id.
Attr attributes that apply to this instantiation.

Reimplemented in clang::Sema.

Definition at line 2233 of file Sema/Action.h.

virtual StmtResult clang::Action::ActOnExprStmt ( FullExprArg  Expr  )  [pure virtual]

Implemented in clang::Sema.

virtual Decl* clang::Action::ActOnField ( Scope S,
Decl TagD,
SourceLocation  DeclStart,
Declarator D,
ExprTy BitfieldWidth 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 712 of file Sema/Action.h.

virtual void clang::Action::ActOnFields ( Scope S,
SourceLocation  RecLoc,
Decl TagDecl,
Decl **  Fields,
unsigned  NumFields,
SourceLocation  LBrac,
SourceLocation  RBrac,
AttributeList AttrList 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 728 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnFileScopeAsmDecl ( SourceLocation  Loc,
ExprArg  AsmString 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 566 of file Sema/Action.h.

virtual void clang::Action::ActOnFinishCXXMemberSpecification ( Scope S,
SourceLocation  RLoc,
Decl TagDecl,
SourceLocation  LBrac,
SourceLocation  RBrac,
AttributeList AttrList 
) [inline, virtual]

ActOnFinishCXXMemberSpecification - Invoked after all member declarators are parsed but *before* parsing of inline method definitions.

Reimplemented in clang::Sema.

Definition at line 1851 of file Sema/Action.h.

virtual void clang::Action::ActOnFinishDelayedCXXMethodDeclaration ( Scope S,
Decl Method 
) [inline, virtual]

ActOnFinishDelayedCXXMethodDeclaration - We have finished processing the delayed method declaration for Method. The method declaration is now considered finished. There may be a separate ActOnStartOfFunctionDef action later (not necessarily immediately!) for this method, if it was also defined inside the class body.

Reimplemented in clang::Sema.

Definition at line 1506 of file Sema/Action.h.

virtual void clang::Action::ActOnFinishDelayedMemberDeclarations ( Scope S,
Decl Record 
) [inline, virtual]

ActOnFinishDelayedMemberDeclarations - We have finished parsing a C++ class, and we are about to start parsing any parts of member declarations that could not be parsed earlier. Enter the appropriate record scope.

Reimplemented in clang::Sema.

Definition at line 1514 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnFinishFullExpr ( ExprArg  Expr  )  [inline, virtual]

ActOnFinishFullExpr - Called whenever a full expression has been parsed. (C++ [intro.execution]p12).

Reimplemented in clang::Sema.

Definition at line 1778 of file Sema/Action.h.

References clang::move().

Referenced by MakeFullExpr().

virtual Decl* clang::Action::ActOnFinishFunctionBody ( Decl Decl,
StmtArg  Body 
) [inline, virtual]

ActOnFinishFunctionBody - This is called when a function body has completed parsing. Decl is returned by ParseStartOfFunctionDef.

Reimplemented in clang::Sema.

Definition at line 562 of file Sema/Action.h.

virtual void clang::Action::ActOnFinishKNRParamDeclarations ( Scope S,
Declarator D,
SourceLocation  LocAfterDecls 
) [inline, virtual]

Indicates that all K&R-style parameter declarations have been parsed prior to a function definition.

Parameters:
S The function prototype scope.
D The function declarator.

Reimplemented in clang::Sema.

Definition at line 542 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnFinishLinkageSpecification ( Scope S,
Decl LinkageSpec,
SourceLocation  RBraceLoc 
) [inline, virtual]

ActOnFinishLinkageSpecification - Completely the definition of the C++ linkage specification LinkageSpec. If RBraceLoc is valid, it's the position of the closing '}' brace in a linkage specification that uses braces.

Reimplemented in clang::Sema.

Definition at line 606 of file Sema/Action.h.

virtual void clang::Action::ActOnFinishNamespaceDef ( Decl Dcl,
SourceLocation  RBrace 
) [inline, virtual]

ActOnFinishNamespaceDef - This callback is called after a namespace is exited. Decl is returned by ActOnStartNamespaceDef.

Reimplemented in clang::Sema.

Definition at line 1354 of file Sema/Action.h.

virtual StmtResult clang::Action::ActOnFinishSwitchStmt ( SourceLocation  SwitchLoc,
StmtArg  Switch,
StmtArg  Body 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 857 of file Sema/Action.h.

References StmtEmpty().

virtual void clang::Action::ActOnForEachDeclStmt ( DeclGroupPtrTy  Decl  )  [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 787 of file Sema/Action.h.

virtual StmtResult clang::Action::ActOnForStmt ( SourceLocation  ForLoc,
SourceLocation  LParenLoc,
StmtArg  First,
FullExprArg  Second,
Decl SecondVar,
FullExprArg  Third,
SourceLocation  RParenLoc,
StmtArg  Body 
) [inline, virtual]

Parsed a "for" statement.

Parameters:
ForLoc the location of the "for" keyword.
LParenLoc the location of the left parentheses.
First the statement used to initialize the for loop.
Second the condition to be checked during each iteration, if that condition was parsed as an expression.
SecondArg the condition variable to be checked during each iterator, if that condition was parsed as a variable declaration.
Third the expression that will be evaluated to "increment" any values prior to the next iteration.
RParenLoc the location of the right parentheses.
Body the body of the "body" loop.

Reimplemented in clang::Sema.

Definition at line 904 of file Sema/Action.h.

References StmtEmpty().

virtual Decl* clang::Action::ActOnForwardClassDeclaration ( SourceLocation  AtClassLoc,
IdentifierInfo **  IdentList,
SourceLocation IdentLocs,
unsigned  NumElts 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 2619 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnForwardProtocolDeclaration ( SourceLocation  AtProtocolLoc,
const IdentifierLocPair IdentList,
unsigned  NumElts,
AttributeList AttrList 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 2626 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnFriendFunctionDecl ( Scope S,
Declarator D,
bool  IsDefinition,
MultiTemplateParamsArg  TParams 
) [inline, virtual]

ActOnFriendFunctionDecl - Parsed a friend function declarator. The name is actually a slight misnomer, because the declarator is not necessarily a function declarator.

Reimplemented in clang::Sema.

Definition at line 1528 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnFriendTypeDecl ( Scope S,
const DeclSpec DS,
MultiTemplateParamsArg  TParams 
) [inline, virtual]

ActOnFriendTypeDecl - Parsed a friend type declaration.

Reimplemented in clang::Sema.

Definition at line 1536 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnGNUNullExpr ( SourceLocation  TokenLoc  )  [inline, virtual]

ActOnGNUNullExpr - Parsed the GNU __null expression, the token for which is at position TokenLoc.

Reimplemented in clang::Sema.

Definition at line 1315 of file Sema/Action.h.

References ExprEmpty().

virtual StmtResult clang::Action::ActOnGotoStmt ( SourceLocation  GotoLoc,
SourceLocation  LabelLoc,
IdentifierInfo LabelII 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 919 of file Sema/Action.h.

References StmtEmpty().

virtual ExprResult clang::Action::ActOnIdExpression ( Scope S,
CXXScopeSpec SS,
UnqualifiedId Name,
bool  HasTrailingLParen,
bool  IsAddressOfOperand 
) [inline, virtual]

Parsed an id-expression (C++) or identifier (C) in expression context, e.g., the expression "x" that refers to a variable named "x".

Parameters:
S the scope in which this id-expression or identifier occurs.
SS the C++ nested-name-specifier that qualifies the name of the value, e.g., "std::" in "std::sort".
Name the name to which the id-expression refers. In C, this will always be an identifier. In C++, it may also be an overloaded operator, destructor name (if there is a nested-name-specifier), or template-id.
HasTrailingLParen whether the next token following the id-expression or identifier is a left parentheses ('(').
IsAddressOfOperand whether the token that precedes this id-expression or identifier was an ampersand ('&'), indicating that we will be taking the address of this expression.

Reimplemented in clang::Sema.

Definition at line 1093 of file Sema/Action.h.

References ExprEmpty().

virtual StmtResult clang::Action::ActOnIfStmt ( SourceLocation  IfLoc,
FullExprArg  CondVal,
Decl CondVar,
StmtArg  ThenVal,
SourceLocation  ElseLoc,
StmtArg  ElseVal 
) [inline, virtual]

Parsed an "if" statement.

Parameters:
IfLoc the location of the "if" keyword.
CondVal if the "if" condition was parsed as an expression, the expression itself.
CondVar if the "if" condition was parsed as a condition variable, the condition variable itself.
ThenVal the "then" statement.
ElseLoc the location of the "else" keyword.
ElseVal the "else" statement.

Reimplemented in clang::Sema.

Definition at line 833 of file Sema/Action.h.

References StmtEmpty().

virtual StmtResult clang::Action::ActOnIndirectGotoStmt ( SourceLocation  GotoLoc,
SourceLocation  StarLoc,
ExprArg  DestExp 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 924 of file Sema/Action.h.

References StmtEmpty().

virtual void clang::Action::ActOnInitializerError ( Decl Dcl  )  [inline, virtual]

Note that the given declaration had an initializer that could not be parsed.

Reimplemented in clang::Sema.

Definition at line 525 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnInitList ( SourceLocation  LParenLoc,
MultiExprArg  InitList,
SourceLocation  RParenLoc 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1209 of file Sema/Action.h.

References ExprEmpty().

virtual ExprResult clang::Action::ActOnInstanceMessage ( Scope S,
ExprArg  Receiver,
Selector  Sel,
SourceLocation  LBracLoc,
SourceLocation  SelectorLoc,
SourceLocation  RBracLoc,
MultiExprArg  Args 
) [pure virtual]

Parsed a message send to an object instance.

Parameters:
S The scope in which the message send occurs.
Receiver The expression that computes the receiver object.
Sel The selector to which the message is being sent.
LBracLoc The location of the opening square bracket ']'.
SelectorLoc The location of the first identifier in the selector.
RBrac The location of the closing square bracket ']'.
Args The message arguments.

Implemented in clang::Sema.

virtual Decl* clang::Action::ActOnIvar ( Scope S,
SourceLocation  DeclStart,
Decl IntfDecl,
Declarator D,
ExprTy BitfieldWidth,
tok::ObjCKeywordKind  visibility 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 718 of file Sema/Action.h.

virtual StmtResult clang::Action::ActOnLabelStmt ( SourceLocation  IdentLoc,
IdentifierInfo II,
SourceLocation  ColonLoc,
StmtArg  SubStmt 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 811 of file Sema/Action.h.

References StmtEmpty().

virtual void clang::Action::ActOnLastBitfield ( SourceLocation  DeclStart,
Decl IntfDecl,
llvm::SmallVectorImpl< Decl * > &  AllIvarDecls 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 725 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnMemberAccessExpr ( Scope S,
ExprArg  Base,
SourceLocation  OpLoc,
tok::TokenKind  OpKind,
CXXScopeSpec SS,
UnqualifiedId Member,
Decl ObjCImpDecl,
bool  HasTrailingLParen 
) [inline, virtual]

Parsed a member access expresion (C99 6.5.2.3, C++ [expr.ref]) of the form x.m or p->m.

Parameters:
S the scope in which the member access expression occurs.
Base the class or pointer to class into which this member access expression refers, e.g., x in x.m.
OpLoc the location of the "." or "->" operator.
OpKind the kind of member access operator, which will be either tok::arrow ("->") or tok::period (".").
SS in C++, the nested-name-specifier that precedes the member name, if any.
Member the name of the member that we are referring to. In C, this will always store an identifier; in C++, we may also have operator names, conversion function names, destructors, and template names.
ObjCImpDecl the Objective-C implementation declaration. FIXME: Do we really need this?
HasTrailingLParen whether this member name is immediately followed by a left parentheses ('(').

Reimplemented in clang::Sema.

Definition at line 1170 of file Sema/Action.h.

References ExprEmpty().

virtual MemInitResult clang::Action::ActOnMemInitializer ( Decl ConstructorDecl,
Scope S,
CXXScopeSpec SS,
IdentifierInfo MemberOrBase,
ParsedType  TemplateTypeTy,
SourceLocation  IdLoc,
SourceLocation  LParenLoc,
ExprTy **  Args,
unsigned  NumArgs,
SourceLocation CommaLocs,
SourceLocation  RParenLoc 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1820 of file Sema/Action.h.

virtual void clang::Action::ActOnMemInitializers ( Decl ConstructorDecl,
SourceLocation  ColonLoc,
MemInitTy **  MemInits,
unsigned  NumMemInits,
bool  AnyErrors 
) [inline, virtual]

ActOnMemInitializers - This is invoked when all of the member initializers of a constructor have been parsed. ConstructorDecl is the function declaration (which will be a C++ constructor in a well-formed program), ColonLoc is the location of the ':' that starts the constructor initializer, and MemInit/NumMemInits contains the individual member (and base) initializers. AnyErrors will be true if there were any invalid member initializers that are not represented in the list.

Reimplemented in clang::Sema.

Definition at line 1841 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnMethodDeclaration ( SourceLocation  BeginLoc,
SourceLocation  EndLoc,
tok::TokenKind  MethodType,
Decl ClassDecl,
ObjCDeclSpec ReturnQT,
ParsedType  ReturnType,
Selector  Sel,
ObjCArgInfo ArgInfo,
DeclaratorChunk::ParamInfo CParamInfo,
unsigned  CNumArgs,
AttributeList MethodAttrList,
tok::ObjCKeywordKind  impKind,
bool  isVariadic = false 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 2474 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnNamespaceAliasDef ( Scope CurScope,
SourceLocation  NamespaceLoc,
SourceLocation  AliasLoc,
IdentifierInfo Alias,
CXXScopeSpec SS,
SourceLocation  IdentLoc,
IdentifierInfo Ident 
) [inline, virtual]

ActOnNamespaceAliasDef - This is called when a namespace alias definition is parsed.

Reimplemented in clang::Sema.

Definition at line 1369 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnNonTypeTemplateParameter ( Scope S,
Declarator D,
unsigned  Depth,
unsigned  Position,
SourceLocation  EqualLoc,
ExprArg  DefaultArg 
) [inline, virtual]

Called when a C++ non-type template parameter has been parsed.

Given

 template<int Size> class Array;

This callback will be invoked for the 'Size' non-type template parameter.

Parameters:
S The current scope.
D The parsed declarator.
Depth The depth of this template parameter, e.g., the number of template parameter lists that occurred outside the template parameter list in which this template type parameter occurs.
Position The zero-based position of this template parameter within its template parameter list, which is also the number of template parameters that precede this parameter in the template parameter list.
EqualLoc The location of the '=' sign for the default template argument, if any.
DefaultArg The default argument, if provided.

Reimplemented in clang::Sema.

Definition at line 1936 of file Sema/Action.h.

virtual void clang::Action::ActOnNonTypeTemplateParameterDefault ( Decl TemplateParam,
SourceLocation  EqualLoc,
ExprArg  Default 
) [inline, virtual]

Adds a default argument to the given non-type template parameter.

Definition at line 1946 of file Sema/Action.h.

virtual StmtResult clang::Action::ActOnNullStmt ( SourceLocation  SemiLoc  )  [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 772 of file Sema/Action.h.

References StmtEmpty().

virtual ExprResult clang::Action::ActOnNumericConstant ( const Token  )  [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1108 of file Sema/Action.h.

References ExprEmpty().

Referenced by clang::PragmaPackHandler::HandlePragma().

virtual StmtResult clang::Action::ActOnObjCAtCatchStmt ( SourceLocation  AtLoc,
SourceLocation  RParen,
Decl Parm,
StmtArg  Body 
) [inline, virtual]

Parsed an Objective-C statement.

Parameters:
AtLoc The location of the '@' starting the ''.
RParen The location of the right parentheses ')' after the exception variable.
Parm The variable that will catch the exception. Will be NULL if this is a (...) block.
Body The body of the block.

Reimplemented in clang::Sema.

Definition at line 969 of file Sema/Action.h.

References StmtEmpty().

virtual StmtResult clang::Action::ActOnObjCAtFinallyStmt ( SourceLocation  AtLoc,
StmtArg  Body 
) [inline, virtual]

Parsed an Objective-C statement.

Parameters:
AtLoc The location of the '@' starting the ''.
Body The body of the block.

Reimplemented in clang::Sema.

Definition at line 980 of file Sema/Action.h.

References StmtEmpty().

virtual StmtResult clang::Action::ActOnObjCAtSynchronizedStmt ( SourceLocation  AtLoc,
ExprArg  SynchExpr,
StmtArg  SynchBody 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1007 of file Sema/Action.h.

References StmtEmpty().

virtual StmtResult clang::Action::ActOnObjCAtThrowStmt ( SourceLocation  AtLoc,
ExprArg  Throw,
Scope CurScope 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1001 of file Sema/Action.h.

References StmtEmpty().

virtual StmtResult clang::Action::ActOnObjCAtTryStmt ( SourceLocation  AtLoc,
StmtArg  Try,
MultiStmtArg  CatchStmts,
StmtArg  Finally 
) [inline, virtual]

Parsed an Objective-C -- statement.

Parameters:
AtLoc The location of the '@' starting ''.
Try The body of the '' statement.
CatchStmts The statements.
Finally The statement.

Reimplemented in clang::Sema.

Definition at line 994 of file Sema/Action.h.

References StmtEmpty().

virtual Decl* clang::Action::ActOnObjCExceptionDecl ( Scope S,
Declarator D 
) [inline, virtual]

Parsed an exception object declaration within an Objective-C statement.

Reimplemented in clang::Sema.

Definition at line 491 of file Sema/Action.h.

virtual StmtResult clang::Action::ActOnObjCForCollectionStmt ( SourceLocation  ForColLoc,
SourceLocation  LParenLoc,
StmtArg  First,
ExprArg  Second,
SourceLocation  RParenLoc,
StmtArg  Body 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 913 of file Sema/Action.h.

References StmtEmpty().

virtual Decl* clang::Action::ActOnParamDeclarator ( Scope S,
Declarator D 
) [inline, virtual]

ActOnParamDeclarator - This callback is invoked when a parameter declarator is parsed. This callback only occurs for functions with prototypes. S is the function prototype scope for the parameters (C++ [basic.scope.proto]).

Reimplemented in clang::Sema.

Definition at line 485 of file Sema/Action.h.

virtual void clang::Action::ActOnParamDefaultArgument ( Decl param,
SourceLocation  EqualLoc,
ExprArg  defarg 
) [inline, virtual]

ActOnParamDefaultArgument - Parse default argument for function parameter.

Reimplemented in clang::Sema.

Definition at line 1426 of file Sema/Action.h.

virtual void clang::Action::ActOnParamDefaultArgumentError ( Decl param  )  [inline, virtual]

ActOnParamDefaultArgumentError - Parsing or semantic analysis of the default argument for the parameter param failed.

Reimplemented in clang::Sema.

Definition at line 1441 of file Sema/Action.h.

virtual void clang::Action::ActOnParamUnparsedDefaultArgument ( Decl param,
SourceLocation  EqualLoc,
SourceLocation  ArgLoc 
) [inline, virtual]

ActOnParamUnparsedDefaultArgument - We've seen a default argument for a function parameter, but we can't parse it yet because we're inside a class definition. Note that this default argument will be parsed later.

Reimplemented in clang::Sema.

Definition at line 1435 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnParenExpr ( SourceLocation  L,
SourceLocation  R,
ExprArg  Val 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1119 of file Sema/Action.h.

References clang::move().

virtual ExprResult clang::Action::ActOnParenOrParenListExpr ( SourceLocation  L,
SourceLocation  R,
MultiExprArg  Val,
ParsedType  TypeOfCast = ParsedType() 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1124 of file Sema/Action.h.

References ExprEmpty().

virtual void clang::Action::ActOnPopScope ( SourceLocation  Loc,
Scope S 
) [inline, virtual]

ActOnPopScope - This callback is called immediately before the specified scope is popped and deleted.

Reimplemented in clang::Sema.

Definition at line 573 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnPostfixUnaryOp ( Scope S,
SourceLocation  OpLoc,
tok::TokenKind  Kind,
ExprArg  Input 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1133 of file Sema/Action.h.

References ExprEmpty().

virtual void clang::Action::ActOnPragmaOptionsAlign ( PragmaOptionsAlignKind  Kind,
SourceLocation  PragmaLoc,
SourceLocation  KindLoc 
) [inline, virtual]

ActOnPragmaOptionsAlign - Called on well formed pragma options align={...}.

Reimplemented in clang::Sema.

Definition at line 2688 of file Sema/Action.h.

Referenced by ParseAlignPragma().

virtual void clang::Action::ActOnPragmaPack ( PragmaPackKind  Kind,
IdentifierInfo Name,
ExprTy Alignment,
SourceLocation  PragmaLoc,
SourceLocation  LParenLoc,
SourceLocation  RParenLoc 
) [inline, virtual]

ActOnPragmaPack - Called on well formed pragma pack(...).

Reimplemented in clang::Sema.

Definition at line 2702 of file Sema/Action.h.

Referenced by clang::PragmaPackHandler::HandlePragma().

virtual void clang::Action::ActOnPragmaUnused ( const Token Identifiers,
unsigned  NumIdentifiers,
Scope CurScope,
SourceLocation  PragmaLoc,
SourceLocation  LParenLoc,
SourceLocation  RParenLoc 
) [inline, virtual]

ActOnPragmaUnused - Called on well formed pragma unused(...).

Reimplemented in clang::Sema.

Definition at line 2712 of file Sema/Action.h.

Referenced by clang::PragmaUnusedHandler::HandlePragma().

virtual void clang::Action::ActOnPragmaVisibility ( bool  IsPush,
const IdentifierInfo VisType,
SourceLocation  PragmaLoc 
) [inline, virtual]

ActOnPragmaVisibility - Called on well formed pragma GCC visibility... .

Reimplemented in clang::Sema.

Definition at line 2722 of file Sema/Action.h.

Referenced by clang::PragmaGCCVisibilityHandler::HandlePragma().

virtual void clang::Action::ActOnPragmaWeakAlias ( IdentifierInfo WeakName,
IdentifierInfo AliasName,
SourceLocation  PragmaLoc,
SourceLocation  WeakNameLoc,
SourceLocation  AliasNameLoc 
) [inline, virtual]

ActOnPragmaWeakAlias - Called on well formed pragma weak ident = ident.

Reimplemented in clang::Sema.

Definition at line 2736 of file Sema/Action.h.

Referenced by clang::PragmaWeakHandler::HandlePragma().

virtual void clang::Action::ActOnPragmaWeakID ( IdentifierInfo WeakName,
SourceLocation  PragmaLoc,
SourceLocation  WeakNameLoc 
) [inline, virtual]

ActOnPragmaWeakID - Called on well formed pragma weak ident.

Reimplemented in clang::Sema.

Definition at line 2729 of file Sema/Action.h.

Referenced by clang::PragmaWeakHandler::HandlePragma().

virtual ExprResult clang::Action::ActOnPredefinedExpr ( SourceLocation  Loc,
tok::TokenKind  Kind 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1101 of file Sema/Action.h.

References ExprEmpty().

virtual Decl* clang::Action::ActOnProperty ( Scope S,
SourceLocation  AtLoc,
FieldDeclarator FD,
ObjCDeclSpec ODS,
Selector  GetterSel,
Selector  SetterSel,
Decl ClassCategory,
bool *  OverridingProperty,
tok::ObjCKeywordKind  MethodImplKind 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 2504 of file Sema/Action.h.

Referenced by clang::Parser::ObjCPropertyCallback::invoke().

virtual Decl* clang::Action::ActOnPropertyImplDecl ( Scope S,
SourceLocation  AtLoc,
SourceLocation  PropertyNameLoc,
bool  ImplKind,
Decl ClassImplDecl,
IdentifierInfo propertyId,
IdentifierInfo propertyIvar 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 2449 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnPseudoDestructorExpr ( Scope S,
ExprArg  Base,
SourceLocation  OpLoc,
tok::TokenKind  OpKind,
CXXScopeSpec SS,
UnqualifiedId FirstTypeName,
SourceLocation  CCLoc,
SourceLocation  TildeLoc,
UnqualifiedId SecondTypeName,
bool  HasTrailingLParen 
) [inline, virtual]

Parsed a C++ pseudo-destructor expression or a dependent member access expression that has the same syntactic form as a pseudo-destructor expression.

Parameters:
S The scope in which the member access expression occurs.
Base The expression in which a member is being accessed, e.g., the "x" in "x.f".
OpLoc The location of the member access operator ("." or "->")
OpKind The kind of member access operator ("." or "->")
SS The nested-name-specifier that precedes the type names in the grammar. Note that this nested-name-specifier will not cover the last "type-name ::" in the grammar, because it isn't necessarily a nested-name-specifier.
FirstTypeName The type name that follows the optional nested-name-specifier but precedes the '::', e.g., the first type-name in "type-name :: type-name". This type name may be empty. This will be either an identifier or a template-id.
CCLoc The location of the '::' in "type-name :: typename". May be invalid, if there is no FirstTypeName.
TildeLoc The location of the '~'.
SecondTypeName The type-name following the '~', which is the name of the type being destroyed. This will be either an identifier or a template-id.
HasTrailingLParen Whether the next token in the stream is a left parentheses.

Reimplemented in clang::Sema.

Definition at line 1764 of file Sema/Action.h.

References ExprEmpty().

virtual void clang::Action::ActOnReenterTemplateScope ( Scope S,
Decl Template 
) [inline, virtual]

Called when we re-enter a template parameter scope.

This action occurs when we are going to parse an member function's default arguments or inline definition after the outermost class definition has been completed, and when one or more of the class definitions enclosing the member function is a template. The "entity" in the given scope will be set as it was when we entered the scope of the template initially, and should be used to, e.g., reintroduce the names of template parameters into the current scope so that they can be found by name lookup.

Parameters:
S The (new) template parameter scope.
Template the class template declaration whose template parameters should be reintroduced into the current scope.

Reimplemented in clang::Sema.

Definition at line 1469 of file Sema/Action.h.

virtual StmtResult clang::Action::ActOnReturnStmt ( SourceLocation  ReturnLoc,
ExprArg  RetValExp 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 937 of file Sema/Action.h.

References StmtEmpty().

virtual ExprResult clang::Action::ActOnSizeOfAlignOfExpr ( SourceLocation  OpLoc,
bool  isSizeof,
bool  isType,
void *  TyOrEx,
const SourceRange ArgRange 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1198 of file Sema/Action.h.

References ExprEmpty().

virtual Decl* clang::Action::ActOnStartCategoryImplementation ( SourceLocation  AtCatImplLoc,
IdentifierInfo ClassName,
SourceLocation  ClassLoc,
IdentifierInfo CatName,
SourceLocation  CatLoc 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 2440 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnStartCategoryInterface ( SourceLocation  AtInterfaceLoc,
IdentifierInfo ClassName,
SourceLocation  ClassLoc,
IdentifierInfo CategoryName,
SourceLocation  CategoryLoc,
Decl *const *  ProtoRefs,
unsigned  NumProtoRefs,
const SourceLocation ProtoLocs,
SourceLocation  EndProtoLoc 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 2416 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnStartClassImplementation ( SourceLocation  AtClassImplLoc,
IdentifierInfo ClassName,
SourceLocation  ClassLoc,
IdentifierInfo SuperClassname,
SourceLocation  SuperClassLoc 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 2430 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnStartClassInterface ( SourceLocation  AtInterfaceLoc,
IdentifierInfo ClassName,
SourceLocation  ClassLoc,
IdentifierInfo SuperName,
SourceLocation  SuperLoc,
Decl *const *  ProtoRefs,
unsigned  NumProtoRefs,
const SourceLocation ProtoLocs,
SourceLocation  EndProtoLoc,
AttributeList AttrList 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 2380 of file Sema/Action.h.

virtual void clang::Action::ActOnStartCXXMemberDeclarations ( Scope S,
Decl TagDecl,
SourceLocation  LBraceLoc 
) [inline, virtual]

ActOnStartCXXMemberDeclarations - Invoked when we have parsed a C++ record definition's base-specifiers clause and are starting its member declarations.

Reimplemented in clang::Sema.

Definition at line 741 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnStartCXXMemberReference ( Scope S,
ExprArg  Base,
SourceLocation  OpLoc,
tok::TokenKind  OpKind,
ParsedType ObjectType,
bool &  MayBePseudoDestructor 
) [inline, virtual]

Invoked when the parser is starting to parse a C++ member access expression such as x.f or x->f.

Parameters:
S the scope in which the member access expression occurs.
Base the expression in which a member is being accessed, e.g., the "x" in "x.f".
OpLoc the location of the member access operator ("." or "->")
OpKind the kind of member access operator ("." or "->")
ObjectType originally NULL. The action should fill in this type with the type into which name lookup should look to find the member in the member access expression.
MayBePseudoDestructor Originally false. The action should set this true if the expression may end up being a pseudo-destructor expression, indicating to the parser that it shoudl be parsed as a pseudo-destructor rather than as a member access expression. Note that this should apply both when the object type is a scalar and when the object type is dependent.
Returns:
the (possibly modified) Base expression

Reimplemented in clang::Sema.

Definition at line 1721 of file Sema/Action.h.

References ExprEmpty().

virtual void clang::Action::ActOnStartDelayedCXXMethodDeclaration ( Scope S,
Decl Method 
) [inline, virtual]

ActOnStartDelayedCXXMethodDeclaration - We have completed parsing a top-level (non-nested) C++ class, and we are now parsing those parts of the given Method declaration that could not be parsed earlier (C++ [class.mem]p2), such as default arguments. This action should enter the scope of the given Method declaration as if we had just parsed the qualified method name. However, it should not bring the parameters into scope; that will be performed by ActOnDelayedCXXMethodParameter.

Reimplemented in clang::Sema.

Definition at line 1488 of file Sema/Action.h.

virtual void clang::Action::ActOnStartDelayedMemberDeclarations ( Scope S,
Decl Record 
) [inline, virtual]

ActOnStartDelayedMemberDeclarations - We have completed parsing a C++ class, and we are about to start parsing any parts of member declarations that could not be parsed earlier. Enter the appropriate record scope.

Reimplemented in clang::Sema.

Definition at line 1476 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnStartLinkageSpecification ( Scope S,
SourceLocation  ExternLoc,
SourceLocation  LangLoc,
llvm::StringRef  Lang,
SourceLocation  LBraceLoc 
) [inline, virtual]

ActOnStartLinkageSpecification - Parsed the beginning of a C++ linkage specification, including the language and (if present) the '{'. ExternLoc is the location of the 'extern', LangLoc is the location of the language string literal, which is provided by Lang/StrSize. LBraceLoc, if valid, provides the location of the '{' brace. Otherwise, this linkage specification does not have any braces.

Reimplemented in clang::Sema.

Definition at line 594 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnStartNamespaceDef ( Scope S,
SourceLocation  IdentLoc,
IdentifierInfo Ident,
SourceLocation  LBrace,
AttributeList AttrList 
) [inline, virtual]

ActOnStartNamespaceDef - This is called at the start of a namespace definition.

Reimplemented in clang::Sema.

Definition at line 1345 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnStartOfFunctionDef ( Scope FnBodyScope,
Decl D 
) [pure virtual]

ActOnStartOfFunctionDef - This is called at the start of a function definition, after the FunctionDecl has already been created.

Implemented in clang::Sema.

virtual Decl* clang::Action::ActOnStartOfFunctionDef ( Scope FnBodyScope,
Declarator D 
) [pure virtual]

ActOnStartOfFunctionDef - This is called at the start of a function definition, instead of calling ActOnDeclarator. The Declarator includes information about formal arguments that are part of this function.

Implemented in clang::Sema.

virtual Decl* clang::Action::ActOnStartOfFunctionTemplateDef ( Scope FnBodyScope,
MultiTemplateParamsArg  TemplateParameterLists,
Declarator D 
) [inline, virtual]

Invoked when the parser is beginning to parse a function template or function template specialization definition.

Reimplemented in clang::Sema.

Definition at line 2184 of file Sema/Action.h.

virtual void clang::Action::ActOnStartOfObjCMethodDef ( Scope FnBodyScope,
Decl D 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 556 of file Sema/Action.h.

virtual StmtResult clang::Action::ActOnStartOfSwitchStmt ( SourceLocation  SwitchLoc,
ExprArg  Cond,
Decl CondVar 
) [inline, virtual]

Parsed the start of a "switch" statement.

Parameters:
SwitchLoc The location of the "switch" keyword.
Cond if the "switch" condition was parsed as an expression, the expression itself.
CondVar if the "switch" condition was parsed as a condition variable, the condition variable itself.

Reimplemented in clang::Sema.

Definition at line 851 of file Sema/Action.h.

References StmtEmpty().

virtual Decl* clang::Action::ActOnStartProtocolInterface ( SourceLocation  AtProtoLoc,
IdentifierInfo ProtocolName,
SourceLocation  ProtocolLoc,
Decl *const *  ProtoRefs,
unsigned  NumProtoRefs,
const SourceLocation ProtoLocs,
SourceLocation  EndProtoLoc,
AttributeList AttrList 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 2404 of file Sema/Action.h.

virtual void clang::Action::ActOnStartSuppressingAccessChecks (  )  [inline, virtual]

Called when the parser begins parsing a construct which should not have access control applied to it.

Reimplemented in clang::Sema.

Definition at line 2367 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnStaticAssertDeclaration ( SourceLocation  AssertLoc,
ExprArg  AssertExpr,
ExprArg  AssertMessageExpr 
) [inline, virtual]

ActOnStaticAssertDeclaration - Parse a C++0x static_assert declaration.

Reimplemented in clang::Sema.

Definition at line 1519 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnStmtExpr ( SourceLocation  LPLoc,
StmtArg  SubStmt,
SourceLocation  RPLoc 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1267 of file Sema/Action.h.

References ExprEmpty().

virtual void clang::Action::ActOnStopSuppressingAccessChecks (  )  [inline, virtual]

Called when the parser finishes parsing a construct which should not have access control applied to it.

Reimplemented in clang::Sema.

Definition at line 2372 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnStringLiteral ( const Token Toks,
unsigned  NumToks 
) [inline, virtual]

ActOnStringLiteral - The specified tokens were lexed as pasted string fragments (e.g. "foo" "bar" L"baz").

Reimplemented in clang::Sema.

Definition at line 1114 of file Sema/Action.h.

References ExprEmpty().

virtual ExprResult clang::Action::ActOnSuperMessage ( Scope S,
SourceLocation  SuperLoc,
Selector  Sel,
SourceLocation  LBracLoc,
SourceLocation  SelectorLoc,
SourceLocation  RBracLoc,
MultiExprArg  Args 
) [pure virtual]

Parsed a message send to 'super'.

Parameters:
S The scope in which the message send occurs.
SuperLoc The location of the 'super' keyword.
Sel The selector to which the message is being sent.
LBracLoc The location of the opening square bracket ']'.
SelectorLoc The location of the first identifier in the selector.
RBrac The location of the closing square bracket ']'.
Args The message arguments.

Implemented in clang::Sema.

virtual Decl* clang::Action::ActOnTag ( Scope S,
unsigned  TagSpec,
TagUseKind  TUK,
SourceLocation  KWLoc,
CXXScopeSpec SS,
IdentifierInfo Name,
SourceLocation  NameLoc,
AttributeList Attr,
AccessSpecifier  AS,
MultiTemplateParamsArg  TemplateParameterLists,
bool &  OwnedDecl,
bool &  IsDependent 
) [inline, virtual]

The parser has encountered a tag (e.g., "class X") that should be turned into a declaration by the action module.

Parameters:
S the scope in which this tag occurs.
TagSpec an instance of DeclSpec::TST, indicating what kind of tag this is (struct/union/enum/class).
TUK how the tag we have encountered is being used, which can be a reference to a (possibly pre-existing) tag, a declaration of that tag, or the beginning of a definition of that tag.
KWLoc the location of the "struct", "class", "union", or "enum" keyword.
SS C++ scope specifier that precedes the name of the tag, e.g., the "std::" in "class std::type_info".
Name the name of the tag, e.g., "X" in "struct X". This parameter may be NULL, to indicate an anonymous class/struct/union/enum type.
NameLoc the location of the name of the tag.
Attr the set of attributes that appertain to the tag.
AS when this tag occurs within a C++ class, provides the current access specifier (AS_public, AS_private, AS_protected). Otherwise, it will be AS_none.
TemplateParameterLists the set of C++ template parameter lists that apply to this tag, if the tag is a declaration or definition (see the TK parameter). The action module is responsible for determining, based on the template parameter lists and the scope specifier, whether the declared tag is a class template or not.
OwnedDecl the callee should set this flag true when the returned declaration is "owned" by this reference. Ownership is handled entirely by the action module.
Returns:
the declaration to which this tag refers.

Reimplemented in clang::Sema.

Definition at line 674 of file Sema/Action.h.

virtual void clang::Action::ActOnTagDefinitionError ( Scope S,
Decl TagDecl 
) [inline, virtual]

ActOnTagDefinitionError - Invoked if there's an unrecoverable error parsing the definition of a tag.

The scope is the scope of the tag definition.

Reimplemented in clang::Sema.

Definition at line 755 of file Sema/Action.h.

virtual void clang::Action::ActOnTagFinishDefinition ( Scope S,
Decl TagDecl,
SourceLocation  RBraceLoc 
) [inline, virtual]

ActOnTagFinishDefinition - Invoked once we have finished parsing the definition of a tag (enumeration, class, struct, or union).

The scope is the scope of the tag definition.

Reimplemented in clang::Sema.

Definition at line 748 of file Sema/Action.h.

virtual void clang::Action::ActOnTagStartDefinition ( Scope S,
Decl TagDecl 
) [inline, virtual]

ActOnTagStartDefinition - Invoked when we have entered the scope of a tag's definition (e.g., for an enumeration, class, struct, or union).

Reimplemented in clang::Sema.

Definition at line 736 of file Sema/Action.h.

virtual TypeResult clang::Action::ActOnTagTemplateIdType ( TypeResult  Type,
TagUseKind  TUK,
DeclSpec::TST  TagSpec,
SourceLocation  TagLoc 
) [inline, virtual]

Note that a template ID was used with a tag.

Parameters:
Type The result of ActOnTemplateIdType.
TUK Either TUK_Reference or TUK_Friend. Declarations and definitions are interpreted as explicit instantiations or specializations.
TagSpec The tag keyword that was provided as part of the elaborated-type-specifier; either class, struct, union, or enum.
TagLoc The location of the tag keyword.

Reimplemented in clang::Sema.

Definition at line 2063 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnTemplateDeclarator ( Scope S,
MultiTemplateParamsArg  TemplateParameterLists,
Declarator D 
) [inline, virtual]

Invoked when a declarator that has one or more template parameter lists has been parsed.

This action is similar to ActOnDeclarator(), except that the declaration being created somehow involves a template, e.g., it is a template declaration or specialization.

Reimplemented in clang::Sema.

Definition at line 2176 of file Sema/Action.h.

virtual TypeResult clang::Action::ActOnTemplateIdType ( TemplateTy  Template,
SourceLocation  TemplateLoc,
SourceLocation  LAngleLoc,
ASTTemplateArgsPtr  TemplateArgs,
SourceLocation  RAngleLoc 
) [inline, virtual]

Form a type from a template and a list of template arguments.

This action merely forms the type for the template-id, possibly checking well-formedness of the template arguments. It does not imply the declaration of any entity.

Parameters:
Template A template whose specialization results in a type, e.g., a class template or template template parameter.

Reimplemented in clang::Sema.

Definition at line 2043 of file Sema/Action.h.

virtual TemplateParamsTy* clang::Action::ActOnTemplateParameterList ( unsigned  Depth,
SourceLocation  ExportLoc,
SourceLocation  TemplateLoc,
SourceLocation  LAngleLoc,
Decl **  Params,
unsigned  NumParams,
SourceLocation  RAngleLoc 
) [inline, virtual]

ActOnTemplateParameterList - Called when a complete template parameter list has been parsed, e.g.,

 export template<typename T, T Size>

Depth is the number of enclosing template parameter lists. This value does not include templates from outer scopes. For example:

 template<typename T> // depth = 0
   class A {
     template<typename U> // depth = 0
       class B;
   };

 template<typename T> // depth = 0
   template<typename U> // depth = 1
     class A<T>::B { ... };

ExportLoc, if valid, is the position of the "export" keyword. Otherwise, "export" was not specified. TemplateLoc is the position of the template keyword, LAngleLoc is the position of the left angle bracket, and RAngleLoc is the position of the corresponding right angle bracket. Params/NumParams provides the template parameters that were parsed as part of the template-parameter-list.

Reimplemented in clang::Sema.

Definition at line 2025 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnTemplateTemplateParameter ( Scope S,
SourceLocation  TmpLoc,
TemplateParamsTy Params,
IdentifierInfo ParamName,
SourceLocation  ParamNameLoc,
unsigned  Depth,
unsigned  Position,
SourceLocation  EqualLoc,
const ParsedTemplateArgument DefaultArg 
) [inline, virtual]

Called when a C++ template template parameter has been parsed.

Given

 template<template <typename> class T> class X;

this callback will be invoked for the template template parameter T.

Parameters:
S The scope in which this template template parameter occurs.
TmpLoc The location of the "template" keyword.
TemplateParams The template parameters required by the template.
ParamName The name of the parameter, or NULL if unnamed.
ParamNameLoc The source location of the parameter name (if given).
Depth The depth of this template parameter, e.g., the number of template parameter lists that occurred outside the template parameter list in which this template parameter occurs.
Position The zero-based position of this template parameter within its template parameter list, which is also the number of template parameters that precede this parameter in the template parameter list.
EqualLoc The location of the '=' sign for the default template argument, if any.
DefaultArg The default argument, if provided.

Reimplemented in clang::Sema.

Definition at line 1983 of file Sema/Action.h.

virtual void clang::Action::ActOnTranslationUnitScope ( Scope S  )  [inline, virtual]

ActOnTranslationUnitScope - This callback is called once, immediately after creating the translation unit scope (in Parser::Initialize).

Reimplemented in clang::Sema.

Definition at line 577 of file Sema/Action.h.

Referenced by clang::Parser::Initialize().

virtual TypeResult clang::Action::ActOnTypeName ( Scope S,
Declarator D 
) [inline, virtual]

ActOnTypeName - A type-name (type-id in C++) was parsed.

Reimplemented in clang::Sema.

Definition at line 622 of file Sema/Action.h.

virtual TypeResult clang::Action::ActOnTypenameType ( Scope S,
SourceLocation  TypenameLoc,
const CXXScopeSpec SS,
SourceLocation  TemplateLoc,
ParsedType  Ty 
) [inline, virtual]

Called when the parser has parsed a C++ typename specifier that ends in a template-id, e.g., "typename MetaFun::template apply<T1, T2>".

Parameters:
TypenameLoc the location of the 'typename' keyword
SS the nested-name-specifier following the typename (e.g., 'T::').
TemplateLoc the location of the 'template' keyword, if any.
Ty the type that the typename specifier refers to.

Reimplemented in clang::Sema.

Definition at line 2359 of file Sema/Action.h.

virtual TypeResult clang::Action::ActOnTypenameType ( Scope S,
SourceLocation  TypenameLoc,
const CXXScopeSpec SS,
const IdentifierInfo II,
SourceLocation  IdLoc 
) [inline, virtual]

Called when the parser has parsed a C++ typename specifier that ends in an identifier, e.g., "typename T::type".

Parameters:
TypenameLoc the location of the 'typename' keyword
SS the nested-name-specifier following the typename (e.g., 'T::').
II the identifier we're retrieving (e.g., 'type' in the example).
IdLoc the location of the identifier.

Reimplemented in clang::Sema.

Definition at line 2344 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnTypeParameter ( Scope S,
bool  Typename,
bool  Ellipsis,
SourceLocation  EllipsisLoc,
SourceLocation  KeyLoc,
IdentifierInfo ParamName,
SourceLocation  ParamNameLoc,
unsigned  Depth,
unsigned  Position,
SourceLocation  EqualLoc,
ParsedType  DefaultArg 
) [inline, virtual]

Called when a C++ template type parameter(e.g., "typename T") has been parsed.

Given

 template<typename T, typename U = T> struct pair;

this callback will be invoked twice: once for the type parameter T with Depth=0 and Position=0, and once for the type parameter U with Depth=0 and Position=1.

Parameters:
Typename Specifies whether the keyword "typename" was used to declare the type parameter (otherwise, "class" was used).
Ellipsis Specifies whether this is a C++0x parameter pack.
EllipsisLoc Specifies the start of the ellipsis.
KeyLoc The location of the "class" or "typename" keyword.
ParamName The name of the parameter, where NULL indicates an unnamed template parameter.
ParamNameLoc The location of the parameter name (if any).
Depth The depth of this template parameter, e.g., the number of template parameter lists that occurred outside the template parameter list in which this template type parameter occurs.
Position The zero-based position of this template parameter within its template parameter list, which is also the number of template parameters that precede this parameter in the template parameter list.
EqualLoc The location of the '=' sign for the default template argument, if any.
DefaultArg The default argument, if provided.

Reimplemented in clang::Sema.

Definition at line 1899 of file Sema/Action.h.

virtual ExprResult clang::Action::ActOnTypesCompatibleExpr ( SourceLocation  BuiltinLoc,
ParsedType  arg1,
ParsedType  arg2,
SourceLocation  RPLoc 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1293 of file Sema/Action.h.

References ExprEmpty().

virtual ExprResult clang::Action::ActOnUnaryOp ( Scope S,
SourceLocation  OpLoc,
tok::TokenKind  Op,
ExprArg  Input 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1193 of file Sema/Action.h.

References ExprEmpty().

virtual ExprResult clang::Action::ActOnUnaryTypeTrait ( UnaryTypeTrait  OTT,
SourceLocation  KWLoc,
SourceLocation  LParen,
ParsedType  Ty,
SourceLocation  RParen 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1689 of file Sema/Action.h.

References ExprEmpty().

virtual void clang::Action::ActOnUninitializedDecl ( Decl Dcl,
bool  TypeContainsUndeducedAuto 
) [inline, virtual]

ActOnUninitializedDecl - This action is called immediately after ActOnDeclarator (when an initializer is *not* present). If TypeContainsUndeducedAuto is true, then the type of the declarator has an undeduced 'auto' type somewhere.

Reimplemented in clang::Sema.

Definition at line 518 of file Sema/Action.h.

virtual Decl* clang::Action::ActOnUsingDeclaration ( Scope CurScope,
AccessSpecifier  AS,
bool  HasUsingKeyword,
SourceLocation  UsingLoc,
CXXScopeSpec SS,
UnqualifiedId Name,
AttributeList AttrList,
bool  IsTypeName,
SourceLocation  TypenameLoc 
) [pure virtual]

Parsed a C++ using-declaration.

This callback will be invoked when the parser has parsed a C++ using-declaration, e.g.,

 namespace std {
   template<typename T, typename Alloc> class vector;
 }

 using std::vector; // using-declaration here
Parameters:
CurScope the scope in which this using declaration was parsed.
AS the currently-active access specifier.
HasUsingKeyword true if this was declared with an explicit 'using' keyword (i.e. if this is technically a using declaration, not an access declaration)
UsingLoc the location of the 'using' keyword.
SS the nested-name-specifier that precedes the name.
Name the name to which the using declaration refers.
AttrList attributes applied to this using declaration, if any.
IsTypeName whether this using declaration started with the 'typename' keyword. FIXME: This will eventually be split into a separate action.
TypenameLoc the location of the 'typename' keyword, if present
Returns:
a representation of the using declaration.

Implemented in clang::Sema.

virtual Decl* clang::Action::ActOnUsingDirective ( Scope CurScope,
SourceLocation  UsingLoc,
SourceLocation  NamespcLoc,
CXXScopeSpec SS,
SourceLocation  IdentLoc,
IdentifierInfo NamespcName,
AttributeList AttrList 
) [pure virtual]

ActOnUsingDirective - This is called when using-directive is parsed.

Implemented in clang::Sema.

virtual ExprResult clang::Action::ActOnVAArg ( SourceLocation  BuiltinLoc,
ExprArg  expr,
ParsedType  type,
SourceLocation  RPLoc 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1307 of file Sema/Action.h.

References ExprEmpty().

virtual StmtResult clang::Action::ActOnWhileStmt ( SourceLocation  WhileLoc,
FullExprArg  Cond,
Decl CondVar,
StmtArg  Body 
) [inline, virtual]

Parsed a "while" statement.

Parameters:
Cond if the "while" condition was parsed as an expression, the expression itself.
CondVar if the "while" condition was parsed as a condition variable, the condition variable itself.
Body the body of the "while" loop.

Reimplemented in clang::Sema.

Definition at line 871 of file Sema/Action.h.

References StmtEmpty().

virtual void clang::Action::AddCXXDirectInitializerToDecl ( Decl Dcl,
SourceLocation  LParenLoc,
MultiExprArg  Exprs,
SourceLocation CommaLocs,
SourceLocation  RParenLoc 
) [inline, virtual]

AddCXXDirectInitializerToDecl - This action is called immediately after ActOnDeclarator, when a C++ direct initializer is present. e.g: "int x(1);"

Reimplemented in clang::Sema.

Definition at line 1446 of file Sema/Action.h.

virtual void clang::Action::AddInitializerToDecl ( Decl Dcl,
ExprArg  Init 
) [inline, virtual]

AddInitializerToDecl - This action is called immediately after ActOnDeclarator (when an initializer is present). The code is factored this way to make sure we are able to handle the following: void func() { int xx = xx; } This allows ActOnDeclarator to register "xx" prior to parsing the initializer. The declaration above should still result in a warning, since the reference to "xx" is uninitialized.

Reimplemented in clang::Sema.

Definition at line 502 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteAssignmentRHS ( Scope S,
ExprTy LHS 
) [inline, virtual]

Code completion for the right-hand side of an assignment or compound assignment operator.

Parameters:
S The scope in which the assignment occurs.
LHS The left-hand side of the assignment expression.

Reimplemented in clang::Sema.

Definition at line 2887 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteCall ( Scope S,
Expr Fn,
Expr **  Args,
unsigned  NumArgs 
) [inline, virtual]

Code completion for a call.

S the scope in which the call occurs.

Parameters:
Fn the expression describing the function being called.
Args the arguments to the function call (so far).
NumArgs the number of arguments in Args.

Reimplemented in clang::Sema.

Definition at line 2866 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteCase ( Scope S  )  [inline, virtual]

Code completion for a case statement.

S the scope in which the case statement occurs.

Reimplemented in clang::Sema.

Definition at line 2855 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteDeclarator ( Scope S,
bool  AllowNonIdentifiers,
bool  AllowNestedNameSpecifiers 
) [inline, virtual]

Code completion for a declarator name.

Parameters:
S The scope in which code completion occurs.
AllowNonIdentifiers Whether non-identifier names are allowed in this context, e.g., operator+.
AllowNestedNameSpecifiers Whether nested-name-specifiers are allowed in this context, e.g., because it is a top-level declaration or a friend declaration.

Reimplemented in clang::Sema.

Definition at line 2820 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteInitializer ( Scope S,
Decl D 
) [inline, virtual]

Code completion for the initializer of a variable declaration.

Parameters:
S The scope in which the initializer occurs.
D The declaration being initialized.

Reimplemented in clang::Sema.

Definition at line 2874 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteInPreprocessorConditionalExclusion ( Scope S  )  [inline, virtual]

Code completion while in an area of the translation unit that was excluded due to preprocessor conditionals.

Reimplemented in clang::Sema.

Definition at line 3217 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteMemberReferenceExpr ( Scope S,
ExprTy Base,
SourceLocation  OpLoc,
bool  IsArrow 
) [inline, virtual]

Code completion for a member access expression.

This code completion action is invoked when the code-completion token is found after the "." or "->" of a member access expression.

Parameters:
S the scope in which the member access expression occurs.
Base the base expression (e.g., the x in "x.foo") of the member access.
OpLoc the location of the "." or "->" operator.
IsArrow true when the operator is "->", false when it is ".".

Reimplemented in clang::Sema.

Definition at line 2837 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteNamespaceAliasDecl ( Scope S  )  [inline, virtual]

Code completion for a C++ namespace alias declaration.

This code completion action is invoked when the code-completion token is found after "namespace identifier = ".

Parameters:
S the scope in which the namespace alias declaration occurs.

Reimplemented in clang::Sema.

Definition at line 2935 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteNamespaceDecl ( Scope S  )  [inline, virtual]

Code completion for a C++ namespace declaration or namespace alias declaration.

This code completion action is invoked when the code-completion token is found after "namespace".

Parameters:
S the scope in which the "namespace" token occurs.

Reimplemented in clang::Sema.

Definition at line 2927 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteNaturalLanguage (  )  [inline, virtual]

Callback invoked when performing code completion in a context where we expect a natural language, e.g., inside a comment or string.

Reimplemented in clang::Sema.

Definition at line 3250 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCAtDirective ( Scope S,
Decl ObjCImpDecl,
bool  InInterface 
) [inline, virtual]

Code completion after the '@' at the top level.

Parameters:
S the scope in which the '@' occurs.
ObjCImpDecl the Objective-C implementation or category implementation.
InInterface whether we are in an Objective-C interface or protocol.

Reimplemented in clang::Sema.

Definition at line 2954 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCAtExpression ( Scope S  )  [inline, virtual]

Code completion after the '@' in an expression.

Reimplemented in clang::Sema.

Definition at line 2964 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCAtStatement ( Scope S  )  [inline, virtual]

Code completion after the '@' in a statement.

Reimplemented in clang::Sema.

Definition at line 2961 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCAtVisibility ( Scope S  )  [inline, virtual]

Code completion after the '@' in the list of instance variables.

Reimplemented in clang::Sema.

Definition at line 2958 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCClassMessage ( Scope S,
ParsedType  Receiver,
IdentifierInfo **  SelIdents,
unsigned  NumSelIdents 
) [inline, virtual]

Code completion for an ObjC message expression that refers to a class method.

This code completion action is invoked when the code-completion token is found after the class name and after each argument.

Parameters:
S The scope in which the message expression occurs.
Receiver The type of the class that is receiving a message.
SelIdents The identifiers that describe the selector (thus far).
NumSelIdents The number of identifiers in SelIdents.

Reimplemented in clang::Sema.

Definition at line 3054 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCForCollection ( Scope S,
DeclGroupPtrTy  IterationVar 
) [inline, virtual]

Code completion for the collection argument of an Objective-C for-each statement.

Parameters:
S The Scope in which the completion occurs.
IterationBar The iteration variable declaration.

Reimplemented in clang::Sema.

Definition at line 3078 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCImplementationCategory ( Scope S,
IdentifierInfo ClassName,
SourceLocation  ClassNameLoc 
) [inline, virtual]

Code completion for the category name in an Objective-C category implementation.

This code completion action is invoked after the '(' that indicates the category name within an Objective-C category implementation.

Reimplemented in clang::Sema.

Definition at line 3134 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCImplementationDecl ( Scope S  )  [inline, virtual]

Code completion for an Objective-C implementation, after the but before any identifier.

Reimplemented in clang::Sema.

Definition at line 3117 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCInstanceMessage ( Scope S,
ExprTy Receiver,
IdentifierInfo **  SelIdents,
unsigned  NumSelIdents 
) [inline, virtual]

Code completion for an ObjC message expression that refers to an instance method.

This code completion action is invoked when the code-completion token is found after the receiver expression and after each argument.

Parameters:
S the scope in which the operator keyword occurs.
Receiver an expression for the receiver of the message.
SelIdents the identifiers that describe the selector (thus far).
NumSelIdents the number of identifiers in SelIdents.

Reimplemented in clang::Sema.

Definition at line 3068 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCInterfaceCategory ( Scope S,
IdentifierInfo ClassName,
SourceLocation  ClassNameLoc 
) [inline, virtual]

Code completion for the category name in an Objective-C interface declaration.

This code completion action is invoked after the '(' that indicates a category name within an Objective-C interface declaration.

Reimplemented in clang::Sema.

Definition at line 3124 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCInterfaceDecl ( Scope S  )  [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 3102 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCMessageReceiver ( Scope S  )  [inline, virtual]

Code completion for the receiver in an Objective-C message send.

This code completion action is invoked when we see a '[' that indicates the start of an Objective-C message send.

Parameters:
S The scope in which the Objective-C message send occurs.

Reimplemented in clang::Sema.

Definition at line 3028 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCMethodDecl ( Scope S,
bool  IsInstanceMethod,
ParsedType  ReturnType,
Decl IDecl 
) [inline, virtual]

Code completion for an Objective-C method declaration or definition, which may occur within an interface, category, extension, protocol, or implementation thereof (where applicable).

This code completion action is invoked after the "-" or "+" that starts a method declaration or definition, and after the return type such a declaration (e.g., "- (id)").

Parameters:
S The scope in which the completion occurs.
IsInstanceMethod Whether this is an instance method (introduced with '-'); otherwise, it's a class method (introduced with '+').
ReturnType If non-NULL, the specified return type of the method being declared or defined.
IDecl The interface, category, protocol, or implementation, or category implementation in which this method declaration or definition occurs.

Reimplemented in clang::Sema.

Definition at line 3178 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCMethodDeclSelector ( Scope S,
bool  IsInstanceMethod,
bool  AtParameterName,
ParsedType  ReturnType,
IdentifierInfo **  SelIdents,
unsigned  NumSelIdents 
) [inline, virtual]

Code completion for a selector identifier or argument name within an Objective-C method declaration.

Parameters:
S The scope in which this code completion occurs.
IsInstanceMethod Whether we are parsing an instance method (or, if false, a class method).
AtParameterName Whether the actual code completion point is at the argument name.
ReturnType If non-NULL, the specified return type of the method being declared or defined.
SelIdents The identifiers that occurred in the selector for the method declaration prior to the code completion point.
NumSelIdents The number of identifiers provided by SelIdents.

Reimplemented in clang::Sema.

Definition at line 3202 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCPassingType ( Scope S,
ObjCDeclSpec DS 
) [inline, virtual]

Code completion for an Objective-C method parameter or return type.

This code completion action is invoked when we are parsing the type of an Objective-C method parameter or return type.

Parameters:
S The scope in which the code-completion occurs.
DS The Objective-C declaration specifiers so far.

Reimplemented in clang::Sema.

Definition at line 3019 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCPropertyDefinition ( Scope S,
Decl ObjCImpDecl 
) [inline, virtual]

Code completion for the property names when defining an Objective-C property.

This code completion action is invoked after or and after each "," within one of those definitions.

Reimplemented in clang::Sema.

Definition at line 3144 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCPropertyFlags ( Scope S,
ObjCDeclSpec ODS 
) [inline, virtual]

Code completion for an ObjC property decl.

This code completion action is invoked when the code-completion token is found after the left paren.

Parameters:
S the scope in which the operator keyword occurs.

Reimplemented in clang::Sema.

Definition at line 2972 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCPropertyGetter ( Scope S,
Decl ClassDecl,
Decl **  Methods,
unsigned  NumMethods 
) [inline, virtual]

Code completion for the getter of an Objective-C property declaration.

This code completion action is invoked when the code-completion token is found after the "getter = " in a property declaration.

Parameters:
S the scope in which the property is being declared.
ClassDecl the Objective-C class or category in which the property is being defined.
Methods the set of methods declared thus far within ClassDecl.
NumMethods the number of methods in Methods

Reimplemented in clang::Sema.

Definition at line 2988 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCPropertySetter ( Scope S,
Decl ClassDecl,
Decl **  Methods,
unsigned  NumMethods 
) [inline, virtual]

Code completion for the setter of an Objective-C property declaration.

This code completion action is invoked when the code-completion token is found after the "setter = " in a property declaration.

Parameters:
S the scope in which the property is being declared.
ClassDecl the Objective-C class or category in which the property is being defined.
Methods the set of methods declared thus far within ClassDecl.
NumMethods the number of methods in Methods

Reimplemented in clang::Sema.

Definition at line 3007 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCPropertySynthesizeIvar ( Scope S,
IdentifierInfo PropertyName,
Decl ObjCImpDecl 
) [inline, virtual]

Code completion for the instance variable name that should follow an '=' when synthesizing an Objective-C property.

This code completion action is invoked after each '=' that occurs within an definition.

Reimplemented in clang::Sema.

Definition at line 3153 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCProtocolDecl ( Scope S  )  [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 3098 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCProtocolReferences ( IdentifierLocPair Protocols,
unsigned  NumProtocols 
) [inline, virtual]

Code completion for a list of protocol references in Objective-C, such as P1 and P2 in id<P1,P2>.

This code completion action is invoked prior to each identifier in the protocol list.

Parameters:
Protocols the set of protocols that have already been parsed.
NumProtocols the number of protocols that have already been parsed.

Reimplemented in clang::Sema.

Definition at line 3091 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCSuperclass ( Scope S,
IdentifierInfo ClassName,
SourceLocation  ClassNameLoc 
) [inline, virtual]

Code completion for the superclass of an Objective-C interface, after the ':'.

Parameters:
S the scope in which the interface declaration occurs.
ClassName the name of the class being defined.

Reimplemented in clang::Sema.

Definition at line 3110 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteObjCSuperMessage ( Scope S,
SourceLocation  SuperLoc,
IdentifierInfo **  SelIdents,
unsigned  NumSelIdents 
) [inline, virtual]

Code completion for an ObjC message expression that sends a message to the superclass.

This code completion action is invoked when the code-completion token is found after the class name and after each argument.

Parameters:
S The scope in which the message expression occurs.
SuperLoc The location of the 'super' keyword.
SelIdents The identifiers that describe the selector (thus far).
NumSelIdents The number of identifiers in SelIdents.

Reimplemented in clang::Sema.

Definition at line 3040 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteOperatorName ( Scope S  )  [inline, virtual]

Code completion for an operator name.

This code completion action is invoked when the code-completion token is found after the keyword "operator".

Parameters:
S the scope in which the operator keyword occurs.

Reimplemented in clang::Sema.

Definition at line 2943 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteOrdinaryName ( Scope S,
ParserCompletionContext  CompletionContext 
) [inline, virtual]

Code completion for an ordinary name that occurs within the given scope.

Parameters:
S the scope in which the name occurs.
CompletionContext the context in which code completion occurs.

Reimplemented in clang::Sema.

Definition at line 2805 of file Sema/Action.h.

virtual void clang::Action::CodeCompletePreprocessorDirective ( bool  InConditional  )  [inline, virtual]

Code completion for a preprocessor directive.

InConditional Whether we're inside a preprocessor conditional.

Reimplemented in clang::Sema.

Definition at line 3212 of file Sema/Action.h.

virtual void clang::Action::CodeCompletePreprocessorExpression (  )  [inline, virtual]

Callback invoked when performing code completion in a preprocessor expression, such as the condition of an if or elif directive.

Reimplemented in clang::Sema.

Definition at line 3230 of file Sema/Action.h.

virtual void clang::Action::CodeCompletePreprocessorMacroArgument ( Scope S,
IdentifierInfo Macro,
MacroInfo MacroInfo,
unsigned  Argument 
) [inline, virtual]

Callback invoked when performing code completion inside a function-like macro argument.

Parameters:
S The scope in which this macro is being expanded.
Macro The name of the macro that is going to be expanded.
MacroInfo Information about the macro that is going to be expanded.
Argument The argument in which the code-completion token occurs.

Reimplemented in clang::Sema.

Definition at line 3243 of file Sema/Action.h.

virtual void clang::Action::CodeCompletePreprocessorMacroName ( bool  IsDefinition  )  [inline, virtual]

Code completion in the preprocessor where an already-defined macro name is expected, e.g., an ifdef or undef.

Parameters:
IsDefinition Whether this code completion for a macro name occurs in a definition of the macro (define) or in another use that already expects that the macro is defined (e.g., undef or ifdef).

Reimplemented in clang::Sema.

Definition at line 3225 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteQualifiedId ( Scope S,
CXXScopeSpec SS,
bool  EnteringContext 
) [inline, virtual]

Code completion for a C++ nested-name-specifier that precedes a qualified-id of some form.

This code completion action is invoked when the code-completion token is found after the "::" of a nested-name-specifier.

Parameters:
S the scope in which the nested-name-specifier occurs.
SS the scope specifier ending with "::".

EnteringContext whether we're entering the context of this scope specifier.

Reimplemented in clang::Sema.

Definition at line 2901 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteReturn ( Scope S  )  [inline, virtual]

Code completion after the "return" keyword within a function.

Parameters:
S The scope in which the return statement occurs.

Reimplemented in clang::Sema.

Definition at line 2879 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteTag ( Scope S,
unsigned  TagSpec 
) [inline, virtual]

Code completion for a reference to a tag.

This code completion action is invoked when the code-completion token is found after a tag keyword (struct, union, enum, or class).

Parameters:
S the scope in which the tag reference occurs.
TagSpec an instance of DeclSpec::TST, indicating what kind of tag this is (struct/union/enum/class).

Reimplemented in clang::Sema.

Definition at line 2850 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteUsing ( Scope S  )  [inline, virtual]

Code completion for a C++ "using" declaration or directive.

This code completion action is invoked when the code-completion token is found after the "using" keyword.

Parameters:
S the scope in which the "using" occurs.

Reimplemented in clang::Sema.

Definition at line 2910 of file Sema/Action.h.

virtual void clang::Action::CodeCompleteUsingDirective ( Scope S  )  [inline, virtual]

Code completion for a C++ using directive.

This code completion action is invoked when the code-completion token is found after "using namespace".

Parameters:
S the scope in which the "using namespace" occurs.

Reimplemented in clang::Sema.

Definition at line 2918 of file Sema/Action.h.

virtual DeclGroupPtrTy clang::Action::ConvertDeclToDeclGroup ( Decl Ptr  )  [inline, virtual]

ConvertDeclToDeclGroup - If the parser has one decl in a context where it needs a decl group, it calls this to convert between the two representations.

Reimplemented in clang::Sema.

Definition at line 187 of file Sema/Action.h.

Referenced by clang::Parser::FinishPendingObjCActions().

virtual bool clang::Action::DiagnoseUnknownTemplateName ( const IdentifierInfo II,
SourceLocation  IILoc,
Scope S,
const CXXScopeSpec SS,
TemplateTy SuggestedTemplate,
TemplateNameKind SuggestedKind 
) [inline, virtual]

Action called as part of error recovery when the parser has determined that the given name must refer to a template, but isTemplateName() did not return a result.

This callback permits the action to give a detailed diagnostic when an unknown template name is encountered and, potentially, to try to recover by producing a new template in SuggestedTemplate.

Parameters:
II the name that should be a template.
IILoc the location of the name in the source.
S the scope in which name lookup was performed.
SS the C++ scope specifier that preceded the name.
SuggestedTemplate if the action sets this template to a non-NULL, template, the parser will recover by consuming the template name token and the template argument list that follows.
SuggestedTemplateKind as input, the kind of template that we expect (e.g., TNK_Type_template or TNK_Function_template). If the action provides a suggested template, this should be set to the kind of template.
Returns:
true if a diagnostic was emitted, false otherwise. When false, the parser itself will emit a generic "unknown template name" diagnostic.

Reimplemented in clang::Sema.

Definition at line 334 of file Sema/Action.h.

virtual bool clang::Action::DiagnoseUnknownTypeName ( const IdentifierInfo II,
SourceLocation  IILoc,
Scope S,
CXXScopeSpec SS,
ParsedType SuggestedType 
) [inline, virtual]

Action called as part of error recovery when the parser has determined that the given name must refer to a type, but getTypeName() did not return a result.

This callback permits the action to give a detailed diagnostic when an unknown type name is encountered and, potentially, to try to recover by producing a new type in SuggestedType.

Parameters:
II the name that should be a type.
IILoc the location of the name in the source.
S the scope in which name lookup was performed.
SS if non-NULL, the C++ scope specifier that preceded the name.
SuggestedType if the action sets this type to a non-NULL type, the parser will recovery by consuming the type name token and then pretending that the given type was the type it parsed.
Returns:
true if a diagnostic was emitted, false otherwise. When false, the parser itself will emit a generic "unknown type name" diagnostic.

Reimplemented in clang::Sema.

Definition at line 252 of file Sema/Action.h.

virtual void clang::Action::DiagnoseUseOfUnimplementedSelectors (  )  [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 191 of file Sema/Action.h.

Referenced by clang::Parser::FinishPendingObjCActions().

ExprResult clang::Action::ExprEmpty (  )  [inline]
ExprResult clang::Action::ExprError ( const DiagnosticBuilder  )  [inline]

Definition at line 150 of file Sema/Action.h.

References ExprError().

Referenced by ExprError().

ExprResult clang::Action::ExprError (  )  [inline]

Definition at line 147 of file Sema/Action.h.

Referenced by clang::Sema::ActOnBuiltinOffsetOf(), clang::Sema::ActOnCharacterConstant(), clang::Sema::ActOnChooseExpr(), clang::Sema::ActOnClassMessage(), clang::Sema::ActOnClassPropertyRefExpr(), clang::Sema::ActOnCXXNew(), clang::Sema::ActOnCXXThis(), clang::Sema::ActOnCXXTypeConstructExpr(), clang::Sema::ActOnCXXTypeid(), clang::Sema::ActOnDesignatedInitializer(), clang::Sema::ActOnIdExpression(), clang::Sema::ActOnNumericConstant(), clang::Sema::ActOnSizeOfAlignOfExpr(), clang::Sema::ActOnStringLiteral(), clang::Sema::ActOnSuperMessage(), clang::Sema::ActOnUnaryTypeTrait(), clang::Sema::BuildAnonymousStructUnionMemberReference(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildCallToMemberFunction(), clang::Sema::BuildClassMessage(), BuildCXXCastArgument(), clang::Sema::BuildCXXDefaultArgExpr(), clang::Sema::BuildCXXNamedCast(), clang::Sema::BuildCXXTypeId(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildDeclRefExpr(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), clang::Sema::BuildOverloadedCallExpr(), clang::Sema::BuildPossibleImplicitMemberExpr(), clang::Sema::BuildQualifiedDeclarationNameExpr(), clang::Sema::BuildQualifiedTemplateIdExpr(), clang::BuildRecoveryCallExpr(), clang::Sema::BuildResolvedCallExpr(), clang::Sema::BuildTypesCompatibleExpr(), clang::Sema::CheckConditionVariable(), CopyObject(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::CreateOverloadedBinOp(), clang::Sema::CreateSizeOfAlignOfExpr(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::HandleExprPropertyRefExpr(), clang::Sema::LookupInObjCMethod(), clang::Sema::LookupMemberExpr(), clang::Sema::MaybeConvertParenListExprToParenExpr(), clang::Sema::MaybeCreateCXXExprWithTemporaries(), clang::InitializationSequence::Perform(), clang::Sema::PerformCopyInitialization(), clang::TreeTransform< Derived >::RebuildCXXConstructExpr(), clang::TreeTransform< Derived >::RebuildCXXNamedCastExpr(), clang::TreeTransform< Derived >::RebuildCXXOperatorCallExpr(), clang::TreeTransform< Derived >::RebuildDesignatedInitExpr(), clang::TreeTransform< Derived >::RebuildMemberExpr(), clang::TreeTransform< Derived >::RebuildObjCIsaExpr(), clang::TreeTransform< Derived >::RebuildObjCIvarRefExpr(), clang::TreeTransform< Derived >::RebuildObjCPropertyRefExpr(), clang::TreeTransform< Derived >::RebuildShuffleVectorExpr(), clang::TreeTransform< Derived >::RebuildSizeOfAlignOf(), clang::Sema::SemaBuiltinShuffleVector(), and clang::TreeTransform< Derived >::TransformCXXNamedCastExpr().

virtual DeclGroupPtrTy clang::Action::FinalizeDeclaratorGroup ( Scope S,
const DeclSpec DS,
Decl **  Group,
unsigned  NumDecls 
) [inline, virtual]

FinalizeDeclaratorGroup - After a sequence of declarators are parsed, this gives the actions implementation a chance to process the group as a whole.

Reimplemented in clang::Sema.

Definition at line 531 of file Sema/Action.h.

virtual void clang::Action::FindProtocolDeclaration ( bool  WarnOnDeclarations,
const IdentifierLocPair ProtocolId,
unsigned  NumProtocols,
llvm::SmallVectorImpl< Decl * > &  ResProtos 
) [inline, virtual]

FindProtocolDeclaration - This routine looks up protocols and issues error if they are not declared. It returns list of valid protocols found.

Reimplemented in clang::Sema.

Definition at line 2637 of file Sema/Action.h.

Scope* clang::Action::getCurScope (  )  const [inline, protected]

Retrieve the parser's current scope.

Definition at line 70 of file Sema/Action.h.

Referenced by clang::Sema::getScopeForContext().

virtual std::string clang::Action::getDeclName ( Decl D  )  [inline, virtual]

getDeclName - Return a pretty name for the specified decl if possible, or an empty string if not. This is used for pretty crash reporting.

Reimplemented in clang::Sema.

Definition at line 161 of file Sema/Action.h.

Referenced by clang::PrettyStackTraceActionsDecl::print().

virtual ParsedType clang::Action::getDestructorName ( SourceLocation  TildeLoc,
IdentifierInfo II,
SourceLocation  NameLoc,
Scope S,
CXXScopeSpec SS,
ParsedType  ObjectType,
bool  EnteringContext 
) [inline, virtual]

Parsed a destructor name or pseudo-destructor name.

Returns:
the type being destructed.

Reimplemented in clang::Sema.

Definition at line 1546 of file Sema/Action.h.

References getTypeName().

virtual SourceRange clang::Action::getExprRange ( ExprTy E  )  const [inline, virtual]

Retrieve the source range that corresponds to the given expression.

Reimplemented in clang::Sema.

Definition at line 1071 of file Sema/Action.h.

virtual ObjCMessageKind clang::Action::getObjCMessageKind ( Scope S,
IdentifierInfo Name,
SourceLocation  NameLoc,
bool  IsSuper,
bool  HasTrailingDot,
ParsedType ReceiverType 
) [pure virtual]

Determine the kind of Objective-C message send that we will be performing based on the identifier given.

This action determines how a message send that starts with [ identifier (followed by another identifier) will be parsed, e.g., as a class message, instance message, super message. The result depends on the meaning of the given identifier. If the identifier is unknown, the action should indicate that the message is an instance message.

By default, this routine applies syntactic disambiguation and uses getTypeName() to determine whether the identifier refers to a type. However, Action subclasses may override this routine to improve error recovery.

Parameters:
S The scope in which the message send occurs.
Name The identifier following the '['.
NameLoc The location of the identifier.
IsSuper Whether the name is the pseudo-keyword "super".
HasTrailingDot Whether the name is followed by a period.
ReceiverType If this routine returns ObjCClassMessage, this argument will be set to the receiver type.
Returns:
The kind of message send.

Implemented in clang::Sema.

virtual ParsedType clang::Action::getTypeName ( IdentifierInfo II,
SourceLocation  NameLoc,
Scope S,
CXXScopeSpec SS = 0,
bool  isClassName = false,
ParsedType  ObjectType = ParsedType() 
) [pure virtual]

getTypeName - Return non-null if the specified identifier is a type name in the current scope.

Parameters:
II the identifier for which we are performing name lookup
NameLoc the location of the identifier
S the scope in which this name lookup occurs
SS if non-NULL, the C++ scope specifier that precedes the identifier
isClassName whether this is a C++ class-name production, in which we can end up referring to a member of an unknown specialization that we know (from the grammar) is supposed to be a type. For example, this occurs when deriving from "std::vector<T>::allocator_type", where T is a template parameter.
ObjectType if we're checking whether an identifier is a type within a C++ member access expression, this will be the type of the
Returns:
the type referred to by this identifier, or NULL if the type does not name an identifier.

Implemented in clang::Sema.

Referenced by getDestructorName().

virtual bool clang::Action::isCurrentClassName ( const IdentifierInfo II,
Scope S,
const CXXScopeSpec SS = 0 
) [pure virtual]

isCurrentClassName - Return true if the specified name is the name of the innermost C++ class type currently being defined.

Implemented in clang::Sema.

virtual bool clang::Action::IsInvalidUnlessNestedName ( Scope S,
CXXScopeSpec SS,
IdentifierInfo II,
ParsedType  ObjectType,
bool  EnteringContext 
) [inline, virtual]

IsInvalidUnlessNestedName - This method is used for error recovery purposes to determine whether the specified identifier is only valid as a nested name specifier, for example a namespace name. It is conservatively correct to always return false from this method.

The arguments are the same as those passed to ActOnCXXNestedNameSpecifier.

Reimplemented in clang::Sema.

Definition at line 406 of file Sema/Action.h.

virtual bool clang::Action::isNonTypeNestedNameSpecifier ( Scope S,
CXXScopeSpec SS,
SourceLocation  IdLoc,
IdentifierInfo II,
ParsedType  ObjectType 
) [inline, virtual]

Determine whether the given name refers to a non-type nested name specifier, e.g., the name of a namespace or namespace alias.

This actual is used in the parsing of pseudo-destructor names to distinguish a nested-name-specifier and a "type-name ::" when we see the token sequence "X :: ~".

Reimplemented in clang::Sema.

Definition at line 349 of file Sema/Action.h.

virtual DeclSpec::TST clang::Action::isTagName ( IdentifierInfo II,
Scope S 
) [inline, virtual]

isTagName() - This method is called *for error recovery purposes only* to determine if the specified name is a valid tag name ("struct foo"). If so, this returns the TST for the tag corresponding to it (TST_enum, TST_union, TST_struct, TST_class). This is used to diagnose cases in C where the user forgot to specify the tag.

Reimplemented in clang::Sema.

Definition at line 226 of file Sema/Action.h.

References clang::DeclSpec::TST_unspecified.

virtual TemplateNameKind clang::Action::isTemplateName ( Scope S,
CXXScopeSpec SS,
bool  hasTemplateKeyword,
UnqualifiedId Name,
ParsedType  ObjectType,
bool  EnteringContext,
TemplateTy Template,
bool &  MemberOfUnknownSpecialization 
) [pure virtual]

Determine whether the given name refers to a template.

This callback is used by the parser after it has seen a '<' to determine whether the given name refers to a template and, if so, what kind of template.

Parameters:
S the scope in which the name occurs.
SS the C++ nested-name-specifier that precedes the template name, if any.
hasTemplateKeyword true if the template keyword was specified.
Name the name that we are querying to determine whether it is a template.
ObjectType if we are determining whether the given name is a template name in the context of a member access expression (e.g., p->X<int>), this is the type of the object referred to by the member access (e.g., p).
EnteringContext whether we are potentially entering the context referred to by the nested-name-specifier SS, which allows semantic analysis to look into uninstantiated templates.
Template if the name does refer to a template, the declaration of the template that the name refers to.
MemberOfUnknownSpecialization Will be set true if the resulting member would be a member of an unknown specialization, in which case this lookup cannot possibly pass at this time.
Returns:
the kind of template that this name refers to.

Implemented in clang::Sema.

FullExprArg clang::Action::MakeFullExpr ( Expr Arg  )  [inline]

Definition at line 141 of file Sema/Action.h.

References ActOnFinishFullExpr().

Referenced by BuildSingleCopyAssign().

virtual Decl* clang::Action::ParsedFreeStandingDeclSpec ( Scope S,
AccessSpecifier  Access,
DeclSpec DS 
) [inline, virtual]

ParsedFreeStandingDeclSpec - This method is invoked when a declspec with no declarator (e.g. "struct foo;") is parsed.

Reimplemented in clang::Sema.

Definition at line 581 of file Sema/Action.h.

virtual ExprResult clang::Action::ParseObjCEncodeExpression ( SourceLocation  AtLoc,
SourceLocation  EncLoc,
SourceLocation  LParenLoc,
ParsedType  Ty,
SourceLocation  RParenLoc 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 2651 of file Sema/Action.h.

virtual ExprResult clang::Action::ParseObjCProtocolExpression ( IdentifierInfo ProtocolId,
SourceLocation  AtLoc,
SourceLocation  ProtoLoc,
SourceLocation  LParenLoc,
SourceLocation  RParenLoc 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 2667 of file Sema/Action.h.

virtual ExprResult clang::Action::ParseObjCSelectorExpression ( Selector  Sel,
SourceLocation  AtLoc,
SourceLocation  SelLoc,
SourceLocation  LParenLoc,
SourceLocation  RParenLoc 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 2659 of file Sema/Action.h.

virtual ExprResult clang::Action::ParseObjCStringLiteral ( SourceLocation AtLocs,
ExprTy **  Strings,
unsigned  NumStrings 
) [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 2645 of file Sema/Action.h.

virtual void clang::Action::PopExpressionEvaluationContext (  )  [inline, virtual]

The parser is exiting an expression evaluation context.

Reimplemented in clang::Sema.

Definition at line 1065 of file Sema/Action.h.

Referenced by clang::EnterExpressionEvaluationContext::~EnterExpressionEvaluationContext().

virtual void clang::Action::PopParsingDeclaration ( ParsingDeclStackState  S,
Decl D 
) [inline, virtual]

PopParsingDeclaration - Notes that the parser has completed processing a declaration of some sort. The decl will be empty if the declaration didn't correspond to a full declaration (or if the actions module returned an empty decl for it).

Reimplemented in clang::Sema.

Definition at line 181 of file Sema/Action.h.

virtual void clang::Action::PrintStats (  )  const [inline, virtual]

Statistics.

Definition at line 157 of file Sema/Action.h.

virtual void clang::Action::PushExpressionEvaluationContext ( ExpressionEvaluationContext  NewContext  )  [inline, virtual]

The parser is entering a new expression evaluation context.

Parameters:
NewContext is the new expression evaluation context.

Reimplemented in clang::Sema.

Definition at line 1061 of file Sema/Action.h.

Referenced by clang::EnterExpressionEvaluationContext::EnterExpressionEvaluationContext().

virtual ParsingDeclStackState clang::Action::PushParsingDeclaration (  )  [inline, virtual]

PushParsingDeclaration - Notes that the parser has begun processing a declaration of some sort. Guaranteed to be matched by a call to PopParsingDeclaration with the value returned by this method.

Reimplemented in clang::Sema.

Definition at line 173 of file Sema/Action.h.

virtual void clang::Action::SetDeclDeleted ( Decl Dcl,
SourceLocation  DelLoc 
) [inline, virtual]

SetDeclDeleted - This action is called immediately after ActOnDeclarator if =delete is parsed. C++0x [dcl.fct.def]p10 Note that this can be called even for variable declarations. It's the action's job to reject it.

Reimplemented in clang::Sema.

Definition at line 510 of file Sema/Action.h.

virtual bool clang::Action::ShouldEnterDeclaratorScope ( Scope S,
const CXXScopeSpec SS 
) [inline, virtual]

ShouldEnterDeclaratorScope - Called when a C++ scope specifier is parsed as part of a declarator-id to determine whether a scope should be entered.

Parameters:
S the current scope
SS the scope being entered
isFriendDeclaration whether this is a friend declaration

Reimplemented in clang::Sema.

Definition at line 437 of file Sema/Action.h.

StmtResult clang::Action::StmtEmpty (  )  [inline]
StmtResult clang::Action::StmtError ( const DiagnosticBuilder  )  [inline]

Definition at line 151 of file Sema/Action.h.

References StmtError().

Referenced by StmtError().

StmtResult clang::Action::StmtError (  )  [inline]
virtual bool clang::Action::TypeIsVectorType ( ParsedType  Ty  )  [inline, virtual]

Reimplemented in clang::Sema.

Definition at line 1240 of file Sema/Action.h.


Friends And Related Function Documentation

friend class Parser [friend]

Definition at line 67 of file Sema/Action.h.


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