ROSE  0.11.145.0
Public Types | Static Public Member Functions | Public Attributes | Protected Member Functions | List of all members
Rosebud::Ast::Property Class Reference

Description

Represents a class property definition.

A property is somewhat like a class data member, except it has accessors and mutators. This node represents a property definition.

Definition at line 314 of file Ast.h.

#include <Rosebud/Ast.h>

Inheritance diagram for Rosebud::Ast::Property:
Inheritance graph
[legend]
Collaboration diagram for Rosebud::Ast::Property:
Collaboration graph
[legend]

Public Types

using Ptr = PropertyPtr
 Shared-ownership pointer. More...
 
- Public Types inherited from Rosebud::Ast::Definition
using Ptr = DefinitionPtr
 Shared-ownership pointer. More...
 
- Public Types inherited from Rosebud::Ast::Node
using Ptr = NodePtr
 
- Public Types inherited from Sawyer::Tree::Vertex< Node >
using UserBase = Node
 User's base class. More...
 
using UserBasePtr = std::shared_ptr< UserBase >
 Pointer to user's base class. More...
 
using TraversalEvent = Sawyer::Tree::TraversalEvent
 Alias for traversal events. More...
 

Static Public Member Functions

static Ptr instance ()
 Allocating constructor. More...
 

Public Attributes

Edge< TokenListcType
 Optional pointer to tokens that define the property type. More...
 
Edge< TokenListcInit
 Optional pointer to tokens that define the property's initial value. More...
 
Sawyer::Optional< std::string > dataMemberName
 Optional data member name override. More...
 
Sawyer::Optional< std::vector< std::string > > accessorNames
 Optional override for accessor names. More...
 
Sawyer::Optional< std::vector< std::string > > mutatorNames
 Optional override for mutator names. More...
 
- Public Attributes inherited from Rosebud::Ast::Definition
Token startToken
 Token at the start of the definition. More...
 
std::string name
 Unqualified name for the definition. More...
 
Token nameToken
 Token for the definition's unqualified name. More...
 
std::string doc
 Doxygen documentation comment. More...
 
Token docToken
 Token associated with the Doxygen comment. More...
 
Edge< CppStackcppStack
 C preprocessor pending conditional compilation directives. More...
 
std::string priorText
 Input text before the definition. More...
 
Token priorTextToken
 Token describing the location of the prior text. More...
 
EdgeVector< Attributeattributes
 Non-null pointer to the list of attributes controlling this property. More...
 
- Public Attributes inherited from Sawyer::Tree::Vertex< Node >
ReverseEdge parent
 Pointer to the parent in the tree. More...
 
EdgeBase * treeEdges_
 

Protected Member Functions

 Property ()
 Default constructor used only by derived classes. More...
 
- Protected Member Functions inherited from Rosebud::Ast::Definition
 Definition ()
 Default constructor used only by derived classes. More...
 
- Protected Member Functions inherited from Sawyer::Tree::Vertex< Node >
virtual void destructorHelper ()
 

Additional Inherited Members

- Public Member Functions inherited from Rosebud::Ast::Definition
AttributePtr findAttribute (const std::string &fqName)
 Finds an attribute with the specified fully qualified name. More...
 
- Public Member Functions inherited from Rosebud::Ast::Node
template<class T >
std::shared_ptr< T > findAncestor ()
 
- Public Member Functions inherited from Sawyer::Tree::Vertex< Node >
UserBasePtr pointer ()
 Returns a shared pointer to this vertex. More...
 
std::shared_ptr< T > isa ()
 Tests whether this object is a certain type. More...
 
auto traverseReverse (const Visitor &visitor)
 Traverse in reverse direction from children to parents. More...
 
auto traverse (const Visitor &visitor)
 Traverse in forward direction from parents to children. More...
 
auto traversePre (const Visitor &visitor)
 Pre-order forward traversal. More...
 
auto traversePost (const Visitor &visitor)
 Post-order forward traversal. More...
 
std::shared_ptr< T > findFirstAncestor ()
 Traversal that finds the closest ancestor of type T or derived from T. More...
 
std::shared_ptr< T > findLastAncestor ()
 Traversal that finds the farthest ancestor of type T or derived from T. More...
 
std::vector< std::shared_ptr< T > > findDescendants ()
 Traversal that finds all the descendants of a particular type. More...
 
UserBasePtr child (size_t i) const
 Returns the pointer for a child. More...
 
size_t nChildren () const
 Returns the number of children. More...
 

Member Typedef Documentation

Shared-ownership pointer.

Definition at line 317 of file Ast.h.

Constructor & Destructor Documentation

Rosebud::Ast::Property::Property ( )
protected

Default constructor used only by derived classes.

Member Function Documentation

static Ptr Rosebud::Ast::Property::instance ( )
static

Allocating constructor.

Member Data Documentation

Edge<TokenList> Rosebud::Ast::Property::cType

Optional pointer to tokens that define the property type.

Definition at line 321 of file Ast.h.

Edge<TokenList> Rosebud::Ast::Property::cInit

Optional pointer to tokens that define the property's initial value.

Definition at line 324 of file Ast.h.

Sawyer::Optional<std::string> Rosebud::Ast::Property::dataMemberName

Optional data member name override.

This usually comes from the "Rosebud::data" attribute, but can be set directly. If there is no data member name, then the name is chosen by the backend code generator.

Definition at line 330 of file Ast.h.

Sawyer::Optional<std::vector<std::string> > Rosebud::Ast::Property::accessorNames

Optional override for accessor names.

This usually comes from the "Rosebud::accessors" attribute, but can be set directly. An empty vector means that no accessors will be generated. Lack of a vector means that the backend should choose accessor names.

Definition at line 336 of file Ast.h.

Sawyer::Optional<std::vector<std::string> > Rosebud::Ast::Property::mutatorNames

Optional override for mutator names.

This usually comes from the "Rosebud::mutators" attribute, but can be set directly. An empty vector means that no mutators will be generated. Lack of a vector means that the backend should choose mutator names.

Definition at line 342 of file Ast.h.


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