ROSE  0.11.96.11
Public Types | Public Member Functions | List of all members
AstIntAttribute Class Reference

Description

Definition at line 533 of file AstAttributeMechanism.h.

Inheritance diagram for AstIntAttribute:
Inheritance graph
[legend]
Collaboration diagram for AstIntAttribute:
Collaboration graph
[legend]

Public Types

typedef AstValueAttribute< int > Super
 
- Public Types inherited from AstValueAttribute< int >
typedef int Value
 Type of value this wrapper holds.
 
- Public Types inherited from AstAttribute
enum  OwnershipPolicy {
  CONTAINER_OWNERSHIP,
  NO_OWNERSHIP,
  CUSTOM_OWNERSHIP,
  UNKNOWN_OWNERSHIP
}
 Who owns this attribute. More...
 

Public Member Functions

 AstIntAttribute (int value)
 
 AstIntAttribute (const AstIntAttribute &other)
 
virtual AstAttributecopy () const override
 Virtual copy constructor. More...
 
virtual std::string attribute_class_name () const override
 Attribute class name. More...
 
int getValue ()
 
- Public Member Functions inherited from AstValueAttribute< int >
 AstValueAttribute ()
 Default constructor. More...
 
 AstValueAttribute (const int &value)
 Constructs an attribute containing a specified value.
 
 AstValueAttribute (const AstValueAttribute &other)
 Copy constructor. More...
 
virtual AstAttributecopy () const override
 Virtual copy constructor. More...
 
virtual std::string attribute_class_name () const override
 Attribute class name. More...
 
void set (const int &value)
 Assign a new value.
 
const int & get () const
 Return the stored value by reference.
 
int & get ()
 Return the stored value by reference.
 
- Public Member Functions inherited from AstAttribute
virtual OwnershipPolicy getOwnershipPolicy () const
 Who owns this attribute. More...
 
virtual AstAttributeconstructor () const
 Virtual default constructor. More...
 
virtual std::string toString ()
 Convert an attribute to a string. More...
 
virtual bool commentOutNodeInGraph ()
 Eliminate IR nodes in DOT graphs. More...
 
virtual int packed_size ()
 Packing support.
 
virtual char * packed_data ()
 Packing support.
 
virtual void unpacked_data (int size, char *data)
 Packing support.
 
virtual std::string additionalNodeOptions ()
 DOT support.
 
virtual std::vector< AttributeEdgeInfoadditionalEdgeInfo ()
 DOT support.
 
virtual std::vector< AttributeNodeInfoadditionalNodeInfo ()
 DOT support.
 

Member Function Documentation

◆ copy()

virtual AstAttribute* AstIntAttribute::copy ( ) const
inlineoverridevirtual

Virtual copy constructor.

Copy-constructs a new object on the heap and returns its pointer. All subclasses must implement this in order to instantiate the correct dynamic type, although many don't. If this copy method returns a null pointer (like the base implementation) then the attribute is not copied as part of copying its container. E.g., an attribute stored in an AST will not be copied when the AST is copied if that attribute is directly derived from AstAttribute and fails to implement copy. If a subclass fails to implement copy and inherits from a class that does implement a copy that returns non-null, then the copied attribute will have an incorrect dynamic type.

It would be nice if we could make this pure virtual, but unfortunately ROSETTA-generated code fails to compile because it generates an instantiation of this interface (whether or not that code is ever executed is unkown). [Robb Matzke 2015-11-10]

Reimplemented from AstAttribute.

Definition at line 539 of file AstAttributeMechanism.h.

◆ attribute_class_name()

virtual std::string AstIntAttribute::attribute_class_name ( ) const
inlineoverridevirtual

Attribute class name.

Returns the name of the dynamic type. All subclasses must implement this in order to return the correct type name, although many don't. If a subclass fails to implement this then it will return an incorrect class name.

It would be nice if this could be pure virtual, but unfortunately ROSETTA-generated code fails to compile because it generates an instantiation of this interface (whether or not that code is ever executed is unknown). [Robb Matzke 2015-11-10]

Reimplemented from AstAttribute.

Definition at line 540 of file AstAttributeMechanism.h.


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