clang  3.7.0
Public Member Functions | List of all members
clang::ParsedAttributes Class Reference

#include <AttributeList.h>

Public Member Functions

 ParsedAttributes (AttributeFactory &factory)
 
 ParsedAttributes (const ParsedAttributes &)=delete
 
AttributePoolgetPool () const
 
bool empty () const
 
void add (AttributeList *newAttr)
 
void addAll (AttributeList *newList)
 
void set (AttributeList *newList)
 
void takeAllFrom (ParsedAttributes &attrs)
 
void clear ()
 
AttributeListgetList () const
 
AttributeList *& getListRef ()
 
AttributeListaddNew (IdentifierInfo *attrName, SourceRange attrRange, IdentifierInfo *scopeName, SourceLocation scopeLoc, ArgsUnion *args, unsigned numArgs, AttributeList::Syntax syntax, SourceLocation ellipsisLoc=SourceLocation())
 Add attribute with expression arguments. More...
 
AttributeListaddNew (IdentifierInfo *attrName, SourceRange attrRange, IdentifierInfo *scopeName, SourceLocation scopeLoc, IdentifierLoc *Param, const AvailabilityChange &introduced, const AvailabilityChange &deprecated, const AvailabilityChange &obsoleted, SourceLocation unavailable, const Expr *MessageExpr, AttributeList::Syntax syntax)
 Add availability attribute. More...
 
AttributeListaddNew (IdentifierInfo *attrName, SourceRange attrRange, IdentifierInfo *scopeName, SourceLocation scopeLoc, IdentifierLoc *Param1, IdentifierLoc *Param2, IdentifierLoc *Param3, AttributeList::Syntax syntax)
 Add objc_bridge_related attribute. More...
 
AttributeListaddNewTypeTagForDatatype (IdentifierInfo *attrName, SourceRange attrRange, IdentifierInfo *scopeName, SourceLocation scopeLoc, IdentifierLoc *argumentKind, ParsedType matchingCType, bool layoutCompatible, bool mustBeNull, AttributeList::Syntax syntax)
 Add type_tag_for_datatype attribute. More...
 
AttributeListaddNewTypeAttr (IdentifierInfo *attrName, SourceRange attrRange, IdentifierInfo *scopeName, SourceLocation scopeLoc, ParsedType typeArg, AttributeList::Syntax syntaxUsed)
 Add an attribute with a single type argument. More...
 
AttributeListaddNewPropertyAttr (IdentifierInfo *attrName, SourceRange attrRange, IdentifierInfo *scopeName, SourceLocation scopeLoc, IdentifierInfo *getterId, IdentifierInfo *setterId, AttributeList::Syntax syntaxUsed)
 Add microsoft __delspec(property) attribute. More...
 

Detailed Description

ParsedAttributes - A collection of parsed attributes. Currently we don't differentiate between the various attribute syntaxes, which is basically silly.

Right now this is a very lightweight container, but the expectation is that this will become significantly more serious.

Definition at line 675 of file AttributeList.h.

Constructor & Destructor Documentation

clang::ParsedAttributes::ParsedAttributes ( AttributeFactory factory)
inline

Definition at line 677 of file AttributeList.h.

clang::ParsedAttributes::ParsedAttributes ( const ParsedAttributes )
delete

Member Function Documentation

void clang::ParsedAttributes::add ( AttributeList newAttr)
inline
void clang::ParsedAttributes::addAll ( AttributeList newList)
inline
AttributeList* clang::ParsedAttributes::addNew ( IdentifierInfo attrName,
SourceRange  attrRange,
IdentifierInfo scopeName,
SourceLocation  scopeLoc,
ArgsUnion args,
unsigned  numArgs,
AttributeList::Syntax  syntax,
SourceLocation  ellipsisLoc = SourceLocation() 
)
inline

Add attribute with expression arguments.

Definition at line 723 of file AttributeList.h.

AttributeList* clang::ParsedAttributes::addNew ( IdentifierInfo attrName,
SourceRange  attrRange,
IdentifierInfo scopeName,
SourceLocation  scopeLoc,
IdentifierLoc Param,
const AvailabilityChange introduced,
const AvailabilityChange deprecated,
const AvailabilityChange obsoleted,
SourceLocation  unavailable,
const Expr MessageExpr,
AttributeList::Syntax  syntax 
)
inline

Add availability attribute.

Definition at line 736 of file AttributeList.h.

AttributeList* clang::ParsedAttributes::addNew ( IdentifierInfo attrName,
SourceRange  attrRange,
IdentifierInfo scopeName,
SourceLocation  scopeLoc,
IdentifierLoc Param1,
IdentifierLoc Param2,
IdentifierLoc Param3,
AttributeList::Syntax  syntax 
)
inline

Add objc_bridge_related attribute.

Definition at line 753 of file AttributeList.h.

AttributeList* clang::ParsedAttributes::addNewPropertyAttr ( IdentifierInfo attrName,
SourceRange  attrRange,
IdentifierInfo scopeName,
SourceLocation  scopeLoc,
IdentifierInfo getterId,
IdentifierInfo setterId,
AttributeList::Syntax  syntaxUsed 
)
inline

Add microsoft __delspec(property) attribute.

Definition at line 796 of file AttributeList.h.

AttributeList* clang::ParsedAttributes::addNewTypeAttr ( IdentifierInfo attrName,
SourceRange  attrRange,
IdentifierInfo scopeName,
SourceLocation  scopeLoc,
ParsedType  typeArg,
AttributeList::Syntax  syntaxUsed 
)
inline

Add an attribute with a single type argument.

Definition at line 784 of file AttributeList.h.

AttributeList* clang::ParsedAttributes::addNewTypeTagForDatatype ( IdentifierInfo attrName,
SourceRange  attrRange,
IdentifierInfo scopeName,
SourceLocation  scopeLoc,
IdentifierLoc argumentKind,
ParsedType  matchingCType,
bool  layoutCompatible,
bool  mustBeNull,
AttributeList::Syntax  syntax 
)
inline

Add type_tag_for_datatype attribute.

Definition at line 767 of file AttributeList.h.

void clang::ParsedAttributes::clear ( )
inline

Definition at line 715 of file AttributeList.h.

Referenced by clang::Declarator::clear().

bool clang::ParsedAttributes::empty ( ) const
inline
AttributeList* clang::ParsedAttributes::getList ( ) const
inline
AttributeList*& clang::ParsedAttributes::getListRef ( )
inline

Returns a reference to the attribute list. Try not to introduce dependencies on this method, it may not be long-lived.

Definition at line 720 of file AttributeList.h.

Referenced by distributeObjCPointerTypeAttrFromDeclarator(), clang::Declarator::getAttrListRef(), and GetFullTypeForDeclarator().

AttributePool& clang::ParsedAttributes::getPool ( ) const
inline
void clang::ParsedAttributes::set ( AttributeList newList)
inline

Definition at line 705 of file AttributeList.h.

void clang::ParsedAttributes::takeAllFrom ( ParsedAttributes attrs)
inline

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